:root{--bg: #0e1116;--panel: #161b22;--line: #2b3340;--text: #e6edf3;--muted: #8b98a5;--accent: #3d8bfd;--up: #3fb950;--down: #f85149;--atm: #d4a72c;font-family:IBM Plex Sans,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit;color:inherit;background:#0e1116;border:1px solid var(--line);border-radius:4px;padding:6px 8px}button{cursor:pointer}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}a{color:var(--accent)}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:16px;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--panel)}.topbar .sym{font-weight:700;letter-spacing:.04em}.topbar .stat{color:var(--muted);font-size:13px}.topbar .stat b{color:var(--text);font-weight:600}.topbar nav,.topnav{margin-left:auto;display:flex;gap:12px;font-size:13px;align-items:center}.topnav button{padding:4px 8px}.workspace{display:grid;grid-template-columns:1.3fr 1.1fr;grid-template-rows:1fr 220px 56px;gap:1px;background:var(--line);flex:1;min-height:0}.panel{background:var(--bg);min-height:0;overflow:auto}.chart{grid-column:1;grid-row:1;padding:8px}.matrix{grid-column:2;grid-row:1 / 3;padding:0;overflow:auto}.contract{grid-column:1;grid-row:2;padding:8px}.transport{grid-column:1 / 3;grid-row:3;display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--panel)}table.chain{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:12px}table.chain th,table.chain td{padding:3px 6px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}table.chain th{position:sticky;top:0;background:var(--panel);color:var(--muted);font-weight:500}table.chain td.strike{text-align:center;font-weight:700}table.chain tr.atm td.strike{color:var(--atm)}table.chain tr:hover{background:#1c2330;cursor:pointer}.login{max-width:360px;margin:12vh auto;padding:24px;background:var(--panel);border:1px solid var(--line)}.login h1{font-size:18px;margin:0 0 16px}.login label{display:block;font-size:12px;color:var(--muted);margin:10px 0 4px}.login button{width:100%;margin-top:16px}.err{color:var(--down);font-size:13px}.page{padding:16px;overflow:auto}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}pre.json{background:var(--panel);padding:12px;overflow:auto;font-size:12px}.badge{font-size:11px;padding:1px 6px;border:1px solid var(--line);border-radius:3px;color:var(--muted)}.contract-chart{height:100px;margin-top:8px}.transport-time{min-width:88px;text-align:right}.settings-section{margin-bottom:28px}.settings-section h2{font-size:16px;margin:0 0 12px}.settings-section h3{font-size:14px;margin:16px 0 8px;color:var(--muted)}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.card{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:12px}.card-title{font-weight:600;margin-bottom:6px}.muted{color:var(--muted);font-size:12px}.ok{color:var(--up)}.warn{color:var(--atm)}.ingest-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin-bottom:10px}.ingest-controls label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.log-tail{background:#0a0d11;border:1px solid var(--line);padding:10px;max-height:280px;overflow:auto;font-size:11px;white-space:pre-wrap}table.settings-table{width:100%;border-collapse:collapse;font-size:13px}table.settings-table th,table.settings-table td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}table.settings-table th{color:var(--muted);font-weight:500;background:var(--panel)}.svc-name{font-weight:600;font-family:ui-monospace,monospace;font-size:12px}.svc-actions{display:flex;gap:6px;flex-wrap:wrap}.err-cell{color:var(--down);font-size:12px;max-width:480px;word-break:break-word}
