:root{--bg:#0a0c0f;--bg-2:#11151b;--panel:#12171e;--panel-2:#161c25;--border:#1f2730;--border-hi:#2a3441;--text:#e6edf3;--text-dim:#7d8a99;--text-faint:#4a5563;--pos:#2ee6a6;--neg:#ff5d6c;--long:#2ee6a6;--short:#ff5d6c;--flat:#5b6675;--amber:#ffb547;--amber-deep:#d98a1f;--glow:0 0 0 1px var(--border-hi), 0 8px 30px #00000080;--mono:"JetBrains Mono", ui-monospace, monospace;--display:"Archivo", system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:radial-gradient(1200px 600px at 80% -10%, #ffb5470f, transparent 60%), radial-gradient(900px 500px at 0% 110%, #2ee6a60d, transparent 55%), var(--bg);color:var(--text);font-family:var(--display);-webkit-font-smoothing:antialiased}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.pos{color:var(--pos)}.neg{color:var(--neg)}.dim{color:var(--text-dim)}.login-wrap{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:var(--panel);border:1px solid var(--border);width:100%;max-width:380px;box-shadow:var(--glow);text-align:center;border-radius:16px;padding:40px 32px}.login-logo,.logo{font-family:var(--display);letter-spacing:-1px;background:linear-gradient(135deg, var(--amber), var(--amber-deep));color:#0000;-webkit-background-clip:text;background-clip:text;font-weight:900}.login-logo{margin-bottom:8px;font-size:52px}.login-card h1{letter-spacing:-.5px;font-size:26px;font-weight:800}.login-sub{color:var(--text-dim);margin:6px 0 28px;font-size:13px}.field{background:var(--bg-2);border:1px solid var(--border);width:100%;color:var(--text);font-family:var(--mono);border-radius:10px;outline:none;margin-bottom:12px;padding:13px 14px;font-size:14px;transition:border-color .15s}.field:focus{border-color:var(--amber-deep)}.login-err{color:var(--neg);font-size:13px;font-family:var(--mono);margin:4px 0 12px}.login-foot{color:var(--text-faint);margin-top:18px;font-size:11px}.btn{font-family:var(--display);letter-spacing:.3px;border:1px solid var(--border-hi);background:var(--panel-2);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:9px;padding:9px 16px;font-size:13px;font-weight:700;transition:all .15s}.btn:hover{border-color:var(--text-dim);transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn.full{width:100%;margin-top:6px;padding:13px}.btn.go{background:linear-gradient(135deg, var(--pos), #1fae7d);color:#04130d;border-color:#0000}.btn.danger{background:linear-gradient(135deg, var(--neg), #d83a49);color:#1a0406;border-color:#0000}.btn.ghost{background:0 0}.btn.tiny{padding:5px 11px;font-size:11px}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--border);background:linear-gradient(180deg, var(--bg-2), transparent);z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);justify-content:space-between;align-items:center;padding:16px 24px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:14px;display:flex}.logo{font-size:34px;line-height:1}.brand h1{letter-spacing:-.5px;font-size:19px;font-weight:800}.sub{color:var(--text-dim);font-size:11px}.topbar-right{align-items:center;gap:12px;display:flex}.mode-pill{font-family:var(--mono);border:1px solid var(--border-hi);border-radius:20px;padding:5px 10px;font-size:11px;font-weight:700}.mode-pill.mainnet{color:var(--neg);background:#ff5d6c1f;border-color:#ff5d6c80}.mode-pill.testnet{color:#5aa9ff;background:#5aa9ff1a;border-color:#5aa9ff66}.mode-pill.paper{color:var(--amber);background:#ffb54712;border-color:#ffb5474d}.dot{border-radius:50%;width:9px;height:9px}.dot.on{background:var(--pos);box-shadow:0 0 10px var(--pos)}.dot.off{background:var(--neg)}.halt-banner{color:var(--neg);font-family:var(--mono);text-align:center;background:#ff5d6c1f;border-bottom:1px solid #ff5d6c59;padding:12px 24px;font-size:13px;font-weight:600}.grid{flex:1;grid-template-columns:1fr 360px;gap:18px;padding:20px 24px;display:grid}.col-main{flex-direction:column;gap:18px;min-width:0;display:flex}@media (width<=980px){.grid{grid-template-columns:1fr}}.stat-grid{grid-template-columns:repeat(6,1fr);gap:12px;display:grid}@media (width<=900px){.stat-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=520px){.stat-grid{grid-template-columns:repeat(2,1fr)}}.stat{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:14px 16px;position:relative;overflow:hidden}.stat:before{content:"";background:linear-gradient(var(--amber), transparent);width:3px;position:absolute;inset:0 auto 0 0}.stat-label{font-family:var(--mono);letter-spacing:1px;color:var(--text-faint);font-size:10px}.stat-value{font-family:var(--mono);margin-top:6px;font-size:22px;font-weight:700}.stat-sub{font-family:var(--mono);color:var(--text-dim);margin-top:2px;font-size:10px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:14px;overflow:hidden}.panel-head{border-bottom:1px solid var(--border);background:var(--bg-2);align-items:center;gap:10px;padding:14px 18px;display:flex}.panel-head h2{letter-spacing:.2px;font-size:14px;font-weight:700}.count{font-family:var(--mono);background:var(--panel-2);border:1px solid var(--border-hi);color:var(--text-dim);border-radius:20px;padding:2px 9px;font-size:11px}.empty{color:var(--text-faint);text-align:center;padding:28px 18px;font-size:13px}.table{width:100%;overflow-x:auto}.table .tr{min-width:760px}.tr{border-bottom:1px solid var(--border);grid-template-columns:1.1fr .7fr .5fr .8fr 1fr 1fr .9fr .9fr .9fr .9fr 1.2fr .8fr;align-items:center;padding:11px 14px;font-size:12px;display:grid}.tr:last-child{border-bottom:none}.tr.th{color:var(--text-faint);font-family:var(--mono);letter-spacing:.5px;background:#00000026;font-size:10px}.badge{font-family:var(--mono);border-radius:6px;width:fit-content;padding:3px 8px;font-size:10px;font-weight:700}.badge.long{color:var(--long);background:#2ee6a61f}.badge.short{color:var(--short);background:#ff5d6c1f}.signal-grid{grid-template-columns:repeat(3,1fr);gap:12px;padding:16px;display:grid}@media (width<=700px){.signal-grid{grid-template-columns:repeat(2,1fr)}}.sig-card{background:var(--bg-2);border:1px solid var(--border);border-radius:11px;padding:13px;transition:border-color .2s}.sig-card.long{border-color:#2ee6a64d}.sig-card.short{border-color:#ff5d6c4d}.sig-top{justify-content:space-between;align-items:center;display:flex}.sig-sym{font-size:15px;font-weight:700}.sig-dir{font-family:var(--mono);border-radius:5px;padding:2px 7px;font-size:10px;font-weight:700}.sig-dir.long{color:var(--long);background:#2ee6a61f}.sig-dir.short{color:var(--short);background:#ff5d6c1f}.sig-dir.flat{color:var(--flat);background:#5b667526}.sig-bar{background:var(--border);border-radius:3px;height:5px;margin:10px 0 7px;overflow:hidden}.sig-fill{border-radius:3px;height:100%;transition:width .4s}.sig-fill.long{background:linear-gradient(90deg, var(--long), #1fae7d)}.sig-fill.short{background:linear-gradient(90deg, var(--short), #d83a49)}.sig-fill.flat{background:var(--flat)}.sig-meta{font-family:var(--mono);color:var(--text-dim);justify-content:space-between;font-size:10px;display:flex}.sig-notes{color:var(--text-faint);word-break:break-word;margin-top:7px;font-size:9.5px;line-height:1.5}.ctrl-grid{background:var(--border);grid-template-columns:1fr 1fr;gap:1px;display:grid}@media (width<=700px){.ctrl-grid{grid-template-columns:1fr}}.ctrl-block{background:var(--panel);padding:16px 18px}.ctrl-label{font-family:var(--mono);letter-spacing:1px;color:var(--text-faint);margin-bottom:10px;font-size:10px}.seg{border:1px solid var(--border-hi);border-radius:9px;display:flex;overflow:hidden}.seg button{font-family:var(--display);background:var(--panel-2);color:var(--text-dim);cursor:pointer;border:none;flex:1;padding:9px 8px;font-size:12px;font-weight:700;transition:all .15s}.seg button.on{background:var(--pos);color:#04130d}.seg button:disabled{opacity:.6;cursor:not-allowed}.stepper{align-items:center;gap:8px;display:flex}.field.sm.num{text-align:center;width:64px;margin:0}.ctrl-hint{color:var(--text-faint);font-size:10.5px;font-family:var(--mono);margin-top:9px;line-height:1.5}.trade-stats{background:var(--border);border-bottom:1px solid var(--border);grid-template-columns:repeat(4,1fr);gap:1px;display:grid}.ts-item{background:var(--bg-2);flex-direction:column;gap:4px;padding:12px 16px;display:flex}.ts-label{font-family:var(--mono);letter-spacing:1px;color:var(--text-faint);font-size:9px}.ts-val{font-size:18px;font-weight:700}.tr.tlog{grid-template-columns:1.6fr .9fr .7fr .5fr 1fr 1fr 1fr 1.1fr;min-width:700px}.tlog-time{font-size:10px}.reason-tag{font-size:11px}@media (width<=700px){.trade-stats{grid-template-columns:repeat(2,1fr)}}.admin-msg{font-family:var(--mono);border-bottom:1px solid var(--border);padding:9px 18px;font-size:12px}.admin-msg.ok{color:var(--pos);background:#2ee6a614}.admin-msg.err{color:var(--neg);background:#ff5d6c14}.add-form{border-bottom:1px solid var(--border);background:var(--bg-2);padding:14px 18px}.add-row{flex-wrap:wrap;gap:12px;display:flex}.add-row label{font-size:10px;font-family:var(--mono);color:var(--text-faint);letter-spacing:.5px;flex-direction:column;gap:4px;display:flex}.field.sm{width:120px;margin:0;padding:8px 10px;font-size:13px}.field.sm[type=number]{width:80px}.add-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;display:flex}.hint{color:var(--text-faint);font-size:10.5px;font-family:var(--mono);max-width:60%;line-height:1.5}.pair-list{flex-direction:column;display:flex}.pair-row{border-bottom:1px solid var(--border);grid-template-columns:1.4fr auto auto;align-items:center;gap:12px;padding:11px 18px;display:grid}.pair-row:last-child{border-bottom:none}.pair-row.paused{background:#ff5d6c0a}.pair-info{flex-direction:column;gap:3px;display:flex}.pair-sym{font-size:14px;font-weight:700}.pair-meta{color:var(--text-faint);font-size:10px}.pill-state{font-family:var(--mono);border-radius:6px;padding:3px 9px;font-size:10px;font-weight:700}.pill-state.on{color:var(--pos);background:#2ee6a61f}.pill-state.off{color:var(--neg);background:#ff5d6c1f}.pause-choices{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.field.sm.reason{width:150px;padding:6px 9px;font-size:12px}.disc-head{border-top:1px solid var(--border);background:var(--bg-2);font-family:var(--mono);color:var(--text-dim);cursor:pointer;-webkit-user-select:none;user-select:none;padding:11px 18px;font-size:12px}.disc-head:hover{color:var(--text)}.disc-body{border-top:1px solid var(--border)}.disc-search{width:calc(100% - 36px);margin:12px 18px}.disc-list{max-height:360px;overflow-y:auto}.chart-toggle{border:1px solid var(--border-hi);border-radius:8px;gap:0;display:flex;overflow:hidden}.chart-toggle button{font-family:var(--mono);background:var(--panel-2);color:var(--text-dim);cursor:pointer;border:none;padding:5px 11px;font-size:11px;transition:all .15s}.chart-toggle button.on{background:var(--amber);color:#1a1206;font-weight:700}.chart-summary{align-items:baseline;gap:12px;padding:14px 18px 4px;display:flex}.chart-summary .big{font-size:26px;font-weight:700}.chip{border-radius:7px;padding:3px 9px;font-size:12px}.chip.pos{background:#2ee6a61f}.chip.neg{background:#ff5d6c1f}.chart-wrap{padding:4px 8px 14px}.chart-tip{background:var(--bg-2);border:1px solid var(--border-hi);border-radius:8px;padding:8px 10px;font-size:11px;line-height:1.6}.adopt-tag{color:var(--amber);cursor:help;margin-left:5px;font-size:11px}.trail-tag{color:var(--pos);cursor:help}.log-panel{flex-direction:column;height:100%;max-height:calc(100vh - 140px);display:flex;position:sticky;top:90px}.log{flex:1;overflow-y:auto}.log-row{border-bottom:1px solid #1f273080;gap:10px;padding:7px 16px;display:flex}.log-time{color:var(--text-faint);flex-shrink:0;font-size:10px}.log-msg{word-break:break-word;font-size:11px;line-height:1.5}.log-msg.info{color:var(--amber)}.log-c-tr{max-height:420px;overflow-y:auto}.foot{border-top:1px solid var(--border);color:var(--text-faint);font-size:11px;font-family:var(--mono);flex-wrap:wrap;justify-content:space-between;gap:16px;padding:14px 24px;display:flex}::-webkit-scrollbar{width:9px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border-hi);border-radius:5px}
