:root{--bg: #090c11;--bg-elevated: #0d1119;--bg-panel: #11151f;--bg-panel-alt: #151a26;--bg-inset: #0a0d13;--border: #1e2531;--border-strong: #2a3341;--text: #e9ecf1;--text-dim: #8891a1;--text-faint: #565f6f;--green: #2ed88b;--green-dim: rgba(46, 216, 139, .12);--red: #ff5c6c;--red-dim: rgba(255, 92, 108, .12);--yellow: #f2b84b;--yellow-dim: rgba(242, 184, 75, .12);--blue: #4d9fff;--blue-dim: rgba(77, 159, 255, .12);--violet: #8b8ff0;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-panel: 0 1px 2px rgba(0, 0, 0, .5), 0 0 0 1px rgba(255, 255, 255, .015) inset;--shadow-raised: 0 8px 24px rgba(0, 0, 0, .35), 0 0 0 1px rgba(255, 255, 255, .02) inset;--font-sans: "Inter", "Segoe UI", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, "Roboto Mono", monospace;--transition-fast: .12s cubic-bezier(.2, .6, .3, 1);--transition-base: .2s cubic-bezier(.2, .6, .3, 1);color-scheme:dark;font-family:var(--font-sans);color:var(--text);background-color:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(ellipse 1200px 600px at 50% -10%,rgba(77,159,255,.06),transparent),var(--bg);min-height:100vh}::selection{background:var(--blue-dim);color:var(--text)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}button{font-family:inherit}.tabular{font-variant-numeric:tabular-nums}.app-nav{display:flex;gap:6px;padding:10px clamp(12px,3vw,24px);max-width:1600px;margin:0 auto;position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bg-elevated) 88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}.app-nav button{background:transparent;border:1px solid transparent;color:var(--text-dim);border-radius:var(--radius-sm);padding:7px 14px;font-size:12.5px;font-weight:600;letter-spacing:.2px;cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast)}.app-nav button:hover{color:var(--text);background:var(--bg-panel-alt)}.app-nav button.active{background:var(--blue-dim);color:var(--blue);border-color:color-mix(in srgb,var(--blue) 35%,transparent)}.config-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.config-grid label{display:flex;flex-direction:column;gap:5px;font-size:11px;color:var(--text-dim);font-weight:500}.config-grid input,.config-grid select{background:var(--bg-inset);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);padding:8px 10px;font-size:12.5px;font-family:inherit;transition:border-color var(--transition-fast)}.config-grid input:focus,.config-grid select:focus{outline:none;border-color:var(--blue)}.run-backtest-btn{margin-top:14px;background:linear-gradient(180deg,color-mix(in srgb,var(--blue) 92%,white 8%),var(--blue));color:#041019;border:none;border-radius:var(--radius-sm);padding:10px 20px;font-weight:700;font-size:12.5px;letter-spacing:.2px;cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast)}.run-backtest-btn:hover:not(:disabled){box-shadow:0 4px 16px #4d9fff4d;transform:translateY(-1px)}.run-backtest-btn:disabled{opacity:.4;cursor:not-allowed;background:var(--bg-panel-alt);color:var(--text-faint)}.perf-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.perf-item{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--text-dim)}.perf-item span:last-child{color:var(--text);font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}.trade-filters{display:flex;gap:6px;margin-bottom:10px}.trade-table-wrap{overflow-x:auto}.trade-table{width:100%;border-collapse:collapse;font-size:11.5px;font-variant-numeric:tabular-nums}.trade-table th{text-align:left;color:var(--text-faint);padding:8px 10px;border-bottom:1px solid var(--border);text-transform:uppercase;font-size:10px;letter-spacing:.4px;font-weight:600;white-space:nowrap}.trade-table td{padding:8px 10px;border-bottom:1px solid var(--border);white-space:nowrap}.trade-table tbody tr{transition:background var(--transition-fast)}.trade-table tbody tr:hover{background:var(--bg-panel-alt)}.dashboard{display:flex;flex-direction:column;gap:14px;padding:clamp(12px,2.4vw,20px) clamp(12px,3vw,24px) 32px;max-width:1600px;margin:0 auto}.header{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;background:linear-gradient(135deg,var(--bg-panel),var(--bg-panel-alt));border:1px solid var(--border);border-radius:var(--radius-md);flex-wrap:wrap;gap:10px;box-shadow:var(--shadow-panel)}.header-title{font-weight:800;letter-spacing:.4px;font-size:15px;background:linear-gradient(90deg,var(--text),var(--text-dim));-webkit-background-clip:text;background-clip:text;color:transparent}.header-stats{display:flex;gap:clamp(10px,2vw,20px);flex-wrap:wrap;font-size:12px;color:var(--text-dim);align-items:center}.stat strong{font-weight:700;letter-spacing:.2px}.stat strong.up{color:var(--green)}.stat strong.connecting{color:var(--text-dim)}.stat strong.delayed{color:var(--yellow)}.stat strong.down{color:var(--red)}.market-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.overview-card{display:flex;flex-direction:column;gap:4px;text-align:left;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-md);padding:10px 12px;cursor:pointer;font-family:inherit;color:inherit;transition:border-color var(--transition-fast),background var(--transition-fast),transform var(--transition-fast)}.overview-card:hover{border-color:var(--border-strong);transform:translateY(-1px)}.overview-card.active{border-color:color-mix(in srgb,var(--blue) 50%,transparent);background:var(--blue-dim)}.overview-row{display:flex;justify-content:space-between;align-items:center;font-size:11px}.overview-symbol{font-weight:700;font-size:12px;letter-spacing:.2px}.overview-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.overview-dot.up{background:var(--green);box-shadow:0 0 6px color-mix(in srgb,var(--green) 70%,transparent);animation:pulse-dot 2.4s ease-in-out infinite}.overview-dot.down{background:var(--red)}.overview-price{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}.overview-spread{color:var(--text-faint);font-variant-numeric:tabular-nums}.overview-nochange{color:var(--text-faint);font-style:italic}.overview-unavailable{font-size:11px;color:var(--text-faint);padding:8px 0}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 16px;box-shadow:var(--shadow-panel)}.symbol-selector{display:flex;flex-direction:column;gap:6px;min-width:260px}.symbol-search{background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:7px 10px;font-size:12px;font-family:inherit}.symbol-search:focus{outline:none;border-color:var(--blue)}.symbol-list{display:flex;gap:6px;flex-wrap:wrap;max-height:60px;overflow-y:auto}.symbol-chip,.tf-chip{background:var(--bg-inset);border:1px solid var(--border);color:var(--text-dim);border-radius:var(--radius-sm);padding:5px 10px;font-size:11px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.symbol-chip:hover,.tf-chip:hover{border-color:var(--border-strong);color:var(--text)}.symbol-chip.active,.tf-chip.active{background:var(--blue);color:#04101f;border-color:var(--blue);font-weight:700}.symbol-chip.commodity{border-color:color-mix(in srgb,var(--yellow) 45%,var(--border))}.timeframe-selector{display:flex;gap:4px;flex-wrap:wrap}.current-symbol{margin-left:auto;text-align:right}.symbol-name{display:block;font-weight:700;font-size:14px;letter-spacing:.2px}.price{display:block;font-size:22px;font-weight:700;color:var(--blue);font-variant-numeric:tabular-nums}.main-grid{display:grid;grid-template-columns:1fr 340px;gap:14px;align-items:start}.chart-area{order:1}.side-panels{order:2;display:flex;flex-direction:column;gap:14px}.panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;box-shadow:var(--shadow-panel)}.panel-title{font-size:10.5px;letter-spacing:.6px;color:var(--text-faint);font-weight:700;margin-bottom:12px;text-transform:uppercase}.engine-list{display:flex;flex-direction:column;gap:9px}.engine-row{display:flex;justify-content:space-between;font-size:12px}.engine-row.final{font-weight:700;font-size:13px}.engine-row-toggle{width:100%;background:none;border:none;color:inherit;cursor:pointer;padding:3px 0;font-family:inherit}.engine-reasoning{margin:2px 0 6px 12px;padding:0;list-style:disc;font-size:11px;color:var(--text-dim)}.engine-signal.buy{color:var(--green)}.engine-signal.sell{color:var(--red)}.engine-signal.hold{color:var(--yellow)}.divider{border-top:1px solid var(--border);margin:10px 0}.confidence-line{margin-top:8px;font-size:12px;color:var(--text-dim)}.setup-signal{font-size:26px;font-weight:800;margin-bottom:12px;letter-spacing:.5px}.setup-signal.buy{color:var(--green)}.setup-signal.sell{color:var(--red)}.setup-signal.hold{color:var(--yellow)}.setup-strength{font-size:11px;color:var(--text-dim);margin-bottom:12px;text-transform:uppercase;letter-spacing:.3px}.mtf-list{display:flex;flex-direction:column;gap:5px}.mtf-row{display:flex;justify-content:space-between;font-size:11.5px}.mtf-recommendation{margin-top:12px;font-size:11px;color:var(--yellow);border-top:1px solid var(--border);padding-top:10px}.mtf-recommendation.aligned{color:var(--green)}.setup-rows{display:flex;flex-direction:column;gap:7px;font-size:12.5px}.setup-row{display:flex;justify-content:space-between;color:var(--text-dim)}.setup-row span:last-child{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}.up{color:var(--green)!important}.down{color:var(--red)!important}.setup-note{margin-top:12px;font-size:11px;color:var(--text-faint);font-style:italic;line-height:1.5}.pnl-strip{display:flex;justify-content:space-between;flex-wrap:wrap;gap:18px}.pnl-item{display:flex;flex-direction:column;gap:5px;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}.pnl-label{font-size:10px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.4px;font-weight:600}.spread{display:block;font-size:11px;color:var(--text-faint)}.stale-banner{text-align:center;font-size:12px;font-weight:500;color:var(--yellow);border:1px solid color-mix(in srgb,var(--yellow) 35%,transparent);border-radius:var(--radius-sm);padding:9px;background:var(--yellow-dim)}.loading-note,.error-note{font-size:12px;color:var(--text-dim);padding:24px 0;text-align:center}.error-note{color:var(--red)}.overlay-toggles{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:10px}.overlay-toggle{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:500;cursor:pointer;-webkit-user-select:none;user-select:none}.overlay-toggle input{accent-color:currentColor}.price-chart-canvas{width:100%;height:460px}.equity-curve-canvas{width:100%;height:240px}.indicator-panel{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.indicator-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:12px}.indicator-item{display:flex;flex-direction:column;gap:3px;font-size:10.5px;color:var(--text-faint)}.indicator-item span:last-child{color:var(--text);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.vol-high{color:var(--red)!important}.vol-low{color:var(--blue)!important}.vol-normal{color:var(--text)!important}.bias-bullish{color:var(--green)!important}.bias-bearish{color:var(--red)!important}.bias-neutral{color:var(--yellow)!important}.sr-levels{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px;font-size:11px}.sr-label{display:block;color:var(--text-faint);text-transform:uppercase;letter-spacing:.3px;margin-bottom:5px;font-weight:600}.sr-value{display:block;font-weight:600;font-variant-numeric:tabular-nums}.sr-empty{color:var(--text-faint);font-style:italic}.currency-strength .strength-list{display:flex;flex-direction:column;gap:7px}.strength-row{display:flex;align-items:center;gap:8px;font-size:11px}.strength-code{width:32px;font-weight:700}.strength-bar-track{flex:1;height:7px;background:var(--bg-inset);border-radius:4px;overflow:hidden}.strength-bar{height:100%;border-radius:4px;transition:width var(--transition-base)}.up-bar{background:linear-gradient(90deg,color-mix(in srgb,var(--green) 70%,transparent),var(--green))}.down-bar{background:linear-gradient(90deg,var(--red),color-mix(in srgb,var(--red) 70%,transparent))}.strength-summary{margin-top:12px;font-size:11px;color:var(--text-dim)}.alert-form{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}.alert-form select,.alert-form input{background:var(--bg-inset);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);padding:5px 8px;font-size:11px;font-family:inherit}.alert-form button{background:var(--blue);color:#04101f;border:none;border-radius:var(--radius-sm);padding:5px 12px;font-size:11px;font-weight:700;cursor:pointer}.alert-rules{display:flex;flex-direction:column;gap:5px;font-size:11px;margin-bottom:12px}.alert-rule-row{display:flex;justify-content:space-between;align-items:center}.alert-rule-row button{background:none;border:1px solid var(--border);color:var(--text-dim);border-radius:var(--radius-sm);padding:1px 7px;font-size:10px;cursor:pointer;margin-left:4px}.alert-notifications{display:flex;flex-direction:column;gap:5px;border-top:1px solid var(--border);padding-top:10px}.alert-notification{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--yellow);background:var(--yellow-dim);border-radius:var(--radius-sm);padding:5px 9px}.alert-notification button{background:none;border:none;color:var(--text-dim);cursor:pointer}.calendar-list{display:flex;flex-direction:column;gap:7px}.calendar-row{display:grid;grid-template-columns:50px 40px 1fr 40px;gap:6px;font-size:11px;align-items:center}.impact-high{color:var(--red);font-weight:700}.impact-medium{color:var(--yellow)}.impact-low{color:var(--text-faint)}.calendar-currency{font-weight:600}.calendar-countdown{color:var(--text-faint);text-align:right}.journal-list{display:flex;flex-direction:column;gap:12px;margin-top:14px}.journal-entry{padding:14px}.journal-header{display:flex;gap:12px;align-items:center;margin-bottom:8px;font-weight:700;font-size:13px}.journal-reason{font-size:11px;color:var(--text-dim);margin-top:8px;font-style:italic}.journal-notes{width:100%;margin-top:10px;background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:9px;font-size:12px;font-family:inherit;min-height:50px;resize:vertical}.journal-notes:focus{outline:none;border-color:var(--blue)}@media(max-width:1024px){.main-grid{grid-template-columns:1fr}.side-panels{display:grid;grid-template-columns:1fr 1fr;gap:14px}}@media(max-width:768px){.config-grid,.perf-grid{grid-template-columns:1fr 1fr}.side-panels{grid-template-columns:1fr}.app-nav{display:none}.dashboard{padding-bottom:84px}.header{padding:12px 14px}.header-stats{font-size:11px;gap:10px}}@media(max-width:640px){.dashboard{gap:10px;padding-left:10px;padding-right:10px}.market-overview{grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:6px}.overview-price{font-size:14px}.toolbar{flex-direction:column;align-items:stretch}.current-symbol{margin-left:0;text-align:left;order:-1;padding-bottom:8px;border-bottom:1px solid var(--border)}.symbol-selector{min-width:0}.main-grid{display:flex;flex-direction:column;gap:10px}.side-panels{order:1}.chart-area{order:2}.price-chart-canvas{height:320px}.panel{padding:13px}.config-grid{grid-template-columns:1fr}.perf-grid{grid-template-columns:1fr 1fr;gap:10px}.pnl-strip{gap:12px}}.bottom-nav{display:none}@media(max-width:768px){.bottom-nav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;background:color-mix(in srgb,var(--bg-elevated) 94%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--border);padding:6px clamp(6px,2vw,16px) calc(6px + env(safe-area-inset-bottom));gap:2px}.bottom-nav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;background:none;border:none;color:var(--text-faint);font-size:10px;font-weight:600;letter-spacing:.2px;padding:6px 2px;border-radius:var(--radius-sm);cursor:pointer;transition:color var(--transition-fast)}.bottom-nav button .nav-dot{width:4px;height:4px;border-radius:50%;background:transparent;transition:background var(--transition-fast)}.bottom-nav button.active{color:var(--blue)}.bottom-nav button.active .nav-dot{background:var(--blue)}}@media(min-width:1920px){.dashboard,.app-nav{max-width:1800px}.main-grid{grid-template-columns:1fr 380px}}
