/* 视觉沿用 multibagger 案例阅读库：米白纸面、墨绿、宋体标题 */
:root {
  --ink:#24342f; --muted:#63726b; --faint:#8a968f; --green:#246b58; --green-soft:#e9eee5;
  --paper:#fffefa; --ground:#f3f2ed; --line:#dfe4dc; --line-strong:#cdd9cb; --chip:#f6f8f3;
  --good:#2f7d4f; --good-bg:#e6f1e8; --warn:#9a6a12; --warn-bg:#f7eedb; --bad:#a63d32; --bad-bg:#f6e3df;
  --idle:#7b857f; --idle-bg:#eef0ec; --up:#2f7d4f; --down:#a63d32;
  --serif:"Songti SC","Noto Serif CJK SC","STSong",serif;
  --sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --ink:#e3e8e3; --muted:#a3b0a8; --faint:#7d8a83; --green:#7cc2a6; --green-soft:#23302b;
    --paper:#1b211e; --ground:#141917; --line:#2c3631; --line-strong:#3a4740; --chip:#212925;
    --good:#7cc79a; --good-bg:#1f3227; --warn:#e0b45c; --warn-bg:#352c1b; --bad:#e58a7e; --bad-bg:#3a2320;
    --idle:#9aa49e; --idle-bg:#262d29; --up:#7cc79a; --down:#e58a7e;
  }
}
* { box-sizing:border-box; }
body { margin:0; background:var(--ground); color:var(--ink); font-family:var(--sans); font-size:14px; }
a { color:var(--green); text-underline-offset:4px; }
button, select, input, textarea { font:inherit; color:inherit; }
button { cursor:pointer; }
:focus-visible { outline:3px solid var(--green); outline-offset:3px; }

.shell { max-width:1280px; margin:0 auto; padding:36px 32px 80px; }
.mast { display:flex; justify-content:space-between; align-items:center; gap:16px;
  padding-bottom:16px; border-bottom:1px solid var(--line); }
.mast-label { font-size:13px; letter-spacing:.14em; color:var(--green); text-decoration:none; }
.mast nav { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.btn { border:1px solid var(--line-strong); background:transparent; padding:7px 12px; font-size:13px; border-radius:4px; }
.btn:hover { background:var(--green-soft); }
.btn.primary { background:var(--green); color:var(--paper); border-color:var(--green); }
.btn.primary:hover { opacity:.9; }
.btn.small { padding:4px 9px; font-size:12px; }
.btn:disabled { opacity:.5; cursor:default; }
select, input[type=text], input[type=date], textarea { border:1px solid var(--line-strong); background:var(--paper);
  border-radius:4px; padding:6px 8px; font-size:13px; }
textarea { width:100%; resize:vertical; line-height:1.6; }

.hero { padding:30px 0 22px; }
.eyebrow { color:var(--muted); font-size:13px; margin:0 0 10px; }
h1 { font-family:var(--serif); font-weight:600; font-size:40px; line-height:1.2; margin:0 0 8px; }
h2 { font-family:var(--serif); font-size:22px; font-weight:600; margin:0 0 14px; }
h3 { font-size:15px; font-weight:600; margin:0 0 8px; }
.subtitle { font-size:16px; color:var(--muted); margin:0; line-height:1.7; max-width:900px; }

.metrics { display:grid; grid-template-columns:repeat(5,1fr); gap:18px; padding:18px 0; margin-bottom:26px;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.metric { padding-left:18px; border-left:1px solid var(--line); }
.metric:first-child { border-left:0; padding-left:0; }
.metric span { display:block; font-size:12px; color:var(--muted); margin-bottom:6px; }
.metric strong { font-size:26px; font-weight:500; color:var(--green); font-variant-numeric:tabular-nums; }
.metric small { font-size:12px; color:var(--muted); margin-left:6px; }

.panel { background:var(--paper); border:1px solid var(--line); border-radius:5px; padding:24px 26px; margin-bottom:22px; }
.section-label { font-size:12px; letter-spacing:.12em; color:var(--green); margin-bottom:8px; }
.panel-head { display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap; margin-bottom:14px; }
.panel-head h2 { margin:0; }
.hint { color:var(--muted); font-size:12px; line-height:1.7; }
.filters { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-bottom:16px; }
.filters input[type=text] { width:200px; }

/* 看板 */
.board { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.col { background:var(--ground); border-radius:5px; padding:10px; min-height:120px; }
.col-head { display:flex; justify-content:space-between; font-size:12px; color:var(--muted); padding:2px 4px 10px; }
.col-head b { color:var(--ink); font-weight:600; }
.card { display:block; background:var(--paper); border:1px solid var(--line); border-radius:5px; padding:11px 12px;
  margin-bottom:9px; text-decoration:none; color:var(--ink); transition:border-color .15s; }
.card:hover { border-color:var(--green); }
.card .t { display:flex; justify-content:space-between; align-items:baseline; gap:6px; }
.card .tk { font-weight:600; font-size:14px; }
.card .co { font-size:12px; color:var(--muted); margin:2px 0 8px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.card .meta { display:flex; justify-content:space-between; align-items:center; font-size:12px; color:var(--muted); gap:6px; }
.card .days.over { color:var(--bad); font-weight:600; }
.ret { font-variant-numeric:tabular-nums; font-size:12px; }
.ret.up { color:var(--up); } .ret.down { color:var(--down); }
.people { display:flex; gap:3px; }
.av { display:inline-flex; width:22px; height:22px; border-radius:50%; align-items:center; justify-content:center;
  font-size:10px; font-weight:600; background:var(--green-soft); color:var(--green); border:1px solid var(--line-strong); }
.av.intern { background:var(--chip); color:var(--muted); border-style:dashed; }
.av.none { color:var(--faint); background:transparent; border-style:dashed; }
.fbar { display:flex; gap:2px; height:5px; margin:8px 0 2px; }
.fbar i { flex:1; border-radius:2px; background:var(--idle-bg); }
.fbar i.s-支持 { background:var(--good); } .fbar i.s-存疑 { background:var(--warn); }
.fbar i.s-证伪 { background:var(--bad); } .fbar i.s-待验证 { background:var(--line-strong); }
.fbar.nothesis i { background:repeating-linear-gradient(45deg,var(--line),var(--line) 3px,transparent 3px,transparent 6px); }

/* 表格 */
.table-wrap { width:100%; overflow-x:auto; }
table { border-collapse:collapse; width:100%; font-size:13px; line-height:1.6; }
th { text-align:left; font-weight:500; color:var(--green); background:var(--green-soft); font-size:12px; white-space:nowrap; }
th, td { border-bottom:1px solid var(--line); padding:9px 10px; vertical-align:middle; }
td.num, th.num { text-align:right; font-variant-numeric:tabular-nums; }
tbody tr { cursor:pointer; } tbody tr:hover { background:var(--chip); }
table.plain tbody tr { cursor:default; } table.plain tbody tr:hover { background:transparent; }
.tk-cell b { display:block; } .tk-cell span { color:var(--muted); font-size:12px; }

.chip { display:inline-flex; align-items:center; gap:4px; font-size:12px; padding:2px 8px; border-radius:10px;
  background:var(--chip); border:1px solid var(--line); color:var(--muted); white-space:nowrap; }
.chip.green { color:var(--green); border-color:var(--line-strong); background:var(--green-soft); }
.pill { display:inline-flex; align-items:center; gap:4px; font-size:12px; padding:2px 8px; border-radius:10px; white-space:nowrap; border:0; }
.pill.s-支持, .pill.st-完成 { background:var(--good-bg); color:var(--good); }
.pill.s-存疑, .pill.st-进行中 { background:var(--warn-bg); color:var(--warn); }
.pill.s-证伪 { background:var(--bad-bg); color:var(--bad); }
.pill.s-待验证, .pill.st-未开始 { background:var(--idle-bg); color:var(--idle); }
button.pill { cursor:pointer; }

/* 公司页 */
.crumb { font-size:13px; color:var(--muted); margin:18px 0 0; }
.idea-head { display:flex; justify-content:space-between; gap:24px; align-items:flex-start; flex-wrap:wrap; padding:18px 0 18px; }
.idea-head h1 { display:flex; gap:14px; align-items:baseline; flex-wrap:wrap; }
.idea-head h1 small { font-family:var(--sans); font-size:16px; font-weight:400; color:var(--muted); }
.controls { display:grid; grid-template-columns:auto auto; gap:8px 10px; align-items:center; font-size:12px; color:var(--muted); }
.tabs { display:flex; gap:2px; border-bottom:1px solid var(--line); margin-bottom:20px; flex-wrap:wrap; }
.tabs button { border:0; background:transparent; padding:10px 14px; font-size:14px; color:var(--muted); border-bottom:2px solid transparent; margin-bottom:-1px; }
.tabs button.on { color:var(--green); border-bottom-color:var(--green); font-weight:500; }
.chart { position:relative; }
.chart svg { display:block; width:100%; height:auto; overflow:visible; }
.tip { position:absolute; pointer-events:none; background:var(--paper); border:1px solid var(--line-strong); border-radius:4px;
  padding:6px 9px; font-size:12px; box-shadow:0 2px 8px rgba(0,0,0,.08); white-space:nowrap; display:none; }
.two { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:22px; }

/* Thesis 树：根在上，竖向主干，每个因素一行 = 因素卡 + 右侧研究/指标清单 */
.thesis-head { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; flex-wrap:wrap; margin-bottom:18px; }
.verdict { display:flex; flex-direction:column; gap:6px; min-width:260px; }
.stack { display:flex; height:10px; border-radius:3px; overflow:hidden; gap:2px; }
.stack i { display:block; }
.legend { display:flex; gap:10px; flex-wrap:wrap; font-size:12px; color:var(--muted); }
.legend span::before { content:""; display:inline-block; width:9px; height:9px; border-radius:2px; margin-right:4px; vertical-align:-1px; background:var(--c); }
.root { background:var(--green); color:var(--paper); border-radius:6px; padding:14px 18px; font-family:var(--serif); font-size:15.5px; line-height:1.75; }
.root .rt { font-family:var(--sans); font-size:11px; letter-spacing:.12em; opacity:.8; margin-bottom:4px; }
.branches { margin-left:22px; border-left:1.5px solid var(--line-strong); padding-top:4px; }
.branch { position:relative; padding:12px 0 4px 26px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); gap:16px; align-items:start; }
.branch::before { content:""; position:absolute; left:0; top:34px; width:26px; border-top:1.5px solid var(--line-strong); }
.branch:last-child { background:linear-gradient(var(--paper),var(--paper)) no-repeat -2px 35px / 3px 100%; }
.fnode { background:var(--paper); border:1px solid var(--line); border-left:4px solid var(--line-strong); border-radius:5px; padding:12px 14px; }
.fnode.s-支持 { border-left-color:var(--good); } .fnode.s-存疑 { border-left-color:var(--warn); }
.fnode.s-证伪 { border-left-color:var(--bad); }
.fnode .ft { display:flex; justify-content:space-between; gap:8px; align-items:flex-start; }
.fnode .fn { font-size:11px; color:var(--green); font-variant-numeric:tabular-nums; margin-right:6px; }
.fnode .title { font-weight:600; font-size:14px; line-height:1.5; }
.fnode details { margin-top:8px; font-size:12px; color:var(--muted); line-height:1.7; }
.fnode summary { cursor:pointer; color:var(--green); list-style:none; }
.fnode summary::-webkit-details-marker { display:none; }
.fnode .fmeta { display:flex; justify-content:space-between; align-items:center; margin-top:8px; font-size:12px; color:var(--muted); gap:8px; }
.leaves { display:flex; flex-direction:column; gap:10px; padding-top:2px; }
.lgroup { font-size:10.5px; letter-spacing:.1em; color:var(--faint); margin-bottom:2px; }
.lrow { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:8px; align-items:start; padding:6px 0; border-bottom:1px solid var(--line); font-size:13px; line-height:1.55; }
.lrow:last-child { border-bottom:0; }
.lrow .sub { display:block; color:var(--muted); font-size:11.5px; }
.lrow .val { color:var(--ink); font-weight:600; font-variant-numeric:tabular-nums; text-align:right; white-space:nowrap; }
.lrow .val small { display:block; font-weight:400; color:var(--muted); font-size:11px; }
.mdot { width:8px; height:8px; margin-top:6px; border-radius:50%; border:1.5px dashed var(--muted); }
.empty { border:1.5px dashed var(--line-strong); border-radius:6px; padding:28px; text-align:center; color:var(--muted); line-height:1.9; }

/* 进度 */
.stepper { display:grid; grid-template-columns:repeat(5,1fr); gap:6px; margin:6px 0 22px; }
.step { border-top:4px solid var(--line); padding-top:8px; font-size:12px; color:var(--muted); }
.step b { display:block; color:var(--ink); font-size:13px; font-weight:500; margin-bottom:2px; }
.step.done { border-top-color:var(--green); }
.step.cur { border-top-color:var(--green); }
.step.cur b { color:var(--green); font-weight:600; }
.step.over { border-top-color:var(--bad); }
.step.over .d { color:var(--bad); font-weight:600; }
.timeline { list-style:none; padding:0; margin:0; }
.timeline li { display:grid; grid-template-columns:110px 90px minmax(0,1fr); gap:10px; padding:9px 0; border-bottom:1px solid var(--line); font-size:13px; line-height:1.6; }
.timeline .ts { color:var(--muted); font-variant-numeric:tabular-nums; font-size:12px; }
.timeline .who { color:var(--green); font-size:12px; }
.timeline .k-note .tx { font-family:var(--serif); font-size:14px; }

.src { border-top:1px solid var(--line); padding:16px 0; }
.src:first-child { border-top:0; padding-top:0; }
.src .sh { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:8px; }
.src p { margin:6px 0; line-height:1.75; }
.quote { border-left:2px solid var(--line-strong); padding:4px 0 4px 12px; color:var(--ink); font-family:var(--serif); }

/* 弹窗编辑器 */
.modal-bg { position:fixed; inset:0; background:rgba(20,25,23,.45); display:flex; justify-content:center; align-items:flex-start; padding:40px 16px; overflow:auto; z-index:20; }
.modal { background:var(--paper); border-radius:6px; width:min(980px,100%); padding:24px 26px; }
.ef { border:1px solid var(--line); border-radius:5px; padding:14px; margin:12px 0; }
.ef-row { display:grid; grid-template-columns:110px minmax(0,1fr); gap:8px; align-items:start; margin-bottom:8px; font-size:12px; color:var(--muted); }
.ef-row input[type=text], .ef-row textarea { width:100%; }
.ei { display:grid; grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr)) auto; gap:6px; margin-bottom:6px; }
.ei.m { grid-template-columns:minmax(0,1fr) auto; }
.form-grid { display:grid; grid-template-columns:140px minmax(0,1fr); gap:12px; align-items:center; max-width:720px; }
.form-grid input[type=text] { width:100%; }
.toast { position:fixed; bottom:24px; left:50%; transform:translateX(-50%); background:var(--ink); color:var(--paper);
  padding:9px 16px; border-radius:4px; font-size:13px; z-index:30; }

@media (max-width:1000px) {
  .board { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .metrics { grid-template-columns:repeat(3,1fr); }
  .two { grid-template-columns:1fr; }
  .branch { grid-template-columns:1fr; gap:8px; }
}
@media (max-width:640px) {
  .shell { padding:20px 16px 60px; }
  h1 { font-size:30px; }
  .board { grid-template-columns:1fr; }
  .metrics { grid-template-columns:repeat(2,1fr); }
  .metric:nth-child(odd) { border-left:0; padding-left:0; }
  .stepper { grid-template-columns:repeat(2,1fr); }
  .timeline li { grid-template-columns:1fr; gap:2px; }
  .panel { padding:18px 16px; }
  .ei { grid-template-columns:1fr; }
  .form-grid { grid-template-columns:1fr; }
}

/* 主页分类按钮 */
.tiles { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; margin-bottom:24px; }
.tile { display:flex; flex-direction:column; gap:6px; background:var(--paper); border:1px solid var(--line); border-radius:6px;
  padding:16px 18px; text-decoration:none; color:var(--ink); transition:border-color .15s, transform .15s; }
.tile:hover { border-color:var(--green); transform:translateY(-1px); }
.tile .tl { font-size:11px; letter-spacing:.14em; color:var(--green); }
.tile strong { font-size:34px; font-weight:500; color:var(--green); font-variant-numeric:tabular-nums; line-height:1.1; }
.tile .ts { font-size:13px; color:var(--muted); }
.warnc { color:var(--warn); font-weight:600; }
.tabs-cat { display:flex; gap:6px; flex-wrap:wrap; margin-top:14px; }
.tabs-cat a { text-decoration:none; font-size:13px; padding:6px 12px; border:1px solid var(--line-strong); border-radius:16px; color:var(--muted); }
.tabs-cat a span { color:var(--faint); margin-left:3px; }
.tabs-cat a.on { background:var(--green); color:var(--paper); border-color:var(--green); }
.tabs-cat a.on span { color:var(--paper); opacity:.75; }
.feed { list-style:none; padding:0; margin:0; }
.feed li { padding:9px 0; border-bottom:1px solid var(--line); font-size:13px; line-height:1.6; }
.feed li:last-child { border-bottom:0; }
.card { cursor:pointer; }
.stale { font-size:11.5px; padding:1px 7px; border-radius:9px; white-space:nowrap; }
.stale.ok { color:var(--muted); background:transparent; padding-left:0; }
.stale.warn { color:var(--warn); background:var(--warn-bg); }
.stale.bad { color:var(--bad); background:var(--bad-bg); font-weight:600; }
.stalec.warn { color:var(--warn) !important; } .stalec.bad { color:var(--bad) !important; }
.mv { font-size:11.5px; padding:2px 4px; color:var(--muted); max-width:84px; }
.qline { font-size:12px; color:var(--green); margin:4px 0 6px; font-variant-numeric:tabular-nums; }

/* thesis 量化摘要 */
.qsum { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:14px; padding:14px 0; margin-bottom:18px;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.qsum > div { display:flex; flex-direction:column; gap:4px; min-width:0; }
.qsum span { font-size:11.5px; color:var(--muted); }
.qsum b { font-size:20px; font-weight:500; color:var(--ink); font-variant-numeric:tabular-nums; }
.upc { color:var(--up) !important; } .downc { color:var(--down) !important; }
.stackline { display:flex !important; gap:2px; height:9px; margin-top:6px; border-radius:3px; overflow:hidden; }
.stackline i { display:block; }
.note-old { background:var(--warn-bg); color:var(--warn); padding:8px 12px; border-radius:4px; font-size:13px; }

/* 流程图 */
.flow-wrap { width:100%; overflow-x:auto; }
.flow { display:block; width:100%; min-width:760px; height:auto; }
.flow .colh { font-size:11px; letter-spacing:.1em; fill:var(--faint); }
.fnode-svg { cursor:pointer; outline:none; }
.fnode-svg rect:first-child { fill:var(--paper); stroke:var(--line-strong); stroke-width:1; transition:stroke .15s; }
.fnode-svg:hover rect:first-child, .fnode-svg:focus-visible rect:first-child { stroke:var(--green); stroke-width:2; }
.fnode-svg .l1 { font-size:13.5px; font-weight:600; fill:var(--ink); }
.fnode-svg .l2 { font-size:12px; fill:var(--muted); font-variant-numeric:tabular-nums; }
.fnode-svg.root rect:first-child, .fnode-svg.result rect:first-child { fill:var(--green); stroke:var(--green); }
.fnode-svg.root text, .fnode-svg.result text { fill:var(--paper); }
.fnode-svg.root .l2, .fnode-svg.result .l2 { opacity:.85; }
.fnode-svg.driver rect:first-child { fill:var(--green-soft); }

/* 侧栏 */
.drawer-bg { position:fixed; inset:0; background:rgba(20,25,23,.28); z-index:20; display:flex; justify-content:flex-end; }
.drawer { width:min(520px,100%); height:100%; overflow-y:auto; background:var(--paper); padding:26px 28px 40px;
  box-shadow:-8px 0 24px rgba(0,0,0,.12); position:relative; line-height:1.75; font-size:14px; }
.drawer .close { position:absolute; right:18px; top:18px; }
.drawer h2 { margin:4px 60px 12px 0; font-size:20px; line-height:1.5; }
.drawer h2.serif { font-weight:500; }
.drawer h3 { margin:20px 0 6px; font-size:13px; color:var(--green); }
.drawer p { margin:4px 0 10px; }
.dctl { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:12px; }
.qbox { display:flex; gap:22px; padding:12px 14px; background:var(--chip); border:1px solid var(--line); border-radius:5px; margin:8px 0 10px; flex-wrap:wrap; }
.qbox div { display:flex; flex-direction:column; }
.qbox span { font-size:11.5px; color:var(--muted); }
.qbox b { font-size:20px; font-weight:500; font-variant-numeric:tabular-nums; }
.qbox small { font-size:12px; color:var(--muted); }
.calc { font-size:12.5px; color:var(--muted); background:var(--ground); padding:8px 10px; border-radius:4px; }
.lrow select { font-size:12px; max-width:120px; }

/* 进度页时间 */
.tline { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:22px; padding-bottom:16px; border-bottom:1px solid var(--line); }
.tline > div { display:flex; flex-direction:column; gap:3px; }
.tline span { font-size:12px; color:var(--muted); } .tline b { font-size:18px; font-weight:500; } .tline small { font-size:12px; color:var(--muted); }
.ei.q { grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) minmax(0,2fr) minmax(0,.7fr) minmax(0,1fr); }
.ei.q3 { grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr); }

@media (max-width:1000px) {
  .tiles { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .qsum { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:640px) {
  .tiles { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .qsum, .tline { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ei.q, .ei.q3 { grid-template-columns:1fr; }
}

#wf { max-width:880px; }

.ab { font-size:11px; padding:1px 6px; border-radius:8px; white-space:nowrap; }
.ab.man { color:var(--muted); background:var(--idle-bg); }
.ab.ai { color:var(--green); background:var(--green-soft); }
.ab.yh { color:var(--warn); background:var(--warn-bg); }
.kid { border:1px solid var(--line); border-radius:5px; padding:8px 12px; margin:8px 0; }
.kid .kh { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.kid .kh .val { margin-left:auto; font-weight:600; font-variant-numeric:tabular-nums; }
.kidedit { border-left:2px solid var(--line-strong); padding:4px 0 6px 10px; margin-bottom:8px; }
.ei.kq { grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,.8fr) minmax(0,.8fr) auto; }
.ei.mx { grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr)) minmax(0,1.2fr) auto; }
.mauto { font-size:12px; max-width:170px; }
.fnode-svg.factor { cursor:grab; touch-action:none; }
.fnode-svg.dragging { cursor:grabbing; opacity:.85; }
.fnode-svg.dragging rect:first-child { stroke:var(--green); stroke-width:2; }
@media (max-width:640px) { .ei.kq, .ei.mx { grid-template-columns:1fr; } }

.suggs { display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:10px; }
.sugg { border:1px solid var(--line); border-left:3px solid var(--green); border-radius:5px; padding:10px 12px; background:var(--paper); font-size:13px; line-height:1.65; }
.sugg .sh { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.sugg p { margin:6px 0; }
.sugg .sa { display:flex; gap:6px; justify-content:flex-end; }

.fgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:12px; }
.fgroup { border:1px solid var(--line); border-radius:5px; padding:10px 12px; }
.fgh { display:flex; justify-content:space-between; font-size:13px; padding-bottom:6px; border-bottom:1px solid var(--line); margin-bottom:4px; }
.fgh span { color:var(--muted); }
.frow { padding:5px 0; font-size:13px; line-height:1.5; border-bottom:1px dashed var(--line); overflow-wrap:anywhere; }
.frow:last-child { border-bottom:0; }
.frow .hint { display:block; }

.vnote { font-size:12.5px; color:var(--muted); max-width:820px; line-height:1.75; }
.vnote summary { cursor:pointer; color:var(--green); }
.vnote ol { margin:4px 0 0; padding-left:20px; }

/* ---- 第 4 轮：初筛理由整理、核心 thesis、证据台账、待办 ---- */
.rawnote { white-space:pre-line; line-height:1.8; margin:0; }
.fmtnote h4 { margin:10px 0 2px; font-size:13px; color:var(--green); letter-spacing:.04em; }
.fmtnote h4:first-child { margin-top:0; }
.fmtnote ul { margin:0 0 4px; padding-left:18px; }
.fmtnote li { line-height:1.75; }
.rawd { margin-top:8px; font-size:12.5px; }
.rawd summary { color:var(--muted); cursor:pointer; }
.rawd .rawnote { margin-top:6px; padding:8px 10px; background:var(--chip); border-radius:4px; color:var(--muted); }
.narr-sec { background:var(--chip); border:1px solid var(--line); border-radius:6px; padding:16px 18px 10px; }
.narr p { font-family:var(--serif); font-size:15.5px; line-height:1.95; margin:0 0 10px; max-width:860px; }
.narr.small p { font-size:14px; line-height:1.85; }
.claim { border-top:1px solid var(--line); padding:8px 0; }
.claim .ch { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.claim .ch .ckill { margin-left:auto; }
.claim p { margin:4px 0; line-height:1.65; }
.claim.dead { opacity:.6; }
.supersede { display:grid; gap:6px; margin:6px 0; }
.supersede > div { display:grid; grid-template-columns:90px 1fr; gap:8px; line-height:1.6; }
.quote.small { font-size:12.5px; color:var(--muted); margin:6px 0; }
.tgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px; }
.tperson { border:1px solid var(--line); border-radius:6px; padding:10px 12px; background:var(--paper); }
.tph { display:flex; align-items:center; gap:8px; margin-bottom:6px; }
.tph .hint { margin-left:auto; }
.titem { display:grid; grid-template-columns:44px 1fr auto; gap:6px; padding:6px 0; border-top:1px solid var(--line);
  color:var(--ink); text-decoration:none; font-size:13px; line-height:1.5; }
.titem:hover { background:var(--green-soft); }
.titem .tdue { color:var(--muted); font-variant-numeric:tabular-nums; }
.titem.od .tdue { color:var(--bad); font-weight:600; }
table.tasks td { vertical-align:top; }
table.tasks tr.od td:first-child { box-shadow:inset 3px 0 0 var(--bad); }
table.tasks tr.done b { text-decoration:line-through; color:var(--muted); }
.ei.taskadd { grid-template-columns:minmax(0,3fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr) auto; margin-top:10px; }
table.hist { margin:4px 0 8px; background:var(--chip); }
table.hist th, table.hist td { font-size:12.5px; padding:5px 8px; }
code { background:var(--chip); padding:1px 5px; border-radius:3px; font-size:12px; }
@media (max-width: 760px) { .ei.taskadd { grid-template-columns:1fr; } .supersede > div { grid-template-columns:1fr; } }

/* ---- 第 5 轮：任务板（游戏化）、AI 任务条、折叠 ---- */
.notefold summary { cursor:pointer; list-style:none; }
.notefold summary::-webkit-details-marker { display:none; }
.notefold summary .section-label { display:inline; }
details.more { margin-top:8px; }
details.more > summary { cursor:pointer; color:var(--green); font-size:13px; padding:4px 0; }
.questboard .panel-head { align-items:center; }
.qstats { display:flex; align-items:center; gap:12px; font-size:13px; flex-wrap:wrap; }
.qbar { width:180px; height:10px; border-radius:5px; background:var(--idle-bg); overflow:hidden; }
.qbar i { display:block; height:100%; background:var(--green); border-radius:5px; transition:width .6s; }
.xp { color:var(--warn); font-weight:700; font-variant-numeric:tabular-nums; }
.quests { display:grid; gap:8px; }
.quest { position:relative; display:grid; grid-template-columns:30px 1fr auto; gap:12px; align-items:center;
  border:1px solid var(--line); border-radius:8px; padding:10px 12px; background:var(--paper); transition:background .3s, opacity .3s; }
.quest.od { border-color:var(--bad); box-shadow:inset 4px 0 0 var(--bad); }
.quest.done { opacity:.6; }
.quest.done .qt { text-decoration:line-through; }
.qcheck { width:26px; height:26px; border-radius:50%; border:2px solid var(--green); background:var(--paper);
  color:var(--paper); font-weight:700; display:grid; place-items:center; padding:0; }
.qcheck:hover { background:var(--green-soft); }
.quest.done .qcheck { background:var(--green); }
.qcheck.ro { cursor:default; }
.qt { font-weight:600; line-height:1.5; }
.qm { display:flex; gap:6px; flex-wrap:wrap; margin-top:3px; align-items:center; }
.qside { display:grid; gap:6px; justify-items:end; }
.qctl { display:flex; gap:4px; flex-wrap:wrap; justify-content:flex-end; }
.qctl select, .qctl input { font-size:12px; padding:3px 6px; }
.due { font-size:12px; padding:2px 8px; border-radius:10px; background:var(--idle-bg); color:var(--muted); white-space:nowrap; }
.due.od { background:var(--bad-bg); color:var(--bad); font-weight:700; }
.due.today { background:var(--warn-bg); color:var(--warn); font-weight:700; }
.due.soon { background:var(--warn-bg); color:var(--warn); }
.burst { position:absolute; right:40%; top:-6px; color:var(--warn); font-weight:800; font-size:18px; pointer-events:none;
  animation:burst 1.3s ease-out forwards; }
@keyframes burst { 0% { transform:translateY(0) scale(.6); opacity:0; } 20% { opacity:1; transform:translateY(-8px) scale(1.2); } 100% { transform:translateY(-34px) scale(1); opacity:0; } }
@media (prefers-reduced-motion: reduce) { .burst { animation:none; } .qbar i { transition:none; } }
.titem { grid-template-columns:auto 1fr; align-items:center; }
.jobstrip { display:grid; gap:6px; margin:0 0 16px; }
.job { display:flex; gap:10px; align-items:center; flex-wrap:wrap; padding:9px 14px; border-radius:6px; font-size:13px;
  background:var(--chip); border:1px solid var(--line); }
.job.run { background:var(--warn-bg); border-color:transparent; }
.job.ok { background:var(--good-bg); border-color:transparent; }
.job.err { background:var(--bad-bg); border-color:transparent; color:var(--bad); }
.job .hint { margin-left:auto; }
.spin { width:12px; height:12px; border:2px solid var(--warn); border-top-color:transparent; border-radius:50%; animation:spin 1s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.sedit { display:grid; gap:6px; margin-top:6px; padding-top:8px; border-top:1px dashed var(--line); }
.sedit .srow { display:grid; grid-template-columns:64px 1fr; gap:8px; align-items:start; }
.sedit .srow > span { font-size:12px; color:var(--muted, #888); padding-top:4px; }
.sedit .srow[hidden] { display:none; }
.sedit .chk { font-size:12px; display:flex; gap:6px; align-items:center; }
.sugg.decided { opacity:.85; background:var(--good-bg); }
.outcome ul { margin:4px 0 0; padding-left:18px; font-size:13px; line-height:1.7; }
.newb { font-size:11px; font-weight:700; color:var(--paper); background:var(--warn); border-radius:3px; padding:0 5px; }
.cnote { max-width:260px; overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
@media (max-width: 760px) { .quest { grid-template-columns:30px 1fr; } .qside { grid-column:2; justify-items:start; } }
.qbar.small { width:100%; height:6px; margin:0 0 6px; }
.clamp { max-height:7.6em; overflow:hidden; position:relative; }
.clamp:not(.open)::after { content:""; position:absolute; left:0; right:0; bottom:0; height:2.4em;
  background:linear-gradient(to bottom, transparent, var(--paper)); }
.clamp.open { max-height:none; }
.linkbtn { border:0; background:none; color:var(--green); padding:4px 0; font-size:13px; text-decoration:underline; text-underline-offset:4px; }
.evbar { display:flex; width:140px; height:8px; border-radius:4px; overflow:hidden; background:var(--idle-bg); margin-bottom:3px; }
.evbar i { display:block; height:100%; }
.ev-支持 { background:var(--good); } .ev-削弱 { background:var(--bad); } .ev-中性 { background:var(--idle); }

/* 证据出处原文 */
.srclink { color:inherit; text-decoration:underline dotted var(--line-strong); text-underline-offset:3px; cursor:pointer; }
.srclink:hover { color:var(--green); }
.srcgo { font-family:var(--sans, inherit); font-size:11.5px; color:var(--green); white-space:nowrap; }
.sv-bg { position:fixed; inset:0; background:rgba(20,25,23,.32); z-index:40; display:flex; justify-content:flex-end; }
.sv { width:min(760px,100%); height:100%; display:flex; flex-direction:column; background:var(--paper); padding:20px 24px 0; box-shadow:-8px 0 24px rgba(0,0,0,.12); }
.sv-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.sv-head b { word-break:break-all; }
.sv-btns { display:flex; gap:6px; flex-shrink:0; }
.sv-body { flex:1; overflow-y:auto; border-top:1px solid var(--line); margin-top:6px; padding:10px 4px 40px; font-size:13.5px; line-height:1.75; }
.sv-body p { margin:0 0 10px; }
.sv-body p.hit { background:var(--green-soft); border-radius:4px; padding:4px 6px; }
.sv-body mark { background:#ffe58a; color:#1d1d1d; border-radius:2px; padding:0 1px; }
.sv-page { font-size:11px; color:var(--faint); border-bottom:1px dashed var(--line); margin:14px 0 8px; }
@media (max-width: 760px) { .sv { padding:14px 16px 0; } .sv-head { flex-direction:column; } }
.cirr-form { display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin:6px 0 2px; }
.cirr-form[hidden] { display:none; }
.cirr-form select { max-width:100%; }
.cirr-form input { flex:1; min-width:140px; }
.claim .ch a.hint + a.hint { margin-left:10px; }
.pbody[hidden] { display:none; }
.panel-head .pfold { flex-shrink:0; align-self:flex-start; }

/* 讨论 */
.msgs { max-height:440px; overflow-y:auto; display:grid; gap:10px; padding:4px 2px 8px; }
.msg { display:grid; grid-template-columns:30px 1fr; gap:10px; align-items:start; }
.msg .av { width:30px; height:30px; border-radius:50%; background:var(--green-soft); color:var(--green); font-size:11px; font-weight:600; display:flex; align-items:center; justify-content:center; }
.msg.mine .av { background:var(--green); color:var(--paper); }
.msg .mb { background:var(--paper); border:1px solid var(--line); border-radius:6px; padding:6px 10px; min-width:0; }
.msg.fresh .mb { border-color:#e0b84a; box-shadow:0 0 0 2px rgba(224,184,74,.25); }
.msg .mh { display:flex; gap:8px; align-items:baseline; flex-wrap:wrap; font-size:12.5px; }
.msg .mh .mdel { margin-left:auto; }
.msg .mt { font-size:13.5px; line-height:1.65; word-break:break-word; }
.mention { color:var(--green); font-weight:600; }
.mention.me { background:#ffe58a; color:#1d1d1d; border-radius:3px; padding:0 2px; }
.mbox { position:relative; margin:8px 0 6px; }
.mbox textarea { width:100%; }
.msend { display:flex; justify-content:space-between; align-items:center; margin-top:6px; gap:8px; }
.mpop { position:absolute; left:0; bottom:calc(100% - 4px); min-width:200px; background:var(--paper); border:1px solid var(--line-strong); border-radius:6px; box-shadow:0 6px 18px rgba(0,0,0,.12); z-index:5; padding:4px 0; }
.mpop[hidden] { display:none; }
.mopt { padding:5px 12px; cursor:pointer; display:flex; gap:8px; align-items:baseline; font-size:13px; }
.mopt.on, .mopt:hover { background:var(--green-soft); }
.tbadge { background:#e0b84a; color:#1d1d1d; border-radius:9px; padding:0 6px; font-size:11px; font-weight:600; }
.atme { border-left:3px solid #e0b84a; }
.hfilter { display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin:6px 0 4px; }
.hfilter input[type=text] { min-width:140px; flex:1; }
@media (max-width: 760px) { .hfilter > * { flex:1 1 45%; } }
details.more.decided { margin:14px 0 0; }

/* 资料搜索 */
.srch { margin-bottom:6px; }
.sbar { display:flex; gap:8px; }
.sbar input { flex:1; font-size:14px; padding:8px 10px; }
.sinfo { display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin:10px 0 0; }
.sinfo .chip.zero { opacity:.45; text-decoration:line-through; }
.sinfo .btn { margin-left:auto; }
.hits { display:grid; gap:8px; margin-top:10px; }
.hit { border:1px solid var(--line); border-radius:5px; padding:8px 12px; background:var(--paper); font-size:13px; line-height:1.65; }
.hit .hh { display:flex; gap:8px; align-items:baseline; flex-wrap:wrap; }
.hit p { margin:4px 0 0; word-break:break-word; }
.hit mark, .ans mark { background:#ffe58a; color:#1d1d1d; border-radius:2px; padding:0 1px; }
.ans { border:1px solid var(--line-strong); border-left:3px solid var(--green); border-radius:5px; padding:10px 14px; margin-top:10px; background:var(--paper); font-size:13.5px; line-height:1.75; }
.ans .srclink { font-size:11.5px; vertical-align:super; text-decoration:none; color:var(--green); font-weight:600; margin:0 1px; }
.aev { background:var(--green-soft); border-radius:4px; padding:6px 10px; display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.sugg .sa .sfind { margin-right:auto; align-self:center; }
.sclose { display:flex; justify-content:flex-end; margin-top:8px; }
.qa { margin-top:14px; }
.qq { font-size:13.5px; margin-bottom:4px; }
.qa + .qa { border-top:1px dashed var(--line); padding-top:12px; }
.hnum { font-size:11px; color:var(--green); font-weight:600; margin-bottom:-6px; }
.fup { display:flex; gap:8px; margin-top:12px; }
.fup input { flex:1; padding:7px 10px; }

/* 公司页估值条 */
.vstrip { margin:-10px 0 22px; }
.vhead { display:flex; gap:10px; align-items:baseline; flex-wrap:wrap; margin-bottom:8px; }
.vgrid { display:grid; grid-template-columns:repeat(var(--n),minmax(0,1fr)); gap:8px; }
@media (max-width:1000px) { .vgrid { grid-template-columns:repeat(auto-fill,minmax(118px,1fr)); } }
.vc { border:1px solid var(--line); border-radius:5px; padding:8px 10px; background:var(--paper); min-width:0; }
.vc span { display:block; font-size:11px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.vc b { display:block; font-size:17px; font-weight:500; color:var(--ink); font-variant-numeric:tabular-nums; margin-top:2px; }
.vc small { display:block; font-size:11px; color:var(--faint); margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.vc.xl { grid-column:span 2; border-color:var(--line-strong); background:var(--green-soft); }
.vc.xl b { color:var(--green); }
.vbar { display:block; position:relative; height:4px; background:var(--line); border-radius:2px; margin-top:7px; }
.vbar i { position:absolute; top:-3px; width:3px; height:10px; margin-left:-1px; background:var(--green); border-radius:1px; }
.ab.xl { color:var(--green); background:var(--green-soft); border:1px solid var(--line-strong); }
/* 建议卡片下面直接展开的搜索 */
.sugg.wide { grid-column:1 / -1; }
.sfindbox { margin-top:10px; padding-top:10px; border-top:1px dashed var(--line-strong); }
.sfindbox .panel-head { margin-bottom:6px; }

.qedit { margin-left:auto; display:inline-flex; gap:12px; }
.qedit .linkbtn { font-size:12px; color:var(--muted, #888); }
.qedit .linkbtn.tdel:hover { color:#b3261e; }

.vhead .xlgo { margin-right:10px; }
.xlhist .chart svg { width:100%; height:auto; }

.mtab { width: 100%; border-collapse: collapse; margin: 8px 0; }
.mtab td { padding: 6px 8px; border-bottom: 1px solid var(--line, #e5e5e5); vertical-align: top; font-size: 13px; }
.mtab tr.off td { opacity: .55; }
.mtab .hint + .hint { margin-left: 8px; }
.macc-list { max-height: 260px; overflow: auto; columns: 2; margin: 8px 0; }
.macc-list label { display: block; font-size: 13px; break-inside: avoid; }

.prepb { position: fixed; top: 0; left: 50%; transform: translateX(-50%); z-index: 999; background: var(--ink, #222); color: #fff;
  padding: 8px 16px; border-radius: 0 0 8px 8px; font-size: 13px; max-width: 92vw; }
