/* Portal v2: approved theme tokens, 28 October 2026. */
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/plus-jakarta-sans-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/plus-jakarta-sans-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/plus-jakarta-sans-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/plus-jakarta-sans-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:800;font-display:swap;src:url("../fonts/plus-jakarta-sans-latin-800-normal.woff2") format("woff2")}
:root {
  --bg: #f2f5ef;
  --surface: #ffffff;
  --surface-raised: #ffffff;
  --border-card: #c9d4c4;
  --surface-soft: #eef2ea;
  --border: #d9e2d5;
  --border-field: #7a8b7f;
  --text: #17251d;
  --muted: #4f5f55;
  --accent: #94cd3f;
  --on-accent: #182111;
  --accent-text: #315c1c;
  --accent-soft: #e4efd9;
  --warning: #f1592a;
  --warning-text: #b13e0c;
  --warning-soft: #fdebe2;
  --danger: #b42318;
  --danger-text: #b42318;
  --danger-soft: #fdeceb;
  --white: #ffffff;
  --black: #000000;
  --font-sans: "Plus Jakarta Sans", "Segoe UI", system-ui, sans-serif;
  --text-xs: 12px;
  --text-sm: 14px;
  --text-md: 16px;
  --text-lg: 18px;
  --text-xl: 24px;
  --text-2xl: 32px;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 14px;
  --radius-xl: 20px;
  --radius-full: 999px;
  --shadow-sm: 0 1px 2px rgba(23,37,29,.06), 0 2px 8px rgba(23,37,29,.06);
  --shadow-md: 0 8px 24px rgba(23,37,29,.10), 0 2px 6px rgba(23,37,29,.06);
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
}
html[data-portal-theme=dark]:not([data-fixed-request-theme=true]) {
  --bg: #14151c;
  --surface: #1c1e25;
  --surface-raised: #272a32;
  --border-card: #454c55;
  --surface-soft: #31353d;
  --border: #363b42;
  --border-field: #6b7670;
  --text: #f4f6f1;
  --muted: #b3c0b6;
  --accent: #94cd3f;
  --on-accent: #182111;
  --accent-text: #c2e87c;
  --accent-soft: #26341f;
  --warning: #f1592a;
  --warning-text: #ff9a6c;
  --warning-soft: #3a2219;
  --danger: #d92d20;
  --danger-text: #ff8c82;
  --danger-soft: #3b1816;
  --shadow-sm:0 1px 2px rgba(0,0,0,.40), 0 2px 8px rgba(0,0,0,.25);
  --shadow-md:0 10px 28px rgba(0,0,0,.45);
}
body{font-family:var(--font-sans);font-size:var(--text-sm);line-height:1.5;font-weight:400}h1{font-size:var(--text-2xl);font-weight:800;line-height:1.15}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}h2,h3{font-weight:700;line-height:1.25}button,label,.button,.badge{font-weight:600;line-height:1.25}table,time,.mono,[class*=count],[class*=metric],[class*=date],[class*=money]{font-variant-numeric:tabular-nums}input,select,textarea{border-color:var(--border-field)}@media(max-width:600px){input,select,textarea{font-size:var(--text-md)}}

html[data-text-size=sm]{--text-xs:12px;--text-sm:13px;--text-md:15px;--text-lg:17px;--text-xl:22px;--text-2xl:28px}
html[data-text-size=lg]{--text-xs:14px;--text-sm:16px;--text-md:18px;--text-lg:20px;--text-xl:28px;--text-2xl:36px}
