:root {
  --bg: #f5f7fa;
  --panel: #ffffff;
  --text: #172033;
  --muted: #697386;
  --line: #dfe5ee;
  --blue: #2357d8;
  --blue-dark: #173f9f;
  --blue-soft: #edf4ff;
  --green: #16a66a;
  --red: #e5484d;
  --amber: #b7791f;
  --shadow: 0 10px 28px rgba(21,35,64,.08);
}
* { box-sizing: border-box; }
body {
  margin: 0;
  min-height: 100vh;
  color: var(--text);
  background: var(--bg);
  font-family: -apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC","Microsoft YaHei",Inter,Arial,sans-serif;
  overflow-x: hidden;
}
button,input,select { font: inherit; }
.ambient { display:none; }
.ambient-a { width: 470px; height: 470px; background: radial-gradient(circle,#dce6ff 0%,rgba(220,230,255,0) 70%); top: -130px; left: -120px; }
.ambient-b { width: 520px; height: 520px; background: radial-gradient(circle,#e5dcff 0%,rgba(229,220,255,0) 70%); bottom: -210px; right: -100px; }
.app-shell { width: min(1280px, calc(100% - 40px)); margin: 0 auto; padding: 28px 0 26px; }
.hero { display: flex; align-items: center; gap: 16px; margin-bottom: 22px; padding:18px 0; border-bottom:1px solid var(--line); }
.brand-mark { width: 52px; height: 52px; border-radius: 8px; display:grid; place-items:center; color:#fff; font-weight:800; background:#172033; box-shadow:0 10px 22px rgba(23,32,51,.15); }
.hero h1 { margin: 2px 0 5px; font-size: 30px; line-height: 1.1; letter-spacing: 0; }
.hero h1 span { color: var(--blue); }
.hero p { margin: 0; color: var(--muted); font-size: 14px; }
.eyebrow { font-size: 10px; letter-spacing: 1px; color: #8993a6; font-weight: 800; }
.privacy-pill { margin-left:auto; border:1px solid #dfe5f2; background:#fff; color:#59647a; padding:8px 11px; border-radius:8px; font-size:12px; }
.workspace-grid { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:22px; align-items:start; }
.main-column { display:grid; gap:22px; }
.side-column { display:grid; gap:18px; position:sticky; top:18px; }
.panel { background:var(--panel); border:1px solid var(--line); border-radius:8px; box-shadow:var(--shadow); }
.upload-panel,.settings-panel { padding:24px; }
.status-panel { padding:24px; }
.legend-panel { padding:20px 22px; }
.panel-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:18px; }
.panel-head.compact { margin-bottom:15px; }
h2,h3,p { margin-top:0; }
.panel h2 { margin-bottom:5px; font-size:18px; }
.panel h3 { margin-bottom:13px; font-size:15px; }
.panel-head p { margin-bottom:0; color:var(--muted); font-size:12px; line-height:1.55; }
.btn { border:0; border-radius:8px; cursor:pointer; font-weight:750; transition:.18s ease; display:inline-flex; align-items:center; justify-content:center; gap:7px; }
.btn.secondary { background:#eff3fb; color:#43516b; padding:10px 14px; }
.btn.secondary:hover { background:#e6ecf8; transform:translateY(-1px); }
.btn.primary { width:100%; padding:15px 18px; color:white; font-size:15px; background:var(--blue); box-shadow:0 10px 20px rgba(35,87,216,.22); margin-top:21px; }
.btn.primary:hover:not(:disabled) { transform:translateY(-1px); box-shadow:0 14px 24px rgba(35,87,216,.28); }
.btn.primary:disabled { opacity:.45; cursor:not-allowed; box-shadow:none; }
.drop-zone { border:1.5px dashed #cdd6e8; border-radius:8px; padding:30px 20px; display:grid; place-items:center; text-align:center; background:#f8fafd; cursor:pointer; transition:.2s ease; outline:none; }
.drop-zone:hover,.drop-zone.dragover { border-color:#7190f8; background:#f2f5ff; transform:translateY(-1px); box-shadow:0 12px 30px rgba(72,105,215,.10); }
.drop-icon { width:46px; height:46px; display:grid; place-items:center; border-radius:8px; background:var(--blue-soft); color:var(--blue); font-size:26px; font-weight:700; margin-bottom:11px; }
.drop-zone h3 { margin:0 0 5px; font-size:16px; }
.drop-zone p { margin:0 0 9px; color:var(--muted); font-size:13px; }
.drop-zone span { font-size:11px; color:#929bac; }
.file-list { margin-top:16px; display:grid; gap:10px; }
.file-list.empty { border-radius:8px; border:1px solid #edf0f5; min-height:58px; place-items:center; }
.empty-state { color:#9aa3b3; font-size:12px; }
.file-item { display:grid; grid-template-columns:38px minmax(0,1fr) minmax(110px,180px) 34px; align-items:center; gap:10px; border:1px solid #e8ecf4; background:#fff; border-radius:8px; padding:10px; }
.file-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:8px; background:#ebf7f0; color:#15935f; font-weight:800; font-size:11px; }
.file-meta { min-width:0; }
.file-meta strong { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:13px; }
.file-meta span { color:#8b94a5; font-size:11px; }
.project-name { width:100%; min-width:0; border:1px solid #dfe5ef; border-radius:8px; padding:8px 10px; color:#344057; background:#f9fafc; outline:none; }
.project-name:focus { border-color:#7190f8; box-shadow:0 0 0 3px rgba(77,112,239,.10); background:#fff; }
.remove-file { border:0; width:30px; height:30px; border-radius:8px; background:#f5f6f9; color:#8b94a5; cursor:pointer; font-size:17px; }
.remove-file:hover { background:#fff0f0; color:var(--red); }
.settings-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.field { display:grid; gap:7px; }
.field span { font-size:11px; color:#68738a; font-weight:650; }
.field input,.field select { width:100%; border:1px solid #dfe5ef; background:#fff; color:#29354b; border-radius:8px; padding:11px 12px; outline:none; }
.field input:focus,.field select:focus { border-color:#7895f7; box-shadow:0 0 0 3px rgba(77,112,239,.09); }
.switch-row { display:flex; flex-wrap:wrap; gap:20px; margin-top:18px; padding-top:16px; border-top:1px solid #edf0f5; }
.switch-item { display:flex; align-items:center; gap:9px; color:#566177; font-size:12px; cursor:pointer; }
.switch-item input { display:none; }
.switch { width:34px; height:20px; border-radius:999px; background:#cfd6e2; position:relative; transition:.2s; }
.switch:after { content:""; width:16px; height:16px; border-radius:50%; background:white; position:absolute; top:2px; left:2px; box-shadow:0 2px 6px rgba(0,0,0,.18); transition:.2s; }
.switch-item input:checked + .switch { background:var(--blue); }
.switch-item input:checked + .switch:after { left:16px; }
.status-top { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; }
.status-top h2 { margin:3px 0 0; }
.count-badge { background:#eef2ff; color:#4967d8; border-radius:999px; padding:7px 10px; font-weight:750; font-size:11px; }
.output-list { margin-top:18px; display:grid; gap:11px; color:#5f6a80; font-size:12px; }
.output-list span { width:20px; height:20px; border-radius:7px; display:inline-grid; place-items:center; background:#e9f8f1; color:#15935f; margin-right:8px; font-weight:800; }
.progress-wrap { margin-top:16px; }
.progress-track { height:7px; background:#edf0f6; border-radius:999px; overflow:hidden; }
.progress-bar { width:0%; height:100%; background:linear-gradient(90deg,#3d70f6,#7456e7); transition:width .25s ease; }
.progress-text { margin-top:8px; color:#7b8597; font-size:11px; }
.result-card { margin-top:16px; display:flex; align-items:center; gap:11px; padding:12px; border-radius:8px; background:#edf9f3; border:1px solid #d7f0e4; }
.result-check { width:32px; height:32px; border-radius:8px; display:grid; place-items:center; background:#18a56b; color:#fff; font-weight:800; }
.result-card strong { font-size:12px; }
.result-card p { margin:2px 0 0; color:#6c7a73; font-size:10px; }
.legend-row { display:flex; align-items:center; gap:9px; color:#657086; font-size:11px; margin:9px 0; }
.dot { width:9px; height:9px; border-radius:50%; }
.dot.red { background:var(--red); }.dot.green { background:var(--green); }.dot.gray { background:#9aa3b3; }
footer { text-align:center; color:#98a1b0; font-size:10px; margin-top:24px; }
.hidden { display:none !important; }
.toast { position:fixed; left:50%; bottom:26px; transform:translateX(-50%); background:#1f2937; color:#fff; padding:11px 15px; border-radius:8px; font-size:12px; box-shadow:0 12px 30px rgba(0,0,0,.18); z-index:99; }
@media(max-width:900px){ .workspace-grid{grid-template-columns:1fr}.side-column{position:static}.settings-grid{grid-template-columns:repeat(2,1fr)}.privacy-pill{display:none} }
@media(max-width:560px){ .app-shell{width:min(100% - 22px,1240px);padding-top:22px}.hero{align-items:flex-start}.hero h1{font-size:23px}.settings-grid{grid-template-columns:1fr}.panel-head{flex-direction:column}.btn.secondary{width:100%}.file-item{grid-template-columns:38px 1fr 34px}.project-name{grid-column:2/3}.remove-file{grid-column:3;grid-row:1/3}.switch-row{display:grid;gap:12px} }

.preset-row{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}.preset-btn{border:1px solid #dce3ef;background:#fff;color:#59677f;border-radius:8px;padding:7px 10px;font-size:12px;font-weight:700;cursor:pointer}.preset-btn.active,.preset-btn:hover{border-color:#2357d8;background:#edf4ff;color:#173f9f}.advanced-card{margin-top:18px;border:1px solid rgba(83,105,145,.18);border-radius:8px;background:#f8faff;overflow:hidden}.advanced-card summary{cursor:pointer;padding:16px 18px;font-weight:700;color:#29426d}.advanced-card[open] summary{border-bottom:1px solid rgba(83,105,145,.12)}.decision-grid{padding:16px 18px}.analysis-preview{margin-top:28px}.preview-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.preview-head h2{margin:4px 0 0}.dashboard-cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px}.kpi-card{background:#fff;border:1px solid rgba(69,92,135,.15);border-radius:8px;padding:16px;box-shadow:0 10px 24px rgba(38,57,92,.06)}.kpi-card span{font-size:12px;color:#70809b}.kpi-card strong{display:block;font-size:22px;margin-top:7px;color:#192b4b}.project-analysis{display:grid;gap:18px}.analysis-card{background:#fff;border:1px solid rgba(69,92,135,.15);border-radius:8px;padding:20px;box-shadow:0 12px 28px rgba(38,57,92,.07)}.analysis-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.analysis-card h3{margin:0;font-size:20px}.decision-chips{display:flex;gap:8px;flex-wrap:wrap}.chip{padding:7px 11px;border-radius:8px;font-weight:700;font-size:12px}.chip.scale{background:#fff0f1;color:#c83d47}.chip.watch{background:#fff8df;color:#9b6a00}.chip.pause{background:#e9f8f1;color:#12825a}.analysis-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:16px}.mini-table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;border:1px solid #e4eaf4;border-radius:8px}.mini-table th,.mini-table td{padding:10px 12px;border-bottom:1px solid #e8edf5;text-align:right;font-size:13px}.mini-table th:first-child,.mini-table td:first-child{text-align:left}.mini-table th{background:#243650;color:#fff}.mini-table tr:last-child td{border-bottom:0}.insight-box{border-radius:8px;background:#f5f8ff;padding:16px}.insight-box h4{margin:0 0 10px}.insight-box p{margin:7px 0;color:#4d5f7c;line-height:1.55}.decision-list{margin-top:16px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.decision-column{border:1px solid #e5eaf3;border-radius:8px;padding:14px;min-width:0}.decision-column h4{margin:0 0 10px}.decision-item{padding:9px 0;border-top:1px dashed #e1e7f0}.decision-item:first-of-type{border-top:0}.decision-item strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.decision-item small{display:block;color:#71809a;margin-top:4px;line-height:1.4}.diagnosis-tag{display:inline-flex;margin-top:6px;padding:3px 7px;border-radius:6px;background:#f2f4f8;color:#526173;font-size:11px;font-weight:700}.delta-up{color:#d8444e;font-weight:700}.delta-down{color:#159265;font-weight:700}@media(max-width:1000px){.dashboard-cards{grid-template-columns:repeat(3,1fr)}.analysis-grid{grid-template-columns:1fr}.decision-list{grid-template-columns:1fr}}@media(max-width:640px){.dashboard-cards{grid-template-columns:repeat(2,1fr)}}
