:root{--bg: #0b0e14;--panel: #121722;--panel-2: #182030;--panel-3: #1e2738;--line: #232c3d;--line-2: #2d3850;--text: #e2e7f0;--muted: #8b95a8;--faint: #5d6880;--accent: #4f7cff;--accent-2: #3b66e6;--accent-soft: rgba(79, 124, 255, .14);--buy: #1f9d6b;--buy-2: #23b37a;--sell: #d64545;--sell-2: #e95858;--up: #2fd08f;--down: #ff6b6b;--warn: #f2b84b;--radius: 10px;--radius-sm: 7px;--shadow: 0 8px 30px rgba(0, 0, 0, .35);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:13px;color:var(--text);background:var(--bg);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}input,select,textarea{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius-sm);padding:7px 9px;min-width:0;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent)}button{background:var(--panel-2);border:1px solid var(--line-2);border-radius:var(--radius-sm);padding:7px 12px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background .15s,border-color .15s,opacity .15s}button:hover:not(:disabled){background:var(--panel-3);border-color:var(--faint)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.primary:hover:not(:disabled){background:var(--accent-2)}button.buy{background:var(--buy);border-color:var(--buy);color:#fff}button.buy:hover:not(:disabled){background:var(--buy-2)}button.sell{background:var(--sell);border-color:var(--sell);color:#fff}button.sell:hover:not(:disabled){background:var(--sell-2)}button.danger-fill{background:var(--sell);border-color:var(--sell);color:#fff;font-weight:600}button.link{background:none;border:none;color:var(--accent);padding:3px 6px}button.link:hover:not(:disabled){background:var(--accent-soft)}button.link.danger{color:var(--down)}button.link.danger:hover:not(:disabled){background:#ff6b6b1f}button.ghost{background:transparent;border-color:transparent;color:var(--muted)}button.ghost:hover:not(:disabled){color:var(--text);background:var(--panel-2)}.icon-btn{background:none;border:none;padding:4px;color:var(--muted);border-radius:6px}.icon-btn:hover:not(:disabled){background:var(--panel-3);color:var(--text)}.icon{flex:none}.num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.up{color:var(--up)}.down{color:var(--down)}.muted{color:var(--muted)}.faint{color:var(--faint)}.error{color:var(--down)}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.row{display:flex;gap:8px;align-items:center}.row.end{justify-content:flex-end}.row.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--faint);flex:none}.dot.ok{background:var(--up);box-shadow:0 0 0 3px #2fd08f26}.dot.bad{background:var(--down);box-shadow:0 0 0 3px #ff6b6b26}.pill{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;background:var(--panel-3);color:var(--muted)}.pill.buy{background:#2fd08f21;color:var(--up)}.pill.sell{background:#ff6b6b21;color:var(--down)}.pill.warn{background:#f2b84b24;color:var(--warn)}.pill.ok{background:#2fd08f21;color:var(--up)}.pill.accent{background:var(--accent-soft);color:var(--accent)}.logo{display:inline-flex;align-items:center;gap:8px;font-size:15px;letter-spacing:-.01em}.logo-text{font-weight:500}.logo-text b{font-weight:700;color:var(--accent)}table{width:100%;border-collapse:collapse}th,td{padding:7px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{color:var(--muted);font-weight:500;font-size:12px;position:sticky;top:0;background:var(--panel);z-index:1}tbody tr:hover td{background:#ffffff05}tr.sel td{background:var(--accent-soft)!important}tfoot td{font-weight:600;background:var(--panel-2);position:sticky;bottom:0;border-bottom:none}.table-wrap{overflow:auto}td.actions{text-align:right;width:1%}td.actions .row{justify-content:flex-end;gap:2px}.empty{padding:28px;text-align:center;color:var(--faint)}.search{display:inline-flex;align-items:center;gap:6px;background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius-sm);padding:0 8px;color:var(--muted);min-width:240px}.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.search input{border:none;background:none;padding:7px 0;box-shadow:none!important;flex:1}.toasts{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:100;width:min(380px,calc(100vw - 32px))}.toast{display:flex;gap:10px;align-items:flex-start;padding:11px 12px;border-radius:var(--radius);background:var(--panel-2);border:1px solid var(--line-2);box-shadow:var(--shadow);animation:toast-in .18s ease-out;border-left:3px solid var(--accent)}.toast.success{border-left-color:var(--up)}.toast.success>.icon{color:var(--up)}.toast.error{border-left-color:var(--down)}.toast.error>.icon{color:var(--down)}.toast.warn{border-left-color:var(--warn)}.toast.warn>.icon{color:var(--warn)}.toast.info>.icon{color:var(--accent)}.toast-title{font-weight:600}.toast-detail{color:var(--muted);margin-top:2px;word-break:break-word}@keyframes toast-in{0%{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#05080ea6;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:60;padding:16px}.modal{width:min(600px,100%);max-height:90vh;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow)}.modal.wide{width:min(980px,100%)}.modal.small{width:min(420px,100%)}.modal h2{margin:0;font-size:16px}.modal h3{margin:4px 0 -4px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}.modal-head{margin-bottom:-2px}.login-wrap{min-height:100%;display:grid;place-items:center;padding:16px;background:radial-gradient(1200px 600px at 20% -10%,rgba(79,124,255,.16),transparent 60%),radial-gradient(900px 500px at 110% 110%,rgba(47,208,143,.08),transparent 60%),var(--bg)}.login{width:min(380px,100%);padding:28px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow)}.login .sub{color:var(--muted);margin:-6px 0 4px}.login label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:12px}.login button.primary{padding:10px;margin-top:4px}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.form-grid label,.field{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:12px}.form-grid label.check{flex-direction:row;align-items:center;gap:8px;color:var(--text);font-size:13px;padding-top:18px}.rules td{padding:5px 6px}.rules td input,.rules td select{width:100%;min-width:70px}.rules td select{min-width:120px}.rules td input.day{width:46px;min-width:46px;padding:6px 4px;text-align:center}.term{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto}.topbar{display:flex;align-items:center;gap:14px;padding:8px 14px;background:var(--panel);border-bottom:1px solid var(--line)}.acct-chip{display:flex;align-items:center;gap:8px;padding:4px 10px;border-radius:999px;background:var(--panel-2);border:1px solid var(--line);color:var(--muted)}.acct-chip b{color:var(--text);font-weight:600}.term-main{display:grid;grid-template-columns:300px minmax(0,1fr) 280px;gap:8px;padding:8px;min-height:0}.term-main>*{min-height:0}.panel-title{padding:9px 12px;border-bottom:1px solid var(--line);color:var(--muted);display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.mw{display:flex;flex-direction:column;overflow:hidden}.mw tbody tr{cursor:pointer}.mw td{padding:9px 10px}.mw td.sym{font-weight:600}.mw td.sym .desc{display:block;font-weight:400;font-size:11px;color:var(--faint)}.mw td.px{font-weight:600;font-size:14px}.flash-up{color:var(--up)}.flash-down{color:var(--down)}.chart-card{display:flex;flex-direction:column;flex:1;min-width:0;overflow:hidden}.chart-card .panel-title{text-transform:none;letter-spacing:0;font-size:13px}.chart-host{flex:1;min-height:240px}.tf{display:flex;gap:2px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);padding:2px}.tf button{padding:3px 8px;border:none;background:none;color:var(--muted);font-size:12px;border-radius:5px}.tf button.on{background:var(--accent-soft);color:var(--accent)}.order-panel{padding:12px;display:flex;flex-direction:column;gap:12px;overflow:auto}.order-panel .sym-head{display:flex;align-items:baseline;gap:8px}.order-panel .sym-head b{font-size:16px}.order-panel label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:12px;min-width:0}.order-panel input,.order-panel select{width:100%}.pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stepper{display:grid;grid-template-columns:32px 1fr 32px;gap:4px}.stepper input{text-align:center;font-weight:600}.stepper button{padding:0}.quick{display:flex;gap:4px}.quick button{flex:1;padding:4px 0;font-size:12px;color:var(--muted)}.prices{display:grid;grid-template-columns:1fr 1fr;gap:8px;position:relative}.prices button{padding:12px 6px;display:flex;flex-direction:column;align-items:center;gap:2px;border-radius:var(--radius)}.prices .lbl{font-size:11px;font-weight:700;letter-spacing:.08em;opacity:.9}.prices .px{font-size:19px;font-weight:700;font-variant-numeric:tabular-nums}.prices .spread{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--panel);border:1px solid var(--line-2);border-radius:999px;padding:2px 8px;font-size:11px;color:var(--muted)}.seg{display:flex;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);padding:2px;gap:2px}.seg button{flex:1;border:none;background:none;color:var(--muted);padding:6px 8px;border-radius:5px}.seg button.on{background:var(--panel-3);color:var(--text);font-weight:600}.spec{font-size:12px;color:var(--faint);display:grid;grid-template-columns:auto 1fr;gap:3px 10px}.spec span:nth-child(2n){color:var(--muted);text-align:right}.term-bottom{display:grid;grid-template-rows:auto 250px auto;padding:0 8px 8px}.tabs{display:flex;gap:4px;align-items:center}.tabs button{border-radius:var(--radius-sm) var(--radius-sm) 0 0;border:1px solid transparent;border-bottom:none;background:transparent;color:var(--muted);padding:7px 14px}.tabs button.on{background:var(--panel);color:var(--text);border-color:var(--line)}.tabs .count{background:var(--panel-3);color:var(--muted);border-radius:999px;padding:0 7px;font-size:11px}.tabs button.on .count{background:var(--accent-soft);color:var(--accent)}.bottom-body{border-radius:0 var(--radius) 0 0;overflow:auto;border-bottom:none}.summary{display:flex;flex-wrap:wrap;gap:6px 22px;padding:9px 14px;border:1px solid var(--line);border-radius:0 0 var(--radius) var(--radius);background:var(--panel-2)}.summary .k{color:var(--muted)}.summary b{font-weight:600;margin-left:6px;font-variant-numeric:tabular-nums}.hist-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel);z-index:2}.hist-bar input[type=date]{padding:4px 6px}.hist-bar+.table-wrap th,.hist-bar~table th{top:45px}.admin{height:100%;display:grid;grid-template-columns:236px minmax(0,1fr)}.side{background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.side .brand{padding:16px 18px 14px;display:flex;align-items:center;justify-content:space-between}.side .brand .tag{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--faint);border:1px solid var(--line-2);border-radius:4px;padding:1px 5px}.side nav{flex:1;overflow:auto;padding:4px 10px 10px}.side .section{font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--faint);padding:14px 10px 6px;font-weight:600}.side nav button{width:100%;background:none;border:none;justify-content:flex-start;gap:10px;padding:8px 10px;color:var(--muted);border-radius:var(--radius-sm)}.side nav button:hover{background:var(--panel-2);color:var(--text)}.side nav button.on{background:var(--accent-soft);color:var(--text)}.side nav button.on .icon{color:var(--accent)}.side nav .badge{margin-left:auto;background:var(--sell);color:#fff;border-radius:999px;font-size:10.5px;font-weight:700;padding:0 6px;min-width:18px;text-align:center}.side nav .count{margin-left:auto;color:var(--faint);font-size:11px}.side .foot{border-top:1px solid var(--line);padding:10px;display:flex;flex-direction:column;gap:6px}.side .foot .sess{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;padding:2px 8px}.side .foot button{justify-content:flex-start}.admin main{overflow:auto;padding:22px 26px;display:flex;flex-direction:column;gap:16px;min-width:0}.page-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.page-head h1{margin:0;font-size:20px;font-weight:650;letter-spacing:-.01em}.page-head .sub{color:var(--muted)}.admin h3{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}.stat-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.stat{padding:14px 16px;display:flex;flex-direction:column;gap:6px}.stat .k{color:var(--muted);font-size:12px;display:flex;align-items:center;gap:6px}.stat .v{font-size:22px;font-weight:650;font-variant-numeric:tabular-nums}.sess-card{padding:16px;display:flex;flex-direction:column;gap:10px}.sess-card .v{font-size:17px;font-weight:650;display:flex;align-items:center;gap:8px}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:12px}.kv span:nth-child(odd){color:var(--muted)}.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.totals{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted)}.totals b{color:var(--text);margin-left:5px;font-variant-numeric:tabular-nums}@media (max-width: 1100px){.term{height:auto;min-height:100%;grid-template-rows:auto auto auto}.term-main{grid-template-columns:1fr}.term-main .chart-card{height:380px}.admin{grid-template-columns:1fr}.side{border-right:none;border-bottom:1px solid var(--line)}.side nav{display:flex;overflow-x:auto;padding:6px;gap:2px}.side nav button{width:auto;white-space:nowrap}.side .section,.side .foot .sess{display:none}.admin main{padding:16px}}button.card.stat{align-items:flex-start;justify-content:flex-start;text-align:left;background:var(--panel);border-color:var(--line);padding:14px 16px;border-radius:var(--radius)}button.card.stat:hover{border-color:var(--line-2);background:var(--panel-2)}.admin main>*{flex-shrink:0}.mw td.sym .tick{display:block;font-weight:400;font-size:11px;color:var(--faint);font-variant-numeric:tabular-nums}.mw th:first-child,.mw td:first-child{padding-left:12px}.mw td,.mw th{padding-left:6px;padding-right:6px}.form-grid .span-all{grid-column:1 / -1;display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:12px}.multi{display:flex;flex-wrap:wrap;gap:6px}.chip{padding:4px 10px;border-radius:999px;font-size:12px;background:var(--panel-3);color:var(--muted);border:1px solid transparent}.chip.on{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.week{width:100%}.week td,.week th{padding:6px 8px;vertical-align:top}.week input{width:100%}.week .hint{font-size:11px;color:var(--faint)}.pill.closed{background:#ff6b6b21;color:var(--down)}tr.closed td{opacity:.55}.clock{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);padding:0 4px 8px;font-variant-numeric:tabular-nums}.clock span:nth-child(2){color:var(--text);font-weight:600}.clock .faint{margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:110px}input.invalid{border-color:var(--down)!important;color:var(--down)}.seg{display:inline-flex;background:var(--panel-3);border-radius:8px;padding:3px;gap:3px}.seg button{background:transparent;border:none;padding:6px 12px;border-radius:6px;color:var(--muted)}.seg button.on{background:var(--accent);color:#fff}.mw td.sym .lock{margin-right:4px;color:var(--warn);vertical-align:-1px}.mw tr.closed td.px{color:var(--faint)}.clock-chip{font-variant-numeric:tabular-nums}.perm-matrix{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.perm-sec{background:var(--panel-2, var(--panel-3));border-radius:10px;padding:10px 12px}.perm-sec h3{margin:0}label.check.perm{display:grid;grid-template-columns:18px 1fr;gap:2px 8px;align-items:start;padding:5px 0;color:var(--text);font-size:13px}label.check.perm code{grid-column:2;font-size:11px}tr.fresh td{background:var(--accent-soft);transition:background 1s}.side .me{display:flex;align-items:center;gap:6px;font-size:12px;padding:0 4px 6px;color:var(--muted)}.side .me b{color:var(--text);font-weight:600}.side .me .faint{margin-left:auto}
