:root{
  --ink:#111318;
  --blue:#2b4cf0;
  --orange:#f2552b;
  --paper:#ffffff;
  --panel:#f3f4f8;
  --mute:#6b7183;
  --rule:#d8dce6;
  --sans:"Helvetica Neue","PingFang SC","Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif;
  --mono:"SFMono-Regular",Menlo,Consolas,"Courier New",monospace;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--paper);color:var(--ink);font-family:var(--sans);
  font-size:16px;line-height:1.75;-webkit-text-size-adjust:100%;
}
.w{max-width:1000px;margin:0 auto;padding:0 20px}
a{color:var(--blue)}

/* ── 报头 ───────────────────────────── */
.masthead{border-bottom:4px solid var(--ink)}
.masthead .w{display:flex;align-items:center;gap:12px;padding:12px 20px;flex-wrap:wrap}
.sig{width:30px;height:30px;flex:0 0 auto}
.masthead b{font-size:15px;letter-spacing:.14em;text-transform:uppercase;font-family:var(--mono)}
.masthead nav{margin-left:auto;display:flex;gap:0;flex-wrap:wrap}
.masthead nav a{
  font-size:12.5px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;
  color:var(--ink);text-decoration:none;padding:3px 10px;border-left:1px solid var(--rule);
}
.masthead nav a:first-child{border-left:0}
.masthead nav a:hover,.masthead nav a:focus{background:var(--blue);color:#fff}

/* ── 首屏 ───────────────────────────── */
.lede{padding:40px 0 26px;border-bottom:1px solid var(--rule)}
h1{margin:0}
.title{display:block;font-size:clamp(28px,7.2vw,52px);font-weight:800;line-height:1.14;letter-spacing:-.01em}
.strap{
  display:block;margin-top:12px;font-size:clamp(14px,3vw,18px);font-weight:400;
  color:var(--mute);line-height:1.6;border-left:4px solid var(--orange);padding-left:12px;
}
.deck2{display:grid;grid-template-columns:1.25fr 1fr;gap:26px;margin-top:22px}
@media (max-width:820px){.deck2{grid-template-columns:1fr;gap:16px}}
.deck2 p{margin:0 0 12px}
.boxed{
  background:var(--panel);border:1px solid var(--rule);padding:15px 17px;font-size:14.5px;line-height:1.8;
}
.boxed b{color:var(--orange)}

/* ── 区块 ───────────────────────────── */
section{padding:34px 0;border-bottom:1px solid var(--rule)}
h2{
  margin:0 0 4px;font-size:clamp(20px,4.4vw,28px);font-weight:800;letter-spacing:-.01em;
}
.kicker{
  font-family:var(--mono);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--blue);display:block;margin-bottom:6px;
}
h3{margin:20px 0 6px;font-size:16px;font-weight:700}
.note{color:var(--mute);font-size:14.5px;margin:0;max-width:68ch}

/* ── 解析器 ─────────────────────────── */
.term{
  margin-top:18px;border:2px solid var(--ink);display:grid;
  grid-template-columns:1fr 300px;
}
@media (max-width:820px){.term{grid-template-columns:1fr}}
.term .in{padding:18px;border-right:2px solid var(--ink)}
@media (max-width:820px){.term .in{border-right:0;border-bottom:2px solid var(--ink)}}
.term .side{padding:18px;background:var(--panel)}
label.k{display:block;margin-bottom:12px}
label.k > span{display:block;font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);margin-bottom:5px}
input[type=text],input[type=number],select{
  width:100%;padding:10px 12px;font-size:16px;font-family:var(--mono);
  border:1.5px solid var(--ink);background:#fff;color:var(--ink);border-radius:0;
}
select{font-family:var(--sans);font-size:14.5px}
input:focus,select:focus{outline:3px solid var(--blue);outline-offset:0}
.screen{
  margin-top:4px;background:var(--ink);color:#fff;padding:16px 18px;font-family:var(--mono);
}
.screen .big{display:block;font-size:clamp(26px,7vw,40px);letter-spacing:.04em;color:#fff;line-height:1.2}
.screen .big.err{color:var(--orange);font-size:clamp(17px,4.4vw,24px)}
.screen .cn{display:block;margin-top:8px;font-size:15px;color:#9fb6ff;font-family:var(--sans)}
.screen .meta{margin:12px 0 0;font-size:13px;color:#aab1c2;line-height:1.75;font-family:var(--sans)}
.forms{margin:12px 0 0;padding:0;list-style:none;font-family:var(--mono);font-size:13px;color:var(--mute)}
.forms li{padding:4px 0;border-bottom:1px dotted var(--rule)}
.forms li:last-child{border-bottom:0}
.forms b{color:var(--ink)}

/* ── 排期 ───────────────────────────── */
.ctrl{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-top:18px}
.sum{
  margin-top:16px;display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:0;
  border:1px solid var(--ink);
}
.sum div{padding:12px 14px;border-right:1px solid var(--rule)}
.sum div:last-child{border-right:0}
.sum b{display:block;font-family:var(--mono);font-size:clamp(19px,4.6vw,26px);line-height:1.25}
.sum span{display:block;font-size:12px;color:var(--mute);margin-top:2px}
.sum .hl b{color:var(--blue)}
.sum .hl2 b{color:var(--orange)}
.tbox{margin-top:16px;overflow-x:auto;border:1px solid var(--rule)}
table{border-collapse:collapse;width:100%;min-width:420px;font-size:14px}
th,td{padding:8px 14px;text-align:left;border-bottom:1px solid var(--rule)}
th{background:var(--ink);color:#fff;font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
td.m{font-family:var(--mono)}
tbody tr:nth-child(even){background:var(--panel)}
tbody tr:last-child td{border-bottom:0}
tr.drop td{color:var(--orange);font-weight:700}
.badmsg{margin-top:16px;border:2px solid var(--orange);padding:14px 16px;color:var(--orange);font-weight:700}

/* ── 术语 ───────────────────────────── */
.glos{margin:16px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(268px,1fr));gap:0;border-top:1px solid var(--rule);border-left:1px solid var(--rule)}
.gi{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:15px 17px}
.gi dt{font-weight:800;font-size:16px}
.gi .en{font-family:var(--mono);font-size:11.5px;color:var(--blue);letter-spacing:.06em;display:block;margin-bottom:6px}
.gi dd{margin:0;font-size:14px;line-height:1.75;color:#33384a}
.timeline{margin:16px 0 0;padding:0;list-style:none;border-left:3px solid var(--ink)}
.timeline li{padding:0 0 16px 16px;position:relative}
.timeline li::before{content:"";position:absolute;left:-7px;top:9px;width:11px;height:11px;background:var(--orange)}
.timeline b{display:block;font-size:15.5px}
.timeline p{margin:3px 0 0;font-size:14.5px;color:#33384a;line-height:1.75}
.srcl{margin:12px 0 0;padding-left:20px;font-size:14px;color:var(--mute)}
.srcl li{margin-bottom:5px}

footer{padding:24px 0 44px;font-size:13.5px;color:var(--mute);border-top:4px solid var(--ink)}
footer p{margin:0 0 8px}

/* ── 404 ────────────────────────────── */
.gone{padding:54px 0 36px}
.gone .n{font-family:var(--mono);font-size:clamp(54px,17vw,120px);color:var(--blue);margin:0;line-height:1;letter-spacing:-.02em}
.gone h1{margin:6px 0 0;font-size:clamp(20px,5vw,32px)}
.gone ul{margin:18px 0 0;padding-left:20px}
.gone li{margin-bottom:7px}

/* 防溢出兜底 */
.screen .big,.screen .meta,.gi dd,.timeline p{overflow-wrap:anywhere}
.term .in,.sum div{min-width:0}
