/* 评标官 Arbiter · 设计系统：评标室 / 判词 / 精密仪器。跳出竞品蓝色政务风。 */
:root{
  --ink:#0E1420;          /* 主底 近黑墨蓝 */
  --ink-2:#141C2C;        /* 次层 */
  --ink-3:#1C2740;        /* 卡片深 */
  --paper:#F5F2EA;        /* 象牙纸 */
  --paper-2:#ECE7DA;
  --gold:#B8975A;         /* 冷金：唯一"贵"色 */
  --gold-soft:#C9AE78;
  --scan:#38E1C6;         /* 青光扫描 */
  --green:#2F7D5B;        /* 覆盖/引用✓ */
  --amber:#C7912E;        /* 改写/偏弱 */
  --red:#B23A3A;          /* 废标/高危 */
  --orange:#C07D16;       /* 新生成需审 */
  --grey:#8A93A6;         /* 中性带青蓝 */
  --grey-2:#5C6577;
  --line:rgba(184,151,90,.18);
  --line-soft:rgba(255,255,255,.07);
  --radius:10px;
  --serif:"Songti SC","SimSun","Noto Serif SC",serif;
  --sans:-apple-system,"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;
  --mono:"SF Mono","JetBrains Mono",ui-monospace,monospace;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--ink);color:#E7E9EE;font-family:var(--sans);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--gold-soft);text-decoration:none}
.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
.hidden{display:none!important}

/* 顶栏 */
.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;border-bottom:1px solid var(--line-soft);position:sticky;top:0;background:rgba(14,20,32,.82);backdrop-filter:blur(10px);z-index:50}
.brand{display:flex;align-items:center;gap:12px;cursor:pointer}
.brand .mark{width:30px;height:30px;border:1.5px solid var(--scan);border-radius:7px;display:grid;place-items:center;color:var(--scan);font-family:var(--serif);font-weight:900;font-size:17px;box-shadow:0 0 16px rgba(56,225,198,.25)}
.brand .name{font-family:var(--serif);font-weight:800;font-size:20px;letter-spacing:2px;color:var(--paper)}
.brand .en{color:var(--grey);font-size:12px;letter-spacing:3px;text-transform:uppercase}
.topbar .sys-tag{color:var(--grey);font-size:12.5px;letter-spacing:.5px}
.topbar .actions{display:flex;gap:10px;align-items:center}

/* 按钮 */
.btn{font-family:var(--sans);font-size:14px;border-radius:8px;padding:9px 18px;border:1px solid transparent;cursor:pointer;transition:.16s;display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.btn-gold{background:var(--gold);color:#221a08;font-weight:600;border-color:var(--gold)}
.btn-gold:hover{background:var(--gold-soft);box-shadow:0 4px 18px rgba(184,151,90,.28)}
.btn-ghost{background:transparent;color:#D7DBE3;border-color:var(--line-soft)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold-soft)}
.btn-lg{padding:13px 26px;font-size:15px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-danger{background:transparent;color:var(--red);border-color:rgba(178,58,58,.4)}

/* 落地页 */
.hero{display:grid;grid-template-columns:56% 44%;gap:0;min-height:calc(100vh - 64px)}
.hero-left{padding:64px 56px 48px}
.hero-right{padding:48px 48px 48px 24px;border-left:1px solid var(--line-soft);display:flex;flex-direction:column}
.eyebrow{color:var(--scan);font-size:13px;letter-spacing:2px;text-transform:uppercase;margin-bottom:20px}
.hero h1{font-family:var(--serif);font-weight:800;font-size:46px;line-height:1.28;letter-spacing:1px;margin:0 0 22px;color:var(--paper)}
.hero h1 .accent{color:var(--gold-soft)}
.hero .sub{color:#AEB6C4;font-size:16.5px;line-height:1.75;max-width:520px;margin-bottom:30px}
.hero .sub b{color:#E7E9EE;font-weight:600}

/* 拖拽框 */
.dropzone{border:1.5px dashed var(--line);border-radius:14px;padding:38px 28px;text-align:center;cursor:pointer;transition:.2s;background:linear-gradient(180deg,rgba(28,39,64,.4),rgba(20,28,44,.2));position:relative;overflow:hidden}
.dropzone:hover,.dropzone.drag{border-color:var(--gold);transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,.35)}
.dropzone.drag{border-style:solid}
.dropzone .dz-icon{font-size:30px;margin-bottom:10px;opacity:.85}
.dropzone .dz-title{font-size:17px;color:var(--paper);font-weight:600;margin-bottom:6px}
.dropzone .dz-sub{color:var(--grey);font-size:13px}
.dz-note{color:var(--grey);font-size:12.5px;margin-top:14px;text-align:center;letter-spacing:.3px}
.hero .features{display:flex;gap:22px;margin-top:26px;color:var(--grey);font-size:13px;flex-wrap:wrap}
.hero .features span{display:flex;align-items:center;gap:6px}
.hero .features .dot{width:5px;height:5px;border-radius:50%;background:var(--scan)}
.jab{margin-top:34px;padding:16px 18px;border-left:2px solid var(--gold);background:rgba(184,151,90,.06);color:#C6CDD9;font-size:13.5px;border-radius:0 8px 8px 0}
.jab b{color:var(--gold-soft)}
.chips{display:flex;gap:10px;margin-top:26px;flex-wrap:wrap}
.chip{padding:8px 14px;border:1px solid var(--line-soft);border-radius:20px;font-size:12.5px;color:#C6CDD9;cursor:pointer;transition:.15s}
.chip:hover{border-color:var(--gold);color:var(--gold-soft)}

/* 右侧报告生长区 */
.report-stage{flex:1;background:var(--paper);border-radius:14px;color:#25201a;position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:560px;box-shadow:0 24px 60px rgba(0,0,0,.4)}
.report-stage .rs-head{padding:16px 22px;border-bottom:1px solid var(--paper-2);display:flex;align-items:center;justify-content:space-between}
.rs-head .rs-title{font-family:var(--serif);font-weight:700;font-size:15px;color:#2a2318;letter-spacing:1px}
.rs-status{font-family:var(--mono);font-size:12px;color:#7a6f56}
.rs-body{flex:1;padding:22px;overflow:auto;position:relative}

/* 骨架（拖入前） */
.skeleton .sk-line{height:12px;background:var(--paper-2);border-radius:4px;margin:14px 0;opacity:.7}
.skeleton .sk-line.w1{width:60%}.skeleton .sk-line.w2{width:85%}.skeleton .sk-line.w3{width:45%}
.skeleton .sk-hint{text-align:center;color:#a89a7c;margin-top:60px;font-size:14px}
.sk-ring{width:120px;height:120px;margin:20px auto;border:2px dashed #cabf9d;border-radius:50%;display:grid;place-items:center;color:#b3a577;font-size:13px}

/* 扫描光 */
.scanbeam{position:absolute;left:0;right:0;height:80px;background:linear-gradient(180deg,transparent,rgba(56,225,198,.22),transparent);pointer-events:none;animation:scan 2.4s ease-in-out infinite}
@keyframes scan{0%{top:-80px}100%{top:100%}}

/* 证据卡 */
.evtrack{display:flex;flex-direction:column;gap:10px}
.evcard{background:#fff;border:1px solid var(--paper-2);border-left-width:3px;border-radius:8px;padding:11px 14px;font-size:13px;animation:fadein .35s ease;box-shadow:0 2px 6px rgba(0,0,0,.04)}
.evcard.score{border-left-color:var(--green)}
.evcard.risk{border-left-color:var(--red)}
.evcard.qual{border-left-color:var(--gold)}
.evcard.star{border-left-color:var(--orange)}
.evcard .ev-k{font-size:11px;color:#8a7d5f;letter-spacing:.5px;margin-bottom:3px;font-weight:600}
.evcard .ev-v{color:#2a2318;line-height:1.5}
.evcard .ev-src{color:#a89a7c;font-size:11px;margin-top:3px}
@keyframes fadein{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* 预评分报告卡 */
.prescore{color:#25201a}
.ring-wrap{display:flex;align-items:center;gap:22px;padding:6px 0 18px;border-bottom:1px solid var(--paper-2);margin-bottom:16px}
.ring{position:relative;width:120px;height:120px;flex:none}
.ring svg{transform:rotate(-90deg)}
.ring .num{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
.ring .num b{font-size:30px;font-family:var(--serif);color:#2a2318}
.ring .num small{font-size:11px;color:#7a6f56}
.ring-info .ri-title{font-family:var(--serif);font-size:16px;color:#2a2318;font-weight:700;margin-bottom:6px}
.ring-info .ri-sub{font-size:12.5px;color:#7a6f56;line-height:1.5}
.verdict-band{padding:12px 16px;border-radius:8px;font-size:13.5px;margin-bottom:14px;font-weight:600}
.verdict-band.red{background:rgba(178,58,58,.1);color:#8f2020;border:1px solid rgba(178,58,58,.25)}
.verdict-band.yellow{background:rgba(199,145,46,.12);color:#8a6413;border:1px solid rgba(199,145,46,.25)}
.verdict-band.green{background:rgba(47,125,91,.1);color:#1f5a3f;border:1px solid rgba(47,125,91,.25)}
.losspts{margin:0 0 16px}
.losspts .lp{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px dashed var(--paper-2);font-size:13px}
.losspts .lp .lp-dot{width:8px;height:8px;border-radius:50%;background:var(--red);margin-top:6px;flex:none}
.losspts .lp .lp-dot.y{background:var(--amber)}
.losspts .lp .lp-dot.g{background:var(--green)}
.losspts .lp .lp-txt{color:#3a3226}
.losspts .lp .lp-act{color:#8a7d5f;font-size:11.5px;margin-top:2px}
.rs-foot{padding:16px 22px;border-top:1px solid var(--paper-2);display:flex;gap:10px}
.rs-foot .btn-gold{flex:1;justify-content:center}
.stat-row{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}
.stat{flex:1;min-width:80px;background:#fff;border:1px solid var(--paper-2);border-radius:8px;padding:10px 8px;text-align:center}
.stat b{display:block;font-size:22px;font-family:var(--serif);color:#2a2318}
.stat small{color:#8a7d5f;font-size:11px}

/* ============ 应用工作台 ============ */
.app-shell{display:grid;grid-template-columns:300px 1fr 340px;height:calc(100vh - 64px)}
.pane{overflow:auto;padding:18px}
.pane-left{border-right:1px solid var(--line-soft);background:var(--ink-2)}
.pane-mid{background:var(--ink)}
.pane-right{border-left:1px solid var(--line-soft);background:var(--ink-2)}
.pane h3{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--grey);margin:6px 0 14px;font-weight:600}

/* 目录树 */
.tree .node{padding:8px 10px;border-radius:7px;cursor:pointer;display:flex;align-items:center;gap:8px;font-size:13.5px;transition:.12s;margin-bottom:2px}
.tree .node:hover{background:var(--ink-3)}
.tree .node.active{background:var(--ink-3);box-shadow:inset 2px 0 0 var(--gold)}
.tree .node .st{width:8px;height:8px;border-radius:50%;flex:none}
.st.pending{background:var(--grey-2)}
.st.writing{background:var(--scan);animation:pulse 1s infinite}
.st.written{background:var(--green)}
.st.failed{background:var(--red)}
.st.confirmed{background:var(--gold)}
@keyframes pulse{50%{opacity:.35}}
.tree .node .badge{margin-left:auto;font-size:10.5px;color:var(--gold-soft);font-family:var(--mono)}
.tree .node .kind{font-size:10px;padding:1px 5px;border-radius:4px;background:var(--ink-3);color:var(--grey)}
.tree .lvl2{padding-left:22px}.tree .lvl3{padding-left:36px}

/* 中栏正文 */
.doc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:10px}
.doc-title{font-family:var(--serif);font-size:19px;color:var(--paper);font-weight:700}
.editor{background:var(--paper);color:#25201a;border-radius:12px;padding:32px 38px;min-height:400px;font-size:15px;line-height:1.9;box-shadow:0 12px 40px rgba(0,0,0,.3);outline:none}
.editor:focus{box-shadow:0 0 0 2px var(--gold),0 12px 40px rgba(0,0,0,.3)}
.editor h2{font-family:var(--serif);font-size:20px;margin:20px 0 10px;color:#241d12}
.editor h3{font-family:var(--serif);font-size:17px;margin:16px 0 8px;color:#33291a}
.editor p{margin:0 0 10px}
.editor .ph{background:#fdf0c8;color:#7a5a00;padding:0 3px;border-radius:3px}
.gen-placeholder{color:#a89a7c;text-align:center;padding:80px 0}
.streaming-cursor::after{content:"▍";color:var(--gold);animation:blink 1s step-end infinite}
@keyframes blink{50%{opacity:0}}

/* 任务清单 / coverage */
.tasklist{list-style:none;margin:0;padding:0}
.tasklist li{display:flex;align-items:center;gap:9px;padding:8px 0;font-size:13px;border-bottom:1px solid var(--line-soft);color:#C6CDD9}
.tasklist .tk{width:16px;height:16px;border-radius:4px;border:1.5px solid var(--grey-2);flex:none;display:grid;place-items:center;font-size:10px}
.tasklist .tk.done{background:var(--green);border-color:var(--green);color:#fff}
.tasklist .tk.run{border-color:var(--scan)}
.cov{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.cov .ci{display:flex;align-items:center;gap:8px;font-size:12.5px;padding:7px 10px;border-radius:7px;background:var(--ink-3)}
.cov .ci .cdot{width:8px;height:8px;border-radius:50%;flex:none}
.cov .ci.g .cdot{background:var(--green)}.cov .ci.y .cdot{background:var(--amber)}.cov .ci.r .cdot{background:var(--red)}
.cov .ci .cscore{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--grey)}

/* 合规矩阵 */
.matrix .mrow{display:flex;gap:10px;padding:10px 12px;border-radius:8px;margin-bottom:6px;font-size:12.5px;background:var(--ink-3);align-items:flex-start}
.matrix .mrow .mstat{width:8px;height:8px;border-radius:50%;margin-top:5px;flex:none}
.matrix .mrow.green .mstat{background:var(--green)}
.matrix .mrow.yellow .mstat{background:var(--amber)}
.matrix .mrow.red .mstat{background:var(--red)}
.matrix .mrow .mtxt{color:#C6CDD9}
.matrix .mrow .mact{color:var(--grey);font-size:11px;margin-top:3px}

/* 信任三态角标 */
.trust-bar{display:inline-block;width:3px;align-self:stretch;border-radius:2px;margin-right:8px}

/* 弹窗 */
.modal-mask{position:fixed;inset:0;background:rgba(6,10,18,.7);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:100}
.modal{background:var(--ink-2);border:1px solid var(--line);border-radius:14px;padding:32px;width:380px;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.modal h2{font-family:var(--serif);font-size:22px;margin:0 0 6px;color:var(--paper)}
.modal .msub{color:var(--grey);font-size:13px;margin-bottom:22px}
.field{margin-bottom:14px}
.field label{display:block;font-size:12px;color:var(--grey);margin-bottom:6px}
.field input{width:100%;background:var(--ink);border:1px solid var(--line-soft);border-radius:8px;padding:11px 13px;color:#E7E9EE;font-size:14px;font-family:var(--sans)}
.field input:focus{outline:none;border-color:var(--gold)}
.modal .btn-gold{width:100%;justify-content:center;margin-top:8px}
.modal .swap{text-align:center;margin-top:16px;font-size:12.5px;color:var(--grey)}
.modal .swap a{cursor:pointer}
.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:var(--ink-3);border:1px solid var(--line);color:#E7E9EE;padding:12px 22px;border-radius:10px;font-size:13.5px;z-index:200;box-shadow:0 10px 30px rgba(0,0,0,.4)}
.err-band{background:rgba(178,58,58,.12);border:1px solid rgba(178,58,58,.3);color:#e0a0a0;padding:10px 14px;border-radius:8px;font-size:13px;margin:10px 0}

/* 资料库 */
.mat-item{background:var(--ink-3);border-radius:8px;padding:12px 14px;margin-bottom:8px;font-size:13px}
.mat-item .mi-t{color:var(--paper);font-weight:600;margin-bottom:4px}
.mat-item .mi-m{color:var(--grey);font-size:11.5px;display:flex;gap:10px;flex-wrap:wrap}
.rec-card{background:#fff;color:#25201a;border-radius:8px;padding:12px;margin-bottom:8px;border-left:3px solid var(--green)}
.rec-card .rc-reason{font-size:12px;color:#5a5040;margin:5px 0}

@media(max-width:1100px){.hero{grid-template-columns:1fr}.hero-right{border-left:none;border-top:1px solid var(--line-soft)}.app-shell{grid-template-columns:1fr}.pane-left,.pane-right{display:none}}
@media(prefers-reduced-motion:reduce){.scanbeam{animation:none;opacity:.15}.dropzone:hover{transform:none}}
