/* 昕岩 · 律所 AI 工作台 —— 对齐官网设计语言（xinyandigital.com：墨蓝×金 · 冷纸白 · 衬线标题） */
:root {
  --gold: #B8893F; --gold-l: #D4A968; --gold-d: #8F6A2E; --cream: #F7F2E9;
  --ink: #0F2A47; --ink-soft: #1E3A5F;
  --bg: #ffffff; --bg2: #FAFBFC; --bg3: #EEF2F7; --line: #E3E8EF; --line2: #CBD5E1;
  --fg: #253345; --fg2: #5B6B7E; --fg3: #93A1B3;
  /* 风险三级：红 / 琥珀 / 信息蓝 —— 三级色相分离，处理后转绿、驳回转灰 */
  --high: #DC2626; --high-bg: #FEF2F2; --mid: #D97706; --mid-bg: #FFFBEB;
  --low: #0284C7; --low-bg: #F0F9FF; --ok: #16A34A; --ok-bg: #F0FDF4;
  --accent: var(--gold); --accent2: var(--gold-d); --radius: 8px;
  --serif: "Noto Serif SC", "Songti SC", "STSong", "SimSun", serif;
  --shadow: 0 2px 12px rgba(15,42,71,.07); --shadow-h: 0 6px 24px rgba(15,42,71,.13);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { background: var(--bg); color: var(--fg); font: 14px/1.65 "Noto Sans SC","PingFang SC","Microsoft YaHei","Inter",sans-serif; }
::selection { background: rgba(212,169,104,.28); }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-thumb { background: #C6CFDA; border-radius: 8px; }
::-webkit-scrollbar-track { background: transparent; }
button { font: inherit; cursor: pointer; border: none; border-radius: 6px; letter-spacing: .3px; }
input, select, textarea { font: inherit; background: #fff; color: var(--fg);
  border: 1px solid var(--line2); border-radius: 6px; padding: 8px 12px; outline: none; }
input:focus, select:focus, textarea:focus { border-color: var(--gold-l); box-shadow: 0 0 0 3px rgba(212,169,104,.16); }
a { color: var(--gold-d); text-decoration: none; }
a:hover { text-decoration: underline; }
.hidden { display: none !important; }
.err { color: var(--high); font-size: 13px; min-height: 18px; }

.topbar { display: flex; align-items: center; gap: 14px; padding: 13px 26px;
  border-bottom: 1px solid var(--line); background: #fff; position: sticky; top: 0; z-index: 50; }
.topbar .logo { font-family: var(--serif); font-weight: 700; font-size: 16.5px; letter-spacing: 2px; color: var(--ink); }
.topbar .logo em { color: var(--gold); font-style: normal; }
.topbar .crumb { color: var(--fg2); font-size: 13px; }
.topbar .right { margin-left: auto; display: flex; gap: 10px; align-items: center; color: var(--fg3); font-size: 12px; }

.btn { background: var(--gold); color: #fff; padding: 9px 20px; border-radius: 8px; transition: background .15s; }
.btn:hover { background: var(--gold-d); }
.btn.ghost { background: transparent; color: var(--fg2); border: 1px solid var(--line2); }
.btn.ghost:hover { color: var(--fg); border-color: var(--fg3); background: var(--bg2); }
.btn.blue { background: #2563eb; } .btn.blue:hover { background: #1e50c8; }
.btn.danger { background: transparent; color: var(--high); border: 1px solid #f3c8c8; }
.btn.danger:hover { background: var(--high-bg); }
.btn.sm { padding: 4px 12px; font-size: 12px; }
.btn:disabled { opacity: .45; cursor: not-allowed; }
.btn.pulse { animation: pulse 2s infinite; }
@keyframes pulse { 0%,100% { box-shadow: 0 0 0 0 rgba(184,134,11,.35);} 50% { box-shadow: 0 0 0 8px rgba(184,134,11,0);} }

/* 访问码门 */
.gate { min-height: 100vh; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 26px; background: var(--cream); }
.gate .brand { font-size: 26px; font-weight: 700; letter-spacing: 2px; color: var(--ink); }
.gate .brand em { color: var(--gold); font-style: normal; }
.gate .card { background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow);
  padding: 36px 44px; width: 420px; display: flex; flex-direction: column; gap: 16px; }
.gate input { text-align: center; font-size: 18px; letter-spacing: 3px; text-transform: uppercase; }
.gate .tip { color: var(--fg3); font-size: 12px; text-align: center; }

/* 工作台首页 */
.home { max-width: 1080px; margin: 40px auto; padding: 0 24px; }
.home h1 { font-family: var(--serif); font-size: 22px; margin-bottom: 6px; color: var(--ink); }
.home .sub { color: var(--fg2); margin-bottom: 30px; }
.modules { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 18px; }
.module { cursor: pointer; }
.module .mfoot { display: flex; align-items: center; margin-top: 12px; }
.module .mfoot .tag { margin-top: 0; }
.module .enter { margin-left: auto; font-size: 12.5px; font-weight: 600; color: var(--gold-d);
  transition: transform .15s; }
.module:hover .enter { transform: translateX(3px); color: var(--gold); }
/* 私有化交付四步 */
.dsteps { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; }
.dstep { background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: var(--shadow); padding: 16px 18px; position: relative; }
.dstep i { font-style: normal; font-family: "JetBrains Mono", ui-monospace, Menlo, monospace;
  font-size: 12px; color: var(--gold); letter-spacing: 1px; display: block; margin-bottom: 8px; }
.dstep b { display: block; color: var(--ink); font-size: 13.5px; margin-bottom: 5px; }
.dstep span { font-size: 12px; color: var(--fg2); line-height: 1.8; }
.module { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow);
  padding: 24px 22px; cursor: pointer; transition: box-shadow .15s, transform .15s, border-color .15s; }
.module:hover { border-color: var(--gold-l); transform: translateY(-3px); box-shadow: var(--shadow-h); }
.module .icon { font-size: 24px; margin-bottom: 12px; }
.module h3 { font-family: var(--serif); font-size: 15.5px; margin-bottom: 6px; color: var(--ink); letter-spacing: 1px; }
.module p { color: var(--fg2); font-size: 12.5px; }
.module .tag { display: inline-block; margin-top: 12px; font-size: 11px; color: var(--gold-d);
  border: 1px solid var(--gold-l); border-radius: 20px; padding: 2px 10px; background: var(--cream); }
.notice { margin-top: 34px; padding: 14px 18px; background: var(--cream); border: 1px solid var(--line);
  border-radius: var(--radius); color: var(--fg2); font-size: 12.5px; }

/* 页面容器 */
.page { max-width: 1080px; margin: 30px auto; padding: 0 24px; }
.page-title { text-align: center; margin: 8px 0 4px; font-size: 24px; color: var(--ink); }
.page-sub { text-align: center; color: var(--fg2); margin-bottom: 26px; }

/* 输入方式 Tabs */
.itabs { display: flex; border-bottom: 2px solid var(--line); margin-bottom: 22px; }
.itab { flex: 1; text-align: center; padding: 12px 0; font-size: 14.5px; color: var(--fg2);
  background: transparent; border-radius: 0; border-bottom: 3px solid transparent; margin-bottom: -2px; transition: all .15s; }
.itab.on { color: var(--ink); font-weight: 600; border-bottom-color: var(--gold); }
.itab:hover { color: var(--ink); background: var(--bg2); }

.drop { border: 2px dashed var(--line2); border-radius: 14px; padding: 52px; text-align: center;
  color: var(--fg2); cursor: pointer; transition: all .15s; background: #fff; }
.drop:hover, .drop.over { border-color: var(--gold); color: var(--fg); background: var(--cream); }
.drop .big { font-size: 15px; margin: 10px 0 6px; color: var(--fg); }

.paste-box textarea { width: 100%; height: 320px; font-family: "SF Mono", Menlo, Consolas, monospace;
  font-size: 13px; line-height: 1.7; resize: vertical; }
.paste-meta { display: flex; align-items: center; gap: 14px; margin-top: 10px; color: var(--fg3); font-size: 12.5px; }
.paste-meta input { width: 260px; }

.samples { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.sample { background: #fff; border: 1.5px solid var(--line); border-radius: var(--radius); padding: 20px;
  cursor: pointer; transition: all .15s; position: relative; box-shadow: var(--shadow); }
.sample:hover { transform: translateY(-2px); border-color: var(--gold-l); box-shadow: var(--shadow-h); }
.sample .icon { font-size: 22px; }
.sample h4 { margin: 8px 0 4px; color: var(--ink); }
.sample p { color: var(--fg2); font-size: 12.5px; min-height: 38px; }
.sample .meta { color: var(--fg3); font-size: 12px; margin-top: 8px; }
.pill { display: inline-block; font-size: 11px; border-radius: 20px; padding: 2px 10px; margin-left: 8px; vertical-align: 2px; }
.pill.green { background: var(--ok-bg); color: var(--ok); }
.pill.orange { background: var(--mid-bg); color: var(--mid); }

.filelist { margin-top: 26px; display: flex; flex-direction: column; gap: 10px; }
.filerow { display: flex; align-items: center; gap: 14px; background: #fff;
  border: 1px solid var(--line); border-radius: var(--radius); padding: 12px 18px; box-shadow: var(--shadow); }
.filerow .name { font-weight: 600; color: var(--ink); }
.filerow .meta { color: var(--fg3); font-size: 12px; }
.filerow .right { margin-left: auto; display: flex; gap: 8px; align-items: center; }
.doctag { font-size: 11px; border-radius: 4px; padding: 1px 8px; background: var(--ok-bg); color: var(--ok); border: 1px solid #cfe9d8; }
.doctag.warn { background: var(--mid-bg); color: var(--mid); border-color: #f5d3b5; }
.section-h { margin: 30px 0 14px; font-size: 13px; color: var(--gold-d); font-weight: 600;
  letter-spacing: 3px; display: flex; align-items: center; gap: 12px; }
.section-h::before { content: ""; width: 26px; height: 1.5px; background: var(--gold-l); }

/* 审查设置 */
.setup { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow);
  padding: 26px; display: flex; flex-direction: column; gap: 18px; max-width: 640px; }
.setup .row { display: flex; gap: 12px; align-items: center; }
.setup label { width: 90px; color: var(--fg2); }
.intercept { max-width: 640px; background: var(--mid-bg); border: 1px solid #f0c9a2; border-radius: var(--radius);
  padding: 22px 26px; margin-bottom: 18px; }
.intercept h3 { color: var(--mid); margin-bottom: 8px; }
.intercept p { color: var(--fg2); font-size: 13px; }
.intercept .acts { margin-top: 16px; display: flex; gap: 10px; }

.progress-box { text-align: center; padding: 70px 0; color: var(--fg2); }
.spinner { width: 34px; height: 34px; border: 3px solid var(--line); border-top-color: var(--gold);
  border-radius: 50%; margin: 0 auto 18px; animation: spin 1s linear infinite; }
.spinner.sm { width: 16px; height: 16px; border-width: 2px; margin: 0; display: inline-block; vertical-align: -3px; }
@keyframes spin { to { transform: rotate(360deg); } }

/* ===== 审查中页面 ===== */
.ana { max-width: 1000px; margin: 26px auto; padding: 0 24px; }
.ana-head { display: flex; align-items: center; gap: 12px; margin-bottom: 22px; }
.ana-head h2 { font-size: 19px; color: var(--ink); }
.ana-head .timer { margin-left: auto; font-size: 22px; font-variant-numeric: tabular-nums; color: var(--gold-d); font-weight: 700; }
.steps { display: flex; gap: 0; margin-bottom: 24px; }
.step { flex: 1; text-align: center; position: relative; padding-top: 6px; }
.step::before { content: ""; position: absolute; top: 17px; left: -50%; width: 100%; height: 2px; background: var(--line); z-index: 0; }
.step:first-child::before { display: none; }
.step.done::before { background: var(--ok); }
.step .dot { width: 24px; height: 24px; line-height: 22px; border-radius: 50%; background: #fff; border: 2px solid var(--line2);
  display: inline-block; position: relative; z-index: 1; font-size: 12px; color: var(--fg3); }
.step.run .dot { border-color: var(--gold); color: var(--gold); animation: pulse 1.6s infinite; }
.step.done .dot { border-color: var(--ok); background: var(--ok); color: #fff; }
.step .lbl { display: block; margin-top: 6px; font-size: 12px; color: var(--fg3); }
.step.run .lbl { color: var(--gold-d); font-weight: 600; }
.step.done .lbl { color: var(--fg); }
.ana-grid { display: grid; grid-template-columns: 1fr 300px; gap: 18px; }
.modgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; align-content: start; }
.modcard { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px;
  display: flex; align-items: center; gap: 10px; box-shadow: var(--shadow); font-size: 13px; }
.modcard .st { width: 18px; text-align: center; }
.modcard.run { border-color: var(--gold-l); background: var(--cream); }
.modcard.done { border-color: #d9ead9; }
.modcard.failed { opacity: .55; }
.modcard .cnt { margin-left: auto; font-size: 12px; color: var(--fg3); }
.modcard .cnt b { color: var(--mid); }
.ana-stats { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: 18px 20px; align-self: start; }
.ana-stats h4 { font-size: 13px; color: var(--fg2); margin-bottom: 14px; }
.cnt-row { display: flex; align-items: baseline; gap: 10px; margin: 10px 0; }
.cnt-row .num { font-size: 26px; font-weight: 700; font-variant-numeric: tabular-nums; transition: transform .2s; }
.cnt-row .num.bump { transform: scale(1.35); }
.cnt-row.h .num { color: var(--high); } .cnt-row.m .num { color: var(--mid); } .cnt-row.l .num { color: var(--low); }
.ana-text { margin-top: 14px; color: var(--fg3); font-size: 12.5px; }
.done-card { position: fixed; inset: 0; background: rgba(26,26,46,.45); display: flex; align-items: center; justify-content: center; z-index: 200; }
.done-card .card { background: #fff; border-radius: 16px; padding: 40px 56px; text-align: center; box-shadow: var(--shadow-h); animation: pop .3s; }
@keyframes pop { from { transform: scale(.85); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.done-card h2 { color: var(--ok); margin-bottom: 10px; }
.done-card .nums { margin: 14px 0 22px; color: var(--fg2); }
.done-card .auto { margin-top: 12px; color: var(--fg3); font-size: 12px; }

/* ===== 审阅工作台（三栏） ===== */
.wbtool { display: flex; align-items: center; gap: 12px; padding: 9px 18px; border-bottom: 1px solid var(--line); background: #fff; }
.wbtool .fname { font-weight: 700; color: var(--ink); max-width: 320px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wbtool .stat { font-size: 12.5px; color: var(--fg2); }
.wbtool .right { margin-left: auto; display: flex; gap: 8px; align-items: center; position: relative; }
.tag { font-size: 11px; border-radius: 4px; padding: 1px 8px; background: var(--cream); color: var(--gold-d); border: 1px solid var(--gold-l); }

.wb3 { display: flex; height: calc(100vh - 106px); }
.navpane { width: 236px; flex: none; border-right: 1px solid var(--line); overflow: auto; background: var(--bg2); padding: 14px; }
.ovcard { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 14px; margin-bottom: 14px; box-shadow: var(--shadow); }
.ovcard .ring { float: right; }
.ovcard .t { font-size: 12px; color: var(--fg3); }
.ovcard .v { font-size: 20px; font-weight: 700; color: var(--ink); }
.navsec { font-size: 12px; color: var(--fg3); margin: 14px 4px 6px; }
.navmod { display: flex; align-items: center; gap: 8px; padding: 7px 10px; border-radius: 8px; cursor: pointer; font-size: 13px; color: var(--fg); }
.navmod:hover { background: var(--bg3); }
.navmod.on { background: var(--cream); border: 1px solid var(--gold-l); font-weight: 600; }
.navmod .n { margin-left: auto; font-size: 11px; border-radius: 10px; padding: 0 7px; color: #fff; }
.navmod .n.高 { background: var(--high); } .navmod .n.中 { background: var(--mid); } .navmod .n.低 { background: var(--low); }
.navmod .n.ok { background: var(--ok); }
.navmod .n.zero { background: var(--line); color: var(--fg3); }
.navmod.dim { color: var(--fg3); }
.navmod .ncno { flex: none; font-weight: 600; font-size: 12px; max-width: 74px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.navmod.dim .ncno { font-weight: 400; }
.navmod .nsnip { flex: 1; font-size: 11.5px; color: var(--fg3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.midcol { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.viewtabs { display: flex; gap: 4px; padding: 6px 12px 0; background: #edeae2; border-bottom: 1px solid var(--line2); }
.vtab { background: transparent; color: var(--fg2); font-size: 12.5px; padding: 7px 16px; border-radius: 8px 8px 0 0; }
.vtab.on { background: #fff; color: var(--ink); font-weight: 600; box-shadow: 0 -2px 6px rgba(26,26,46,.06); }
.vtab:hover { color: var(--ink); }
.midbody { flex: 1; display: flex; min-width: 0; min-height: 0; }
.pdfwrap { flex: 1; display: flex; min-width: 0; min-height: 0; }

/* ===== 审阅正文视图（默认）：真文字排版，染色轻盈、修订内嵌 ===== */
.txtwrap { flex: 1; overflow: auto; background: #EDEAE2; padding: 20px 14px; }
.paper { max-width: 700px; margin: 0 auto; background: #fff; box-shadow: 0 2px 14px rgba(26,26,46,.15);
  padding: 44px 54px; font: 13.5px/2.15 "Songti SC", "SimSun", "Noto Serif SC", serif; color: #1a2433;
  min-height: calc(100% - 4px); }
.paper .ptitle { text-align: center; font-size: 17.5px; font-weight: 700; letter-spacing: 3px; margin-bottom: 14px; }
.paper p.pv { margin: 7px 0; text-align: justify; }
.paper p.h2 { font-weight: 700; font-size: 14.5px; margin: 20px 0 6px; }
/* 待处理染色：文字级淡底 + 细底线，字保持黑色清晰（轻盈） */
.paper mark { background: transparent; border-radius: 3px; padding: 1px 2px; cursor: pointer;
  color: inherit; transition: background .15s; }
.paper mark.h { background: rgba(220,38,38,.11); box-shadow: inset 0 -1.5px 0 rgba(220,38,38,.45); }
.paper mark.m { background: rgba(217,119,6,.11); box-shadow: inset 0 -1.5px 0 rgba(217,119,6,.4); }
.paper mark.l { background: rgba(2,132,199,.10); box-shadow: inset 0 -1.5px 0 rgba(2,132,199,.4); }
.paper mark.ig { background: rgba(148,163,184,.12); box-shadow: none; color: var(--fg3); }
.paper mark:hover { filter: saturate(1.4); }
/* 选中：该句加深一档 + 所在段落淡金衬底——无边框 */
.paper mark.h.sel { background: rgba(220,38,38,.22); }
.paper mark.m.sel { background: rgba(217,119,6,.22); }
.paper mark.l.sel { background: rgba(2,132,199,.20); }
.paper mark.ig.sel { background: rgba(148,163,184,.25); }
.paper p.cursel { background: linear-gradient(90deg, rgba(212,169,104,.15), rgba(212,169,104,.04));
  border-radius: 6px; }
/* 已采纳：原文灰色删除线 + 新文绿色内嵌正文流（Word 修订式） */
.paper del.done { color: #9aa5b1; text-decoration: line-through; text-decoration-color: #b9c2cc; cursor: pointer; }
.paper ins.done { color: #0f7a35; text-decoration: none; border-bottom: 1.5px solid #93d5ab;
  background: rgba(22,163,74,.06); padding: 1px 2px; border-radius: 3px; cursor: pointer; }
.paper del.done.sel { background: rgba(148,163,184,.18); }
.paper ins.done.sel { background: rgba(22,163,74,.16); }
/* 定位引导：整段闪一下（不框字） */
.paper p.pflash { animation: pflash 1.5s; }
@keyframes pflash { 0% { background: rgba(212,169,104,.32); } 100% { } }
.paper p.newc ins.done { display: inline; }
.pvnote { max-width: 760px; margin: 0 auto 12px; background: var(--cream); border: 1px solid var(--gold-l);
  border-radius: 8px; padding: 9px 14px; font-size: 12.5px; color: var(--gold-d); }
.pvpage { max-width: 760px; margin: 0 auto 30px; background: #fff; box-shadow: 0 2px 14px rgba(26,26,46,.18);
  padding: 48px 56px; border-radius: 2px; }
.pv { font-size: 13.5px; line-height: 2; margin-bottom: 10px; color: var(--fg); }
.applied { background: var(--ok-bg); color: var(--ok); border-bottom: 1.5px solid #9fd4b0; padding: 0 2px; }
.pv.newclause { border-left: 3px solid var(--ok); padding-left: 10px; }
.pv.pvflash { animation: pvflash 2.2s; }
@keyframes pvflash { 0% { background: rgba(212,168,71,.35); } 100% { background: transparent; } }
.insrow { margin: 10px 0 2px; font-size: 12.5px; color: var(--fg2); display: flex; align-items: center; gap: 8px; }
.insrow select { flex: 1; font-size: 12.5px; padding: 5px 8px; }
.rulerow { display: flex; align-items: center; gap: 10px; padding: 8px 2px; border-bottom: 1px dashed var(--line); font-size: 13px; }
.rulerow span { flex: 1; }

/* 项目经验：选择栏 / 文书标签 / 起草弹窗 */
.selbar { position: sticky; bottom: 12px; margin-top: 16px; display: flex; gap: 12px; align-items: center;
  background: var(--ink); color: #fff; border-radius: 12px; padding: 10px 18px; box-shadow: var(--shadow-h); font-size: 13px; }
.chip2 { display: inline-block; font-size: 11px; color: var(--gold-d); background: var(--cream);
  border: 1px solid var(--gold-l); border-radius: 4px; padding: 1px 7px; margin: 2px 4px 2px 0; }
.drow { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 10px; }
.drow label { width: 84px; flex: none; color: var(--fg2); font-size: 13px; padding-top: 8px; }
.drow input, .drow select, .drow textarea { flex: 1; }
.draftpre { white-space: pre-wrap; font: 12.5px/1.8 "PingFang SC","Microsoft YaHei",sans-serif;
  background: var(--bg2); border: 1px solid var(--line); border-radius: 10px; padding: 16px 18px;
  max-height: 52vh; overflow: auto; color: var(--fg); }
.draftedit { width: 100%; min-height: 54vh; font: 12.5px/1.8 "PingFang SC","Microsoft YaHei",sans-serif;
  padding: 14px 16px; resize: vertical; }

/* 招标：核对单 / 对标结果 */
.ckrow { display: flex; gap: 10px; align-items: flex-start; padding: 7px 4px; border-bottom: 1px dashed var(--line);
  font-size: 13px; cursor: pointer; }
.ckrow:hover { background: var(--bg2); }
.ckrow input { margin-top: 4px; }
.ckrow input:checked ~ span b { color: var(--fg3); text-decoration: line-through; }
.cktag { flex: none; font-size: 11px; border-radius: 4px; padding: 1px 7px; margin-top: 1px; }
.cktag.high { background: var(--high-bg); color: var(--high); }
.cktag.mid { background: var(--mid-bg); color: var(--mid); }
.cktag.low { background: var(--low-bg); color: #0369a1; }
.cmpstat { display: flex; gap: 8px; align-items: center; background: var(--bg2); border: 1px solid var(--line);
  border-radius: 8px; padding: 9px 14px; font-size: 13px; margin-bottom: 10px; }
.cmptable tr { border-bottom: 1px solid var(--line); vertical-align: top; }
.cst { font-size: 11.5px; font-weight: 700; border-radius: 4px; padding: 2px 8px; white-space: nowrap; }
.cst.ok { background: var(--ok-bg); color: var(--ok); }
.cst.bad { background: var(--high-bg); color: var(--high); }
.cst.bad2 { background: var(--mid-bg); color: var(--mid); }
.cst.chk { background: #FEF9C3; color: #854D0E; }

/* 诉讼案件：时间线 / 矛盾点 / 争点 */
.tl { margin-top: 10px; }
.tlrow { display: flex; gap: 12px; position: relative; padding-bottom: 14px; }
.tlrow::before { content: ""; position: absolute; left: 106px; top: 18px; bottom: -2px; width: 2px; background: var(--line); }
.tlrow:last-child::before { display: none; }
.tldate { width: 92px; flex: none; text-align: right; font-size: 12.5px; color: var(--gold-d);
  font-weight: 700; font-variant-numeric: tabular-nums; padding-top: 1px; }
.tldot { width: 10px; height: 10px; border-radius: 50%; background: var(--gold); flex: none; margin-top: 5px;
  outline: 3px solid var(--cream); z-index: 1; }
.tlbody { flex: 1; font-size: 13.5px; }
.tlq { color: var(--fg3); font-size: 12px; margin-left: 8px; }
.srclink { font-size: 12px; color: var(--gold-d); background: var(--cream); border: 1px solid var(--gold-l);
  border-radius: 4px; padding: 0 6px; text-decoration: none; white-space: nowrap; }
.srclink:hover { background: #f7ecd4; text-decoration: none; }
.conrow { padding: 8px 0; border-bottom: 1px dashed #f3c8c8; font-size: 13px; }
.conrow:last-child { border-bottom: none; }
.consay { color: var(--fg2); font-size: 12.5px; }
.dpviews { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 8px;
  background: var(--bg2); border-radius: 8px; padding: 10px 14px; font-size: 13px; }
/* 风险热力条：整份文档的风险分布缩略图（点击跳转，色块悬停提示） */
.heatbar { width: 20px; flex: none; background: var(--bg3); border-right: 1px solid var(--line);
  position: relative; cursor: pointer; }
.heatbar .hbpage { position: absolute; left: 0; right: 0; height: 1px; background: var(--line); pointer-events: none; }
.heatbar .hbseg { position: absolute; left: 3px; right: 3px; height: 5px; border-radius: 2px;
  opacity: .95; transition: transform .1s; }
.heatbar .hbseg:hover { transform: scale(1.6); z-index: 3; box-shadow: 0 1px 4px rgba(26,26,46,.35); }
.heatbar .hbseg.高 { background: var(--high); }
.heatbar .hbseg.中 { background: var(--mid); }
.heatbar .hbseg.低 { background: var(--low); }
.heatbar .hbseg.done { background: var(--ok); opacity: .75; }
.heatbar .hbseg.dropped { background: #b8b2a4; opacity: .7; }
.heatbar .hbview { position: absolute; left: 0; right: 0; pointer-events: none;
  background: rgba(212,168,71,.14); border-top: 1.5px solid rgba(180,140,50,.55); border-bottom: 1.5px solid rgba(180,140,50,.55); }
/* 左栏目录：当前阅读位置（随正文滚动联动） */
.navmod.cur { box-shadow: inset 3px 0 0 var(--gold); background: var(--cream); }
.navmod.cur .ncno { color: var(--gold-d); }
/* 章节聚合目录：章行为主，子条收纳其下（▸ 展开） */
.navmod .caret { flex: none; width: 14px; color: var(--fg3); font-size: 10px; text-align: center; border-radius: 4px; }
.navmod .caret:hover { background: var(--bg3); color: var(--fg); }
.navmod.navch .ncno { font-weight: 700; max-width: 88px; }
.navmod.navch.dim .ncno { font-weight: 500; }
.navmod.navsub { padding-left: 26px; }
.navmod.navsub .ncno { font-weight: 500; font-size: 11.5px; }
.navmod.navsub .nsnip { font-size: 11px; }
.pdfpane { flex: 1; overflow: auto; background: #edeae2; padding: 18px; }
.pdfpage { position: relative; margin: 0 auto 14px; box-shadow: 0 2px 14px rgba(26,26,46,.18); background: #fff; }
.pdfpage canvas { display: block; }
.hl { position: absolute; background: rgba(212,168,71,.38); border: none;
  border-bottom: 2px solid var(--gold-d); border-radius: 3px; mix-blend-mode: multiply;
  pointer-events: none; transition: opacity .3s; z-index: 3; }
/* 全量风险持久标注：荧光笔轻扫（两端羽化+圆角+纸面混合），处理后变删除线/灰 */
.mark { position: absolute; cursor: pointer; border-radius: .38em; z-index: 2;
  mix-blend-mode: multiply; transition: background .25s, filter .15s; }
.mark.高 { background: linear-gradient(100deg, rgba(248,113,113,.06) 0%, rgba(248,113,113,.34) 5%, rgba(248,113,113,.30) 95%, rgba(248,113,113,.05) 100%); }
.mark.中 { background: linear-gradient(100deg, rgba(251,191,36,.06) 0%, rgba(251,191,36,.38) 5%, rgba(251,191,36,.32) 95%, rgba(251,191,36,.05) 100%); }
.mark.低 { background: linear-gradient(100deg, rgba(125,211,252,.06) 0%, rgba(125,211,252,.38) 5%, rgba(125,211,252,.32) 95%, rgba(125,211,252,.05) 100%); }
/* 已采纳/已修改 → 原句红色删除线 + 淡绿衬底（一眼看出这里改过了） */
.mark.done { background:
  linear-gradient(transparent 44%, rgba(220,38,38,.72) 44%, rgba(220,38,38,.72) 56%, transparent 56%),
  linear-gradient(rgba(134,239,172,.22), rgba(134,239,172,.22)); }
.mark.dropped { background: rgba(148,163,184,.16); }   /* 已驳回 → 灰 */
.mark:hover { filter: saturate(1.5) brightness(.94); }
.hl.flash { animation: flash 1.2s; }
@keyframes flash { 0%,100% { box-shadow: none; } 30% { box-shadow: 0 0 0 5px rgba(184,134,11,.35); } }

.findpane { width: 384px; flex: none; overflow: auto; border-left: 1px solid var(--line); background: #fff; display: flex; flex-direction: column; }
.fp-head { position: sticky; top: 0; background: #fff; padding: 12px 16px 10px; border-bottom: 1px solid var(--line); z-index: 5; }
.fp-donut { display: flex; align-items: center; gap: 16px; margin-bottom: 10px; }
.fp-donut .leg { font-size: 12.5px; color: var(--fg2); line-height: 1.9; }
.fp-donut .leg b { color: var(--ink); }
.chips { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; }
.chip { font-size: 12px; padding: 3px 11px; border-radius: 20px; border: 1px solid var(--line2);
  color: var(--fg2); background: #fff; transition: all .1s; }
.chip:hover { border-color: var(--gold-l); color: var(--fg); }
.chip.on { border-color: var(--gold); color: #fff; background: var(--gold); }
.flist { flex: 1; }
.fcard { border-bottom: 1px solid var(--line); padding: 13px 16px; cursor: pointer; position: relative; }
.fcard::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; }
.fcard.高::before { background: var(--high); } .fcard.中::before { background: var(--mid); } .fcard.低::before { background: var(--low); }
.fcard:hover { background: var(--bg2); }
.fcard.active { background: var(--cream); }
.fcard .top { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.fcard .idx { color: var(--fg3); font-size: 12px; }
.fcard .risk { margin-top: 5px; font-size: 13px; color: var(--fg); }
.fcard .cno { color: var(--fg3); font-size: 12px; margin-top: 3px; }
.fcard.decided-ignored { opacity: .55; }
/* 条款分组卡：同一条款的多个问题合并展示 */
.gcard { border-bottom: 1px solid var(--line); position: relative; }
.gcard::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; }
.gcard.高::before { background: var(--high); } .gcard.中::before { background: var(--mid); } .gcard.低::before { background: var(--low); }
.gcard.ok::before { background: var(--ok); }
.gcard.ok .ghead b { color: var(--ok); }
.frow.done { background: var(--ok-bg); }
.frow.done:hover { background: #e6f7ec; }
.frow.done .frisk { color: var(--fg3); }
.ghead { display: flex; align-items: center; gap: 8px; padding: 10px 16px 6px; }
.ghead b { color: var(--ink); font-size: 13.5px; }
.frow { display: flex; gap: 6px; align-items: flex-start; padding: 7px 16px 7px 20px; cursor: pointer; font-size: 12.5px; }
.frow:hover { background: var(--bg2); }
.frow.active { background: var(--cream); }
.frow .badge { flex: none; margin-top: 1px; }
.frow .frisk { flex: 1; color: var(--fg); }
.frow .state { flex: none; margin-top: 1px; }
.frow.decided-ignored { opacity: .5; }
.gcard + .gcard { margin-top: 2px; }

.badge { font-size: 11px; font-weight: 700; padding: 1px 8px; border-radius: 4px; color: #fff; }
.badge.高 { background: var(--high); } .badge.中 { background: var(--mid); } .badge.低 { background: var(--low); }
.badge.type { background: var(--bg3); color: var(--fg2); font-weight: 500; }
.badge.tierb { background: var(--ink); color: #fff; font-weight: 500; }
.state { font-size: 11px; border-radius: 4px; padding: 1px 7px; }
.state.pending { background: var(--bg3); color: var(--fg2); }
.state.adopted { background: var(--ok-bg); color: var(--ok); }
.state.edited { background: #eaf1fe; color: #2563eb; }
.state.rejected { background: var(--bg3); color: var(--fg3); text-decoration: line-through; }
.fp-foot { position: sticky; bottom: 0; background: #fff; border-top: 1px solid var(--line); padding: 10px 16px; display: flex; gap: 8px; }
.warn { color: var(--mid); font-size: 12px; }

/* 决策面板（右侧抽屉：实心底、明确边框、可拖宽） */
.drawer { position: fixed; top: 0; right: 0; bottom: 0; width: 560px; max-width: 92vw; background: #fff;
  border-left: 2px solid var(--gold-l); box-shadow: -12px 0 40px rgba(26,26,46,.22); z-index: 150;
  display: flex; flex-direction: column; animation: slidein .22s; }
@keyframes slidein { from { transform: translateX(30px); opacity: 0; } to { transform: none; opacity: 1; } }
.drawer .grip { position: absolute; left: -5px; top: 0; bottom: 0; width: 9px; cursor: col-resize; }
.drawer .grip:hover { background: rgba(184,134,11,.18); }
.dr-head { display: flex; align-items: center; gap: 8px; padding: 13px 18px; border-bottom: 1px solid var(--line); background: var(--cream); }
.dr-head .nav { margin-left: auto; display: flex; gap: 6px; align-items: center; color: var(--fg3); font-size: 12px; }
.dr-head button.ic { background: #fff; border: 1px solid var(--line2); width: 28px; height: 28px; border-radius: 6px; color: var(--fg2); }
.dr-head button.ic:hover { border-color: var(--gold); color: var(--gold-d); }
.dr-body { flex: 1; overflow: auto; padding: 16px 20px 24px 26px; }
.dr-sec { margin-bottom: 18px; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.dr-sec > h5 { background: var(--bg2); padding: 8px 14px; font-size: 13px; color: var(--ink); display: flex; align-items: center; gap: 8px; }
.dr-sec > h5 .r { margin-left: auto; }
.dr-sec.fold > h5 { cursor: pointer; }
.dr-sec.fold > h5:hover { background: var(--bg3); }
.dr-sec .caret { color: var(--fg3); font-size: 11px; }
.clausebox { background: var(--bg2); border-left: 3px solid var(--gold); border-radius: 0 6px 6px 0;
  padding: 10px 12px; font-size: 12.5px; line-height: 1.9; color: var(--fg2); max-height: 200px; overflow: auto; }
.clausebox mark { padding: 0 2px; border-radius: 3px; font-weight: 600; color: inherit; }
.clausebox mark.qh { background: rgba(248,113,113,.22); border-bottom: 2px solid var(--high); }
.clausebox mark.qm { background: rgba(251,191,36,.26); border-bottom: 2px solid var(--mid); }
.clausebox mark.ql { background: rgba(125,211,252,.28); border-bottom: 2px solid var(--low); }
.clausebox mark.qdone { background: var(--ok-bg); color: var(--fg3); text-decoration: line-through;
  text-decoration-color: var(--high); text-decoration-thickness: 2px; border-bottom: 2px solid var(--ok); }
.clausebox mark.qgray { background: var(--bg3); color: var(--fg3); border-bottom: 2px dashed var(--line2); }
.clausebox.okline { border-left-color: var(--ok); }
.dr-sec.oksec > h5 { background: var(--ok-bg); color: var(--ok); }

/* 条款面板内的问题块 */
.prob { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; margin: 8px 0; background: #fff; }
.prob.focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(184,134,11,.14); }
.phead { display: flex; gap: 6px; align-items: center; margin-bottom: 6px; flex-wrap: wrap; }
.pno { font-size: 12px; font-weight: 700; color: var(--gold-d); }
.pacts { display: flex; gap: 6px; margin-top: 8px; flex-wrap: wrap; }
.editwrap { margin-top: 8px; }
.editwrap textarea { width: 100%; min-height: 96px; font-size: 13px; line-height: 1.7; }
.lawwrap { margin-top: 8px; background: var(--bg2); border-radius: 8px; padding: 8px 12px; }
.dr-sec .bd { padding: 12px 14px; font-size: 13px; }
.quote { background: var(--bg2); border-left: 3px solid var(--gold); padding: 8px 12px;
  margin: 8px 0; font-size: 12.5px; color: var(--fg2); border-radius: 0 6px 6px 0; }
.probe { display: flex; gap: 8px; margin: 6px 0; font-size: 13px; }
.probe .no { color: var(--gold-d); font-weight: 700; flex: none; }
.lawitem { border-bottom: 1px dashed var(--line); padding: 8px 0; }
.lawitem:last-child { border-bottom: none; }
.lawitem b { color: var(--ink); font-size: 13px; }
.lawitem .txt { color: var(--fg2); font-size: 12.5px; margin-top: 3px; }
.kbtip { background: var(--cream); border: 1px solid var(--gold-l); border-radius: 8px; padding: 10px 12px;
  font-size: 12px; color: var(--gold-d); margin-top: 10px; }
.diff { display: flex; flex-direction: column; gap: 8px; }
.diff .before { background: var(--high-bg); border: 1px solid #f3c8c8; border-radius: 8px; padding: 10px 12px; font-size: 12.5px; }
.diff .before .lbl { color: var(--high); font-weight: 700; font-size: 11px; }
.diff .after { background: var(--ok-bg); border: 1px solid #cfe9d8; border-radius: 8px; padding: 10px 12px; font-size: 12.5px; }
.diff .after .lbl { color: var(--ok); font-weight: 700; font-size: 11px; }
.editbox { margin-top: 10px; }
.editbox .toprow { display: flex; align-items: center; margin-bottom: 6px; }
.editbox .toprow .cnt2 { margin-left: auto; color: var(--fg3); font-size: 11.5px; }
.editbox textarea { width: 100%; min-height: 110px; font-size: 13px; line-height: 1.7; }
.dr-acts { border-top: 1px solid var(--line); background: var(--bg2); padding: 12px 18px; display: flex; gap: 8px; flex-wrap: wrap; }
.sugg { background: var(--ok-bg); border: 1px solid #cfe9d8; border-radius: 8px; padding: 10px 12px; margin: 8px 0; font-size: 13px; }
.basis { font-size: 12px; color: var(--fg3); margin: 4px 0; }
.decided { font-size: 12px; margin-top: 8px; }
.decided.adopted { color: var(--ok); } .decided.rejected { color: var(--high); } .decided.edited { color: #2563eb; }

/* 概览卡（kb 等旧页面复用） */
.overview { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow);
  padding: 16px 20px; margin-bottom: 14px; font-size: 13px; }
.overview b { color: var(--gold-d); }
.overview .mc { color: var(--mid); }
.footer-note { padding: 12px 18px; color: var(--fg3); font-size: 11.5px; border-top: 1px solid var(--line); }
textarea.inline { width: 100%; min-height: 70px; margin-top: 8px; font-size: 13px; }

/* 下拉菜单 / 弹窗 / Toast */
.menu { position: absolute; top: calc(100% + 6px); right: 0; background: #fff; border: 1px solid var(--line);
  border-radius: 10px; box-shadow: var(--shadow-h); min-width: 240px; z-index: 120; overflow: hidden; }
.menu .mi { display: flex; gap: 10px; padding: 10px 16px; font-size: 13px; cursor: pointer; color: var(--fg); }
.menu .mi:hover { background: var(--cream); }
.menu .mi small { display: block; color: var(--fg3); }
.modal-mask { position: fixed; inset: 0; background: rgba(26,26,46,.45); z-index: 180; display: flex; align-items: center; justify-content: center; }
.modal { background: #fff; border-radius: 14px; box-shadow: var(--shadow-h); padding: 26px 30px; width: 560px; max-width: 92vw;
  max-height: 84vh; overflow: auto; animation: pop .25s; }
.modal h3 { color: var(--ink); margin-bottom: 12px; }
.modal .acts { display: flex; gap: 10px; justify-content: flex-end; margin-top: 20px; }
#toasts { position: fixed; top: 64px; right: 20px; z-index: 300; display: flex; flex-direction: column; gap: 8px; }
.toast { background: var(--ink); color: #fff; border-radius: 10px; padding: 10px 18px; font-size: 13px;
  box-shadow: var(--shadow-h); animation: slidein .2s; display: flex; gap: 8px; align-items: center; }
.toast.ok { border-left: 4px solid #4ade80; }
.toast .tbtn { background: rgba(255,255,255,.14); color: #ffe9be; border: 1px solid rgba(255,233,190,.4);
  border-radius: 6px; padding: 2px 10px; font-size: 12px; margin-left: 8px; }
.toast .tbtn:hover { background: rgba(255,255,255,.24); }
.toast.errT { border-left: 4px solid #f87171; }
.toast.info { border-left: 4px solid var(--gold-l); }

/* 诉讼模块：增量分析「新」徽章 / 警示横幅 / 笔录对照分区 */
.newtag { display: inline-block; background: var(--low); color: #fff; font-size: 10px; line-height: 1;
  padding: 3px 7px; border-radius: 8px; margin-left: 6px; vertical-align: 2px; white-space: nowrap; }
.newtag.upd { background: var(--mid); }
.warnbanner { background: var(--mid-bg); border: 1px solid #f0c9a2; color: var(--mid); border-radius: 10px;
  padding: 10px 16px; font-size: 13px; margin-bottom: 14px; }
.tssec { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); }
.tssec > b { font-size: 13.5px; }

@media (max-width: 1180px) { .findpane { width: 330px; } .navpane { width: 200px; } }

/* ============ 审查中页：实时审查引擎工作台 ============ */
.ana2 { max-width: 1360px; margin: 20px auto; padding: 0 24px; }
.scard { background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow); }
.pipe { display: flex; align-items: stretch; padding: 16px 14px; margin-bottom: 16px; overflow-x: auto; }
.pnode { flex: 1; min-width: 128px; text-align: center; padding: 2px 6px; }
.pnode .pdoti { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px;
  border-radius: 50%; border: 2px solid var(--line2); background: #fff; color: var(--fg3); font-size: 13px; }
.pnode.done .pdoti { border-color: var(--ok); background: var(--ok-bg); color: var(--ok); font-weight: 700; }
.pnode.run .pdoti { border-color: var(--gold); background: var(--cream); }
.pnode .pt { font-size: 12.5px; font-weight: 700; color: var(--fg3); margin-top: 5px; }
.pnode.done .pt { color: var(--ink); }
.pnode.run .pt { color: var(--gold-d); }
.pnode .pd { font-size: 11px; color: var(--fg3); margin-top: 2px; }
.pnode .ps { font-size: 11px; margin-top: 3px; color: var(--fg3); }
.pnode.done .ps { color: var(--ok); }
.pnode.run .ps { color: var(--gold-d); font-weight: 600; }
.pline { flex: none; width: 24px; height: 2px; background: var(--line2); margin-top: 15px; }
.pline.done { background: var(--ok); }
.ana2-grid { display: grid; grid-template-columns: 1fr 332px; gap: 16px; align-items: start; }
.scanview { display: flex; flex-direction: column; height: calc(100vh - 348px); min-height: 400px; }
.sv-head { display: flex; align-items: center; padding: 14px 18px; border-bottom: 1px solid var(--line); }
.sv-head .sub { font-size: 12px; color: var(--fg3); margin-top: 2px; font-weight: 400; }
.svtag { margin-left: auto; font-size: 11.5px; color: var(--gold-d); background: var(--cream);
  border: 1px solid var(--gold-l); padding: 3px 10px; border-radius: 20px; white-space: nowrap; }
.svlist { flex: 1; overflow: auto; padding: 12px 14px; }
.svwait { color: var(--fg3); text-align: center; padding: 40px 0; }
.svc { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; margin-bottom: 8px; background: #fff; }
.svc.next { opacity: .6; background: var(--bg2); }
.svc.cur { border-color: var(--gold); background: var(--cream); box-shadow: 0 2px 10px rgba(184, 134, 11, .10); }
.svc-h { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--ink); }
.svc-b { font-size: 12px; color: var(--fg2); margin-top: 4px; line-height: 1.7; }
.svc.next .svc-h, .svc.next .svc-b { color: var(--fg3); }
.svsub { font-size: 10.5px; color: var(--fg3); background: var(--bg3); border-radius: 8px; padding: 0 7px; white-space: nowrap; }
.svrisk { font-size: 11px; padding: 1px 8px; border-radius: 10px; white-space: nowrap; }
.svrisk.高 { color: var(--high); background: var(--high-bg); }
.svrisk.中 { color: var(--mid); background: var(--mid-bg); }
.svrisk.低 { color: var(--low); background: var(--low-bg); }
.svscan { margin-left: auto; font-size: 11.5px; color: var(--gold-d); white-space: nowrap; }
.caret { display: inline-block; width: 2px; height: 12px; background: var(--gold-d); margin-left: 3px;
  vertical-align: -2px; animation: caretblink 1s steps(2) infinite; }
@keyframes caretblink { 50% { opacity: 0; } }
.ana-side { display: flex; flex-direction: column; gap: 12px; }
.ana-side .scard { padding: 14px 18px; }
.ana-side h4 { font-size: 12.5px; color: var(--fg2); margin-bottom: 10px; }
.svrow { display: flex; justify-content: space-between; font-size: 13px; margin-bottom: 6px; color: var(--fg2); }
.svrow b { color: var(--ink); font-variant-numeric: tabular-nums; }
.svbar { height: 6px; border-radius: 4px; background: #f0ead9; overflow: hidden; margin-bottom: 12px; }
.svbar i { display: block; height: 100%; background: var(--gold); border-radius: 4px; transition: width .6s; }
.curmod { font-size: 15px; font-weight: 700; color: var(--gold-d); }
.timer.big { font-size: 26px; }
@media (max-width: 1100px) { .ana2-grid { grid-template-columns: 1fr; } .scanview { height: auto; max-height: 60vh; } }

/* ============ 工作台：左栏筛选 / 右栏工作清单 / 标注升级 ============ */
.ovcard .ovnum { overflow: hidden; }
.ovcard .lvline { display: flex; gap: 8px; font-size: 12px; margin: 4px 0; font-weight: 600; }
.nvchips { margin: 4px 0 8px; }
.fp-head.slim { padding: 12px 16px 10px; }
.fp-head.slim #fpCnt { color: var(--fg3); font-size: 12px; margin-left: 8px; }
.fp-hint { font-size: 11px; color: var(--fg3); margin-top: 3px; }
/* 原件 PDF 对照视图的标注：等级底色（无下划线/无线框）；金色描边=当前选中 */
.mark.sel { outline: 2.5px solid var(--gold-d); outline-offset: 1.5px; z-index: 4; }
/* 修订预览：删除线原文 */
.pvdel { color: var(--high); text-decoration: line-through; text-decoration-color: rgba(220, 38, 38, .55);
  background: var(--high-bg); padding: 0 2px; }
/* 决策面板：问题组 */
.qsrc { background: var(--bg2); border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px;
  font-size: 12.5px; color: var(--fg); margin: 8px 0 2px; line-height: 1.8; }
.qsrc .lbl { display: block; font-size: 11px; color: var(--fg3); margin-bottom: 3px; font-weight: 700; }
.plbl { font-size: 11.5px; color: var(--fg3); font-weight: 700; margin: 10px 0 4px; }
.reason { border-left: 3px solid var(--line2); padding: 4px 0 4px 10px; margin: 8px 0; }
.reason.lv高 { border-left-color: var(--high); }
.reason.lv中 { border-left-color: var(--mid); }
.reason.lv低 { border-left-color: var(--low); }
.reason .rtxt { font-size: 13px; color: var(--fg); line-height: 1.75; font-weight: 500; }
.reason .no { color: var(--gold-d); font-weight: 700; margin-right: 4px; }
.prob > .after { background: var(--ok-bg); border: 1px solid #cfe9d8; border-radius: 8px; padding: 8px 10px;
  font-size: 12.5px; line-height: 1.8; color: var(--fg); }
.lawitem.rule b { color: var(--gold-d); }
.lawmore:not(:empty) { margin-top: 8px; background: var(--bg2); border-radius: 8px; padding: 6px 12px; }

/* 勾选=选中（批量采纳弹窗），不沿用核对单"勾选=已完成"的删除线语义 */
.ckrow.pick input:checked ~ span b { text-decoration: none; color: inherit; }

/* ============ 风险处理队列（问题卡） ============ */
#drawer .edta { width: 100%; font: 12.5px/1.9 "PingFang SC","Microsoft YaHei",sans-serif;
  border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; }
#drawer .edta:disabled { background: var(--bg2); color: var(--fg3); }
.fp-head.slim { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.fpbar { width: 100%; height: 4px; background: var(--bg3); border-radius: 2px; overflow: hidden; margin-top: 6px; }
.fpbar i { display: block; height: 100%; width: 0; background: var(--ok); border-radius: 2px; transition: width .3s; }
.fp-head.slim .fp-hint { width: 100%; }
/* 卡片规范（v3）：待处理=白底完整信息（原文引用不划线/风险点编号/改为可编辑/采纳+忽略+详情）；
   已采纳=淡绿一行结果；已忽略=淡灰；选中=金色底描边。默认按文档顺序排列、不等高 */
.qcard { background: #fff; border: 1px solid var(--line); border-radius: 10px;
  margin: 9px 10px; padding: 11px 13px; cursor: pointer; transition: box-shadow .15s, background .2s; }
.qcard:hover { box-shadow: var(--shadow); }
.qcard.adopted, .qcard.edited { background: #F4FBF6; border-color: #cfe8d8; }
.qcard.rejected { background: var(--bg3); opacity: .8; }
.qcard.miss { border-style: dashed; }
.qcard.focus { background: #FDFBF6; border-color: var(--gold); box-shadow: 0 0 0 2px rgba(184,137,63,.25); }
.qcard .qhead { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.qcard .qno { font-size: 13px; font-weight: 800; color: var(--ink); }
.qcard .qty { font-size: 11px; color: var(--fg2); background: var(--bg3); border-radius: 4px; padding: 1px 7px; }
.qcard .qstate { margin-left: auto; font-size: 11.5px; color: var(--fg3); flex: none; }
.qcard .qstate.adopted, .qcard .qstate.edited { color: var(--ok); font-weight: 700; }
.qcard .lb { display: block; font-size: 10.5px; font-weight: 700; color: var(--fg3);
  letter-spacing: 1px; margin: 9px 0 3px; }
.qcard .qorig { font-size: 12px; color: var(--fg2); margin-top: 8px; line-height: 1.8; background: var(--bg2);
  border-left: 3px solid var(--gold-l); border-radius: 0 6px 6px 0; padding: 6px 10px; max-height: 118px; overflow: auto; }
.qcard .qorig .lb { margin: 0 0 2px; }
.qcard .qr { display: flex; gap: 6px; font-size: 12.5px; color: var(--fg); line-height: 1.7; margin: 4px 0; }
.qcard .qr .ic { flex: none; color: var(--gold-d); font-weight: 700; }
.qcard .qedit { width: 100%; font: 12.5px/1.8 "PingFang SC", "Microsoft YaHei", sans-serif;
  border: 1px solid var(--line2); border-radius: 7px; padding: 7px 9px; color: var(--fg);
  background: #fff; min-height: 60px; resize: vertical; }
.qcard .qpos { font-size: 11.5px; color: var(--gold-d); margin-top: 6px; }
.qcard .qact { display: flex; gap: 8px; margin-top: 9px; align-items: center; }
.qcard .lk { background: none; border: none; color: var(--fg3); font-size: 12px; margin-left: auto; cursor: pointer; padding: 2px 4px; }
.qcard .lk:hover { color: var(--gold-d); }
.qcard .qact2 { display: flex; gap: 12px; margin-top: 6px; }
.qcard .qact2 .lk { margin-left: 0; }
.qcard .qact2 .lk:last-child { margin-left: auto; }
.qcard .after { font-size: 12.5px; color: #0f7a35; margin-top: 7px; line-height: 1.8; }
.qcard .after del { color: #9aa5b1; text-decoration-color: #b9c2cc; }
.qcard .after.ig { color: var(--fg3); text-decoration: line-through; }

/* ============ 回稿对比 ============ */
.rlgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; max-width: 760px; margin: 0 auto; }
.rlslot { border: 2px dashed var(--line2); border-radius: 10px; padding: 22px; text-align: center;
  cursor: pointer; background: #fff; transition: all .15s; }
.rlslot:hover { border-color: var(--gold-l); background: var(--cream); }
.rlslot b { display: block; color: var(--ink); margin-bottom: 4px; }
.rlslot .rlhint { font-size: 12px; color: var(--fg3); }
.rlslot .rlfile { margin-top: 10px; font-size: 13px; color: var(--fg); min-height: 20px; }
.cmpcard { background: #fff; border: 1px solid var(--line); border-left: 3px solid var(--line2);
  border-radius: 10px; padding: 12px 16px; margin-bottom: 10px; }
.cmpcard.bad { border-left-color: var(--high); }
.rldiff { font-size: 13px; line-height: 2; color: var(--fg); margin: 8px 0;
  background: var(--bg2); border-radius: 8px; padding: 10px 14px; }
.rldel { color: var(--high); text-decoration: line-through; text-decoration-color: rgba(220,38,38,.6);
  background: var(--high-bg); border-radius: 2px; }
.rlins { color: #15803d; text-decoration: none; background: var(--ok-bg);
  border-bottom: 1.5px solid #9fd4b0; border-radius: 2px; }
.rlmeta { font-size: 12.5px; color: var(--fg2); margin-top: 6px; line-height: 1.8; }
.rlmeta b { color: var(--ink); }
.rlmeta.adv { background: var(--cream); border: 1px solid var(--gold-l); border-radius: 8px; padding: 7px 12px; }
@media (max-width: 760px) { .rlgrid { grid-template-columns: 1fr; } }

/* ============ 首页改版 ============ */
.demobar { background: var(--cream); border: 1px solid var(--gold-l); border-radius: 10px;
  padding: 9px 16px; font-size: 12.5px; color: var(--gold-d); margin-bottom: 26px; }
.hero { text-align: center; padding: 26px 12px 6px; }
.htag { font-family: "JetBrains Mono", ui-monospace, Menlo, monospace; font-size: 11px;
  letter-spacing: 4px; color: var(--gold-d); margin-bottom: 18px; }
/* 私有化专区：四类资产 */
.privbar { background: linear-gradient(135deg, var(--ink) 0%, var(--ink-soft) 100%);
  border-radius: var(--radius); padding: 22px 26px; color: #E8EDF4; box-shadow: var(--shadow); }
.privbar .pv-lead { font-size: 13px; color: #C7D2E0; margin-bottom: 14px; }
.privbar .pv-lead b { color: var(--gold-l); }
.pv-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.pvi { background: rgba(255,255,255,.06); border: 1px solid rgba(212,169,104,.25);
  border-radius: 8px; padding: 12px 14px; }
.pvi b { display: block; color: var(--gold-l); font-size: 13px; margin-bottom: 4px; }
.pvi span { font-size: 12px; color: #B9C6D6; line-height: 1.7; }
/* 知识库：贵所知识底座 */
.kbbase { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; margin-bottom: 12px; }
.kbi { background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 12px 14px; box-shadow: var(--shadow); }
.kbi b { display: block; font-size: 12.5px; color: var(--ink); margin-bottom: 4px; }
.kbi span { font-size: 11.5px; color: var(--fg2); line-height: 1.6; display: block; min-height: 38px; }
.kbi i { font-style: normal; font-size: 11px; color: var(--gold-d); background: var(--cream);
  border: 1px solid var(--gold-l); border-radius: 10px; padding: 1px 8px; margin-top: 6px; display: inline-block; }
.ruletag { font-style: normal; font-size: 10.5px; color: var(--gold-d); background: var(--cream);
  border: 1px solid var(--gold-l); border-radius: 8px; padding: 0 6px; margin-left: 6px; vertical-align: 1px; }
.hero h1 { font-family: var(--serif); font-size: 38px; font-weight: 600; letter-spacing: 2px; color: var(--ink); margin-bottom: 16px; }
.hero .hsub { max-width: 640px; margin: 0 auto 22px; color: var(--fg2); font-size: 14.5px; line-height: 2; }
.hero .hsub b { color: var(--gold-d); }
/* Hero 压缩版：标题+一行副题，工作台入口直接顶到首屏 */
.hero.slim { padding: 20px 12px 2px; }
.hero.slim h1 { font-size: 34px; margin-bottom: 12px; text-wrap: balance; }
.hero.slim .hsub { margin-bottom: 6px; max-width: 820px; text-wrap: balance; }
.btn.lg { padding: 12px 28px; font-size: 15px; border-radius: 10px; }
.wx { font-size: 11px; background: var(--ok-bg); color: var(--ok); border-radius: 8px; padding: 1px 7px; margin-left: 6px; }
.whys { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 18px; }
.why { background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: var(--shadow); padding: 20px 22px; }
.why .wic { font-size: 22px; margin-bottom: 10px; }
.why b { display: block; color: var(--ink); font-size: 14px; margin-bottom: 6px; }
.why p { color: var(--fg2); font-size: 12.5px; line-height: 1.9; }
.homecta { margin: 40px auto 10px; max-width: 560px; text-align: center; background: #fff;
  border: 1.5px solid var(--gold-l); border-radius: var(--radius); box-shadow: var(--shadow); padding: 26px 30px; }
.homecta > b { color: var(--ink); font-size: 15.5px; }
.homecta .ctline { margin-top: 12px; display: flex; gap: 8px; justify-content: center; align-items: center;
  font-size: 20px; font-weight: 700; }
.homecta .ctline a { color: var(--gold-d); text-decoration: none; letter-spacing: 1px; }
.homecta .ctline a:hover { text-decoration: underline; }

/* ============ 数据看板（指挥舱） ============ */
.dhero { background: linear-gradient(135deg, var(--ink) 0%, var(--ink-soft) 78%, #2A4A72 100%);
  border-radius: 12px; padding: 22px 26px 20px; color: #E8EDF4; box-shadow: var(--shadow-h); margin-bottom: 8px; }
.dhero h2 { font-family: var(--serif); font-size: 20px; letter-spacing: 1px; color: #fff; }
.dh-head { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 16px; }
.dh-sub { font-size: 12.5px; color: #B9C6D6; margin-top: 4px; }
.dh-tag { margin-left: auto; flex: none; font-size: 11.5px; color: var(--gold-l);
  border: 1px solid rgba(212,169,104,.45); border-radius: 14px; padding: 3px 12px; }
.dtiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; }
.dtile { background: rgba(255,255,255,.06); border: 1px solid rgba(212,169,104,.22);
  border-radius: 10px; padding: 13px 14px; text-align: center; }
.dtile b { display: block; font-size: 27px; color: #fff; font-weight: 800; line-height: 1.2;
  font-variant-numeric: tabular-nums; }
.dtile span { font-size: 11.5px; color: #B9C6D6; }
.dtile.hi { background: rgba(212,169,104,.16); border-color: var(--gold-l); }
.dtile.hi b { color: var(--gold-l); }
.ddist { padding: 8px 2px 4px; }
.ddr { display: flex; align-items: center; gap: 8px; margin: 7px 0; font-size: 12px; }
.ddr .n { flex: none; width: 60px; color: var(--fg2); }
.ddr .bar { flex: 1; height: 10px; background: var(--bg3); border-radius: 5px; overflow: hidden; }
.ddr .bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--gold-l), var(--gold)); border-radius: 5px; }
.ddr b { flex: none; width: 40px; text-align: right; color: var(--ink); }
.dcharts { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; }
.dchart { background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: var(--shadow); padding: 14px 16px 8px; }
.dchart h4 { font-size: 13.5px; color: var(--ink); }
.dchart .dsub { font-size: 11.5px; color: var(--fg3); margin: 2px 0 6px; }
.dsvg { width: 100%; height: auto; display: block; }
.dempty { color: var(--fg3); font-size: 12.5px; padding: 30px 0 34px; text-align: center; }
.dassets { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.dai { background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: var(--shadow); padding: 13px 15px; }
.dai b { display: block; font-size: 13px; color: var(--ink); margin-bottom: 4px; }
.dai span { font-size: 12px; color: var(--fg2); line-height: 1.7; }

/* ============ 文书起草中心 ============ */
.ltgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; }
.ltcard { background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: var(--shadow); padding: 16px 18px; cursor: pointer; transition: all .15s; }
.ltcard:hover { border-color: var(--gold-l); transform: translateY(-2px); box-shadow: var(--shadow-h); }
.ltcard .icon { font-size: 20px; margin-bottom: 8px; }
.ltcard b { display: block; color: var(--ink); font-size: 14px; margin-bottom: 4px; }
.ltcard span { font-size: 12px; color: var(--fg2); line-height: 1.7; display: block; min-height: 40px; }
.ltcard .enter { margin-top: 8px; font-size: 12px; font-weight: 600; color: var(--gold-d); }
.ltcard:hover .enter { color: var(--gold); }

/* ============ 流式起草页 ============ */
.drafthead { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.dstat { font-size: 12.5px; color: var(--gold-d); white-space: nowrap; }
.draftflow { background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  padding: 30px 36px; min-height: 46vh; max-height: 62vh; overflow: auto;
  font: 13.5px/2.1 "Songti SC", "SimSun", Georgia, serif; color: var(--fg);
  white-space: pre-wrap; word-break: break-word; box-shadow: var(--shadow); }
.dcaret { display: inline-block; width: 2px; height: 1.1em; background: var(--gold-d);
  vertical-align: -2px; margin-left: 2px; animation: dblink 1s steps(1) infinite; }
@keyframes dblink { 50% { opacity: 0; } }

/* ============ 招标解析：五路并行进度 ============ */
.tprog { max-width: 620px; margin: 30px auto; background: #fff; border: 1px solid var(--line);
  border-radius: var(--radius); padding: 20px 26px; box-shadow: var(--shadow); }
.tpstage { display: flex; align-items: center; gap: 10px; padding: 9px 2px;
  border-bottom: 1px dashed var(--line); font-size: 13px; color: var(--fg2); }
.tpstage:last-of-type { border-bottom: 0; }
.tpstage .st { width: 22px; text-align: center; color: var(--fg3); }
.tpstage.running { color: var(--fg); }
.tpstage.done { color: var(--fg); }
.tpstage.done .st { color: var(--ok); font-weight: 700; }
.tpstage.failed .st { color: var(--high); }
.tpstage .n { margin-left: auto; color: var(--fg3); font-size: 12px; }
.tpstage.done .n { color: var(--gold-d); }

/* ============ 操作审计 ============ */
.audit { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.adrow { display: flex; gap: 12px; align-items: baseline; padding: 8px 16px; border-bottom: 1px solid var(--bg3); font-size: 12.5px; }
.adrow:last-child { border-bottom: none; }
.adrow .t { flex: none; width: 118px; color: var(--fg3); font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11.5px; }
.adrow .m { flex: none; width: 90px; color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.adrow .a { flex: none; width: 96px; color: var(--gold-d); font-weight: 600; }
.adrow .d { flex: 1; color: var(--fg2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
