*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a0c0d;--surface:#14181a;--surface2:#1c2124;--surface3:#232a2d;--border:#262d31;--border-soft:#1e2427;--accent:#00d4aa;--accent2:#16c7e0;--accent-grad:linear-gradient(135deg, #00d4aa 0%, #16c7e0 100%);--accent-dim:#00d4aa1f;--accent-glow:#00d4aa38;--text:#e6eaec;--text-dim:#7d878c;--text-mute:#565f63;--green:#26a69a;--red:#ef5350;--radius:12px;--radius-sm:8px;--font:Inter, system-ui, sans-serif;--shadow:0 4px 24px #00000059}html,body,#root{background:var(--bg);height:100%;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:14px}a{color:var(--accent);text-decoration:none}button{cursor:pointer;border-radius:var(--radius-sm);font-family:var(--font);border:none;font-size:14px;transition:all .15s}button:hover{opacity:.9}button:disabled{opacity:.4;cursor:default}input{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font);outline:none;width:100%;padding:11px 14px;font-size:14px;transition:border-color .15s}input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--surface3);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#313a3e}.app-layout{height:100%;display:flex;overflow:hidden}.sidebar{border-right:1px solid var(--border-soft);background:linear-gradient(#0d1113 0%,#0a0c0d 100%);flex-direction:column;flex-shrink:0;gap:6px;width:224px;padding:20px 14px;display:flex}.sidebar-brand{align-items:center;gap:11px;padding:6px 10px 22px;display:flex}.brand-mark{background:var(--accent-grad);color:#0000;filter:drop-shadow(0 0 6px var(--accent-glow));-webkit-background-clip:text;background-clip:text;font-size:20px}.brand-text{letter-spacing:-.2px;background:var(--accent-grad);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:18px;font-weight:700}.sidebar-nav{flex-direction:column;flex:1;gap:4px;display:flex}.nav-item{color:var(--text-dim);text-align:left;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:12px;width:100%;padding:11px 12px;font-size:14px;font-weight:500;transition:all .16s;display:flex;position:relative}.nav-item:hover{color:var(--text);background:var(--surface);opacity:1}.nav-item.active{color:var(--accent);background:var(--accent-dim);border-color:#00d4aa40}.nav-item.active:before{content:"";background:var(--accent-grad);border-radius:0 3px 3px 0;width:3px;height:20px;position:absolute;top:50%;left:-14px;transform:translateY(-50%)}.nav-icon{align-items:center;display:flex}.nav-label{line-height:1}.nav-logout{color:var(--text-mute);margin-top:auto}.nav-logout:hover{color:var(--red);background:#ef535014}.app-main{background:var(--bg);flex-direction:column;flex:1;min-width:0;height:100%;display:flex;overflow:hidden}.page-scroll{flex:1;overflow-y:auto}.page-fill{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.page-head{border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:flex-end;gap:20px;padding:28px 32px 22px;display:flex}.page-head.compact{padding:20px 24px 16px}.page-title{letter-spacing:-.4px;font-size:24px;font-weight:700}.page-sub{color:var(--text-dim);margin-top:4px;font-size:13px}.head-stats{gap:10px;display:flex}.stat-pill{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;align-items:center;gap:2px;min-width:72px;padding:8px 18px;display:flex}.stat-pill.accent{background:var(--accent-dim);border-color:#00d4aa4d}.stat-num{font-variant-numeric:tabular-nums;font-size:20px;font-weight:700}.stat-pill.accent .stat-num{color:var(--accent)}.stat-lbl{color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;font-size:11px}.page-body{max-width:1000px;padding:24px 32px 40px}.muted{color:var(--text-dim)}.login-page{background:radial-gradient(circle at 30% 20%,#00d4aa14,#0000 40%),radial-gradient(circle at 80% 80%,#16c7e00f,#0000 40%);justify-content:center;align-items:center;height:100%;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);width:380px;box-shadow:var(--shadow);border-radius:16px;padding:40px}.login-card h1{background:var(--accent-grad);color:#0000;-webkit-background-clip:text;background-clip:text;margin-bottom:8px;font-size:24px;font-weight:700}.login-card p{color:var(--text-dim);margin-bottom:28px}.login-card .field{margin-bottom:16px}.login-card .field label{color:var(--text-dim);margin-bottom:6px;font-size:13px;display:block}.login-error{color:var(--red);margin-top:10px;font-size:13px}.btn-ghost{color:var(--text-dim);border:1px solid var(--border);border-radius:var(--radius-sm);background:0 0;padding:8px 14px}.btn-ghost:hover{color:var(--text);border-color:var(--accent)}.btn-primary{background:var(--accent-grad);color:#04110d;border-radius:var(--radius-sm);padding:11px 20px;font-weight:700}.btn-primary:hover{box-shadow:0 0 18px var(--accent-glow);opacity:1}.btn-sm{padding:6px 12px;font-size:13px}.strategy-cards{flex-direction:column;gap:14px;display:flex}.strategy-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;transition:transform .15s,border-color .15s,background .15s;display:flex}.strategy-card:hover{background:var(--surface2);border-color:#00d4aa66;transform:translateY(-2px)}.strategy-card.active{background:linear-gradient(135deg, var(--accent-dim), transparent 70%), var(--surface);border-color:#00d4aa59}.strategy-card-left h3{margin-bottom:6px;font-size:17px;font-weight:600}.strategy-card-left p{color:var(--text-dim);font-size:13px;line-height:1.5}.strategy-params{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.param-chip{background:var(--surface2);border:1px solid var(--border);color:var(--text-dim);font-variant-numeric:tabular-nums;border-radius:6px;padding:3px 9px;font-size:12px}.strategy-card-right{flex-shrink:0;align-items:center;gap:14px;display:flex}.card-arrow{color:var(--text-mute);font-size:18px;transition:transform .15s,color .15s}.strategy-card:hover .card-arrow{color:var(--accent);transform:translate(3px)}.badge-active{background:var(--accent-grad);color:#04110d;letter-spacing:.5px;white-space:nowrap;border-radius:20px;padding:4px 11px;font-size:11px;font-weight:700}.detail-page{flex-direction:column;height:100%;display:flex;overflow:hidden}.detail-toolbar{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:16px;padding:14px 22px;display:flex}.detail-strategy-name{color:var(--accent);border-right:1px solid var(--border);margin-right:4px;padding-right:8px;font-size:15px;font-weight:700}.pair-btns{gap:6px;display:flex}.pair-btn{background:var(--surface2);border:1px solid var(--border);color:var(--text-dim);border-radius:var(--radius-sm);padding:6px 14px;font-size:13px;font-weight:500}.pair-btn:hover{color:var(--text)}.pair-btn.active{background:var(--accent-grad);color:#04110d;border-color:#0000;font-weight:700}.tf-btns{gap:4px;display:flex}.tf-btn{background:var(--surface2);border:1px solid var(--border);color:var(--text-dim);border-radius:6px;padding:6px 11px;font-size:12px}.tf-btn:hover{color:var(--text)}.tf-btn.active{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.signal-pill{border-radius:20px;margin-left:auto;padding:5px 14px;font-size:13px;font-weight:600}.signal-pill.bull{color:var(--green);border:1px solid var(--green);background:#26a69a2e}.signal-pill.bear{color:var(--red);border:1px solid var(--red);background:#ef53502e}.signal-pill.neutral{background:var(--surface2);color:var(--text-dim);border:1px solid var(--border)}.detail-body{flex:1;display:flex;overflow:hidden}.charts-column{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.chart-panel{border-bottom:1px solid var(--border);flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.chart-container{flex:1;min-height:0}.chart-loading{height:100%;color:var(--text-dim);justify-content:center;align-items:center;display:flex}.right-panel{border-left:1px solid var(--border);background:var(--surface);flex-direction:column;flex-shrink:0;width:360px;display:flex;overflow:hidden}.indicators-bar{border-bottom:1px solid var(--border);background:var(--surface);padding:16px 18px}.indicators-bar h4{text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);margin-bottom:10px;font-size:12px}.ind-row{justify-content:space-between;margin-bottom:6px;font-size:13px;display:flex}.ind-label{color:var(--text-dim)}.ind-value{font-variant-numeric:tabular-nums;font-weight:500}.ind-value.bull{color:var(--green)}.ind-value.bear{color:var(--red)}.backtest-panel{flex:1;padding:18px;overflow-y:auto}.backtest-panel h4{text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);margin-bottom:12px;font-size:12px}.bt-run-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.bt-select{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;outline:none;padding:7px 10px;font-size:13px}.metrics-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px;display:grid}.metric-card{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:12px 14px}.metric-card .label{color:var(--text-dim);margin-bottom:5px;font-size:11px}.metric-card .value{font-variant-numeric:tabular-nums;font-size:19px;font-weight:700}.metric-card .value.green{color:var(--green)}.metric-card .value.red{color:var(--red)}.metric-card .value.accent{color:var(--accent)}.trades-table{border-collapse:collapse;width:100%;font-size:12px}.trades-table th{text-align:left;color:var(--text-dim);border-bottom:1px solid var(--border);background:var(--surface);padding:6px;font-weight:500;position:sticky;top:0}.trades-table td{border-bottom:1px solid var(--border-soft);font-variant-numeric:tabular-nums;padding:6px}.trades-table tr:hover td{background:var(--surface2)}.result-w{color:var(--green);font-weight:600}.result-l{color:var(--red);font-weight:600}.result-be{color:var(--text-dim)}.equity-chart-wrap{margin-bottom:18px}.equity-chart-wrap h4{text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);margin-bottom:8px;font-size:12px}.error-msg{color:var(--red);padding:8px 0;font-size:13px}.spinner{animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=720px){.sidebar{width:64px;padding:20px 8px}.brand-text,.nav-label{display:none}.sidebar-brand{justify-content:center;padding:6px 0 22px}.nav-item{justify-content:center}.page-head{flex-direction:column;align-items:flex-start}}.trades-filters{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.trades-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.trades-table.trades-full{font-size:13px}.trades-table.trades-full th{background:var(--surface2);text-transform:uppercase;letter-spacing:.4px;padding:12px 14px;font-size:11px}.trades-table.trades-full td{padding:11px 14px}.trades-table.trades-full tr:last-child td{border-bottom:none}.dir-badge{letter-spacing:.4px;border-radius:5px;padding:3px 9px;font-size:11px;font-weight:700;display:inline-block}.dir-badge.long{color:var(--green);background:#26a69a29;border:1px solid #26a69a66}.dir-badge.short{color:var(--red);background:#ef535029;border:1px solid #ef535066}.section-title{color:var(--text);align-items:center;gap:10px;margin-bottom:14px;font-size:14px;font-weight:600;display:flex}.section-count{color:var(--accent);background:var(--accent-dim);border-radius:20px;padding:2px 9px;font-size:11px;font-weight:700}.section-pnl{font-variant-numeric:tabular-nums;margin-left:auto;font-size:14px;font-weight:700}.open-cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.open-card{background:linear-gradient(135deg, var(--accent-dim), transparent 80%), var(--surface);border-radius:var(--radius);border:1px solid #00d4aa47;padding:16px 18px}.open-card-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.open-card-row{font-variant-numeric:tabular-nums;justify-content:space-between;padding:4px 0;font-size:13px;display:flex}.clickable{cursor:pointer}.trades-table.trades-full tr.clickable:hover td{background:var(--surface2)}.open-card.clickable{transition:transform .15s,border-color .15s}.open-card.clickable:hover{border-color:#00d4aa80;transform:translateY(-2px)}.modal-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:200;background:#000000b8;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;flex-direction:column;width:min(920px,92vw);height:min(600px,86vh);display:flex;overflow:hidden}.modal-head{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;display:flex}.modal-title{align-items:center;gap:10px;display:flex}.modal-meta{font-variant-numeric:tabular-nums;align-items:center;gap:18px;font-size:13px;display:flex}.open-tag{letter-spacing:.5px;color:var(--accent);background:var(--accent-dim);border:1px solid #00d4aa59;border-radius:5px;padding:2px 7px;font-size:10px;font-weight:700}.modal-close{color:var(--text-dim);background:0 0;border-radius:6px;padding:4px 10px;font-size:16px}.modal-close:hover{color:var(--text);background:var(--surface2)}.modal-chart-wrap{flex:1;min-height:0;position:relative}.modal-chart,.modal-chart-wrap .chart-loading{position:absolute;inset:0}
