:root{--bg-primary:#0b0f19;--bg-panel:#111827;--bg-row-even:#0f172a;--bg-row-hover:#1e293b;--border-color:#1f2937;--text-main:#f3f4f6;--text-muted:#9ca3af;--accent-blue:#3b82f6;--accent-green:#10b981;--accent-red:#ef4444;--accent-amber:#f59e0b;--row-height:32px;--header-height:38px;--footer-height:36px;--pinned-left-width:390px;--pinned-right-width:120px}*{box-sizing:border-box;-webkit-user-select:none;user-select:none;margin:0;padding:0}html,body,#root{background-color:var(--bg-primary);width:100vw;height:100vh;color:var(--text-main);font-family:Inter,-apple-system,BlinkMacSystemFont,monospace;font-size:12px;overflow:hidden}button{color:var(--text-main);font:inherit;cursor:pointer;white-space:nowrap;background:#1f2937;border:1px solid #374151;border-radius:3px;padding:3px 8px}button:hover{background:#374151}button.active{border-color:var(--accent-blue);color:#93c5fd}.viewport-shell{contain:strict;grid-template-rows:8vh 32vh 60vh;width:100vw;height:100vh;display:grid}.viewport-shell.table-only{grid-template-rows:8vh 92vh}.zone-a-topbar{background:var(--bg-panel);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:12px;min-height:0;padding:0 16px;display:flex;overflow:hidden}.zone-b-charts{background:var(--bg-primary);border-bottom:1px solid var(--border-color);grid-template-columns:repeat(4,1fr);gap:8px;min-height:0;padding:8px;display:grid}.chart-card{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:4px;flex-direction:column;min-width:0;min-height:0;padding:6px 8px;display:flex;position:relative;overflow:hidden}.chart-canvas-wrap{flex:1;min-height:0;position:relative}.chart-canvas-wrap canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.zone-c-grid-wrapper{grid-template-rows:34px 1fr var(--footer-height);background:var(--bg-panel);width:100%;height:100%;min-height:0;display:grid}.virtual-grid-viewport{contain:strict;will-change:scroll-position;width:100%;height:100%;position:relative;overflow:auto}.cell-pinned-left{z-index:20;background:var(--bg-panel);border-right:2px solid #374151;display:flex;position:sticky;left:0}.cell-pinned-right{z-index:20;background:var(--bg-panel);border-left:2px solid #374151;position:sticky;right:0}.grid-header-sticky{z-index:30;height:var(--header-height);background:#1e293b;border-bottom:1px solid #475569;position:sticky;top:0}
