:root{--bg: #0e1116;--panel: #161b22;--panel-2: #1b2230;--border: #232a33;--text: #d6dde6;--muted: #8b97a6;--green: #22c55e;--green-dim: #0f6b35;--red: #ef4444;--red-dim: #7f1d1d;--blue: #2f81f7;--amber: #f59e0b}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:13px/1.4 Segoe UI,system-ui,sans-serif}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.topbar{display:flex;align-items:center;gap:20px;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap}.brand{display:flex;align-items:center;gap:12px}.logo{background:var(--blue);color:#fff;font-weight:800;letter-spacing:1px;padding:6px 10px;border-radius:6px}.title{font-weight:700;font-size:15px}.subtitle{color:var(--muted);font-size:11px}.session{display:flex;align-items:center;gap:14px;margin-left:auto}.badge{padding:5px 12px;border-radius:14px;font-weight:700;font-size:12px}.phase-OPEN{background:var(--green-dim);color:#d7ffe6}.phase-PRE_OPENING,.phase-PRE_CLOSING{background:#7a5a00;color:#ffeaa7}.phase-BREAK{background:#334155;color:#cbd5e1}.phase-CLOSED{background:#3a2326;color:#ffd2d2}.mode{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.5px}.clock{font-variant-numeric:tabular-nums;font-weight:700;font-size:13px;color:var(--text)}.conn.on{color:var(--green)}.conn.off{color:var(--muted)}.schedule{display:flex;gap:6px;flex-basis:100%}.sched-chip{display:flex;flex-direction:column;align-items:center;gap:1px;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;padding:4px 10px;color:var(--muted);min-width:80px}.sched-chip .sched-time{font-size:10px;opacity:.8;font-variant-numeric:tabular-nums}.sched-chip.active{background:var(--green-dim);border-color:var(--green);color:#eafff2}.sched-chip.active .sched-time{color:#bff3d2}.phase-controls{display:flex;gap:6px;flex-basis:100%}.phase-controls button{background:var(--panel-2);color:var(--muted);border:1px solid var(--border);padding:5px 10px;border-radius:6px;cursor:pointer;font-size:12px}.phase-controls button:hover{color:var(--text)}.phase-controls button.active{background:var(--blue);color:#fff;border-color:var(--blue)}.toolbar{display:flex;align-items:flex-end;gap:12px;padding:10px 12px;background:var(--panel);border-bottom:1px solid var(--border)}.tb-symbol{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted)}.tb-symbol select{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:7px 8px;font-size:13px;min-width:280px}.big{border:none;border-radius:6px;cursor:pointer;color:#fff;font-weight:800;font-size:14px;padding:9px 30px;letter-spacing:.5px}.big.buy{background:var(--green-dim)}.big.buy:hover{background:#15803d}.big.sell{background:var(--red-dim)}.big.sell:hover{background:#991b1b}.big.auto{background:var(--panel-2);color:var(--text);border:1px solid var(--border)}.big.auto:hover{border-color:var(--blue)}.big.auto.on{background:var(--amber);color:#1a1a1a;border-color:var(--amber)}.stress-control{display:flex;align-items:center;gap:8px}.big.stress{background:var(--panel-2);color:var(--text);border:1px solid var(--border)}.big.stress:hover{border-color:var(--red)}.big.stress.on{background:var(--red-dim);color:#fff;border-color:var(--red)}.stress-readout{font-variant-numeric:tabular-nums;font-size:12px;font-weight:700;color:var(--green);white-space:nowrap}.stress-drop{color:var(--amber);font-weight:600}.clock-control{display:flex;align-items:center;gap:6px;margin-left:auto}.clk-mode{font-size:11px;font-weight:700;padding:4px 8px;border-radius:4px}.clk-mode.virtual{background:#7a5a00;color:#ffeaa7}.clk-mode.system{background:var(--panel-2);color:var(--muted)}.clk-input{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:6px 8px;font-size:13px;font-variant-numeric:tabular-nums}.clk-input::-webkit-calendar-picker-indicator{filter:invert(.8)}.clk-btn{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:7px 12px;cursor:pointer;font-size:12px;font-weight:600}.clk-btn.set:hover{background:var(--blue);color:#fff;border-color:var(--blue)}.clk-btn.sys:hover{color:var(--text);border-color:var(--muted)}.fix-note{margin-left:auto;font-size:10px;color:var(--muted);text-transform:none;letter-spacing:0}.fix-status{font-weight:700;font-size:12px}.fix-status.on{color:var(--green)}.fix-status.off{color:var(--muted)}.seq-input{width:60px;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:4px 6px;font-size:12px;margin-right:4px;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.seq-input::-webkit-outer-spin-button,.seq-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.seq-btn{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:4px 10px;cursor:pointer;font-size:12px;font-weight:600}.seq-btn.set:hover{background:var(--blue);color:#fff;border-color:var(--blue)}.seq-btn.reset:hover{background:var(--amber);color:#1a1a1a;border-color:var(--amber)}.fix-actions{display:flex;gap:4px;white-space:nowrap}.seq-btn.disc{color:var(--red)}.seq-btn.disc:hover{background:var(--red-dim);color:#fff;border-color:var(--red)}.expand-btn{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:11px;margin-right:5px;padding:0 2px}.expand-btn:hover{color:var(--blue)}.fix-detail-row td{background:var(--panel-2);padding:8px 14px 10px 30px}.fix-detail{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:2px 18px}.cfg{display:flex;justify-content:space-between;gap:10px;font-size:11px;padding:3px 0;border-bottom:1px solid var(--border)}.cfg-k{color:var(--muted)}.cfg-v{color:var(--text);font-family:ui-monospace,monospace}.workspace{flex:1;min-height:0;display:grid;grid-template-columns:1fr 340px;grid-template-rows:1fr auto;gap:12px;padding:12px}.main-tabs{grid-column:1;grid-row:1;display:flex;flex-direction:column;min-width:0;min-height:0}.running-trade-col{grid-column:2;grid-row:1 / span 2;min-width:0;min-height:0}.orderbooks{grid-column:1;grid-row:2;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;min-width:0}@media (max-width: 1100px){.app{height:auto;overflow:visible}.workspace{grid-template-columns:1fr;grid-template-rows:auto}.running-trade-col{grid-column:1;grid-row:auto}.orderbooks{grid-row:auto;grid-template-columns:repeat(2,1fr)}}.tabs{display:flex;gap:4px}.tabs button{background:var(--panel);color:var(--muted);border:1px solid var(--border);border-bottom:none;border-radius:6px 6px 0 0;padding:8px 18px;cursor:pointer;font-size:13px;font-weight:600}.tabs button.active{background:var(--panel-2);color:var(--text)}.tab-content{flex:1;min-height:0;overflow:hidden}.tab-content .ref-lists{height:100%;min-height:0;grid-template-rows:minmax(0,1fr)}.panel.running{display:flex;flex-direction:column;min-height:0}.tab-content .panel.running .table-wrap,.running-trade-col .panel.running .table-wrap{flex:1;max-height:none}.tab-content .panel,.running-trade-col .panel{height:100%}.panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:12px}.panel h2{margin:0 0 10px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);display:flex;align-items:center;gap:8px}.board-tag{background:var(--panel-2);color:var(--blue);padding:1px 6px;border-radius:4px;font-size:11px}.order-entry label{display:flex;flex-direction:column;gap:4px;margin-bottom:8px;font-size:11px;color:var(--muted)}.order-entry .row{display:flex;gap:8px}.order-entry .row label{flex:1;min-width:0}.order-entry select,.order-entry input{width:100%;min-width:0;box-sizing:border-box;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:7px 8px;font-size:13px}.order-entry input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.order-entry input[type=number]::-webkit-outer-spin-button,.order-entry input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.order-entry select.buy{color:var(--green)}.order-entry select.sell{color:var(--red)}.submit{width:100%;padding:10px;border:none;border-radius:6px;cursor:pointer;font-weight:700;font-size:14px;color:#fff;margin-top:4px}.submit.buy{background:var(--green-dim)}.submit.buy:hover{background:#15803d}.submit.sell{background:var(--red-dim)}.submit.sell:hover{background:#991b1b}.order-msg{margin-top:8px;padding:7px 10px;border-radius:6px;font-size:12px}.order-msg.ok{background:#0f2f1c;color:#b6f5cd}.order-msg.err{background:#34191c;color:#ffc1c1}.orderbook{display:flex;flex-direction:column}.ob-header{display:flex;align-items:center;gap:6px;margin-bottom:6px}.ob-sym{font-weight:800;font-size:14px}.ob-last{margin-left:auto;font-weight:800;font-variant-numeric:tabular-nums}.ob-last em{font-size:11px;font-weight:600;font-style:normal}.ob-last.up{color:var(--green)}.ob-last.down{color:var(--red)}.ob-stats{display:flex;gap:12px;font-size:11px;color:var(--muted);margin-bottom:6px}.ob-stats b{color:var(--text);font-variant-numeric:tabular-nums}.ob-stats .up b{color:var(--green)}.ob-stats .down b{color:var(--red)}table.depth{width:100%;border-collapse:collapse;table-layout:fixed;font-variant-numeric:tabular-nums;font-size:12px}table.depth th{color:var(--muted);font-weight:600;font-size:10px;text-transform:uppercase;padding:3px 6px;border-bottom:1px solid var(--border);text-align:right}table.depth td{padding:2px 6px;text-align:right;border-bottom:1px solid #1a212b;height:20px}table.depth .freq{color:var(--blue);width:13%}table.depth .lot{width:21%;color:var(--text)}table.depth .px{width:16%;font-weight:700}table.depth .px.bid{color:var(--red);background:#ef444412}table.depth .px.ask{color:var(--green);background:#22c55e12}table.depth tfoot td{border-top:1px solid var(--border);border-bottom:none;font-weight:700;padding-top:4px}table.depth .total-label{text-align:center;color:var(--muted);font-size:11px}.empty{text-align:center;color:var(--muted);padding:16px;font-style:italic}.table-wrap{max-height:340px;overflow:auto}.running table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.running th{position:sticky;top:0;background:var(--panel);color:var(--muted);font-weight:600;text-align:left;padding:6px 8px;font-size:11px;border-bottom:1px solid var(--border)}.running td{padding:5px 8px;border-bottom:1px solid #1c232d}.running .num,.running th.num{text-align:right}.multi{position:relative;margin-left:auto}.multi-btn{display:inline-flex;align-items:center;gap:4px;max-width:200px;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:3px 8px;font-size:11px;font-weight:500;cursor:pointer;text-transform:none;letter-spacing:0}.multi-btn:hover{border-color:var(--blue)}.multi-btn .caret{color:var(--muted);font-size:9px}.multi-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:50;min-width:210px;max-height:320px;overflow:auto;padding:4px;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 12px 30px #00000080}.multi-all{width:100%;text-align:left;background:var(--panel-2);color:var(--muted);border:none;border-radius:5px;padding:5px 8px;cursor:pointer;font-size:11px;margin-bottom:2px}.multi-all:hover{color:var(--text)}.multi-item{display:flex;align-items:center;gap:7px;padding:4px 8px;border-radius:5px;cursor:pointer;font-size:12px;font-weight:500;color:var(--text);text-transform:none;letter-spacing:0}.multi-item:hover{background:var(--panel-2)}.multi-item input{accent-color:var(--blue);cursor:pointer}.muted{color:var(--muted)}.mono{font-family:ui-monospace,monospace;font-size:11px}.sym{font-weight:700}.buy{color:var(--green);font-weight:600}.sell{color:var(--red);font-weight:600}.agg{font-weight:700;text-align:center}.agg-B{color:var(--green)}.agg-S{color:var(--red)}.agg-A{color:var(--amber)}.st{padding:1px 6px;border-radius:4px;font-size:11px;font-weight:600}.st-NEW{background:#14304d;color:#9cd2ff}.st-PARTIALLY_FILLED{background:#3a3211;color:#ffe08a}.st-FILLED{background:#0f2f1c;color:#9bf3bf}.st-CANCELLED{background:#2a2f37;color:#b9c4d0}.st-REJECTED{background:#34191c;color:#ffb3b3}.st-REPLACED{background:#2a2147;color:#cbb6ff}.st-EXPIRED{background:#2a2f37;color:#b9c4d0}.ord-actions{display:flex;gap:4px;white-space:nowrap}button.cancel{background:transparent;border:1px solid var(--border);color:var(--red);border-radius:4px;cursor:pointer;padding:1px 7px;font-size:12px}button.cancel:hover{background:var(--red-dim);color:#fff}button.amend{background:transparent;border:1px solid var(--border);color:var(--blue);border-radius:4px;cursor:pointer;padding:1px 7px;font-size:12px}button.amend:hover{background:var(--blue);color:#fff}.modal-symbol-static{flex:1;font-weight:600;font-size:13px}.amend-body{grid-template-columns:1fr!important}.running tr.clickable{cursor:pointer}.running tr.clickable:hover td{background:var(--panel-2)}.running tr.sel td{background:#14233a}.running tr.sel .sym,.watchlist td.sym{color:var(--blue)}.watchlist td.up{color:var(--green);font-weight:600}.watchlist td.down{color:var(--red);font-weight:600}.ref-lists{display:grid;grid-template-columns:1.4fr 1fr;gap:12px}@media (max-width: 1100px){.ref-lists{grid-template-columns:1fr}}.board-note{margin-left:auto;background:var(--panel-2);color:var(--blue);padding:1px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:none;letter-spacing:0}.ob-symbol{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:2px 4px;font-size:13px;font-weight:700;text-transform:none}.orderbook.compact{padding:8px}.orderbook.compact h2{font-size:12px;margin-bottom:6px}.orderbook.compact .ladder-row{height:19px}.orderbook.compact .ob-meta{font-size:10px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:100;display:flex;align-items:flex-start;justify-content:center;padding-top:7vh}.modal{background:var(--panel);border:1px solid var(--border);border-top:3px solid var(--blue);border-radius:10px;width:760px;max-width:94vw;box-shadow:0 20px 60px #00000080}.modal.buy{border-top-color:var(--green)}.modal.sell{border-top-color:var(--red)}.modal-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border)}.modal-side{font-weight:800;padding:3px 12px;border-radius:6px;color:#fff}.modal-side.buy{background:var(--green-dim)}.modal-side.sell{background:var(--red-dim)}.modal-symbol{flex:1;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:7px 8px;font-size:13px}.modal-close{background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:6px;cursor:pointer;padding:4px 10px;font-size:14px}.modal-close:hover{color:#fff;border-color:var(--red)}.modal-body{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:14px}.modal-body .order-entry{display:flex;flex-direction:column;gap:0}.modal-book .orderbook{background:var(--panel-2);height:100%}@media (max-width: 640px){.modal-body{grid-template-columns:1fr}}.login-wrap{height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(1200px 600px at 50% -10%,rgba(47,129,247,.14),transparent 60%),var(--bg);padding:20px}.login-splash{color:var(--muted);font-size:13px;letter-spacing:.3px}.login-card{width:100%;max-width:380px;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:26px 26px 20px;display:flex;flex-direction:column;gap:15px;box-shadow:0 18px 50px #00000073}.login-head{display:flex;align-items:center;gap:13px;margin-bottom:4px}.login-logo{background:var(--blue);color:#fff;font-weight:800;letter-spacing:1px;padding:9px 12px;border-radius:8px;font-size:16px}.login-title{font-weight:700;font-size:16px}.login-sub{color:var(--muted);font-size:10.5px;margin-top:2px}.login-field{display:flex;flex-direction:column;gap:6px;font-size:11px;color:var(--muted)}.login-field>span{text-transform:uppercase;letter-spacing:.5px;font-weight:600}.login-field input{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:7px;padding:10px 11px;font-size:14px;width:100%}.login-field input:focus{outline:none;border-color:var(--blue)}.login-field input:disabled{opacity:.6}.login-pw{position:relative;display:flex;align-items:center}.login-pw input{padding-right:54px}.login-eye{position:absolute;right:6px;background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:11px;font-weight:700;padding:6px 8px;text-transform:uppercase;letter-spacing:.5px}.login-eye:hover{color:var(--blue)}.login-error{background:var(--red-dim);color:#ffd6d6;border:1px solid var(--red);border-radius:7px;padding:8px 11px;font-size:12px}.login-btn{background:var(--blue);color:#fff;border:none;border-radius:7px;padding:11px;font-size:14px;font-weight:700;cursor:pointer;margin-top:2px}.login-btn:hover:not(:disabled){background:#1f6fe0}.login-btn:disabled{opacity:.5;cursor:not-allowed}.login-foot{text-align:center;color:var(--muted);font-size:10px;margin-top:6px}.logout-btn{background:var(--panel-2);color:var(--muted);border:1px solid var(--border);border-radius:6px;padding:5px 12px;font-size:12px;font-weight:600;cursor:pointer}.logout-btn:hover{color:#fff;border-color:var(--red);background:var(--red-dim)}
