/* 子页样式（第二版规格第 2.1、4、5 节）。@font-face 都在 fonts.css；首页在 board.css；地图页在 map.css；
   开关动画和转场在 transition.css。这里不给 .sheet、#scrim、.rv、.stamp 写 transform、transition、animation。 */
:root{
  color-scheme:light;
  --ink:#111113; --red:#D9001B;
  --paper:#FBF9F4;   /* 子页纸面 */
  --plate:#F4EFE4;   /* #axes9 浅色图版、地图浮层 */
  --card:#FFFDF8;    /* 抽屉、评分细则 */
  --text:#2B2A27; --gray:#6E675E; --rule:#DCD5C7; --dot:#CFC6B4;
  --soft:#F2EDE3; --none:#C9C2B4;
  /* 字体栈。子页正文 Inter + 思源黑体；标题用 SerifSC（润植家康熙字典美化体子集，一个字重）；编号、大数字用 Caslon。
     Caslon 带 unicode-range，汉字落到后面的字体 */
  --body:"Inter","NS","PingFang SC","Microsoft YaHei",sans-serif;
  --head:"Inter","NS","PingFang SC","Microsoft YaHei",sans-serif;
  --sc:"SerifSC","NS",serif;
  --cas:"Caslon","SerifSC","NS",serif;
  --cas-r:"Caslon","NS",serif;
  --type:var(--cas-r); /* 旧名，第一版的打字机字体已停用 */
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--text);font:15px/1.7 var(--body);-webkit-font-smoothing:antialiased}
/* 首页的字体栈不含 NS（字体由 board.css 定）；子页的弹层在首页打开时自己带上正文字体 */
body[data-page="board"]{font-family:"SerifH","Songti SC","SimSun",serif}
:is(.rules,.toc)[open],.sheet:not([hidden]){font-family:var(--body)}
h1,h2,h3,h4,p,ol,ul{margin:0;padding:0}
ol,ul{list-style:none}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--red);outline-offset:2px}
[tabindex="-1"]:focus{outline:none}
[hidden]{display:none!important}
.wrap{max-width:1240px;margin-inline:auto;padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px))}

/* 粗细双线：上 2px，空 2px，下 1px */
.dbl{height:5px;border-top:2px solid var(--ink);border-bottom:1px solid var(--ink)}

/* ---------- 书眉和页签：外壳吸顶，书眉 34px 滚出去，页签留在顶上 ---------- */
.site-head{position:sticky;top:-34px;z-index:22;background:var(--paper)}
.rh{height:34px;border-bottom:1px solid var(--rule)}
.rh-in{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:100%}
.back-board{justify-self:start;display:inline-flex;align-items:center;gap:7px;font:400 13px/1 var(--body);color:var(--gray);white-space:nowrap;transition:color .15s}
.back-board:hover{color:var(--red)}
.ic-book{width:18px;height:14px;flex:none}
.brand{font:700 17px/1 var(--sc);letter-spacing:.06em;color:var(--ink);white-space:nowrap}
.rh-meta{justify-self:end;font:400 12.5px/1 var(--body);color:var(--gray);white-space:nowrap}
.rh-meta b{font:700 13.5px/1 var(--cas);color:var(--ink);margin-inline:1px}

.nav{position:relative;background:var(--paper)}
.tabs{position:relative;display:flex;align-items:center;gap:30px;height:46px}
.tabs>a,.tabs>button{display:flex;align-items:baseline;gap:7px;padding:6px 0;white-space:nowrap}
.tabs b{font:400 11.5px/1 var(--cas-r);color:var(--gray);font-variant-numeric:lining-nums}
.tabs span{font:400 14px/1 var(--body);color:var(--text);transition:color .15s}
.tabs>:is(a,button):hover span{color:var(--ink)}
.tabs .on b{color:var(--red)}
.tabs .on span{font-weight:600;color:var(--ink)}
.tabs-sep{flex:none;width:1px;height:18px;background:var(--rule)}
.tab-rules{margin-left:auto}
/* 当前页签下的红线：宽 1px 再 scaleX，--ink-x、--ink-w 由 app.js 写入 */
.nav-ink{position:absolute;left:0;bottom:0;width:1px;height:2px;background:var(--red);transform-origin:0 0;pointer-events:none;
  translate:var(--ink-x,0) 0;scale:var(--ink-w,0) 1;transition:translate .3s var(--e-out,ease-out),scale .3s var(--e-out,ease-out)}
.tabs>.tab-index{display:none}

/* ---------- 筛选条 ---------- */
.filters{position:sticky;top:51px;z-index:15;background:var(--paper);border-bottom:1px solid var(--rule)}
.filters-in{display:flex;flex-wrap:wrap;align-items:center;gap:6px 26px;min-height:43px;padding-block:5px}
.seg{display:inline-flex;gap:14px}
.seg button{font-size:14px;line-height:1.5;color:var(--gray);padding:2px 0}
.seg button:hover{color:var(--ink)}
.seg button[aria-pressed="true"]{color:var(--ink);font-weight:600;box-shadow:inset 0 -1.5px var(--ink)}
#fDomain{border:0;background:none;font-size:14px;color:var(--ink);cursor:pointer;padding:2px 0;max-width:100%}
.tick{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--gray);cursor:pointer}
.tick:has(input:checked){color:var(--ink)}
.tick input{accent-color:var(--red);margin:0}
#fQ{border:0;border-bottom:1px solid var(--dot);background:none;font-size:14px;padding:2px 0;width:150px;border-radius:0}
#fQ:focus{outline:none;border-bottom-color:var(--ink)}
.shown{margin-left:auto;font-size:13px;color:var(--gray);white-space:nowrap}
.shown b{font:700 17px/1 var(--cas);color:var(--ink);font-variant-numeric:tabular-nums;margin-inline:2px}
body[data-page="geo"] .filters{display:none}

/* ---------- 区块和区块标题 ---------- */
.sec{padding-block:64px 0;scroll-margin-top:96px}
.sec.first{padding-top:48px}
#axes9{scroll-margin-top:96px}
.sec-head{display:grid;grid-template-columns:144px minmax(0,1fr) auto;align-items:end;gap:0 30px;padding-top:10px;margin-bottom:20px}
.sh-t{min-width:0}
.sec-head>.sec-more,.sec-head>.rules-btn{align-self:end;margin-bottom:4px}
.exh{display:block;margin:0 0 6px;font:400 11.5px/1.2 var(--cas-r);letter-spacing:.14em;text-transform:uppercase;color:var(--red);white-space:nowrap}
.sec-head h2{font:700 44px/1.15 var(--sc);letter-spacing:.06em;color:var(--ink)}
.stand{margin-top:8px;font:400 15px/1.6 var(--body);color:var(--gray);max-width:46em;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.sec-more{font:400 14px/1.4 var(--body);color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;white-space:nowrap;transition:color .15s}
.sec-more:hover{color:var(--red)}
.rules-btn{font:400 14px/1.4 var(--body);color:var(--ink);border:1px solid var(--ink);padding:5px 14px;white-space:nowrap;transition:background .15s,color .15s}
.rules-btn:hover{background:var(--ink);color:#fff}
.asof{margin-top:4px;font-size:14px;color:var(--gray)}
.asof b{font-weight:500;color:var(--red)}
.asof button{font-size:14px;color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.asof button:hover{color:var(--red)}

/* 档案照片：首页照片转场的落点。外框 144×124，图区 132×99（4:3），白边上左右 6px、底边 19px；
   外框宽高比 1.161，和首页 .ph 的 1.158 对得上。简图和钉子由 board.js（或 app.js）填进来 */
.exh-thumb{position:relative;display:block;flex:none;width:144px;height:124px;padding:6px 6px 19px;background:#FBF7EC;rotate:-2deg;
  box-shadow:0 1px 1px rgba(40,30,20,.14),0 7px 14px -7px rgba(40,30,20,.34)}
.exh-thumb>svg,.exh-thumb>.exh-num{display:block;width:100%;height:100%;background:#FBFAF6 radial-gradient(ellipse at 50% 45%,#FFFEFB 40%,#F1EDE3 100%);box-shadow:inset 0 0 0 1px rgba(60,50,40,.08)}
.exh-thumb>.exh-num{display:grid;place-items:center;font:400 22px/1 var(--cas-r);color:var(--gray)}
/* 钉子用首页同一张 pin.svg，22px 显示时钉帽直径约 12px，圆心在 (10.2, 9.4) */
.exh-thumb .exh-pin{position:absolute;z-index:1;left:50%;top:-7px;width:22px;height:22px;margin-left:-10.2px;background:url(board/props/pin.svg) 0 0/100% 100% no-repeat}

/* ---------- 页脚续见 ---------- */
.cont{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:48px;margin-top:56px;border-top:1px solid var(--rule)}
.cont>span:first-child{font:400 12.5px/1 var(--body);color:var(--gray)}
.cont .pg{display:flex;align-items:center;gap:10px;font:400 13px/1 var(--cas-r);color:var(--text)}
.cont .pg::before,.cont .pg::after{content:"";width:12px;height:1px;background:currentColor}
.cont a{justify-self:end;font:400 13px/1 var(--body);color:var(--gray);white-space:nowrap}
.cont a b{margin-left:4px;font:600 14px/1 var(--body);color:var(--ink);transition:color .15s}
.cont a i{font:400 14px/1 var(--cas-r);font-style:normal;color:var(--red);margin-right:3px}
.cont a:hover b{color:var(--red)}

/* ---------- 01 重点关注：三栏，栏间细竖线 ---------- */
.picks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:26px}
.pick{min-width:0;padding:0 28px}
.pick+.pick{border-left:1px solid var(--rule)}
.pick:first-child{padding-left:0}
.pick:last-child{padding-right:0}
.pick h3{display:flex;align-items:baseline;gap:10px;padding-bottom:10px;border-bottom:1px solid var(--ink)}
.pick h3 .rn{font:400 22px/1 var(--cas-r);color:var(--red)}
.pick h3 .t{font:700 19px/1.2 var(--sc);color:var(--ink)}
.pick li{position:relative;display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:0 8px;align-items:baseline;padding:13px 0;border-bottom:1px dotted var(--dot);cursor:pointer}
/* 悬停底色左右各多出 6px，用伪元素画，栏线不动 */
.pick li::before{content:"";position:absolute;inset:0 -6px;background:rgba(217,0,27,.04);opacity:0;transition:opacity .15s;pointer-events:none}
.pick li:hover::before{opacity:1}
.pick li:hover .t{color:var(--red)}
.pick .no{font:400 11.5px/1 var(--cas-r);color:var(--gray);font-variant-numeric:tabular-nums}
.pick .pk-b{min-width:0}
.pick li .t{display:block;font:500 15px/1.4 var(--body);color:var(--ink);transition:color .15s}
.pick .m{display:block;margin-top:2px;font:400 13px/1.5 var(--body);color:var(--gray)}
.pick .n{font:700 26px/1 var(--cas);color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.pick .n small{margin-left:2px;font:400 12px/1 var(--body)}
.pick .n.hot{color:var(--red)}

/* ---------- 02 价值分布 ---------- */
.mapgrid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:36px;align-items:start;margin-top:26px}
/* 图区双线图廓：外框 1px，内缩 6px 再一道 .5px，都画在外层容器上 */
.chart-frame{position:relative;border:1px solid var(--ink);padding:6px}
.chart-frame::after{content:"";position:absolute;inset:5px;border:.5px solid var(--ink);pointer-events:none;z-index:3}
.chart{position:relative;height:clamp(460px,66vh,700px);overflow:hidden}
#gl{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab}
#gl.grabbing{cursor:grabbing}
#gl.point{cursor:pointer}
.overlay{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.tk{position:absolute;left:0;top:0;font-size:11px;line-height:1;color:var(--gray);white-space:nowrap;font-variant-numeric:tabular-nums;will-change:transform;opacity:0;transition:opacity .2s;text-shadow:0 0 3px #FBF9F4,0 0 3px #FBF9F4}
.tk.axis{font:600 13px/1 var(--head);color:var(--ink)}
.tk.quad{font:500 13px/1 var(--head);color:var(--red)}
.lb{position:absolute;left:0;top:0;opacity:0;white-space:nowrap;font:500 12.5px/1.2 var(--head);color:var(--ink);will-change:transform;transition:opacity .15s;text-shadow:0 0 3px #FBF9F4,0 0 3px #FBF9F4,0 0 6px #FBF9F4}
.lb.hot{color:var(--red)}
.lb.act{font-weight:600;font-size:14px;z-index:2}
/* 题注：“图二”宋体，后面一句说明 */
.fig-cap{margin-top:10px;font:400 13px/1.6 var(--body);color:var(--gray)}
.fig-cap b{margin-right:.6em;font:700 14px/1 var(--sc);color:var(--ink)}

/* 时间滑块做成尺子：每 7 天 6px 短刻度，每 49 天 12px 长刻度。滑块范围 0–240 天，
   滑块圆点直径 13px，可走的范围是左右各缩 6.5px，所以刻度从 6.5px 起，间距按 (宽 - 13px) 算 */
.clock{position:relative;display:flex;align-items:flex-end;gap:16px;margin-top:14px;color:var(--ink)}
#play{flex:none;width:30px;height:30px;border:1px solid var(--ink);border-radius:50%;font-size:10px;transition:background .15s,color .15s}
#play:hover{background:var(--ink);color:#fff}
#clockBtn{flex:none;display:inline-flex;align-items:baseline;gap:8px;min-width:150px;padding:4px 0 5px;white-space:nowrap;border-bottom:1px solid var(--ink)}
#clockBtn::after{content:"";align-self:center;border:4px solid transparent;border-top-color:currentColor;margin:4px 0 0 auto}
#clockBtn:hover,#clockBtn[aria-expanded="true"]{color:var(--red)}
.cd-en{font:400 13px/1 var(--cas-r);letter-spacing:.04em;font-variant-numeric:tabular-nums}
.cd-wk{font:400 13px/1 var(--body)}
.clock input{flex:1;min-width:0}
input[type=range]{-webkit-appearance:none;appearance:none;height:18px;background:none;margin:0;cursor:pointer;color:var(--ink)}
input[type=range]::-webkit-slider-runnable-track{height:1px;background:currentColor}
input[type=range]::-moz-range-track{height:1px;background:currentColor}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:13px;height:13px;border-radius:50%;background:var(--red);margin-top:-6px;border:0}
input[type=range]::-moz-range-thumb{width:13px;height:13px;border-radius:50%;background:var(--red);border:0}
.clock input[type=range]{height:24px;
  background:
    linear-gradient(90deg,currentColor 1px,transparent 0) 6px 11px/calc((100% - 13px) * 49 / 240) 12px repeat-x,
    linear-gradient(90deg,currentColor 1px,transparent 0) 6px 17px/calc((100% - 13px) * 7 / 240) 6px repeat-x;
  background-origin:border-box}
.clock input[type=range]::-webkit-slider-runnable-track{height:24px;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat}
.clock input[type=range]::-moz-range-track{height:24px;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat}
.clock input[type=range]::-webkit-slider-thumb{margin-top:17px}

/* 日历 */
.cal{position:absolute;left:0;bottom:calc(100% + 10px);z-index:12;width:292px;max-width:100%;background:var(--card);border:1px solid var(--ink);padding:14px 14px 12px;box-shadow:0 18px 40px rgba(40,30,20,.14)}
.cal-h{display:flex;align-items:center;justify-content:space-between;font:600 15px/1 var(--head);color:var(--ink);margin-bottom:10px}
.cal-h button{width:30px;height:30px;font-size:17px;line-height:1;color:var(--ink)}
.cal-h button:hover:not(:disabled){color:var(--red)}
.cal-h button:disabled{color:var(--rule);cursor:default}
.cal-g{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center}
.cal-g .wd{font-size:12px;color:var(--gray);padding-bottom:4px}
.cd{position:relative;height:34px;font-size:13.5px;font-variant-numeric:tabular-nums;color:var(--ink)}
.cd:disabled{color:#C2BAAD;cursor:default}
.cd:not(:disabled):hover{background:var(--soft)}
.cd.td{color:var(--red);font-weight:700}
.cd.sel,.cd.sel:hover{background:var(--ink);color:#fff}
.cd.due::after{content:"";position:absolute;left:50%;bottom:4px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--red)}
.cd.sel.due::after{background:#FF4D5E}
.cal-f{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding-top:10px;border-top:1px solid var(--rule);font-size:12.5px;color:var(--gray)}
.cal-f i{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--red);margin-right:6px;vertical-align:2px}
.cal-f button{font-size:13px;color:var(--ink);border-bottom:1px solid var(--ink)}
.cal-f button:hover{color:var(--red);border-color:var(--red)}

/* 右栏：图例、坐标轴，行间点线 */
.side h3{font:700 14px/1 var(--sc);color:var(--ink);padding-bottom:9px;border-bottom:1px solid var(--ink)}
.legend{margin-bottom:24px}
.lg-r{display:grid;grid-template-columns:44px minmax(0,1fr);gap:0 8px;font-size:13.5px;line-height:1.8;padding:5px 0;color:var(--ink);border-bottom:1px dotted var(--dot)}
.lg-r>b{font-weight:400;color:var(--gray)}
.lg-c{display:flex;flex-wrap:wrap;gap:0 14px}
.lg-c li{display:flex;align-items:center}
.dot{flex:none;display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--ink);margin-right:7px}
.dot.hot{background:var(--red)}
.dot.none{background:var(--none)}
.lg-s{display:flex;flex-wrap:wrap;align-items:center;gap:0 12px}
.lg-s span{display:inline-flex;align-items:center}
.sz{display:inline-block;border-radius:50%;background:var(--ink);margin-right:6px}
.sz.s{width:6px;height:6px}
.sz.l{width:16px;height:16px}
.dash{flex:none;display:inline-block;margin-right:8px}
.dash.v{width:10px;height:14px;background:linear-gradient(var(--red) 55%,transparent 0) 4px 0/1.5px 5px repeat-y}
.dash.h{width:10px;height:10px;background:linear-gradient(90deg,var(--red) 55%,transparent 0) 0 4px/5px 1.5px repeat-x}
.lg-q{display:grid;grid-template-columns:auto 1fr 1fr;gap:0 10px;font-size:12.5px;line-height:1.9}
.lg-q span{color:var(--gray)}
.lg-q em{font-style:normal;font-weight:500;color:var(--red)}
.lg-op{color:var(--gray);font-size:13px}
.axes{display:grid;grid-template-columns:44px minmax(0,1fr);gap:0 8px;font-size:14px}
.ax{display:contents}
.ax b{font-weight:400;color:var(--gray);line-height:2.3;border-bottom:1px dotted var(--dot)}
.ax select{border:0;border-bottom:1px dotted var(--dot);background:none;padding:6px 0;color:var(--ink);font-size:14px;cursor:pointer;width:100%}
/* 索引卡：顶部 40px 处一道红线，以下每 24px 一道浅蓝横线，行高 24px */
.card{margin-top:26px;padding:8px 14px 12px;min-height:184px;cursor:pointer;background:
    linear-gradient(transparent 39px,var(--red) 39px 40px,transparent 40px) 0 0/100% 40px no-repeat,
    repeating-linear-gradient(transparent 0 23px,#E8EEF3 23px 24px) 0 40px/100% calc(100% - 40px) no-repeat,
    #FFFEFA;
  box-shadow:0 0 0 1px var(--rule),0 6px 14px -8px rgba(40,30,20,.22)}
.card:empty{display:none}
.card .h{height:32px;font:600 16px/24px var(--body);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card .d{font-size:13px;line-height:24px;color:var(--gray)}
.card .d.hot{color:var(--red)}
.card .b{font-size:14px;line-height:24px;color:var(--text);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.card .more{display:inline-block;font-size:13px;line-height:24px;color:var(--red);text-decoration:underline;text-underline-offset:3px}

/* ---------- 03 指标对比：默认浅色图版（方案 A），上下各一道双线 ---------- */
.black{position:relative;background:var(--plate);color:var(--text);margin-top:72px;padding-block:58px 0}
.black::before,.black::after{content:"";position:absolute;left:0;right:0;height:5px;border:solid var(--ink);pointer-events:none}
.black::before{top:0;border-width:2px 0 1px}
.black::after{bottom:0;border-width:1px 0 2px}
.black .sec-head h2{color:var(--ink)}
.black .exh{color:var(--red)}
.black .rules-btn{color:var(--ink);border-color:var(--ink)}
.black .rules-btn:hover{background:var(--ink);color:#fff}
.black .cont{margin-top:40px;border-top-color:var(--rule)}
.black>.wrap{padding-bottom:12px}
.pc-lg{display:flex;flex-wrap:wrap;gap:6px 24px;margin-top:22px;font-size:13px;color:var(--gray)}
.pc-lg span{display:inline-flex;align-items:center}
.pc-lg .ln{display:inline-block;width:20px;height:0;border-top:2px solid #2B2A27;margin-right:8px}
.pc-lg .ln.hot{border-color:#D9001B}
.pc-lg .ln.none{border-top:2px dashed #9C9488}
.pc-lg .brk{display:inline-block;width:6px;height:16px;background:#D9001B;opacity:.7;margin-right:8px}
.pc-name{font:500 15px/1.4 var(--head);min-height:22px;color:var(--ink);margin:18px 0 6px}
.pc-scroll{overflow-x:auto}
.pc{min-width:920px}
#pc{width:100%;height:auto;display:block;user-select:none}
#pc text{fill:var(--text);font-family:"Inter","NS","PingFang SC","Microsoft YaHei",sans-serif}
#pc .ln{fill:none;stroke:#2B2A27;stroke-width:1;opacity:.28;cursor:pointer;transition:opacity .15s}
#pc .ln.hot{stroke:#D9001B;opacity:.7}
#pc .ln.none{stroke:#9C9488;stroke-dasharray:4 4;opacity:.6}
#pc.brushed .ln{opacity:.85}
#pc .ln.off,#pc.brushed .ln.off{opacity:.06}
#pc .ln:hover{stroke-width:2.8;opacity:1}
#pc .rod{stroke:var(--ink);stroke-width:1}
#pc .hit{fill:transparent;cursor:ns-resize}
#pc .br{fill:#D9001B;opacity:.16;stroke:#D9001B;stroke-width:1;pointer-events:none}
.pc-w{display:grid;grid-template-columns:repeat(9,1fr);margin-top:8px}
.pc-w div{text-align:center;padding-inline:14%;font-size:13px;color:var(--gray)}
.pc-w output{display:block;font:700 17px/1.4 var(--cas);color:var(--ink);font-variant-numeric:tabular-nums}
.pc-w input{width:100%;color:var(--ink)}
.presets{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:22px;font-size:14px}
.presets button{color:var(--gray);padding:2px 0;border-bottom:1px solid transparent}
.presets button:hover{color:var(--red)}
.presets button[aria-pressed="true"]{color:var(--ink);border-color:var(--red)}


/* ---------- 05 赛事清单：组名只在左列出现一次 ---------- */
#pgList{padding-bottom:72px}
.thead,.row{display:grid;column-gap:16px}
.thead{grid-template-columns:120px 56px minmax(0,1fr) 84px 96px 104px 66px 52px;padding-bottom:8px;font:400 11px/1.2 var(--cas-r);letter-spacing:.12em;text-transform:uppercase;color:var(--gray)}
.thead span:last-child{text-align:right}
.group{display:grid;grid-template-columns:120px minmax(0,1fr);column-gap:16px;border-top:1px solid var(--ink)}
.group:first-child{border-top:0}
.group.hot{border-top-color:var(--red)}
.group.hot:first-child{box-shadow:0 -1px var(--red)}
.gl{position:sticky;top:96px;align-self:start;padding:16px 0 18px}
.gl h3{font:700 20px/1.25 var(--sc);color:var(--ink)}
.gl small{display:block;margin-top:4px;font:400 12px/1.4 var(--body);color:var(--gray)}
.group.hot .gl h3{color:var(--red)}
.rows{min-width:0;border-left:1px solid var(--rule);margin-left:-16px;padding-left:16px}
.row{grid-template-columns:56px minmax(0,1fr) 84px 96px 104px 66px 52px;align-items:baseline;padding:14px 0;border-bottom:1px dotted var(--dot);cursor:pointer;font-size:13.5px;line-height:1.55;transition:background-color .15s}
.row:last-child{border-bottom:0}
.row:hover{background:rgba(217,0,27,.035)}
.row:hover .t{color:var(--red)}
.row .dd{font:700 21px/1.1 var(--cas);color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.row .dd small{margin-left:1px;font:400 12px/1 var(--body)}
.row .dd em{display:block;margin-top:4px;font:400 12px/1.2 var(--cas-r);font-style:normal;color:var(--gray)}
.row .dd.hot{color:var(--red)}
.row .dd.none{font:400 13.5px/1.55 var(--body);color:var(--gray)}
.row .t{font:600 16px/1.35 var(--body);color:var(--ink);transition:color .15s}
.row .b{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin-top:3px;font-size:13.5px;color:var(--gray)}
.row .c-meta{display:contents}
.row .c-meta span{min-width:0;overflow-wrap:anywhere}
.row .v{font:700 19px/1.2 var(--cas);color:var(--ink);font-variant-numeric:tabular-nums;text-align:right}
.empty{padding:36px 0;color:var(--gray)}

/* 地域分布：map.css 加载前先显示这一行 */
.geo-wait{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;height:calc(100vh - 86px);height:calc(100dvh - 86px);font-size:13px;color:var(--gray)}
.geo-wait .geo-exh{display:flex;align-items:center;gap:12px}
.geo-wait .exh{margin-bottom:0}

/* ---------- 关闭按钮（细则、目录） ---------- */
.close{position:absolute;top:14px;right:16px;display:grid;place-items:center;width:36px;height:36px;color:var(--gray)}
.close:hover{color:var(--ink)}

/* ---------- 评分细则（规程页） ---------- */
.rules{border:0;padding:0;width:min(820px,calc(100% - 32px));max-width:none;max-height:calc(100% - 48px);background:var(--card);color:var(--text);box-shadow:0 24px 70px rgba(40,30,20,.22)}
.rules::backdrop{background:rgba(28,24,20,.36)}
.rules-in{position:relative;padding:38px 48px 30px}
.rules h3{font:700 30px/1.3 var(--sc);letter-spacing:.06em;color:var(--ink);text-align:center}
.rules h3+.dbl{margin-top:14px}
.rules-lead{margin:16px 0 18px;font-size:14px;color:var(--gray);text-align:center}
.mtable{width:100%;border-collapse:collapse;font-size:14px;line-height:1.65}
.mtable th{text-align:left;font:400 12.5px/1.4 var(--body);color:var(--gray);padding:0 14px 7px 0;border-bottom:3px double var(--ink);white-space:nowrap}
.mtable td{padding:11px 14px 11px 0;border-bottom:1px dotted var(--dot);vertical-align:baseline}
.mtable tr:last-child td{border-bottom:0}
.mtable .c-no{font:400 13px/1.65 var(--body);color:var(--gray);white-space:nowrap}
.mtable td.c-k{font:700 15px/1.6 var(--sc);color:var(--ink);white-space:nowrap}
.mtable td.c-src{font:italic 400 13px/1.65 "Caslon","NS",serif;color:var(--gray);white-space:nowrap}
.mtable .c-w{text-align:right;padding-right:0;white-space:nowrap}
.mtable td.c-w b{font:700 15px/1 var(--cas);color:var(--ink);font-variant-numeric:tabular-nums}
.mtable .dots{font-size:10px;letter-spacing:1px;color:var(--rule);vertical-align:1px}
.mtable .dots .on{color:var(--red)}
.mtable .pct{display:inline-block;min-width:3.2em;font-size:12.5px;color:var(--gray);font-variant-numeric:tabular-nums}
.mtable+.dbl{margin-top:2px}
.foot{margin-top:16px;font-size:13px;color:var(--gray)}

/* ---------- 详情抽屉（档案卡）。动画在 transition.css ---------- */
.scrim{position:fixed;inset:0;z-index:30;background:rgba(28,24,20,.28)}
.sheet{position:fixed;top:0;right:0;bottom:0;z-index:31;width:min(600px,100%);background:var(--card)}
/* 阴影放在伪元素上；滚动放在 #sheetBody 里，伪元素的阴影才不会被滚动区裁掉 */
.sheet::before{content:"";position:absolute;inset:0;z-index:-1;box-shadow:-20px 0 56px rgba(40,30,20,.16),-1px 0 0 rgba(40,30,20,.08);pointer-events:none}
#sheetBody{position:relative;height:100%;overflow-y:auto;overscroll-behavior:contain;
  padding:calc(34px + env(safe-area-inset-top,0px)) calc(40px + env(safe-area-inset-right,0px)) calc(44px + env(safe-area-inset-bottom,0px)) 40px}
.sh-close{position:absolute;z-index:2;top:calc(20px + env(safe-area-inset-top,0px));right:calc(18px + env(safe-area-inset-right,0px));display:grid;place-items:center;width:36px;height:36px;color:var(--gray);background:var(--card)}
.sh-close:hover{color:var(--ink)}
.sh-kick{margin-right:44px;padding-bottom:10px;border-bottom:1px solid var(--ink);font:400 11.5px/1.2 var(--cas-r);letter-spacing:.14em;text-transform:uppercase;color:var(--red);white-space:nowrap}
.sh-kick span{margin-left:12px;color:var(--gray);letter-spacing:.1em;text-transform:none}
.sh-title{margin-top:18px;font:600 24px/1.3 var(--body);color:var(--ink);overflow-wrap:anywhere}
#sheetBody:has(.stamp) .sh-title{padding-right:124px}
.sh-tags{margin-top:8px;font-size:13.5px;line-height:1.6;color:var(--gray)}
/* 标签每项一个 span，用间距隔开（不用全角空格：NS 子集里没有 U+3000） */
.sh-tags span{display:inline-block;margin-right:1em}
.sh-tags span:last-child{margin-right:0}
/* 印章：红色 2px 框外再套一道 .75px 细框。旋转在 transition.css */
.stamp{position:absolute;top:calc(84px + env(safe-area-inset-top,0px));right:calc(40px + env(safe-area-inset-right,0px));display:inline-flex;align-items:baseline;gap:3px;padding:5px 10px;
  border:2px solid var(--red);outline:.75px solid var(--red);outline-offset:2px;color:var(--red);opacity:.88;font:500 12px/1.2 var(--body);white-space:nowrap;pointer-events:none}
.stamp b{font:700 20px/1 var(--cas);margin-inline:1px}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:22px 0 0;background:var(--rule);border:1px solid var(--ink)}
.fact{min-width:0;padding:8px 12px 9px;background:var(--card)}
.fact.wide{grid-column:1/-1}
.fact dt{font:400 11.5px/1.4 var(--body);color:var(--gray)}
.fact dd{margin:2px 0 0;font:400 14px/1.55 var(--body);color:var(--text);overflow-wrap:anywhere}
.sheet h4{margin:26px 0 6px;font:700 16px/1.4 var(--sc);color:var(--ink)}
.sheet section p{font-size:15px;line-height:1.8}
.warn{margin-top:16px;padding-left:10px;border-left:2px solid var(--red);font-size:13px;line-height:1.7;color:var(--gray)}
.sh-go{display:flex;align-items:center;margin-top:28px;padding:13px 16px;background:var(--ink);color:#fff;font:500 15px/1.2 var(--body);transition:background-color .15s}
.sh-go:hover{background:var(--red)}
.score{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:0 26px;margin-top:28px;padding-top:22px;border-top:1px solid var(--ink)}
/* 双圈圆章 */
.seal{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:92px;height:92px;border:1.5px solid var(--ink);border-radius:50%}
.seal::after{content:"";position:absolute;inset:3px;border:.75px solid var(--ink);border-radius:50%}
.seal b{font:700 34px/1 var(--cas);color:var(--ink);font-variant-numeric:tabular-nums}
.seal small{margin-top:4px;font:400 11px/1 var(--body);color:var(--gray)}
.bars{display:grid;gap:7px}
.bars li{display:grid;grid-template-columns:64px minmax(0,1fr) 22px;align-items:center;gap:10px;font-size:13px;line-height:1.3}
.bars li i{position:relative;display:block;height:7px;background:#ECE6D9}
.bars li i b{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--ink)}
.bars li.top i b{background:var(--red)}
.bars li em{font:700 14px/1 var(--cas);font-style:normal;color:var(--ink);text-align:right;font-variant-numeric:tabular-nums}
.src{margin-top:24px;font-size:13px;line-height:1.7;color:var(--gray)}

/* ---------- 手机目录（静态样式；开关动画在 transition.css） ---------- */
.toc{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;border:0;padding:calc(64px + env(safe-area-inset-top,0px)) 20px calc(24px + env(safe-area-inset-bottom,0px));background:var(--paper);color:var(--ink);overflow-y:auto}
.toc::backdrop{background:transparent}
.toc .close{top:calc(14px + env(safe-area-inset-top,0px));right:12px}
.toc li{border-bottom:1px solid var(--rule)}
.toc li>:is(a,button){display:grid;grid-template-columns:34px auto minmax(16px,1fr) auto;align-items:baseline;width:100%;padding:16px 0;text-align:left}
.toc b{font:400 13px/1 var(--cas-r);color:var(--red)}
.toc span{font:700 24px/1.2 var(--sc);letter-spacing:.04em;color:var(--ink)}
.toc .ld{align-self:center;margin:0 12px;border-bottom:1px dotted var(--dot);translate:0 6px}
.toc small{font:400 13px/1 var(--body);color:var(--gray);white-space:nowrap}
.toc .toc-back span{grid-column:2}
.toc li>:is(a,button):hover span{color:var(--red)}

/* ---------- 中等宽度：清单和价值分布改成两行、单栏 ---------- */
@media (max-width:1099px){
  .mapgrid{grid-template-columns:minmax(0,1fr)}
  .card{min-height:0}
  .thead{display:none}
  .row{grid-template-columns:56px minmax(0,1fr) 40px;row-gap:4px}
  .row .c-name{grid-column:2;grid-row:1}
  .row .v{grid-column:3;grid-row:1}
  .row .c-meta{grid-column:2/4;grid-row:2;display:flex;flex-wrap:wrap;gap:0 12px;font-size:13px;color:var(--gray)}
  .row .c-meta span:empty{display:none}
}

/* ---------- 窄屏（<768） ---------- */
@media (max-width:767px){
  .wrap{padding-left:max(18px,env(safe-area-inset-left,0px));padding-right:max(18px,env(safe-area-inset-right,0px))}
  /* 书眉：回手记 / 比赛雷达 / 目录 */
  .rh-meta{display:none}
  .tabs>.tab-index{display:block;height:auto;position:absolute;top:-28px;right:max(18px,env(safe-area-inset-right,0px));padding:3px 8px;border:1px solid var(--ink);font:400 12.5px/1 var(--body);color:var(--ink)}
  /* 页签六等分，名字换成两个字 */
  .tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0}
  .tabs>a,.tabs>button{flex-direction:column;align-items:center;justify-content:center;gap:5px;height:46px;padding:0}
  .tabs b{font-size:11px}
  .tabs [data-short] span{display:none}
  .tabs [data-short]::after{content:attr(data-short);font:400 12.5px/1 var(--body);color:var(--text)}
  .tabs .on[data-short]::after{font-weight:600;color:var(--ink)}
  .tabs-sep{display:none}
  .tab-rules{margin-left:0}
  .filters{position:static}
  .filters-in{gap:6px 16px;padding-block:8px}
  #fQ{flex:1 1 120px;width:auto}
  .sec{padding-top:40px}
  .sec.first{padding-top:28px}
  .sec-head{grid-template-columns:minmax(0,1fr) auto;gap:0 12px;padding-top:0;margin-bottom:16px}
  .sec-head>.exh-thumb{display:none}
  .sec-head h2{font-size:30px}
  .stand{font-size:13.5px}
  .rules-btn{padding:4px 10px;font-size:13px}
  .picks{grid-template-columns:minmax(0,1fr);gap:30px;margin-top:18px}
  .pick,.pick:first-child,.pick:last-child{padding:0}
  .pick+.pick{border-left:0}
  .mapgrid{margin-top:18px;gap:24px}
  .chart{height:clamp(360px,104vw,60svh)}
  .clock{gap:10px}
  #clockBtn{min-width:0}
  .black{margin-top:48px;padding-top:40px}
  .cont{margin-top:36px}
  .cont>span:first-child{font-size:12px}
  /* 清单：组名变横条，行内三列 52 / 1fr / 34 */
  .group{display:block}
  .gl{position:static;display:flex;align-items:baseline;justify-content:space-between;padding:14px 0 10px;border-bottom:1px solid var(--rule)}
  .gl h3{font-size:19px}
  .gl small{margin-top:0}
  .rows{border-left:0;margin-left:0;padding-left:0}
  .row{grid-template-columns:52px minmax(0,1fr) 34px;column-gap:12px}
  .row .dd{font-size:19px}
  .row .v{font-size:17px}
  .row:last-child{border-bottom:1px dotted var(--dot)}
  /* 细则：藏掉“条”和“来源”两列 */
  .rules-in{padding:34px 18px 24px}
  .rules h3{font-size:24px}
  .mtable .c-no,.mtable .c-src{display:none}
  /* 抽屉全屏 */
  .sheet{width:100%}
  #sheetBody{padding:calc(24px + env(safe-area-inset-top,0px)) calc(18px + env(safe-area-inset-right,0px)) calc(32px + env(safe-area-inset-bottom,0px)) 18px}
  .sh-close{top:calc(10px + env(safe-area-inset-top,0px));right:calc(8px + env(safe-area-inset-right,0px))}
  .sh-title{font-size:21px}
  #sheetBody:has(.stamp) .sh-title{padding-right:0}
  .stamp{position:relative;top:auto;right:auto;margin-top:10px;margin-left:3px}
  .score{grid-template-columns:80px minmax(0,1fr);gap:0 18px}
  .seal{width:80px;height:80px}
  .seal b{font-size:30px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.nav-ink{transition:none}}
