@charset "utf-8";
/* ============================================================
   线报站 · 统一设计令牌 v1
   参考线报酷 tokens.css 结构，裁剪到我们实际用到的部分。
   三层：
     ① zinc 原色板（原子层，组件不要直接引用）
     ② 规范语义层（新组件一律只用这一层）
     ③ 兼容别名层（保留旧名，方便渐进迁移）
   ============================================================ */

/* ---------- ① zinc 原色板 ---------- */
:root{
  --zinc-50:#fafafa;  --zinc-100:#f4f4f5; --zinc-200:#e4e4e7; --zinc-300:#d4d4d8;
  --zinc-400:#a1a1aa; --zinc-500:#71717a; --zinc-600:#52525b; --zinc-700:#3f3f46;
  --zinc-800:#27272a; --zinc-900:#18181b; --zinc-950:#09090b;
}

/* ---------- ② 语义层（亮色）---------- */
:root{
  /* 面 */
  --bg:#fafafa;
  --surface:#ffffff;
  --surface-2:#f4f4f5;
  --surface-3:#fafafa;
  --surface-hover:#ebebec;
  /* 线 */
  --border:#e4e4e7;
  --border-strong:#d4d4d8;
  /* 字 */
  --text:#09090b;
  --text-body:#3f3f46;
  --text-2:#71717a;
  --text-3:#a1a1aa;
  --text-read:#d4d4d8;
  /* 主色（近黑，夜间反白）*/
  --primary:#18181b;
  --primary-hover:#27272a;
  --on-primary:#ffffff;
  /* 链接 */
  --link:#09090b;
  --link-hover:#52525b;
  --link-ext:#2563eb;
  --link-ext-hover:#1d4ed8;
  /* 语义色（只进徽章圆点 / 危险文字）*/
  --success:#10b981;
  --success-text:#059669;
  --warning:#f59e0b;
  --danger:#dc2626;
  --danger-text:#dc2626;
  --danger-bg:rgba(220,38,38,.08);
  --vip:#b45309;
  /* 描边配方 */
  --ring:#e4e4e7;
  --ring-strong:#d4d4d8;
  --shadow-ring:0 0 0 1px var(--ring);
  --shadow-ring-sm:0 0 0 1px var(--ring),0 1px 2px rgba(0,0,0,.04);
  --shadow-ring-lg:0 0 0 1px var(--ring),0 8px 30px rgba(0,0,0,.08);
  --shadow-ring-pop:0 0 0 1.5px var(--primary),0 1px 2px rgba(0,0,0,.04);
  /* 焦点 */
  --focus-ring:#71717a;
  --focus-halo:rgba(24,24,27,.08);
  /* 圆角 */
  --radius-lg:12px;
  --radius:8px;
  --radius-sm:6px;
  --radius-pill:999px;
  /* 间距 */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px;
  --sp-5:20px; --sp-6:24px; --sp-7:32px; --sp-8:40px;
  /* 字号（乘 --fscale，改一个变量全站变）*/
  --fs-11:calc(.6875rem*var(--fscale,1));
  --fs-12:calc(.75rem*var(--fscale,1));
  --fs-13:calc(.8125rem*var(--fscale,1));
  --fs-14:calc(.875rem*var(--fscale,1));
  --fs-15:calc(.9375rem*var(--fscale,1));
  --fs-16:calc(1rem*var(--fscale,1));
  --fs-18:calc(1.125rem*var(--fscale,1));
  --fs-22:calc(1.375rem*var(--fscale,1));
  --fs-28:calc(1.75rem*var(--fscale,1));
  /* 字重 */
  --fw-400:400; --fw-500:500; --fw-600:600; --fw-700:700;
  /* 动效 */
  --dur-fast:.15s; --dur:.2s; --ease:cubic-bezier(.4,0,.2,1);
  /* 字体 */
  --font:-apple-system,BlinkMacSystemFont,"PingFang SC","MiSans",
    "HarmonyOS Sans SC","Microsoft YaHei","Segoe UI",Roboto,sans-serif;
  --font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  /* 布局 */
  --container:1280px;
  --header-h:60px;
  /* 列表行密度 */
  --row-pad-y:9px;
  --row-gap:10px;
  --row-h:40px;
  --row-border:#ececef;
  /* 品牌 */
  --brand:#14a3ef;
  color-scheme:light;
}

/* ---------- ② 语义层（暗色 html.night）---------- */
html.night{
  --bg:#18181b;
  --surface:#1f1f23;
  --surface-2:#27272a;
  --surface-3:#232327;
  --surface-hover:#3f3f46;
  --border:#2e2e33;
  --border-strong:#3f3f46;
  --text:#fafafa;
  --text-body:#d4d4d8;
  --text-2:#a1a1aa;
  --text-3:#71717a;
  --text-read:#52525b;
  --primary:#fafafa;
  --primary-hover:#e4e4e7;
  --on-primary:#18181b;
  --link:#fafafa;
  --link-hover:#a1a1aa;
  --link-ext:#60a5fa;
  --link-ext-hover:#93c5fd;
  --success:#34d399;
  --success-text:#34d399;
  --warning:#fbbf24;
  --danger:#ff7076;
  --danger-text:#ff7076;
  --danger-bg:rgba(255,112,118,.14);
  --ring:#2e2e33;
  --ring-strong:#3f3f46;
  --shadow-ring:0 0 0 1px var(--ring);
  --shadow-ring-sm:0 0 0 1px var(--ring),0 1px 2px rgba(0,0,0,.16);
  --shadow-ring-lg:0 0 0 1px var(--ring),0 8px 30px rgba(0,0,0,.5);
  --shadow-ring-pop:0 0 0 1.5px var(--primary),0 1px 2px rgba(0,0,0,.16);
  --focus-ring:#a1a1aa;
  --focus-halo:rgba(250,250,250,.08);
  --row-border:#27272a;
  color-scheme:dark;
}

/* ---------- ③ 兼容别名层 ---------- */
:root{
  --radius-card:var(--radius-lg);
  --radius-control:var(--radius);
  --radius-badge:var(--radius-pill);
  --c-primary:var(--primary);
  --shadow:var(--shadow-ring-sm);
  --header-bg:rgba(255,255,255,.88);
  --logo-ink:#14a3ef;
  --logo-star-h:27px;
  --logo-text-size:30px;
  --logo-gap:8px;
}
html.night{
  --radius-card:var(--radius-lg);
  --radius-control:var(--radius);
  --radius-badge:var(--radius-pill);
  --c-primary:var(--primary);
  --shadow:var(--shadow-ring-sm);
  --header-bg:rgba(24,24,27,.88);
  --logo-ink:#fafafa;
}
@media (max-width:1100px){
  :root{ --logo-star-h:22px; --logo-text-size:25px; --logo-gap:6px; --header-h:50px; }
}

/* 字号档位（顶栏「字号」切换挂 html.xb-fs-*）*/
html.xb-fs-s{--fscale:.94}
html.xb-fs-l{--fscale:1.06}
html.xb-fs-xl{--fscale:1.14}

/* 主题切换瞬间禁用过渡，避免整页跳帧 */
html.theme-switching,html.theme-switching *,
html.theme-switching *::before,html.theme-switching *::after{transition:none!important}
