:root{--bg:#0b0f14;--panel:#12181f;--border:#1f2933;--text:#e6edf3;--text-dim:#8b98a5;--green:#3fb950;--red:#f85149;--accent:#58a6ff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{max-width:1100px;margin:0 auto;padding:24px 20px 60px}.app-header h1{letter-spacing:-.02em;margin:0 0 6px;font-size:22px}.status-line{color:var(--text-dim);flex-wrap:wrap;gap:8px;font-size:13px;display:flex}.error-inline{color:var(--red)}.banner-error{color:var(--red);background:#f851491f;border:1px solid #f8514966;border-radius:8px;margin-top:16px;padding:10px 14px;font-size:13px}.kpi-row{grid-template-columns:repeat(4,1fr);gap:12px;margin-top:24px;display:grid}@media (width<=720px){.kpi-row{grid-template-columns:repeat(2,1fr)}}.kpi-tile{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.kpi-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;font-size:12px}.kpi-value{font-variant-numeric:tabular-nums;font-size:24px;font-weight:600}.kpi-value.small{font-size:15px;font-weight:500}.kpi-value.positive{color:var(--green)}.kpi-value.negative{color:var(--red)}.panel-section{margin-top:28px}.panel-section h2{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin:0 0 12px;font-size:15px}.empty-chart{background:var(--panel);border:1px dashed var(--border);text-align:center;color:var(--text-dim);border-radius:10px;padding:28px;font-size:13px}.equity-svg{background:var(--panel);border:1px solid var(--border);border-radius:10px;width:100%;height:180px}.zero-line{stroke:var(--border);stroke-width:1px}.equity-line{stroke-width:2px}.equity-line.positive{stroke:var(--green)}.equity-line.negative{stroke:var(--red)}.signal-list{flex-direction:column;gap:10px;display:flex}.signal-card{background:var(--panel);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:10px;padding:14px 16px}.signal-card.buy{border-left-color:var(--green)}.signal-card.sell{border-left-color:var(--red)}.signal-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;font-size:13px;display:flex}.symbol{font-size:15px;font-weight:700}.direction{border-radius:4px;padding:2px 6px;font-size:11px;font-weight:700}.direction.buy{color:var(--green);background:#3fb95026}.direction.sell{color:var(--red);background:#f8514926}.leverage,.regime{color:var(--text-dim)}.time{color:var(--text-dim);margin-left:auto;font-size:12px}.confidence-bar{background:#0d1319;border-radius:4px;height:18px;margin-bottom:10px;position:relative;overflow:hidden}.confidence-fill{background:linear-gradient(90deg, var(--accent), var(--green));height:100%}.confidence-bar span{font-variant-numeric:tabular-nums;font-size:11px;line-height:18px;position:absolute;top:0;right:6px}.entry-note{color:var(--text-dim);font-size:11px;font-style:normal}.signal-prices{font-variant-numeric:tabular-nums;color:var(--text-dim);gap:16px;margin-bottom:8px;font-size:13px;display:flex}.reasoning{color:var(--text-dim);margin:0 0 8px;font-size:13px;line-height:1.5}.signal-footer{gap:8px;display:flex}.badge{border-radius:999px;padding:3px 8px;font-size:11px;font-weight:600}.badge.open{color:var(--accent);background:#58a6ff26}.badge.open.pnl-pos{color:var(--green);background:#3fb95026}.badge.open.pnl-neg{color:var(--red);background:#f8514926}.badge.outcome.win{color:var(--green);background:#3fb95026}.badge.outcome.loss{color:var(--red);background:#f8514926}.badge.outcome.timeout{color:var(--text-dim);background:#8b98a526}.badge.failed{color:var(--red);background:#f8514926}
