/* Shared visual contract: docs/llmapi-style-integration.md. Legacy token names remain public. */
:root{
  color-scheme:light;
  --gray-50:#F5F0EA; --gray-100:#EBE4DC; --gray-200:#DCD3C9; --gray-300:#C3B8AD;
  --gray-400:#8B8177; --gray-500:#756B61; --gray-600:#62594F; --gray-700:#514A42;
  --gray-800:#342F29; --gray-900:#1A1915;
  --bg-page:#FAF6F1; --bg-subtle:#FCF9F5; --bg-card:#FFFCF8;
  --bg-recess:#F3EDE6; --bg-raised:#FFFEFC;
  --text-1:var(--gray-900); --text-1-alt:var(--gray-800); --text-2:var(--gray-700);
  --text-3:var(--gray-500); --text-3-strong:var(--gray-600); --text-4:var(--gray-400);
  --on-brand-dim:rgba(255,255,255,.82); --text-on-brand:#FFFFFF;
  --text-a1:rgba(26,25,21,.92); --text-a2:rgba(26,25,21,.65);
  --text-a3:rgba(26,25,21,.52); --text-a4:rgba(26,25,21,.38);
  --fill-1:rgba(107,92,77,.18); --fill-2:rgba(107,92,77,.13);
  --fill-3:rgba(107,92,77,.09); --fill-4:rgba(107,92,77,.05);

  /* Compatibility palette: the historical blue names now follow the brand. DNS keeps its own hues. */
  --blue-50:#FBEEE7; --blue-100:#F6DDCE; --blue-200:#EFC2AD; --blue-300:#E7A58B;
  --blue-400:#DE8D6E; --blue-500:#D97757; --blue-600:#D97757; --blue-700:#A64D32; --blue-800:#873F2B;
  --color-primary:#D97757; --color-primary-hover:#C46447; --color-primary-active:#AD5138;
  --color-primary-light:rgba(217,119,87,.10); --color-primary-disabled:#E5B9A7;
  --color-link:#A84E33; --ring-focus:0 0 0 4px rgba(217,119,87,.20);
  --focus-ring:2px solid var(--color-primary-hover);
  --color-success:#248A3D; --color-success-hover:#1E7A35; --color-success-active:#186A2C;
  --color-success-disabled:#A8D4B4; --color-success-light:#EDF6EE; --color-success-fill:#34C759;
  --color-warning:#A75B08; --color-warning-hover:#914E06; --color-warning-active:#7A4104;
  --color-warning-disabled:#E8C2A0; --color-warning-light:#FFF4DF; --color-warning-fill:#E9A32C;
  --color-danger:#C7353F; --color-danger-deep:#A62630; --color-danger-hover:#B32D36; --color-danger-active:#98232C;
  --color-danger-disabled:#E7ADB1; --color-danger-light:#FCECEE; --color-danger-fill:#E54C55;
  --color-info:#667C82; --color-info-hover:#526B73; --color-info-active:#405962;
  --color-info-disabled:#BDCBCD; --color-info-light:#EDF4F3; --color-info-fill:#7F9B9E;
  --rt-a:#286EAA; --rt-aaaa:#6B5AB5; --rt-cname:#147787; --rt-mx:var(--color-success);
  --rt-txt:#9E601C; --rt-ns:var(--gray-500); --rt-srv:#914F9A; --rt-caa:#89701C; --rt-default:var(--gray-500);

  --font-sans:"Schibsted Grotesk","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  --font-display:"Fraunces","Noto Serif SC","Songti SC",Georgia,serif;
  --font-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono","Courier New",monospace;
  --fs-11:11px; --fs-12:12px; --fs-13:13px; --fs-14:14px; --fs-15:15px; --fs-16:16px;
  --fs-17:17px; --fs-18:18px; --fs-20:20px; --fs-21:21px; --fs-24:24px; --fs-28:28px;
  --fs-32:32px; --fs-40:40px; --fs-48:48px; --fs-56:56px; --fs-64:64px; --fs-72:72px;
  --fw-regular:400; --fw-normal:400; --fw-medium:500; --fw-semibold:600; --fw-bold:700; --fw-heading:600;
  --lh-display:1.08; --lh-tight:1.15; --lh-snug:1.25; --lh-heading:1.333333;
  --lh-base:1.5; --lh-relaxed:1.7; --lh-loose:1.8;
  --ls-display:-.025em; --ls-tight:-.011em; --ls-snug:-.006em; --ls-normal:0; --ls-wide:.02em; --ls-mono:-.012em;

  --sp-0-5:2px; --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:20px;
  --sp-6:24px; --sp-8:32px; --sp-10:40px; --sp-12:48px; --sp-16:64px;
  --sp-20:80px; --sp-24:96px; --sp-32:128px;
  --section-y:clamp(64px,7vw,112px); --section-y-tight:clamp(40px,4vw,64px);
  --r-none:0; --r-sm:6px; --r-md:8px; --r-lg:12px; --r-xl:16px; --r-2xl:24px; --r-3xl:28px;
  --r-pill:999px; --r-full:999px; --r-control:var(--r-md); --r-card:var(--r-xl); --r-panel:var(--r-xl);
  --squircle:round;

  /* Glass: the border token is a color; blur is a complete filter; page glow is a background-image. */
  --lq-surface:rgba(255,255,255,.55); --lq-surface-solid:#FFFCF8;
  --lq-border:rgba(255,255,255,.60); --lq-blur:blur(24px);
  --lq-shadow:0 8px 32px rgba(217,119,87,.05),inset 0 1px 0 rgba(255,255,255,.55);
  --lq-page-glow:radial-gradient(ellipse at 12% 8%,rgba(233,177,138,.19),transparent 52%),radial-gradient(ellipse at 88% 26%,rgba(158,207,199,.14),transparent 48%);
  --lq-display-accent:var(--color-primary); --lq-action-text:var(--text-on-brand);
  --lq-nav-bg:linear-gradient(135deg,rgba(255,255,255,.74),rgba(255,255,255,.42));
  --lq-shell-glow:radial-gradient(ellipse at 20% 0%,rgba(233,177,138,.10),transparent 55%),radial-gradient(ellipse at 95% 30%,rgba(158,207,199,.07),transparent 50%);
  --lq-overlay-surface:rgba(255,252,248,.94);
  --lq-plate-filter:none; --lq-selection:rgba(217,119,87,.20);
  --lq-chrome-gap:20px;

  /* Surface hierarchy (docs/llmapi-density-review.md): one primary work area, quiet default
     cards as context, flat for notes/history, recessed diagnostics. Values only here. */
  --lq-surface-primary:rgba(255,252,248,.88); --lq-border-primary:rgba(255,255,255,.72);
  --lq-surface-quiet:rgba(255,252,248,.44); --lq-border-quiet:rgba(255,255,255,.40);
  --shadow-card-quiet:0 2px 10px rgba(83,49,31,.028),inset 0 1px 0 rgba(255,255,255,.34);

  --hairline-c:rgba(83,63,45,.10); --hairline:0 0 0 1px var(--hairline-c);
  --hairline-strong:0 0 0 1px rgba(83,63,45,.18); --bw-1:1px; --bw-2:2px;
  --border:1px solid var(--gray-200); --border-strong:1px solid var(--gray-300);
  --border-control:1px solid var(--gray-200); --border-danger:1px solid var(--color-danger);
  --divider:rgba(83,63,45,.09);
  --shadow-sm:0 2px 6px rgba(83,63,45,.04);
  --shadow-md:0 6px 20px rgba(217,119,87,.08);
  --shadow-lg:0 16px 48px rgba(83,49,31,.12);
  --shadow-xl:0 24px 72px rgba(83,49,31,.16);
  --shadow-card:var(--lq-shadow);
  --shadow-card-hover:0 12px 36px rgba(217,119,87,.10),inset 0 1px 0 rgba(255,255,255,.60);
  --shadow-card-lift:0 18px 42px rgba(217,119,87,.12);
  --shadow-pop:var(--shadow-lg); --shadow-inset-hair:inset 0 0 0 1px var(--hairline-c);
  --shadow-window:0 16px 48px rgba(217,119,87,.10),inset 0 1px 0 rgba(255,255,255,.60);
  --shadow-window-hover:0 20px 52px rgba(217,119,87,.14);
  --material-bg:var(--lq-surface); --material-blur:var(--lq-blur); --material-bg-strong:rgba(255,252,248,.88);

  --z-content:1; --z-sticky:10; --z-fab:20; --z-sidebar:30; --z-topbar:40; --z-tabbar:50;
  --z-mask:1000; --z-drawer:1010; --z-modal:1020; --z-popper:1030; --z-toast:1040; --z-loading:1050; --z-onboarding:1060;
  --dur-instant:100ms; --dur-fast:160ms; --dur-base:240ms; --dur-slow:320ms;
  --ease-std:cubic-bezier(.4,0,.2,1); --ease-out:cubic-bezier(.2,.8,.2,1);
  --ease-in:cubic-bezier(.6,0,.8,.4); --ease-in-out:cubic-bezier(.4,0,.6,1); --ease-spring:cubic-bezier(.34,1.4,.44,1);
  --header-h:56px; --topbar-h:56px; --sidebar-w:240px; --sidebar-collapsed-w:64px;
  --shell-offset-x:0px; --shell-sticky-top:calc(var(--topbar-h) + var(--lq-chrome-gap));
  --tabbar-h:56px; --content-max:1240px; --content-max-wide:1440px; --content-max-admin:none;
  --content-pad-x:32px; --measure:68ch; --mask-bg:rgba(37,29,23,.32);
  --shell-bg:var(--bg-page); --sidebar-bg:var(--lq-surface); --sidebar-bg-admin:var(--lq-surface);
  --sidebar-text:var(--text-2); --sidebar-text-dim:var(--text-3); --sidebar-text-strong:var(--text-1);
  --sidebar-hover:rgba(217,119,87,.06); --sidebar-border:var(--lq-border);
  --sidebar-active-bg:rgba(217,119,87,.10); --sidebar-active-bar:var(--color-primary);
  --hue-dns:var(--rt-a); --hue-risk:var(--color-danger); --hue-gov:var(--color-warning); --hue-wallet:var(--color-success);
  --hue-user:var(--rt-aaaa); --hue-content:var(--rt-srv); --hue-market:var(--rt-cname); --hue-system:var(--color-info);
  --chart-grid:var(--divider); --chart-axis-text:var(--text-3); --chart-h:200px; --chart-bar-r:4px;
  --chart-1:var(--color-primary); --chart-2:#719E9A;
  --art-color:var(--gray-400); --art-120:120px; --art-96:96px; --art-plate:144px; --art-plate-wide:320px;
  --ico-16:16px; --ico-20:20px; --ico-24:24px; --ico-swatch:36px; --ico-swatch-r:var(--r-lg);
  --table-stripe:rgba(107,92,77,.025); --table-head-sticky-bg:var(--bg-subtle);
  --table-row-hover:rgba(217,119,87,.055); --table-head-text:var(--text-3);
  --grad-hero:var(--lq-page-glow); --grad-hero-deep:linear-gradient(135deg,#3B2922,#211E19);
  --grad-brand:linear-gradient(135deg,#D97757,#B35A3D); --grad-bar:linear-gradient(180deg,#E7A58B,#D97757);
  --grad-bar-muted:linear-gradient(180deg,var(--gray-200),var(--gray-300)); --grad-line-fill:rgba(217,119,87,.10);
  --shadow-glow:0 6px 20px rgba(217,119,87,.18); --band-alt:var(--lq-surface);
  --footer-bg:var(--bg-subtle); --grid-line:rgba(83,63,45,.035); --grid-line-strong:rgba(83,63,45,.06);
  --grid-size:28px; --mask-fade:#000; --bg-band:var(--bg-recess); --text-inverse:var(--text-on-brand);
}

/* Light is the root palette. System rules never match an explicit theme. */
:root[data-theme="light"]{color-scheme:light}
:root[data-theme="dark"]{
  color-scheme:dark;
  --gray-50:#24211E; --gray-100:#302B26; --gray-200:#443C34; --gray-300:#62564B;
  --gray-400:#A2978B; --gray-500:#B4A89B; --gray-600:#C4B9AE; --gray-700:#D7CEC4;
  --gray-800:#E5DED5; --gray-900:#F5EEE6;
  --bg-page:#1A1815; --bg-subtle:#211E1A; --bg-card:#29241F; --bg-recess:#211D19; --bg-raised:#332C25;
  --text-a1:rgba(245,238,230,.94); --text-a2:rgba(245,238,230,.70); --text-a3:rgba(245,238,230,.57); --text-a4:rgba(245,238,230,.42);
  --fill-1:rgba(226,207,186,.20); --fill-2:rgba(226,207,186,.15); --fill-3:rgba(226,207,186,.10); --fill-4:rgba(226,207,186,.055);
  --blue-50:#38271F; --blue-100:#4C3024; --blue-200:#714331; --blue-300:#BA785B;
  --blue-400:#D99777; --blue-500:#E39674; --blue-600:#D97757; --blue-700:#A64D32; --blue-800:#873F2B;
  --color-primary:#E39674; --color-primary-hover:#EEAF90; --color-primary-active:#D9815F;
  --color-primary-light:rgba(227,150,116,.13); --color-primary-disabled:#755342; --color-link:#ECAF90;
  --ring-focus:0 0 0 4px rgba(227,150,116,.22); --focus-ring:2px solid var(--color-primary);
  --color-success:#75C887; --color-success-hover:#92D79F; --color-success-active:#57B96B;
  --color-success-disabled:#355D3D; --color-success-light:rgba(117,200,135,.12); --color-success-fill:#61C778;
  --color-warning:#EABD69; --color-warning-hover:#F2CD8C; --color-warning-active:#D9A850;
  --color-warning-disabled:#6F5631; --color-warning-light:rgba(234,189,105,.12); --color-warning-fill:#EABD69;
  --color-danger:#EF8790; --color-danger-deep:#F6A0A7; --color-danger-hover:#F6A0A7; --color-danger-active:#E36B76;
  --color-danger-disabled:#713A40; --color-danger-light:rgba(239,135,144,.12); --color-danger-fill:#EE7380;
  --color-info:#9CBABB; --color-info-hover:#B6CCCD; --color-info-active:#86A5A6;
  --color-info-disabled:#415B5C; --color-info-light:rgba(156,186,187,.12); --color-info-fill:#9CBABB;
  --rt-a:#86B5E2; --rt-aaaa:#B3A1E9; --rt-cname:#88C9CB; --rt-txt:#E3B579; --rt-srv:#D1A1D5; --rt-caa:#D9C27B;
  --lq-surface:rgba(47,40,33,.66); --lq-surface-solid:#29241F; --lq-border:rgba(255,238,219,.10);
  --lq-shadow:0 8px 32px rgba(0,0,0,.15),inset 0 1px 0 rgba(255,238,219,.04);
  --lq-page-glow:radial-gradient(ellipse at 12% 8%,rgba(169,87,49,.15),transparent 52%),radial-gradient(ellipse at 88% 26%,rgba(72,126,119,.11),transparent 48%);
  --lq-nav-bg:linear-gradient(135deg,rgba(58,48,39,.84),rgba(42,36,30,.68));
  --lq-shell-glow:radial-gradient(ellipse at 20% 0%,rgba(169,87,49,.08),transparent 55%),radial-gradient(ellipse at 95% 30%,rgba(72,126,119,.055),transparent 50%);
  --lq-overlay-surface:rgba(47,40,33,.95); --lq-plate-filter:invert(1); --lq-selection:rgba(227,150,116,.25); --lq-action-text:#241912;
  --lq-surface-primary:rgba(48,41,34,.92); --lq-border-primary:rgba(255,238,219,.16);
  --lq-surface-quiet:rgba(41,36,31,.40); --lq-border-quiet:rgba(255,238,219,.07);
  --shadow-card-quiet:0 2px 10px rgba(0,0,0,.12),inset 0 1px 0 rgba(255,238,219,.025);
  --hairline-c:rgba(255,238,219,.10); --hairline-strong:0 0 0 1px rgba(255,238,219,.18); --divider:rgba(255,238,219,.09);
  --shadow-sm:0 2px 6px rgba(0,0,0,.12); --shadow-md:0 6px 20px rgba(0,0,0,.20);
  --shadow-lg:0 16px 48px rgba(0,0,0,.35); --shadow-xl:0 24px 72px rgba(0,0,0,.45);
  --shadow-card-hover:0 12px 36px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,238,219,.07);
  --shadow-card-lift:0 18px 42px rgba(0,0,0,.28);
  --shadow-window:0 16px 48px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,238,219,.07); --shadow-window-hover:0 20px 52px rgba(0,0,0,.32);
  --material-bg-strong:rgba(41,36,31,.92); --mask-bg:rgba(9,7,5,.60);
  --sidebar-hover:rgba(227,150,116,.07); --sidebar-active-bg:rgba(227,150,116,.12);
  --chart-2:#8BBDB7; --table-stripe:rgba(226,207,186,.025); --table-row-hover:rgba(227,150,116,.065);
  --grad-line-fill:rgba(227,150,116,.12); --shadow-glow:0 6px 20px rgba(217,119,87,.12);
  --grid-line:rgba(255,238,219,.035); --grid-line-strong:rgba(255,238,219,.06); --mask-fade:#FFF;
}

@media (prefers-color-scheme:dark){
  :root:not([data-theme]){
    color-scheme:dark;
    --gray-50:#24211E; --gray-100:#302B26; --gray-200:#443C34; --gray-300:#62564B;
    --gray-400:#A2978B; --gray-500:#B4A89B; --gray-600:#C4B9AE; --gray-700:#D7CEC4;
    --gray-800:#E5DED5; --gray-900:#F5EEE6;
    --bg-page:#1A1815; --bg-subtle:#211E1A; --bg-card:#29241F; --bg-recess:#211D19; --bg-raised:#332C25;
    --text-a1:rgba(245,238,230,.94); --text-a2:rgba(245,238,230,.70); --text-a3:rgba(245,238,230,.57); --text-a4:rgba(245,238,230,.42);
    --fill-1:rgba(226,207,186,.20); --fill-2:rgba(226,207,186,.15); --fill-3:rgba(226,207,186,.10); --fill-4:rgba(226,207,186,.055);
    --blue-50:#38271F; --blue-100:#4C3024; --blue-200:#714331; --blue-300:#BA785B;
    --blue-400:#D99777; --blue-500:#E39674; --blue-600:#D97757; --blue-700:#A64D32; --blue-800:#873F2B;
    --color-primary:#E39674; --color-primary-hover:#EEAF90; --color-primary-active:#D9815F;
    --color-primary-light:rgba(227,150,116,.13); --color-primary-disabled:#755342; --color-link:#ECAF90;
    --ring-focus:0 0 0 4px rgba(227,150,116,.22); --focus-ring:2px solid var(--color-primary);
    --color-success:#75C887; --color-success-hover:#92D79F; --color-success-active:#57B96B;
    --color-success-disabled:#355D3D; --color-success-light:rgba(117,200,135,.12); --color-success-fill:#61C778;
    --color-warning:#EABD69; --color-warning-hover:#F2CD8C; --color-warning-active:#D9A850;
    --color-warning-disabled:#6F5631; --color-warning-light:rgba(234,189,105,.12); --color-warning-fill:#EABD69;
    --color-danger:#EF8790; --color-danger-deep:#F6A0A7; --color-danger-hover:#F6A0A7; --color-danger-active:#E36B76;
    --color-danger-disabled:#713A40; --color-danger-light:rgba(239,135,144,.12); --color-danger-fill:#EE7380;
    --color-info:#9CBABB; --color-info-hover:#B6CCCD; --color-info-active:#86A5A6;
    --color-info-disabled:#415B5C; --color-info-light:rgba(156,186,187,.12); --color-info-fill:#9CBABB;
    --rt-a:#86B5E2; --rt-aaaa:#B3A1E9; --rt-cname:#88C9CB; --rt-txt:#E3B579; --rt-srv:#D1A1D5; --rt-caa:#D9C27B;
    --lq-surface:rgba(47,40,33,.66); --lq-surface-solid:#29241F; --lq-border:rgba(255,238,219,.10);
    --lq-shadow:0 8px 32px rgba(0,0,0,.15),inset 0 1px 0 rgba(255,238,219,.04);
    --lq-page-glow:radial-gradient(ellipse at 12% 8%,rgba(169,87,49,.15),transparent 52%),radial-gradient(ellipse at 88% 26%,rgba(72,126,119,.11),transparent 48%);
    --lq-nav-bg:linear-gradient(135deg,rgba(58,48,39,.84),rgba(42,36,30,.68));
    --lq-shell-glow:radial-gradient(ellipse at 20% 0%,rgba(169,87,49,.08),transparent 55%),radial-gradient(ellipse at 95% 30%,rgba(72,126,119,.055),transparent 50%);
    --lq-overlay-surface:rgba(47,40,33,.95); --lq-plate-filter:invert(1); --lq-selection:rgba(227,150,116,.25); --lq-action-text:#241912;
    --lq-surface-primary:rgba(48,41,34,.92); --lq-border-primary:rgba(255,238,219,.16);
    --lq-surface-quiet:rgba(41,36,31,.40); --lq-border-quiet:rgba(255,238,219,.07);
    --shadow-card-quiet:0 2px 10px rgba(0,0,0,.12),inset 0 1px 0 rgba(255,238,219,.025);
    --hairline-c:rgba(255,238,219,.10); --hairline-strong:0 0 0 1px rgba(255,238,219,.18); --divider:rgba(255,238,219,.09);
    --shadow-sm:0 2px 6px rgba(0,0,0,.12); --shadow-md:0 6px 20px rgba(0,0,0,.20);
    --shadow-lg:0 16px 48px rgba(0,0,0,.35); --shadow-xl:0 24px 72px rgba(0,0,0,.45);
    --shadow-card-hover:0 12px 36px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,238,219,.07);
    --shadow-card-lift:0 18px 42px rgba(0,0,0,.28);
    --shadow-window:0 16px 48px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,238,219,.07); --shadow-window-hover:0 20px 52px rgba(0,0,0,.32);
    --material-bg-strong:rgba(41,36,31,.92); --mask-bg:rgba(9,7,5,.60);
    --sidebar-hover:rgba(227,150,116,.07); --sidebar-active-bg:rgba(227,150,116,.12);
    --chart-2:#8BBDB7; --table-stripe:rgba(226,207,186,.025); --table-row-hover:rgba(227,150,116,.065);
    --grad-line-fill:rgba(227,150,116,.12); --shadow-glow:0 6px 20px rgba(217,119,87,.12);
    --grid-line:rgba(255,238,219,.035); --grid-line-strong:rgba(255,238,219,.06); --mask-fade:#FFF;
  }
}

@media (max-width:767px){
  :root{--lq-chrome-gap:12px;--content-pad-x:16px;--section-y:clamp(48px,9vw,72px)}
}
@media (prefers-reduced-motion:reduce){
  :root{--dur-instant:.01ms;--dur-fast:.01ms;--dur-base:.01ms;--dur-slow:.01ms}
}
/* Transparency preference: glass falls back to solid surfaces, blur to none. */
@media (prefers-reduced-transparency:reduce){
  :root{--lq-surface:var(--lq-surface-solid);--lq-surface-quiet:var(--lq-surface-solid);
    --lq-surface-primary:var(--lq-surface-solid);--lq-nav-bg:var(--lq-surface-solid);--lq-blur:none}
}
