:root{color:#dbe7f3;font-synthesis:none;background:#0a111b;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 70% -10%,#17283b 0,#0a111b 44rem);min-width:320px;margin:0}button,input,select{font:inherit}button{cursor:pointer;color:#0a111b;background:#9bd7c4;border:0;border-radius:8px;padding:10px 14px;font-weight:700}button:disabled{cursor:not-allowed;opacity:.45}input,select{color:#dbe7f3;background:#101c2a;border:1px solid #2a3c50;border-radius:7px;outline:none;width:100%;padding:10px 11px}input:focus,select:focus,button:focus-visible,a:focus-visible{outline-offset:2px;outline:2px solid #9bd7c4}a{color:#9bd7c4;text-decoration:none}a:hover{color:#d9f6ec}.app-shell{min-height:100vh;display:flex}.sidebar{background:#0b1623;border-right:1px solid #1d3043;flex-direction:column;width:236px;padding:25px 18px;display:flex;position:fixed;inset:0 auto 0 0}.brand{align-items:center;gap:11px;margin-bottom:40px;display:flex}.brand-mark{color:#081019;background:#9bd7c4;border-radius:10px;place-items:center;width:34px;height:34px;font-weight:900;display:grid}.brand strong,.brand small{display:block}.brand small{color:#7590a6;letter-spacing:.08em;text-transform:uppercase;margin-top:3px;font-size:11px}nav{gap:5px;display:grid}nav a,.nav-disabled{color:#8fa5b9;border-radius:7px;padding:11px 12px;font-size:14px}nav a.active{color:#e8fff7;background:#162c3a;box-shadow:inset 3px 0 #9bd7c4}.nav-disabled{color:#4c6376}.sidebar-note{color:#536d80;margin-top:auto;font-size:12px;line-height:1.7}.main-shell{width:calc(100% - 236px);min-width:0;margin-left:236px}.topbar{background:#0a111bb8;border-bottom:1px solid #1d3043;justify-content:space-between;align-items:center;gap:20px;min-width:0;min-height:88px;padding:20px 32px;display:flex}.topbar>*{min-width:0}.topbar h1{letter-spacing:-.02em;margin:4px 0 0;font-size:19px}.preview-banner{color:#ffe4a8;letter-spacing:.06em;background:#443416;border-bottom:1px solid #775e2c;justify-content:center;align-items:center;gap:14px;min-height:38px;padding:8px 20px;font-size:11px;display:flex}.preview-banner span{color:#d1bc8b;letter-spacing:0}.topbar-actions{align-items:center;gap:14px;display:flex}.logout-button{padding:7px 10px;font-size:11px}.eyebrow{color:#6d8da6;letter-spacing:.15em;text-transform:uppercase;font-size:10px;font-weight:800}.status-strip{color:#91a8ba;align-items:center;gap:8px;font-size:12px;display:flex}.status-dot{background:#d9a76c;border-radius:50%;width:8px;height:8px}.status-dot.ok{background:#9bd7c4}.divider{background:#2a3c50;width:1px;height:15px;margin:0 5px}.content,.page,.panel,.panel-heading,.field,.field>span,.health-card,.health-line{min-width:0}.content{max-width:1800px;margin:0 auto;padding:32px}.page-heading{justify-content:space-between;align-items:end;gap:24px;margin-bottom:22px;display:flex}.page-heading h2{letter-spacing:-.04em;margin:6px 0 5px;font-size:30px}.page-heading p{color:#7f98aa;margin:0;font-size:14px}.page-meta{text-align:right;color:#7891a4;font-size:12px;display:grid}.page-meta strong{color:#e8fff7;font-size:25px}.panel{background:#0f1b29db;border:1px solid #21364a;border-radius:12px;box-shadow:0 14px 40px #00000024}.filter-panel{margin-bottom:16px;padding:16px}.filter-row{grid-template-columns:1.4fr 1.5fr 1fr 1fr;gap:12px;display:grid}.filter-row.compact{grid-template-columns:repeat(4,minmax(90px,1fr));margin-top:12px}label{color:#9db2c2;letter-spacing:.03em;gap:6px;font-size:11px;font-weight:700;display:grid}.table-panel{overflow:hidden}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:1400px;font-size:12px}th,td{text-align:right;white-space:nowrap;border-bottom:1px solid #1c3043;padding:13px 10px}thead th{color:#6d8da6;letter-spacing:.08em;text-transform:uppercase;background:#111f2e;font-size:10px}tbody th{text-align:left}tbody tr:hover{background:#122536}.timestamp{color:#6b8599}.state-badge{color:#b5c7d5;letter-spacing:.03em;border:1px solid #35516a;border-radius:99px;align-items:center;gap:5px;padding:4px 7px;font-size:10px;font-weight:800;display:inline-flex}.state-badge span{color:#8ba3b7;font-size:8px}.state-reversal_alert{color:#e9b3a6;border-color:#754b51}.state-reversal_alert span{color:#e28d81}.state-squeeze{color:#e6d49b;border-color:#675b3d}.state-squeeze span{color:#d7ae52}.state-reversal_watch{color:#d0b8e4;border-color:#5a466d}.state-reversal_watch span{color:#b88bda}.stale-badge{color:#f1c781;letter-spacing:.05em;vertical-align:middle;background:#4d3921;border-radius:4px;margin-left:5px;padding:2px 4px;font-size:9px;font-weight:900;display:inline-block}.confidence{text-align:left;gap:3px;min-width:112px;display:grid}.confidence span{color:#678399;font-size:10px}.confidence strong{color:#dbe7f3;font-size:11px}.score-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px;display:grid}.score-card{background:linear-gradient(135deg,#152b3c,#101d2b);border:1px solid #29455a;border-radius:12px;min-height:135px;padding:18px}.score-card-label{color:#9fb4c5;font-size:12px;font-weight:700}.score-card-value{color:#e5fff5;letter-spacing:-.06em;margin-top:8px;font-size:38px;font-weight:800}.score-card p{color:#7690a4;margin:9px 0 0;font-size:12px}.detail-grid{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.panel-heading{border-bottom:1px solid #1e3448;justify-content:space-between;align-items:center;gap:14px;padding:18px 18px 14px;display:flex}.panel-heading h3{margin:0;font-size:16px}.panel-heading h4{color:#a8c1d1;text-transform:uppercase;letter-spacing:.1em;margin:12px 0 8px;font-size:12px}.subtle{color:#668298;font-size:11px}.metric-grid{grid-template-columns:repeat(4,1fr);gap:1px;padding:1px;display:grid}.metric{background:#101e2c;align-content:center;gap:8px;min-height:72px;padding:12px 15px;display:grid}.metric span{color:#7690a4;font-size:11px}.metric strong{color:#dce9f1;font-size:15px}.mapping-banner{color:#91a8b9;background:#121f2b;flex-wrap:wrap;align-items:center;gap:12px;padding:14px 18px;font-size:12px;display:flex}.mapping-banner strong{color:#e2c084}.ghost-button{color:#9bd7c4;background:0 0;border:1px solid #345465;padding:6px 9px;font-size:11px}.event-list{padding:10px 18px 16px}.event-list article{border-bottom:1px solid #1d3043;padding:12px 0}.event-list article:last-child{border-bottom:0}.event-list article div{justify-content:space-between;gap:10px;display:flex}.event-list article span{color:#70889b;font-size:11px}.event-list p{color:#90a7b8;margin:8px 0 0;font-size:12px}.score-explanations{gap:15px;padding:0 18px 18px;display:grid}.component-row{color:#8ea5b6;border-bottom:1px solid #1b2d40;grid-template-columns:1.4fr .75fr .75fr .75fr .75fr .75fr 1.5fr;align-items:center;gap:8px;padding:9px 0;font-size:11px;display:grid}.component-row strong{color:#bfe9da}.warning-text{color:#e1b86d}.strategy-sections{gap:16px;display:grid}.strategy-section{overflow:hidden}.field-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;padding:18px;display:grid}.field{color:#c3d4df;justify-content:space-between;align-items:start;gap:10px;min-height:66px;font-size:12px;display:flex}.field>span{flex:auto;gap:5px;display:grid}.field small{color:#668298;overflow-wrap:anywhere;max-width:230px;font-size:10px;font-weight:400;line-height:1.35}.input-with-unit{flex:0 0 130px;align-items:center;gap:5px;width:130px;display:flex}.input-with-unit input{min-width:0;padding:8px}.input-with-unit em{color:#648096;font-size:10px;font-style:normal}.weight-total{color:#9bd7c4;white-space:normal;text-align:right;font-size:11px;font-weight:800}.action-row{flex-wrap:wrap;gap:8px;display:flex}.secondary,.danger-outline{color:#9bd7c4;background:0 0;border:1px solid #42677a}.primary{color:#07131a;background:#9bd7c4}.danger-outline{color:#e6b29f;border-color:#754b51}.safety-banner{color:#cbb68d;background:#2d261b;border:1px solid #6a5533;border-left:4px solid #d2a85a;border-radius:9px;gap:6px;margin-bottom:16px;padding:15px 18px;font-size:12px;display:grid}.safety-banner strong{color:#f0c776;letter-spacing:.08em;font-size:11px}.safety-banner.muted{color:#8da4b4;background:#142430;border-color:#294354 #294354 #294354 #6e92a3}.alert{border-radius:8px;margin-bottom:16px;padding:12px 14px;font-size:12px}.alert.error{color:#efb3a7;background:#3b2329;border:1px solid #71434a}.alert.success{color:#b8e9d9;background:#17372f;border:1px solid #397360}.login-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:#0f1b29f0;border:1px solid #294157;border-radius:16px;width:min(420px,100%);padding:34px;box-shadow:0 24px 80px #00000059}.login-brand{margin-bottom:32px}.login-card h1{margin:8px 0;font-size:28px}.login-card>p{color:#7f98aa;margin:0 0 25px}.login-card form{gap:12px;display:grid}.login-card form .alert{margin:0}.login-card button{min-height:42px;margin-top:4px}.version-summary{grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;margin-bottom:16px;display:grid;overflow:hidden}.version-summary div{background:#101e2c;gap:7px;min-width:0;padding:14px;display:grid}.version-summary span{color:#6d879c;text-transform:uppercase;font-size:10px}.version-summary strong{color:#d5e5ef;text-overflow:ellipsis;overflow-wrap:anywhere;font-size:12px;overflow:hidden}.hash{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px!important}.strategy-toolbar{flex-wrap:wrap;align-items:end;gap:18px;min-width:0;margin-bottom:16px;padding:14px 18px;display:flex}.strategy-toolbar label{flex:260px;width:min(330px,100%)}.weight-summary{color:#7590a4;gap:5px;min-width:0;margin-right:auto;font-size:11px;display:grid}.weight-summary strong{color:#b8d9cd;overflow-wrap:anywhere}.diff-panel{margin-top:16px;overflow:hidden}.diff-list{padding:14px 18px}.diff-list div{color:#91a8b9;border-bottom:1px solid #1b2e40;grid-template-columns:1.5fr 1fr 25px 1fr;gap:10px;padding:10px 0;font-size:12px;display:grid}.diff-list code{color:#d4e6ee}.diff-list b{color:#9bd7c4}.publish-note{color:#bd9e82;gap:10px;margin-top:14px;font-size:12px;display:flex}.publish-note strong{color:#edc27e}.backtest-status{grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-bottom:16px;display:grid;overflow:hidden}.backtest-status>div{background:#101e2c;gap:7px;padding:14px;display:grid}.backtest-status span{color:#6d879c;text-transform:uppercase;font-size:10px}.backtest-status strong{color:#d5e5ef;overflow-wrap:anywhere;font-size:12px}.comparison-panel{margin-top:16px;overflow:hidden}.comparison-controls{flex-wrap:wrap;align-items:end;gap:14px;padding:16px 18px 4px;display:flex}.comparison-controls label{flex:260px}.comparison-controls button{flex:none}.comparison-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;padding:1px;display:grid}.comparison-summary div{background:#101e2c;gap:7px;padding:14px 18px;display:grid}.comparison-summary span{color:#6d879c;text-transform:uppercase;font-size:10px}.comparison-summary strong{color:#d5e5ef;font-size:13px}.health-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.health-card{overflow:hidden}.health-status{color:#bce6d7;background:#1a4138;border-radius:5px;padding:4px 7px;font-size:10px;font-weight:800}.health-status.degraded{color:#f0c982;background:#49381e}.health-status.failed{color:#efb2a4;background:#4a252d}.health-line{color:#7892a5;border-bottom:1px solid #1b3043;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);justify-content:space-between;align-items:start;gap:14px;padding:10px 18px;font-size:11px;display:grid}.health-line strong{color:#cbdbe5;text-align:right;word-break:break-word;overflow-wrap:anywhere}.empty-state{color:#708a9e;text-align:center;gap:6px;padding:28px;display:grid}.empty-state strong{color:#adc1ce}.empty-state span{overflow-wrap:anywhere;font-size:12px}.back-link{color:#7694a8;margin-bottom:16px;font-size:12px;display:block}.backtest-grid{grid-template-columns:minmax(0,1.6fr) minmax(300px,.9fr);gap:16px;margin-bottom:16px;display:grid}.backtest-form,.history-card{overflow:hidden}.backtest-form .field-grid{padding-bottom:8px}.form-footer{color:#7892a5;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px 18px;font-size:11px;display:flex}.form-footer strong{color:#c9eadf}.horizon-picker{color:#9db2c2;gap:7px;font-size:11px;font-weight:700;display:grid}.horizon-picker>div{flex-wrap:wrap;gap:5px;display:flex}.horizon-picker small{color:#668298;font-size:10px;font-weight:400}.coverage-list{padding:0 0 1px}.coverage-list .health-line{padding:10px 18px}.coverage-list .health-line strong{font-size:11px}.coverage-list small{color:#668298;font-weight:400}.coverage-note,.event-summary{color:#8ba4b4;border-top:1px solid #1b3043;padding:14px 18px;font-size:11px}.backtest-table{min-width:850px}.backtest-table tbody tr{cursor:pointer}.status-badge{color:#b9d5ca;letter-spacing:.03em;background:#18382f;border-radius:5px;padding:4px 7px;font-size:10px;font-weight:800;display:inline-flex}.status-queued,.status-running{color:#f0cf86;background:#41351e}.status-failed,.status-cancelled{color:#efb3a7;background:#42252d}.status-completed{color:#b9e4d7;background:#18382f}.warning-text{margin-top:6px;display:block}.table-link{color:#9bd7c4;text-align:left;background:0 0;padding:0;font-size:12px}.run-detail{margin-top:16px;overflow:hidden}.run-meta{grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;padding:1px;display:grid}.run-meta span{color:#6d879c;text-transform:uppercase;background:#101e2c;gap:7px;padding:13px 16px;font-size:10px;display:grid}.run-meta strong{color:#d5e5ef;overflow-wrap:anywhere;text-transform:none;font-size:11px}.coverage-warning{color:#cbb68d;background:#2d261b;border:1px solid #6a5533;border-left:4px solid #d2a85a;border-radius:8px;gap:6px;margin:14px 18px;padding:13px 15px;font-size:11px;display:grid}.coverage-warning strong,.coverage-warning b{color:#f0c776;letter-spacing:.05em;font-size:10px}.coverage-warning b{color:#e7b97b}@media (width<=1100px){.sidebar{width:190px}.main-shell{width:calc(100% - 190px);margin-left:190px}.content{padding:24px}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.version-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.backtest-grid{grid-template-columns:1fr}.run-meta{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.sidebar{width:176px;padding-left:14px;padding-right:14px}.main-shell{width:calc(100% - 176px);margin-left:176px}.content{padding:20px}.field-grid{grid-template-columns:1fr}.version-summary,.backtest-status{grid-template-columns:repeat(2,minmax(0,1fr))}.strategy-toolbar{align-items:stretch}.strategy-toolbar label{flex-basis:100%}.strategy-toolbar .weight-summary{flex:220px}.strategy-toolbar>button{flex:0 auto}.score-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid{grid-template-columns:1fr}.filter-row,.filter-row.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.form-footer{flex-direction:column;align-items:stretch}.form-footer button{width:100%}}@media (width<=720px){.app-shell{display:block}.sidebar{width:auto;min-height:auto;padding:14px 16px;position:static}.brand{margin-bottom:14px}.sidebar-note{display:none}nav{flex-wrap:wrap;gap:4px;display:flex;overflow:visible}nav a,.nav-disabled{flex:none;padding:9px 10px}.main-shell{width:100%;margin-left:0}.topbar{padding:16px}.topbar h1{font-size:16px}.status-strip{display:none}.content{padding:18px 14px 30px}.page-heading{display:block}.page-heading h2{font-size:25px}.page-meta{text-align:left;margin-top:14px}.filter-row,.filter-row.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.score-grid,.detail-grid,.health-grid{grid-template-columns:1fr}.score-card{min-height:112px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.field-grid{grid-template-columns:1fr}.field{min-height:auto}.version-summary,.backtest-status{grid-template-columns:repeat(2,minmax(0,1fr))}.comparison-summary{grid-template-columns:1fr}.strategy-toolbar{display:grid}.strategy-toolbar label{width:100%}.action-row{margin-top:16px}.action-row button{flex:1}.component-row{min-width:750px}.score-explanations{overflow-x:auto}.diff-list div{grid-template-columns:1fr;gap:4px}.publish-note{display:grid}.page-heading .confidence{margin-top:16px}.run-meta{grid-template-columns:1fr}.backtest-table{min-width:760px}}@media (width<=420px){.filter-row,.filter-row.compact,.version-summary{grid-template-columns:1fr}.action-row{grid-template-columns:1fr;display:grid}.strategy-toolbar>button{width:100%}.health-line{grid-template-columns:1fr;gap:5px}.health-line strong{text-align:left}}
