/* 澳科利情报站 · v5「地图 + 时间线」
   - 品牌蓝 #1D2088 只用在页头、编号和按钮；大面积是浅灰白底，低饱和。
   - 产品线各一色（落点、卡片顶边、标签圆点）；证据性质用形状区分，不只靠颜色。
   - 手机优先：375px 单列，正文 16px，触控目标 ≥40px；桌面最宽 1120px。只用系统字体。 */
:root{
  --bg:#F5F6FA; --surface:#FFFFFF; --surface2:#FAFBFD;
  --ink:#1D2133; --ink2:#454B63; --muted:#6A7088; --line:#E4E7F0; --line2:#EEF0F6;
  --brand:#1D2088; --brand-ink:#1D2088; --brand-soft:#ECEDF8; --brand-soft2:#DADCF3;
  --dot:#C6CAE6; --dot-hi:#A9AEDB; --map-bg:#F8F9FD;
  --sleeve:#E0765A; --press:#4A86D0; --customer:#C95C8C; --anilox:#2B9A8C;
  --blade:#CF962C; --mount:#5E9A4C; --engrave:#8D62B5; --material:#9A7650; --other:#8A90A3;
  --chg:#B26A0C; --chg-bg:#FDF2E1; --ok:#2F8B5E; --ok-bg:#E6F3EB; --unk:#6F7590; --unk-bg:#EEF0F5;
  --bad:#B4483C; --bad-bg:#FBECEA;
  --note-bg:#FFF6E3; --note-ink:#8A5A00;
  --shadow:0 1px 2px rgba(29,32,80,.05),0 6px 24px -8px rgba(29,32,80,.10);
  --sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",system-ui,sans-serif;
  --serif:"Songti SC","STSong","Noto Serif CJK SC","Source Han Serif SC",serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#11131B; --surface:#1A1D28; --surface2:#1E2130;
    --ink:#E9EBF3; --ink2:#C0C5D6; --muted:#9097AD; --line:#2D3142; --line2:#262A39;
    --brand:#1D2088; --brand-ink:#ABAFF6; --brand-soft:#23264A; --brand-soft2:#30346A;
    --dot:#363B62; --dot-hi:#4A5090; --map-bg:#161925;
    --sleeve:#F0927A; --press:#74A7E8; --customer:#E482AD; --anilox:#4FC0B1;
    --blade:#E6B456; --mount:#83BD70; --engrave:#B28ADB; --material:#C49F78; --other:#9AA0B5;
    --chg:#F0AE4E; --chg-bg:#3A2D17; --ok:#62C493; --ok-bg:#183126; --unk:#9AA0B5; --unk-bg:#262A38;
    --bad:#F08B80; --bad-bg:#3A1F1D;
    --note-bg:#2E2614; --note-ink:#E9C27A;
    --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px -10px rgba(0,0,0,.5);
    color-scheme:dark;
  }
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:72px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.7;overflow-x:hidden;overflow-wrap:anywhere}
a{color:var(--brand-ink);text-decoration:none}
h1,h2,h3,h4,p,ol,ul,dl,dd,figure{margin:0}
button,input,select,textarea{font:inherit;color:inherit}
img{max-width:100%}
.wrap{max-width:1120px;margin:0 auto;padding:0 16px}
.n,.num{font-variant-numeric:tabular-nums}
.empty{color:var(--muted);font-size:15px}

/* ───── 页头 ───── */
.top{position:sticky;top:0;z-index:20;background:var(--brand);color:#fff}
.top-in{display:flex;align-items:center;gap:12px;height:56px}
.brand{display:flex;align-items:center;gap:12px;color:#fff;min-height:44px;flex:none}
.brand img{height:20px;width:auto;display:block}
.brand .site{font-size:17px;font-weight:600;letter-spacing:.06em;padding-left:12px;border-left:1px solid rgba(255,255,255,.35);line-height:20px}
.who{margin-left:auto;display:flex;align-items:center;gap:4px;font-size:14px;color:rgba(255,255,255,.85);white-space:nowrap;min-width:0}
.who #me{overflow:hidden;text-overflow:ellipsis;max-width:7em}
.who a{color:#fff;display:inline-flex;align-items:center;min-height:40px;padding:0 6px 0 10px;border-radius:999px}
.who a:hover{background:rgba(255,255,255,.12)}
.nav{background:var(--surface);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding-top:6px;padding-bottom:6px}
.nav .wrap::-webkit-scrollbar{display:none}
.nav a{flex:none;display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:999px;font-size:15px;color:var(--ink2)}
.nav a:hover{background:var(--line2)}
.nav a[aria-current="page"]{background:var(--brand-soft);color:var(--brand-ink);font-weight:600}

/* ───── 首屏 ───── */
.hero{padding:22px 0 8px}
.kicker{display:inline-block;font-size:13px;letter-spacing:.14em;color:var(--brand-ink);font-weight:600}
.hero h1{font-family:var(--serif);font-size:28px;line-height:1.3;font-weight:700;margin-top:4px}
.win{color:var(--muted);font-size:15px;margin-top:4px}
.win b{color:var(--ink2);font-weight:500}
.lead{color:var(--ink2);font-size:16px;margin-top:6px}
.deck{display:inline-flex;align-items:center;gap:6px;min-height:40px;margin-top:8px;padding:0 14px;border-radius:999px;border:1px solid var(--brand-soft2);background:var(--surface);font-size:15px;font-weight:600}
.jump{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:12px -16px 0;padding:0 16px}
.jump::-webkit-scrollbar{display:none}
.jump a{flex:none;display:inline-flex;align-items:center;min-height:40px;padding:0 12px;border-radius:999px;font-size:14px;color:var(--ink2);background:var(--surface);border:1px solid var(--line)}

.grid-top{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-top:16px}
.card{background:var(--surface);border-radius:20px;box-shadow:var(--shadow);min-width:0}

/* 地图 */
.mapcard{padding:16px 10px 6px}
.mapcard .hd{padding:0 6px;display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
.mapcard h2{font-family:var(--serif);font-size:19px;font-weight:700}
.hint{font-size:13px;color:var(--muted)}
.map{display:block;width:100%;height:auto;margin-top:6px;background:var(--map-bg);border-radius:14px}
.map .rg circle{fill:var(--dot)}
.map .rg.on circle{fill:var(--dot-hi)}
.map .lbl{font:600 11px var(--sans);fill:var(--muted);letter-spacing:.04em}
.map .gl{fill:none;stroke:var(--dot-hi);stroke-width:1.4;stroke-dasharray:2.5 2.5}
.map .arc{fill:none;stroke-width:1.6;stroke-dasharray:3 3;stroke-linecap:round;opacity:.85}
.map .org{fill:var(--map-bg);stroke-width:1.6}
.map .pin circle.b{stroke:var(--map-bg);stroke-width:2.2}
.map .pin text,.map .bub text{font:700 10.5px var(--sans);fill:#fff;text-anchor:middle;dominant-baseline:central;pointer-events:none}
.map .pin .halo{opacity:.18}
.map .hit{fill:transparent}
.map a:focus-visible .b,.map a:focus-visible .bb{stroke:var(--ink);stroke-width:2}
.map .bub .bb{fill:var(--brand-ink);opacity:.78;stroke:var(--map-bg);stroke-width:1.6}
.map .bub.sel .bb{fill:var(--sleeve);opacity:1}
.map .bub.zero .bb{fill:var(--dot-hi);opacity:.5}
.map .bub text{font-size:9.5px}
@media (prefers-color-scheme:dark){.map .bub text{fill:#11131B}.map .bub.zero text{fill:var(--ink)}}
.legend{display:flex;flex-wrap:wrap;gap:4px 14px;padding:10px 6px 4px;font-size:13px;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.lg-dot{width:12px;height:12px;border-radius:50%;background:var(--muted)}
.lg-ring{width:10px;height:10px;border-radius:50%;border:1.6px solid var(--muted)}
.lg-dash{width:18px;border-top:1.6px dashed var(--muted)}

.idx{list-style:none;margin:6px 0 4px;padding:0}
.idx li+li{border-top:1px solid var(--line2)}
.idx a{display:flex;align-items:center;gap:12px;min-height:56px;padding:8px 6px;color:var(--ink)}
.idx .n{flex:none;width:28px;height:28px;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);background:var(--c);display:grid;place-items:center}
.idx .n i{transform:rotate(45deg);font-style:normal;color:#fff;font-weight:700;font-size:13px}
.idx .t{flex:1;min-width:0;font-size:16px;line-height:1.45}
.idx .t small{display:block;font-size:13px;color:var(--muted);margin-top:2px}
.idx .go{flex:none;color:var(--muted)}

/* 决策信号 */
.sig{padding:18px 18px 10px}
.sig h2{font-family:var(--serif);font-size:19px;font-weight:700}
.sub{font-size:13px;color:var(--muted);margin-top:2px}
.sig ol{list-style:none;margin:10px 0 0;padding:0;counter-reset:s}
.sig li{counter-increment:s;position:relative;padding:14px 0 14px 44px;font-size:16px;line-height:1.7}
.sig li+li{border-top:1px dashed var(--line)}
.sig li::before{content:counter(s);position:absolute;left:0;top:14px;width:30px;height:30px;border-radius:10px;background:var(--brand-soft);color:var(--brand-ink);font:700 16px/30px var(--serif);text-align:center}

/* 区块标题 */
.sec{margin-top:36px}
.sh{display:flex;align-items:flex-end;justify-content:space-between;gap:6px 10px;flex-wrap:wrap;margin-bottom:14px}
.sh h2{font-family:var(--serif);font-size:23px;font-weight:700;line-height:1.3}
.sh .kicker{display:block;margin-bottom:2px}
.sh p{font-size:14px;color:var(--muted)}

.pal{display:flex;flex-wrap:wrap;gap:6px;margin:-2px 0 18px}
.pal span{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink2);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:3px 10px 3px 8px}
.pal span::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--c)}

/* ───── 时间河 ───── */
.river{position:relative;padding-left:44px}
.river::before{content:"";position:absolute;left:14px;top:6px;bottom:6px;width:8px;border-radius:8px;
  background:linear-gradient(180deg,var(--brand-soft2),color-mix(in srgb,var(--anilox) 22%,var(--brand-soft)) 55%,var(--brand-soft))}
.tick{position:relative;margin:4px 0 14px -44px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tick b{display:inline-block;min-width:36px;text-align:center;background:var(--brand);color:#fff;font-size:13px;font-weight:600;border-radius:999px;padding:2px 8px}
.tick span{font-size:13px;color:var(--muted)}
.tick.end b{background:var(--surface);color:var(--muted);border:1px solid var(--line)}
.mini{position:relative;margin:0 0 14px;padding:2px 0}
.mini::before{content:"";position:absolute;left:-34px;top:11px;width:12px;height:12px;border-radius:50%;background:var(--surface);border:2.5px solid var(--dot-hi)}
.mini .d{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.mini .d em{font-style:normal;margin-left:6px;padding:1px 7px;border-radius:6px;background:var(--line2);color:var(--ink2)}
.mini p{font-size:16px;color:var(--ink2);line-height:1.6}
.lnk{display:inline-flex;align-items:center;min-height:40px;font-size:14px;font-weight:600}

.node{position:relative;margin:0 0 22px}
.node .pinr{position:absolute;left:-44px;top:14px;width:36px;height:36px;border-radius:50%;background:var(--c);color:#fff;display:grid;place-items:center;font:700 16px var(--sans);box-shadow:0 0 0 5px var(--bg)}
.node.fuzzy .pinr{box-shadow:0 0 0 5px var(--bg),0 0 0 7px var(--c)}
.node .when{font-size:14px;color:var(--muted);margin:0 0 6px;padding-top:4px;font-variant-numeric:tabular-nums;min-height:28px;display:flex;align-items:center;gap:4px 8px;flex-wrap:wrap}
.node .when b{color:var(--ink);font-weight:600;font-size:15px}

/* 事件卡片 */
.ev{background:var(--surface);border-radius:20px;box-shadow:var(--shadow);overflow:hidden;border-top:4px solid var(--c,var(--other));min-width:0}
.ev .in{padding:16px 16px 6px}
.ev .eid{font-size:12px;letter-spacing:.06em;color:var(--muted);font-weight:600;display:flex;flex-wrap:wrap;gap:2px 10px;align-items:center}
.ev h3{font-size:19px;line-height:1.45;font-weight:700;margin-top:4px;text-wrap:pretty}
.flag{font-size:12px;font-weight:600;letter-spacing:0;color:var(--brand-ink);background:var(--brand-soft);border-radius:6px;padding:0 7px}
.flag.bg{color:var(--muted);background:var(--line2)}
.facts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin:14px 0 4px}
.f{background:var(--surface2);border:1px solid var(--line2);border-radius:12px;padding:8px 10px;min-width:0}
.f dt{font-size:12px;color:var(--muted);letter-spacing:.06em}
.f dd{margin:2px 0 0;font-size:15px;line-height:1.55;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center}
.f.full{grid-column:1/-1}
.f dd.dts{display:block}
.f dd.dts span{display:block}
.f dd.dts span i{font-style:normal;color:var(--muted);margin-right:6px}
.chip{display:inline-flex;align-items:center;gap:5px;font-size:14px}
.chip::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--cc,var(--other))}
.geo{display:inline-flex;align-items:center;gap:3px;font-size:14px}
.geo svg{width:12px;height:12px;color:var(--muted);flex:none}
.meter{display:inline-flex;gap:3px;margin-left:2px;vertical-align:middle}
.meter i{width:14px;height:6px;border-radius:3px;background:var(--line)}
.meter i.on{background:var(--brand-ink)}
.claim{display:inline-flex;align-items:center;gap:6px;font-size:14px}
.claim::before{content:"";width:10px;height:10px;border-radius:50%;box-sizing:border-box}
.claim.fact::before{background:var(--ok)}
.claim.promo::before{border:2px solid var(--chg)}
.claim.inference::before{border:2px dashed var(--muted)}
.evl{font-size:14px;color:var(--ink2);line-height:1.6;display:block;width:100%}
.blk{margin-top:14px}
.blk h4{font-size:13px;letter-spacing:.1em;color:var(--muted);font-weight:600;display:flex;align-items:center;gap:8px}
.blk h4::after{content:"";flex:1;height:1px;background:var(--line2)}
.blk p{font-size:16px;margin-top:4px;color:var(--ink);text-wrap:pretty}
.blk.why p{background:color-mix(in srgb,var(--c,var(--other)) 9%,var(--surface));border-radius:12px;padding:10px 12px;margin-top:6px}

details.fold{border-top:1px solid var(--line2);margin:0 -16px}
.ev .in > details.fold:first-of-type{margin-top:14px}
details.fold > summary{list-style:none;cursor:pointer;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 16px;font-size:15px;font-weight:600;color:var(--ink2);-webkit-tap-highlight-color:transparent}
details > summary::-webkit-details-marker{display:none}
details.fold > summary::after,details.more > summary::after{content:"";flex:none;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg) translate(-2px,-2px);transition:transform .2s}
details.fold[open] > summary::after,details.more[open] > summary::after{transform:rotate(-135deg) translate(-2px,-2px)}
.imp{padding:0 16px 14px;display:grid;gap:8px}
.imp > div{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;font-size:16px;line-height:1.65}
.imp > div > span{font-size:13px;color:var(--muted);padding-top:3px}
.imp .none{color:var(--muted)}
.imp .nx{background:var(--brand-soft);border-radius:12px;padding:8px 10px;margin-top:2px;grid-template-columns:56px minmax(0,1fr)}
.imp .nx > span{color:var(--brand-ink);font-weight:600}
.src{list-style:none;margin:0;padding:0 16px 14px}
.src li{border-bottom:1px dashed var(--line2)}
.src li:last-child{border-bottom:0}
.src a,.src .nolink{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:6px 0;font-size:15px;color:var(--ink)}
.src a span{color:var(--brand-ink)}
.src small{display:block;font-size:13px;color:var(--muted)}
.src time{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums;text-align:right;flex:none;max-width:40%}
.fold .body{padding:0 16px 14px;font-size:16px;display:grid;gap:8px}
.fold .body .meta{font-size:14px;color:var(--muted)}

/* 有用/没用 + 讨论 */
.acts{display:flex;gap:8px;padding:10px 12px 12px;border-top:1px solid var(--line2);background:var(--surface2)}
.acts button{flex:1;min-width:0;min-height:44px;border:1px solid var(--line);background:var(--surface);border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:15px;color:var(--ink2);cursor:pointer;padding:0 8px;white-space:nowrap}
.acts button svg{width:17px;height:17px;flex:none}
.acts button[aria-pressed="true"]{background:var(--brand-soft);color:var(--brand-ink);border-color:var(--brand-soft2);font-weight:600}
.acts .talk{flex:1.3}
.acts .talk[aria-expanded="true"]{color:var(--brand-ink);border-color:var(--brand-soft2)}
.acts .k{font-variant-numeric:tabular-nums;color:inherit;opacity:.85}
.disc.inline .acts{border:1px solid var(--line2);border-radius:14px;margin-top:10px;padding:8px}
.thread{padding:12px 16px 16px;display:grid;gap:12px;border-top:1px solid var(--line2);background:var(--surface)}
.thread[hidden]{display:none}
.disc.inline .thread{border:1px solid var(--line2);border-top:0;border-radius:0 0 14px 14px;margin-top:-6px;padding:12px}
.cm{font-size:16px;line-height:1.65;padding-left:12px;border-left:2px solid var(--brand-soft2);white-space:pre-wrap}
.cm .h{font-size:13px;color:var(--muted);white-space:normal}
.cm-form{display:grid;gap:8px}

/* 表单 */
textarea,input[type=text],input[type=search],input[type=date],select{width:100%;min-height:44px;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:10px 12px;font-size:16px;line-height:1.5}
textarea{min-height:96px;resize:vertical}
textarea:focus,input:focus,select:focus{outline:2px solid var(--brand-soft2);border-color:var(--brand-ink)}
label{display:grid;gap:4px;font-size:15px;font-weight:600}
label span{font-weight:400;color:var(--muted);font-size:14px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 18px;border-radius:12px;border:1px solid var(--line);background:var(--surface);font-size:15px;color:var(--brand-ink);font-weight:600;cursor:pointer}
.btn.solid{background:var(--brand);color:#fff;border-color:var(--brand)}
.btn.wide{width:100%;margin-top:10px}
.btn:disabled{opacity:.5;cursor:default}
.notice{background:var(--ok-bg);color:var(--ok);border-radius:12px;padding:10px 12px;font-size:15px}
.notice[hidden]{display:none}

/* ───── 右侧栏 / 面板 ───── */
.cols{display:grid;grid-template-columns:minmax(0,1fr);gap:0 16px}
.panel{padding:18px 16px}
.aside > .panel{margin-top:16px}
.ph{display:flex;align-items:baseline;justify-content:space-between;gap:4px 8px;flex-wrap:wrap;margin-bottom:12px}
.ph h2{font-family:var(--serif);font-size:20px;font-weight:700}
.ph p{font-size:13px;color:var(--muted)}
.ph a.more{display:inline-flex;align-items:center;min-height:40px;color:var(--brand-ink);font-size:14px;font-weight:600}

/* 预警 */
.wsum{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}
.wsum span{font-size:14px;border-radius:999px;padding:3px 12px;display:inline-flex;align-items:center;gap:6px}
.st-change{background:var(--chg-bg);color:var(--chg)}
.st-ok{background:var(--ok-bg);color:var(--ok)}
.st-unk{background:var(--unk-bg);color:var(--unk)}
.wl{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.wl li{display:grid;grid-template-columns:40px minmax(0,1fr);gap:10px;align-items:start;padding:10px 12px 4px;border-radius:14px;background:var(--surface2);border:1px solid var(--line2)}
.wl li.change{background:var(--chg-bg);border-color:transparent}
.wl .wid{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-weight:700;font-size:14px;background:var(--surface);color:var(--ink2);border:1px solid var(--line)}
.wl li.change .wid{border-color:color-mix(in srgb,var(--chg) 45%,transparent);color:var(--chg)}
.wl .ws{font-size:16px;line-height:1.55}
.wl .wst{display:inline-flex;align-items:center;gap:5px;font-size:14px;margin-top:3px;font-weight:600}
.wl .wst svg{width:13px;height:13px;flex:none}
.wl li.change .wst{color:var(--chg)}
.wl li.ok .wst{color:var(--ok)}
.wl li.unk .wst{color:var(--unk)}
details.more > summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;min-height:40px;font-size:14px;font-weight:600;color:var(--brand-ink);-webkit-tap-highlight-color:transparent}
details.more > summary::after{border-color:currentColor}
details.more > .body{font-size:15px;color:var(--ink2);padding:0 0 8px;line-height:1.65}

/* 价格 */
.pl{list-style:none;margin:0;padding:0}
.pl li{padding:10px 0;border-bottom:1px solid var(--line2)}
.pl li:last-child{border-bottom:0}
.pl .pi{font-size:15px;color:var(--ink2);line-height:1.5}
.pl .pv{font-size:17px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.5;margin-top:2px}
.pl .pv small{font-size:13px;font-weight:400;color:var(--muted);margin-left:4px}
.pl .pm{font-size:14px;color:var(--muted);line-height:1.55;margin-top:2px}
.pl .pm a{display:inline-flex;align-items:center;min-height:40px;font-weight:600;margin:-8px 0 -10px}
.pl.full li{padding:12px 0}
.pl .pb{font-size:14px;color:var(--muted)}

/* 求证 */
.ask{position:relative;padding:12px 12px 12px 52px;border-radius:14px;background:var(--brand-soft)}
.ask + .ask{margin-top:10px}
.ask::before{content:"?";position:absolute;left:12px;top:12px;width:30px;height:30px;border-radius:50%;background:var(--surface);color:var(--brand-ink);font:700 18px/30px var(--serif);text-align:center}
.ask p{font-size:16px;font-weight:600;line-height:1.55}
.ask small{display:block;font-size:14px;color:var(--ink2);margin-top:2px}
.ask .disc.inline .acts{background:var(--surface);margin-left:-40px}
.ask .disc.inline .thread{margin-left:-40px}

/* 一线情报 / 每日动态 / 专题 */
.fd{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.fi{border:1px solid var(--line2);border-radius:14px;padding:12px;background:var(--surface2);min-width:0}
.fi .m{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px;color:var(--muted);flex-wrap:wrap}
.fi p{font-size:16px;margin-top:4px;white-space:pre-wrap}
.fi .m2{font-size:14px;color:var(--muted);margin-top:4px;display:flex;flex-wrap:wrap;gap:2px 12px}
.reply{margin-top:8px;background:var(--brand-soft);border-radius:12px;padding:8px 10px;font-size:15px}
.reply b{display:block;font-size:13px;color:var(--brand-ink)}
.pill{font-size:13px;border-radius:999px;padding:1px 10px;font-weight:600;white-space:nowrap;background:var(--unk-bg);color:var(--unk)}
.pill.new{background:var(--brand-soft);color:var(--brand-ink)}
.pill.chk{background:var(--chg-bg);color:var(--chg)}
.pill.ok{background:var(--ok-bg);color:var(--ok)}
.pill.bad{background:var(--bad-bg);color:var(--bad)}
.dl{list-style:none;margin:0;padding:0}
.dl li{padding:8px 0;border-bottom:1px dashed var(--line2);font-size:16px;line-height:1.6}
.dl li:last-child{border-bottom:0}
.dl .d{display:block;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.tp{display:grid;gap:10px}
.tp a{display:flex;align-items:center;gap:12px;min-height:64px;padding:12px;border-radius:14px;border:1px solid var(--line2);background:var(--surface2);color:var(--ink)}
.tp .ic{flex:none;width:40px;height:40px;border-radius:12px;background:var(--brand-soft);color:var(--brand-ink);display:grid;place-items:center}
.tp .ic svg{width:20px;height:20px}
.tp b{display:block;font-size:16px;font-weight:600;line-height:1.45}
.tp small{font-size:13px;color:var(--muted)}

/* 正文里的补充折叠（其他值得知道、待办、覆盖说明） */
.extra{margin-top:12px;padding:4px 16px}
.extra > summary{list-style:none;cursor:pointer;min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:16px;font-weight:600;color:var(--ink)}
.extra > summary::after{content:"";flex:none;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg) translate(-2px,-2px)}
.extra[open] > summary::after{transform:rotate(-135deg) translate(-2px,-2px)}
.extra[open]{padding-bottom:12px}
.extra .dl li,.extra p{font-size:15px}

/* ───── 列表页 ───── */
.list{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.filters{padding:14px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin-top:16px}
.filters input{grid-column:1/-1}
.count{font-size:14px;color:var(--muted);margin:14px 2px 10px;display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;min-height:40px}
.count button{min-height:40px;border:0;background:none;color:var(--brand-ink);font-weight:600;cursor:pointer;padding:0 4px;font-size:14px}
.co-g{padding:16px}
.co-g h2{font-family:var(--serif);font-size:19px;font-weight:700;margin-bottom:6px}
.co{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:8px 0;border-top:1px solid var(--line2);color:var(--ink)}
.co small{display:block;font-size:13px;color:var(--muted);line-height:1.45}
.co .n{flex:none;font-size:14px;color:var(--brand-ink);font-weight:600}
.co .n.z{color:var(--muted);font-weight:400}
.topic{padding:18px 16px 0;overflow:hidden}
.topic > h2{font-family:var(--serif);font-size:22px;line-height:1.35;font-weight:700;margin-top:2px}
.topic .disc.inline{margin:16px 0}
.md{font-size:16px;line-height:1.75;margin-top:8px}
.md > * + *{margin-top:10px}
.md h2{font-size:19px;font-family:var(--serif)}
.md h3{font-size:17px;margin-top:18px}
.md h4{font-size:16px}
.md ul,.md ol{padding-left:1.3em}
.md li+li{margin-top:4px}
.md code{font-size:14px;background:var(--line2);border-radius:4px;padding:0 4px}
.md a{text-decoration:underline;text-decoration-color:var(--brand-soft2);text-underline-offset:3px}
.tw{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:12px;border:1px solid var(--line2);max-width:100%}
.tw table{border-collapse:collapse;width:100%;font-size:14px}
.tw th,.tw td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line2);vertical-align:top;min-width:6em}
.tw th{font-size:13px;color:var(--muted);font-weight:600;background:var(--surface2)}
.tw tr:last-child td{border-bottom:0}
.formcard{padding:16px;display:grid;gap:14px;margin-top:16px}

/* 页脚 */
.foot{margin:40px auto 0;padding:28px 16px 40px;border-top:1px solid var(--line);color:var(--muted);font-size:13px;text-align:center;max-width:1120px}
.foot img{height:18px;width:auto;margin:0 auto 10px;display:block;opacity:.85}

/* 登录 / 无权访问（未登录也能取到：只用本文件和 logo-white.png） */
.gate{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px 16px;background:var(--bg)}
.gate .box{width:100%;max-width:400px;background:var(--surface);border-radius:20px;box-shadow:var(--shadow);overflow:hidden}
.gate .band{background:var(--brand);color:#fff;display:flex;align-items:center;gap:12px;padding:18px 20px}
.gate .band img{height:20px;width:auto;display:block}
.gate .band span{font-size:17px;font-weight:600;letter-spacing:.06em;padding-left:12px;border-left:1px solid rgba(255,255,255,.35);line-height:20px}
.gate .in{padding:22px 20px 24px;display:grid;gap:12px}
.gate h1{font-family:var(--serif);font-size:24px;line-height:1.35}
.gate p{font-size:16px;color:var(--ink2)}
.gate p a{font-weight:600;text-decoration:underline;text-underline-offset:3px;display:inline-flex;align-items:center;min-height:40px}
.gate .btn{width:100%}
.gate .btn[hidden]{display:none}
.gate small{font-size:13px;color:var(--muted)}

@media (min-width:900px){
  .hero h1{font-size:34px}
  .grid-top{grid-template-columns:7fr 5fr;align-items:start}
  .mapcard{padding:20px 16px 10px}
  .cols{grid-template-columns:minmax(0,1fr) 360px;gap:32px;align-items:start}
  .aside{padding-top:20px}
  .river{padding-left:64px}
  .river::before{left:22px}
  .tick{margin-left:-64px}
  .tick b{min-width:52px}
  .node .pinr{left:-62px;width:40px;height:40px}
  .mini::before{left:-48px}
  .ev .in{padding:20px 22px 8px}
  details.fold{margin:0 -22px}
  details.fold > summary{padding:0 22px}
  .imp,.src,.fold .body{padding-left:22px;padding-right:22px}
  .thread{padding-left:22px;padding-right:22px}
  .filters{grid-template-columns:2fr 1fr 1fr 1fr}
  .filters input{grid-column:auto}
  .list.two{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
  .ev-map{max-width:760px}
  .topic{padding:24px 28px 0}
  .narrow{max-width:760px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}details.fold > summary::after,details.more > summary::after{transition:none}}

/* 一线情报卡片 */
.post .in{padding-bottom:14px}
.post .eid{justify-content:space-between;letter-spacing:0;font-size:13px}
.post .w{font-size:16px;margin-top:6px;white-space:pre-wrap}
.post .m2{font-size:14px;color:var(--muted);margin-top:6px;display:flex;flex-wrap:wrap;gap:2px 12px}

/* ───── 地图小簇 ───── */
.map .lead{stroke:var(--muted);stroke-width:1;opacity:.5}
.map .clu-c .cc{fill:var(--surface);stroke:var(--muted);stroke-width:1.4}
.map .clu-c .cl{stroke:var(--ink2);stroke-width:1.1;stroke-linecap:round;pointer-events:none}
.clu{margin:8px 6px 0;border:1px solid var(--line2);border-radius:14px;background:var(--surface2);padding:4px 10px 6px}
.clu-h{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:15px}
.clu-x{min-height:40px;border:0;background:none;color:var(--brand-ink);font-weight:600;cursor:pointer;padding:0 4px}
.clu ul{list-style:none;margin:0;padding:0}
.clu li+li{border-top:1px solid var(--line2)}
.clu a{display:flex;gap:10px;align-items:center;min-height:44px;padding:6px 0;color:var(--ink);font-size:15px;line-height:1.45}
.clu .cn{flex:none;width:24px;height:24px;border-radius:50%;background:var(--c);color:#fff;font-size:13px;font-weight:700;display:grid;place-items:center}

/* ───── 首屏：下载 / 打印 / 调查提醒 ───── */
.dl-row{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin-top:12px}
.dl-row .btn{min-height:48px;font-size:16px;width:100%}
.dl-row .btn svg,.btn svg{width:18px;height:18px;flex:none}
@media (min-width:640px){.dl-row{display:flex;flex-wrap:wrap}.dl-row .btn{width:auto}}
.remind{display:flex;align-items:center;gap:10px;min-height:48px;margin-top:12px;padding:8px 14px;border-radius:14px;background:var(--ok-bg);color:var(--ok);font-size:16px;font-weight:600}
.remind svg{width:20px;height:20px;flex:none}
.remind .go{margin-left:auto}

/* ───── 批注颜色 ───── */
.c-yellow{--hl:#FFEC99;--hl-l:#D9A900}
.c-green{--hl:#CDEFD6;--hl-l:#3BA55C}
.c-blue{--hl:#D3E3FF;--hl-l:#4A7FD8}
.c-pink{--hl:#FAD3E3;--hl-l:#D0578A}
@media (prefers-color-scheme:dark){
  .c-yellow{--hl:rgba(255,214,10,.26);--hl-l:#E6C04A}
  .c-green{--hl:rgba(80,200,120,.24);--hl-l:#6CCB8A}
  .c-blue{--hl:rgba(100,150,255,.28);--hl-l:#8AB0F5}
  .c-pink{--hl:rgba(240,110,170,.26);--hl-l:#EC8FB8}
}
mark.hl{background:var(--hl);color:inherit;border-radius:3px;padding:1px 0;cursor:pointer;-webkit-box-decoration-break:clone;box-decoration-break:clone;border-bottom:2px solid var(--hl-l)}
mark.hl.other{background:transparent;border-bottom:2px dashed var(--hl-l)}
mark.hl.req{border-bottom-style:double;border-bottom-width:3px}
mark.hl:focus-visible{outline:2px solid var(--brand-ink);outline-offset:1px}
.req-tag{display:inline-block;font-size:12px;line-height:1.5;font-weight:700;color:#fff;background:var(--brand);border-radius:6px;padding:0 5px;margin-right:3px;vertical-align:1px}
@media (prefers-color-scheme:dark){.req-tag{background:var(--brand-soft2);color:var(--brand-ink)}}

/* ───── 卡片底部批注栏 ───── */
.anno-bar{padding:4px 16px 12px;display:grid;gap:8px}
.anno-btn{min-height:48px;width:100%;border:1.5px dashed var(--brand-soft2);background:var(--brand-soft);color:var(--brand-ink);border-radius:12px;font-size:16px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}
.anno-btn svg,.sec-anno svg,.anno-float svg{width:18px;height:18px;flex:none}
.anno-h{font-size:14px;color:var(--muted);margin-top:4px}
.anno-ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.anno-it{width:100%;text-align:left;display:grid;gap:2px;min-height:44px;padding:8px 10px 8px 12px;border-radius:12px;border:1px solid var(--line2);border-left:4px solid var(--hl-l);background:var(--surface2);cursor:pointer;color:var(--ink);font-size:15px;line-height:1.55}
.anno-it.other{border-left-style:dashed;background:var(--surface)}
.anno-it.req{border-color:var(--brand-soft2);border-left:4px double var(--brand-ink)}
.ai-m{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:center;font-size:13px;color:var(--muted)}
.ai-q{color:var(--ink2)}
.ai-q.whole{font-size:13px;color:var(--muted)}
.ai-n{font-size:16px;color:var(--ink);white-space:pre-wrap}
.ai-r{display:block;background:var(--brand-soft);border-radius:8px;padding:6px 8px;margin-top:4px;font-size:15px}
.ai-r b{display:block;font-size:12px;color:var(--brand-ink)}
.ask .anno-bar{padding:8px 0 0;margin-left:-40px}
.topic .anno-bar{padding:16px 0 0}
.post .anno-bar{padding-top:0}
.sec-anno{display:inline-flex;align-items:center;gap:6px;min-height:44px;margin:2px 0 4px;padding:0 14px;border-radius:999px;border:1px solid var(--brand-soft2);background:var(--surface);color:var(--brand-ink);font-size:14px;font-weight:600;cursor:pointer}
@media (min-width:900px){.ev > .anno-bar{padding-left:22px;padding-right:22px}}

/* 选字后浮出的按钮 */
.anno-float{position:absolute;z-index:40;display:inline-flex;align-items:center;gap:6px;min-height:48px;padding:0 20px;border:0;border-radius:999px;background:var(--brand);color:#fff;font-size:17px;font-weight:700;box-shadow:0 6px 20px -4px rgba(29,32,80,.45);cursor:pointer}

/* ───── 底部面板 ───── */
body.locked{overflow:hidden}
.sheet{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-end;justify-content:center}
.sheet-bg{position:absolute;inset:0;background:rgba(10,12,30,.48)}
.sheet-p{position:relative;width:100%;max-width:560px;max-height:90vh;max-height:90dvh;overflow:auto;overscroll-behavior:contain;background:var(--surface);border-radius:20px 20px 0 0;padding:10px 16px calc(16px + env(safe-area-inset-bottom));box-shadow:0 -8px 30px rgba(0,0,0,.25)}
.sheet-p::before{content:"";display:block;width:40px;height:4px;border-radius:2px;background:var(--line);margin:0 auto 10px}
@media (min-width:900px){.sheet{align-items:center}.sheet-p{border-radius:20px;padding:12px 24px 22px}}
.sheet-f{display:grid;gap:10px}
.sheet-f h2{font-family:var(--serif);font-size:21px;font-weight:700}
.sheet-t{font-size:14px;color:var(--muted);line-height:1.5}
.sheet-q{margin:0;border-left:4px solid var(--hl-l,var(--brand-soft2));background:var(--surface2);padding:8px 12px;border-radius:0 12px 12px 0;font-size:16px;line-height:1.65;max-height:28vh;overflow:auto;color:var(--ink2)}
.sheet-whole{font-size:14px;color:var(--muted);background:var(--surface2);border-radius:10px;padding:6px 10px}
.sheet-n{font-size:17px;white-space:pre-wrap}
.sheet-meta{font-size:14px;color:var(--muted)}
.sheet-err{background:var(--bad-bg);color:var(--bad);border-radius:12px;padding:8px 12px;font-size:15px}
.sheet-b{display:flex;gap:10px;justify-content:flex-end;margin-top:4px}
.sheet-b .btn{flex:1;min-height:48px;font-size:16px}
.btn.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,transparent)}
.done{font-size:17px}
.lab{font-size:15px;font-weight:600;color:var(--ink)}
.sheet-f textarea{font-size:17px;min-height:110px}
.vh{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
fieldset{border:0;margin:0;padding:0;min-width:0}
fieldset legend{padding:0;margin-bottom:6px}
.sws{display:flex;flex-wrap:wrap;gap:12px}
.sws legend{width:100%}
.sw{display:grid;justify-items:center;gap:2px;font-weight:400;cursor:pointer}
.sw span{width:44px;height:44px;border-radius:50%;background:var(--hl);border:2px solid var(--hl-l)}
.sw em{font-style:normal;font-size:13px;color:var(--muted)}
.sw input:checked + span{box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--ink)}
.sw input:focus-visible + span,.vis input:focus-visible + span,.seg2 input:focus-visible + span,.req-sw input:focus-visible + .req-box{outline:2px solid var(--brand-ink);outline-offset:2px}
.vis{display:grid;gap:8px}
.vis label,.seg2 label{font-weight:400;cursor:pointer}
.vis span,.seg2 span{display:flex;align-items:center;gap:10px;min-height:48px;padding:0 14px;border:1px solid var(--line);border-radius:12px;font-size:16px;color:var(--ink)}
.vis span::before,.seg2 span::before{content:"";flex:none;width:18px;height:18px;border-radius:50%;border:2px solid var(--muted);box-sizing:border-box}
.vis input:checked + span,.seg2 input:checked + span{border-color:var(--brand-ink);background:var(--brand-soft);font-weight:600}
.vis input:checked + span::before,.seg2 input:checked + span::before{border:6px solid var(--brand-ink)}
.urg{display:grid;gap:6px}
.urg[hidden]{display:none}
.seg2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.req-sw{cursor:pointer;font-weight:400}
.req-box{display:flex;align-items:center;gap:12px;min-height:60px;padding:8px 14px;border-radius:14px;border:1.5px solid var(--brand-soft2);background:var(--surface2)}
.req-box > svg{width:24px;height:24px;color:var(--brand-ink);flex:none}
.req-box b{display:block;font-size:17px;color:var(--ink)}
.req-box small{display:block;font-size:14px;color:var(--muted);line-height:1.4}
.req-box i{margin-left:auto;flex:none;width:46px;height:28px;border-radius:999px;background:var(--line);position:relative;transition:background .15s}
.req-box i::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:left .15s}
.req-sw input:checked + .req-box{border-color:var(--brand-ink);background:var(--brand-soft)}
.req-sw input:checked + .req-box i{background:var(--brand)}
.req-sw input:checked + .req-box i::after{left:21px}
@media (prefers-color-scheme:dark){.req-sw input:checked + .req-box i{background:var(--brand-ink)}}

/* ───── 批注页 ───── */
.up .lead{margin:0 0 10px}
.up-f{display:grid;gap:8px;margin-top:10px}
.file-pick{display:block;cursor:pointer}
.file-pick span{display:flex;align-items:center;justify-content:center;text-align:center;min-height:56px;padding:8px 14px;border:1.5px dashed var(--brand-soft2);border-radius:14px;background:var(--surface2);color:var(--brand-ink);font-size:16px;font-weight:600}
.file-pick input:focus-visible + span{outline:2px solid var(--brand-ink);outline-offset:2px}
.up-f .btn.wide{margin-top:0}
.grp{font-size:15px;color:var(--muted);font-weight:600;margin:18px 0 8px}
.up-l{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.up-l li{border:1px solid var(--line2);border-radius:12px;padding:10px 12px;background:var(--surface2)}
.up-l .m{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:15px}
.up-l .m2{display:flex;gap:12px;font-size:13px;color:var(--muted)}
.seg{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.seg button{min-height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink2);font-size:15px;cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--brand-soft);color:var(--brand-ink);border-color:var(--brand-soft2);font-weight:600}
.ev.nt{border-top-color:var(--hl-l)}
.ev.nt.other{border-top-style:dashed}
.ev.nt.req{border-top:4px double var(--brand-ink)}
.ev.nt .in{display:grid;gap:8px;padding-bottom:12px}
.nt-t{display:flex;align-items:center;min-height:40px;font-size:16px;font-weight:600;line-height:1.45}
.nt-n{font-size:17px;white-space:pre-wrap}
.nt-b{padding:0 16px 14px}
.nt-b .btn{width:100%}
.lnk + .lnk{margin-left:12px}
.reply .lnk{display:flex}

/* ───── 打印 / 存为 PDF：A4、黑白友好、展开全部 ───── */
@media print{
  @page{size:A4;margin:14mm 12mm}
  :root{color-scheme:light;--bg:#fff;--surface:#fff;--surface2:#fff;--ink:#000;--ink2:#222;--muted:#555;--line:#bbb;--line2:#ccc;
    --brand-ink:#000;--brand-soft:#f2f2f2;--brand-soft2:#bbb;--map-bg:#fff;--dot:#ccc;--dot-hi:#999;--shadow:none;
    --chg:#000;--chg-bg:#fff;--ok:#000;--ok-bg:#fff;--unk:#444;--unk-bg:#fff}
  html,body{background:#fff!important;color:#000;font-size:11pt}
  .top,.nav,.jump,.dl-row,.deck,.remind,.acts,.thread,.anno-btn,.sec-anno,.anno-float,.sheet,.clu,.map .hit,.btn,.seg,#more,.count button,.up-f{display:none!important}
  .wrap{max-width:none;padding:0}
  .grid-top,.cols{display:block}
  .card,.ev{box-shadow:none!important;border:1px solid #bbb;border-radius:8px;margin-bottom:10px}
  .ev{border-top:3px solid #555}
  .ev,.wl li,.pl li,.ask,.fi,.dl li,.sig li,.idx li,.anno-it,.f,.blk,.mini,.tick{break-inside:avoid;page-break-inside:avoid}
  .sec{margin-top:16px}
  .hero h1{font-size:20pt}
  .mapcard{max-width:150mm}
  .river::before{background:#ddd}
  .node .pinr{background:#fff!important;color:#000;border:1.5px solid #000;box-shadow:none}
  .tick b{background:#fff!important;color:#000;border:1px solid #000}
  .idx .n{background:#fff;border:1.5px solid #000}.idx .n i{color:#000}
  .map .pin text,.map .bub text{fill:#000}
  .map .pin circle.b{fill:#fff!important;stroke:#000;stroke-width:1.2}
  .map .pin .halo{display:none}
  details > summary::after{display:none}
  details::details-content{content-visibility:visible;display:contents}
  details > *{display:block}
  details.fold > summary{min-height:0;padding-top:6px;padding-bottom:2px}
  mark.hl{background:none!important;border-bottom:1.5px solid #000;padding:0}
  .req-tag{background:#fff;color:#000;border:1px solid #000}
  .pill,.flag{border:1px solid #888;background:#fff!important;color:#000}
  .wl li.change{border:1.5px solid #000}
  .blk.why p,.imp .nx,.reply,.ai-r{background:#fff!important;border:1px solid #ccc}
  a{color:#000;text-decoration:none}
  .foot{border-top:1px solid #999;margin-top:16px;padding:8px 0 0}
  .foot picture{display:none}
}

.wl .wdesc{font-size:14px;line-height:1.55;color:var(--ink2);margin:2px 0 4px}

/* ───── 待发 / 定位高亮 / 完整调查 ───── */
@keyframes flash{0%,40%{box-shadow:0 0 0 3px var(--brand-ink),var(--shadow)}100%{box-shadow:var(--shadow)}}
.flash{animation:flash 2.6s ease-out}
li.flash{animation:none;outline:3px solid var(--brand-ink);outline-offset:2px}
.ob .in{display:grid;gap:10px;padding-bottom:12px}
.ob .eid{justify-content:space-between}
.ob-to{font-size:17px}
.ob-to b{font-weight:700}
.ob .lab{display:grid;gap:4px}
.ob textarea{min-height:150px;font-size:16px}
.ob-pv{display:grid;gap:4px}
.dt-card{border:1px solid var(--line);border-radius:12px;background:var(--surface2);padding:10px 12px;display:grid;gap:6px;font-size:15px;line-height:1.6}
.dt-h{font-size:12px;color:var(--muted)}
.dt-t{font-size:16px}
.dt-b > *+*{margin-top:6px}
.dt-b ul,.dt-b ol{padding-left:1.2em;margin:0}
.dt-btn{border-top:1px solid var(--line2);padding-top:6px;text-align:center;color:var(--brand-ink);font-weight:600;font-size:14px}
.ob-b{display:grid;grid-template-columns:2fr 1fr;gap:8px;padding:0 16px 16px}
.ob-b .btn{min-height:48px;font-size:16px}
#ob-msg{margin:12px 0}
#done li{display:grid;gap:4px}
#done li b{font-size:15px}
.ob-err{font-size:14px;color:var(--bad)}
.ans > summary{font-size:15px}
.ans-md{margin-top:4px;border-left:3px solid var(--brand-soft2);padding-left:12px}
.ans-md h3,.ans-md h4,.ans-md h5{font-size:16px;margin-top:12px}
.ans-md blockquote{margin:0;padding-left:10px;border-left:3px solid var(--line);color:var(--ink2)}
.ans-md hr{border:0;border-top:1px solid var(--line)}
@media print{.ob-b,.ob-pv{display:none!important}}

/* ───── 正文更正 ───── */
ins.corr{text-decoration:none;background:var(--ok-bg);border-radius:3px;padding:1px 2px;cursor:pointer;-webkit-box-decoration-break:clone;box-decoration-break:clone}
ins.corr:focus-visible,.corr-note:focus-visible{outline:2px solid var(--brand-ink);outline-offset:1px}
.corr-tag{display:inline-block;font-size:12px;line-height:1.5;font-weight:700;color:var(--ok);border:1px solid color-mix(in srgb,var(--ok) 45%,transparent);border-radius:6px;padding:0 5px;margin-left:4px;vertical-align:1px;background:var(--surface)}
.corr-note{margin:8px 16px;padding:8px 12px;border-radius:12px;background:var(--ok-bg);font-size:15px;line-height:1.6;cursor:pointer;min-height:44px}
.corr-note .corr-tag{margin:0 6px 0 0}
#corr-brief .corr-note{margin:8px 0}
.corr-diff{display:grid;grid-template-columns:40px minmax(0,1fr);gap:8px;font-size:16px;line-height:1.6}
.corr-diff .lab{font-size:13px;color:var(--muted);padding-top:2px}
.corr-diff del{color:var(--muted)}
.corr-diff ins{text-decoration:none;background:var(--ok-bg);border-radius:3px;padding:0 2px}
.corr-l li{display:grid;gap:6px}
.corr-l li.rev{opacity:.75}
.corr-l .m .lnk{min-height:40px}
.corr-r{font-size:15px;color:var(--ink2)}
.corr-l .btn.wide{margin-top:4px}
@media print{ins.corr{background:none;text-decoration:underline}.corr-tag{border-color:#000;color:#000}}

/* ───── 管理员：台账、报告 ───── */
.ledger-box{padding:14px 12px}
.ledger-md{margin-top:0}
.ledger-md h2{font-family:var(--serif);font-size:21px;line-height:1.35}
.ledger-md h3{font-size:18px;margin-top:22px}
.ledger-md blockquote,.offers blockquote{margin:0;padding:6px 10px;border-left:3px solid var(--brand-soft2);background:var(--surface2);border-radius:0 10px 10px 0;color:var(--ink2);font-size:15px}
.ledger-md .tw table{font-size:15px;line-height:1.55}
.ledger-md .tw td{min-width:4.5em}
.ledger-md .tw td:nth-child(2){min-width:14em}
.ledger-md .tw td:nth-child(4){min-width:8em}
.ledger-md .tw td:first-child,.ledger-md .tw th:first-child{min-width:2.5em;white-space:nowrap}
.ledger-md tr.lg-over td{background:var(--bad-bg);color:var(--bad)}
.ledger-md tr.lg-over td:nth-child(4){font-weight:700}
.ledger-md tr.lg-done td{color:var(--muted)}
.ledger-md hr{border:0;border-top:1px solid var(--line)}
.offers{border:1.5px solid var(--brand-soft2);margin-bottom:16px}
.offers .md{margin-top:0}
.rpt .in{display:grid;gap:8px;padding-bottom:12px}
.rpt h3{margin-top:0}
.rpt.mo{border-top-color:var(--anilox)}
.rpt.wk{border-top-color:var(--press)}
.pill.rk.wk{background:color-mix(in srgb,var(--press) 16%,var(--surface));color:var(--ink)}
.pill.rk.mo{background:color-mix(in srgb,var(--anilox) 18%,var(--surface));color:var(--ink)}
.rp-s{font-size:16px;line-height:1.7;white-space:pre-wrap;color:var(--ink2)}
.rp-b{grid-template-columns:1fr 1fr}
@media print{.rp-b{display:none!important}}
