:root{--bg: #0b0d10;--bg-2: #101419;--bg-3: #161b22;--line: #1f2731;--line-2: #2b3644;--fg: #d7dee8;--fg-2: #8b98a8;--fg-3: #5b6775;--acc: #19f08b;--acc-2: #0aa864;--acc-dim: rgba(25, 240, 139, .12);--warn: #ffb020;--err: #ff4d5e;--info: #5ab0ff;--buy: #19f08b;--sell: #ff5c6c;--mono: "JetBrains Mono", ui-monospace, Menlo, monospace;--disp: "Syne", "JetBrains Mono", sans-serif;--r: 4px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font:12.5px/1.45 var(--mono);-webkit-font-smoothing:antialiased;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:28px 28px}a{color:var(--info);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}input,select,textarea{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--r);padding:6px 8px;outline:none;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--acc-2);box-shadow:0 0 0 2px var(--acc-dim)}input[type=checkbox]{width:auto;accent-color:var(--acc)}button{background:var(--bg-3);border:1px solid var(--line-2);border-radius:var(--r);padding:6px 12px;cursor:pointer;transition:all .12s;letter-spacing:.02em}button:hover{border-color:var(--acc-2);color:#fff}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--acc);color:#04150c;border-color:var(--acc);font-weight:700}button.primary:hover{background:#4dff9f}button.danger{border-color:var(--err);color:var(--err)}button.danger:hover{background:#ff4d5e1f}button.sm{padding:3px 8px;font-size:11px}.app{display:grid;grid-template-columns:200px 1fr 380px;grid-template-rows:44px 1fr;height:100%}.topbar{grid-column:1 / -1;display:flex;align-items:center;gap:18px;padding:0 16px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,#0d1218,#0b0d10 60%)}.brand{font-family:var(--disp);font-weight:800;font-size:15px;letter-spacing:.08em;color:#fff}.brand em{color:var(--acc);font-style:normal}.pill{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border:1px solid var(--line-2);border-radius:999px;font-size:11px;color:var(--fg-2)}.pill .dot{width:7px;height:7px;border-radius:50%;background:var(--fg-3)}.pill.on .dot{background:var(--acc);box-shadow:0 0 8px var(--acc)}.pill.off .dot{background:var(--err)}.nav{border-right:1px solid var(--line);background:var(--bg-2);padding:10px 8px;display:flex;flex-direction:column;gap:2px}.nav button{text-align:left;background:transparent;border:1px solid transparent;padding:8px 10px;color:var(--fg-2);display:flex;justify-content:space-between}.nav button.active{background:var(--acc-dim);color:var(--acc);border-color:#19f08b40}.nav .k{color:var(--fg-3);font-size:10px}.main{overflow:auto;padding:16px 18px}.side{border-left:1px solid var(--line);background:var(--bg-2);display:flex;flex-direction:column;min-height:0}.side .tabs{display:flex;border-bottom:1px solid var(--line)}.side .tabs button{flex:1;background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;padding:8px 4px;color:var(--fg-2);font-size:11px}.side .tabs button.active{color:var(--acc);border-bottom-color:var(--acc)}.feed{overflow:auto;flex:1;padding:6px 8px;font-size:11.5px}.feed .row{padding:5px 6px;border-bottom:1px dashed var(--line);display:grid;grid-template-columns:58px 1fr;gap:8px;animation:in .25s ease-out}.feed .row .t{color:var(--fg-3)}.feed .row.warn{color:var(--warn)}.feed .row.error{color:var(--err)}.feed .buy{color:var(--buy)}.feed .sell{color:var(--sell)}.feed .ours{border-left:2px solid var(--acc);padding-left:4px}@keyframes in{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}h1{font-family:var(--disp);font-size:20px;font-weight:700;margin:0 0 4px;letter-spacing:.02em;color:#fff}h2{font-family:var(--disp);font-size:13px;font-weight:700;margin:0 0 10px;color:var(--fg-2);letter-spacing:.1em;text-transform:uppercase}.sub{color:var(--fg-3);margin-bottom:16px}.card{background:var(--bg-2);border:1px solid var(--line);border-radius:6px;padding:14px;margin-bottom:14px;position:relative}.card.acc{border-color:#19f08b59;box-shadow:inset 3px 0 0 var(--acc)}.card.warn{border-color:#ffb02066;box-shadow:inset 3px 0 0 var(--warn)}.grid{display:grid;gap:10px}.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:1fr 1fr 1fr}.g4{grid-template-columns:repeat(4,1fr)}.field label{display:block;color:var(--fg-3);font-size:11px;margin-bottom:4px;letter-spacing:.04em}.row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}table{width:100%;border-collapse:collapse}th{text-align:left;color:var(--fg-3);font-weight:500;font-size:11px;padding:6px 8px;border-bottom:1px solid var(--line-2);letter-spacing:.05em}td{padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top}tr:hover td{background:#ffffff05}.num{text-align:right;font-variant-numeric:tabular-nums}.mono{font-family:var(--mono)}.tag{display:inline-block;padding:1px 6px;border-radius:3px;font-size:10.5px;background:var(--bg-3);border:1px solid var(--line-2);color:var(--fg-2)}.tag.sell{color:var(--sell);border-color:#ff5c6c66}.tag.proj{color:#c9a0ff;border-color:#c9a0ff66;margin-left:4px}.tag.dev{color:var(--warn);border-color:#ffb02066}.tag.bundle{color:var(--acc);border-color:#19f08b59}.tag.trade{color:var(--info);border-color:#5ab0ff59}.stat{display:flex;flex-direction:column;gap:2px}.stat .v{font-size:18px;font-weight:700;color:#fff;font-variant-numeric:tabular-nums}.stat .l{color:var(--fg-3);font-size:11px}.bar{height:6px;background:var(--bg-3);border-radius:3px;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--acc-2),var(--acc))}.msg{padding:8px 10px;border-radius:var(--r);margin-top:10px;white-space:pre-wrap;word-break:break-all}.msg.err{background:#ff4d5e1a;border:1px solid rgba(255,77,94,.35);color:#ff8b96}.msg.ok{background:var(--acc-dim);border:1px solid rgba(25,240,139,.3);color:var(--acc)}.picker{max-height:220px;overflow:auto;border:1px solid var(--line-2);border-radius:var(--r);background:var(--bg)}.picker label{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:8px;padding:4px 8px;border-bottom:1px solid var(--line);cursor:pointer;align-items:center}.picker label>span:nth-child(2){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.picker label:hover{background:var(--bg-3)}.picker .bal{color:var(--fg-3);font-size:11px;white-space:nowrap}.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden}.seg button{border:0;border-radius:0;background:transparent;padding:5px 12px;color:var(--fg-2)}.seg button.on{background:var(--acc-dim);color:var(--acc)}.seg button.on.sell{background:#ff5c6c26;color:var(--sell)}.lock{display:flex;align-items:center;justify-content:center;height:100%}.lock .card{width:380px}details summary{cursor:pointer;color:var(--fg-2)}code{background:var(--bg-3);padding:1px 4px;border-radius:3px;font-size:11px}.hint{color:var(--fg-3);font-size:11px;margin-top:4px}.kv{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;font-size:11.5px}.kv b{color:var(--fg-3);font-weight:500}.pair-select{position:relative}.pair-trigger{width:100%;display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--bg);text-align:left}.pair-trigger b{color:#fff}.pair-name{color:var(--fg-3);margin-left:auto;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60%}.pair-caret{color:var(--fg-3)}.pair-avatar{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:#04150c;letter-spacing:0;flex:none}.pair-menu{position:absolute;z-index:20;top:calc(100% + 4px);left:0;right:0;min-width:380px;background:var(--bg-2);border:1px solid var(--line-2);border-radius:6px;box-shadow:0 12px 32px #00000080;padding:6px}.pair-list{max-height:280px;overflow:auto;margin-top:6px}.pair-item{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:4px;cursor:pointer}.pair-item:hover{background:var(--bg-3)}.pair-item.on{background:var(--acc-dim)}.pair-item.off{opacity:.45;cursor:not-allowed}.pair-item b{color:#fff}.pair-custom{display:flex;gap:6px;margin-top:6px;border-top:1px solid var(--line);padding-top:6px}.with-presets{display:grid;grid-template-columns:190px minmax(0,1.1fr) minmax(0,1fr);gap:10px;align-items:start}.preset-panel{position:sticky;top:0}.preset-list{margin-top:8px;display:flex;flex-direction:column;gap:4px;max-height:70vh;overflow:auto}.preset-item{border:1px solid var(--line);border-radius:4px;padding:6px 8px;cursor:pointer}.preset-item:hover{border-color:var(--line-2);background:var(--bg-3)}.preset-item.on{border-color:#19f08b66;background:var(--acc-dim)}.preset-name{font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preset-meta{color:var(--fg-3);font-size:10.5px}.preset-actions{display:flex;gap:4px;margin-top:4px}.only-m{display:none}@media(max-width:900px){.only-m{display:inline-flex}.hide-m{display:none!important}html,body,#root{height:auto;min-height:100%}body{font-size:13px;background-size:0}.app{display:flex;flex-direction:column;height:auto;min-height:100vh}.topbar{position:sticky;top:0;z-index:30;height:auto;min-height:44px;flex-wrap:wrap;gap:8px;padding:8px 10px}.brand{font-size:13px}.nav{position:sticky;top:0;z-index:29;flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line);padding:6px 8px;gap:4px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav button{flex:none;white-space:nowrap;padding:7px 10px}.nav .k{display:none}.main{padding:12px 10px 90px;overflow:visible}h1{font-size:18px}.side{position:fixed;left:0;right:0;bottom:0;height:62vh;z-index:40;border-left:0;border-top:1px solid var(--line-2);box-shadow:0 -12px 32px #0000008c;transform:translateY(100%);transition:transform .2s ease-out}.side.open{transform:none}.side-fab{position:fixed;right:12px;bottom:14px;z-index:41;border-radius:999px;padding:10px 14px;background:var(--bg-3);border:1px solid var(--line-2);box-shadow:0 6px 20px #00000080;font-weight:700}.side-fab.has-new{border-color:var(--acc);color:var(--acc)}.grid.g2,.grid.g3,.grid.g4{grid-template-columns:1fr}.grid>.field,.grid>div{grid-column:auto!important}.with-presets{grid-template-columns:1fr}.preset-panel{position:static}.preset-list{flex-direction:row;overflow-x:auto;max-height:none;padding-bottom:4px}.preset-item{flex:none;min-width:140px}.card{padding:12px 10px;overflow-x:auto}.card>div,.card>div>div,.main [style*="display: flex"],.main [style*="display:flex"]{flex-wrap:wrap}.main [style*="width: 2"],.main [style*="width: 1"]{max-width:100%}table{min-width:max-content}th,td{white-space:nowrap;padding:6px}input,select,textarea{font-size:16px;padding:8px;max-width:100%}input.sm,select.sm{font-size:14px;padding:4px 6px}button{padding:8px 12px}button.sm{padding:5px 8px;font-size:12px}.seg{flex-wrap:wrap}.seg button{padding:6px 10px}.pair-menu{min-width:0;left:0;right:0}.lock .card{width:min(380px,92vw)}.kv{grid-template-columns:1fr;gap:2px}.kv b{margin-top:6px}.stat .v{font-size:16px}.picker{max-height:45vh}.picker label{grid-template-columns:18px minmax(0,1fr)}.picker label>.bal{grid-column:2;white-space:normal}.feed .row{grid-template-columns:52px 1fr}svg{max-width:100%}}@media(max-width:480px){.topbar .pill{font-size:10px;padding:1px 6px}}.paint-stage{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:14px;margin-bottom:14px}.paint-bubbles{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.bubble{touch-action:none;position:relative;aspect-ratio:1;border-radius:50%;border:2px solid var(--c);background:radial-gradient(circle at 50% 40%,color-mix(in srgb,var(--c) 22%,transparent),var(--bg-2) 70%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;transition:transform .08s,box-shadow .12s;box-shadow:0 0 0 0 var(--c)}.bubble:hover{box-shadow:0 0 18px color-mix(in srgb,var(--c) 45%,transparent)}.bubble.active{transform:scale(1.06);box-shadow:0 0 32px color-mix(in srgb,var(--c) 70%,transparent)}.bubble.disabled{opacity:.35;cursor:not-allowed}.bubble-label{font-family:var(--disp);font-weight:800;font-size:16px;color:#fff;letter-spacing:.04em}.bubble-sub{font-size:10.5px;color:var(--fg-3)}.bubble-amt{position:absolute;bottom:14%;font-size:13px;font-weight:700;color:var(--c);font-variant-numeric:tabular-nums}.bubble-ring{position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:50%;border:2px solid var(--c);opacity:.5;pointer-events:none;transition:transform .05s linear}.paint-slots{display:flex;flex-direction:column;gap:10px}.slot{border:2px dashed var(--line-2);border-radius:8px;padding:14px 12px;display:flex;flex-direction:column;gap:4px;min-height:76px;justify-content:center;transition:all .12s}.slot b{color:#fff;font-family:var(--disp);letter-spacing:.06em}.slot span{font-size:11px;color:var(--fg-3)}.slot.hot{border-color:var(--acc);background:var(--acc-dim);box-shadow:0 0 20px #19f08b40}.slot-running{border:1px solid var(--line);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:6px}@media(max-width:900px){.paint-stage{grid-template-columns:1fr}.paint-bubbles{grid-template-columns:repeat(2,1fr);gap:10px}.bubble-label{font-size:15px}.paint-slots{flex-direction:row}.slot{flex:1;min-height:64px;padding:10px 8px}}
