:root{color-scheme:light;--surface-1: #fcfcfb;--surface-2: #ffffff;--page: #f9f9f7;--text-primary: #0b0b0b;--text-secondary: #52514e;--text-muted: #898781;--gridline: #e1e0d9;--border: rgba(11, 11, 11, .1);--series-blue: #2a78d6;--series-orange: #eb6834;--series-violet: #4a3aa7;--status-good: #0ca30c;--status-warning: #fab219;--status-critical: #d03b3b}@media(prefers-color-scheme:dark){:root:where(:not([data-theme=light])){color-scheme:dark;--surface-1: #1a1a19;--surface-2: #212120;--page: #0d0d0d;--text-primary: #ffffff;--text-secondary: #c3c2b7;--text-muted: #898781;--gridline: #2c2c2a;--border: rgba(255, 255, 255, .1);--series-blue: #3987e5;--series-orange: #d95926;--series-violet: #9085e9;--status-good: #0ca30c;--status-warning: #fab219;--status-critical: #e66767}}:root[data-theme=dark]{color-scheme:dark;--surface-1: #1a1a19;--surface-2: #212120;--page: #0d0d0d;--text-primary: #ffffff;--text-secondary: #c3c2b7;--text-muted: #898781;--gridline: #2c2c2a;--border: rgba(255, 255, 255, .1);--series-blue: #3987e5;--series-orange: #d95926;--series-violet: #9085e9;--status-good: #0ca30c;--status-warning: #fab219;--status-critical: #e66767}*{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--text-primary);font-family:system-ui,-apple-system,Segoe UI,sans-serif}.app{max-width:1400px;margin:0 auto;padding:20px 24px 64px}.header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:16px}.logo{display:block;width:220px;max-width:100%;height:auto}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid var(--border)}.badge-paper{background:color-mix(in srgb,var(--status-warning) 16%,transparent);color:var(--text-primary)}.badge-live{background:color-mix(in srgb,var(--status-critical) 22%,transparent);color:var(--status-critical);border-color:var(--status-critical);animation:pulse-live 2s ease-in-out infinite}@keyframes pulse-live{0%,to{opacity:1}50%{opacity:.6}}.disclaimer{font-size:12px;color:var(--text-muted);max-width:620px}.layout{display:grid;grid-template-columns:2fr 1fr;gap:16px}@media(max-width:980px){.layout{grid-template-columns:1fr}}.card{background:var(--surface-1);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:16px}.card h2{font-size:14px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);margin:0 0 12px}.tab-bar{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--gridline)}.tab-btn{padding:8px 16px;border:none;background:none;color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.tab-btn:hover{color:var(--text-primary)}.tab-btn.active{color:var(--series-blue);border-bottom-color:var(--series-blue)}.symbol-row{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;align-items:center}.symbol-btn{padding:8px 14px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-primary);font-size:13px;cursor:pointer}.symbol-btn.active{border-color:var(--series-blue);background:color-mix(in srgb,var(--series-blue) 14%,var(--surface-2));font-weight:600}.symbol-pill{display:inline-flex;align-items:center;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);overflow:hidden}.symbol-pill.active{border-color:var(--series-blue);background:color-mix(in srgb,var(--series-blue) 14%,var(--surface-2))}.symbol-pill.active .symbol-btn-label{font-weight:600}.symbol-btn-label{padding:8px 10px 8px 14px;border:none;background:none;color:var(--text-primary);font-size:13px;cursor:pointer}.symbol-remove{padding:8px 10px 8px 4px;border:none;background:none;color:var(--text-muted);font-size:15px;line-height:1;cursor:pointer}.symbol-remove:hover{color:var(--status-critical)}.symbol-remove:disabled{opacity:.5;cursor:not-allowed}.add-symbol-form{display:inline-flex;gap:6px}.add-symbol-form input{padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-primary);font-size:13px;width:160px}.add-symbol-form button:disabled{opacity:.5;cursor:not-allowed}.price-line{font-size:13px;color:var(--text-secondary);margin-left:auto}.chart-container{width:100%}.mini-chart{width:100%;height:120px;margin-top:8px}.signal-card{text-align:center}.rec-pill{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:999px;font-size:22px;font-weight:700;margin-bottom:8px}.rec-BUY{background:color-mix(in srgb,var(--status-good) 18%,transparent);color:var(--status-good)}.rec-SELL{background:color-mix(in srgb,var(--status-critical) 18%,transparent);color:var(--status-critical)}.rec-HOLD{background:color-mix(in srgb,var(--status-warning) 20%,transparent);color:#92660a}:root[data-theme=dark] .rec-HOLD{color:var(--status-warning)}@media(prefers-color-scheme:dark){:root:where(:not([data-theme=light])) .rec-HOLD{color:var(--status-warning)}}.confidence{font-size:13px;color:var(--text-secondary);margin-bottom:12px}.contributions{text-align:left;font-size:12px;border-top:1px solid var(--gridline);padding-top:10px}.contribution-row{display:flex;justify-content:space-between;gap:8px;padding:4px 0;color:var(--text-secondary)}.contribution-row .score{font-variant-numeric:tabular-nums;min-width:42px;text-align:right;font-weight:600}.score-pos{color:var(--status-good)}.score-neg{color:var(--status-critical)}.score-neu{color:var(--text-muted)}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.stat-tile{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:10px 12px}.stat-tile .label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.stat-tile .value{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;margin-top:2px}.pnl-good{color:var(--status-good)}.pnl-bad{color:var(--status-critical)}.trade-actions{display:flex;gap:8px;margin-top:12px}button.action{flex:1;padding:10px;border-radius:8px;border:none;font-weight:700;font-size:13px;cursor:pointer;color:#fff}button.buy{background:var(--status-good)}button.sell{background:var(--status-critical)}button.action:disabled{opacity:.5;cursor:not-allowed}.auto-toggle{display:flex;align-items:center;justify-content:space-between;margin-top:12px;font-size:13px}.switch{position:relative;width:40px;height:22px;border-radius:999px;background:var(--gridline);border:none;cursor:pointer}.switch.on{background:var(--status-good)}.switch .knob{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .15s ease}.switch.on .knob{transform:translate(18px)}.auto-settings{text-align:left;margin-top:12px;padding-top:12px;border-top:1px solid var(--gridline);display:flex;flex-direction:column;gap:10px}.auto-settings-disabled{opacity:.5}.auto-setting-row{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-secondary)}.auto-setting-row span:first-child{display:flex;justify-content:space-between}.auto-setting-value{font-variant-numeric:tabular-nums;font-weight:600;color:var(--text-primary)}.auto-setting-row input[type=range]{width:100%;accent-color:var(--series-blue)}.auto-setting-checkbox{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}.auto-setting-hint{font-size:11px;color:var(--text-muted);line-height:1.4}table.trades{width:100%;border-collapse:collapse;font-size:12px}table.trades th{text-align:left;color:var(--text-muted);font-weight:600;padding:6px 8px;border-bottom:1px solid var(--gridline)}table.trades td{padding:6px 8px;border-bottom:1px solid var(--gridline);font-variant-numeric:tabular-nums;color:var(--text-secondary)}.side-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700}.side-BUY{background:color-mix(in srgb,var(--status-good) 18%,transparent);color:var(--status-good)}.side-SELL{background:color-mix(in srgb,var(--status-critical) 18%,transparent);color:var(--status-critical)}.legend{display:flex;gap:14px;font-size:12px;color:var(--text-secondary);margin-bottom:6px}.legend-item{display:flex;align-items:center;gap:6px}.legend-swatch{width:10px;height:10px;border-radius:2px}.backtest-controls{display:flex;gap:20px;align-items:flex-end;flex-wrap:wrap}.backtest-field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--text-secondary)}.backtest-field select{padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-primary);font-size:13px;min-width:140px}.period-btn-row{display:flex;gap:6px}.backtest-row:hover td{background:var(--surface-2)}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:360px;display:flex;flex-direction:column;gap:12px}.login-logo{width:180px;margin:0 auto 4px}.login-title{font-size:18px;margin:0;text-align:center}.login-hint{font-size:12px;color:var(--text-muted);margin:0}.login-field{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-secondary)}.login-field input{padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-primary);font-size:14px}.login-error{color:var(--status-critical);font-size:13px}.login-submit{margin-top:4px;font-weight:600}.trade-history-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:12px}.header-actions{display:flex;align-items:center;gap:10px}.header-username{font-size:12px;color:var(--text-muted)}.empty-state{color:var(--text-muted);font-size:13px;padding:24px 0;text-align:center}.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width:640px){.app{padding:12px 12px 48px}.header{gap:10px}.logo{width:150px}.disclaimer{font-size:11px}.header-actions{flex-wrap:wrap}.card{padding:12px;margin-bottom:12px}.tab-bar{gap:0}.tab-btn{flex:1;padding:8px 6px;font-size:12px;text-align:center}.symbol-row{gap:6px}.add-symbol-form{flex:1 1 100%}.add-symbol-form input{flex:1;width:auto;min-width:0}.stat-grid{grid-template-columns:1fr 1fr;gap:8px}.stat-tile .value{font-size:16px}.rec-pill{font-size:18px;padding:8px 16px}.backtest-controls{gap:12px}.period-btn-row{flex-wrap:wrap}table.trades{font-size:11px}table.trades th,table.trades td{padding:5px 6px}.table-scroll table.trades{width:auto;min-width:100%}.table-scroll table.trades th,.table-scroll table.trades td{white-space:nowrap}}
