/* ===========================================================================
 * GENERATED FILE — DO NOT EDIT BY HAND.
 * 由 tools/gen-tokens.js 从 src/admin_web/brand.ts 生成。
 * 要改颜色/字阶/间距,改 brand.ts 的 DARK / LIGHT / SCALE,然后重跑:
 *     node tools/gen-tokens.js
 * 直接改这个文件,下次任何人重新生成都会被静默覆盖回去。
 * =========================================================================== */
@font-face{
  font-family:'Playfair Display';
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url('/fonts/playfair-500-latin.woff2') format('woff2');
}
@font-face{
  font-family:'Playfair Display';
  font-style:normal;
  font-weight:700;
  font-display:swap;
  src:url('/fonts/playfair-700-latin.woff2') format('woff2');
}
:root{
  --nbg-canvas:#F4F6F9;
  --nbg-sunken:#EAEEF3;
  --nbg-surface:#FFFFFF;
  --nbg-surface-alt:#F0F3F7;
  --nbg-surface-hover:#E9EEF4;
  --nbg-overlay:#FFFFFF;
  --nbg-line:#DCE2EA;
  --nbg-line-strong:#818D9C;
  --nbg-ink:#0F151E;
  --nbg-ink2:#4B5768;
  --nbg-ink3:#5C6979;
  --nbg-ink-on:#FFFFFF;
  --nbg-accent:#1F56C8;
  --nbg-accent-hover:#17459F;
  --nbg-accent-soft:#E7EEFC;
  --nbg-accent-ink:#1B4CB5;
  --nbg-accent-solid:#1F56C8;
  --nbg-accent-solid-hover:#17459F;
  --nbg-good:#17794F;
  --nbg-good-soft:#E2F3EA;
  --nbg-good-ink:#136B45;
  --nbg-warn:#8A5A00;
  --nbg-warn-soft:#FAF0D6;
  --nbg-warn-ink:#6F4800;
  --nbg-crit:#B3271E;
  --nbg-crit-soft:#FBE9E7;
  --nbg-crit-ink:#8F1F18;
  --nbg-good-solid:#17794F;
  --nbg-warn-solid:#8A5A00;
  --nbg-crit-solid:#B3271E;
  --nbg-cat1:#1F56C8;
  --nbg-cat2:#0F726C;
  --nbg-cat3:#5B47B8;
  --nbg-cat4:#9C3F71;
  --nbg-cat5:#8A5A00;
  --nbg-cat6:#17794F;
  --nbg-nav-bg:#FFFFFF;
  --nbg-nav-ink:#4B5768;
  --nbg-nav-hover:#E9EEF4;
  --nbg-nav-active:#1F56C8;
  --nbg-nav-active-ink:#FFFFFF;
  --nbg-focus-ring:rgba(31,86,200,.35);
  --nbg-shadow1:0 1px 2px rgba(16,24,40,.07);
  --nbg-shadow2:0 12px 32px rgba(16,24,40,.16);
  --nbg-scroll-thumb:rgba(17,24,35,.22);
  --nbg-scroll-thumb-hover:rgba(17,24,35,.34);
  --nbg-fs0:11px;
  --nbg-fs1:12px;
  --nbg-fs2:13px;
  --nbg-fs3:14px;
  --nbg-fs4:16px;
  --nbg-fs5:20px;
  --nbg-fs6:24px;
  --nbg-fs7:30px;
  --nbg-fw-normal:400;
  --nbg-fw-med:500;
  --nbg-fw-semi:600;
  --nbg-fw-bold:700;
  --nbg-s1:4px;
  --nbg-s2:8px;
  --nbg-s3:12px;
  --nbg-s4:16px;
  --nbg-s5:20px;
  --nbg-s6:24px;
  --nbg-s7:32px;
  --nbg-s8:40px;
  --nbg-r-xs:2px;
  --nbg-r-sm:4px;
  --nbg-r-md:6px;
  --nbg-r-lg:8px;
  --nbg-r-pill:999px;
  --nbg-lh-tight:1.35;
  --nbg-lh-base:1.55;
  --nbg-font-ui:"Inter","Segoe UI","PingFang SC","Microsoft YaHei",Roboto,Helvetica,Arial,sans-serif;
  --nbg-font-mono:"JetBrains Mono","SF Mono",Consolas,Menlo,monospace;
  --nbg-font-display:"Playfair Display","Songti SC","Noto Serif CJK SC","Source Han Serif SC","SimSun",Georgia,"Times New Roman",serif;
  --nbg-ctl-h:32px;
  --nbg-ctl-h-sm:26px;
  --nbg-row-h-dense:28px;
  --nbg-row-h:36px;
  --nbg-row-h-loose:48px;
  --pg-bg1:var(--nbg-canvas);
  --pg-bg2:var(--nbg-canvas);
  --pg-panel:var(--nbg-surface);
  --pg-panel-2:var(--nbg-surface-alt);
  --pg-border:var(--nbg-line);
  --pg-ink:var(--nbg-ink);
  --pg-ink-2:var(--nbg-ink2);
  --pg-ink-3:var(--nbg-ink3);
  --pg-blue:var(--nbg-accent);
  --pg-blue-d:var(--nbg-accent-hover);
  --pg-blue-l:var(--nbg-accent-soft);
  --pg-green:var(--nbg-good);
  --pg-amber:var(--nbg-warn);
  --pg-red:var(--nbg-crit);
  --pg-cyan:var(--nbg-accent);
  --pg-violet:var(--nbg-accent);
  --pg-radius:var(--nbg-r-lg);
  --pg-radius-s:var(--nbg-r-sm);
  --pg-shadow:var(--nbg-shadow1);
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --nbg-canvas:#0A0E14;
    --nbg-sunken:#06090D;
    --nbg-surface:#121821;
    --nbg-surface-alt:#18202B;
    --nbg-surface-hover:#1E2733;
    --nbg-overlay:#1A222E;
    --nbg-line:#26303E;
    --nbg-line-strong:#6A7789;
    --nbg-ink:#E9EEF5;
    --nbg-ink2:#AEBACA;
    --nbg-ink3:#8793A5;
    --nbg-ink-on:#FFFFFF;
    --nbg-accent:#4B82F0;
    --nbg-accent-hover:#6A99F6;
    --nbg-accent-soft:#16243E;
    --nbg-accent-ink:#93B6FA;
    --nbg-accent-solid:#2A5BD4;
    --nbg-accent-solid-hover:#3568E4;
    --nbg-good:#2FA46C;
    --nbg-good-soft:#0E2A1E;
    --nbg-good-ink:#5CCB93;
    --nbg-warn:#C98A16;
    --nbg-warn-soft:#2C2213;
    --nbg-warn-ink:#E9B845;
    --nbg-crit:#D6494B;
    --nbg-crit-soft:#2E1618;
    --nbg-crit-ink:#F28A8A;
    --nbg-good-solid:#177346;
    --nbg-warn-solid:#8A5E08;
    --nbg-crit-solid:#BC2D30;
    --nbg-cat1:#4B82F0;
    --nbg-cat2:#2FB3A8;
    --nbg-cat3:#9A83F0;
    --nbg-cat4:#E07AA8;
    --nbg-cat5:#E8B849;
    --nbg-cat6:#5CCB93;
    --nbg-nav-bg:#080C12;
    --nbg-nav-ink:#AEBACA;
    --nbg-nav-hover:#1E2733;
    --nbg-nav-active:#2A5BD4;
    --nbg-nav-active-ink:#FFFFFF;
    --nbg-focus-ring:rgba(75,130,240,.45);
    --nbg-shadow1:0 1px 2px rgba(0,0,0,.45);
    --nbg-shadow2:0 12px 32px rgba(0,0,0,.60);
    --nbg-scroll-thumb:rgba(255,255,255,.16);
    --nbg-scroll-thumb-hover:rgba(255,255,255,.28);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --nbg-canvas:#0A0E14;
  --nbg-sunken:#06090D;
  --nbg-surface:#121821;
  --nbg-surface-alt:#18202B;
  --nbg-surface-hover:#1E2733;
  --nbg-overlay:#1A222E;
  --nbg-line:#26303E;
  --nbg-line-strong:#6A7789;
  --nbg-ink:#E9EEF5;
  --nbg-ink2:#AEBACA;
  --nbg-ink3:#8793A5;
  --nbg-ink-on:#FFFFFF;
  --nbg-accent:#4B82F0;
  --nbg-accent-hover:#6A99F6;
  --nbg-accent-soft:#16243E;
  --nbg-accent-ink:#93B6FA;
  --nbg-accent-solid:#2A5BD4;
  --nbg-accent-solid-hover:#3568E4;
  --nbg-good:#2FA46C;
  --nbg-good-soft:#0E2A1E;
  --nbg-good-ink:#5CCB93;
  --nbg-warn:#C98A16;
  --nbg-warn-soft:#2C2213;
  --nbg-warn-ink:#E9B845;
  --nbg-crit:#D6494B;
  --nbg-crit-soft:#2E1618;
  --nbg-crit-ink:#F28A8A;
  --nbg-good-solid:#177346;
  --nbg-warn-solid:#8A5E08;
  --nbg-crit-solid:#BC2D30;
  --nbg-cat1:#4B82F0;
  --nbg-cat2:#2FB3A8;
  --nbg-cat3:#9A83F0;
  --nbg-cat4:#E07AA8;
  --nbg-cat5:#E8B849;
  --nbg-cat6:#5CCB93;
  --nbg-nav-bg:#080C12;
  --nbg-nav-ink:#AEBACA;
  --nbg-nav-hover:#1E2733;
  --nbg-nav-active:#2A5BD4;
  --nbg-nav-active-ink:#FFFFFF;
  --nbg-focus-ring:rgba(75,130,240,.45);
  --nbg-shadow1:0 1px 2px rgba(0,0,0,.45);
  --nbg-shadow2:0 12px 32px rgba(0,0,0,.60);
  --nbg-scroll-thumb:rgba(255,255,255,.16);
  --nbg-scroll-thumb-hover:rgba(255,255,255,.28);
  color-scheme:dark;
}
:root[data-theme="light"]{
  --nbg-canvas:#F4F6F9;
  --nbg-sunken:#EAEEF3;
  --nbg-surface:#FFFFFF;
  --nbg-surface-alt:#F0F3F7;
  --nbg-surface-hover:#E9EEF4;
  --nbg-overlay:#FFFFFF;
  --nbg-line:#DCE2EA;
  --nbg-line-strong:#818D9C;
  --nbg-ink:#0F151E;
  --nbg-ink2:#4B5768;
  --nbg-ink3:#5C6979;
  --nbg-ink-on:#FFFFFF;
  --nbg-accent:#1F56C8;
  --nbg-accent-hover:#17459F;
  --nbg-accent-soft:#E7EEFC;
  --nbg-accent-ink:#1B4CB5;
  --nbg-accent-solid:#1F56C8;
  --nbg-accent-solid-hover:#17459F;
  --nbg-good:#17794F;
  --nbg-good-soft:#E2F3EA;
  --nbg-good-ink:#136B45;
  --nbg-warn:#8A5A00;
  --nbg-warn-soft:#FAF0D6;
  --nbg-warn-ink:#6F4800;
  --nbg-crit:#B3271E;
  --nbg-crit-soft:#FBE9E7;
  --nbg-crit-ink:#8F1F18;
  --nbg-good-solid:#17794F;
  --nbg-warn-solid:#8A5A00;
  --nbg-crit-solid:#B3271E;
  --nbg-cat1:#1F56C8;
  --nbg-cat2:#0F726C;
  --nbg-cat3:#5B47B8;
  --nbg-cat4:#9C3F71;
  --nbg-cat5:#8A5A00;
  --nbg-cat6:#17794F;
  --nbg-nav-bg:#FFFFFF;
  --nbg-nav-ink:#4B5768;
  --nbg-nav-hover:#E9EEF4;
  --nbg-nav-active:#1F56C8;
  --nbg-nav-active-ink:#FFFFFF;
  --nbg-focus-ring:rgba(31,86,200,.35);
  --nbg-shadow1:0 1px 2px rgba(16,24,40,.07);
  --nbg-shadow2:0 12px 32px rgba(16,24,40,.16);
  --nbg-scroll-thumb:rgba(17,24,35,.22);
  --nbg-scroll-thumb-hover:rgba(17,24,35,.34);
  color-scheme:light;
}
