:root{font-family:Inter,"Segoe UI",Tahoma,sans-serif;color:#e7edf7;background:#07101d;--card:#0e1a2b;--line:#1d314b;--muted:#8fa3bd;--green:#36d399;--red:#fb7185;--amber:#fbbf24}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 70% -20%,#173154,#07101d 42%);min-height:100vh}header{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid var(--line);background:#091421cc;backdrop-filter:blur(12px);position:sticky;top:0;z-index:3}header div{display:flex;gap:12px;align-items:baseline}header strong{font-size:20px}small,.label,p,footer{color:var(--muted)}#mode{font-size:12px;border:1px solid #36506f;padding:7px 10px;border-radius:999px}main{max-width:1500px;margin:auto;padding:18px}.card{background:linear-gradient(150deg,#101f33dd,#0b1727ee);border:1px solid var(--line);border-radius:14px;box-shadow:0 16px 40px #0004}.decision{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:14px 18px;margin-bottom:14px}.decision div{display:flex;flex-direction:column;gap:4px}.decision strong{font-size:18px}.workspace{display:grid;grid-template-columns:minmax(0,3fr) minmax(260px,1fr);gap:14px}.chart{padding:12px;min-height:590px}.section-title{display:flex;align-items:center;justify-content:space-between;padding:0 6px}.section-title h1{margin:4px 0 10px}.section-title span{font-size:12px;color:var(--green)}#chart{height:520px;direction:ltr}aside{display:grid;gap:14px;align-content:start}aside .card,.lower .card{padding:16px}h2{font-size:15px;margin:0 0 13px;color:#bcd0e8}.strikes{display:grid;grid-template-columns:1fr 1fr;gap:8px}.strikes div{background:#081321;border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;flex-direction:column}.strikes span{font-size:12px;color:var(--muted)}.strikes b{font-size:22px;margin-top:3px}ul{margin:0;padding:0 18px 0 0;color:#c9d6e6}li{margin:7px 0}.source{display:flex;justify-content:space-between;border-bottom:1px solid #192b42;padding:7px 0}.ok{color:var(--green)}.warn{color:var(--amber)}.lower{display:grid;grid-template-columns:2fr 1fr;gap:14px;margin-top:14px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;text-align:right}th,td{padding:9px;border-bottom:1px solid #1a2d45;font-size:13px}th{color:var(--muted)}.alert{border-right:3px solid var(--amber);padding:9px;background:#081321;margin:7px 0;border-radius:6px}.empty{color:var(--muted);padding:12px 0}footer{text-align:center;padding:24px;font-size:12px}.SETUP_READY{color:var(--green)}.NO_TRADE,.DATA_STALE{color:var(--red)}.CAUTION{color:var(--amber)}@media(max-width:900px){header{padding:0 12px}header small{display:none}#mode{font-size:9px}.decision{grid-template-columns:1fr 1fr}.workspace,.lower{grid-template-columns:1fr}.chart{min-height:430px}#chart{height:370px}main{padding:10px}}
.view-tabs{display:flex;gap:8px;margin:14px 0}.tab{appearance:none;border:1px solid var(--line);background:#0b1727;color:var(--muted);padding:9px 15px;border-radius:9px;cursor:pointer}.tab.active{color:#fff;border-color:#3b82f6;background:#153052}.view-panel{display:none}.view-panel.active{display:grid}.tool-panel{padding:16px;min-height:360px}.tool-panel.active{display:block}.payoff-layout{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,3fr);gap:18px}.payoff-controls{display:grid;gap:10px;align-content:start}.payoff-controls label{display:grid;gap:5px;color:var(--muted);font-size:12px}.payoff-controls input,.payoff-controls select{width:100%;background:#081321;color:#e7edf7;border:1px solid var(--line);border-radius:8px;padding:9px}.payoff-summary{margin-top:10px;color:#c9d6e6;text-align:center}#payoffChart{width:100%;background:#081321;border:1px solid var(--line);border-radius:10px}@media(max-width:900px){.payoff-layout{grid-template-columns:1fr}.view-tabs{overflow:auto}.tab{white-space:nowrap}}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(430px,100%);padding:28px;display:grid;gap:16px}.login-card h1,.login-card p{margin:0}.login-card label{display:grid;gap:8px;color:var(--muted)}.login-card input{width:100%;padding:13px;border-radius:9px;border:1px solid var(--line);background:#07101d;color:#e7edf7;font:inherit;direction:ltr}.login-card button{padding:13px;border:0;border-radius:9px;background:#2563eb;color:white;font-weight:700;cursor:pointer}

.offline-banner{position:sticky;top:0;z-index:9;padding:10px 18px;text-align:center;background:#7f1d1d;color:#fff;font-weight:700;border-bottom:1px solid #fb7185}.offline-banner.recovered{background:#065f46;border-color:#36d399}
