/* ============================================================
   GlobalMind · AI Decision Workspace —— 深色科技主题
   近黑底 #080B10 / 石墨灰卡 #111720 / 青绿 #48F2C2 / 电光蓝 #5B8CFF
   图形语言：经纬网 · 数据节点 · 扫描线 · 透明信息卡；动效缓慢克制
   ============================================================ */

:root{
  --bg0:#080B10; --bg1:#0c1119; --panel:#111720; --panel-2:#0e141d;
  --card:rgba(17,23,32,.72); --card-solid:#111720;
  --ink:#e7eef6; --head:#f4f8fc; --muted:#8a97ad; --faint:#5a6577;
  --line:rgba(255,255,255,.08); --line-2:rgba(255,255,255,.15);
  --teal:#5AF5CB; --blue:#6E9DFF; --violet:#9a9aff;
  --grad:linear-gradient(100deg,#5AF5CB,#6E9DFF);
  --grad-soft:linear-gradient(100deg,rgba(90,245,203,.16),rgba(110,157,255,.16));
  --hi:#ff6b6b; --mid:#f5b45b; --lo:#5AF5CB;
  --radius:14px;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 18px 44px -22px rgba(0,0,0,.7);
  --glow:0 0 24px -5px rgba(90,245,203,.6);
  --font:"Inter","PingFang SC","Source Han Sans SC","Noto Sans SC","Microsoft YaHei",-apple-system,BlinkMacSystemFont,sans-serif;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;height:100%;}
body.tool{
  font-family:var(--font); color:var(--ink); line-height:1.55; -webkit-font-smoothing:antialiased;
  background:
    radial-gradient(900px 480px at 88% -6%, rgba(72,242,194,.10), transparent 60%),
    radial-gradient(760px 460px at -4% 2%, rgba(91,140,255,.10), transparent 58%),
    var(--bg0);
}
/* 经纬网 + 扫描线 */
body.tool::before{ content:""; position:fixed; inset:0; z-index:0; pointer-events:none;
  background-image:linear-gradient(rgba(91,140,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(72,242,194,.045) 1px,transparent 1px);
  background-size:64px 64px; mask-image:radial-gradient(circle at 50% 30%,#000,transparent 85%); }
body.tool::after{ content:""; position:fixed; left:0; right:0; height:180px; z-index:0; pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(72,242,194,.05),transparent); animation:scan 11s linear infinite; }
@keyframes scan{ 0%{ transform:translateY(-200px);} 100%{ transform:translateY(100vh);} }
.topbar,.workspace{ position:relative; z-index:1; }

h1,h2,h3,h4{ color:var(--head); font-weight:650; letter-spacing:-.01em; margin:0; }
.mono{ font-variant-numeric:tabular-nums; }

/* ---------- Topbar ---------- */
.topbar{ display:flex; align-items:center; gap:16px; padding:14px 26px; position:sticky; top:0; z-index:30;
  background:rgba(8,11,16,.72); backdrop-filter:blur(12px); border-bottom:1px solid var(--line); }
.brand{ display:flex; align-items:center; gap:11px; text-decoration:none; }
.logo-img{ width:30px; height:30px; object-fit:contain; }
.mark{ width:28px; height:28px; border-radius:9px; background:var(--grad); position:relative; box-shadow:var(--glow); }
.mark::after{ content:""; position:absolute; inset:6px; border-radius:5px; background:var(--bg0); }
.btxt b{ display:block; font-size:17px; color:var(--head); line-height:1.1; }
.btxt small{ font-size:11.5px; color:var(--muted); }
.topbar .grow{ flex:1; }
.pill{ display:inline-flex; align-items:center; gap:8px; font-size:12px; color:var(--ink);
  border:1px solid var(--line-2); border-radius:999px; padding:6px 12px; background:rgba(255,255,255,.03); }
.dot{ width:8px;height:8px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 4px rgba(72,242,194,.16);animation:pulse 2.4s infinite; }
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}

/* ---------- Workspace 三列 ---------- */
.workspace{ display:grid; grid-template-columns:250px minmax(0,1fr); gap:0; height:calc(100vh - 57px); }
.evidence{ display:none; }
@media(max-width:760px){ .workspace{ grid-template-columns:1fr; height:auto; } .modrail{ height:auto!important; } }

/* ---------- 左栏：模块导航 ---------- */
.modrail{ border-right:1px solid var(--line); background:linear-gradient(180deg,rgba(17,23,32,.5),rgba(12,17,25,.5)); padding:14px 12px; }
.modnav{ position:relative; height:100%; display:flex; flex-direction:column; justify-content:space-evenly; padding-left:6px; }
.modnav::before{ content:""; position:absolute; left:27px; top:8%; bottom:8%; width:2px; border-radius:2px; background:var(--grad); opacity:.35; }
.flowdot{ position:absolute; left:23px; width:10px; height:10px; border-radius:50%; background:var(--teal); box-shadow:0 0 12px 3px rgba(72,242,194,.7); animation:railflow 4.5s ease-in-out infinite; z-index:2; }
@keyframes railflow{ 0%{top:8%;opacity:0} 8%{opacity:1} 92%{opacity:1} 100%{top:92%;opacity:0} }
.mod{ display:flex; align-items:center; gap:13px; padding:14px 14px; border-radius:14px; cursor:pointer; position:relative; z-index:1; border:1px solid transparent; transition:.16s; }
.mod:hover{ background:rgba(255,255,255,.04); border-color:var(--line); }
.mod.active{ background:rgba(72,242,194,.06); border-color:rgba(72,242,194,.3); box-shadow:var(--shadow); }
.mod .num{ width:30px; height:30px; border-radius:50%; display:grid; place-items:center; flex:0 0 30px; font-size:13px; font-weight:700; color:#04140f; background:#3a4658; border:3px solid var(--bg0); transition:.16s; }
.mod.active .num{ background:var(--grad); box-shadow:var(--glow); }
.mtxt b{ display:block; font-size:14px; color:var(--head); line-height:1.15; }
.mod:not(.active) .mtxt b{ color:var(--muted); }
.mtxt small{ font-size:11.5px; color:var(--faint); }

/* ---------- 中：面板 ---------- */
.pane-wrap{ overflow-y:auto; padding:0 30px 60px; }
.pane{ display:none; animation:fade .3s ease; }
.pane.active{ display:block; }
@keyframes fade{ from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:none;} }
.pane-head{ position:sticky; top:0; z-index:20; margin:0 -30px 20px; padding:24px 30px 16px;
  background:var(--bg0); border-bottom:1px solid var(--line); box-shadow:0 8px 18px -10px rgba(0,0,0,.7); }
.pane-head .tag{ font-size:11px; letter-spacing:.15em; text-transform:uppercase; color:var(--teal); font-weight:700; }
.pane-head h2{ font-size:22px; margin:8px 0 0; }
.pane-head .desc{ color:var(--muted); font-size:13.5px; margin:6px 0 0; max-width:720px; }
.col-title{ font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--faint); font-weight:700; margin-bottom:12px; }

/* Card / 通用 */
.card{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); padding:20px; backdrop-filter:blur(6px); }
.card.grad-edge{ position:relative; overflow:hidden; }
.card.grad-edge::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--grad); }
.row{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.empty-note{ color:var(--faint); font-size:13px; padding:8px 0; }
.hint{ font-size:12px; color:var(--muted); }
.status-line{ font-size:12.5px; color:var(--muted); display:flex; gap:8px; align-items:center; margin-top:10px; }
.spin{ width:15px;height:15px;border:2px solid var(--line-2);border-top-color:var(--teal);border-radius:50%;display:inline-block;animation:sp .7s linear infinite;vertical-align:-2px;}
@keyframes sp{to{transform:rotate(360deg)}}
.pending{ font-size:10px; color:var(--mid); background:rgba(245,180,91,.14); border-radius:6px; padding:1px 7px; margin-left:6px; }

/* 按钮 / 输入 */
.btn{ border:none; border-radius:11px; padding:11px 18px; font-size:14px; font-weight:650; cursor:pointer; color:#04140f;
  background:var(--grad); box-shadow:0 8px 22px -10px rgba(72,242,194,.7); transition:.16s; font-family:var(--font); }
.btn:hover{ transform:translateY(-1px); box-shadow:0 12px 28px -10px rgba(72,242,194,.9); }
.btn.ghost{ background:rgba(255,255,255,.04); color:var(--ink); border:1px solid var(--line-2); box-shadow:none; }
.btn.ghost:hover{ border-color:var(--teal); color:var(--head); }
.btn:disabled{ opacity:.5; cursor:not-allowed; transform:none; }
textarea,input[type=text]{ width:100%; border:1px solid var(--line-2); border-radius:12px; padding:13px; font-family:var(--font);
  font-size:14px; color:var(--ink); background:var(--panel-2); resize:vertical; }
textarea::placeholder,input::placeholder{ color:var(--faint); }
textarea:focus,input:focus{ outline:none; border-color:var(--teal); box-shadow:0 0 0 3px rgba(72,242,194,.15); }

/* Engine 两列 */
.engine-grid{ display:grid; grid-template-columns:minmax(320px,420px) 1fr; gap:22px; align-items:start; }
@media(max-width:900px){ .engine-grid{ grid-template-columns:1fr; } }
.chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.chip{ display:inline-flex; gap:6px; align-items:center; font-size:12.5px; border:1px solid var(--line-2); border-radius:999px; padding:6px 12px; background:var(--grad-soft); color:var(--ink); }
.chip b{ color:var(--head); } .chip.empty{ background:rgba(255,255,255,.03); color:var(--muted); }
.qa{ display:flex; flex-direction:column; gap:10px; margin-top:14px; }
.qa .q{ border:1px dashed var(--line-2); border-radius:12px; padding:12px 14px; background:var(--panel-2); }
.qa .q .why{ font-size:12px; color:var(--muted); margin-top:3px; }
.field{ font-size:11px; color:var(--teal); font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
input.ans{ width:100%; margin-top:10px; border:1px solid var(--line-2); border-radius:10px; padding:9px 12px; font-size:13px; background:var(--panel-2); color:var(--ink); }

/* Paths */
.paths{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:16px; }
.path{ border:1px solid var(--line-2); border-radius:14px; padding:16px; background:var(--card); cursor:pointer; transition:.16s; position:relative; }
.path:hover{ border-color:var(--teal); box-shadow:var(--shadow); }
.path.sel{ border-color:transparent; box-shadow:0 0 0 2px var(--teal),var(--shadow); }
.path h3{ font-size:15px; margin-bottom:8px; }
.path .kv{ font-size:12.5px; color:var(--ink); margin:3px 0; } .path .kv small{ color:var(--muted); margin-right:6px; }
.path .why{ font-size:12px; color:var(--muted); margin-top:10px; border-top:1px solid var(--line); padding-top:10px; }
.path .badge{ position:absolute; top:12px; right:12px; font-size:10px; font-weight:700; color:#04140f; background:var(--grad); border-radius:999px; padding:3px 9px; }

/* Finance */
.sim-grid{ display:grid; grid-template-columns:300px 1fr; gap:26px; align-items:start; }
@media(max-width:860px){ .sim-grid{ grid-template-columns:1fr; } }
.param-panel{ background:var(--panel-2); border:1px solid var(--line); border-radius:14px; padding:18px; }
.param-title{ font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--teal); font-weight:700; margin-bottom:14px; }
.selfield{ margin-bottom:12px; }
.selfield label{ display:block; font-size:12.5px; color:var(--ink); margin-bottom:6px; }
.loc-sel{ width:100%; background:var(--panel); border:1px solid var(--line-2); border-radius:11px; padding:10px 12px; font-size:13.5px; font-weight:600; color:var(--head); cursor:pointer; font-family:var(--font); }
.loc-sel:focus{ outline:none; border-color:rgba(90,245,203,.4); }
.numfield{ margin-bottom:16px; }
.numfield label{ display:block; font-size:12.5px; color:var(--ink); margin-bottom:6px; }
.numfield label small{ color:var(--muted); font-weight:500; }
.numwrap{ display:flex; align-items:center; background:var(--panel); border:1px solid var(--line-2); border-radius:11px; overflow:hidden; }
.numwrap input{ border:none; background:transparent; padding:11px 12px; font-size:17px; font-weight:650; color:var(--head); width:100%; font-variant-numeric:tabular-nums; }
.numwrap input:focus{ outline:none; box-shadow:none; }
.numwrap span{ padding:0 13px; color:var(--muted); font-size:13px; border-left:1px solid var(--line); align-self:stretch; display:flex; align-items:center; }
.cur-sel{ border:none; border-left:1px solid var(--line); background:rgba(72,242,194,.08); color:var(--head); font-weight:600; font-size:12.5px; padding:0 8px; align-self:stretch; cursor:pointer; font-family:var(--font); }
.cur-sel:focus{ outline:none; }
.slider{ margin-bottom:16px; }
.slider label{ display:flex; justify-content:space-between; font-size:12.5px; color:var(--ink); margin-bottom:6px; }
.slider label b{ color:var(--teal); }
input[type=range]{ width:100%; -webkit-appearance:none; height:6px; border-radius:6px; background:rgba(255,255,255,.08); }
input[type=range]::-webkit-slider-thumb{ -webkit-appearance:none; width:18px; height:18px; border-radius:50%; background:var(--bg0); border:2px solid var(--teal); box-shadow:0 0 10px rgba(72,242,194,.7); cursor:pointer; }

.compare{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:14px; }
.metric-card{ border:1px solid var(--line); border-radius:14px; padding:16px; background:var(--card); cursor:pointer; transition:.15s; position:relative; }
.metric-card:hover{ border-color:var(--teal); transform:translateY(-1px); }
.metric-card.sel{ border-color:transparent; box-shadow:0 0 0 2px var(--teal),var(--shadow); }
.metric-card h4{ font-size:13.5px; color:var(--head); margin-bottom:10px; }
.mc-badge{ position:absolute; top:-9px; right:12px; font-size:10px; font-weight:700; color:#04140f; background:var(--teal); border-radius:999px; padding:2px 9px; }
.mc-badge.alt{ background:var(--blue); }
.mc-foot{ margin-top:10px; font-size:11px; color:var(--teal); opacity:.9; }
.big{ font-size:24px; font-weight:700; color:var(--head); } .big.pos{ color:var(--teal);} .big.neg{ color:var(--hi);}
.metric-row{ display:flex; justify-content:space-between; font-size:12.5px; color:var(--ink); margin-top:7px; } .metric-row span{ color:var(--muted); }
.bar{ height:6px; border-radius:6px; background:rgba(255,255,255,.07); margin-top:6px; overflow:hidden; } .bar>i{ display:block; height:100%; background:var(--grad); }

.detail{ margin-top:0; padding:0; overflow:hidden; border:1px solid var(--line); border-radius:var(--radius); background:var(--card); box-shadow:var(--shadow); }
.detail-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px; padding:24px 30px; background:var(--grad-soft); border-bottom:1px solid var(--line); }
.detail-title{ font-size:18px; font-weight:700; color:var(--head); }
.fp-badge{ display:inline-flex; align-items:center; gap:8px; margin-left:8px; padding:3px 10px; border-radius:999px;
  background:rgba(90,245,203,.10); border:1px solid rgba(90,245,203,.34); vertical-align:middle; font-weight:600; }
.fp-badge>b{ color:var(--teal); font-size:12.5px; }
.fp-badge .fp-m{ font-size:11px; color:var(--muted); font-weight:500; }
.fp-badge .fp-m i{ font-style:normal; color:var(--teal); letter-spacing:1px; }
.routes{ display:flex; flex-wrap:wrap; gap:10px 18px; margin-top:13px; font-size:13.5px; color:var(--ink); }
.routes span small{ color:var(--muted); margin-right:6px; background:rgba(255,255,255,.05); border:1px solid var(--line); border-radius:6px; padding:2px 8px; }
.detail-margin{ text-align:right; flex:0 0 auto; } .detail-margin .big{ font-size:42px; line-height:1; } .detail-margin small{ color:var(--muted); font-size:12px; }
.detail-cols{ display:grid; grid-template-columns:1fr 1fr; } @media(max-width:720px){ .detail-cols{ grid-template-columns:1fr; } }
.bd{ padding:24px 30px; } .bd:first-child{ border-right:1px solid var(--line); }
.bd-title{ font-size:13px; font-weight:700; color:var(--head); margin-bottom:14px; display:flex; align-items:center; gap:8px; }
.detail .li{ display:flex; justify-content:space-between; align-items:baseline; gap:10px; padding:11px 0; border-bottom:1px dashed var(--line); font-size:14.5px; color:var(--ink); }
.detail .li small{ color:var(--muted); font-weight:500; margin-left:4px; } .detail .li b{ color:var(--head); white-space:nowrap; }
.detail .li.out b{ color:var(--mid); }
.detail .li.total{ border-bottom:none; border-top:2px solid var(--line-2); margin-top:6px; padding-top:14px; } .detail .li.total b{ font-size:19px; }
.mono.pos{ color:var(--teal)!important; } .mono.neg{ color:var(--hi)!important; }
.cf{ display:grid; grid-template-columns:18px 76px 1fr auto; align-items:center; gap:10px; padding:12px 0; border-bottom:1px dashed var(--line); font-size:13.5px; }
.cf-dot{ width:12px; height:12px; border-radius:50%; } .cf-dot.in{ background:var(--teal); box-shadow:0 0 0 4px rgba(72,242,194,.16);} .cf-dot.out{ background:var(--mid); box-shadow:0 0 0 4px rgba(245,180,91,.16);}
.cf-t{ color:var(--muted);} .cf-e{ color:var(--ink);} .cf-a{ font-weight:650; }
#explain{ margin-top:16px; }

/* Risk（旧样式保留兼容；新 checklist 样式见 style-risk 段） */
.risks-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:14px; }
.risk{ display:flex; gap:14px; padding:14px; border:1px solid var(--line); border-radius:13px; background:var(--card); box-shadow:var(--shadow); }
.risk .lv{ width:6px; border-radius:6px; flex:0 0 6px; }
.risk.high .lv{ background:var(--hi);} .risk.medium .lv{ background:var(--mid);} .risk.low .lv{ background:var(--lo);}
.risk .body{ flex:1; min-width:0; } .risk .top{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.risk .type{ font-size:11px; font-weight:700; color:var(--ink); background:rgba(255,255,255,.06); border-radius:6px; padding:2px 8px; }
.risk h4{ font-size:14px; } .risk .meta{ font-size:12.5px; color:var(--ink); margin-top:6px; } .risk .meta b{ color:var(--head); }
.hcr{ font-size:10px; font-weight:700; color:#04140f; background:var(--teal); border-radius:999px; padding:3px 9px; }
.lvtag{ font-size:10px; font-weight:800; padding:2px 8px; border-radius:999px; color:#04140f; }
.lvtag.high{background:var(--hi);color:#fff;} .lvtag.medium{background:var(--mid);color:#1a1300;} .lvtag.low{background:var(--lo);}

/* Plan */
.plan-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:14px; }
.plan-item{ border:1px solid var(--line); border-radius:13px; padding:14px; background:var(--card); box-shadow:var(--shadow); }
.plan-item .h{ display:flex; align-items:center; gap:8px; font-size:13.5px; color:var(--head); font-weight:650; margin-bottom:8px; }
.plan-item ul{ margin:0; padding-left:16px; font-size:12.5px; color:var(--ink); } .plan-item li{ margin:4px 0; }
.draft-tag{ font-size:10px; color:var(--teal); border:1px solid rgba(72,242,194,.4); border-radius:6px; padding:1px 6px; }

/* 右：证据 */
.evidence{ border-left:1px solid var(--line); background:linear-gradient(180deg,rgba(17,23,32,.5),rgba(12,17,25,.5)); padding:20px 16px; overflow-y:auto; display:flex; flex-direction:column; gap:14px; }
.evidence .card{ padding:16px; box-shadow:none; background:transparent; border:none; }
.evidence h3{ font-size:12px; text-transform:uppercase; letter-spacing:.1em; color:var(--teal); margin-bottom:10px; }
.cite{ border-top:1px solid var(--line); padding:10px 0; font-size:12px; color:var(--ink); } .cite:first-of-type{ border-top:none; }
.disclaimer{ font-size:11px; color:var(--muted); line-height:1.5; }
.list-block{ margin-top:8px; }

/* Decision Engine 组件 */
.engine-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:20px; flex-wrap:wrap; }
.steps{ display:flex; align-items:center; gap:10px; padding-top:8px; }
.stp{ display:flex; align-items:center; gap:8px; color:var(--faint); font-size:13px; }
.stp .sn{ width:28px; height:28px; border-radius:50%; display:grid; place-items:center; font-size:12px; font-weight:700; background:rgba(255,255,255,.08); color:var(--faint); }
.stp.active .sn{ background:var(--grad); color:#04140f; box-shadow:var(--glow); }
.stp.done .sn{ background:var(--teal); color:#04140f; }
.stp.active,.stp.done{ color:var(--head); font-weight:600; }
.stp-line{ width:52px; height:2px; background:rgba(255,255,255,.12); border-radius:2px; }
@media(max-width:980px){ .steps{ display:none; } }

.input-card{ margin-bottom:18px; }
.ic-head{ display:flex; align-items:center; gap:10px; font-size:15px; color:var(--head); margin-bottom:12px; }
.ic-head b{ font-weight:650; }
.ic-ico{ width:30px; height:30px; border-radius:9px; background:var(--grad-soft); display:grid; place-items:center; }
.ic-link{ font-size:13px; color:var(--teal); cursor:pointer; font-weight:500; }
.ic-link:hover{ text-decoration:underline; }
.ic-foot{ display:flex; align-items:center; gap:10px; margin-top:12px; }
.counter{ font-size:12px; color:var(--faint); }

.two-col{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px; align-items:stretch; }
@media(max-width:900px){ .two-col{ grid-template-columns:1fr; } }
.sec-card{ display:flex; flex-direction:column; }
.sec-card > #analysis, .sec-card > #questions{ flex:1; display:flex; flex-direction:column; }
#questions .qa{ display:flex; flex-direction:column; flex:1; }
#answer-replan{ margin-top:auto; }
.sec-head{ display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.sec-head.sec-standalone{ margin:4px 0 14px; }
.sec-n{ width:30px; height:30px; border-radius:9px; background:var(--grad); color:#04140f; display:grid; place-items:center; font-size:13px; font-weight:700; flex:0 0 30px; }
.sec-t b{ display:block; font-size:15px; color:var(--head); }
.sec-t small{ font-size:12px; color:var(--muted); }

.judgment{ display:flex; gap:10px; align-items:flex-start; background:rgba(72,242,194,.08); border:1px solid rgba(72,242,194,.28); border-radius:12px; padding:12px 14px; font-size:13px; color:#a9f6df; margin-bottom:14px; }
.judgment b{ color:var(--teal); margin-right:6px; }
.jico{ width:20px; height:20px; border-radius:50%; background:var(--teal); color:#04140f; display:grid; place-items:center; font-size:12px; flex:0 0 20px; }
.bullets{ margin-top:6px; }
.blt{ display:flex; align-items:baseline; gap:10px; padding:8px 2px; border-bottom:1px solid var(--line); font-size:13.5px; }
.blt:last-child{ border-bottom:none; }
.dot2{ width:6px; height:6px; border-radius:50%; background:var(--teal); flex:0 0 6px; transform:translateY(-1px); box-shadow:0 0 6px rgba(72,242,194,.7); }
.bl-k{ color:var(--muted); min-width:78px; }
.bl-v{ color:var(--head); font-weight:650; }
.bl-v.muted{ color:var(--faint); font-weight:500; }
.tagline{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:12px; }
.tl-label{ font-size:12px; color:var(--muted); }
.ttag{ font-size:12px; border-radius:8px; padding:4px 10px; font-weight:500; }
.ttag.d{ background:rgba(91,140,255,.14); color:#a9c2ff; }
.ttag.r{ background:rgba(245,180,91,.16); color:#f5c98a; }

.qgroup{ margin-bottom:14px; }
.qgroup-title{ font-size:12.5px; font-weight:650; color:var(--head); margin-bottom:8px; }
.qgrid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
@media(max-width:560px){ .qgrid{ grid-template-columns:1fr; } }
.qfield label{ display:block; font-size:12px; color:var(--muted); margin-bottom:5px; }
.qfield select,.qfield input{ width:100%; border:1px solid var(--line-2); border-radius:9px; padding:9px 10px; font-family:var(--font); font-size:13px; background:var(--panel-2); color:var(--ink); }
.qfield select{ background:var(--panel-2); }
.qfield select:focus,.qfield input:focus{ outline:none; border-color:var(--teal); box-shadow:0 0 0 3px rgba(72,242,194,.15); }

.paths-layout{ display:grid; grid-template-columns:1.4fr 1fr; gap:18px; align-items:stretch; }
@media(max-width:900px){ .paths-layout{ grid-template-columns:1fr; } }
#paths-main{ display:flex; }
.path-main{ border:1px solid rgba(72,242,194,.35); border-radius:16px; padding:20px; background:linear-gradient(180deg,rgba(72,242,194,.05),var(--card)); box-shadow:var(--shadow); cursor:pointer; transition:.16s; display:flex; flex-direction:column; flex:1; }
.path-main.sel{ border-color:transparent; box-shadow:0 0 0 2px var(--teal),var(--shadow); }
.pm-top{ display:flex; align-items:center; gap:10px; }
.pm-top .badge{ font-size:11px; font-weight:700; color:#04140f; background:var(--grad); border-radius:999px; padding:3px 10px; }
.pm-top h3{ font-size:17px; }
.pm-desc{ font-size:13px; color:var(--muted); margin:10px 0 0; }
.pm-icons{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:16px 0; }
@media(max-width:520px){ .pm-icons{ grid-template-columns:1fr; } }
.pmi{ display:flex; gap:10px; align-items:flex-start; }
.pmi-ic{ width:30px; height:30px; border-radius:9px; background:rgba(255,255,255,.05); border:1px solid var(--line-2); display:grid; place-items:center; color:var(--teal); font-size:15px; flex:0 0 30px; }
.pmi small{ display:block; font-size:11px; color:var(--muted); } .pmi b{ font-size:13px; color:var(--head); }
.pm-actions{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; border-top:1px solid var(--line); padding-top:16px; margin-top:auto; }
.pm-actions .btn{ padding:10px 16px; }
#paths-alt{ display:flex; flex-direction:column; gap:14px; justify-content:space-between; }
.path-alt{ border:1px solid var(--line); border-radius:14px; padding:16px; background:var(--card); box-shadow:var(--shadow); cursor:pointer; transition:.16s; flex:1; display:flex; flex-direction:column; }
.path-alt:hover{ border-color:var(--teal); }
.path-alt.sel{ border-color:transparent; box-shadow:0 0 0 2px var(--teal),var(--shadow); }
.path-alt .pa-chips{ margin-top:auto; }
.pa-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.pa-top h4{ font-size:15px; }
.badge-alt{ font-size:10px; font-weight:700; color:var(--muted); background:rgba(255,255,255,.06); border-radius:999px; padding:3px 9px; }
.pa-desc{ font-size:12.5px; color:var(--muted); margin:8px 0 0; }
.pa-chips{ display:flex; align-items:center; gap:10px; margin-top:12px; flex-wrap:wrap; }
.pchip{ font-size:12px; color:var(--muted); background:rgba(255,255,255,.04); border:1px solid var(--line); border-radius:8px; padding:4px 10px; }
.pchip b{ color:var(--head); margin-left:4px; }
.pa-detail{ margin-left:auto; }

.proscons{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:14px 0 4px; }
@media(max-width:560px){ .proscons{ grid-template-columns:1fr; } }
.pc{ border-radius:10px; padding:10px 12px; }
.pc-pro{ background:rgba(72,242,194,.07); border:1px solid rgba(72,242,194,.24); }
.pc-con{ background:rgba(245,180,91,.08); border:1px solid rgba(245,180,91,.24); }
.pc-h{ font-size:12px; font-weight:700; margin-bottom:6px; }
.pc-pro .pc-h{ color:var(--teal); } .pc-con .pc-h{ color:var(--mid); }
.pc ul{ margin:0; padding-left:16px; } .pc li{ font-size:12.5px; color:var(--ink); margin:3px 0; line-height:1.45; }

.pdetail{ margin:6px 0 10px; padding:14px; border:1px dashed var(--line-2); border-radius:10px; background:var(--panel-2); }
.dseg{ margin-bottom:10px; } .dseg:last-child{ margin-bottom:0; }
.dseg b{ font-size:12px; color:var(--head); }
.dseg ul{ margin:5px 0 0; padding-left:16px; } .dseg li{ font-size:12.5px; color:var(--ink); margin:3px 0; }
.dcites{ display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
.dcite{ font-size:11px; font-weight:700; color:var(--teal); background:rgba(72,242,194,.12); border-radius:6px; padding:2px 8px; }

/* Evidence 分组知识库 */
.kgroup{ border:1px solid var(--line); border-radius:12px; margin-bottom:10px; overflow:hidden; background:var(--card); }
.kgroup-head{ display:flex; align-items:center; gap:8px; padding:11px 12px; cursor:pointer; background:rgba(255,255,255,.03); }
.kg-title{ font-size:12.5px; font-weight:650; color:var(--head); flex:1; }
.kg-count{ font-size:11px; font-weight:700; color:var(--teal); background:rgba(72,242,194,.14); border-radius:999px; padding:1px 8px; }
.kg-chev{ font-size:11px; color:var(--faint); transition:.2s; }
.kgroup.collapsed .kgroup-body{ display:none; }
.kgroup.collapsed .kg-chev{ transform:rotate(-90deg); }
.kgroup-body{ padding:2px 12px 6px; }
.krule{ border-top:1px solid var(--line); padding:10px 0; }
.krule:first-child{ border-top:none; }
.krule.cited{ background:rgba(72,242,194,.07); border-radius:8px; padding:10px; margin:4px -6px; border-top:none; box-shadow:inset 3px 0 0 var(--teal); }
.kr-top{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.kr-id{ font-size:12px; font-weight:700; color:var(--head); white-space:nowrap; }
.kbadge{ font-size:10px; border-radius:6px; padding:1px 7px; font-weight:600; }
.kbadge.confirmed{ background:rgba(72,242,194,.14); color:var(--teal); }
.kbadge.estimate{ background:rgba(91,140,255,.16); color:#a9c2ff; }
.kbadge.pending{ background:rgba(245,180,91,.18); color:var(--mid); }
.kr-txt{ font-size:12px; color:var(--ink); margin-top:6px; line-height:1.5; }
.kr-meta{ display:flex; justify-content:space-between; font-size:11px; color:var(--muted); margin-top:6px; }

/* ============================================================
   风险自检中心 · Checklist
   ============================================================ */
.rr-filters{ display:flex; gap:16px; align-items:flex-end; flex-wrap:nowrap; }
.rr-filters-grid{ display:grid; grid-template-columns:repeat(8,1fr); gap:10px; flex:1; min-width:0; }
@media(max-width:1280px){ .rr-filters-grid{ grid-template-columns:repeat(4,1fr); } }
@media(max-width:640px){ .rr-filters{ flex-wrap:wrap; } .rr-filters-grid{ grid-template-columns:repeat(2,1fr); } }
.rrf label{ display:block; font-size:10.5px; color:var(--muted); margin-bottom:5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rrf select{ width:100%; border:1px solid var(--line-2); border-radius:9px; padding:8px 6px; font-family:var(--font); font-size:12px; background:var(--panel-2); color:var(--ink); }
.rrf select:focus{ outline:none; border-color:var(--teal); }
.rr-filters #gen-checklist{ flex:0 0 auto; white-space:nowrap; }

.rr-context{ display:flex; align-items:center; gap:14px; margin-top:16px; padding:14px 18px; border:1px solid var(--line); border-radius:14px; background:var(--card); }
.rrc-ic{ width:38px; height:38px; border-radius:50%; background:var(--grad); color:#04140f; display:grid; place-items:center; font-size:18px; flex:0 0 38px; box-shadow:var(--glow); }
.rrc-main{ flex:1; min-width:0; }
.rrc-title{ font-size:14.5px; font-weight:650; color:var(--head); }
.rrc-tags{ display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:6px; font-size:12px; color:var(--muted); }
.rrc-loaded{ font-size:12px; color:var(--muted); display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.ld-label{ color:var(--faint); }
.rrc-loaded .ld{ color:var(--ink); } .rrc-loaded .ld b{ color:var(--teal); }
@media(max-width:820px){ .rr-context{ flex-wrap:wrap; } .rrc-loaded{ width:100%; justify-content:flex-start; } }

.rrcat{ border:1px solid var(--line); border-radius:14px; margin-top:14px; background:var(--card); overflow:hidden; }
.rrcat-head{ display:flex; align-items:center; gap:12px; padding:16px 18px; cursor:pointer; flex-wrap:wrap; }
.rrcat-head:hover{ background:rgba(255,255,255,.02); }
.rrcat-n{ width:26px; height:26px; border-radius:8px; background:rgba(110,157,255,.15); color:var(--blue); display:grid; place-items:center; font-size:12px; font-weight:700; flex:0 0 26px; }
.rrcat-ic{ font-size:16px; }
.rrcat-name{ font-size:15px; font-weight:650; color:var(--head); }
.cc{ font-size:12px; font-weight:600; border-radius:7px; padding:3px 9px; }
.cc.high{ color:var(--hi); background:rgba(255,107,107,.12); }
.cc.med{ color:var(--mid); background:rgba(245,180,91,.14); }
.cc.low{ color:var(--teal); background:rgba(90,245,203,.12); }
.rrcat-prog{ margin-left:auto; display:flex; align-items:center; gap:10px; font-size:12px; color:var(--muted); }
.pbar{ width:110px; height:6px; border-radius:6px; background:rgba(255,255,255,.08); overflow:hidden; display:inline-block; }
.pbar b{ display:block; height:100%; background:var(--grad); }
.rrcat-chev{ color:var(--faint); font-size:12px; transition:.2s; }
.rrcat:not(.open) .rrcat-body{ display:none; }
.rrcat:not(.open) .rrcat-chev{ transform:rotate(-90deg); }
.rrcat-body{ display:grid; grid-template-columns:1fr 1fr 1fr; border-top:1px solid var(--line); }
@media(max-width:900px){ .rrcat-body{ grid-template-columns:1fr; } }
.rrcol{ padding:16px 18px; border-right:1px solid var(--line); }
.rrcol:last-child{ border-right:none; }
.rrcol-h{ font-size:12px; font-weight:700; margin-bottom:10px; }
.rrcol-h.high{ color:var(--hi); } .rrcol-h.med{ color:var(--mid); } .rrcol-h.low{ color:var(--teal); }
.rritem{ display:flex; align-items:flex-start; gap:9px; padding:8px 0; cursor:pointer; font-size:13px; color:var(--ink); }
.rritem input{ margin-top:2px; accent-color:var(--teal); width:15px; height:15px; flex:0 0 15px; }
.rri-txt{ flex:1; line-height:1.45; }
.rri-cond{ display:block; font-size:11px; color:var(--faint); margin-top:2px; }
.rri-st{ font-size:10px; font-weight:600; border-radius:6px; padding:2px 7px; white-space:nowrap; align-self:center; cursor:pointer; user-select:none; }
.rri-st.uncheck{ color:var(--muted); background:rgba(255,255,255,.06); }
.rri-st.issue{ color:var(--hi); background:rgba(255,107,107,.14); }
.rri-st.unsure{ color:var(--mid); background:rgba(245,180,91,.16); }
.rri-st.pass{ color:var(--teal); background:rgba(90,245,203,.14); }

/* ============================================================
   Execution Plan · 执行方案汇总 / 链路 / 工作台入口
   ============================================================ */
.ep-summary{ }
.ep-title{ font-size:13px; font-weight:700; color:var(--head); margin-bottom:14px; letter-spacing:.02em; }
.ep-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
@media(max-width:900px){ .ep-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .ep-grid{ grid-template-columns:1fr; } }
.ep-cell{ border:1px solid var(--line); border-radius:12px; padding:14px; background:var(--panel-2); }
.ep-ch{ font-size:12.5px; font-weight:650; color:var(--teal); margin-bottom:8px; }
.ep-cell ul{ margin:0; padding-left:16px; }
.ep-cell li{ font-size:12.5px; color:var(--ink); margin:4px 0; line-height:1.45; }

.ep-flow{ position:relative; margin:26px 0; padding:14px 8px 4px; }
.ef-line{ position:absolute; left:6%; right:6%; top:24px; height:2px; border-radius:2px;
  background:linear-gradient(90deg,rgba(90,245,203,.15),rgba(110,157,255,.35),rgba(90,245,203,.15)); overflow:visible; }
.ef-sweep{ position:absolute; top:-2px; width:120px; height:6px; border-radius:6px; transform:translateY(0);
  background:linear-gradient(90deg,transparent,var(--teal),transparent); filter:blur(1px);
  box-shadow:0 0 14px 2px rgba(90,245,203,.7); animation:epflow 4.5s linear infinite; }
@keyframes epflow{ 0%{ left:100%; opacity:0;} 8%{opacity:1;} 92%{opacity:1;} 100%{ left:-140px; opacity:0;} }
.ef-steps{ position:relative; display:flex; justify-content:space-between; gap:8px; }
.ef-step{ display:flex; flex-direction:column; align-items:center; text-align:center; flex:1; }
.ef-dot{ width:16px; height:16px; border-radius:50%; background:var(--bg0); border:2px solid var(--teal);
  box-shadow:0 0 10px rgba(90,245,203,.6); margin-bottom:12px; }
.ef-step b{ font-size:13px; color:var(--head); }
.ef-step small{ font-size:11.5px; color:var(--muted); margin-top:3px; }

.ep-workbench{ display:flex; align-items:center; justify-content:space-between; gap:16px; text-decoration:none;
  border:1px solid rgba(90,245,203,.35); border-radius:16px; padding:22px 26px; margin-top:8px;
  background:radial-gradient(600px 160px at 20% 0%,rgba(90,245,203,.10),transparent 70%),var(--card);
  transition:.18s; }
.ep-workbench:hover{ border-color:var(--teal); box-shadow:0 0 0 1px rgba(90,245,203,.4), var(--shadow); transform:translateY(-1px); }
.ep-wb-title{ font-size:18px; font-weight:750; color:var(--head); }
.ep-wb-title span{ color:var(--teal); font-size:14px; font-weight:600; margin-left:6px; }
.ep-wb-sub{ font-size:12.5px; color:var(--muted); margin-top:6px; }
.ep-wb-arrow{ font-size:22px; color:var(--teal); flex:0 0 auto; }

/* ============================================================
   Execution Plan v2 —— 覆盖优化
   ============================================================ */
.ep-title-row{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:16px; }
.ep-title{ position:relative; padding-left:12px; font-size:16px; font-weight:750; color:var(--head); letter-spacing:.02em; margin:0; }
.ep-title::before{ content:""; position:absolute; left:0; top:2px; bottom:2px; width:4px; border-radius:2px; background:var(--grad); }
.ep-risk{ font-size:12px; font-weight:700; border-radius:999px; padding:4px 12px; }
.ep-risk.high{ color:var(--hi); background:rgba(255,107,107,.14); border:1px solid rgba(255,107,107,.45); }
.ep-risk.mid{ color:var(--mid); background:rgba(245,180,91,.16); border:1px solid rgba(245,180,91,.45); }
.ep-risk.low{ color:var(--teal); background:rgba(90,245,203,.14); border:1px solid rgba(90,245,203,.45); }

/* 系统流程串联 —— 更明显 + 左→右 */
.ep-flowcard{ margin:18px 0; }
.ep-flow{ position:relative; margin:6px 0 4px; padding:16px 8px 6px; }
.ef-line{ position:absolute; left:6%; right:6%; top:26px; height:3px; border-radius:3px; overflow:visible;
  background:linear-gradient(90deg,rgba(90,245,203,.25),rgba(110,157,255,.5),rgba(90,245,203,.25)); }
.ef-sweep{ position:absolute; top:-3px; width:170px; height:9px; border-radius:9px;
  background:linear-gradient(90deg,transparent,var(--teal),#eafff9,var(--teal),transparent); filter:blur(.5px);
  box-shadow:0 0 18px 3px rgba(90,245,203,.85); animation:epflow 4s linear infinite; }
@keyframes epflow{ 0%{ left:-180px; opacity:0;} 8%{opacity:1;} 92%{opacity:1;} 100%{ left:100%; opacity:0;} }
.ef-dot{ width:20px; height:20px; border-radius:50%; background:var(--bg0); border:2px solid var(--teal);
  box-shadow:0 0 14px 2px rgba(90,245,203,.7); margin-bottom:14px; }
.ef-step b{ font-size:13.5px; color:var(--head); }
.ef-step small{ font-size:11.5px; color:var(--muted); margin-top:3px; }

/* 工作台入口 —— 居中 + 旋转地球背景 */
.ep-workbench{ position:relative; display:block; overflow:hidden; text-align:center; text-decoration:none;
  padding:44px 26px; margin-top:8px; border:1px solid rgba(90,245,203,.35); border-radius:20px;
  background:radial-gradient(760px 240px at 50% 0%, rgba(90,245,203,.12), transparent 70%), var(--card); transition:.18s; }
.ep-workbench:hover{ border-color:var(--teal); box-shadow:0 0 0 1px rgba(90,245,203,.4), var(--shadow); transform:translateY(-1px); }
.ep-wb-globe{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:340px; height:340px; border-radius:50%;
  background-color:#04070e; background-image:url("/earth.jpg"); background-repeat:repeat-x; background-size:auto 340px; background-position:0 center;
  opacity:.16; box-shadow:inset -26px -26px 90px rgba(2,5,12,.9); animation:wbspin 50s linear infinite; pointer-events:none; }
@keyframes wbspin{ from{ background-position:0 center; } to{ background-position:-680px center; } }
.ep-wb-inner{ position:relative; z-index:1; }
.ep-wb-title{ font-size:24px; font-weight:800; color:var(--head); letter-spacing:.03em; }
.ep-wb-sub{ font-size:13px; color:var(--muted); margin:12px auto 0; max-width:560px; }
.ep-wb-cta{ display:inline-block; margin-top:20px; padding:11px 26px; border-radius:999px; background:var(--grad);
  color:#04140f; font-weight:700; font-size:14px; box-shadow:0 10px 26px -10px rgba(90,245,203,.7); }

/* ============================================================
   决策引擎 02 区：默认假设 / 场景识别结果 / 关键追问
   ============================================================ */
.assume-card{ margin-bottom:18px; }
.assume-head{ display:flex; align-items:baseline; gap:8px; margin-bottom:14px; }
.assume-head b{ font-size:15px; color:var(--head); }
.assume-head span{ font-size:12px; color:var(--muted); }
.assume-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
@media(max-width:1000px){ .assume-grid{ grid-template-columns:repeat(2,1fr); } }
.assume{ display:flex; align-items:center; gap:10px; padding:12px 14px; border:1px solid var(--line-2); border-radius:12px; background:var(--panel-2); font-size:13px; color:var(--ink); }
.assume .ai-ic{ width:26px; height:26px; border-radius:8px; background:rgba(90,245,203,.10); display:grid; place-items:center; font-size:14px; flex:0 0 26px; }

.scene-grp{ margin-bottom:12px; }
.scene-gt{ font-size:12px; font-weight:700; color:var(--teal); margin:6px 0; letter-spacing:.04em; }
.scene-row{ display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px dashed var(--line); font-size:13px; }
.scene-row:last-child{ border-bottom:none; }
.scene-k{ color:var(--muted); min-width:104px; }
.scene-v{ flex:1; color:var(--head); font-weight:600; }
.scene-st{ font-size:10px; font-weight:700; border-radius:6px; padding:2px 8px; white-space:nowrap; }
.scene-st.ok{ color:var(--teal); background:rgba(90,245,203,.14); }
.scene-st.warn{ color:var(--mid); background:rgba(245,180,91,.16); }
.scene-st.def{ color:var(--blue); background:rgba(110,157,255,.16); }

.q-count{ font-size:12px; color:var(--muted); }
.assume-actions{ display:flex; justify-content:flex-end; gap:12px; margin:6px 0 20px; }
