:root{--bg: #0d1117;--panel: #161b22;--border: #30363d;--text: #e6edf3;--muted: #8b949e;--accent: #2f81f7;--ok: #2ea043;--warn: #d29922;--danger: #f85149;--live: #db6d28}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}.app{max-width:1200px;margin:0 auto;padding:1.5rem}header{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem}header h1{font-size:1.4rem;margin:0}.badges{display:flex;flex-wrap:wrap;gap:.4rem}.badge{font-size:.75rem;padding:.2rem .55rem;border-radius:999px;background:#21262d;border:1px solid var(--border);color:var(--text)}.badge.ok{background:#2ea04326;border-color:var(--ok);color:#4ac26b}.badge.live{background:#db6d2826;border-color:var(--live);color:#e8954f}.badge.danger{background:#f8514926;border-color:var(--danger);color:#ff7b72}.badge.warn{background:#d2992226;border-color:var(--warn);color:#e8954f}.badge.muted{color:var(--muted)}.pnl-tile{background:var(--panel);border:1px solid var(--border);border-left:4px solid var(--ok);border-radius:10px;padding:.9rem 1.1rem;margin-bottom:1rem}.pnl-tile.warn{border-left-color:var(--warn)}.pnl-tile.danger{border-left-color:var(--danger)}.pnl-head{display:flex;justify-content:space-between;align-items:baseline}.pnl-label{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}.pnl-value{font-size:1.5rem;font-weight:700}.pnl-tile.ok .pnl-value{color:#4ac26b}.pnl-tile.warn .pnl-value{color:#e8954f}.pnl-tile.danger .pnl-value{color:#ff7b72}.pnl-bar{height:6px;background:#21262d;border-radius:999px;margin:.6rem 0 .5rem;overflow:hidden}.pnl-bar-fill{height:100%;border-radius:999px;transition:width .4s ease;background:var(--ok)}.pnl-bar-fill.warn{background:var(--warn)}.pnl-bar-fill.danger{background:var(--danger)}.pnl-foot{display:flex;justify-content:space-between;font-size:.78rem;color:var(--muted)}.alloc-panel{margin-bottom:1rem}.alloc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.8rem}.area-card{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.7rem .8rem}.area-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}.weight-bar{display:flex;height:8px;border-radius:4px;overflow:hidden;margin-bottom:.5rem}.weight-bar>div{height:100%}.alloc-table{width:100%;font-size:.76rem;border-collapse:collapse}.alloc-table td{padding:.12rem .3rem;border:none}.ac-rank{width:1.2rem;font-weight:700}.ac-sym{font-weight:600}.ac-soll{color:var(--muted);text-align:right;white-space:nowrap}.ac-bar{width:40%}.ac-bar-track{background:#21262d;border-radius:3px;height:6px;overflow:hidden}.ac-bar-fill{height:100%;background:var(--ok);border-radius:3px}.ac-ist{text-align:right;white-space:nowrap;color:var(--muted)}.ac-ist.has{color:#4ac26b}.area-foot{margin-top:.5rem;font-size:.72rem;border-top:1px solid var(--border);padding-top:.4rem}.grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.logs-panel,.history-panel,.watchlist-panel{grid-column:1 / -1}@media (max-width: 800px){.grid{grid-template-columns:1fr}}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:1rem}.panel h2{display:flex;align-items:center;gap:.5rem;margin:0 0 .8rem;font-size:1rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.panel h2 .expand-btn{margin-left:auto}.panel.fullscreen{position:fixed;top:.75rem;right:.75rem;bottom:.75rem;left:.75rem;z-index:45;overflow-y:auto;box-shadow:0 24px 80px #000000b3}.filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.7rem;margin-bottom:.7rem}.filters label{display:flex;flex-direction:column;gap:.25rem;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}.filters select,.filters input{background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:.35rem .5rem;font-size:.82rem;color-scheme:dark}.pager{display:flex;align-items:center;justify-content:center;gap:.9rem;margin-top:.7rem}.logs-big{max-height:none}.strategy-row{margin-bottom:.9rem}.strategy-row label{display:flex;flex-direction:column;gap:.3rem;color:var(--muted);font-size:.8rem}.strategy-row select{background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:.5rem .6rem;font-size:.9rem}.controls{display:flex;flex-wrap:wrap;gap:.6rem}button.mini{padding:.25rem .55rem;font-size:.75rem;border-radius:6px}.row-actions{display:flex;gap:.35rem;justify-content:flex-end}.row-paused td{opacity:.55}.hist-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.8rem;margin-bottom:.6rem}.hist-controls label{display:flex;flex-direction:column;gap:.25rem;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}.hist-controls label.chk{flex-direction:row;align-items:center;gap:.4rem;text-transform:none;letter-spacing:0;font-size:.82rem}.hist-controls select{background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:.4rem .6rem;font-size:.85rem}.hist-legend{font-size:.78rem;margin-bottom:.6rem}.chart{width:100%;height:auto;background:var(--bg);border:1px solid var(--border);border-radius:8px}.chart-zoom{cursor:crosshair}.chart-zoom.panning{cursor:grabbing}.chart-hint{display:flex;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.35rem;font-size:.72rem;flex-wrap:wrap}.chart-hint .zoom-reset{position:static}.zoom-reset{z-index:6}.chart-label{fill:var(--muted);font-size:10px;font-family:ui-monospace,monospace}.chart-grid{stroke:var(--border);stroke-width:1;stroke-dasharray:3 3}.chart-cross{stroke:var(--muted);stroke-width:1;stroke-dasharray:2 2}.chart-wrap{position:relative}.chart-tooltip{position:absolute;transform:translate(-50%,-120%);pointer-events:none;background:var(--panel);border:1px solid var(--accent);border-radius:6px;padding:.4rem .6rem;font-size:.75rem;white-space:nowrap;z-index:5;box-shadow:0 4px 14px #00000080}.chart-tooltip .tt-date{color:var(--muted);margin-bottom:.15rem}.fed-tt{transform:translate(-50%,6px);border-color:var(--border)}.pos{color:#4ac26b}.neg{color:#ff7b72}.sym-link{color:var(--accent);text-decoration:none;font-weight:600}.sym-link:hover{text-decoration:underline}.sig-dots{display:inline-flex;gap:.25rem}.sig-pill{font-size:.68rem;padding:.05rem .35rem;border-radius:4px;font-weight:600;border:1px solid var(--border);color:var(--muted);background:#21262d}.sig-pill.long{background:#2ea0432e;border-color:var(--ok);color:#4ac26b}.sig-pill.flat{background:#21262d;border-color:var(--border);color:var(--muted)}.strat-toggles{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.strat-toggle{display:inline-flex;align-items:center;gap:.3rem;cursor:pointer}.strat-swatch{font-size:.75rem;font-weight:600;padding:.05rem .35rem;border:1px solid;border-radius:4px}.strips{display:flex;flex-direction:column;gap:.4rem}.strip-row{display:flex;align-items:center;gap:.6rem}.strip-label{width:8rem;font-size:.78rem;color:var(--muted);flex-shrink:0}.strip-svg{width:100%;height:16px;border-radius:3px;border:1px solid var(--border)}.chart-legend{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:.5rem;font-size:.78rem;color:var(--muted)}.lg-item{display:inline-flex;align-items:center;gap:.35rem}.lg-line{display:inline-block;width:18px;height:0;border-top:2px solid}.fc-now{font-size:.85rem;margin:.2rem 0 .5rem}.consensus-legend{display:flex;flex-wrap:wrap;gap:.9rem;margin:.5rem 0 .9rem;font-size:.78rem;color:var(--muted)}.cl-item{display:inline-flex;align-items:center;gap:.35rem}.cl-dot{width:10px;height:10px;border-radius:2px;display:inline-block}.strat-breadth{display:grid;grid-template-columns:1fr 1fr;gap:.35rem 1.2rem}@media (max-width: 700px){.strat-breadth{grid-template-columns:1fr}}.sb-row{display:flex;align-items:center;gap:.6rem}.sb-label{width:3.2rem;font-size:.8rem;font-weight:600;flex-shrink:0}.sb-track{flex:1;height:8px;background:#21262d;border-radius:4px;overflow:hidden}.sb-fill{height:100%;border-radius:4px}.sb-val{width:3.5rem;text-align:right;font-size:.78rem;color:var(--muted)}.trades-scroll{max-height:340px;overflow-y:auto}.toast{position:fixed;top:1rem;right:1rem;z-index:60;background:var(--panel);border:1px solid var(--accent);border-radius:8px;padding:.6rem .9rem;font-size:.85rem;max-width:360px;box-shadow:0 8px 24px #0006}button{cursor:pointer;border:1px solid var(--border);border-radius:8px;background:#21262d;color:var(--text);padding:.5rem .9rem;font-size:.85rem}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}button.ok{border-color:var(--ok);color:#4ac26b}button.danger{border-color:var(--danger);color:#ff7b72}button.live{border-color:var(--live);color:#e8954f}.token-row{margin-top:.8rem}.token-row label{display:flex;flex-direction:column;gap:.3rem;color:var(--muted);font-size:.8rem}.token-row input{background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:.45rem .6rem}.msg{margin-top:.6rem;font-size:.85rem;color:var(--muted)}.banner{padding:.5rem .75rem;border-radius:8px;margin:.6rem 0;font-size:.85rem}.banner.error{background:#f851491f;color:#ff7b72}.banner.warn{background:#db6d281f;color:#e8954f}.totals{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;margin-bottom:1rem}.metric{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.6rem}.metric-label{display:block;color:var(--muted);font-size:.75rem}.metric-value{display:block;font-size:1.1rem;font-weight:600;margin-top:.2rem}table{width:100%;border-collapse:collapse;font-size:.85rem}th,td{text-align:left;padding:.45rem .5rem;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:500}.muted{color:var(--muted)}.signal{padding:.1rem .5rem;border-radius:999px;font-size:.75rem}.signal.long{background:#2ea0432e;color:#4ac26b}.signal.flat{background:#21262d;color:var(--muted)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:var(--panel);border:1px solid var(--live);border-radius:12px;padding:1.5rem;max-width:440px;width:90%;box-shadow:0 12px 40px #00000080}.modal h3{margin:0 0 .8rem;color:#e8954f}.modal p{margin:.4rem 0;line-height:1.5}.modal code{background:var(--bg);padding:.1rem .4rem;border-radius:4px;color:#e8954f}.modal input{width:100%;margin-top:.6rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:.55rem .7rem;font-size:1rem}.modal-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1.2rem}.logs{max-height:320px;overflow-y:auto;font-family:ui-monospace,SFMono-Regular,monospace;font-size:.78rem}.log{display:flex;gap:.6rem;padding:.2rem 0;border-bottom:1px solid rgba(48,54,61,.4)}.log-ts{color:var(--muted);white-space:nowrap}.log-level{width:3.2rem;text-transform:uppercase}.log-msg{flex:1}.log-meta{color:var(--muted)}.log-warn .log-level{color:var(--warn)}.log-error .log-level{color:var(--danger)}.log-error .log-msg{color:#ff7b72}.log-info .log-level{color:var(--accent)}.small{font-size:.75rem;margin:.4rem 0 0}.plan-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.9rem 1.2rem;align-items:end}.plan-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;color:var(--muted)}.plan-form label strong{color:var(--text)}.plan-form label.check{flex-direction:row;align-items:center;gap:.5rem;color:var(--text)}.plan-form input[type=range]{width:100%;accent-color:var(--accent)}.plan-form input[type=number],.plan-form select{width:100%}.plan-alloc{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;color:var(--muted)}.plan-alloc strong{color:var(--text)}.alloc-bar{display:flex;height:10px;border-radius:4px;overflow:hidden;background:var(--bg);gap:2px}.alloc-bar span{display:block;height:100%}.plan-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.8rem}.plan-kpi{display:flex;flex-direction:column;gap:.25rem;padding:.8rem;border:1px solid var(--border);border-radius:8px;background:var(--bg)}.plan-kpi-value{font-size:1.35rem;font-weight:600;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.plan-notes{margin:0;padding-left:1.1rem;line-height:1.5;font-size:.85rem}.plan-notes li{margin-bottom:.4rem}tr.row-current td{background:#2f81f714}.alloc-table tr.below-min td{opacity:.45}.alloc-table tr.below-min .ac-sym{text-decoration:line-through}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.login-card{width:100%;max-width:360px;display:flex;flex-direction:column;gap:.8rem}.login-card h1{margin:0;font-size:1.3rem}.login-card p{margin:0}.login-card label{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;color:var(--muted)}.login-card input{width:100%}.login-card code{font-size:.75rem}.login-error{color:#ff7b72;font-size:.85rem}
