:root{--bg:#0d1117;--panel:#161b22;--panel-2:#1c2333;--border:#30363d;--border-soft:#21262d;--text:#f0f6fc;--text-2:#c9d1d9;--text-3:#9aa5b1;--green:#3fb950;--green-bg:#3fb9501a;--red:#ff7b72;--red-bg:#f851491a;--blue:#58a6ff;--amber:#e3b341;--mono:ui-monospace, "SF Mono", "Cascadia Code", Consolas, "Courier New", monospace;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans KR", sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);margin:0}body{color:var(--text);font-family:var(--sans);letter-spacing:.1px;-webkit-text-size-adjust:100%;font-size:14px;font-weight:400;line-height:1.5}#root{width:100%;min-height:100vh}button{font-family:inherit}.tabular{font-variant-numeric:tabular-nums}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#30363d;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#3d444d}::-webkit-scrollbar-track{background:0 0}.ob-container{background:var(--panel);border:1px solid var(--border);width:320px;font-family:var(--mono);border-radius:8px;font-size:14px;overflow:hidden}.ob-header{background:var(--panel-2);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:11px 16px;display:flex}.ob-title{color:var(--text);font-size:15px;font-weight:700}.ob-status{font-size:12px;font-weight:600}.ob-status.connected{color:var(--green)}.ob-status.disconnected{color:var(--text-3)}.ob-table{border-collapse:collapse;width:100%}.ob-table thead th{color:var(--text-3);text-align:right;background:var(--panel-2);padding:7px 12px;font-size:12px;font-weight:600}.ob-table thead th:last-child{text-align:center}.ob-table td{text-align:right;font-variant-numeric:tabular-nums;padding:5px 12px}.ask-row{background:var(--red-bg)}.bid-row{background:var(--green-bg)}.ask-price{color:var(--red);font-weight:700}.bid-price{color:var(--green);font-weight:700}.qty{color:var(--text-2)}.cnt{color:var(--text-3);text-align:center}.spread-row td{text-align:center;color:var(--text-2);background:var(--panel-2);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:7px;font-size:12px;font-weight:600}.trade-tape{background:var(--panel);border:1px solid var(--border);border-radius:8px;flex-direction:column;width:220px;min-height:400px;padding:16px;display:flex}.tape-header{color:var(--text-3);border-bottom:1px solid var(--border-soft);justify-content:space-between;margin-bottom:4px;padding:4px 0 8px;font-size:12px;font-weight:600;display:flex}.tape-list{flex:1;overflow-y:auto}.tape-row{font-variant-numeric:tabular-nums;justify-content:space-between;padding:4px 0;font-size:14px;animation:.3s fadeIn;display:flex}.tape-price{color:var(--text);font-weight:600}.tape-qty{color:var(--text-3)}.tape-empty{color:var(--text-3);text-align:center;margin-top:12px;font-size:13px}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.price-chart{background:var(--panel);border:1px solid var(--border);border-radius:8px;width:100%;padding:16px}.chart-head{justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.chart-head .panel-title{margin-bottom:0}.chart-last{font-variant-numeric:tabular-nums;letter-spacing:-.3px;font-size:18px;font-weight:800}.chart-empty{color:var(--text-3);justify-content:center;align-items:center;height:500px;font-size:13px;display:flex}.metrics-panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;width:100%;padding:8px 16px}.metrics-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-top:4px;display:grid}.metric-card{background:var(--bg);border:1px solid var(--border-soft);text-align:center;border-radius:6px;padding:8px 12px}.metric-value{color:var(--blue);font-variant-numeric:tabular-nums;letter-spacing:-.5px;font-size:24px;font-weight:800}.metric-label{color:var(--text-3);margin-top:6px;font-size:12px;font-weight:600}.metrics-note{color:var(--text-3);text-align:center;margin-top:8px;font-size:12px;line-height:1.5}.metrics-note b{color:var(--text-2);font-weight:700}.vi-banner{color:#fff;background:linear-gradient(90deg,#7f1d1d,#b91c1c);border:1px solid #ef4444;border-radius:8px;align-items:center;gap:8px;margin-bottom:12px;padding:10px 16px;font-size:14px;font-weight:600;display:flex;box-shadow:0 0 16px #ef444466}.vi-dot{background:#fde047;border-radius:50%;width:10px;height:10px;animation:1s ease-in-out infinite vi-pulse}.vi-countdown{opacity:.85;font-weight:500}@keyframes vi-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.replay-panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;margin-top:12px;padding:14px 16px}.replay-btn{color:#fff;cursor:pointer;background:#238636;border:none;border-radius:6px;width:100%;margin-top:8px;padding:9px 12px;font-size:14px;font-weight:700}.replay-btn:hover:not(:disabled){background:#2ea043}.replay-btn:disabled{opacity:.6;cursor:default}.replay-result{color:var(--text-2);margin-top:10px;font-size:14px;line-height:1.7}.replay-result b{color:var(--text);font-weight:700}.replay-ok{color:var(--green);margin-top:4px;font-weight:700}.replay-diff{color:var(--amber);margin-top:4px;font-weight:700}.app{flex-direction:column;min-height:100vh;display:flex}.app-header{border-bottom:1px solid var(--border-soft);background:var(--bg);text-align:center;padding:18px 32px}.app-header h1{color:var(--text);letter-spacing:-.4px;font-size:22px;font-weight:800}.sim-badge{color:#fff;vertical-align:middle;background:#1f6feb;border-radius:12px;margin-left:10px;padding:3px 9px;font-size:12px;font-weight:700}.disclaimer{color:var(--text-3);margin-top:6px;font-size:12.5px}.app-main{flex-direction:column;flex:1;align-items:stretch;gap:16px;padding:24px 32px;display:flex}.main-row{justify-content:center;align-items:flex-start;gap:16px;display:flex}.main-col{flex-direction:column;flex:0 0 560px;gap:16px;width:560px;display:flex}.panel-title{color:var(--text-2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;font-size:13px;font-weight:700}
