:root{--bg: #0e1117;--panel: #161b24;--panel-head: #1c2330;--border: #2a3344;--text: #d7dee8;--muted: #8a94a6;--up: #ff5d5d;--down: #4f8efb;--accent: #f0b429;--atm: #2c3a55}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,Segoe UI,Noto Sans KR,Roboto,sans-serif;font-size:13px}button{font:inherit;color:inherit;background:var(--panel-head);border:1px solid var(--border);border-radius:4px;padding:4px 10px;cursor:pointer}button:hover{border-color:var(--accent)}button.active{background:var(--accent);color:#14181f;font-weight:600}input{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:8px 10px}.up{color:var(--up)}.down{color:var(--down)}.muted{color:var(--muted)}.login-wrap{height:100%;display:flex;align-items:center;justify-content:center}.login-box{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:32px;width:320px;display:flex;flex-direction:column;gap:12px}.login-box h1{font-size:18px;margin:0 0 8px}.login-error{color:var(--up);font-size:12px}.topbar{display:flex;align-items:center;gap:12px;padding:8px 14px;background:var(--panel);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20;flex-wrap:wrap}.topbar h1{font-size:15px;margin:0;color:var(--accent)}.topbar .spacer{flex:1}.session-badge{padding:2px 8px;border-radius:10px;font-size:11px;border:1px solid var(--border)}.session-badge.day{color:#67d98b;border-color:#67d98b}.session-badge.night{color:var(--accent);border-color:var(--accent)}.dash-body{padding:10px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:6px;height:100%;display:flex;flex-direction:column;overflow:hidden}.panel-head{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--panel-head);border-bottom:1px solid var(--border);cursor:move;-webkit-user-select:none;user-select:none;font-weight:600;font-size:12px}.panel-head .controls{margin-left:auto;display:flex;gap:4px;cursor:default}.panel-head select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;font-size:11px;padding:2px 4px}.panel-body{flex:1;overflow:auto;position:relative}table.grid{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums;font-size:12px;white-space:nowrap}table.grid th,table.grid td{padding:3px 8px;text-align:right;border-bottom:1px solid #1d2433}table.grid th{position:sticky;top:0;background:var(--panel-head);color:var(--muted);font-weight:500;z-index:2}table.grid td.name,table.grid th.name{text-align:left}tr.atm-row td{background:var(--atm)}td.strike-col{background:var(--panel-head);font-weight:600;text-align:center!important}td.cheap{color:#67d98b}td.rich{color:var(--up)}.react-grid-item.react-grid-placeholder{background:var(--accent)!important;opacity:.2;border-radius:6px}.react-grid-item>.react-resizable-handle{z-index:5}.react-grid-item.resizing,.react-grid-item.react-draggable-dragging{z-index:10}.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:bottom right;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}
