:root{--bg: #282828;--panel: #323232;--raised: #3c3c3c;--line: #484848;--text: #f2f2f2;--muted: #a0a0a0;--green: #2fd66b;--green-dim: #1c4a2e;--red: #ff5c5c;--red-dim: #4d1f1f;--amber: #ffc247;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:13px/1.4 ui-monospace,SF Mono,Menlo,Consolas,monospace;-webkit-font-smoothing:antialiased}button,input{font:inherit;color:inherit}button{cursor:pointer;background:transparent;border:1px solid var(--line);border-radius:6px}button:disabled{opacity:.4;cursor:not-allowed}.app{max-width:520px;margin:0 auto;padding:12px 12px 40px;display:flex;flex-direction:column;gap:12px}header .brand{display:flex;align-items:center;gap:8px;letter-spacing:.14em;font-size:12px}.dot{width:7px;height:7px;border-radius:50%;background:var(--red)}.dot.on{background:var(--green)}.badge{font-size:10px;padding:2px 6px;border-radius:4px;letter-spacing:.1em}.badge.dry{background:var(--red-dim);color:var(--red)}.badge.live{background:var(--green-dim);color:var(--green)}.market-title{margin-top:6px;color:var(--muted);font-size:12px}.picker form{display:flex;gap:6px}.picker input{flex:1;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:8px 10px}.picker form button{padding:0 14px;letter-spacing:.1em}.events{margin-top:8px;max-height:380px;overflow-y:auto;border:1px solid var(--line);border-radius:8px}.event{border-bottom:1px solid var(--line)}.event:last-child{border-bottom:none}.event-head{display:grid;grid-template-columns:auto 1fr auto auto;grid-template-areas:"icon title bell chev" "icon meta bell chev";align-items:center;gap:2px 8px;width:100%;padding:8px 10px;border:none;border-radius:0;text-align:left}.event.open .event-head{background:#ffffff0f}.event-head img{grid-area:icon;width:26px;height:26px;border-radius:5px;object-fit:cover}.event-head .title{grid-area:title;font-size:12px;line-height:1.3}.event-head .meta{grid-area:meta;font-size:10px;color:var(--muted)}.event-head .chev{grid-area:chev;color:var(--muted);font-size:10px}.event-head .bell{grid-area:bell;font-style:normal;font-size:13px;line-height:1;padding:4px 6px;border-radius:5px;cursor:pointer;opacity:.3;filter:grayscale(1)}.event-head .bell:hover{opacity:.75;background:#ffffff0f}.event-head .bell.on{opacity:1;filter:none}.legs{list-style:none;margin:0;padding:0 10px 8px}.legs li{padding:6px 0;border-top:1px solid var(--line)}.leg-name{font-size:11px;color:var(--muted);margin-bottom:5px}.outcomes{display:flex;flex-wrap:wrap;gap:6px}.outcomes button{display:flex;align-items:center;gap:6px;padding:5px 9px;font-size:11px;max-width:100%}.outcomes .label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px}.outcomes em{color:var(--muted);font-style:normal;font-variant-numeric:tabular-nums}.tabs{display:flex;gap:6px;overflow-x:auto;margin-top:8px;padding-bottom:4px}.tabs button{display:flex;flex-direction:column;align-items:flex-start;position:relative;padding:8px 24px 8px 11px;white-space:nowrap;font-weight:600;background:var(--raised)}.tabs button:hover{border-color:var(--muted)}.tabs button.active{border-color:var(--green);color:var(--green);background:var(--green-dim)}.tabs button.active small{color:#a7e9bf}.tabs small{color:var(--muted);font-size:10px}.tabs i{position:absolute;top:4px;right:6px;font-style:normal;color:var(--muted)}.sizes{display:flex;gap:8px}.sizes label{flex:1;display:flex;flex-direction:column;gap:4px;font-size:10px;letter-spacing:.12em;color:var(--muted)}.sizes input{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:7px 9px}.flash{padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--panel);font-size:12px}.ladder{display:flex;flex-direction:column;gap:10px}.ladder.empty{padding:32px 0;text-align:center;color:var(--muted)}.strategy-bar{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.strategy-bar button{padding:14px 4px;letter-spacing:.08em;font-size:12px}.strategy-bar.sell button{border-color:var(--red);color:#ff8a8a;background:#ef444414}.strategy-bar.buy button{border-color:var(--green);color:#86efac;background:#21c55d14}.book-head{display:flex;justify-content:space-between;padding:5px 8px;border-radius:5px;font-size:10px;letter-spacing:.1em}.book-head.ask{background:#ef44441a;color:#ff8a8a}.book-head.bid{background:#21c55d1a;color:#86efac}.book-head .total{font-variant-numeric:tabular-nums}.ladder-head,.ladder-row{display:grid;grid-template-columns:56px 44px 1fr 68px;align-items:center;gap:8px}.ladder-row{position:relative;isolation:isolate}.depth-bar{position:absolute;right:0;top:2px;bottom:2px;z-index:-1;border-radius:3px 0 0 3px;pointer-events:none}.ladder-row.ask .depth-bar{background:#ef444424}.ladder-row.bid .depth-bar{background:#21c55d24}.ladder-row .size{text-align:right;font-size:12px;font-variant-numeric:tabular-nums}.ladder-head{font-size:10px;letter-spacing:.14em;color:var(--muted);padding:0 2px}.ladder-head .right{text-align:right}.ladder-body{display:flex;flex-direction:column}.ladder-side{--ladder-row: 3.4rem;display:flex;flex-direction:column;height:calc(var(--ladder-rows, 8) * var(--ladder-row));overflow-y:auto;overscroll-behavior:contain}.ladder-side.ask>:first-child{margin-top:auto}.ladder-side::-webkit-scrollbar{width:8px}.ladder-side::-webkit-scrollbar-thumb{background:#4a4a4a;border-radius:4px}.ladder-side::-webkit-scrollbar-thumb:hover{background:#5c5c5c}.ladder-side::-webkit-scrollbar-track{background:transparent}.ladder-row{min-height:var(--ladder-row);padding:8px 2px;border-bottom:1px solid var(--line)}.ladder-row.thin{opacity:.45}.ladder-row .price{font-size:17px;font-weight:600}.ladder-row .price em{font-style:normal;font-size:11px}.ladder-row.ask .price{color:var(--red)}.ladder-row.bid .price{color:var(--green)}.ladder-row .coef{color:var(--muted)}.actions{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.actions button{padding:9px 0;font-size:11px;font-weight:600}.actions .buy{border-color:var(--green);color:#86efac;background:#21c55d12}.actions .sell{border-color:var(--red);color:#ff8a8a;background:#ef444412}.spread{height:2.3rem;padding:0 8px;font-size:10px;font-weight:600;letter-spacing:.1em;color:var(--text);border-top:1px solid #5f5f5f;border-bottom:1px solid #5f5f5f;background:#ffffff1a;display:flex;align-items:center;justify-content:space-between;gap:8px;white-space:nowrap;overflow:hidden}.spread span{overflow:hidden;text-overflow:ellipsis}.ladder-row.open{border-bottom-style:dashed;background:#ffffff0a}.ladder-row.mid .price{color:#c9d4e4}.ladder-row .size.tag{font-size:10px;letter-spacing:.1em;color:var(--muted)}.ladder-row .size.tag.mid{color:var(--amber)}.ladder-row.mine{box-shadow:inset 2px 0 0 var(--amber);background:#f5b6420f}.mine-bar{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}.mine-order{display:flex;align-items:center;gap:6px;padding:2px 3px 2px 6px;border:1px solid rgba(245,182,66,.4);border-radius:4px;background:#f5b64212;font-size:10px;color:var(--muted)}.mine-order b{letter-spacing:.06em}.mine-order b.buy{color:var(--green)}.mine-order b.sell{color:var(--red)}.mine-order .left{color:var(--text);font-variant-numeric:tabular-nums}.mine-order .done,.mine-order .sim{color:var(--amber)}.mine-order .cancel{padding:0 5px;border-color:var(--red);color:var(--red)}.tasks{border:1px solid var(--line);border-radius:8px;background:var(--panel)}.tasks.empty{padding:14px;color:var(--muted);text-align:center}.tasks-head{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border-bottom:1px solid var(--line);font-size:10px;letter-spacing:.14em;color:var(--muted)}.tasks-head button{padding:4px 8px;font-size:10px;margin-left:6px}.tasks ul{list-style:none;margin:0;padding:0;max-height:260px;overflow-y:auto}.task{padding:8px 10px;border-bottom:1px solid var(--line)}.task-top{display:flex;align-items:center;gap:8px;font-size:11px}.task .side.buy{color:var(--green)}.task .side.sell{color:var(--red)}.task .strategy{color:var(--text)}.task .status{margin-left:auto;color:var(--muted);letter-spacing:.08em}.task.filled .status{color:var(--green)}.task.failed .status,.task.skipped .status{color:var(--red)}.task .cancel{padding:0 6px;border-color:var(--red);color:var(--red)}.task-meta,.task-log{font-size:11px;color:var(--muted);margin-top:3px}.error{color:var(--red);font-size:11px}.panel-head{display:flex;align-items:center;gap:8px;width:100%;padding:10px;border:none;border-bottom:1px solid var(--line);font-size:10px;font-weight:600;letter-spacing:.14em;color:var(--text);background:#ffffff0a}button.panel-head{border-radius:8px 8px 0 0}button.panel-head:hover{background:#ffffff17}.panel-head.sub{border-top:1px solid var(--line)}.panel-head button{margin-left:auto;padding:3px 8px;font-size:10px}.panel-head .count,.panel-head .chev{margin-left:auto}.panel-head .tag{padding:1px 5px;border-radius:3px;background:var(--red-dim);color:var(--red);letter-spacing:.06em}.portfolio,.tape,.admin{border:1px solid var(--line);border-radius:8px;background:var(--panel)}.portfolio ul,.tape ul,.admin .recent{list-style:none;margin:0;padding:0}.portfolio .empty,.tape .empty{margin:0;padding:12px 10px;color:var(--muted);font-size:11px}.position,.order{padding:8px 10px;border-bottom:1px solid var(--line)}.position .line,.order .line{display:flex;align-items:center;gap:8px;font-size:12px}.position .name,.order .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.position .pnl{margin-left:auto;font-variant-numeric:tabular-nums}.pnl.up{color:var(--green)}.pnl.down{color:var(--red)}.position .meta,.order .meta{margin-top:3px;font-size:11px;color:var(--muted)}.order .side.buy{color:var(--green)}.order .side.sell{color:var(--red)}.order .cancel{margin-left:auto;padding:0 6px;border-color:var(--red);color:var(--red)}.tape ul{max-height:220px;overflow-y:auto}.print{display:grid;grid-template-columns:62px 36px 52px 1fr 84px;gap:6px;padding:4px 10px;font-size:11px;font-variant-numeric:tabular-nums;border-bottom:1px solid rgba(255,255,255,.07)}.print .time,.print .who{color:var(--muted)}.print .who{text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.print.buy .side,.print.buy .price{color:var(--green)}.print.sell .side,.print.sell .price{color:var(--red)}.print.mine{background:#21c55d12;border-left:2px solid var(--green)}.prefs-toggle,.funds-toggle{width:100%;padding:13px 12px 13px 14px;text-align:left;font-size:11px;font-weight:600;letter-spacing:.1em;color:var(--text);background:var(--raised);border:1px solid var(--line);border-left:3px solid var(--muted);border-radius:8px}.prefs-toggle:hover,.funds-toggle:hover{background:#464646;border-color:var(--muted)}.funds-toggle{border-left-color:var(--amber)}.prefs-toggle{border-left-color:var(--green)}.prefs{display:flex;flex-direction:column;gap:10px;padding:12px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.prefs label{display:flex;flex-direction:column;gap:4px;font-size:10px;letter-spacing:.12em;color:var(--muted)}.prefs input{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:8px 10px;color:var(--text);letter-spacing:normal}.prefs small{letter-spacing:normal;font-size:10px}.prefs-tabs{display:flex;gap:6px;overflow-x:auto}.prefs-tabs button{flex:1;padding:6px 4px;font-size:10px;letter-spacing:.06em;color:var(--muted);white-space:nowrap}.prefs-tabs button.active{border-color:var(--green);color:#86efac}.prefs-note{margin:0;font-size:11px;color:var(--muted);line-height:1.45}.prefs-row{display:flex;gap:8px}.prefs-row label{flex:1}.prefs-check{flex-direction:row;align-items:center;gap:8px;letter-spacing:normal;font-size:11px}.prefs-check input{width:auto;accent-color:var(--green)}.prefs-actions{display:flex;gap:8px}.prefs-actions button{flex:1;padding:9px;font-size:11px}.prefs-actions button[type=submit]{border-color:var(--green);color:#86efac;background:#21c55d14}.funds{display:flex;flex-direction:column;gap:10px;padding:12px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.funds label{display:flex;flex-direction:column;gap:4px;font-size:10px;letter-spacing:.12em;color:var(--muted)}.funds input,.funds select{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:8px 10px;color:var(--text);letter-spacing:normal}.funds small{letter-spacing:normal;font-size:10px}.funds-address{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--bg)}.funds-address code{flex:1;font-size:11px;word-break:break-all}.funds-address button{padding:5px 9px;font-size:10px}.funds-warn{margin:0;padding:8px 10px;border:1px solid var(--red-dim);border-radius:6px;font-size:11px;line-height:1.45;color:#fca5a5}.funds .prefs-actions button.danger{border-color:var(--red);color:#fca5a5;background:#ef444414}.funds .prefs-actions button.danger:disabled{border-color:var(--line);color:var(--muted);background:none}.funds-close{padding:7px;font-size:10px;color:var(--muted)}.linkish{padding:0;border:none;background:none;color:var(--muted);text-decoration:underline;font-size:10px}.tags{display:flex;gap:6px;overflow-x:auto;margin-top:8px;padding-bottom:4px}.tags button{padding:5px 9px;font-size:10px;white-space:nowrap;color:var(--muted)}.tags button.active{border-color:var(--green);color:#86efac}.tags.sub{margin-top:4px;padding-left:10px;border-left:1px solid var(--line)}.tags.sub button{padding:4px 7px;font-size:9px}.tags button small{margin-left:5px;opacity:.5}.results .liq{font-size:10px;color:var(--muted);align-self:center}.picker .empty{margin:8px 0 0;font-size:11px;color:var(--muted)}.ladder-legend{display:flex;flex-wrap:wrap;align-items:center;gap:3px 12px;padding:6px 2px 0;font-size:10px;color:var(--muted)}.ladder-legend i{display:inline-block;width:16px;height:8px;border-radius:2px;margin-right:5px;vertical-align:middle}.swatch-thin{background:var(--red);opacity:.45}.swatch-open{border:1px dashed var(--muted);background:#ffffff0a}.swatch-mine{background:var(--amber)}.ladder-legend .pos{margin-left:auto}.ladder-head .center{text-align:center}.admin-body{padding:10px}.admin-body dl{display:grid;grid-template-columns:90px 1fr;gap:4px 10px;margin:0 0 10px;font-size:11px}.admin-body dt{color:var(--muted)}.admin-body dd{margin:0}.admin .recent li{display:flex;align-items:center;gap:8px;padding:5px 0;border-top:1px solid var(--line);font-size:11px}.admin .recent .email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin .recent .wallet{margin-left:auto;color:var(--muted)}.app.loading{padding:60px 0;text-align:center;color:var(--muted)}.auth-gate{max-width:360px;margin:0 auto;padding:64px 16px;display:flex;flex-direction:column;gap:12px}.auth-gate h1{margin:0;font-size:15px;letter-spacing:.18em}.auth-gate .sub{margin:0;color:var(--muted);font-size:12px}.auth-gate form{display:flex;flex-direction:column;gap:8px;margin-top:8px}.auth-gate input{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:10px}.auth-gate form button{padding:12px;border-color:var(--green);color:#86efac;background:#21c55d14;letter-spacing:.1em}.auth-gate .switch{border:none;color:var(--muted);padding:4px 0;text-align:left;font-size:11px}.auth-gate .note{margin:8px 0 0;color:var(--muted);font-size:11px;line-height:1.5}.account{border:1px solid var(--line);border-radius:8px;background:var(--panel)}.account-summary{width:100%;border:none;display:flex;align-items:center;gap:8px;padding:9px 10px;font-size:11px}.pill{padding:2px 6px;border-radius:4px;font-size:10px;letter-spacing:.08em;background:var(--red-dim);color:var(--red)}.pill.ready{background:var(--green-dim);color:var(--green)}.account-summary .wallet{color:var(--muted)}.account-summary .budget{margin-left:auto;color:var(--muted)}.account-summary .balance{color:var(--text)}.account-body{padding:10px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:10px}.account-body dl{display:grid;grid-template-columns:96px 1fr;gap:4px 10px;margin:0;font-size:11px}.account-body dt{color:var(--muted);letter-spacing:.06em}.account-body dd{margin:0;word-break:break-all}.account-body>button{padding:10px;border-color:var(--green);color:#86efac;background:#21c55d14;letter-spacing:.1em;font-size:11px}.account-body .signout{border-color:var(--line);color:var(--muted);background:transparent}.account-body .note{margin:0;color:var(--muted);font-size:11px;line-height:1.5}
