:root{--bg-primary: #0f1117;--bg-secondary: #1a1d2e;--bg-card: #252836;--bg-hover: #2f3348;--text-primary: #e4e6eb;--text-secondary: #8b8d92;--text-dim: #5c5f6e;--accent-bid: #22c55e;--accent-ask: #ef4444;--accent-mid: #f59e0b;--accent-reservation: #3b82f6;--accent-pnl-positive: #22c55e;--accent-pnl-negative: #ef4444;--border: #363840;--radius: 8px;--radius-sm: 4px;--shadow: 0 2px 4px rgba(0,0,0,.3);--font-mono: "SF Mono", "Fira Code", "Consolas", monospace}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5;overflow-x:hidden}#root{min-height:100vh}.app{display:flex;flex-direction:column;min-height:100vh;padding:12px;gap:12px;max-width:1600px;margin:0 auto}.app-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border)}.app-header h1{font-size:18px;font-weight:700;background:linear-gradient(90deg,var(--accent-bid),var(--accent-reservation));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.app-body{display:grid;grid-template-columns:280px 1fr;gap:12px;flex:1}.sidebar,.main-content{display:flex;flex-direction:column;gap:12px}.charts-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.bottom-row{display:grid;grid-template-columns:2fr 1fr;gap:12px}.card{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);padding:12px;overflow:hidden}.card-title{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.param-panel{display:flex;flex-direction:column;gap:2px}.param-row{display:flex;flex-direction:column;gap:2px;padding:6px 0}.param-label{display:flex;justify-content:space-between;font-size:12px;color:var(--text-secondary)}.param-label code{font-family:var(--font-mono);font-size:11px;color:var(--text-dim)}.param-value{font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--text-primary)}.param-slider{width:100%;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--border);border-radius:2px;outline:none;cursor:pointer}.param-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent-reservation);cursor:pointer;border:2px solid var(--bg-card)}.param-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--accent-reservation);cursor:pointer;border:2px solid var(--bg-card)}.param-input-number{width:60px;padding:2px 4px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);font-size:12px;text-align:right}.controls{display:flex;align-items:center;gap:8px}.controls button{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-primary);font-size:13px;cursor:pointer;transition:all .15s}.controls button:hover{background:var(--bg-hover);border-color:var(--text-dim)}.controls button:active{transform:scale(.97)}.controls button.primary{background:var(--accent-reservation);border-color:var(--accent-reservation);color:#fff}.controls button.primary:hover{opacity:.9}.controls button.danger{border-color:var(--accent-ask);color:var(--accent-ask)}.controls button.danger:hover{background:#ef44441a}.speed-buttons{display:flex;gap:2px}.speed-buttons button{padding:4px 8px;font-size:12px;min-width:32px;justify-content:center}.speed-buttons button.active{background:var(--accent-mid);border-color:var(--accent-mid);color:#000;font-weight:700}.time-display{font-family:var(--font-mono);font-size:13px;color:var(--text-secondary);white-space:nowrap}.chart-container{width:100%;height:220px}.chart-container-sm{width:100%;height:160px}.chart-container-lg{width:100%;height:280px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.kpi-card{padding:8px 12px;background:var(--bg-primary);border-radius:var(--radius-sm);border:1px solid var(--border)}.kpi-label{font-size:11px;color:var(--text-dim);margin-bottom:2px}.kpi-value{font-family:var(--font-mono);font-size:16px;font-weight:700}.kpi-value.positive{color:var(--accent-pnl-positive)}.kpi-value.negative{color:var(--accent-pnl-negative)}.kpi-value.neutral{color:var(--text-primary)}.quote-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:8px}.quote-item{text-align:center;padding:6px;background:var(--bg-primary);border-radius:var(--radius-sm)}.quote-item .label{font-size:10px;color:var(--text-dim);text-transform:uppercase}.quote-item .value{font-family:var(--font-mono);font-size:16px;font-weight:700;margin-top:2px}.quote-item .value.mid{color:var(--accent-mid)}.quote-item .value.res{color:var(--accent-reservation)}.quote-item .value.bid{color:var(--accent-bid)}.quote-item .value.ask{color:var(--accent-ask)}.quote-item .value.spread{color:var(--text-primary)}.trade-log{max-height:180px;overflow-y:auto;font-family:var(--font-mono);font-size:11px}.trade-log::-webkit-scrollbar{width:4px}.trade-log::-webkit-scrollbar-track{background:var(--bg-primary)}.trade-log::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.trade-entry{display:grid;grid-template-columns:60px 50px 70px 50px 70px 70px;gap:4px;padding:3px 4px;border-bottom:1px solid var(--border);font-size:11px}.trade-entry:last-child{border-bottom:none}.trade-entry .time{color:var(--text-dim)}.trade-entry .side.buy{color:var(--accent-bid)}.trade-entry .side.sell{color:var(--accent-ask)}.trade-entry .pnl.positive{color:var(--accent-pnl-positive)}.trade-entry .pnl.negative{color:var(--accent-pnl-negative)}.trade-header{color:var(--text-dim);font-size:10px;font-weight:600;text-transform:uppercase;padding:4px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:60px 50px 70px 50px 70px 70px;gap:4px}.ob-container{display:flex;flex-direction:column;gap:2px}.ob-row{display:grid;grid-template-columns:1fr 60px 1fr;gap:4px;align-items:center;height:18px}.ob-bar{height:100%;border-radius:2px;transition:width .1s}.ob-bar.bid{background:#22c55e4d;float:right}.ob-bar.ask{background:#ef44444d}.ob-price{text-align:center;font-family:var(--font-mono);font-size:11px;font-weight:600}.ob-price.mid{color:var(--accent-mid);font-size:13px}.inv-bar{display:flex;align-items:center;gap:8px;padding:8px;background:var(--bg-primary);border-radius:var(--radius-sm)}.inv-bar-fill{height:24px;border-radius:4px;transition:width .2s}.inv-text{font-family:var(--font-mono);font-size:14px;font-weight:700}.export-btn{padding:4px 8px;font-size:11px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer}.export-btn:hover{background:var(--bg-hover)}@media (max-width: 1200px){.app-body{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:1fr 1fr;gap:12px}.charts-row,.bottom-row{grid-template-columns:1fr}.kpi-grid{grid-template-columns:repeat(2,1fr)}.quote-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 768px){.app-header{flex-direction:column;gap:8px;align-items:flex-start}.sidebar{grid-template-columns:1fr}.kpi-grid{grid-template-columns:1fr 1fr}.quote-grid{grid-template-columns:repeat(2,1fr)}}
