:root{--bg: #0e1116;--panel: #171b22;--panel2: #1e242d;--border: #2a313c;--text: #e6e9ef;--muted: #8b95a5;--accent: #4f8cff;--pos: #3fb950;--neg: #f85149;--warn: #d29922;--s1: #3987e5;--s2: #d95926;--s3: #199e70;--s4: #c98500;--s5: #d55181;--s6: #008300;--s7: #9085e9;--s8: #e66767;--seq-400: #3987e5;--seq-600: #184f95;--seq-700: #0d366b;--st-good: #0ca30c;--st-warn: #fab219;--st-serious: #ec835a;--st-crit: #d03b3b;--grid: #222831;--baseline: #38404e}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1{font-size:20px;margin:0 0 4px}h2{font-size:15px;margin:0 0 12px;font-weight:600}.muted{color:var(--muted)}.nowrap{white-space:nowrap}.pos{color:var(--pos)}.neg{color:var(--neg)}.warn{color:var(--warn)}.center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}button{background:var(--accent);color:#fff;border:0;border-radius:8px;padding:8px 14px;font-weight:600;cursor:pointer}button:hover{filter:brightness(1.08)}button:disabled{opacity:.45;cursor:not-allowed}button.ghost{background:transparent;color:var(--text);border:1px solid var(--border)}button.danger{background:var(--neg)}input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:9px 11px;margin:4px 0 10px}label{font-size:12px;color:var(--muted)}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px}.login{width:340px}.login button{width:100%;margin-top:6px}.alert{background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin-top:8px;font-size:13px}.alert.error{border-color:var(--neg);color:var(--neg)}.row{display:flex;align-items:center}.row.gap{gap:8px}.row.end{justify-content:flex-end}.wrap{flex-wrap:wrap}.label{font-size:12px;color:var(--muted);margin-bottom:4px}.app{max-width:1200px;margin:0 auto;padding:16px}.topbar{display:flex;justify-content:space-between;align-items:center;padding:8px 4px 16px;border-bottom:1px solid var(--border);margin-bottom:16px}.brand{font-size:18px;font-weight:700}.brandbox{display:flex;align-items:center;gap:14px;min-width:0;flex-wrap:wrap}.statusstrip{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.chip{font-size:11px;line-height:1;padding:4px 8px;border-radius:999px;background:var(--panel2);border:1px solid var(--border);color:var(--muted);white-space:nowrap;cursor:default}.chip.ok{color:#7fd68a;border-color:#0ca30c73}.chip.bad{color:#ef8a8a;border-color:#d03b3b80;background:#d03b3b1a}.chip.info{color:#79b0f2;border-color:#3987e573}@media (max-width: 900px){.brandbox{gap:8px}.chip{font-size:10px;padding:3px 7px}}.badges{display:flex;align-items:center;gap:10px}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.span2{grid-column:1 / -1}@media (max-width: 760px){.grid{grid-template-columns:1fr}.span2{grid-column:auto}}.badge{font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;background:var(--panel2);border:1px solid var(--border)}.badge.kill{background:var(--neg);color:#fff;border-color:var(--neg)}.badge.ok{background:#3fb95026;color:var(--pos);border-color:var(--pos)}.badge.warn{background:#d299222e;color:var(--warn);border-color:var(--warn)}.badge.mode-PAPER{color:var(--accent)}.badge.mode-SEMI_AUTO{color:var(--warn)}.badge.mode-AUTONOMOUS,.badge.st-filled{color:var(--pos)}.badge.st-rejected,.badge.st-cancelled{color:var(--neg)}.badge.st-pending_approval{color:var(--warn)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin-bottom:12px}.stat{background:var(--panel2);border-radius:10px;padding:10px 12px;min-width:0}.stat-label{font-size:11px;color:var(--muted)}.stat-value{font-size:18px;font-weight:700;margin-top:2px;overflow:hidden;text-overflow:ellipsis}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:var(--muted);font-weight:600;padding:6px 8px;border-bottom:1px solid var(--border)}td{padding:7px 8px;border-bottom:1px solid #20262f}.rationale{color:var(--muted);max-width:420px}.bars{display:flex;flex-direction:column;gap:10px}.bar-row{display:grid;grid-template-columns:minmax(0,130px) 1fr 40px;align-items:center;gap:10px}.bar-label{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar{height:10px;background:var(--panel2);border-radius:999px;overflow:hidden}.bar-fill{height:100%;background:var(--accent)}.bar-fill.near{background:var(--warn)}.bar-val{text-align:right;font-variant-numeric:tabular-nums}.risk-form{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 16px}.risk-form .field.wide,.risk-form button{grid-column:1 / -1}.risk-form button{justify-self:start}@media (max-width: 760px){.risk-form{grid-template-columns:1fr}}select{background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:9px 11px;margin:4px 0 10px;min-width:200px}.ai-config{align-items:flex-end;margin-bottom:8px}.ai-config .field{margin:0}.save-ai{margin-bottom:10px}h3.sub{font-size:13px;margin:6px 0 8px;font-weight:600}.concl{margin:4px 0 12px;padding-left:18px}.concl li{margin-bottom:4px}.suggest{background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin-bottom:8px}.suggest-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:4px}.suggest-head code{background:var(--bg);padding:2px 6px;border-radius:6px;font-size:12px}.suggest-head button{margin-left:auto;padding:6px 10px;font-size:12px}.badge.act-buy{background:#3fb95026;color:var(--pos);border-color:var(--pos)}.badge.act-sell{background:#f8514926;color:var(--neg);border-color:var(--neg)}.badge.act-hold{color:var(--muted)}.badge.ev{color:var(--accent);font-weight:600}.kpibar{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:18px}.kpi{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:12px 14px;min-width:0}.kpi-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.kpi-value{font-size:20px;font-weight:700;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.accent{color:var(--accent)}@media (max-width: 760px){.kpibar{grid-template-columns:repeat(3,1fr)}}@media (max-width: 460px){.kpibar{grid-template-columns:repeat(2,1fr)}}.section-head{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 2px 12px;padding-bottom:6px;border-bottom:1px solid var(--border)}.dashgrid{display:block}.dash-section{margin-bottom:20px}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-auto-rows:8px;gap:14px;align-items:start}.tiles>.cell{min-width:0}.tiles>.cell.full{grid-column:1 / -1}.tiles>.cell>.card{margin:0}.regime-verdict{background:var(--panel2);border:1px solid var(--border);border-radius:10px;padding:12px 14px}.hero{margin-bottom:14px}.hero .hero-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.hero-value{font-size:52px;font-weight:650;line-height:1.05;margin:10px 0 4px;letter-spacing:-.02em}.hero-sub{font-size:13px;margin-bottom:14px}.hero-delta{font-weight:650}@media (max-width: 640px){.hero-value{font-size:38px}}.meters{display:flex;flex-direction:column;gap:12px}.meter-row{display:grid;grid-template-columns:minmax(0,150px) 1fr auto;align-items:center;gap:12px}.meter-label{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meter-track{height:8px;border-radius:999px;background:var(--seq-700);overflow:hidden}.meter-fill{height:100%;border-radius:999px;background:var(--seq-400);transition:width .3s ease}.meter-fill.warn{background:var(--st-warn)}.meter-fill.crit{background:var(--st-crit)}.meter-val{font-size:12px;font-variant-numeric:tabular-nums;min-width:44px;text-align:right;color:var(--muted)}.meter-val.warn{color:var(--st-warn)}.meter-val.crit{color:var(--st-crit)}.drift-row{display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:10px;margin-bottom:7px}.drift-sym{font-size:12px;font-weight:600}.drift-track{position:relative;height:16px}.drift-zero{position:absolute;top:-1px;bottom:-1px;width:1px;background:var(--baseline);left:50%}.drift-bar{position:absolute;top:3px;height:10px;border-radius:3px}.drift-bar.over{background:var(--s8)}.drift-bar.under{background:var(--s1)}.drift-bar.inband{background:#3a4250}.drift-bar.gain{background:var(--st-good)}.drift-bar.loss{background:var(--st-crit)}.pnl-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:12px;padding-top:10px;border-top:1px solid var(--border);font-size:14px}.side-buy{color:#79b0f2}.side-sell{color:#d9a066}.drift-val{font-size:12px;font-variant-numeric:tabular-nums;min-width:92px;text-align:right;color:var(--muted)}.drift-head{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-bottom:8px}.money-banner{border-radius:12px;padding:14px 16px;border:1px solid}.money-banner.virtual{background:#3987e51a;border-color:#3987e5}.money-banner.real{background:#d03b3b24;border-color:var(--st-crit)}.money-title{font-size:19px;font-weight:700;letter-spacing:.01em}.money-banner.virtual .money-title{color:#79b0f2}.money-banner.real .money-title{color:#ef8a8a}.money-detail{font-size:13px;margin-top:3px}.money-hint{font-size:11px;color:var(--muted);margin-top:6px}.mode-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.mode-choice{display:flex;flex-direction:column;gap:4px;text-align:left;background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:12px 14px;font-weight:400;cursor:pointer}.mode-choice:hover:not(:disabled){border-color:#3d4756}.mode-choice.active{border-color:var(--accent);background:#4f8cff1a}.mode-choice:disabled{opacity:.5;cursor:not-allowed}.mode-title{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px}.mode-desc{font-size:12px;color:var(--muted);line-height:1.35}.passkey-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #20262f;font-size:13px}.passkey-row:last-child{border-bottom:0}.passkey-row .grow{flex:1;min-width:0}.btn-passkey{width:100%;margin-top:8px;background:var(--panel2);color:var(--text);border:1px solid var(--border)}.btn-passkey:hover:not(:disabled){border-color:var(--accent)}.login-sep{display:flex;align-items:center;gap:10px;margin:14px 0 4px;color:var(--muted);font-size:11px}.login-sep:before,.login-sep:after{content:"";flex:1;height:1px;background:var(--border)}.viz-legend{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:10px;font-size:11px;color:var(--muted)}.viz-legend span{display:inline-flex;align-items:center;gap:6px}.viz-legend i{width:10px;height:10px;border-radius:2px;display:inline-block;flex:none}.tf-toggle{display:flex;gap:4px;background:var(--panel2);border:1px solid var(--border);border-radius:9px;padding:3px}.tf-btn{background:transparent;color:var(--muted);border:0;padding:5px 12px;font-size:12px;font-weight:700;border-radius:6px;cursor:pointer}.tf-btn:hover{color:var(--text)}.tf-btn.active{background:var(--accent);color:#fff}.chart-legend{display:flex;flex-wrap:wrap;gap:10px 14px;margin-top:8px;font-size:11px;color:#8b95a5}.chart-legend span{display:inline-flex;align-items:center;gap:5px}.chart-legend i{width:10px;height:10px;border-radius:2px;display:inline-block;flex:none}@media (max-width: 760px){.tiles{grid-template-columns:1fr}}@media (max-width: 640px){.app{padding:10px}.topbar{flex-wrap:wrap;gap:8px;padding:8px 2px 12px}.brandbox{flex:1 1 100%;gap:6px}.brand{flex:1 1 100%;font-size:16px}.badges{flex-wrap:wrap;justify-content:flex-start;gap:6px;width:100%}.badges button{padding:6px 10px;font-size:12px;border-radius:7px}.badge{font-size:10px;padding:2px 7px}.dashgrid .card{font-size:13px;overflow-x:auto}.dashgrid table{font-size:12px}.dashgrid .rationale{max-width:none}}.adminview{max-width:560px}.adminview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.adminview-head h1{margin:0}.admin-card{max-width:480px}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:16px}.modal{width:360px}
