/* ---------- 判定路径工具 ---------- */
.tool-hero{padding-block:clamp(2.5rem,5vw,3.5rem) 0}
.crumb{display:flex;align-items:center;gap:.5rem;font-size:var(--fs-xs);color:var(--text-faint);margin-bottom:1.1rem}
.crumb a:hover{color:var(--ink)}
.tool-hero h1{font-size:clamp(1.9rem,3.6vw,2.75rem);letter-spacing:-.03em}
.tool-hero .lede{margin-top:1rem;max-width:64ch}

.gate{
  margin:1.75rem 0 0;padding:1rem 1.15rem;border-radius:var(--radius-sm);
  background:var(--signal-bg);border:1px solid color-mix(in srgb,var(--signal) 32%,transparent);
  font-size:var(--fs-sm);color:var(--text-muted);line-height:1.6;max-width:76ch;
}
.gate b{color:var(--ink);font-weight:620}

.wk{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:start;padding-block:clamp(2rem,4vw,3rem) var(--gap-section)}

/* 表单 */
.form{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}
.fg{border-bottom:1px solid var(--line-soft)}
.fg:last-child{border-bottom:0}
.fg > h3{
  margin:0;padding:.9rem 1.25rem;background:var(--paper-2);
  font-size:var(--fs-xs);font-weight:640;letter-spacing:.06em;color:var(--text-muted);
  border-bottom:1px solid var(--line-soft);
}
.fi{padding:1rem 1.25rem;border-bottom:1px solid var(--line-soft)}
.fi:last-child{border-bottom:0}
.fi > label{display:block;font-size:var(--fs-sm);color:var(--ink);font-weight:520;line-height:1.5;margin-bottom:.6rem}
.fi[hidden]{display:none}
.help{margin:.45rem 0 0;font-size:.75rem;color:var(--text-faint);line-height:1.55}
.opts{display:flex;gap:.4rem;flex-wrap:wrap}
.opt{
  padding:.4rem .8rem;border:1px solid var(--line);border-radius:7px;background:var(--paper);
  font-size:var(--fs-xs);color:var(--text-muted);cursor:pointer;transition:.15s;white-space:nowrap;
}
.opt:hover{border-color:var(--text-faint);color:var(--ink)}
.opt[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.fi input[type="text"],.fi input[type="number"]{
  width:100%;padding:.55rem .7rem;border:1px solid var(--line);border-radius:7px;
  background:var(--paper);color:var(--text);font:inherit;font-size:var(--fs-sm);
}
.fi input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}

/* 结果 */
.out{position:sticky;top:86px;display:flex;flex-direction:column;gap:1rem}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}
.card > h3{
  margin:0;padding:.9rem 1.25rem;border-bottom:1px solid var(--line-soft);
  font-size:var(--fs-sm);font-weight:620;color:var(--ink);
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
}
.card > h3 span{font-size:var(--fs-xs);font-weight:600;color:var(--text-faint)}

.summary{padding:1.1rem 1.25rem;display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.sm{padding:.75rem .9rem;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--paper-2)}
.sm b{display:block;font-size:1.35rem;font-weight:660;color:var(--ink);letter-spacing:-.02em;line-height:1.2}
.sm span{display:block;font-size:.75rem;color:var(--text-faint);margin-top:.2rem}

.stage{border-top:1px solid var(--line-soft)}
.stage:first-of-type{border-top:0}
.stage > h4{
  margin:0;padding:.75rem 1.25rem;background:var(--paper-2);
  font-size:var(--fs-xs);font-weight:640;color:var(--text-muted);
  display:flex;align-items:baseline;gap:.6rem;
}
.stage > h4 i{font-family:var(--font-mark);font-style:normal;letter-spacing:.14em;color:var(--text-faint)}
.stage > h4 em{font-style:normal;font-weight:500;color:var(--text-faint);font-size:.6875rem;margin-left:auto;text-align:right}

.node{padding:.95rem 1.25rem;border-top:1px solid var(--line-soft)}
.node:first-of-type{border-top:0}
.node-hd{display:flex;align-items:baseline;gap:.6rem;margin-bottom:.4rem}
.node-hd b{font-size:var(--fs-sm);font-weight:580;color:var(--ink);line-height:1.45}
.pill{
  flex:none;margin-left:auto;padding:.13rem .45rem;border-radius:5px;
  font-size:.6875rem;font-weight:640;white-space:nowrap;
}
.st-met{background:var(--export-bg);color:var(--export)}
.st-notmet{background:var(--data-bg);color:var(--data)}
.st-insuf{background:var(--signal-bg);color:var(--signal)}
.node p{margin:0;font-size:var(--fs-xs);color:var(--text-muted);line-height:1.6}
.basis{
  margin-top:.5rem;padding-top:.45rem;border-top:1px dashed var(--line);
  font-size:.6875rem;color:var(--text-faint);line-height:1.5;
}
.basis::before{content:"相关法规 · ";font-weight:600}
.needs{margin:.55rem 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.3rem}
.needs li{display:flex;gap:.5rem;font-size:.75rem;color:var(--text-muted);line-height:1.5}
.needs li::before{content:"";flex:none;width:4px;height:4px;border-radius:50%;background:var(--signal);margin-top:.48rem}

.gaps{padding:1.1rem 1.25rem}
.gaps ol{margin:0;padding-left:1.3rem;display:flex;flex-direction:column;gap:.5rem}
.gaps li{font-size:var(--fs-sm);color:var(--text-muted);line-height:1.55}
.gaps .none{margin:0;font-size:var(--fs-sm);color:var(--text-faint)}

.acts{display:flex;gap:.6rem;flex-wrap:wrap;padding:1rem 1.25rem;border-top:1px solid var(--line-soft)}

@media (max-width:1020px){
  .wk{grid-template-columns:1fr}
  .out{position:static}
  .summary{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){
  .summary{grid-template-columns:1fr}
}
@media print{
  .hdr,.acts,.form{display:none}
  .wk{grid-template-columns:1fr;padding-block:0}
  .out{position:static}
  .card{box-shadow:none;break-inside:avoid}
}

/* 多法域：缺口标签与链卡片 */
.gaps ol{counter-reset:none}
.gtag{
  display:inline-block;margin-right:.5rem;padding:.08rem .4rem;border-radius:5px;
  background:var(--paper-2);border:1px solid var(--line);
  font-size:.6875rem;font-weight:600;color:var(--text-muted);vertical-align:.05em;
}
.chain{margin-top:1rem}
.chain:first-child{margin-top:0}
#chains{display:flex;flex-direction:column;gap:1rem}

/* ---------- 模板库 ---------- */
.fi textarea{
  width:100%;padding:.6rem .7rem;border:1px solid var(--line);border-radius:7px;
  background:var(--paper);color:var(--text);font:inherit;font-size:var(--fs-sm);
  line-height:1.6;resize:vertical;
}
.fi textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}
.fi input[type="checkbox"]{
  appearance:none;width:15px;height:15px;border-radius:4px;border:1.5px solid var(--line);
  background:var(--paper);position:relative;flex:none;cursor:pointer;
}
.fi input[type="checkbox"]:checked{background:var(--ink);border-color:var(--ink)}
.fi input[type="checkbox"]:checked::after{
  content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;
  border:solid var(--paper);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);
}
code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:.8125em;background:var(--paper-2);border:1px solid var(--line-soft);
  border-radius:4px;padding:.05rem .3rem;
}

.tpl-pre{
  margin:0;padding:1.1rem 1.25rem;white-space:pre-wrap;word-break:break-word;
  font-family:var(--font-sans);font-size:.8125rem;line-height:1.75;color:var(--text);
  max-height:520px;overflow-y:auto;
}

/* 付费门控 */
.lock{padding:1.5rem 1.25rem;text-align:center}
.lock b{display:block;font-size:var(--fs-body);font-weight:620;color:var(--ink);margin-bottom:.4rem}
.lock p{margin:0;font-size:var(--fs-sm);color:var(--text-muted);line-height:1.6;max-width:46ch;margin-inline:auto}
.lock-peek{
  margin-top:1rem;padding:.7rem .85rem;border-radius:var(--radius-sm);
  background:var(--paper-2);border:1px solid var(--line-soft);
  font-size:var(--fs-xs);color:var(--text-faint);
  filter:blur(2.5px);user-select:none;
}
.warnline{
  margin:0 0 .6rem;padding:.6rem .8rem;border-radius:var(--radius-sm);
  background:var(--signal-bg);border:1px solid color-mix(in srgb,var(--signal) 30%,transparent);
  font-size:var(--fs-xs);color:var(--text-muted);line-height:1.55;
}
.warnline b{color:var(--ink)}

.phlist{margin:0 0 .5rem;padding:0;list-style:none;display:flex;flex-direction:column;gap:.2rem}
.phlist li{display:flex;gap:.6rem;align-items:baseline;font-size:var(--fs-xs)}
.phlist li code{flex:none}
.phlist li span{color:var(--text-muted);line-height:1.5}

/* ---------- 初筛结论卡 ---------- */
.vd{padding:1rem 1.25rem;border-top:1px solid var(--line-soft)}
.vd:first-child{border-top:0}
.vd-hd{display:flex;align-items:baseline;gap:.75rem;margin-bottom:.4rem}
.vd-hd b{font-size:var(--fs-sm);font-weight:620;color:var(--ink)}
.vd-hd span{
  margin-left:auto;padding:.18rem .5rem;border-radius:6px;
  font-size:var(--fs-xs);font-weight:640;white-space:nowrap;
}
.vd-bad  .vd-hd span{background:color-mix(in srgb,#D6455B 14%,transparent);color:#D6455B}
.vd-warn .vd-hd span{background:var(--signal-bg);color:var(--signal)}
.vd-ok   .vd-hd span{background:var(--data-bg);color:var(--data)}
.vd-idle .vd-hd span{background:var(--paper-2);color:var(--text-faint)}
.vd p{margin:0;font-size:var(--fs-xs);color:var(--text-muted);line-height:1.6}
.vd-gap{margin-top:.4rem !important;color:var(--text-faint) !important}

/* ---------- 风险 memo ---------- */
.memo-wrap{padding-block:clamp(1.5rem,3vw,2.5rem) var(--gap-section)}
.memo-acts{border-top:0;padding:0 0 1.25rem}
.memo{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow-sm);padding:clamp(1.75rem,4vw,3rem);max-width:920px;
}
.memo-hd{padding-bottom:1.25rem;border-bottom:1px solid var(--line);margin-bottom:1.75rem}
.memo-brand{
  margin:0 0 1rem;font-size:var(--fs-sm);font-weight:640;color:var(--ink);letter-spacing:.04em;
}
.memo-brand span{
  font-family:var(--font-mark);font-size:.75rem;font-weight:600;letter-spacing:.2em;
  color:var(--text-muted);padding-left:.55rem;margin-left:.2rem;border-left:1px solid var(--line);
}
.memo-hd h2{font-size:clamp(1.4rem,2.6vw,1.8rem);letter-spacing:-.02em;margin-bottom:1.2rem}
.memo-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:.6rem 1.5rem}
.memo-meta div{display:flex;gap:.6rem;align-items:baseline;font-size:var(--fs-sm)}
.memo-meta dt{margin:0;color:var(--text-faint);font-size:var(--fs-xs);white-space:nowrap;min-width:6.5em}
.memo-meta dd{margin:0;color:var(--ink);font-weight:550}

.ms-h{
  font-size:1.0625rem;font-weight:640;color:var(--ink);letter-spacing:-.01em;
  margin:2.25rem 0 .9rem;padding-bottom:.5rem;border-bottom:1px solid var(--line);
}
.ms-h:first-of-type{margin-top:0}
.ms{margin-bottom:.5rem}
.ms-note{margin:0 0 .8rem;font-size:var(--fs-xs);color:var(--text-faint);line-height:1.6}

.fgrp{margin-bottom:1.1rem}
.fgrp h4{margin:0 0 .5rem;font-size:var(--fs-xs);font-weight:640;letter-spacing:.06em;color:var(--text-muted)}
.ftab{display:grid;gap:1px;background:var(--line-soft);border:1px solid var(--line-soft);border-radius:var(--radius-sm);overflow:hidden}
.ftab > div{display:flex;gap:1rem;background:var(--paper);padding:.5rem .75rem;font-size:var(--fs-sm)}
.ftab dt{margin:0;color:var(--text-muted);min-width:14em;flex:none;font-size:var(--fs-xs);line-height:1.6}
.ftab dd{margin:0;color:var(--ink);line-height:1.6}

.fk{
  margin:1.25rem 0 .5rem;font-size:var(--fs-xs);font-weight:640;
  letter-spacing:.05em;color:var(--text-muted);
}
.memo .node{border:1px solid var(--line-soft);border-radius:var(--radius-sm);margin-bottom:.5rem;padding:.8rem .95rem}
.memo .node:first-of-type{border-top:1px solid var(--line-soft)}

.mlist{margin:0;padding-left:1.4rem;display:flex;flex-direction:column;gap:.45rem}
.mlist li{font-size:var(--fs-sm);color:var(--text-muted);line-height:1.65}

.memo-ft{margin-top:2.25rem;padding-top:1.25rem;border-top:1px solid var(--line)}
.memo-ft p{margin:0 0 1.5rem;font-size:var(--fs-xs);color:var(--text-muted);line-height:1.65}
.sig{display:flex;gap:2.5rem;flex-wrap:wrap;font-size:var(--fs-sm);color:var(--text-muted);margin-bottom:.6rem}

@media print{
  #pageHdr,#pageIntro,.memo-acts,#pageFt{display:none !important}
  .memo-wrap{padding:0}
  .memo{border:0;box-shadow:none;padding:0;max-width:none}
  .ms-h{break-after:avoid}
  .fgrp,.vd{break-inside:avoid}
  /* 节点含分析段后可能高于一页，允许跨页，改为保护更小的单元 */
  .memo .node{break-inside:auto}
  .memo .node-hd{break-after:avoid}
  .memo .anly{break-inside:auto}
  .memo .anly dt{break-after:avoid}
  .memo .anly>dl>div{break-inside:avoid}
  .memo-ft{break-inside:avoid}
}

/* ---------- 输入页：为什么问 ---------- */
.why{
  margin:.5rem 0 0;padding:.5rem .7rem;border-left:2px solid var(--line);
  font-size:.75rem;color:var(--text-muted);line-height:1.6;background:var(--paper-2);
  border-radius:0 var(--radius-sm) var(--radius-sm) 0;
}
.exlist{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.7rem}
.exlist li{padding:.7rem .85rem;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--paper-2)}
.exlist b{display:block;font-size:var(--fs-sm);font-weight:600;color:var(--ink);margin-bottom:.25rem}
.exlist span{display:block;font-size:var(--fs-xs);color:var(--text-muted);line-height:1.55}
.exlist .who{margin-top:.3rem;color:var(--text-faint)}

/* ---------- 方法与依据范围 ---------- */
.mn-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:.5rem 1.5rem;margin-bottom:1.1rem}
.mn-meta div{display:flex;gap:.6rem;align-items:baseline;font-size:var(--fs-sm)}
.mn-meta dt{margin:0;color:var(--text-faint);font-size:var(--fs-xs);white-space:nowrap}
.mn-meta dd{margin:0;color:var(--ink);font-weight:550}
.mn-h{
  margin:1.1rem 0 .5rem;font-size:var(--fs-xs);font-weight:640;
  letter-spacing:.05em;color:var(--text-muted);
}
.mn-grp{margin-bottom:.7rem}
.mn-grp b{display:block;font-size:var(--fs-sm);font-weight:600;color:var(--ink);margin-bottom:.3rem}
.mn-grp ul,.mn-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.25rem}
.mn-grp li,.mn-list li{
  display:flex;gap:.5rem;font-size:var(--fs-xs);color:var(--text-muted);line-height:1.6;
  padding-left:.9rem;position:relative;
}
.mn-grp li::before{content:"·";position:absolute;left:.2rem;color:var(--text-faint)}
.mn-not{display:flex;flex-direction:column;gap:.5rem}
.mn-not div{padding:.6rem .8rem;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--paper-2)}
.mn-not b{display:block;font-size:var(--fs-sm);font-weight:600;color:var(--ink);margin-bottom:.2rem}
.mn-not span{display:block;font-size:var(--fs-xs);color:var(--text-muted);line-height:1.6}

/* ── 逐项分析（完整版） ── */
.anly{
  margin-top:.6rem;padding:.7rem .8rem;border-radius:8px;
  background:var(--paper-2);border:1px solid var(--line-soft);
}
.anly-h{
  display:block;font-size:.625rem;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--text-faint);margin-bottom:.45rem;
}
.anly dl{margin:0;display:flex;flex-direction:column;gap:.5rem}
.anly dt{
  font-size:.6875rem;font-weight:650;color:var(--text);margin-bottom:.18rem;
}
.anly dd{margin:0;font-size:var(--fs-xs);color:var(--text-muted);line-height:1.6}
.anly dd ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.25rem}
.anly dd ul li{display:flex;gap:.5rem;line-height:1.55}
.anly dd ul li::before{
  content:"";flex:none;width:3px;height:3px;border-radius:50%;
  background:var(--text-faint);margin-top:.52rem;
}

/* ── 名单筛查结果 ── */
.hits{margin:.5rem 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.45rem}
.hits li{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem;
  font-size:var(--fs-xs);line-height:1.5;
  padding:.45rem .55rem;border-radius:6px;background:var(--paper);border:1px solid var(--line-soft);
}
.hits li b{font-weight:640;color:var(--ink)}
.hits .tag{
  font-size:.625rem;padding:.1rem .4rem;border-radius:4px;
  background:var(--paper-2);border:1px solid var(--line-soft);color:var(--text-faint);
}
.hits li a{font-size:.6875rem;color:var(--accent);text-decoration:none;margin-left:auto;white-space:nowrap}
.hits li a:hover{text-decoration:underline}
.near{margin-top:.5rem}
.near summary{
  cursor:pointer;font-size:.75rem;color:var(--text-muted);
  padding:.3rem 0;user-select:none;
}
.near summary:hover{color:var(--text)}
.near[open] summary{margin-bottom:.2rem}
.scr-meta{
  margin:.7rem 0 0;padding-top:.55rem;border-top:1px dashed var(--line);
  font-size:.6875rem;color:var(--text-faint);line-height:1.55;
}

/* 长清单名不得撑破容器：允许换行并可收缩 */
.hits{min-width:0;max-width:100%}
.hits li{min-width:0;max-width:100%}
.hits li b{min-width:0;overflow-wrap:anywhere}
.hits .tag{white-space:normal;overflow-wrap:anywhere;min-width:0;flex:0 1 auto}
.hits li a{margin-left:0;flex:0 0 auto}
.mn-list li .hits{flex-basis:100%;margin-top:.4rem}

/* 已填事实：窄屏下长问题标签会撑破表格，改为上下排布 */
@media (max-width:560px){
  .ftab > div{flex-direction:column;gap:.2rem}
  .ftab dt{min-width:0}
}
.ftab dt,.ftab dd{overflow-wrap:anywhere}


/* ============================================================
   打印版式
   ------------------------------------------------------------
   记录是唯一会离开屏幕、被留档与传阅的产物，单独排版。
   正文改用系统衬线体：不加载任何字体文件，但排出来是文书而非网页。
   ============================================================ */
.print-run{display:none}

@page{ margin:18mm 16mm 20mm; }

@media print{
  /* 页眉页脚：Chrome 下 fixed 元素逐页重复 */
  .print-run{
    display:flex;justify-content:space-between;align-items:baseline;
    position:fixed;left:0;right:0;
    font-size:8.5pt;color:#666;letter-spacing:.02em;
  }
  .print-run-top{top:-12mm;border-bottom:.4pt solid #bbb;padding-bottom:2mm}
  .print-run-bot{bottom:-14mm;border-top:.4pt solid #bbb;padding-top:2mm}

  .memo{
    font-family:Georgia,"Times New Roman","Songti SC",SimSun,"Noto Serif CJK SC",serif;
    font-size:10.5pt;line-height:1.75;color:#000;
  }
  .memo h2{font-size:17pt;letter-spacing:.04em}
  .memo .ms-h{
    font-size:11.5pt;letter-spacing:.12em;
    border-bottom:.6pt solid #000;padding-bottom:1.5mm;margin-top:9mm;
  }
  .memo .node-hd b{font-size:10.5pt}
  .memo p,.memo li,.memo dd,.memo dt{orphans:3;widows:3}

  /* 依据条文：法律产物里引证即是实质，打印时不淡化 */
  .memo .basis{
    font-size:9pt;color:#000;border-top:.4pt dotted #999;
    font-style:italic;
  }
  .memo .anly{background:transparent;border:.4pt solid #ccc;padding:3mm}
  .memo .anly-h{color:#000;letter-spacing:.14em}
  .memo .hits li{border:.4pt solid #ccc;background:transparent}
  .memo .hits li a{display:none}          /* 纸面上链接无用，出处以清单名承载 */
  .memo table{font-size:9.5pt}
  .memo .tag{border:.4pt solid #bbb}
}

/* 屏幕上也抬升引证：引证是这类产物的实质，不该比正文更弱 */
.basis{font-size:.75rem;color:var(--text-muted)}
.basis::before{color:var(--text-faint)}

/* ============================================================
   填写页：左右各半
   ------------------------------------------------------------
   左侧分步横移，右侧固定且底色不同 —— 两侧性质不同，
   一侧是输入、一侧是结论，视觉上必须一眼分得开。
   ============================================================ */
.split{
  display:grid;grid-template-columns:1fr 1fr;gap:1.75rem;
  align-items:start;padding-block:1.6rem 3rem;
}

/* ---- 左：分步 ---- */
.fill{min-width:0;display:flex;flex-direction:column;gap:.9rem}

.stepnav{display:flex;gap:.4rem;flex-wrap:wrap}
.sn{
  flex:1 1 0;min-width:0;cursor:pointer;text-align:left;
  display:flex;flex-direction:column;gap:.1rem;
  padding:.5rem .6rem;border-radius:var(--radius-sm);
  border:1px solid var(--line-soft);background:var(--paper);
  font:inherit;color:var(--text-muted);
  transition:border-color .15s,background .15s;
}
.sn:hover{border-color:var(--line)}
.sn-i{
  font-size:.5625rem;font-weight:700;letter-spacing:.1em;color:var(--text-faint);
  font-variant-numeric:tabular-nums;
}
.sn-n{font-size:.75rem;font-weight:600;color:var(--ink);overflow-wrap:anywhere}
.sn-c{font-size:.625rem;color:var(--text-faint);font-variant-numeric:tabular-nums}
.sn-on{background:var(--paper-2);border-color:var(--accent)}
.sn-on .sn-i{color:var(--accent)}
.sn-full .sn-c{color:var(--export)}

.stage{overflow:hidden}
.steptrack{
  display:flex;align-items:flex-start;
  transition:transform .32s cubic-bezier(.4,0,.2,1);
}
@media (prefers-reduced-motion:reduce){ .steptrack{transition:none} }
.step{
  flex:0 0 100%;min-width:0;padding-right:2px;
  display:flex;flex-direction:column;gap:1rem;
}
.step[aria-hidden="true"]{visibility:hidden}
.step-h{
  margin:0;font-size:1.05rem;font-weight:640;color:var(--ink);letter-spacing:-.01em;
}
.step-hint{margin:-.7rem 0 0;font-size:var(--fs-xs);color:var(--text-muted);line-height:1.6}

.stepfoot{
  display:flex;align-items:center;justify-content:space-between;gap:.8rem;
  padding-top:.9rem;border-top:1px solid var(--line-soft);
}
.stepfoot .btn:disabled{opacity:.35;cursor:default}
.stepcount{
  font-size:.6875rem;color:var(--text-faint);
  font-variant-numeric:tabular-nums;white-space:nowrap;
}
.stephint{margin:0;font-size:.6875rem;color:var(--text-faint);line-height:1.6}

/* ---- 右：结论面板 ---- */
.panel{
  min-width:0;position:sticky;top:5rem;
  border:1px solid var(--line);border-radius:var(--radius);
  background:var(--paper-2);box-shadow:var(--shadow-md);
  overflow:hidden;
}
.panel-hd{
  display:flex;align-items:baseline;justify-content:space-between;gap:.7rem;
  padding:1rem 1.25rem;border-bottom:1px solid var(--line);
  background:var(--paper);
}
.panel-hd h2{margin:0;font-size:.9375rem;font-weight:660;color:var(--ink);letter-spacing:.01em}
.panel-tag{font-size:.6875rem;color:var(--text-faint)}
.pb{padding:1rem 1.25rem;border-bottom:1px solid var(--line-soft)}
.pb:last-of-type{border-bottom:0}
.pb-h{
  margin:0 0 .6rem;font-size:.6875rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);
  display:flex;align-items:baseline;gap:.5rem;
}
.pb-h span{font-size:.625rem;letter-spacing:0;text-transform:none;color:var(--text-faint)}
.pb .chart{padding:0}
.pb .vd{margin-bottom:.5rem}
.panel-acts{
  display:flex;gap:.5rem;flex-wrap:wrap;
  padding:1rem 1.25rem;border-top:1px solid var(--line);background:var(--paper);
}

/* 尚未结清：你补的与另行判定的并列一张表，用标记区分由谁结 */
.open{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.4rem}
.open li{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem;
  font-size:var(--fs-xs);line-height:1.55;
  padding:.45rem .55rem;border-radius:5px;
  background:var(--paper);border:1px solid var(--line-soft);
}
.op-who{
  flex:none;font-size:.5625rem;font-weight:700;letter-spacing:.06em;
  padding:.08rem .35rem;border-radius:3px;
}
.op-you .op-who{background:var(--signal-bg);color:var(--signal)}
.op-pro .op-who{background:var(--ip-bg);color:var(--ip)}
.op-t{flex:1 1 12rem;min-width:0;color:var(--text-muted);overflow-wrap:anywhere}

@media (max-width:960px){
  .split{grid-template-columns:1fr;gap:1.25rem}
  .panel{position:static}
}


/* 尚未结清：按法域折叠，默认只给数，展开才看细目 */
.opg{
  border:1px solid var(--line-soft);border-radius:var(--radius-sm);
  background:var(--paper);margin-bottom:.4rem;
}
.opg > summary{
  cursor:pointer;user-select:none;list-style:none;
  display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;
  padding:.5rem .6rem;font-size:var(--fs-xs);
}
.opg > summary::-webkit-details-marker{display:none}
.opg > summary::after{
  content:"展开";margin-left:auto;font-size:.625rem;color:var(--text-faint);
}
.opg[open] > summary::after{content:"收起"}
.opg[open] > summary{border-bottom:1px solid var(--line-soft)}
.opg .open{padding:.55rem .6rem}
.opg .open li{border:0;background:transparent;padding:.22rem 0}
.op-who.op-you-w{background:var(--signal-bg);color:var(--signal)}
.op-who.op-pro-w{background:var(--ip-bg);color:var(--ip)}
.opg-n{color:var(--text-muted)}
.op-t .who{display:block;margin-top:.15rem;font-size:.625rem;color:var(--text-faint)}

/* ---- 批量主体录入 ---- */
.bulk{
  margin-top:.4rem;padding:.85rem .9rem;border-radius:var(--radius-sm);
  border:1px dashed var(--line);background:var(--paper-2);
}
.bulk-hd{display:flex;flex-direction:column;gap:.15rem;margin-bottom:.6rem}
.bulk-hd b{font-size:var(--fs-xs);font-weight:640;color:var(--ink)}
.bulk-hd span{font-size:.6875rem;color:var(--text-muted);line-height:1.55}
.bulk-acts{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center;margin-top:.5rem}
.bulk-acts .btn{font-size:.75rem;padding:.32rem .7rem}
.bulk textarea{
  width:100%;box-sizing:border-box;margin-top:.5rem;
  padding:.55rem .65rem;border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--paper);color:var(--ink);font:inherit;font-size:var(--fs-xs);
  line-height:1.6;resize:vertical;
}
.bulk textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}
.bulk-role{display:inline-flex;align-items:center;gap:.35rem;font-size:.6875rem;color:var(--text-muted)}
.bulk-role select{
  font:inherit;font-size:.6875rem;padding:.25rem .4rem;
  border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink);
}
.bulk-n{
  display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;
  margin-top:.7rem;padding-top:.55rem;border-top:1px solid var(--line-soft);
  font-size:.6875rem;color:var(--text-muted);
}
.lnk{
  background:none;border:0;padding:0;font:inherit;font-size:.6875rem;
  color:var(--accent);cursor:pointer;text-decoration:underline;
}
.lnk:hover{opacity:.8}
.plist{margin:.5rem 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.25rem}
.plist li{
  display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;
  padding:.35rem .5rem;border-radius:5px;
  background:var(--paper);border:1px solid var(--line-soft);font-size:.6875rem;
}
.prole{
  flex:none;font-size:.5625rem;font-weight:700;letter-spacing:.04em;
  padding:.08rem .35rem;border-radius:3px;
  background:var(--paper-2);color:var(--text-faint);border:1px solid var(--line-soft);
}
.pnm{flex:1 1 8rem;min-width:0;color:var(--ink);overflow-wrap:anywhere}
.ph{color:var(--ip);white-space:nowrap}
.pn{color:var(--signal);white-space:nowrap}
.pk{color:var(--text-faint);white-space:nowrap}
.px{
  flex:none;background:none;border:0;cursor:pointer;
  color:var(--text-faint);font-size:1rem;line-height:1;padding:0 .15rem;
}
.px:hover{color:var(--ip)}

/* ---- 结论摘要 ---- */
.brief{display:flex;flex-direction:column;gap:.55rem}
.bf{
  padding:.7rem .8rem;border-radius:var(--radius-sm);
  border:1px solid var(--line-soft);border-left-width:3px;background:var(--paper);
}
.bf-ok{border-left-color:var(--export)}
.bf-warn{border-left-color:var(--signal)}
.bf-bad{border-left-color:var(--ip)}
.bf-hd{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;flex-wrap:wrap}
.bf-hd b{font-size:var(--fs-sm);font-weight:640;color:var(--ink)}
.bf-v{font-size:.75rem;font-weight:620;white-space:nowrap}
.bf-ok .bf-v{color:var(--export)}
.bf-warn .bf-v{color:var(--signal)}
.bf-bad .bf-v{color:var(--ip)}
.bf-l{margin:.35rem 0 0;font-size:var(--fs-xs);color:var(--text-muted);line-height:1.6}
.bf-n{margin:.3rem 0 0;font-size:.6875rem;color:var(--text-faint)}
/* 制裁分级：与出口管制结论同卡并列，以分隔线区开，不混为一个结论 */
.bf-s{
  margin:.5rem 0 0;padding-top:.45rem;border-top:1px dashed var(--line-soft);
  display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .5rem;font-size:var(--fs-xs);line-height:1.5
}
.bf-s-k{font-size:.6875rem;color:var(--text-faint);letter-spacing:.04em}
.bf-s b{font-weight:620}
.bf-s-ok b{color:var(--export)}
.bf-s-warn b{color:var(--signal)}
.bf-s-bad b{color:var(--ip)}
.bf-s-d{color:var(--text-muted)}
@media print{
  .bf{break-inside:avoid;border-left-width:2pt}
  .bf-l,.bf-n,.bf-s-d{color:#000}
}

/* 分析意见默认收起 —— 内容不减，但不占默认视野 */
.anly > summary{
  cursor:pointer;user-select:none;list-style:none;
  display:flex;align-items:center;gap:.4rem;margin-bottom:0;
}
.anly > summary::-webkit-details-marker{display:none}
.anly > summary::after{
  content:"展开";font-size:.625rem;font-weight:400;letter-spacing:0;
  text-transform:none;color:var(--text-faint);margin-left:auto;
}
.anly[open] > summary::after{content:"收起"}
.anly[open] > summary{margin-bottom:.45rem}
@media print{ .anly > summary::after{display:none} }

/* ---- 字段依据的条文 ---- */
.cites{margin:.3rem 0 0;display:flex;gap:.3rem;flex-wrap:wrap}
.cite{
  position:relative;cursor:help;
  font-size:.5625rem;font-weight:600;letter-spacing:.03em;
  padding:.1rem .38rem;border-radius:3px;
  background:var(--paper-2);color:var(--text-faint);
  border:1px solid var(--line-soft);
}
.cite:hover,.cite:focus,.cite.is-open{color:var(--accent);border-color:var(--accent);outline:none}
.cite-pop{
  position:absolute;left:0;bottom:calc(100% + 6px);z-index:30;
  width:min(21rem,78vw);padding:.6rem .7rem;
  border-radius:var(--radius-sm);border:1px solid var(--line);
  background:var(--paper);box-shadow:var(--shadow-md);
  font-size:.6875rem;font-weight:400;letter-spacing:0;
  color:var(--text-muted);line-height:1.6;
  opacity:0;visibility:hidden;transform:translateY(3px);
  transition:opacity .13s,transform .13s,visibility .13s;
}
.cite:hover .cite-pop,
.cite:focus .cite-pop,
.cite.is-open .cite-pop{opacity:1;visibility:visible;transform:translateY(0)}
.cite-pop b{display:block;color:var(--ink);font-weight:640;margin-bottom:.2rem}
.cite-pop i{
  display:block;margin-top:.4rem;padding-top:.35rem;
  border-top:1px dashed var(--line);
  font-style:normal;font-size:.625rem;color:var(--text-faint);
}
@media print{ .cites{display:none} }

/* 分步提示 */
.step-tip{
  margin:-.5rem 0 0;padding:.5rem .65rem;border-radius:var(--radius-sm);
  background:var(--signal-bg);border:1px solid var(--signal);
  font-size:.6875rem;color:var(--text);line-height:1.6;
}
.step-tip .lnk{margin-left:.3rem}

/* 先做的三件：与全部清单区分开 */
.open-top{margin-bottom:.6rem}
.open-top li{border-color:var(--signal);background:var(--signal-bg)}

/* 结论卡的生成时间 */
.card-stamp{
  margin:0;padding:0 1.25rem 1rem;
  font-size:.625rem;color:var(--text-faint);font-variant-numeric:tabular-nums;
}

/* ---- 留档与复查 ---- */
.arch{margin-bottom:1.25rem}
.arch h3{padding:1rem 1.25rem .6rem}
.arch-note{
  margin:0;padding:0 1.25rem .9rem;
  font-size:.6875rem;color:var(--text-faint);line-height:1.65;
}
.archl{margin:0;padding:0 1.25rem 1.1rem;list-style:none;display:flex;flex-direction:column;gap:.55rem}
.arch-item{
  padding:.7rem .8rem;border-radius:var(--radius-sm);
  border:1px solid var(--line-soft);border-left-width:3px;background:var(--paper);
}
.av-ok{border-left-color:var(--export)}
.av-warn{border-left-color:var(--signal)}
.av-bad{border-left-color:var(--ip)}
.ai-hd{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}
.ai-hd b{font-size:var(--fs-xs);font-weight:640;color:var(--ink);overflow-wrap:anywhere}
.ai-d{font-size:.625rem;color:var(--text-faint);font-variant-numeric:tabular-nums}
.ai-x{margin-left:auto}
.ai-v{margin:.3rem 0 0;font-size:var(--fs-xs);line-height:1.6}
.av-ok .ai-v{color:var(--export)}
.av-warn .ai-v{color:var(--signal)}
.av-bad .ai-v{color:var(--ip)}
.ai-rows{
  margin:.45rem 0 0;padding:.45rem 0 0;list-style:none;
  border-top:1px dashed var(--line);
  display:flex;flex-direction:column;gap:.25rem;
}
.ai-rows li{
  display:flex;gap:.4rem;align-items:baseline;flex-wrap:wrap;
  font-size:.6875rem;color:var(--text-muted);line-height:1.55;
}
.ac-k{
  flex:none;font-size:.5625rem;font-weight:700;letter-spacing:.04em;
  padding:.06rem .3rem;border-radius:3px;
  background:var(--paper-2);color:var(--text-faint);border:1px solid var(--line-soft);
}
.ac-k.ac-v{background:var(--ip-bg);color:var(--ip);border-color:var(--ip)}
.ai-n{margin:.4rem 0 0;font-size:.625rem;color:var(--text-faint)}
@media print{ .arch{display:none} }

/* ---- 商标实务条目 ---- */
.tm-entry{padding:.8rem .9rem;border:1px solid var(--line-soft);border-radius:var(--radius-sm);
  background:var(--paper);margin-bottom:.6rem}
.tm-entry .node-hd b{font-size:var(--fs-sm)}
.tm-entry p{font-size:var(--fs-xs);line-height:1.75}
.pill.tm-law{background:var(--export-bg);color:var(--export)}
.pill.tm-rule{background:var(--data-bg);color:var(--data)}
.pill.tm-note{background:var(--signal-bg);color:var(--signal)}

/* ---- 法域对照 ---- */
.cmp-pick{
  display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;
  padding:0 1.25rem 1rem;
}
.cmp-lbl{font-size:.6875rem;color:var(--text-faint);margin-right:.2rem}
.cmp-chip{
  cursor:pointer;font:inherit;font-size:.75rem;
  padding:.25rem .65rem;border-radius:999px;
  border:1px solid var(--line);background:var(--paper);color:var(--text-muted);
  transition:border-color .15s,background .15s,color .15s;
}
.cmp-chip:hover{border-color:var(--accent)}
.cmp-chip.on{background:var(--accent);border-color:var(--accent);color:#fff}
.cmp-more{font-size:.625rem;color:var(--text-faint);margin-left:auto}

table.cmp{width:100%;border-collapse:collapse;font-size:var(--fs-xs)}
table.cmp th,table.cmp td{
  border:1px solid var(--line-soft);padding:.55rem .65rem;
  vertical-align:top;text-align:left;
}
table.cmp thead th{
  background:var(--paper-2);font-weight:640;color:var(--ink);
  white-space:nowrap;position:sticky;top:0;
}
.cmp-dim{background:var(--paper-2);min-width:9rem;max-width:13rem}
.cmp-dim b{display:block;color:var(--ink);font-weight:620}
.cmp-dim span{
  display:block;margin-top:.2rem;font-size:.625rem;font-weight:400;
  color:var(--text-faint);line-height:1.5;
}
.cmp-v{
  display:inline-block;font-size:.6875rem;font-weight:680;
  padding:.05rem .4rem;border-radius:4px;margin-bottom:.3rem;
}
.cmp-ok{background:var(--export-bg);color:var(--export)}
.cmp-warn{background:var(--signal-bg);color:var(--signal)}
.cmp-bad{background:var(--ip-bg);color:var(--ip)}
.cmp-none{background:var(--paper-2);color:var(--text-faint)}
/* 事实型取值（如异议时点）：无优劣之分，不着色；但字色如常，
   以便与同底色的「未收录／未判读」一眼区分 —— 后者字色是淡的。 */
.cmp-fact{background:var(--paper-2);color:var(--text)}
.cmp-d{display:block;font-size:.625rem;color:var(--text-muted);line-height:1.55;overflow-wrap:anywhere}
.cmp-src{
  margin:.7rem 1.25rem 0;font-size:.625rem;color:var(--text-faint);line-height:1.6;
}
.cmp-src a{color:var(--accent);text-decoration:none}
.cmp-src a:hover{text-decoration:underline}
.cmp-diff{
  margin:.9rem 1.25rem 1.1rem;padding:.75rem .85rem;
  border-radius:var(--radius-sm);background:var(--paper-2);border:1px solid var(--line-soft);
}
.cmp-diff h4{
  margin:0 0 .45rem;font-size:.6875rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);
}
.cmp-diff ul{margin:0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.3rem}
.cmp-diff li{font-size:var(--fs-xs);color:var(--text-muted);line-height:1.6}
.cmp-diff b{color:var(--ink)}
.cmp-same{margin:.9rem 1.25rem 1.1rem;font-size:var(--fs-xs);color:var(--text-faint)}
@media (max-width:560px){ .cmp-dim{min-width:7rem} }
.cmp-grp th{
  background:var(--paper);font-size:.625rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);
  padding:.45rem .65rem;
}

/* ============================================================
   商标工作面
   ------------------------------------------------------------
   这一页不是向导。出口管制要从头填事实才有结论，商标不是 ——
   来查「韩国异议期多久」的人，不该先被要求走第 1 步。
   所以整页是一张可查询的矩阵，三个镜头看同一份数据：
   对照（法域 × 维度）/ 差异（只看不一致）/ 档案（单法域全字段）。
   ============================================================ */
.tmbar{
  display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;
  padding:.7rem 1.25rem;border-bottom:1px solid var(--line-soft)
}
.tmbar-lbl{font-size:.625rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint)}

.tmbar .spacer{margin-left:auto}
.tmbar .lnk{
  cursor:pointer;font:inherit;font-size:.6875rem;background:none;border:0;
  color:var(--accent);padding:0
}
.tmbar .lnk:hover{text-decoration:underline}
.tmbar .lnk[disabled]{color:var(--text-faint);cursor:default;text-decoration:none}

/* 维度筛选 */
.filt{display:flex;flex-wrap:wrap;gap:.3rem;padding:.55rem 1.25rem;border-bottom:1px solid var(--line-soft)}
.filt .cmp-chip{font-size:.6875rem;padding:.18rem .55rem}

/* 矩阵：横向滚动时维度名必须一直看得见 */
.tablewrap{overflow-x:auto;padding:0 1.25rem 0;max-width:100%}
table.cmp th.cmp-dim{position:sticky;left:0;z-index:2}
table.cmp thead th:first-child{z-index:3}
table.cmp td{min-width:11rem}
.cmp-b{
  display:block;margin-top:.3rem;font-size:.5625rem;color:var(--text-faint);
  line-height:1.5;overflow-wrap:anywhere
}
.cmp-hd-src{
  display:block;margin-top:.15rem;font-size:.5625rem;font-weight:400;
  color:var(--text-faint);white-space:normal
}

/* 来源标识：WIPO 与条文自采不能看起来一样 */
.srcb{
  display:inline-block;font-size:.5625rem;font-weight:600;padding:0 .3rem;
  border-radius:3px;margin-left:.3rem;vertical-align:middle
}
.srcb-wipo{background:var(--paper-2);color:var(--text-faint)}
.srcb-statute{background:var(--ip-bg);color:var(--ip)}

/* 法域详解：字段表 */
.sheet{padding:0 0 1rem}
.sheet-hd{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem;margin:0 1.25rem .15rem}
.sheet-hd h4{margin:0;font-size:1rem;color:var(--ink)}
.sheet-hd span{font-size:.6875rem;color:var(--text-faint)}
.sheet-meta{margin:0 1.25rem .8rem;font-size:.625rem;color:var(--text-faint);line-height:1.6}
.sheet-meta a{color:var(--accent);text-decoration:none}
/* 分类标题是正文区里最强的一层：比字段名更大更重，与卡片标题同色。
   之前它比字段名还浅，读下来找不到骨架，只剩一片同等份量的条目。 */
.sheet-g{
  margin:1.7rem 1.25rem .55rem;font-size:.8125rem;font-weight:680;letter-spacing:.01em;
  color:var(--ink);padding-bottom:.45rem;border-bottom:1px solid var(--line)
}
.sheet-g:first-child{margin-top:1rem}
.sheet-r{
  display:flex;gap:1.1rem;padding:.7rem 1.25rem;
  border-top:1px solid var(--line-soft)
}
.sheet-r:first-of-type{border-top:0}
.sheet-r .k{flex:0 0 9.5rem;font-size:.75rem;font-weight:520;color:var(--text-muted);line-height:1.6}
.sheet-r .v{flex:1;font-size:.75rem;color:var(--text-muted);line-height:1.75}

/* 单法域页里的取值：纯文字，不上色。
   彩色标签在对照表里有用 —— 横着扫五列找不同，颜色能带路。
   单法域页只有一列，没有可比的对象，18 行全挂彩标只会让整页看起来
   满篇重点，反而看不出哪里要紧。 */
.sheet-v{font-weight:620;color:var(--ink)}
.sheet-v-none{font-weight:400;color:var(--text-faint)}
.sheet-r .v .sheet-v + span,.sheet-r .v .sheet-v-none + span{display:block;margin-top:.2rem}
.tm-empty{padding:1rem 1.25rem;font-size:var(--fs-xs);color:var(--text-faint);line-height:1.7}

/* 有分歧的行 —— 差异不另设视图，就在完整表里标出来 */
tr.cmp-dv th.cmp-dim{background:var(--signal-bg)}
.dvtag{
  display:inline-block;margin-left:.35rem;font-size:.5625rem;font-weight:700;
  letter-spacing:.04em;padding:0 .3rem;border-radius:3px;
  background:var(--signal);color:#fff;vertical-align:middle
}

/* 表头法域名可点进详解 */
.cmp-hd-a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}
.cmp-hd-a:hover{color:var(--accent);border-bottom-color:var(--accent)}

/* ============================================================
   法域选择器：可搜索，能扛 119 个成员
   ============================================================ */
.jp{position:relative;max-width:34rem}
.jp-tags{
  display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;
  border:1px solid var(--line);border-radius:var(--r-sm);
  padding:.35rem .45rem;background:var(--paper)
}
.jp-tags:focus-within{border-color:var(--accent)}
.jp-tag{
  display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;
  background:var(--accent);color:#fff;border-radius:999px;padding:.1rem .25rem .1rem .6rem
}
.jp-tag button{
  cursor:pointer;border:0;background:none;color:#fff;font:inherit;
  font-size:.875rem;line-height:1;padding:0 .25rem;opacity:.75
}
.jp-tag button:hover{opacity:1}
.jp-in{
  flex:1;min-width:11rem;border:0;outline:0;background:none;font:inherit;
  font-size:.8125rem;color:var(--ink);padding:.2rem .1rem
}
.jp-list{
  position:absolute;z-index:20;left:0;right:0;top:calc(100% + .25rem);
  margin:0;padding:.25rem;list-style:none;max-height:16rem;overflow-y:auto;
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm);
  box-shadow:0 6px 24px rgba(0,0,0,.09)
}
.jp-opt{
  display:flex;width:100%;align-items:baseline;gap:.5rem;cursor:pointer;
  border:0;background:none;font:inherit;text-align:left;
  padding:.35rem .5rem;border-radius:4px
}
.jp-opt:hover,.jp-opt.on{background:var(--paper-2)}
.jp-opt b{font-size:.8125rem;color:var(--ink);font-weight:580}
.jp-opt span{font-size:.625rem;color:var(--text-faint)}
.jp-none{padding:.5rem;font-size:.6875rem;color:var(--text-faint);line-height:1.6}
.jp-hint{margin:.4rem 0 0;font-size:.625rem;color:var(--text-faint);line-height:1.6}

/* ============================================================
   板块目录卡片
   ============================================================ */
.decks{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.7rem}
.deck{
  display:flex;flex-direction:column;gap:.35rem;text-decoration:none;
  border:1px solid var(--line-soft);border-radius:var(--r-sm);
  padding:.9rem 1rem;background:var(--paper);transition:border-color .16s,background .16s
}
.deck:hover{border-color:var(--accent);background:var(--paper-2)}
.deck-n{font-size:.5625rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint)}
.deck h4{margin:0;font-size:.9375rem;color:var(--ink)}
.deck p{margin:0;font-size:.6875rem;color:var(--text-muted);line-height:1.65}
.deck-m{margin-top:auto;padding-top:.4rem;font-size:.625rem;color:var(--accent)}
.deck-soon{opacity:.62}
.deck-soon .deck-m{color:var(--text-faint)}

/* ============================================================
   详解页：左侧目录
   ============================================================ */
.doc{display:grid;grid-template-columns:13rem minmax(0,1fr);gap:1.4rem;align-items:start}
.toc{position:sticky;top:4.2rem;max-height:calc(100vh - 6rem);overflow-y:auto}
.toc-h{
  margin:0 0 .45rem;font-size:.5625rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--text-faint)
}
.toc ol{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.1rem}
.toc a{
  display:block;text-decoration:none;font-size:.75rem;line-height:1.5;
  color:var(--text-muted);padding:.3rem .5rem;border-left:2px solid var(--line-soft);
  border-radius:0 4px 4px 0
}
.toc a:hover{color:var(--ink);background:var(--paper-2)}
.toc a.on{color:var(--accent);border-left-color:var(--accent);background:var(--paper-2);font-weight:560}
.toc .sub a{font-size:.6875rem;padding-left:1.1rem;color:var(--text-faint)}
.toc .sub a:hover,.toc .sub a.on{color:var(--ink)}
.doc-sec{scroll-margin-top:4.5rem}
@media (max-width:860px){
  .doc{grid-template-columns:1fr}
  .toc{position:static;max-height:none;margin-bottom:.6rem}
  .toc ol{flex-direction:row;flex-wrap:wrap;gap:.3rem}
  .toc a{border-left:0;border:1px solid var(--line-soft);border-radius:999px;padding:.2rem .6rem}
  .toc .sub{display:none}
}

/* ============================================================
   区分表：类别网格
   ============================================================ */
.clsgrid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(7.5rem,1fr));gap:.4rem;
  margin-top:.3rem
}
.cls{
  display:flex;align-items:center;gap:.45rem;cursor:pointer;text-align:left;
  font:inherit;padding:.45rem .6rem;border-radius:var(--r-sm);
  border:1px solid var(--line-soft);background:var(--paper);
  transition:border-color .15s,background .15s
}
.cls:hover{border-color:var(--accent)}
.cls.on{background:var(--accent);border-color:var(--accent)}
.cls.on .cls-n,.cls.on .cls-t{color:#fff}
.cls-n{
  flex:0 0 1.5rem;font-family:var(--font-display);font-size:.8125rem;
  color:var(--text-faint);font-variant-numeric:tabular-nums;text-align:right
}
.cls-t{font-size:.75rem;color:var(--ink);line-height:1.3;overflow-wrap:anywhere}
.cls-service .cls-n{color:var(--accent)}
.cls.on.cls-service .cls-n{color:#fff}

.clsblk{
  margin-top:.7rem;padding:.75rem .85rem;border-radius:var(--r-sm);
  border:1px solid var(--line-soft);background:var(--paper)
}
.clsblk-hd{display:flex;align-items:center;gap:.4rem}
.clsblk-hd b{font-size:.875rem;color:var(--ink)}
.clsblk-s{margin:.3rem 0 0;font-size:.6875rem;color:var(--text-muted)}
.clsblk-a{margin:.2rem 0 .4rem;font-size:.625rem;color:var(--text-faint);line-height:1.6}
.clsblk code{
  font-size:.625rem;background:var(--paper-2);padding:0 .25rem;border-radius:3px;
  color:var(--text-muted)
}
.clsblk-s a{margin-left:.25rem}

/* 区分表：类似群 → 部分 → 项目。部分之间以小标题隔开 —— 各部分之间商品不类似，不可混排 */
.clsg-head{margin:.6rem 0 .3rem;font-size:.75rem;color:var(--ink);line-height:1.6}
.clsg-head b{font-weight:620;margin-right:.5rem;color:var(--text-faint);font-size:.6875rem}
.clsg-note{margin:0 0 .4rem;font-size:.6875rem;color:var(--text-muted)}
.clsg-note summary,.clsg summary{cursor:pointer}
.clsg-note p{margin:.25rem 0 0;line-height:1.7}
.clsg{border-top:1px solid var(--line-soft);padding:.45rem 0}
.clsg summary{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap;font-size:.75rem}
.clsg-c{font-variant-numeric:tabular-nums;font-weight:640;color:var(--ink)}
.clsg-t{color:var(--ink);min-width:0;overflow-wrap:anywhere}
.clsg-n{margin-left:auto;font-size:.625rem;color:var(--text-faint);white-space:nowrap}
.clsg-p{margin:.5rem 0 .2rem;font-size:.6875rem;font-weight:620;color:var(--text-muted)}
.clsg-pa{margin:.45rem 0 .15rem;font-size:.625rem;color:var(--text-faint)}
.clsg-items{list-style:none;margin:.2rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.3rem .9rem}
.clsg-items li{font-size:.75rem;color:var(--ink);display:inline-flex;align-items:baseline;gap:.25rem;min-width:0;overflow-wrap:anywhere}
.clsg-items .lnk{font-size:.625rem}
.clsg-m{font-size:.625rem;color:var(--text-faint)}
.clsg-notes{margin:.5rem 0 0;padding:.4rem .55rem;border-radius:var(--r-sm);background:var(--paper-2)}
.clsg-notes p{margin:0;font-size:.6875rem;line-height:1.7;color:var(--text-muted)}
.clsg-notes p + p{margin-top:.2rem}
.clsg-x{margin:.35rem 0 0;font-size:.6875rem;color:var(--text-muted)}

/* 详解页：卡片之间与卡片内部的呼吸 */
.doc > div > .card{margin-bottom:.9rem}
.doc > div > .card:last-child{margin-bottom:0}
.doc .tm-entry{margin:0 1.25rem .5rem}
.doc .step-hint{margin:1rem 1.25rem .5rem}
.doc .tm-empty{margin:0 0 .6rem}
.doc .jp-hint{margin:.6rem 1.25rem 0}
.doc .stephint{margin:1rem 1.25rem 1.1rem}

/* 判读来源：与人工核验、条文自采分开标识 */
.srcb-derived{background:var(--signal-bg);color:var(--signal)}
.cmp-more-a{
  display:inline-block;font-size:.5625rem;margin-left:.3rem;
  color:var(--accent);text-decoration:none
}
.cmp-more-a:hover{text-decoration:underline}

/* WIPO 原文：与我方中文内容在视觉上分开，避免误认为已翻译 */
.wipo-en{
  display:block;font-size:.6875rem;line-height:1.7;color:var(--text-muted);
  white-space:pre-wrap;overflow-wrap:anywhere
}

/* ============================================================
   评定工作台：左原文、右填值
   ============================================================ */
.asz{margin-bottom:.7rem}
.asz-hd{padding:.7rem 1.25rem;border-bottom:1px solid var(--line-soft)}
.asz-hd b{font-size:.875rem;color:var(--ink)}
.asz-impact{display:block;margin-top:.2rem;font-size:.625rem;color:var(--text-faint);line-height:1.6}
.asz-body{display:grid;grid-template-columns:1fr 1fr;gap:0}
.asz-src{padding:.9rem 1.25rem;border-right:1px solid var(--line-soft);background:var(--paper-2)}
.asz-in{padding:.9rem 1.25rem;display:flex;flex-direction:column;gap:.5rem}
.asz-lbl{
  margin:0 0 .45rem;font-size:.5625rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--text-faint)
}
.asz-src .wipo-en{max-height:14rem;overflow-y:auto}
.asz-hint{display:block;margin-top:.5rem;font-size:.625rem;color:var(--text-muted);line-height:1.6}
.asz-vals{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center}
.asz-free{max-width:9rem;font-size:.75rem;padding:.2rem .5rem}
.asz-note{font-size:.75rem;line-height:1.6;resize:vertical}
.asz-basis{font-size:.75rem}
.codeout{
  margin:0;padding:.9rem 1.25rem;font-size:.6875rem;line-height:1.7;
  white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text-muted);
  background:var(--paper-2);border-top:1px solid var(--line-soft)
}
@media (max-width:860px){ .asz-body{grid-template-columns:1fr} .asz-src{border-right:0;border-bottom:1px solid var(--line-soft)} }
/* 未判读格中的 WIPO 原句。与我方撰写的说明同处一栏，故须一眼可分：
   斜体前缀点明这是谁的话，字色压暗一档，避免被当作我方结论。 */
.cmp-d-raw i{font-style:normal;color:var(--text-faint);margin-right:.25rem}
.cmp-d-raw{color:var(--text-muted)}

/* ============================================================
   法规库：检索与动态
   ============================================================ */
.rg-sec{margin-top:1.5rem}
.rg-sec:last-of-type{margin-bottom:var(--gap-section)}
.rg-cov{padding-top:.9rem;font-size:.75rem;line-height:1.7}
.rg-cov b{color:var(--ink);font-weight:620}
.rg-q{display:flex;gap:.6rem;padding:0 1.25rem;flex-wrap:wrap}
.rg-in{
  flex:1 1 16rem;min-width:0;padding:.6rem .8rem;border:1px solid var(--line);border-radius:9px;
  background:var(--paper);color:var(--text);font:inherit;font-size:var(--fs-sm);
}
.rg-in:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}
.rg-opts{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:.6rem 1.25rem .9rem;font-size:.75rem;color:var(--text-muted)}
.rg-chk{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer}
.rg-hint{color:var(--text-faint)}
#hits{padding:0 1.25rem 1.1rem}
#hits .empty{padding:1.25rem 0;text-align:left}
.rg-sum{margin:0 0 .6rem;font-size:.75rem;color:var(--text-faint)}
.rg-grp{border-top:1px solid var(--line-soft);padding:.9rem 0 .4rem}
.rg-grp-hd{display:flex;align-items:baseline;gap:.6rem}
.rg-grp-hd b{font-size:var(--fs-sm);font-weight:620;color:var(--ink);line-height:1.45;min-width:0;overflow-wrap:anywhere}
.rg-grp-m{margin:.25rem 0 0;font-size:.6875rem;color:var(--text-faint);line-height:1.6;overflow-wrap:anywhere}
.rg-sup{margin:.3rem 0 0;font-size:.6875rem;color:var(--signal)}
.rg-src{color:var(--accent);white-space:nowrap;font-size:var(--fs-xs)}
.rg-src:hover{text-decoration:underline}
.rg-st-ok{background:var(--data-bg);color:var(--data)}
.rg-st-old{background:var(--signal-bg);color:var(--signal)}
.rg-hits{list-style:none;margin:.6rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}
.rg-hit{padding:.6rem .75rem;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--paper-2)}
.rg-hit-hd{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}
.rg-hit-hd b{font-size:.8125rem;color:var(--ink);font-weight:640}
.rg-hit-hd span{font-size:.6875rem;color:var(--text-faint);overflow-wrap:anywhere}
.rg-snip,.rg-full p{margin:.35rem 0 0;font-size:.8125rem;line-height:1.75;color:var(--text);overflow-wrap:anywhere}
.rg-full[hidden],.rg-snip[hidden]{display:none}
.rg-items{margin:.4rem 0 0;padding-left:1.1rem;list-style:none;font-size:.8125rem;line-height:1.75;color:var(--text)}
.rg-items li{overflow-wrap:anywhere}
.rg-items-note{font-size:.6875rem !important;color:var(--text-faint) !important}
.rg-tog{
  margin-top:.35rem;padding:0;border:0;background:none;
  font-size:.6875rem;color:var(--accent);cursor:pointer;
}
.rg-tog:hover{text-decoration:underline}
.rg-rest{margin-top:.5rem}
.rg-rest summary{cursor:pointer;font-size:.75rem;color:var(--text-muted)}
mark{background:color-mix(in srgb,var(--signal) 28%,transparent);color:inherit;border-radius:2px;padding:0 .05em}
.rg-filters{display:flex;flex-direction:column;gap:.5rem;padding:0 1.25rem .9rem}
.rg-feed{margin:0 1.25rem}
.rg-feed .rg-empty{display:block;color:var(--text-faint);font-size:var(--fs-sm)}
.rg-feed .pill{margin:0 .35rem .3rem 0}
.rg-ev{display:inline-block;margin:0 .35rem .3rem 0;font-size:.6875rem;font-weight:640;color:var(--ink)}
.rg-ev-m{color:var(--text-faint) !important}
.rg-more{padding:.9rem 1.25rem 1.1rem}
@media (max-width:560px){
  .rg-q .btn{flex:1 1 100%}
}
