:root{--bg: #0b0f14;--panel: #121822;--panel-2: #0e141c;--border: #1c2430;--text: #d0d4da;--muted: #7f8b99;--accent: #3b82f6;--up: #26a69a;--down: #ef5350;--warn: #e0b84c}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--panel)}.topbar h1{font-size:16px;margin:0;font-weight:600;letter-spacing:.4px}.topbar h1 span{color:var(--accent)}.status{margin-left:auto;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.status .dot{width:8px;height:8px;border-radius:50%;background:var(--warn)}.status.online .dot{background:var(--up)}.controls{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:14px 20px;border-bottom:1px solid var(--border);background:var(--panel-2)}.field{display:flex;flex-direction:column;gap:4px}.field label{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}.field select,.field input{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:6px 10px;font-size:13px;min-width:130px}button{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:7px 16px;font-size:13px;cursor:pointer}button:disabled{opacity:.5;cursor:default}button.active{background:var(--up)}.hint{color:var(--muted);font-size:12px}.error-banner{margin:14px 20px 0;padding:10px 14px;border:1px solid var(--down);border-radius:6px;color:#ffb4b4;background:#ef535014}.indicators{display:flex;flex-wrap:wrap;gap:8px;padding:10px 20px 0}.chip{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:4px 10px;font-size:12px;font-variant-numeric:tabular-nums;color:var(--text)}.chip.paper-long{border-color:#26a69a;color:#26a69a}.chip.paper-short{border-color:#ef5350;color:#ef5350}.chip.paper-flat{color:var(--muted)}.chart-wrap{flex:1;padding:14px 20px 4px;min-height:0}.footer{display:flex;align-items:center;gap:16px;padding:8px 20px 16px;color:var(--muted);font-size:12px}.footer .quote{color:var(--text);font-size:13px;font-variant-numeric:tabular-nums}.footer .quote.up{color:var(--up)}.footer .quote.down{color:var(--down)}.chain-panel{margin:14px 20px 0;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);overflow:hidden}.chain-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border)}.chain-toolbar select{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:5px 10px;font-size:12px}.chain-table-wrap{max-height:260px;overflow:auto}.chain-table{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}.chain-table th{position:sticky;top:0;background:var(--panel);color:var(--muted);font-size:10px;letter-spacing:.6px;padding:6px 8px;border-bottom:1px solid var(--border)}.chain-table td{padding:4px 8px;border-bottom:1px solid var(--border);text-align:center}.chain-table .ce-col{color:var(--up)}.chain-table .pe-col{color:var(--down)}.chain-table .strike-col{font-weight:600;color:var(--text)}.chain-table .contract-link{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;background:transparent;color:inherit;border:1px solid transparent;border-radius:4px;padding:2px 6px;font-size:12px}.chain-table .contract-link small{font-size:10px;color:var(--muted)}.chain-table .contract-link:hover{border-color:var(--accent);background:#3b82f61f}.chain-table .contract-link.active{border-color:var(--accent);background:#3b82f633}.chain-panel .error-banner{margin:10px}
