:root{--bg-base: #0f0f12;--bg-surface: #141418;--bg-elevated: #1c1c22;--bg-hover: #242429;--bg-active: #2a2a30;--text: #f0f0f5;--text2: rgba(240, 240, 245, .62);--text3: rgba(240, 240, 245, .42);--line: rgba(255, 255, 255, .07);--line2: rgba(255, 255, 255, .12);--primary: #7d4bdc;--primary-m: rgba(125, 75, 220, .16);--primary-ink: #d2c0fb;--success: #10b981;--success-m: rgba(16, 185, 129, .12);--danger: #f43f5e;--danger-m: rgba(244, 63, 94, .12);--warning: #f59e0b;--warning-m: rgba(245, 158, 11, .12);--info: #5fa8e8;--info-m: rgba(95, 168, 232, .14);--scrim: rgba(0, 0, 0, .55);--tabbar: rgba(15, 15, 18, .97);--sans: "Plus Jakarta Sans", -apple-system, "Segoe UI", sans-serif;--mono: "JetBrains Mono", "SF Mono", Menlo, monospace;color-scheme:dark}body.light-theme{--bg-base: #f6f6f9;--bg-surface: #ffffff;--bg-elevated: #f0f0f4;--bg-hover: #e8e8ee;--bg-active: #e0e0e8;--text: #16161c;--text2: rgba(22, 22, 28, .66);--text3: rgba(22, 22, 28, .46);--line: rgba(0, 0, 0, .08);--line2: rgba(0, 0, 0, .14);--primary-m: rgba(125, 75, 220, .12);--primary-ink: #5b2fb8;--success: #059669;--danger: #e11d48;--warning: #b45309;--info: #2563eb;--scrim: rgba(20, 20, 30, .35);--tabbar: rgba(255, 255, 255, .97);color-scheme:light}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:var(--bg-base);color:var(--text);font:14px/1.5 var(--sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}button{font:inherit;color:inherit}button:focus-visible,input:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.shell{height:100dvh;display:flex;flex-direction:column}.app-h{display:flex;align-items:center;gap:10px;padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top));border-bottom:1px solid var(--line);background:var(--bg-base);flex:none}.logo{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,#7d4bdc,#a46bf5);display:grid;place-items:center;font:700 .72rem var(--sans);color:#fff;flex:none}.brand{font-weight:700}.brand small{color:var(--text3);font-weight:500;margin-left:4px}.hstats{margin-left:auto;display:flex;gap:14px;align-items:center;font:500 .78rem var(--mono);color:var(--text2)}.hstats b{color:var(--text);font-weight:600}.dot{width:7px;height:7px;border-radius:50%;background:var(--success);display:inline-block;margin-right:5px;box-shadow:0 0 8px var(--success)}.dot.off{background:var(--danger);box-shadow:0 0 8px var(--danger)}.body{flex:1;min-height:0;display:flex}.side{display:none}.scroll{flex:1;min-width:0;overflow-y:auto;padding:14px 16px 24px;display:flex;flex-direction:column;gap:12px}.tabbar{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);background:var(--tabbar);padding:6px 4px calc(8px + env(safe-area-inset-bottom));flex:none}.tab{display:flex;flex-direction:column;align-items:center;gap:2px;font:600 .68rem var(--sans);color:var(--text3);background:none;border:0;padding:6px 0;cursor:pointer;position:relative}.tab svg{width:22px;height:22px}.tab[aria-current=true]{color:#b593f8}body.light-theme .tab[aria-current=true]{color:var(--primary)}.bdg{font:600 .62rem var(--mono);background:var(--primary);color:#fff;border-radius:999px;padding:0 5px}.tab .bdg{position:absolute;top:2px;left:calc(50% + 6px)}.hide-phone,.kpi.desk-only{display:none}@media (min-width: 820px){.tabbar{display:none}.hide-phone{display:inline}.only-phone{display:none}.kpi.desk-only{display:block}.app-h{padding:12px 20px}.side{display:flex;flex-direction:column;gap:4px;width:210px;flex:none;border-right:1px solid var(--line);padding:12px 10px}.nav-btn{display:flex;align-items:center;gap:10px;font:600 .88rem var(--sans);color:var(--text2);background:none;border:0;border-radius:9px;padding:9px 10px;cursor:pointer;text-align:left}.nav-btn svg{width:18px;height:18px;flex:none}.nav-btn:hover{background:var(--bg-elevated)}.nav-btn[aria-current=true]{background:var(--primary-m);color:var(--primary-ink)}.nav-btn .bdg{margin-left:auto}.scroll{padding:20px 24px 32px}.scroll>*{max-width:1180px;width:100%}}.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}@media (min-width: 820px){.kpis{grid-template-columns:repeat(3,1fr)}}@media (min-width: 1100px){.kpis{grid-template-columns:repeat(5,1fr)}}.kpi{background:var(--bg-surface);border:1px solid var(--line);border-radius:12px;padding:10px 12px;min-width:0}.kpi .l{font:600 .64rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text3)}.kpi .v{font:600 1.15rem var(--mono);margin-top:2px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi .s{font-size:.72rem;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;background:var(--bg-surface);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:.8rem;color:var(--text2)}.status b{color:var(--text);font-weight:600}.pill{font:600 .64rem var(--mono);letter-spacing:.05em;padding:2px 8px;border-radius:999px;white-space:nowrap}.p-on{background:var(--success-m);color:var(--success)}.p-man{background:var(--warning-m);color:var(--warning)}.p-zone{background:var(--info-m);color:var(--info)}.p-off{background:var(--bg-hover);color:var(--text3)}.p-red{background:var(--danger-m);color:var(--danger)}.p-pur{background:var(--primary-m);color:var(--primary-ink)}.pos{color:var(--success)!important}.neg{color:var(--danger)!important}.up{color:var(--success)}.dn{color:var(--danger)}.nt{color:var(--text3)}.sect{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.sect h3{margin:0;font:700 .92rem var(--sans)}.sect span{font-size:.75rem;color:var(--text3)}.cards2{display:flex;flex-direction:column;gap:12px}@media (min-width: 1100px){.cards2{display:grid;grid-template-columns:1fr 1fr;align-items:start}}.col{display:flex;flex-direction:column;gap:10px;min-width:0}.empty{background:var(--bg-surface);border:1px dashed var(--line2);border-radius:14px;padding:16px;color:var(--text3);font-size:.84rem;text-align:center}.trade{background:var(--bg-surface);border:1px solid var(--line);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:10px}.trade.long{border-left:3px solid var(--success)}.trade.short{border-left:3px solid var(--danger)}.trade.pend{border-left:3px solid var(--primary)}.tr-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sym{font:700 1rem var(--sans)}.tf{font:500 .72rem var(--mono);color:var(--text3)}.rnow{margin-left:auto;font:600 1.05rem var(--mono)}.lv{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.lv>div{background:var(--bg-elevated);border-radius:8px;padding:6px 8px;min-width:0}.lv .l,.detail .l{font:600 .6rem var(--mono);color:var(--text3);letter-spacing:.06em}.lv .v,.detail .v{font:500 .78rem var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 420px){.lv{grid-template-columns:repeat(2,1fr)}}.ladder{position:relative;height:34px;margin:2px 8px}.ladder .bar{position:absolute;left:0;right:0;top:14px;height:6px;border-radius:3px}.ladder .tick{position:absolute;top:24px;transform:translate(-50%);font:500 .6rem var(--mono);color:var(--text3);white-space:nowrap}.ladder .mk{position:absolute;top:8px;width:2px;height:18px;transform:translate(-1px);border-radius:1px}.ladder .now{position:absolute;top:11px;width:12px;height:12px;border-radius:50%;transform:translate(-6px);background:var(--text);box-shadow:0 0 0 3px var(--line2)}.tr-a{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.btn{font:600 .8rem var(--sans);border-radius:9px;padding:8px 12px;border:1px solid var(--line2);background:var(--bg-elevated);color:var(--text);cursor:pointer}.btn:disabled{opacity:.5;cursor:default}.btn.red{background:var(--danger-m);border-color:transparent;color:var(--danger)}.btn.pri{background:var(--primary);border-color:transparent;color:#fff}.btn.grn{background:var(--success);border-color:transparent;color:#03140d}.note{font-size:.76rem;color:var(--text3)}.confirm{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.8rem;color:var(--text2);background:var(--danger-m);border-radius:10px;padding:8px 10px}.feed{display:flex;flex-direction:column;background:var(--bg-surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}.feed>div+div{border-top:1px solid var(--line)}.row{display:grid;grid-template-columns:52px 1fr auto;gap:10px;align-items:center;padding:10px 12px;border:0;cursor:pointer;background:none;text-align:left;width:100%}.row:hover{background:var(--bg-elevated)}.row .t{font:500 .7rem var(--mono);color:var(--text3)}.row .m{min-width:0}.row .m b{font-weight:700}.row .m .sub{display:block;font-size:.74rem;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row .r{display:flex;flex-direction:column;align-items:flex-end;gap:3px}.side-txt{font:600 .72rem var(--mono)}.detail{background:var(--bg-elevated);border-radius:10px;padding:10px;margin:0 12px 10px;display:flex;flex-direction:column;gap:10px}.detail .g{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}@media (max-width: 420px){.detail .g{grid-template-columns:repeat(2,1fr)}}.filters{display:flex;gap:6px;flex-wrap:wrap}.chip{font:600 .74rem var(--sans);padding:5px 10px;border-radius:999px;background:var(--bg-elevated);color:var(--text2);border:1px solid var(--line);cursor:pointer}.chip[aria-pressed=true]{background:var(--primary-m);color:var(--primary-ink);border-color:#7d4bdc66}.trendgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}@media (min-width: 820px){.trendgrid{grid-template-columns:repeat(3,1fr)}}@media (min-width: 1100px){.trendgrid{grid-template-columns:repeat(4,1fr)}}.tcell{background:var(--bg-surface);border:1px solid var(--line);border-radius:12px;padding:9px 10px;display:flex;flex-direction:column;gap:6px;min-width:0}.tcell.ok-l{border-color:#10b98173}.tcell.ok-s{border-color:#f43f5e73}.tcell .h{display:flex;align-items:center;gap:6px}.tcell .h b{font-size:.86rem}.arrows{display:flex;gap:10px;font:500 .72rem var(--mono);color:var(--text3)}.res{display:grid;grid-template-columns:1fr;gap:12px}@media (min-width: 1100px){.res{grid-template-columns:1.3fr 1fr}}.box{background:var(--bg-surface);border:1px solid var(--line);border-radius:14px;padding:12px}.box svg{width:100%;height:auto;display:block}.bars{display:flex;flex-direction:column;gap:8px}.bars .b{display:grid;grid-template-columns:62px 1fr 64px;gap:8px;align-items:center;font:500 .76rem var(--mono)}.bars .track{height:10px;background:var(--bg-elevated);border-radius:5px;position:relative;overflow:hidden}.bars .fill{position:absolute;left:0;top:0;bottom:0;border-radius:5px}.set{display:flex;flex-direction:column;background:var(--bg-surface);border:1px solid var(--line);border-radius:14px}.srow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border-top:1px solid var(--line)}.srow:first-child{border-top:0}.srow .l b{display:block;font-weight:600;font-size:.86rem}.srow .l span{font-size:.74rem;color:var(--text3)}.num{display:flex;align-items:center;gap:6px}.num button{width:30px;height:30px;border-radius:8px;border:1px solid var(--line2);background:var(--bg-elevated);cursor:pointer;font-weight:700}.num output{font:600 .85rem var(--mono);min-width:56px;text-align:center}.num output.changed{color:var(--warning)}.sw{width:44px;height:26px;border-radius:999px;background:var(--bg-hover);border:0;position:relative;cursor:pointer;flex:none}.sw:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:left .15s;box-shadow:0 1px 3px #0000004d}.sw[aria-checked=true]{background:var(--success)}.sw[aria-checked=true]:after{left:21px}.chips{display:flex;flex-wrap:wrap;gap:6px;padding:10px 12px;border-top:1px solid var(--line)}.chips span{font:500 .7rem var(--mono);padding:3px 8px;border-radius:7px;background:var(--bg-elevated);color:var(--text2)}.chips span.a{background:var(--success-m);color:var(--success)}.err{background:var(--danger-m);color:var(--danger);border-radius:10px;padding:8px 10px;font-size:.8rem}.toast{position:fixed;left:50%;bottom:calc(86px + env(safe-area-inset-bottom));transform:translate(-50%);background:var(--bg-active);border:1px solid var(--line2);padding:9px 14px;border-radius:10px;font-size:.82rem;z-index:60;max-width:calc(100% - 32px);box-shadow:0 8px 30px #00000059}@media (min-width: 820px){.toast{bottom:28px}}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);z-index:50;display:flex;align-items:flex-end;justify-content:center}.sheet{background:var(--bg-surface);border:1px solid var(--line2);width:100%;max-height:94dvh;overflow-y:auto;border-radius:18px 18px 0 0;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom)}@media (min-width: 820px){.scrim{align-items:center}.sheet{width:min(720px,92vw);border-radius:16px}.grab{display:none}}.grab{width:38px;height:4px;border-radius:2px;background:var(--line2);margin:8px auto 0;flex:none}.sh-h{display:flex;align-items:center;gap:8px;padding:10px 14px;flex-wrap:wrap}.sh-h b{font-size:1rem}.sh-x{margin-left:auto;background:var(--bg-elevated);border:0;color:var(--text2);width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:1.05rem}.cv-wrap{position:relative;background:#fff;min-height:200px}.cv-wrap canvas{display:block;width:100%;height:auto}.cv-msg{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#787b86;font-size:.84rem}.sh-b{padding:12px 14px 16px;display:flex;flex-direction:column;gap:10px}.tfs{display:flex;gap:6px;align-items:center}.tfs button{font:600 .74rem var(--mono);padding:5px 11px;border-radius:7px;background:var(--bg-elevated);color:var(--text2);border:0;cursor:pointer}.tfs button[aria-pressed=true]{background:#7d4bdc4d;color:var(--primary-ink)}.login{min-height:100dvh;display:grid;place-items:center;padding:24px 16px}.login form{width:min(360px,100%);background:var(--bg-surface);border:1px solid var(--line);border-radius:18px;padding:24px;display:flex;flex-direction:column;gap:14px}.login h1{margin:0;font:700 1.2rem var(--sans)}.login label{display:flex;flex-direction:column;gap:6px;font-size:.8rem;color:var(--text2)}.login input{font:500 .95rem var(--sans);padding:11px 12px;border-radius:10px;border:1px solid var(--line2);background:var(--bg-elevated);color:var(--text)}.login .btn{padding:11px;font-size:.9rem}@media (prefers-reduced-motion: reduce){*{transition:none!important}}
