/* ============================================================
   东南法枢 · 应用设计系统
   视觉语言与落地页（landing.css）同源：
   深海军蓝 #0a1b33 + 鎏金 #c9a227 + 衬线标题 + 玻璃卡片
   本文件只做「落地页没有、应用界面需要」的扩展
   ============================================================ */

/* ---------------- 设计令牌 ---------------- */
:root{
  --navy:#0a1b33;
  --navy-2:#132a47;
  --navy-deep:#081428;
  --navy-lift:#0f2544;
  --gold:#c9a227;
  --gold-soft:#e8d9a8;
  --gold-bright:#f2e3b6;
  --border-gold:rgba(201,162,39,.25);
  --gold-wash:rgba(201,162,39,.12);
  --ink:#171a1f;
  --ink-2:#4b5563;
  --ink-3:#9aa2af;
  --fg:#ffffff;
  --fg-strong:#ffffff;
  --text-2:#c6d2e8;
  --muted:#aab8d0;
  --muted-2:#7c8db0;
  --ok:#5fd39b;
  --warn:#e0a23c;
  --bad:#e5675f;
  --ok-wash:rgba(70,192,138,.12);
  --warn-wash:rgba(224,162,60,.12);
  --bad-wash:rgba(229,103,95,.12);
  --chrome:rgba(8,20,40,.92);
  --chrome-soft:rgba(8,20,40,.55);
  --glass-1:rgba(255,255,255,.03);
  --glass-2:rgba(255,255,255,.08);
  --glass-3:rgba(255,255,255,.18);
  --glass-line:rgba(255,255,255,.10);
  --serif:"Noto Serif SC","Source Han Serif CN","Songti SC","STSong",serif;
  --sans:"Inter","Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  --mono:ui-monospace,SFMono-Regular,Consolas,monospace;
  --r-lg:16px;
  --r:12px;
  --r-sm:9px;
  --shadow-1:0 2px 10px rgba(2,5,12,.28);
  --shadow-2:0 14px 40px rgba(2,5,12,.42);
  --shadow-3:0 24px 60px rgba(2,5,12,.55);
  color-scheme:dark;
}

/* 浅色系统：米色羊皮纸底 + 深蓝墨字 + 同一鎏金 */
[data-theme="light"]{
  --navy:#F7F5EF; --navy-2:#F1ECE0; --navy-deep:#FFFFFF; --navy-lift:#F2EEE4;
  --gold:#C9A227; --gold-soft:#8A6A12; --gold-bright:#6E530B;
  --border-gold:rgba(138,106,18,.26);
  --gold-wash:rgba(201,162,39,.14);
  --fg:#16202F; --fg-strong:#0F1826;
  --text-2:#2A3648; --muted:#41506A; --muted-2:#5E6B80;
  --ink:#16202F; --ink-2:#3C4A60; --ink-3:#5E6B80;
  --ok:#1E7F55; --warn:#96620F; --bad:#B23A3A;
  --ok-wash:rgba(30,127,85,.10);
  --warn-wash:rgba(150,98,15,.10);
  --bad-wash:rgba(178,58,58,.10);
  --chrome:rgba(250,248,242,.94);
  --chrome-soft:rgba(250,248,242,.78);
  --glass-1:rgba(11,22,38,.028);
  --glass-2:rgba(11,22,38,.05);
  --glass-3:rgba(11,22,38,.12);
  --glass-line:rgba(11,22,38,.10);
  --shadow-1:0 1px 3px rgba(11,22,38,.05);
  --shadow-2:0 10px 30px rgba(11,22,38,.09);
  --shadow-3:0 20px 50px rgba(11,22,38,.14);
  color-scheme:light;
}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  background:
    radial-gradient(1100px 620px at 14% -10%,rgba(201,162,39,.07),transparent 58%),
    radial-gradient(900px 520px at 92% 2%,#152b4a 0%,transparent 52%),
    var(--navy);
  color:var(--fg);font-family:var(--sans);font-size:14px;line-height:1.68;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100vh;
}
[data-theme="light"] body{
  background:
    radial-gradient(1100px 620px at 14% -10%,rgba(201,162,39,.10),transparent 58%),
    radial-gradient(900px 520px at 92% 2%,#EDE4CE 0%,transparent 52%),
    var(--navy);
}
a{text-decoration:none;color:inherit}
svg{display:block}
button{font-family:inherit;cursor:pointer}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.4}
.wrap{max-width:1320px;margin:0 auto;padding:0 44px}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:6px}
@media (prefers-reduced-motion:reduce){
  *{transition-duration:.001ms !important;animation-duration:.001ms !important}
}

/* ---------------- 顶部导航 ---------------- */
.lp-header{
  position:sticky;top:0;z-index:60;background:var(--chrome);
  backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);
  border-bottom:1px solid var(--border-gold);
}
.lp-header .wrap{display:flex;align-items:center;gap:28px;height:66px}
.brand{display:flex;align-items:center;gap:11px;flex:0 0 auto}
.brand-name{font-family:var(--serif);font-size:17px;font-weight:700;color:var(--fg-strong);letter-spacing:.8px}
.brand .bs,.auth-brand .bs{display:block;font-family:var(--sans);font-size:9px;font-weight:400;
  color:var(--muted-2);letter-spacing:1.3px;margin-top:2px}
.nav{display:flex;align-items:center;gap:26px;margin-left:8px}
.nav a{font-size:13.5px;color:var(--muted);padding:5px 0;position:relative;transition:color .16s}
.nav a:hover{color:var(--fg-strong)}
.nav a.on{color:var(--gold-soft);font-weight:500}
.nav a.on:after{
  content:"";position:absolute;left:0;right:0;bottom:-22px;height:2px;
  background:linear-gradient(90deg,var(--gold),transparent);
}
.spacer{flex:1}
/* 窄屏只留圆点，文字隐藏，避免挤占主操作空间 */
.theme-btn{
  width:34px;height:34px;border-radius:10px;border:1px solid var(--border-gold);
  background:var(--glass-1);color:var(--gold);display:grid;place-items:center;
  transition:background .16s,border-color .16s;
}
.theme-btn:hover{background:var(--glass-2)}
.theme-btn svg{width:15px;height:15px}
.user-chip{
  display:flex;align-items:center;gap:9px;padding:5px 12px 5px 5px;
  border:1px solid var(--glass-line);border-radius:999px;background:var(--glass-1);
  transition:border-color .16s,background .16s;
}
.user-chip:hover{border-color:var(--border-gold);background:var(--glass-2)}
.user-chip .ava{
  width:26px;height:26px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--gold),var(--gold-soft));color:#1A1408;
  font-family:var(--serif);font-weight:700;font-size:12px;flex:0 0 26px;
}
.user-chip .nm{font-size:12.5px;color:var(--text-2);max-width:96px;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.user-chip .act{font-size:11px;color:var(--muted-2);border-left:1px solid var(--glass-line);padding-left:9px}
.user-chip .act:hover{color:var(--gold-soft)}

/* ---------------- 按钮 ---------------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:10px;
  font-weight:600;font-size:13px;padding:8px 16px;border:none;white-space:nowrap;
  transition:transform .16s,box-shadow .16s,background .16s,border-color .16s}
.btn-gold{background:linear-gradient(135deg,var(--gold),var(--gold-soft));color:#1A1408}
.btn-gold:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(201,162,39,.36)}
.btn-glass{background:var(--glass-2);border:1px solid var(--glass-line);color:var(--fg)}
.btn-glass:hover{background:var(--glass-3);border-color:var(--border-gold)}
.btn-ghost,.btn.ghost{background:none;border:1px solid var(--glass-line);color:var(--gold-soft)}
.btn-ghost:hover,.btn.ghost:hover{background:var(--glass-2);border-color:var(--border-gold)}
.btn-sm{padding:6px 13px;font-size:12.5px;border-radius:9px}
.btn-lg{padding:13px 30px;font-size:14.5px;border-radius:12px}
.link-btn{background:none;border:none;color:var(--gold-soft);font-size:12.5px;
  text-decoration:underline;text-underline-offset:3px;padding:0}
.link-btn:hover{color:var(--gold-bright)}

/* ---------------- 应用骨架 ---------------- */
.app{display:grid;grid-template-columns:minmax(0,1fr) 306px;gap:22px;
  padding:22px 0 36px;align-items:start}
.pane{border:1px solid var(--border-gold);border-radius:var(--r-lg);
  background:var(--glass-1);overflow:hidden;box-shadow:var(--shadow-1)}
.pane-main{display:flex;flex-direction:column;min-height:calc(100vh - 148px)}
.pane-side{display:flex;flex-direction:column;gap:14px;position:sticky;top:88px}

/* ---------------- 对话 ---------------- */
.chat{flex:1;min-height:0;overflow-y:auto;padding:24px 26px;
  display:flex;flex-direction:column;gap:18px;scroll-behavior:smooth}
.chat::-webkit-scrollbar{width:9px}
.chat::-webkit-scrollbar-thumb{background:var(--glass-3);border-radius:9px;
  border:2px solid transparent;background-clip:content-box}
.chat::-webkit-scrollbar-thumb:hover{background:var(--border-gold);background-clip:content-box}
.msg{display:flex;flex-direction:column;gap:6px}
.msg-user{align-items:flex-end}
.bubble{max-width:74%;padding:11px 16px;border-radius:14px 14px 4px 14px;
  background:linear-gradient(135deg,var(--gold),var(--gold-soft));color:#1A1408;
  font-size:13.5px;line-height:1.65;box-shadow:0 4px 14px rgba(201,162,39,.18)}
.msg-ai .bubble{max-width:100%;background:var(--glass-1);border:1px solid var(--glass-line);
  border-radius:14px 14px 14px 4px;color:var(--text-2);box-shadow:none;padding:18px 20px}

.conclusion{font-size:14px;line-height:1.9;color:var(--text-2)}
.conclusion b{color:var(--fg-strong);font-weight:600}
.conclusion h4{font-family:var(--serif);font-size:13px;color:var(--gold-soft);
  letter-spacing:1px;margin:16px 0 7px}
.conclusion ul{margin:6px 0 10px;padding-left:19px}
.conclusion li{margin:3px 0}
.conclusion code{background:var(--chrome-soft);border:1px solid var(--glass-line);
  border-radius:5px;padding:1px 6px;font-family:var(--mono);font-size:12px;color:var(--gold-soft)}

.tabs{display:flex;gap:3px;margin-top:18px;padding-bottom:11px;
  border-bottom:1px solid var(--glass-line);flex-wrap:wrap}
.tab{border:none;background:none;border-radius:8px;padding:5px 12px;
  font-size:12.5px;color:var(--muted);transition:background .14s,color .14s;white-space:nowrap}
.tab:hover{color:var(--fg)}
.tab.on{background:var(--glass-2);color:var(--gold-soft);font-weight:600}
.tab .n{font-family:var(--mono);font-size:10.5px;opacity:.65;margin-left:3px}
.tabbody{padding-top:4px}

/* 证据卡 */
.evi{border:1px solid var(--glass-line);border-radius:var(--r);
  background:var(--glass-1);padding:14px 16px;margin-top:10px;
  transition:border-color .16s,background .16s}
.evi:hover{border-color:var(--border-gold)}
.evi-top{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.evi-jx{font-size:10.5px;font-weight:700;color:#1A1408;background:var(--gold-soft);
  border-radius:4px;padding:1px 6px;letter-spacing:.5px}
.evi-law{font-family:var(--serif);font-size:13.5px;font-weight:600;color:var(--fg-strong)}
.evi-art{font-family:var(--mono);font-size:11.5px;color:var(--gold-soft);margin-left:auto}
.evi-topic{font-size:11.5px;color:var(--muted-2);margin-top:4px;letter-spacing:.3px}
.evi-point{font-size:13px;color:var(--text-2);line-height:1.85;margin-top:8px}
.evi-src{margin-top:10px;border-radius:var(--r-sm);background:var(--chrome-soft);
  border:1px solid var(--glass-line);overflow:hidden}
.evi-src summary{cursor:pointer;list-style:none;padding:7px 12px;font-size:11.5px;
  color:var(--muted);display:flex;align-items:center;gap:6px}
.evi-src summary::-webkit-details-marker{display:none}
.evi-src summary:before{content:"▸";color:var(--gold);font-size:10px;transition:transform .15s}
.evi-src[open] summary:before{transform:rotate(90deg)}
.evi-src .src-txt{padding:0 12px 11px;font-size:12.5px;color:var(--text-2);
  line-height:1.85;white-space:pre-wrap}
.evi-src .src-zh{padding:0 12px 11px;font-size:12.5px;color:var(--text-2);line-height:1.85}
.evi-foot{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}

.tag{display:inline-flex;align-items:center;gap:4px;border-radius:999px;
  padding:2px 9px;font-size:10.5px;font-weight:600;letter-spacing:.4px;
  color:var(--gold-soft);background:var(--gold-wash);border:1px solid var(--border-gold);white-space:nowrap}
.tag.ok{color:var(--ok);background:var(--ok-wash);border-color:transparent}
.tag.warn{color:var(--warn);background:var(--warn-wash);border-color:transparent}
.tag.bad{color:var(--bad);background:var(--bad-wash);border-color:transparent}
.tag.plain{color:var(--muted);background:var(--glass-1);border-color:var(--glass-line)}

/* 判例卡 */
.case-card{border:1px solid var(--glass-line);border-radius:var(--r);background:var(--glass-1);
  padding:14px 16px;margin-top:10px;cursor:pointer;
  transition:border-color .16s,background .16s,transform .16s}
.case-card:hover{border-color:var(--border-gold);background:var(--glass-2);transform:translateY(-1px)}
.case-head{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.case-head .case-title{flex:1 1 auto;min-width:0}
.case-title{font-family:var(--serif);font-size:13.5px;font-weight:600;color:var(--fg-strong);line-height:1.5}
.case-meta{font-family:var(--mono);font-size:11px;color:var(--muted-2)}
.case-hold{font-size:12.5px;color:var(--text-2);line-height:1.85;margin-top:8px}
.case-more{font-size:11.5px;color:var(--gold-soft);margin-top:9px;display:inline-flex;
  gap:5px;align-items:center}

/* 证明卡 */
.cert{display:flex;gap:16px;align-items:center;margin-top:18px;
  border:1px solid var(--border-gold);border-radius:var(--r);
  background:linear-gradient(135deg,var(--gold-wash),transparent 64%);padding:15px 16px}
.cert img{width:96px;height:96px;border-radius:9px;background:#fff;padding:5px;flex:0 0 96px}
.cert-t{font-family:var(--serif);font-size:14px;color:var(--gold-soft);font-weight:600;letter-spacing:.4px}
.cert-d{font-size:11.5px;color:var(--muted);line-height:1.75;margin-top:4px}
.cert-code{font-family:var(--mono);font-size:11px;color:var(--muted-2);margin-top:6px;letter-spacing:.4px}
.cert-links{display:flex;gap:14px;margin-top:8px}
.cert-links a{font-size:11.5px;color:var(--gold-soft);text-decoration:underline;text-underline-offset:3px}

.msg-meta{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin-top:16px;
  padding-top:13px;border-top:1px solid var(--glass-line);
  font-size:11px;color:var(--muted-2);font-family:var(--mono);letter-spacing:.3px}

/* ---------------- 输入区 ---------------- */
.composer{padding:16px 22px 18px;border-top:1px solid var(--glass-line);
  background:linear-gradient(180deg,transparent,var(--glass-1))}
.composer-box{display:flex;align-items:flex-end;gap:10px;border:1px solid var(--border-gold);
  border-radius:14px;background:var(--chrome-soft);padding:8px 8px 8px 15px;
  transition:border-color .18s,box-shadow .18s}
.composer-box:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,162,39,.14)}
.composer-box textarea{flex:1;border:none;background:none;outline:none;resize:none;
  font-size:14px;font-family:inherit;color:var(--fg);line-height:1.65;
  max-height:132px;min-height:25px;padding:5px 0}
.composer-box textarea::placeholder{color:var(--muted-2)}
.send-btn{width:36px;height:36px;border-radius:10px;border:none;flex:0 0 36px;
  display:grid;place-items:center;color:#1A1408;
  background:linear-gradient(135deg,var(--gold),var(--gold-soft));
  transition:transform .14s,box-shadow .14s}
.send-btn:hover{transform:translateY(-1px);box-shadow:0 5px 16px rgba(201,162,39,.38)}
.send-btn:disabled{opacity:.45;transform:none;box-shadow:none;cursor:default}

.ctrl{display:flex;gap:18px;flex-wrap:wrap;align-items:flex-end;margin-top:13px}
.ctrl-block .lbl{font-size:11px;color:var(--muted-2);letter-spacing:.7px;margin-bottom:6px;
  display:flex;align-items:center;gap:6px}
.lbl-tip{color:var(--muted-2);opacity:.72;letter-spacing:0}
.chips{display:flex;gap:5px;flex-wrap:wrap;max-width:440px}
.chip{border:1px solid var(--glass-line);background:var(--glass-1);color:var(--muted);
  border-radius:999px;padding:3px 11px;font-size:12px;user-select:none;
  transition:border-color .14s,color .14s,background .14s}
.chip:hover{color:var(--fg);border-color:var(--border-gold)}
.chip.on{background:var(--gold-wash);border-color:var(--gold);color:var(--gold-soft);font-weight:600}
.lane{display:flex;gap:8px}
.lane-c{position:relative;display:flex;flex-direction:column;gap:1px;
  border:1px solid var(--glass-line);background:var(--glass-1);
  border-radius:10px;padding:7px 13px;cursor:pointer;
  transition:border-color .14s,background .14s}
.lane-c input{position:absolute;opacity:0;pointer-events:none}
.lane-c b{font-size:12.5px;color:var(--text-2);font-weight:600}
.lane-c span{font-size:10.5px;color:var(--muted-2)}
.lane-c.on{border-color:var(--gold);background:var(--gold-wash)}
.lane-c.on b{color:var(--gold-soft)}
.lane-c.on:after{content:"✓";position:absolute;top:4px;right:7px;font-size:9px;color:var(--gold)}
.cert-check{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);cursor:pointer}
.cert-check input{accent-color:var(--gold);width:13px;height:13px;flex:0 0 13px}
.cert-check b{color:var(--gold-soft);font-weight:600}
.savetip{font-size:11px;color:var(--muted-2);margin-top:6px}
.savetip a{color:var(--gold-soft);text-decoration:underline;text-underline-offset:3px}
.composer-hint{text-align:center;font-size:11px;color:var(--muted-2);margin-top:10px;letter-spacing:.2px}

/* ---------------- 右栏 ---------------- */
.side-card{border:1px solid var(--border-gold);border-radius:var(--r-lg);
  background:var(--glass-1);padding:15px 16px;box-shadow:var(--shadow-1)}
.side-t{font-family:var(--serif);font-size:12px;font-weight:600;color:var(--gold-soft);
  letter-spacing:1.2px;margin-bottom:12px;display:flex;align-items:center;gap:7px}
.side-t:before{content:"";width:3px;height:11px;border-radius:2px;
  background:linear-gradient(180deg,var(--gold),transparent)}
.kv{display:flex;justify-content:space-between;gap:10px;font-size:12px;padding:6px 0;
  border-bottom:1px solid var(--glass-line)}
.kv:last-child{border-bottom:none}
.kv span:first-child{color:var(--muted-2)}
.kv span:last-child{color:var(--text-2);font-family:var(--mono);font-size:11.5px}
.hist-item{
  display:block;width:100%;text-align:left;font:inherit;
  padding:8px 10px;border-radius:8px;font-size:12px;color:var(--muted);
  border:none;border-left:2px solid transparent;background:none;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  transition:background .14s,color .14s,border-color .14s;
}
.hist-item:hover{background:var(--glass-2);color:var(--fg);border-left-color:var(--gold)}
.empty-tip{font-size:11.5px;color:var(--muted-2);line-height:1.8;padding:2px 0}

/* ---------------- 欢迎屏 ---------------- */
.chat > .welcome{margin-top:auto;margin-bottom:auto}
.welcome{padding:14px 0 4px;text-align:center;width:100%}
.wel-badge{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;color:var(--gold-soft);
  border:1px solid var(--border-gold);background:var(--gold-wash);
  border-radius:999px;padding:4px 13px;margin-bottom:18px;letter-spacing:.6px}
.wel-badge .bdot{width:5px;height:5px;border-radius:50%;background:var(--gold);
  box-shadow:0 0 7px var(--gold)}
.welcome h2{font-family:var(--serif);font-size:27px;font-weight:700;color:var(--fg-strong);
  letter-spacing:1.5px;line-height:1.45;margin-bottom:12px}
.welcome h2 em{font-style:normal;background:linear-gradient(135deg,var(--gold),var(--gold-soft));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.welcome p{font-size:13px;color:var(--muted);line-height:1.95;max-width:640px;margin:0 auto 28px}
.wel-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:680px;
  margin:0 auto;text-align:left}
.wel-card{border:1px solid var(--glass-line);border-radius:var(--r);background:var(--glass-1);
  padding:14px 16px;text-align:left;
  transition:border-color .16s,background .16s,transform .16s,box-shadow .16s}
.wel-card:hover{border-color:var(--border-gold);background:var(--glass-2);
  transform:translateY(-2px);box-shadow:var(--shadow-1)}
.wel-card b{display:block;font-family:var(--serif);font-size:13.5px;color:var(--fg-strong);font-weight:600}
.wel-card span{display:block;font-size:11.5px;color:var(--muted-2);margin-top:4px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wel-actions{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:20px}
.wel-date{font-size:11px;color:var(--muted-2);letter-spacing:.3px}
.wel-foot{font-size:11px;color:var(--muted-2);line-height:1.8;margin-top:24px}

/* ---------------- 任务进度 ---------------- */
.job{border:1px solid var(--border-gold);border-radius:var(--r);background:var(--glass-1);padding:15px 17px}
.job-head{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--fg-strong)}
.job-lane{font-size:10.5px;font-weight:600;color:var(--gold-soft);
  border:1px solid var(--border-gold);border-radius:999px;padding:2px 9px;background:var(--gold-wash)}
.job-pct{margin-left:auto;font-family:var(--mono);font-size:13px;color:var(--gold-soft)}
.job-bar{height:5px;border-radius:6px;background:var(--chrome-soft);
  border:1px solid var(--glass-line);overflow:hidden;margin-top:12px}
.job-bar i{display:block;height:100%;border-radius:6px;
  background:linear-gradient(90deg,var(--gold),var(--gold-soft));
  transition:width .45s cubic-bezier(.22,1,.36,1)}
.job-tip{margin-top:10px;font-size:11.5px;color:var(--muted-2);line-height:1.75}

/* ---------------- 页面通用 ---------------- */
.page{padding:26px 0 40px}
.page-head{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:20px}
.page-head h2{font-size:22px;color:var(--fg-strong);letter-spacing:.8px}
.page-head p{font-size:12.5px;color:var(--muted-2);line-height:1.8;margin-top:6px}
.page-head .btn{margin-left:auto}

.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.filters select,.filters input{
  background:var(--chrome-soft);border:1px solid var(--border-gold);color:var(--text-2);
  border-radius:var(--r-sm);padding:8px 12px;font-size:12.5px;font-family:inherit;
  outline:none;transition:border-color .16s;
}
.filters select:focus,.filters input:focus{border-color:var(--gold)}
.filters input::placeholder{color:var(--muted-2)}
.filters select{cursor:pointer}

.empty{color:var(--muted-2);text-align:center;padding:48px 0;font-size:12.5px;line-height:1.9}
.empty b{display:block;font-family:var(--serif);font-size:14px;color:var(--text-2);
  font-weight:600;margin-bottom:6px}
.skeleton{height:86px;border-radius:var(--r);background:var(--glass-1);
  border:1px solid var(--glass-line);margin-bottom:10px;
  animation:pulse 1.4s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.55}50%{opacity:.9}}

.pager{display:flex;gap:5px;justify-content:center;margin-top:20px;flex-wrap:wrap}
.pager button{min-width:30px;height:29px;border:1px solid var(--glass-line);background:var(--glass-1);
  color:var(--muted);border-radius:7px;font-size:12px;font-family:inherit;
  transition:border-color .14s,color .14s,background .14s}
.pager button:hover{border-color:var(--border-gold);color:var(--fg)}
.pager button.on{background:linear-gradient(135deg,var(--gold),var(--gold-soft));
  color:#1A1408;border-color:transparent;font-weight:700}

.caselist{display:flex;flex-direction:column;gap:10px}
.caselist .case-card{margin-top:0}

/* ---------------- 法条库 ---------------- */
.lib{display:grid;grid-template-columns:320px minmax(0,1fr);gap:18px;
  min-height:calc(100vh - 190px);align-items:start}
.lib-side{border:1px solid var(--border-gold);border-radius:var(--r-lg);
  background:var(--glass-1);overflow:hidden;display:flex;flex-direction:column;
  max-height:calc(100vh - 150px);position:sticky;top:88px}
.lib-search{display:flex;align-items:center;gap:8px;padding:12px 14px;
  border-bottom:1px solid var(--glass-line)}
.lib-search .ls-ico{color:var(--muted-2);flex:0 0 auto}
.lib-search input{flex:1;border:none;background:none;outline:none;color:var(--fg);
  font-size:13px;font-family:inherit;padding:2px 0}
.lib-search input::placeholder{color:var(--muted-2)}
.lib-filters{display:flex;gap:8px;padding:10px 14px;border-bottom:1px solid var(--glass-line)}
.lib-filters select{flex:1;min-width:0;background:var(--chrome-soft);
  border:1px solid var(--glass-line);color:var(--text-2);border-radius:7px;
  padding:5px 8px;font-size:11.5px;font-family:inherit;outline:none;cursor:pointer}
.doc-list{flex:1;overflow-y:auto;padding:8px}
.doc-list::-webkit-scrollbar{width:8px}
.doc-list::-webkit-scrollbar-thumb{background:var(--glass-3);border-radius:8px}
.doc-item{display:block;padding:10px 11px;border-radius:var(--r-sm);cursor:pointer;
  border:1px solid transparent;transition:background .14s,border-color .14s}
.doc-item:hover{background:var(--glass-2)}
.doc-item.on{background:var(--gold-wash);border-color:var(--border-gold)}
.doc-item .di-t{font-size:12.5px;font-weight:500;color:var(--text-2);line-height:1.5}
.doc-item .di-t .di-n{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.doc-item .di-m{display:flex;align-items:center;gap:6px;font-size:10.5px;
  color:var(--muted-2);margin-top:4px}
.doc-item .di-m .di-meta{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.doc-item .di-m .st{flex:0 0 auto;font-size:9.5px;padding:1px 6px;border-radius:999px;
  border:1px solid var(--glass-line);color:var(--muted-2)}
.doc-item .di-m .st.ok{color:var(--ok);background:var(--ok-wash);border-color:transparent}
.doc-item .di-m .st.warn{color:var(--warn);background:var(--warn-wash);border-color:transparent}
.lib-pager{display:flex;gap:4px;justify-content:center;padding:10px;
  border-top:1px solid var(--glass-line)}
.lib-pager button{min-width:26px;height:24px;border:1px solid var(--glass-line);
  background:var(--glass-1);color:var(--muted-2);border-radius:6px;font-size:11px}
.lib-pager button.on{background:linear-gradient(135deg,var(--gold),var(--gold-soft));
  color:#1A1408;border-color:transparent;font-weight:700}

.lib-content{border:1px solid var(--border-gold);border-radius:var(--r-lg);
  background:var(--glass-1);overflow:hidden;display:flex;flex-direction:column;
  min-height:calc(100vh - 190px)}
.lib-empty{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:40px 24px;text-align:center;color:var(--muted-2);font-size:12.5px;line-height:1.9;
}
.lib-empty b{display:block;font-family:var(--serif);font-size:15px;color:var(--text-2);
  font-weight:600;margin-bottom:8px}
.doc-head{padding:18px 22px;border-bottom:1px solid var(--glass-line)}
.doc-head h3{font-size:17px;color:var(--fg-strong);letter-spacing:.4px;line-height:1.5}
.doc-head .dh-en{font-size:12px;color:var(--muted-2);margin-top:5px;line-height:1.6}
.doc-chips{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-top:11px}
.reader-bar{display:flex;align-items:center;gap:12px;padding:9px 22px;
  border-bottom:1px solid var(--glass-line);background:var(--glass-1);flex-wrap:wrap}
.seg{display:inline-flex;padding:2px;border:1px solid var(--glass-line);
  border-radius:8px;background:var(--chrome-soft)}
.seg button{border:none;background:none;border-radius:6px;padding:3px 11px;
  font-size:11.5px;color:var(--muted-2);transition:background .14s,color .14s}
.seg button.on{background:var(--gold-wash);color:var(--gold-soft);font-weight:600}
.reader-page{margin-left:auto;font-size:11.5px;color:var(--muted-2);font-family:var(--mono)}
.reader-body{flex:1;overflow-y:auto;padding:6px 22px 24px}
.reader-body::-webkit-scrollbar{width:8px}
.reader-body::-webkit-scrollbar-thumb{background:var(--glass-3);border-radius:8px}
.prov{padding:14px 0;border-bottom:1px solid var(--glass-line)}
.prov:last-child{border-bottom:none}
.prov-top{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin-bottom:7px}
.prov-no{font-family:var(--mono);font-size:11.5px;color:var(--gold-soft);font-weight:600}
.prov-topic{font-size:11.5px;color:var(--muted-2)}
.prov .pv-zh{font-size:13.5px;color:var(--fg);line-height:1.95}
.prov .pv-nv{margin-top:8px;font-size:12.5px;color:var(--muted);line-height:1.9;white-space:pre-wrap}
.prov.hl{background:linear-gradient(90deg,var(--gold-wash),transparent 72%);
  border-left:2px solid var(--gold);margin-left:-22px;padding-left:20px}

/* ---------------- 我的账户 ---------------- */
.owner-card{display:flex;align-items:center;gap:14px;
  border:1px solid var(--border-gold);border-radius:var(--r-lg);
  background:linear-gradient(135deg,var(--gold-wash),transparent 62%),var(--glass-1);
  padding:16px 18px;margin-bottom:18px}
.ow-ava{width:42px;height:42px;border-radius:50%;flex:0 0 42px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--gold),var(--gold-soft));color:#1A1408;
  font-family:var(--serif);font-size:17px;font-weight:700}
.ow-main{flex:1;min-width:0}
.ow-nm{font-family:var(--serif);font-size:15px;font-weight:600;color:var(--fg-strong);letter-spacing:.4px}
.ow-meta{font-size:11.5px;color:var(--muted-2);margin-top:3px}
.ow-badge{flex:0 0 auto;font-size:10.5px;font-weight:600;color:var(--gold-soft);
  border:1px solid var(--border-gold);background:var(--gold-wash);
  border-radius:999px;padding:3px 11px;white-space:nowrap}
.mini-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.mini-stat{border:1px solid var(--border-gold);border-radius:var(--r);
  background:var(--glass-1);padding:13px 15px}
.mini-stat .ms-n{font-family:var(--serif);font-size:21px;color:var(--gold-soft);line-height:1.25}
.mini-stat .ms-l{font-size:11px;color:var(--muted-2);margin-top:4px;letter-spacing:.4px}

.card{border:1px solid var(--border-gold);border-radius:var(--r-lg);
  background:var(--glass-1);overflow:hidden;box-shadow:var(--shadow-1)}
.tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.tbl th{text-align:left;padding:11px 15px;font-size:11px;font-weight:600;letter-spacing:.7px;
  color:var(--gold-soft);background:var(--chrome-soft);
  border-bottom:1px solid var(--border-gold);white-space:nowrap}
.tbl td{padding:12px 15px;border-bottom:1px solid var(--glass-line);
  color:var(--text-2);vertical-align:top;line-height:1.6}
.tbl tbody tr{cursor:pointer;transition:background .14s}
.tbl tbody tr:hover{background:var(--glass-2)}
.tbl tbody tr:last-child td{border-bottom:none}
.tbl td b{color:var(--fg-strong);font-weight:500}
.tbl td:last-child{white-space:nowrap;text-align:right}
.cert-link{color:var(--gold-soft);font-family:var(--mono);font-size:11px;
  text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.dim{color:var(--muted-2);font-size:11.5px}
.lane-tag{display:inline-block;white-space:nowrap;font-size:10px;font-weight:600;
  border-radius:999px;padding:1px 8px;border:1px solid var(--border-gold);
  color:var(--gold-soft);background:var(--gold-wash)}
.lane-tag.global{color:var(--warn);background:var(--warn-wash);border-color:transparent}

/* ---------------- 弹层 ---------------- */
.modal{position:fixed;inset:0;z-index:90;display:none;background:rgba(4,8,15,.72);
  backdrop-filter:blur(4px);align-items:center;justify-content:center;padding:24px}
.modal.on{display:flex}
[data-theme="light"] .modal{background:rgba(11,22,38,.42)}
.modal .box{width:min(880px,100%);max-height:88vh;overflow-y:auto;position:relative;
  border:1px solid var(--border-gold);border-radius:var(--r-lg);
  background:linear-gradient(180deg,var(--navy-lift),var(--navy-deep));
  box-shadow:var(--shadow-3);padding:30px 32px}
[data-theme="light"] .modal .box{background:linear-gradient(180deg,#FFFFFF,#FBF9F4)}
.modal .box::-webkit-scrollbar{width:9px}
.modal .box::-webkit-scrollbar-thumb{background:var(--glass-3);border-radius:9px}
.modal .close{position:absolute;top:14px;right:16px;width:30px;height:30px;border-radius:8px;
  display:grid;place-items:center;color:var(--muted-2);font-size:19px;line-height:1;
  border:1px solid transparent;cursor:pointer;
  transition:color .14s,background .14s,border-color .14s}
.modal .close:hover{color:var(--fg);background:var(--glass-2);border-color:var(--glass-line)}
.modal h2{font-size:19px;color:var(--fg-strong);line-height:1.55;padding-right:44px;letter-spacing:.3px}
.meta-row{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:12px;
  font-size:11.5px;color:var(--muted-2);font-family:var(--mono)}
.meta-row a{color:var(--gold-soft);text-decoration:underline;text-underline-offset:3px}
.doc{font-size:13px;color:var(--text-2);line-height:2;white-space:pre-wrap}
.concl{margin-top:16px;padding:14px 16px;border-radius:var(--r);background:var(--glass-1);
  border:1px solid var(--glass-line);border-left:2px solid var(--gold);
  font-size:13.5px;line-height:1.95;color:var(--text-2)}

/* ---------------- 登录 ---------------- */
.auth-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;
  justify-content:center;padding:56px 24px 72px;position:relative}
.auth-top{position:absolute;top:24px;left:28px}
.auth-top a{font-size:12.5px;color:var(--muted-2)}
.auth-top a:hover{color:var(--gold-soft)}
.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:26px}
.auth-brand .brand-name{font-size:20px}
.auth-card{width:min(446px,100%);border:1px solid var(--border-gold);border-radius:var(--r-lg);
  background:linear-gradient(180deg,var(--navy-lift),var(--navy-deep));
  box-shadow:var(--shadow-3);padding:27px 27px 23px}
[data-theme="light"] .auth-card{background:linear-gradient(180deg,#FFFFFF,#FBF9F4)}
.auth-seg{display:flex;gap:3px;padding:3px;margin-bottom:19px;
  background:var(--chrome-soft);border:1px solid var(--border-gold);border-radius:10px}
.auth-seg button{flex:1;border:none;background:none;border-radius:8px;padding:8px;
  font-size:13px;color:var(--muted);transition:background .14s,color .14s}
.auth-seg button.on{background:linear-gradient(135deg,var(--gold),var(--gold-soft));
  color:#1A1408;font-weight:600}
.auth-card h1{font-size:19px;margin-bottom:5px;color:var(--fg-strong)}
.auth-card .sub{font-size:12.5px;color:var(--muted-2);line-height:1.85;margin-bottom:19px}
.afield{margin-bottom:13px}
.afield label{display:block;font-size:11.5px;color:var(--muted-2);letter-spacing:.6px;margin-bottom:6px}
.afield input{width:100%;background:var(--chrome-soft);border:1px solid var(--border-gold);
  border-radius:var(--r-sm);padding:10px 13px;font-size:14px;font-family:inherit;
  color:var(--fg);transition:border-color .16s,box-shadow .16s}
.afield input::placeholder{color:var(--muted-2);font-size:12.5px}
.afield input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,162,39,.14)}
.code-row{display:flex;gap:8px}
.code-row input{flex:1;min-width:0}
.code-btn{flex:0 0 auto;border:1px solid var(--border-gold);background:var(--glass-1);
  color:var(--gold-soft);border-radius:var(--r-sm);padding:0 13px;font-size:12.5px;
  white-space:nowrap;transition:border-color .14s,background .14s}
.code-btn:hover:not(:disabled){border-color:var(--gold);background:var(--gold-wash)}
.code-btn:disabled{opacity:.5;cursor:default}
.auth-note{font-size:11.5px;color:var(--muted-2);line-height:1.8;margin:-2px 0 13px}
.auth-go{width:100%;border:none;border-radius:10px;padding:11px;margin-top:6px;
  background:linear-gradient(135deg,var(--gold),var(--gold-soft));color:#1A1408;
  font-size:14px;font-weight:700;font-family:inherit;transition:transform .14s,box-shadow .14s}
.auth-go:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(201,162,39,.36)}
.auth-go:disabled{opacity:.5;transform:none;box-shadow:none;cursor:default}
.auth-msg{font-size:12.5px;min-height:19px;margin-top:10px;line-height:1.7}
.auth-msg.err{color:var(--bad)}
.auth-msg.ok{color:var(--ok)}
.auth-tip{font-size:11.5px;color:var(--muted-2);line-height:1.9;margin-top:17px;
  padding-top:14px;border-top:1px solid var(--glass-line)}
.auth-alt{font-size:12.5px;color:var(--muted-2);margin-top:15px}
.auth-alt a{color:var(--gold-soft)}
.auth-alt a:hover{text-decoration:underline;text-underline-offset:3px}

/* ---------------- 响应式 ---------------- */
@media(max-width:1180px){
  .app{grid-template-columns:1fr}
  .pane-side{position:static;flex-direction:row;overflow-x:auto;gap:12px;padding-bottom:2px}
  .side-card{flex:1;min-width:250px}
  .lib{grid-template-columns:280px minmax(0,1fr)}
}
@media(max-width:920px){
  .wrap{padding:0 22px}
  .nav{display:none}
  .lib{grid-template-columns:1fr}
  .lib-side{position:static;max-height:none}
  .lib-content{min-height:auto}
  .mini-stats{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:680px){
  .wrap{padding:0 15px}
  .lp-header .wrap{height:58px;gap:14px}
  .brand-name{font-size:15px}
  .brand .bs,.auth-brand .bs{display:none}
  .chat{padding:16px 14px}
  .composer{padding:12px 13px 14px}
  .wel-grid{grid-template-columns:1fr}
  .welcome h2{font-size:22px}
  .ctrl{gap:12px}
  .chips{max-width:100%}
  .modal .box{padding:22px 18px}
  .modal h2{font-size:17px}
  .tbl th,.tbl td{padding:9px 10px}
  .mini-stats{grid-template-columns:1fr 1fr}
  .cert{flex-direction:column;align-items:flex-start}
}

/* ---------------- 视图切换与门禁 ---------------- */
.view{display:none}
.view.on{display:block}
body.booting header,body.booting main{visibility:hidden}
body.booting::before{content:"";position:fixed;inset:0;background:var(--navy);z-index:99}

/* ---------------- 结果分节（替代标签页） ---------------- */
.res-sec{margin-top:22px}
.res-sec:first-child{margin-top:8px}
.res-h{
  font-family:var(--serif);font-size:12.5px;font-weight:600;color:var(--gold-soft);
  letter-spacing:1.2px;margin-bottom:10px;display:flex;align-items:center;gap:9px;
}
.res-h:before{content:"";width:14px;height:1px;border-radius:1px;
  background:linear-gradient(90deg,var(--gold),transparent)}
.res-h .rc{
  font-family:var(--mono);font-size:10px;color:var(--muted-2);letter-spacing:0;
  border:1px solid var(--glass-line);border-radius:999px;padding:0 7px;
}

/* ---------------- 一行控制条（通道 / 出证明 / 保存提示） ---------------- */
.ctrlbar{
  display:flex;align-items:center;gap:11px;flex-wrap:wrap;
  margin-top:9px;min-height:22px;
}
/* 分段控件：纯金实心 + 近黑字，避免浅金底吃字 */
.seg-lane{
  display:inline-flex;align-items:center;padding:2px;
  border:1px solid var(--border-gold);border-radius:999px;background:var(--chrome-soft);
}
.seg-lane label{position:relative;display:flex;cursor:pointer}
.seg-lane input{position:absolute;opacity:0;pointer-events:none}
.seg-lane span{
  display:block;font-size:11.5px;font-weight:500;color:var(--text-2);white-space:nowrap;
  padding:2px 14px;border-radius:999px;letter-spacing:.5px;line-height:17px;
  transition:background .14s,color .14s;
}
.seg-lane label:hover span{color:var(--fg-strong)}
.seg-lane input:checked + span{
  background:var(--gold);color:#1A1408;font-weight:700;
}
[data-theme="light"] .seg-lane input:checked + span{background:#B8912A;color:#FFFFFF}
/* 「查询证明」开关：与分段控件同一胶囊语言，勾选态用金描边而非原生 checkbox */
.pill-check{position:relative;display:inline-flex;cursor:pointer}
.pill-check input{position:absolute;opacity:0;pointer-events:none}
.pill-check span{
  display:inline-flex;align-items:center;gap:5px;
  font-size:11.5px;font-weight:500;color:var(--muted);letter-spacing:.4px;
  border:1px solid var(--glass-line);background:var(--glass-1);
  border-radius:999px;padding:2px 12px;line-height:17px;white-space:nowrap;
  transition:border-color .14s,background .14s,color .14s;
}
.pill-check span:before{
  content:"";width:9px;height:9px;border-radius:50%;
  border:1.5px solid currentColor;opacity:.55;flex:0 0 9px;
  transition:background .14s,border-color .14s,opacity .14s;
}
.pill-check:hover span{color:var(--text-2);border-color:var(--border-gold)}
.pill-check input:checked + span{
  border-color:var(--gold);background:var(--gold-wash);
  color:var(--gold-soft);font-weight:600;
}
.pill-check input:checked + span:before{
  background:var(--gold);border-color:var(--gold);opacity:1;
  box-shadow:0 0 7px rgba(201,162,39,.5);
}
.pill-check input:focus-visible + span{outline:2px solid var(--gold);outline-offset:2px}
.mini-check{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;
  color:var(--text-2);cursor:pointer;white-space:nowrap;letter-spacing:.3px}
.mini-check input{accent-color:var(--gold);width:12px;height:12px;flex:0 0 12px;margin:0}
.ctrl-note{font-size:11px;color:var(--muted-2);white-space:nowrap}
.ctrl-note a{color:var(--gold-soft);text-decoration:underline;text-underline-offset:3px}

/* 顶栏余额 */
.user-chip .bal{
  font-family:var(--mono);font-size:11.5px;font-weight:600;color:var(--gold-soft);
  border-left:1px solid var(--glass-line);padding-left:9px;letter-spacing:.2px;
}

/* ===== 自定义下拉框（全站替换系统 select UI） ===== */
.sel{position:relative;display:block}
.cs-side .sel{width:100%}
.lib-filters .sel{flex:1;min-width:0}
.sel-native{position:absolute !important;width:1px !important;height:1px !important;opacity:0;pointer-events:none;border:0;padding:0;left:-9999px}
.sel-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;
  background:var(--chrome-soft);border:1px solid var(--border-gold);border-radius:var(--r-sm);
  padding:9px 12px;font-size:13.5px;font-family:inherit;color:var(--fg);cursor:pointer;text-align:left;
  transition:border-color .16s,box-shadow .16s}
.sel-btn:hover{border-color:var(--gold)}
.sel.open .sel-btn{border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,162,39,.14)}
.sel-btn .sel-caret{flex:0 0 10px;opacity:.7;transition:transform .16s}
.sel.open .sel-caret{transform:rotate(180deg)}
.sel-menu{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:80;
  background:var(--navy-deep);border:1px solid var(--border-gold);border-radius:var(--r-sm);
  box-shadow:var(--shadow-2);padding:4px;display:none;max-height:264px;overflow:auto}
.sel.open .sel-menu{display:block}
.sel-item{padding:8px 11px;border-radius:7px;font-size:13px;color:var(--text-2);cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  transition:background .12s,color .12s;white-space:nowrap}
.sel-item:hover{background:var(--glass-2);color:var(--fg)}
.sel-item.on{color:var(--gold-soft);font-weight:600;background:var(--gold-wash)}

/* ===== 案例库 · 方案B（左栏检索台） ===== */
.cs-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:18px;align-items:start;padding-bottom:36px}
.cs-side{position:sticky;top:88px}
.cs-fgroup{margin-bottom:14px}
.cs-flabel{display:block;font-size:11.5px;color:var(--muted-2);letter-spacing:.7px;margin-bottom:6px}
.cs-side select{width:100%;background:var(--chrome-soft);border:1px solid var(--border-gold);
  border-radius:var(--r-sm);padding:9px 12px;font-size:13.5px;font-family:inherit;color:var(--fg);outline:none;cursor:pointer}
.cs-side select:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,162,39,.14)}
.cs-fhint{font-size:11.5px;color:var(--muted-2);line-height:1.8}
.cs-reset{width:100%;border:1px solid var(--border-gold);background:transparent;border-radius:var(--r-sm);
  padding:8px 0;font-size:12.5px;font-family:inherit;color:var(--gold-soft);cursor:pointer;margin-top:2px;
  transition:border-color .14s,color .14s,background .14s}
.cs-reset:hover{border-color:var(--gold);color:var(--gold-soft);background:var(--gold-wash)}
.cs-toolbar{display:flex;gap:10px;align-items:center}
.cs-toolbar input{flex:1;min-width:0;background:var(--chrome-soft);border:1px solid var(--border-gold);
  border-radius:var(--r-sm);padding:9px 13px;font-size:13.5px;font-family:inherit;color:var(--fg);outline:none;
  transition:border-color .16s,box-shadow .16s}
.cs-toolbar input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,162,39,.14)}
.cs-toolbar input::placeholder{color:var(--muted-2)}
.cs-count{font-size:12px;color:var(--muted-2);margin:10px 2px 2px;min-height:16px}
.cs-row{padding:13px 18px;margin-top:0}
.cs-row-top{display:flex;align-items:center;gap:10px}
.cs-row-title{flex:1;min-width:0;font-family:var(--serif);font-size:14.5px;font-weight:600;color:var(--fg-strong);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cs-row-meta{display:flex;gap:8px;align-items:center;font-family:var(--mono);font-size:11.5px;
  color:var(--muted-2);margin-top:8px;flex-wrap:wrap}
.cs-row-meta .dot{opacity:.55}
.cs-hold{font-size:12.5px;color:var(--text-2);line-height:1.8;margin-top:7px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media (max-width:920px){
  .cs-layout{grid-template-columns:minmax(0,1fr)}
  .cs-side{position:static}
}

/* ===== 案例库页头 · 总案例量徽标 ===== */
.cs-total{margin-left:auto;display:flex;align-items:baseline;gap:7px;background:var(--gold-wash);border:1px solid var(--border-gold);border-radius:var(--r-sm);padding:8px 14px;flex-shrink:0}
.cs-total-num{font-family:var(--mono);font-size:19px;font-weight:700;color:var(--gold-soft);line-height:1}
.cs-total-lab{font-size:11.5px;color:var(--muted-2);letter-spacing:1.5px}

/* [CACHE-TIP-V1] 复用了同一问题的近期结论 */
.cache-tip{margin:0 0 10px;padding:7px 11px;border-radius:8px;font-size:12.5px;line-height:1.6;
  color:#7a5a12;background:rgba(212,175,55,.12);border:1px solid rgba(212,175,55,.35)}

/* ============================================================
   法条库 · 方案A「案例库同构」
   —— 左栏分面复选 + 右侧行卡，与 cs-layout 视觉同源
   —— 配色沿用现有金蓝 token，不新增色值
   ============================================================ */

/* 页头：标题 + 总数徽标 */
.lib-head{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:20px}
.lib-head-t{flex:1;min-width:0}
.lib-head-t h2{font-size:22px;color:var(--fg-strong);letter-spacing:.8px}
.lib-head-t p{font-size:12.5px;color:var(--muted-2);line-height:1.8;margin-top:6px}
.lib-total{margin-left:auto;display:flex;align-items:baseline;gap:7px;background:var(--gold-wash);
  border:1px solid var(--border-gold);border-radius:var(--r-sm);padding:8px 14px;flex-shrink:0}
.lib-total-num{font-family:var(--mono);font-size:19px;font-weight:700;color:var(--gold-soft);line-height:1}
.lib-total-lab{font-size:11.5px;color:var(--muted-2);letter-spacing:1.5px}

/* 主栅格 */
.libgrid{display:grid;grid-template-columns:232px minmax(0,1fr);gap:20px;align-items:start;
  padding-bottom:36px}
.lgmain{min-width:0}

/* ---- 左栏分面筛选 ---- */
.lgside{position:sticky;top:88px;border:1px solid var(--border-gold);border-radius:var(--r-lg);
  background:var(--chrome-soft);overflow:hidden}
.lg-group{padding:14px 15px;border-bottom:1px solid var(--glass-line)}
.lg-group:last-child{border-bottom:0}
.lg-glabel{display:block;font-size:11px;color:var(--muted-2);letter-spacing:.8px;margin-bottom:9px}
.lg-glabel .n{float:right;font-family:var(--mono);letter-spacing:0}
.lg-opt{display:flex;align-items:center;gap:9px;padding:6px 7px;border-radius:7px;cursor:pointer;
  font-size:13px;color:var(--text-2);transition:background .12s,color .12s;user-select:none}
.lg-opt:hover{background:var(--glass-2);color:var(--fg)}
.lg-opt input{appearance:none;-webkit-appearance:none;width:15px;height:15px;flex:0 0 15px;margin:0;
  border:1px solid var(--border-gold);border-radius:4px;background:transparent;cursor:pointer;
  position:relative;transition:border-color .14s,background .14s}
.lg-opt input:checked{background:var(--gold);border-color:var(--gold)}
.lg-opt input:checked::after{content:"";position:absolute;left:4.5px;top:1px;width:4.5px;height:8.5px;
  border:solid #0A1B33;border-width:0 2px 2px 0;transform:rotate(43deg)}
.lg-opt.on{color:var(--fg-strong)}
.lg-opt .cn{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lg-opt .cnt{font-family:var(--mono);font-size:11px;color:var(--muted-2);flex:0 0 auto}
.lg-opt input:checked~.cn{font-weight:500}
.lg-note{font-size:11px;color:var(--muted-2);line-height:1.8;margin-top:8px}
.lg-reset{width:100%;border:1px solid var(--border-gold);background:transparent;border-radius:var(--r-sm);
  padding:8px 0;font-size:12.5px;font-family:inherit;color:var(--gold-soft);cursor:pointer;
  transition:border-color .14s,background .14s}
.lg-reset:hover{border-color:var(--gold);background:var(--gold-wash)}

/* ---- 右栏工具条 ---- */
.lgtop{display:flex;gap:10px;align-items:center}
.lgtop input{flex:1;min-width:0;background:var(--chrome-soft);border:1px solid var(--border-gold);
  border-radius:var(--r-sm);padding:9px 13px;font-size:13.5px;font-family:inherit;color:var(--fg);
  outline:none;transition:border-color .16s,box-shadow .16s}
.lgtop input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,162,39,.14)}
.lgtop input::placeholder{color:var(--muted-2)}
.lgcount{font-size:12px;color:var(--muted-2);margin:10px 2px 11px;min-height:16px}
.lgcount b{color:var(--gold-soft);font-family:var(--mono);font-weight:700}

/* ---- 行卡 ---- */
.lgrow{border:1px solid var(--border-gold);border-radius:var(--r);background:var(--chrome-soft);
  padding:14px 18px;margin-bottom:10px;cursor:pointer;transition:border-color .16s,
  box-shadow .16s,transform .16s,background .16s;position:relative}
.lgrow:hover{border-color:var(--gold);box-shadow:var(--shadow-1);transform:translateY(-1px)}
.lgrow.on{border-color:var(--gold);background:var(--gold-wash)}
.lgrow-top{display:flex;align-items:flex-start;gap:12px}
.lgrow-title{flex:1;min-width:0;font-family:var(--serif);font-size:15px;font-weight:600;
  color:var(--fg-strong);line-height:1.5}
.lgrow-arrow{display:inline-block;margin-left:6px;color:var(--gold);opacity:0;
  transform:translateX(-4px);transition:opacity .16s,transform .16s;font-size:12px}
.lgrow:hover .lgrow-arrow{opacity:1;transform:translateX(0)}
.lgrow-en{font-size:11.5px;color:var(--muted-2);margin-top:4px;line-height:1.6;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lgrow-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px;
  font-size:11.5px;color:var(--muted-2)}
.lgrow-meta .sep{opacity:.4}
.lgrow-meta .code{font-family:var(--mono)}
.lgrow-bar{display:flex;align-items:center;gap:12px;margin-top:12px;padding-top:11px;
  border-top:1px solid var(--glass-line)}
.lgrow-bar .bar-n{flex:0 0 auto;font-family:var(--mono);font-size:11.5px;color:var(--muted-2)}
.lgrow-bar .bar-n b{color:var(--gold-soft);font-weight:700;font-size:12.5px}
.lgrow-bar .rail{flex:1;min-width:40px;max-width:200px;height:3px;border-radius:2px;
  background:var(--glass-2);overflow:hidden}
.lgrow-bar .rail i{display:block;height:100%;border-radius:2px;
  background:linear-gradient(90deg,var(--gold),var(--gold-soft))}
.lgrow-bar .bar-p{flex:0 0 auto;margin-left:auto;font-family:var(--mono);font-size:11px;
  color:var(--muted-2)}

.lgmore{width:100%;border:1px solid var(--border-gold);border-radius:var(--r);background:transparent;
  padding:11px 0;font-size:12.5px;font-family:inherit;color:var(--muted-2);cursor:pointer;
  transition:border-color .15s,color .15s,background .15s;margin-top:4px}
.lgmore:hover{border-color:var(--gold);color:var(--gold-soft);background:var(--gold-wash)}
.lgblank{padding:48px 20px;text-align:center;font-size:13px;color:var(--muted-2);line-height:1.95}

/* 详情页：返回按钮（沿用 lib-pad / lib-back 时也不冲突） */
.lib-pad .lib-back{border:1px solid var(--border-gold);background:transparent;border-radius:var(--r-sm);
  padding:5px 12px;font-size:12px;font-family:inherit;color:var(--muted-2);cursor:pointer;
  margin-bottom:14px;transition:border-color .14s,color .14s}
.lib-pad .lib-back:hover{border-color:var(--gold);color:var(--gold-soft)}

@media(max-width:980px){
  .libgrid{grid-template-columns:minmax(0,1fr)}
  .lgside{position:static}
}

/* ============================================================
   法条库 · 详情阅读视图（方案A 配套）
   —— 点行卡后右侧列表区原地切换到阅读器，返回按钮切回
   ============================================================ */
.lgview{min-height:0}
.lgview.hide{display:none}

/* 阅读器外壳 */
.lgdoc{border:1px solid var(--border-gold);border-radius:var(--r-lg);
  background:var(--chrome-soft);overflow:hidden;display:flex;flex-direction:column}
.lgdoc-top{display:flex;align-items:center;gap:12px;padding:13px 20px;
  border-bottom:1px solid var(--glass-line);background:var(--glass-1)}
.lgback{border:1px solid var(--border-gold);background:transparent;border-radius:var(--r-sm);
  padding:6px 13px;font-size:12.5px;font-family:inherit;color:var(--muted-2);cursor:pointer;
  transition:border-color .14s,color .14s,background .14s;flex:0 0 auto}
.lgback:hover{border-color:var(--gold);color:var(--gold-soft);background:var(--gold-wash)}
.lgdoc-top .crumb{flex:1;min-width:0;font-size:12px;color:var(--muted-2);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* 标题区 */
.lgdoc-head{padding:20px 24px 16px;border-bottom:1px solid var(--glass-line)}
.lgdoc-head h3{font-size:19px;color:var(--fg-strong);letter-spacing:.4px;line-height:1.5;
  font-family:var(--serif)}
.lgdoc-head .lg-native{font-size:12px;color:var(--muted-2);margin-top:6px;line-height:1.65}
.lgdoc-head .lg-en{font-size:12px;color:var(--muted-2);margin-top:3px;line-height:1.65}
.lgdoc-chips{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-top:12px}
.lgdoc-chips .tag{font-size:11px}
.lgdoc-src{color:var(--gold-soft);font-size:11.5px;margin-left:2px}
.lgdoc-src:hover{text-decoration:underline;text-underline-offset:3px}

/* 阅读工具条 */
.lgdoc-bar{display:flex;align-items:center;gap:12px;padding:9px 24px;
  border-bottom:1px solid var(--glass-line);background:var(--glass-1);flex-wrap:wrap}
.lgseg{display:inline-flex;padding:2px;border:1px solid var(--glass-line);
  border-radius:8px;background:var(--chrome-soft)}
.lgseg button{border:none;background:none;border-radius:6px;padding:3px 11px;
  font-size:11.5px;font-family:inherit;color:var(--muted-2);cursor:pointer;transition:.14s}
.lgseg button.on{background:var(--gold-wash);color:var(--gold-soft);font-weight:600}
.lgdoc-bar .pg{margin-left:auto;font-size:11.5px;color:var(--muted-2);font-family:var(--mono)}

/* 正文（复用现有 .prov 体系） */
.lgdoc-body{padding:4px 24px 22px;max-height:calc(100vh - 300px);overflow-y:auto}
.lgdoc-body::-webkit-scrollbar{width:8px}
.lgdoc-body::-webkit-scrollbar-thumb{background:var(--glass-3);border-radius:8px}

/* 复用现有 .prov / .pv-zh / .pv-nv，仅补齐缺失的条款编号行与高亮 */
.prov .pv-lb{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin-bottom:7px}
.prov .pv-lb .lb{font-family:var(--mono);font-size:11.5px;color:var(--gold-soft);font-weight:600}
.prov.hl{background:linear-gradient(90deg,var(--gold-wash),transparent 72%);
  border-left:2px solid var(--gold);margin-left:-24px;padding-left:22px}
.pv-zh-btn{border:1px dashed var(--border-gold);background:transparent;border-radius:6px;
  padding:4px 11px;font-size:12px;font-family:inherit;color:var(--gold-soft);cursor:pointer;
  transition:.14s;margin-top:4px}
.pv-zh-btn:hover{background:var(--gold-wash);border-style:solid}
.pv-zh-btn:disabled{opacity:.6;cursor:default}

/* 条款分页 */
.lgpager{display:flex;gap:5px;justify-content:center;margin-top:18px;flex-wrap:wrap;
  padding-top:14px;border-top:1px solid var(--glass-line)}
.lgpager button{min-width:30px;height:28px;border:1px solid var(--glass-line);
  background:var(--glass-1);color:var(--muted);border-radius:7px;font-size:12px;
  font-family:inherit;cursor:pointer;transition:.14s}
.lgpager button:hover{border-color:var(--border-gold);color:var(--fg)}
.lgpager button.on{background:linear-gradient(135deg,var(--gold),var(--gold-soft));
  color:#1A1408;border-color:transparent;font-weight:700}

/* 空态 / 提示 */
.lgdoc-loading{padding:60px 20px;text-align:center;font-size:13px;color:var(--muted-2)}
.lganchor-miss{margin:0 24px 14px;padding:9px 13px;border-radius:var(--r-sm);
  background:var(--warn-wash);color:var(--warn);font-size:12px;line-height:1.7}

@media(max-width:760px){
  .lgdoc-head{padding:16px 18px 13px}
  .lgdoc-body{padding:4px 18px 18px;max-height:none}
  .lgdoc-bar{padding:8px 18px}
}

/* ============ [TRACE-V1] 查证过程态：阶段时间线 ============ */
.trace-card{border:1px solid rgba(201,162,39,.30);border-radius:var(--r);
  background:var(--glass-1);overflow:hidden}
.tr-head{display:flex;align-items:center;gap:10px;padding:14px 17px 12px;
  background:rgba(201,162,39,.07);font-size:13px}
.tr-spin{width:13px;height:13px;border-radius:50%;flex:0 0 13px;
  border:1.6px solid rgba(201,162,39,.28);border-top-color:var(--gold);
  animation:trspin .8s linear infinite}
.tr-spin.off{animation:none;border-color:var(--bad);border-top-color:var(--bad)}
@keyframes trspin{to{transform:rotate(360deg)}}
.tr-title{font-family:var(--serif);font-weight:600;color:var(--fg-strong);letter-spacing:.4px}
.tr-scope{font-size:11.5px;color:var(--gold-soft);font-family:var(--mono)}
.tr-head .lane-tag{margin-left:2px}
.tr-time{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--muted-2)}
.tr-body{padding:12px 17px 6px}
.tr-step{display:flex;align-items:center;gap:11px;padding:8px 0;position:relative}
.tr-step+.tr-step:before{content:"";position:absolute;left:4px;top:-8px;height:8px;
  width:1px;background:var(--glass-line)}
.tr-dot{width:9px;height:9px;border-radius:50%;flex:0 0 9px;box-sizing:border-box}
.tr-step.done .tr-dot{background:var(--gold)}
.tr-step.now .tr-dot{width:11px;height:11px;flex:0 0 11px;
  background:var(--gold);box-shadow:0 0 0 4px rgba(201,162,39,.18)}
.tr-step.todo .tr-dot{border:1.2px solid var(--glass-3);background:transparent}
.tr-t{font-size:13px;color:var(--fg-strong)}
.tr-step.now .tr-t{color:var(--gold-bright);font-weight:500}
.tr-step.todo .tr-t{color:var(--muted-2)}
.tr-m{margin-left:auto;font-size:11px;color:var(--muted-2);text-align:right;
  max-width:56%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tr-step.now .tr-m{color:var(--gold)}
.tr-foot{display:flex;align-items:center;gap:10px;padding:10px 17px;
  background:rgba(8,20,40,.45);font-size:11px;color:var(--muted-2)}
.tr-prog{margin-left:auto;font-family:var(--mono);font-weight:600;color:var(--gold)}

/* ============ [VERDICT-V1] 结论态：答复卡 / 核实条 ============ */
.verdict{border:1px solid rgba(201,162,39,.42);border-radius:var(--r);padding:20px 22px;
  background:linear-gradient(135deg,rgba(201,162,39,.14),rgba(201,162,39,0) 72%);position:relative}
.vd-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.vd-tag{font-size:11px;font-weight:700;letter-spacing:1px;color:#1A1408;
  background:var(--gold);border-radius:5px;padding:1px 8px}
.vd-scope{font-size:11.5px;color:var(--muted-2);font-family:var(--mono)}
.vd-conf{margin-left:auto;display:inline-flex;align-items:center;gap:6px;
  font-size:11px;font-weight:600;border-radius:999px;padding:2px 10px}
.vd-conf i{width:6px;height:6px;border-radius:50%;background:currentColor}
.vd-conf.high{color:var(--ok);background:var(--ok-wash)}
.vd-conf.medium{color:var(--warn);background:var(--warn-wash)}
.vd-conf.low{color:var(--bad);background:var(--bad-wash)}
.vd-body{font-size:14px;line-height:1.9;color:var(--fg-strong)}
.vd-body b{color:var(--gold-bright);font-weight:600}
.vd-body h4{font-family:var(--serif);font-size:13px;color:var(--gold-soft);margin:14px 0 6px}
.vd-body ul{padding-left:19px;margin:6px 0}
.vd-body code{background:var(--chrome-soft);border:1px solid var(--glass-line);
  border-radius:5px;padding:1px 6px;font-family:var(--mono);font-size:12px}

.verify-bar{display:flex;align-items:center;gap:14px;margin-top:14px;padding:10px 16px;
  border-radius:12px;background:var(--glass-1);border:1px solid var(--glass-line);flex-wrap:wrap}
.vb-item{display:flex;align-items:baseline;gap:7px}
.vb-item b{font-family:var(--mono);font-size:17px;font-weight:600;color:var(--text-2)}
.vb-item b.ok{color:var(--ok)}
.vb-item b.warn{color:var(--warn)}
.vb-item span{font-size:11.5px;color:var(--muted)}
.vb-sep{width:1px;height:18px;background:var(--glass-line)}
.vb-sp{margin-left:auto}
.vb-btn{background:none;border:1px solid var(--border-gold);border-radius:8px;
  padding:4px 11px;font-size:11.5px;color:var(--gold-soft);font-family:inherit;
  transition:background .14s}
.vb-btn:hover{background:var(--gold-wash)}

/* 查证轨迹（折叠容器） */
.trace{margin-top:12px;border-radius:12px;background:var(--chrome-soft);
  border:1px solid var(--glass-line);overflow:hidden}
.trace-in{padding:12px 16px}
.trace ul{margin:0;padding-left:16px;font-size:11.5px;color:var(--muted);line-height:2}
.trace li::marker{color:var(--gold)}

/* ============ 证据卡重排 ============ */
.evi-quote{margin-top:9px;padding:10px 13px;border-radius:8px;
  background:var(--chrome-soft);border-left:2px solid var(--border-gold);
  font-size:12.5px;line-height:1.85;color:var(--muted);font-family:var(--serif)}
.evi-actions{display:flex;align-items:center;gap:8px;margin-top:11px;flex-wrap:wrap}
.evi-sp{margin-left:auto}
.evi-more{margin-top:9px;padding:10px 13px;border-radius:8px;background:var(--chrome-soft);
  font-size:12.5px;line-height:1.85;color:var(--text-2);white-space:pre-wrap}
.link-btn.mini{font-size:11.5px;padding:2px 8px;border:1px solid var(--glass-line);
  border-radius:6px;text-decoration:none;color:var(--muted)}
.link-btn.mini:hover{color:var(--gold-soft);border-color:var(--border-gold)}
.link-btn.mini.on{background:var(--gold-wash);color:var(--gold-soft);border-color:var(--border-gold)}

/* ============ 查询证明条（无二维码，凭编号核验） ============ */
.certline{margin-top:16px;border-radius:var(--r);padding:16px 18px;
  border:1px solid rgba(201,162,39,.45);
  background:linear-gradient(135deg,rgba(201,162,39,.16),rgba(201,162,39,.02))}
.cl-head{display:flex;align-items:center;gap:9px}
.cl-seal{width:20px;height:20px;border-radius:50%;border:1.4px solid var(--gold);
  position:relative;flex:0 0 20px}
.cl-seal:after{content:"";position:absolute;inset:5px;border-radius:50%;background:var(--gold);opacity:.7}
.cl-title{font-family:var(--serif);font-size:13px;font-weight:600;color:var(--gold-soft)}
.cl-badge{font-size:10px;font-weight:600;color:var(--ok);background:var(--ok-wash);
  border-radius:999px;padding:1px 8px}
.cl-code{margin-top:10px;font-family:var(--mono);font-size:13px;font-weight:600;
  color:var(--fg-strong);letter-spacing:.5px}
.cl-desc{margin-top:7px;font-size:11.5px;line-height:1.8;color:var(--muted)}
.cl-acts{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}

/* ============================================================
   法条库 · 详情弹层（与案例库共用 #modal）
   —— 点行卡弹出居中大弹层，关闭回列表
   ============================================================ */
.modal.modal-doc{background:rgba(4,8,15,.78);padding:20px}
.modal.modal-doc .box{width:min(1040px,100%);max-height:92vh;padding:26px 34px 30px}

.lgdoc-title{font-family:var(--serif);font-size:20px;color:var(--fg-strong);
  line-height:1.5;letter-spacing:.3px;padding-right:44px}
.lgdoc-native{font-size:12px;color:var(--muted-2);margin-top:6px;line-height:1.65}
.lgdoc-en{font-size:12px;color:var(--muted-2);margin-top:3px;line-height:1.65}
.lgdoc-chips{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-top:13px;
  padding-bottom:14px;border-bottom:1px solid var(--glass-line)}
.lgdoc-src{color:var(--gold-soft);font-size:11.5px;margin-left:2px;
  text-decoration:underline;text-underline-offset:3px}

/* 工具条 */
.lgdoc-bar{display:flex;align-items:center;gap:12px;padding:11px 0;
  border-bottom:1px solid var(--glass-line);flex-wrap:wrap;position:sticky;top:-26px;
  background:var(--navy-deep);z-index:2}
[data-theme="light"] .lgdoc-bar{background:#FFFFFF}
.lgseg{display:inline-flex;padding:2px;border:1px solid var(--glass-line);
  border-radius:8px;background:var(--chrome-soft)}
.lgseg button{border:none;background:none;border-radius:6px;padding:3px 11px;
  font-size:11.5px;font-family:inherit;color:var(--muted-2);cursor:pointer;transition:.14s}
.lgseg button:hover{color:var(--fg)}
.lgseg button.on{background:var(--gold-wash);color:var(--gold-soft);font-weight:600}
.lgdoc-bar .pg{margin-left:auto;font-size:11.5px;color:var(--muted-2);font-family:var(--mono)}

/* 正文 */
.lgdoc-body{padding-top:6px}
.lgdoc-body .prov .pv-lb{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin-bottom:7px}
.lgdoc-body .prov .pv-lb .lb{font-family:var(--mono);font-size:11.5px;
  color:var(--gold-soft);font-weight:600}
.lgdoc-body .prov.hl{background:linear-gradient(90deg,var(--gold-wash),transparent 72%);
  border-left:2px solid var(--gold);margin-left:-18px;padding-left:16px}
.pv-zh-btn{border:1px dashed var(--border-gold);background:transparent;border-radius:6px;
  padding:4px 11px;font-size:12px;font-family:inherit;color:var(--gold-soft);cursor:pointer;
  transition:.14s;margin-top:4px}
.pv-zh-btn:hover{background:var(--gold-wash);border-style:solid}
.pv-zh-btn:disabled{opacity:.6;cursor:default}

/* 条款分页 */
.lgpager{display:flex;gap:5px;justify-content:center;margin-top:20px;flex-wrap:wrap;
  padding-top:16px;border-top:1px solid var(--glass-line)}
.lgpager button{min-width:30px;height:28px;border:1px solid var(--glass-line);
  background:var(--glass-1);color:var(--muted);border-radius:7px;font-size:12px;
  font-family:inherit;cursor:pointer;transition:.14s}
.lgpager button:hover{border-color:var(--border-gold);color:var(--fg)}
.lgpager button.on{background:linear-gradient(135deg,var(--gold),var(--gold-soft));
  color:#1A1408;border-color:transparent;font-weight:700}

/* 空真 / 错误 */
.lgdoc-loading{padding:56px 20px;text-align:center;font-size:13px;color:var(--muted-2)}
.lgdoc-error{padding:56px 20px;text-align:center;font-size:13px;color:var(--warn)}
.lganchor-miss{margin:0 0 14px;padding:9px 13px;border-radius:var(--r-sm);
  background:var(--warn-wash);color:var(--warn);font-size:12px;line-height:1.7}

/* 行卡加“查看”提示，明确可点 */
.lgrow-title{padding-right:4px}
.lgrow-arrow{display:inline-block;margin-left:7px;color:var(--gold);opacity:.55;
  transition:opacity .16s,transform .16s;font-size:12px}
.lgrow:hover .lgrow-arrow{opacity:1;transform:translateX(2px)}

@media(max-width:760px){
  .modal.modal-doc{padding:10px}
  .modal.modal-doc .box{padding:20px 18px 24px;max-height:94vh}
  .lgdoc-bar{top:-20px}
}

/* ============================================================================
   [OCR-UI-V1] 全域查证 · 四层文本对照与入库可观测
   设计约束：
   1) 只用现有设计令牌（--gold / --ink / --muted / --glass-line / --r / --mono），
      不新增任何硬编码色值 → 明暗双主题自动适配；
   2) 行宽控制：正文层 max-width 68ch，保证 34–42 个汉字的舒适行长；
   3) 折叠层用于「核对型」文本（英译、OCR），主阅读路径只保留中译 + 原文。
   ========================================================================== */

/* 来源徽章：一眼分辨 文本层抽取 / 扫描件 OCR / 仅存英译
   设计取舍：语种是「中性事实」，不该和质检结论（已过检/有告警）抢同一视觉权重。
   所以语种用「无底色 + 左竖线」的轻量标记，只有 OCR/异常态才用实底徽章。 */
.pv-badge{
  display:inline-flex;align-items:center;gap:4px;
  font-size:10.5px;font-weight:500;letter-spacing:.02em;
  padding:0 0 0 6px;line-height:1.5;
  color:var(--muted-2);background:none;border:none;
  border-left:2px solid var(--border-gold);white-space:nowrap;
}
.pv-badge.ocr{
  color:var(--warn);background:var(--warn-wash);
  border-color:color-mix(in srgb,var(--warn) 34%,transparent);
}
.pv-badge.warn{
  color:var(--bad);background:var(--bad-wash);
  border-color:color-mix(in srgb,var(--bad) 34%,transparent);
}

/* 正文行长控制 */
.prov .pv-zh{max-width:74ch}
.prov .pv-nv{max-width:74ch}

/* 按需翻译按钮所在行：避免按钮与原文挤在一起 */
.pv-lazy{margin:2px 0 0}

/* 折叠层：英译 / OCR 原文 */
/* 折叠条：不用「框」而用「左侧细线 + 文字」，避免看起来像个输入框 */
.pv-fold{margin-top:10px;padding-left:11px;border-left:2px solid var(--glass-2);
  transition:border-color .18s}
.pv-fold.open{border-left-color:var(--border-gold)}
.pv-fold-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:2px 0;border:none;background:none;cursor:pointer;
  font-family:inherit;font-size:11.5px;font-weight:500;color:var(--muted-2);
  text-align:left;transition:color .15s;
}
.pv-fold-btn:hover{color:var(--gold-soft)}
.pv-fold-btn i{font-style:normal;margin-left:auto;font-size:10px;
  transition:transform .2s;color:var(--muted-2)}
.pv-fold.open .pv-fold-btn i{transform:rotate(180deg)}
.pv-fold-btn:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.pv-caveat{font-style:normal;font-weight:400;font-size:10.5px;color:var(--muted-2)}
.pv-fold-body{
  display:none;padding:6px 0 4px;
  font-size:12.5px;line-height:1.9;color:var(--muted);
  white-space:pre-wrap;max-width:66ch;
}
.pv-fold.open .pv-fold-body{display:block}
/* OCR 层用等宽感更弱的衬线，暗示「机器读出、需人工核对」 */
.pv-fold.ocr .pv-fold-body{font-family:var(--sans);color:var(--ink-2)}

/* 三语对照模式下英译层加一道金色左边线，视觉上区分「译」与「原文」 */
.lgdoc-body.mode-en .pv-fold[data-l="en"]{
  border-left:2px solid var(--border-gold);border-radius:0 var(--r-sm) var(--r-sm) 0;
}

/* ---- 工作台：本次全域查证的新增入库回执 ---- */
.ingest-receipt{
  margin-top:12px;padding:11px 13px;border-radius:var(--r);
  background:var(--glass-1);border:1px solid var(--glass-line);
}
.ingest-receipt-t{
  display:flex;align-items:center;gap:7px;
  font-size:12px;font-weight:600;color:var(--fg);margin-bottom:8px;
}
.ingest-receipt-t .dot{width:6px;height:6px;border-radius:50%;background:var(--ok);
  box-shadow:0 0 0 3px var(--ok-wash);flex:none}
.ingest-receipt-list{display:flex;flex-direction:column;gap:6px}
.ingest-item{
  display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;
  font-size:11.5px;line-height:1.7;color:var(--muted);
  padding:5px 8px;border-radius:6px;background:var(--glass-1);
}
.ingest-item .t{color:var(--fg);font-weight:500}
.ingest-item .n{font-family:var(--mono);font-size:10.5px;color:var(--gold-soft)}
.ingest-empty{font-size:11.5px;color:var(--muted-2);line-height:1.8}

/* ---- 入库台账页 ---- */
.ledger-grid{display:flex;gap:14px;align-items:flex-start}
.ledger-side{width:236px;flex:none}
.ledger-main{flex:1;min-width:0}
.ledger-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.ledger-tab{
  padding:5px 12px;border-radius:999px;cursor:pointer;
  border:1px solid var(--glass-line);background:var(--glass-1);
  font-family:inherit;font-size:11.5px;color:var(--muted);transition:.15s;
}
.ledger-tab:hover{color:var(--gold-soft);border-color:var(--border-gold)}
.ledger-tab.on{
  color:var(--navy-deep);font-weight:600;
  background:linear-gradient(135deg,var(--gold-bright),var(--gold));
  border-color:transparent;
}
.ledger-tab .n{font-family:var(--mono);font-size:10.5px;opacity:.75;margin-left:4px}

.ledger-row{
  display:grid;grid-template-columns:1fr 96px 108px;gap:12px;
  padding:12px 14px;border-bottom:1px solid var(--glass-line);
  transition:background .15s;
}
.ledger-row:hover{background:var(--glass-1)}
.ledger-row:last-child{border-bottom:none}
.lr-title{font-size:13px;color:var(--fg);font-weight:500;line-height:1.6;
  margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lr-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;
  font-size:11px;color:var(--muted-2)}
.lr-meta .sep{color:var(--glass-line)}
/* 覆盖率条：两条细进度条，宽度即覆盖比例 */
.lr-cov{display:flex;flex-direction:column;gap:5px;justify-content:center}
.cov-line{display:flex;align-items:center;gap:6px;font-size:10.5px;color:var(--muted-2)}
.cov-line .k{width:22px;font-family:var(--mono);flex:none}
.cov-bar{flex:1;height:3px;border-radius:2px;background:var(--glass-2);overflow:hidden;min-width:36px;
  position:relative}
.cov-bar i{display:block;height:100%;border-radius:2px;
  background:linear-gradient(90deg,var(--gold-soft),var(--gold))}
/* 0% 不画进度，改用「虚线段」暗示空槽，避免整列看起来是漏渲染 */
.cov-bar i.zero{
  width:100%!important;background:repeating-linear-gradient(90deg,
    var(--glass-2) 0 4px, transparent 4px 8px);
}
.cov-line .v{width:32px;text-align:right;font-family:var(--mono);flex:none}
.cov-line .v.muted{color:var(--muted-2);opacity:.7}
.lr-right{display:flex;flex-direction:column;align-items:flex-end;gap:5px;justify-content:center}
.ledger-blank{padding:48px 0;text-align:center;color:var(--muted-2);font-size:12.5px}

@media (max-width:820px){
  .ledger-grid{flex-direction:column}
  .ledger-side{width:100%}
  .ledger-row{grid-template-columns:1fr;gap:8px}
  .lr-right{align-items:flex-start;flex-direction:row;flex-wrap:wrap}
}

/* ---- 覆盖：条款层次与间距（追加规则优先级高于同权重旧规则） ---- */
.prov{padding:16px 0}
.prov:first-child{padding-top:2px}
.prov .pv-lb{margin-bottom:8px}
.prov .pv-lb .lb{font-size:12px;font-weight:700;letter-spacing:.01em}
/* 中译是本产品的主阅读层：字号略大于原文，形成「译为主线、原文为据」的层次 */
.prov .pv-zh{font-size:13.8px;line-height:2.05;color:var(--fg)}
.prov .pv-nv{font-size:12.5px;line-height:1.88;color:var(--muted);
  padding-left:10px;border-left:1px solid var(--glass-2);margin-top:9px}
/* 英文对照与 OCR 层继承同样的左侧线索，形成一致的「证据链」语言 */
.pv-fold[data-l="en"] .pv-fold-body{color:var(--muted)}
.pv-fold[data-l="ocr"] .pv-fold-body{
  font-size:12px;letter-spacing:.01em;color:var(--ink-2);
  background:var(--warn-wash);border-radius:6px;padding:8px 10px;margin-top:6px;
}

/* ---- 修正 2：覆盖率空槽要「看得见」，但不能像有数据 ---- */
.cov-bar{height:4px}
.cov-bar i.zero{
  width:100%!important;
  background:repeating-linear-gradient(90deg,
    var(--glass-2) 0 3px, transparent 3px 6px);
  opacity:.85;
}
/* ---- 修正 3：暗主题下折叠展开区不能变成一块灰白 ---- */
.pv-fold[data-l="ocr"] .pv-fold-body{
  background:color-mix(in srgb,var(--warn) 9%,transparent);
  border:1px solid color-mix(in srgb,var(--warn) 20%,transparent);
}
[data-theme="light"] .pv-fold[data-l="ocr"] .pv-fold-body{
  background:color-mix(in srgb,var(--warn) 10%,transparent);
}

/* 正文行宽：74ch 是 14px 字号下的舒适上限；再宽会出现「视线回扫」困难。
   容器本身靠 lgdoc 的内边距收窄，此处不再额外限制过死。 */
.lgdoc-body{max-width:none}

/* ---- 修正 4：覆盖率列挤在一起（真实截图发现「英/中」与数值粘连） ----
   原 grid 第二列 96px 不足以容纳 标签22 + 条36 + 数值32 + 间距 = 大于 96px，
   导致 flex 子项被压扁、数字贴到标签上。放宽到 132px 并给最小间距。 */
.ledger-row{grid-template-columns:minmax(0,1fr) 140px 96px;column-gap:16px}
.lr-cov{gap:6px}
.cov-line{gap:8px;white-space:nowrap}
.cov-line .k{width:auto;min-width:14px;flex:none;font-family:var(--sans);font-size:10.5px}
.cov-bar{min-width:44px}
.cov-line .v{width:38px;flex:none;text-align:right;
  font-variant-numeric:tabular-nums;font-size:10px}
/* 数值为「—」时不占满宽，避免视觉上像是 0% */
.cov-line .v.muted{letter-spacing:0}

/* ---- 导航：新增「入库台账」后 6 项，收紧间距并禁止断行 ----
   原先 gap:26px 在 1080px 视口下会把「查证工作台」挤成两行，
   导航整体高度不稳、与右侧状态条错位。改为 nowrap + 递减 gap。 */
.nav{gap:20px;max-width:none}
.nav a{white-space:nowrap;flex:none}
@media (max-width:1180px){ .nav{gap:14px} .nav a{font-size:13px} }
@media (max-width:1020px){ .nav{gap:10px} .nav a{font-size:12.5px} .bs{display:none} }

/* ============ [XLATE-V2] 一键中译按钮 ============
   位置：阅读器视图切换条右侧，与页码信息同组。
   视觉语言沿用面板的「幽灵按钮」，但用金色描边点出这是主动作；
   运行态用旋转的「译」字，完成态转绿，避免只靠文字变化传达状态。 */
.lgdoc-tools{display:flex;align-items:center;gap:12px;margin-left:auto}
.xl-btn{
  display:inline-flex;align-items:center;gap:7px;
  padding:4px 11px 4px 8px;border-radius:999px;cursor:pointer;
  border:1px solid var(--border-gold);background:var(--gold-wash);
  font-family:inherit;font-size:11.5px;font-weight:600;color:var(--gold-soft);
  transition:.16s;white-space:nowrap;
}
.xl-btn:hover:not(:disabled){background:var(--gold-soft);color:var(--navy-deep);
  border-color:transparent}
.xl-btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.xl-btn .xl-ico{
  display:inline-flex;align-items:center;justify-content:center;
  width:17px;height:17px;border-radius:50%;flex:none;
  background:var(--gold-wash);border:1px solid var(--border-gold);
  font-size:10px;font-weight:700;line-height:1;
}
.xl-btn:hover:not(:disabled) .xl-ico{background:rgba(0,0,0,.12);border-color:transparent}
.xl-btn .xl-n{font-family:var(--mono);font-size:10.5px;font-weight:500;opacity:.85}
.xl-btn .xl-n:empty{display:none}
/* 运行态：图标旋转，整钮不可点 */
.xl-btn.working{cursor:progress;opacity:.9}
.xl-btn.working .xl-ico{animation:xl-spin 1.1s linear infinite}
@keyframes xl-spin{to{transform:rotate(360deg)}}
/* 完成态 */
.xl-btn.done{border-color:color-mix(in srgb,var(--ok) 45%,transparent);
  background:var(--ok-wash);color:var(--ok)}
.xl-btn.done .xl-ico{border-color:transparent;background:transparent}
/* 已全译仍可 hover 查看说明，故不禁用指针样式 */
.xl-btn:disabled{cursor:default}
@media (max-width:760px){
  .lgdoc-bar{flex-wrap:wrap;row-gap:8px}
  .lgdoc-tools{margin-left:0;width:100%;justify-content:space-between}
}

/* ============ [XLATE-V2] 中译层保留分段 ============
   译文按条、按款、按 (1)(a) 分项产出多行文本（后端已做条号去重与分项拆行），
   但 .pv-zh 缺 white-space 声明，浏览器把换行折叠成空格，读起来是一整段。
   原文层 .pv-nv 早已有 pre-wrap，此处对齐即可，两层的分段节奏才一致。 */
.prov .pv-zh{white-space:pre-wrap}
/* 分项行首缩进用排版空隙表达，不再依赖原文空格 */
.prov .pv-zh{padding-left:0}
