/* PortalCommon web: design tokens. Three layers: primitive, semantic, component. */
@font-face{font-family:"Plus Jakarta Sans";font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/PlusJakartaSans-Regular.woff2) format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/PlusJakartaSans-Medium.woff2) format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/PlusJakartaSans-SemiBold.woff2) format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/PlusJakartaSans-Bold.woff2) format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-weight:800;font-style:normal;font-display:swap;src:url(../fonts/PlusJakartaSans-ExtraBold.woff2) format("woff2")}
/* Fallback tuned to the brand font so the swap does not shift the layout */
@font-face{font-family:"PJS Fallback";src:local("Arial");size-adjust:104%;ascent-override:96%;descent-override:24%;line-gap-override:0%}

:root{
  /* 1. PRIMITIVE: raw values taken from the current app */
  --navy-900:#0A1F52; --navy-800:#0D2B6E; --blue-700:#1A4BA0; --blue-600:#2E6FD9; --blue-400:#4A90E2;
  --blue-100:#DCE8FA; --blue-50:#EEF3FC;
  --ink-900:#0D1B3E; --ink-600:#4D5C7C; --ink-400:#5F6D8C; --ink-200:#DDE3F0; --ink-100:#EDF0F7; --ink-50:#F4F7FC;
  --green-700:#1D7E46; --green-100:#DDF3E5; --red-700:#C2271A; --red-100:#FCE3E0;
  --amber-700:#8A5706; --amber-100:#FBEFD2; --sky-700:#1E72AA; --sky-100:#DDEEF8;
  --cloud-people:#575AF0; --cloud-customer:#0B7E58; --cloud-ops:#0A75A5; --cloud-finance:#986206; --cloud-commerce:#B64D05; --cloud-ai:#7D49F5;

  /* spacing, radius, motion */
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:24px; --s-6:32px; --s-7:48px; --s-8:64px;
  --r-sm:8px; --r-md:12px; --r-lg:16px; --r-pill:999px;
  --dur-fast:120ms; --dur:200ms; --dur-slow:260ms; --ease:cubic-bezier(.2,.7,.2,1);

  /* type */
  --font-body:"Plus Jakarta Sans","PJS Fallback",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-mono:ui-monospace,"JetBrains Mono",Consolas,monospace;
  --t-xs:.75rem; --t-sm:.875rem; --t-md:1rem; --t-lg:1.125rem;
  --t-h3:clamp(1.125rem,1.05rem + .4vw,1.3rem); --t-h2:clamp(1.3rem,1.15rem + .8vw,1.7rem); --t-h1:clamp(1.6rem,1.3rem + 1.4vw,2.3rem);

  /* 2. SEMANTIC: light theme */
  --bg:var(--ink-50); --surface:#fff; --surface-2:var(--ink-100); --raised:#fff;
  --text:var(--ink-900); --text-2:var(--ink-600); --text-3:var(--ink-400);
  --line:var(--ink-200); --line-strong:#C3CCE0;
  --primary:var(--blue-700); --primary-hover:var(--navy-800); --primary-soft:var(--blue-50); --on-primary:#fff;
  --focus:var(--blue-600);
  --ok:var(--green-700); --ok-soft:var(--green-100); --bad:var(--red-700); --bad-soft:var(--red-100);
  --warn:var(--amber-700); --warn-soft:var(--amber-100); --info:var(--sky-700); --info-soft:var(--sky-100);
  --rail-bg:var(--navy-800); --rail-text:#C9D6F2; --rail-active:#fff;
  --shadow-1:0 1px 2px rgba(13,43,110,.06),0 1px 1px rgba(13,43,110,.04);
  --shadow-2:0 8px 24px rgba(13,43,110,.12),0 2px 6px rgba(13,43,110,.06);
  --overlay:rgba(10,20,50,.5);

  /* 3. COMPONENT */
  --ctl-h:44px; --btn-r:var(--r-sm); --card-r:var(--r-md); --field-r:var(--r-sm);
  --rail-w:76px; --panel-w:248px; --top-h:60px; --page-max:1180px;
  color-scheme:light;
}
:root[data-theme="dark"]{ color-scheme:dark;
  --bg:#0A1226; --surface:#101B36; --surface-2:#16233F; --raised:#17254A;
  --text:#EAF0FF; --text-2:#AEBBDA; --text-3:#7F8EB3; --line:#24355E; --line-strong:#33477A;
  --primary:#6FA3FF; --primary-hover:#9DC0FF; --primary-soft:#14264F; --on-primary:#06142F; --focus:#8DB6FF;
  --ok:#5FD08E; --ok-soft:#10301F; --bad:#FF8F84; --bad-soft:#3A1713; --warn:#F2BE62; --warn-soft:#37290B; --info:#7CC4F0; --info-soft:#0F2A3B;
  --rail-bg:#070E20; --rail-text:#9FB0D6; --shadow-1:none; --shadow-2:0 8px 24px rgba(0,0,0,.5); --overlay:rgba(0,0,0,.65);
}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]){ color-scheme:dark;
  --bg:#0A1226; --surface:#101B36; --surface-2:#16233F; --raised:#17254A;
  --text:#EAF0FF; --text-2:#AEBBDA; --text-3:#7F8EB3; --line:#24355E; --line-strong:#33477A;
  --primary:#6FA3FF; --primary-hover:#9DC0FF; --primary-soft:#14264F; --on-primary:#06142F; --focus:#8DB6FF;
  --ok:#5FD08E; --ok-soft:#10301F; --bad:#FF8F84; --bad-soft:#3A1713; --warn:#F2BE62; --warn-soft:#37290B; --info:#7CC4F0; --info-soft:#0F2A3B;
  --rail-bg:#070E20; --rail-text:#9FB0D6; --shadow-1:none; --shadow-2:0 8px 24px rgba(0,0,0,.5); --overlay:rgba(0,0,0,.65);
}}
