:root{--background:#05070c;--surface:#0b111c;--surface-strong:#111827;--surface-soft:#151f30;--border:rgba(148,163,184,0.18);--border-strong:rgba(148,163,184,0.3);--text:#e5edf7;--muted:#8b9bb1;--accent:#22c55e;--accent-strong:#16a34a;--danger:#f43f5e;--warning:#f59e0b;--cyan:#38bdf8}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--background);color:var(--text);font-family:Arial,Helvetica,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.64}.terminal-shell{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh;background:radial-gradient(circle at top right,rgba(34,197,94,.08),transparent 30%),linear-gradient(180deg,#070a12,#05070c)}.sidebar{border-right:1px solid var(--border);background:rgba(8,13,23,.92);padding:24px 18px}.brand{display:flex;align-items:center;gap:10px;color:#f8fafc;font-size:18px;font-weight:800;margin-bottom:30px}.brand svg{color:var(--accent)}.nav-list{display:grid;grid-gap:8px;gap:8px}.nav-item{display:flex;align-items:center;gap:10px;border:1px solid transparent;border-radius:8px;color:var(--muted);padding:11px 12px;text-decoration:none}.nav-item.active{background:rgba(34,197,94,.1);border-color:rgba(34,197,94,.2);color:#d7ffe5}.main{min-width:0;padding:26px}.topbar{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:22px}.topbar h1{color:#f8fafc;font-size:30px;line-height:1.1;margin:5px 0 0}.eyebrow{color:var(--cyan);display:inline-flex;font-size:12px;font-weight:800;text-transform:uppercase}.toolbar{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;align-items:center}.input,.select{height:42px;border:1px solid var(--border);border-radius:8px;background:#0a101b;color:var(--text);padding:0 12px;outline:none}.input:focus,.select:focus{border-color:rgba(56,189,248,.7)}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;border:1px solid rgba(34,197,94,.58);border-radius:8px;background:linear-gradient(180deg,#22c55e,#15803d);color:#03140a;padding:0 15px;font-weight:800}.segmented-control{display:grid;grid-template-columns:repeat(5,minmax(42px,1fr));height:42px;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#0a101b}.segmented-control button{min-width:42px;border:0;border-right:1px solid var(--border);background:transparent;color:var(--muted);font-size:13px;font-weight:800;padding:0 12px}.segmented-control button:last-child{border-right:0}.segmented-control button.active{background:rgba(56,189,248,.14);color:#e0f7ff}.chart-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;grid-gap:18px;gap:18px;align-items:start}.data-status{display:flex;flex-wrap:wrap;gap:10px;align-items:center;border:1px solid var(--border);border-radius:8px;background:rgba(11,17,28,.74);color:var(--muted);margin-bottom:14px;padding:10px 12px;font-size:12px;font-weight:800}.data-status:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--warning)}.data-status.live:before{background:var(--accent)}.data-status.mock:before{background:var(--warning)}.chart-panel,.login-panel,.signal-card{border:1px solid var(--border);border-radius:8px;background:rgba(11,17,28,.94);box-shadow:0 22px 60px rgba(0,0,0,.32)}.chart-panel{min-width:0;overflow:hidden}.chart-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:1px solid var(--border);padding:18px 18px 14px}.chart-header h2{color:#f8fafc;font-size:22px;margin:4px 0 0}.chart-meta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.badge,.chart-meta span,.structure-toggle{border:1px solid var(--border);border-radius:999px;background:rgba(15,23,42,.82);color:var(--muted);padding:6px 10px;font-size:12px;font-weight:800}.structure-toggle{cursor:pointer}.structure-toggle.active{border-color:rgba(56,189,248,.55);background:rgba(56,189,248,.12);color:#7dd3fc}.chart-canvas{position:relative;height:560px;min-width:0;overflow:hidden}.chart-host{position:absolute;inset:0;z-index:1}.zone-layer{position:absolute;inset:0 72px 0 0;z-index:2;pointer-events:none;overflow:hidden}.price-zone{position:absolute;left:0;right:0;min-height:2px;border-block:1px solid rgba(148,163,184,.2);background:rgba(148,163,184,.06)}.price-zone.support{border-color:rgba(34,197,94,.3);background:rgba(34,197,94,.08)}.price-zone.resistance{border-color:rgba(244,63,94,.3);background:rgba(244,63,94,.08)}.price-zone.broken{border-style:dashed;opacity:.48}.price-zone.retested{border-color:rgba(56,189,248,.52);background:rgba(56,189,248,.09);opacity:.8}.price-zone span{position:absolute;top:1px;right:5px;color:rgba(226,232,240,.66);font-size:9px;font-weight:800}.chart-empty-state{position:absolute;inset:0;z-index:2;display:grid;place-content:center;grid-gap:8px;gap:8px;padding:28px;color:var(--muted);text-align:center;pointer-events:none}.chart-empty-state strong{color:#f8fafc;font-size:17px}.chart-empty-state span{max-width:420px;font-size:13px;line-height:1.45}.chart-warning{border-bottom:1px solid rgba(245,158,11,.24);background:rgba(245,158,11,.08);color:#fcd34d;padding:10px 18px;font-size:12px;font-weight:800}.legend{display:flex;flex-wrap:wrap;gap:14px;border-top:1px solid var(--border);padding:12px 18px 16px;color:var(--muted);font-size:12px;font-weight:700}.legend span{display:inline-flex;align-items:center;gap:7px}.legend-dot{width:9px;height:9px;border-radius:50%}.legend-dot.ema20{background:#38bdf8}.legend-dot.ema50{background:#f59e0b}.legend-dot.ema200{background:#a78bfa}.legend-dot.signal{background:#22c55e}.legend-dot.structure{background:linear-gradient(135deg,#38bdf8 50%,#f97316 0)}.signal-sidebar{display:grid;grid-gap:14px;gap:14px}.signal-card{padding:18px}.signal-card h2{color:#f8fafc;font-size:15px;margin:0 0 14px}.multi-timeframe-view{display:grid;grid-gap:10px;gap:10px}.timeframe-state{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:4px 10px;gap:4px 10px;border:1px solid var(--border);border-radius:9px;background:#0a101b;padding:10px}.timeframe-state>div{display:flex;align-items:baseline;gap:7px}.timeframe-overall strong,.timeframe-state strong{color:#f8fafc;text-transform:uppercase}.multi-timeframe-view p,.timeframe-overall small,.timeframe-state small,.timeframe-state>div span{color:var(--muted);font-size:11px}.timeframe-state small{grid-column:1/-1}.timeframe-direction{font-size:11px;font-weight:900;text-transform:capitalize}.timeframe-direction.bullish{color:#86efac}.timeframe-direction.bearish{color:#fda4af}.timeframe-direction.insufficient_data,.timeframe-direction.neutral{color:#fcd34d}.timeframe-overall{display:grid;grid-template-columns:1fr auto;grid-gap:4px 10px;gap:4px 10px;border-left:3px solid #f59e0b;border-radius:6px;background:rgba(245,158,11,.08);padding:10px}.timeframe-overall.aligned{border-left-color:#22c55e;background:rgba(34,197,94,.08)}.timeframe-overall.conflicting{border-left-color:#f43f5e;background:rgba(244,63,94,.08)}.timeframe-overall small{grid-column:1/-1;text-transform:capitalize}.multi-timeframe-view p{line-height:1.45;margin:0}.score-topline{display:flex;justify-content:space-between;align-items:center;gap:12px}.direction-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:900}.direction-pill.buy{background:rgba(34,197,94,.14);color:#86efac}.direction-pill.sell{background:rgba(244,63,94,.16);color:#fda4af}.direction-pill.wait{background:rgba(245,158,11,.16);color:#fcd34d}.score-readout{display:flex;align-items:baseline;gap:6px;margin-top:16px}.score-readout strong{color:#f8fafc;font-size:64px;line-height:1}.score-readout span{color:var(--muted);font-size:18px;font-weight:800}.score-bar{height:9px;border-radius:999px;background:#1f2937;overflow:hidden;margin:16px 0}.score-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#22c55e,#38bdf8)}.signal-pair-row{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px}.signal-pair-row span{border:1px solid var(--border);border-radius:8px;background:#0a101b;color:var(--text);min-width:0;padding:10px 8px;text-align:center;font-size:12px;font-weight:800}.reason-list{display:grid;grid-gap:11px;gap:11px}.reason-item{display:grid;grid-template-columns:18px minmax(0,1fr);grid-gap:10px;gap:10px;align-items:start;color:#d8e3f2;font-size:13px;line-height:1.45}.reason-item svg{color:var(--accent);margin-top:1px}.reason-item.failed svg{color:var(--warning)}.login-wrap{display:grid;place-items:center;min-height:100vh;padding:24px}.login-panel{width:min(420px,100%);padding:18px}.login-panel form{display:grid;grid-gap:12px;gap:12px}.backtest-grid{display:grid;grid-template-columns:320px minmax(0,1fr);grid-gap:18px;gap:18px;align-items:start}.control-panel,.metric-card,.results-panel,.table-panel{border:1px solid var(--border);border-radius:8px;background:rgba(11,17,28,.94)}.control-panel{display:grid;grid-gap:14px;gap:14px;padding:18px}.control-panel label{display:grid;grid-gap:7px;gap:7px;color:var(--muted);font-size:12px;font-weight:800}.control-panel .input,.control-panel .select{width:100%}.results-panel{min-width:0;padding:18px}.backtest-results{display:grid;grid-gap:16px;gap:16px}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.metric-card{padding:16px}.metric-card span{display:block;color:var(--muted);font-size:12px;font-weight:800;margin-bottom:8px}.metric-card strong{color:#f8fafc;font-size:28px;line-height:1}.table-panel{padding:16px}.table-panel h2{color:#f8fafc;font-size:15px;margin:0 0 12px}.session-grid,.trade-table{display:grid;grid-gap:8px;gap:8px}.session-row,.trade-row{display:grid;grid-template-columns:minmax(0,1fr) 80px 100px;grid-gap:10px;gap:10px;align-items:center;border:1px solid var(--border);border-radius:8px;background:#0a101b;padding:10px 12px;color:#d8e3f2;font-size:13px;font-weight:800}.session-row em,.trade-row em{color:var(--muted);font-style:normal;text-align:right}.session-row strong,.trade-row strong{text-align:right}.positive{color:#86efac}.negative{color:#fda4af}@media (max-width:1120px){.terminal-shell{grid-template-columns:1fr}.sidebar{display:none}.chart-layout{grid-template-columns:1fr}.signal-sidebar{grid-template-columns:repeat(3,minmax(0,1fr))}.backtest-grid{grid-template-columns:1fr}}@media (max-width:760px){.main{padding:16px}.chart-header,.topbar{flex-direction:column;align-items:stretch}.toolbar{justify-content:stretch}.button,.segmented-control,.select{width:100%}.chart-canvas{height:430px}.metric-grid,.session-row,.signal-sidebar,.trade-row{grid-template-columns:1fr}.session-row em,.session-row strong,.trade-row em,.trade-row strong{text-align:left}.score-readout strong{font-size:52px}}