:root{--ink:#0b0e11;--panel:#181a20;--panel-2:#1e2026;--line:#2b3139;--line-dim:#23262d;--paper:#eaecef;--paper-dim:#848e9c;--amber:#f0b90b;--amber-dim:#8a7413;--teal:#5b6673;--profit:#0ecb81;--loss:#f6465d;--warn:#ff8a00;--danger:#e0293d;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--radius:6px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--ink);color:var(--paper);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:13px;line-height:1.5}.num{font-variant-numeric:tabular-nums}::selection{background:var(--amber);color:var(--ink)}button{font-family:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--panel)}::-webkit-scrollbar-thumb{background:var(--line);border-radius:var(--radius)}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.app{flex-direction:column;min-height:100vh;display:flex}.statusbar{background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:24px;padding:12px 24px;display:flex}.brand{letter-spacing:-.01em;color:var(--paper);white-space:nowrap;align-items:baseline;gap:8px;font-size:1.1rem;font-weight:700;display:flex}.brand .dot{background:var(--amber);border-radius:50%;width:8px;height:8px;display:inline-block;box-shadow:0 0 8px 1px #f0b90b99}.brand small{color:var(--paper-dim);letter-spacing:.01em;font-size:.72rem;font-weight:500}.ws-group{gap:16px;display:flex}.ws-indicator{color:var(--paper-dim);align-items:center;gap:6px;font-size:.72rem;display:flex}.ws-indicator .led{background:var(--profit);border-radius:50%;width:7px;height:7px;box-shadow:0 0 6px #0ecb81b3}.ws-indicator .led.off{background:var(--loss);box-shadow:0 0 6px #f6465db3}.statusbar .spacer{flex:auto}.btn{appearance:none;border:1px solid var(--line);color:var(--paper);border-radius:var(--radius);cursor:pointer;white-space:nowrap;background:0 0;padding:8px 16px;font-family:inherit;font-size:.78rem;font-weight:500;transition:border-color .15s,color .15s,background-color .15s}.btn:hover{border-color:var(--paper-dim);background:#ffffff08}.btn:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.btn-warn{border-color:var(--warn);color:var(--warn);background:0 0}.btn-warn:hover{background:#ff8a001f}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff;font-weight:600}.btn-danger:hover{background:#f0384d}.btn-primary{background:var(--amber);border-color:var(--amber);color:#202630;font-weight:600}.btn-primary:hover{background:#f7c631}.btn:disabled{opacity:.35;cursor:not-allowed}.btn:disabled:hover{border-color:var(--line);background:0 0}.btn-sound{align-items:center;gap:6px;display:flex}.btn-sound .bar{background:var(--paper-dim);width:3px;display:inline-block}.btn-sound[data-on=true]{color:var(--amber);border-color:var(--amber-dim);background:#f0b90b14}.killbanner{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:12px 24px;font-size:.8rem;display:none}.killbanner.show{display:flex}.killbanner.level-soft{color:var(--warn);background:#ff8a001f}.killbanner.level-hard{color:#ff8f9c;background:#e0293d24}.killbanner strong{font-weight:700}.floor{flex:auto;grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:24px;padding:24px;display:grid}@media (width<=980px){.floor{grid-template-columns:1fr}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.panel-head{border-bottom:1px solid var(--line-dim);justify-content:space-between;align-items:baseline;padding:16px 16px 12px;display:flex}.panel-head h2{color:var(--paper);margin:0;font-size:.92rem;font-weight:600}.panel-head .meta{color:var(--paper-dim);font-size:.7rem}.panel-toolbar{border-bottom:1px solid var(--line-dim);flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;display:flex}.panel-toolbar label{color:var(--paper-dim);font-size:.7rem}.panel-toolbar input{background:var(--ink);border:1px solid var(--line);width:120px;color:var(--paper);text-transform:uppercase;border-radius:var(--radius);padding:6px 10px;font-family:inherit;font-size:.78rem}.panel-toolbar input:focus-visible{outline:2px solid var(--amber);outline-offset:1px}.panel-toolbar .add-btn{border:1px solid var(--amber-dim);color:var(--amber);border-radius:var(--radius);cursor:pointer;background:0 0;padding:6px 14px;font-family:inherit;font-size:.74rem;font-weight:500}.panel-toolbar .add-btn:hover{border-color:var(--amber);background:#f0b90b14}.panel-toolbar .add-btn:disabled{opacity:.35;cursor:not-allowed}.toolbar-hint{color:var(--paper-dim);margin-left:auto;font-size:.68rem}.add-error{color:var(--loss);font-size:.68rem}.table-scroll{overflow-x:auto}table.opps{border-collapse:collapse;width:100%;min-width:980px}table.opps thead th{text-align:left;color:var(--paper-dim);border-bottom:1px solid var(--line-dim);white-space:nowrap;padding:10px 12px;font-size:.72rem;font-weight:500}table.opps thead th.num-col,table.opps td.num-col{text-align:right}table.opps tbody td{border-bottom:1px solid var(--line-dim);white-space:nowrap;vertical-align:middle;padding:10px 12px}table.opps tbody tr{transition:background-color .2s}table.opps tbody tr:hover{background:#ffffff08}table.opps tbody tr.disabled,table.opps tbody tr.disabled .sym{color:var(--paper-dim)}.sym{color:var(--paper);font-weight:600}.sym small{color:var(--paper-dim);font-size:.68rem;font-weight:400;display:block}.edge-pos{color:var(--profit);font-weight:600}.edge-neg{color:var(--loss);font-weight:600}.edge-flat{color:var(--paper-dim)}.tag{border-radius:4px;padding:2px 8px;font-size:.7rem;font-weight:600;display:inline-block}.tag-ok{color:var(--profit);background:#0ecb811f}.tag-bad{color:var(--loss);background:#f6465d1f}.spark{display:block}.cell-edge{justify-content:flex-end;align-items:center;gap:12px;display:flex}.action-cell{text-align:right}.enter-btn{color:#0b0e11;background:var(--profit);border-radius:var(--radius);cursor:pointer;border:none;padding:6px 14px;font-family:inherit;font-size:.74rem;font-weight:600}.enter-btn:hover{background:#12e08c}.enter-btn:disabled{color:var(--paper-dim);cursor:not-allowed;background:var(--line)}.reason{color:var(--paper-dim);margin-top:2px;font-size:.68rem;display:block}.remove-btn{border:1px solid var(--line);color:var(--paper-dim);border-radius:var(--radius);cursor:pointer;background:0 0;padding:5px 10px;font-family:inherit;font-size:.68rem}.remove-btn:hover{color:var(--loss);border-color:var(--loss)}.remove-btn:disabled{opacity:.3;cursor:not-allowed}.rail{flex-direction:column;gap:24px;display:flex}.positions-list{flex-direction:column;gap:12px;padding:16px;display:flex}.position-card{border:1px solid var(--line-dim);border-radius:var(--radius);background:var(--panel-2);padding:12px 16px}.position-card .row1{justify-content:space-between;align-items:baseline;display:flex}.position-card .pos-sym{font-weight:600}.position-card .pos-legs{color:var(--paper-dim);margin-top:1px;font-size:.68rem}.position-card .pnl{font-size:.95rem;font-weight:600}.position-card .pnl.pos{color:var(--profit)}.position-card .pnl.neg{color:var(--loss)}.metrics-row{color:var(--paper-dim);gap:24px;margin-top:8px;font-size:.7rem;display:flex}.metrics-row .m-value{color:var(--paper);font-weight:600}.hold-bar{background:var(--line-dim);border-radius:2px;height:4px;margin-top:8px;overflow:hidden}.hold-bar>span{background:var(--teal);height:100%;display:block}.hold-bar>span.urgent{background:var(--warn)}.position-card .row3{justify-content:space-between;align-items:center;margin-top:12px;display:flex}.chip{border-radius:4px;padding:3px 9px;font-size:.68rem;font-weight:600}.chip-wait{color:var(--paper-dim);background:#ffffff0f}.chip-danger{color:var(--loss);background:#f6465d1f}.chip-urgent{color:var(--warn);background:#ff8a0024}.mini-btn{border:1px solid var(--line);color:var(--paper-dim);border-radius:var(--radius);cursor:pointer;background:0 0;padding:4px 10px;font-family:inherit;font-size:.68rem}.mini-btn:hover{color:var(--loss);border-color:var(--loss)}.log-list{flex-direction:column;gap:10px;max-height:320px;margin:0;padding:12px 16px 16px;font-size:.72rem;list-style:none;display:flex;overflow-y:auto}.log-list li{border-left:2px solid var(--line-dim);gap:12px;padding-left:12px;display:flex}.log-list time{color:var(--paper-dim);flex:none}.log-list .msg{color:var(--paper)}.log-list li.warn{border-color:var(--warn)}.log-list li.warn .msg{color:var(--warn)}.log-list li.danger{border-color:var(--danger)}.log-list li.danger .msg{color:var(--danger)}.log-list li.ok .msg strong{color:var(--profit)}.scrim{z-index:50;background:#000000b3;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}.scrim.show{display:flex}.modal{background:var(--panel);border:1px solid var(--line);border-radius:10px;width:100%;max-width:420px;padding:24px}.modal.danger-border{border-top:3px solid var(--danger)}.modal h3{margin:0 0 8px;font-size:1rem;font-weight:600}.modal.danger-border h3{color:var(--danger)}.modal p{color:var(--paper-dim);margin:0 0 16px;font-size:.8rem;line-height:1.6}.modal .field{margin-bottom:12px}.modal label{color:var(--paper-dim);margin-bottom:6px;font-size:.72rem;display:block}.modal input[type=text],.modal input[type=password]{background:var(--ink);border:1px solid var(--line);width:100%;color:var(--paper);border-radius:var(--radius);padding:9px 12px;font-family:inherit;font-size:.85rem}.modal input:focus-visible{outline:2px solid var(--amber);outline-offset:1px}.modal .actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.login-screen{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;width:100%;max-width:360px;padding:32px}.login-card .field{margin-bottom:12px}.login-card label{color:var(--paper-dim);margin-bottom:6px;font-size:.72rem;display:block}.login-card input{background:var(--ink);border:1px solid var(--line);width:100%;color:var(--paper);border-radius:var(--radius);padding:9px 12px;font-family:inherit;font-size:.85rem}.login-card input:focus-visible{outline:2px solid var(--amber);outline-offset:1px}.login-card .btn-primary{margin-top:8px}
