/* ==========================================================
   ICFK 精简版 · 基础：色板 / 字体 / 重置
   浅色为默认；跟随系统深色；data-theme 可强制切换
   ========================================================== */
:root{
  --bg:#E7EBF0;
  --surface:#F9FAFC;
  --sunk:#EEF1F5;
  --ink:#1D2330;
  --ink-2:#39414F;
  --muted:#566072;
  --faint:#838C9C;
  --line:#D2D8E1;
  --line-2:#BCC4D0;

  --accent:#0B6962;
  --accent-soft:#D9EBE8;
  --on-accent:#FFFFFF;

  --high:#AE3325;
  --high-bg:#F6E1DD;
  --mid:#7F5900;
  --mid-bg:#F2E7C9;

  --ta:#2D58A6;      /* 蓝方 */
  --ta-bg:#E0E7F4;
  --tb:#A8432A;      /* 红方 */
  --tb-bg:#F4E3DD;

  --shadow-pop:0 18px 40px -12px rgba(29,35,48,.28),0 2px 6px rgba(29,35,48,.08);
  --shadow-float:0 6px 18px rgba(29,35,48,.22);
  --scrim:rgba(24,29,38,.34);

  --f-sans:'Noto Sans SC','Noto Sans CJK SC','PingFang SC','Microsoft YaHei','Hiragino Sans GB',system-ui,sans-serif;
  --f-serif:'Noto Serif SC','Noto Serif CJK SC','Source Han Serif SC','Songti SC','STSong','SimSun',serif;

  --ease:cubic-bezier(.2,.8,.2,1);
  --ease-in:cubic-bezier(.4,0,1,1);
  --r-card:10px;
  --r-ctl:6px;
  --r-tag:4px;

  --side-w:244px;
  --rail-w:352px;

  color-scheme:light;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]):not([data-theme="white"]){
    --bg:#141922;--surface:#1C222C;--sunk:#181D26;--ink:#E6E9EF;--ink-2:#C6CCD6;--muted:#9AA3B3;--faint:#6F7888;
    --line:#2D3542;--line-2:#3B4453;
    --accent:#4DB5AA;--accent-soft:#1B3431;--on-accent:#0E1A19;
    --high:#EF8876;--high-bg:#3A2324;--mid:#E1B64E;--mid-bg:#352D1B;
    --ta:#86A9E8;--ta-bg:#1E293C;--tb:#E5917A;--tb-bg:#3A2621;
    --shadow-pop:0 18px 44px -10px rgba(0,0,0,.6),0 2px 6px rgba(0,0,0,.4);
    --shadow-float:0 6px 20px rgba(0,0,0,.5);
    --scrim:rgba(4,6,10,.55);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#141922;--surface:#1C222C;--sunk:#181D26;--ink:#E6E9EF;--ink-2:#C6CCD6;--muted:#9AA3B3;--faint:#6F7888;
  --line:#2D3542;--line-2:#3B4453;
  --accent:#4DB5AA;--accent-soft:#1B3431;--on-accent:#0E1A19;
  --high:#EF8876;--high-bg:#3A2324;--mid:#E1B64E;--mid-bg:#352D1B;
  --ta:#86A9E8;--ta-bg:#1E293C;--tb:#E5917A;--tb-bg:#3A2621;
  --shadow-pop:0 18px 44px -10px rgba(0,0,0,.6),0 2px 6px rgba(0,0,0,.4);
  --shadow-float:0 6px 20px rgba(0,0,0,.5);
  --scrim:rgba(4,6,10,.55);
  color-scheme:dark;
}

*,*::before,*::after{box-sizing:border-box}
html{height:100%;scroll-padding-top:env(safe-area-inset-top,0px);-webkit-text-size-adjust:100%}
body{
  height:100%;margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--f-sans);font-size:14px;line-height:1.5;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:inherit}
img,svg{display:block;max-width:100%}
h1,h2,h3,h4,p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
table{border-collapse:collapse;width:100%}
[hidden]{display:none!important}
::selection{background:var(--accent-soft);color:var(--ink)}

a:focus-visible,button:focus-visible,[tabindex]:focus-visible,summary:focus-visible{
  outline:2px solid var(--accent);outline-offset:2px;border-radius:4px;
}

/* 字体角色 */
.serif{font-family:var(--f-serif);font-weight:700;letter-spacing:.01em}
.tn{font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}
.faint{color:var(--faint)}
.ta{color:var(--ta)}
.tb{color:var(--tb)}
.c-high{color:var(--high)}
.c-mid{color:var(--mid)}
.c-accent{color:var(--accent)}
.nowrap{white-space:nowrap}
.ell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* 滚动条：细而安静 */
*{scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:10px;border:3px solid transparent;background-clip:content-box}
*::-webkit-scrollbar-track{background:transparent}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
