:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:oklch(91% .015 185);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:oklch(11% .012 185);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}body{background:oklch(10% .012 180);min-width:320px;min-height:100vh;margin:0;overflow:hidden}button,input,textarea,select{font:inherit}#app{grid-template-rows:auto 1fr;height:100vh;display:grid}.topbar{background:oklch(13.5% .014 190/.94);border-bottom:1px solid oklch(76% .018 185/.13);justify-content:space-between;align-items:center;gap:20px;padding:18px 24px 14px;display:flex}.brand{align-items:center;gap:12px;min-width:0;display:flex}.signal-dot{background:oklch(78% .14 155);border-radius:999px;flex:none;width:12px;height:12px;box-shadow:0 0 18px oklch(78% .14 155/.72)}h1{letter-spacing:0;margin:0;font-size:17px;font-weight:700;line-height:1.1}p{color:oklch(73% .023 190);margin:4px 0 0;font-size:12px}.hud-strip{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.pill,.metric{color:oklch(83% .02 185);white-space:nowrap;background:oklch(17% .014 190/.82);border:1px solid oklch(76% .02 185/.16);border-radius:6px;align-items:center;min-height:30px;padding:0 10px;font-size:12px;font-weight:650;display:inline-flex}.pill[data-state=connected]{color:oklch(81% .13 150);border-color:oklch(73% .14 150/.42)}.pill[data-state=reconnecting]{color:oklch(84% .12 75);border-color:oklch(76% .13 70/.42)}.workspace{grid-template-columns:minmax(0,1fr) 320px;gap:0;min-height:0;display:grid}.stage{background:oklch(9% .012 180);border-right:1px solid oklch(76% .018 185/.13);min-width:0;min-height:0;position:relative}#threeStage{position:absolute;inset:0}#threeStage canvas{width:100%;height:100%;display:block}#stageCanvas{width:100%;height:100%;display:block;position:absolute;inset:0}.stage[data-view="3d"] #stageCanvas,.stage[data-view="2d"] #threeStage{visibility:hidden;pointer-events:none}.view-controls{z-index:3;background:oklch(12.5% .014 190/.9);border:1px solid oklch(76% .02 185/.16);border-radius:8px;gap:6px;padding:4px;display:inline-flex;position:absolute;top:16px;left:18px}.view-button{color:oklch(74% .023 190);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;min-height:30px;padding:0 10px;font-size:12px;font-weight:700}.view-button:hover{color:oklch(90% .018 185);background:oklch(20% .018 190/.86)}.view-button:focus-visible{outline-offset:2px;outline:2px solid oklch(74% .12 155)}.view-button[data-active=true]{color:oklch(83% .13 150);background:oklch(23% .045 158/.68);border-color:oklch(73% .14 150/.36)}.scale-readout{z-index:3;color:oklch(78% .025 185);background:oklch(13% .014 190/.88);border:1px solid oklch(76% .02 185/.14);border-radius:6px;padding:6px 9px;font:600 12px ui-monospace,SFMono-Regular,Menlo,monospace;position:absolute;bottom:16px;right:18px}.side-panel{background:oklch(12.5% .014 185/.96);min-width:0;padding:18px}.panel-heading{color:oklch(72% .024 190);text-transform:uppercase;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;font-size:12px;font-weight:700;display:flex}.tag-list{gap:10px;display:grid}.tag-row{border-bottom:1px solid oklch(76% .018 185/.12);grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 0;display:grid}.tag-color{border-radius:999px;width:10px;height:10px}.tag-main{gap:2px;min-width:0;display:grid}.tag-main strong{color:oklch(92% .018 185);font-size:13px}.tag-main span,.tag-meta span{color:oklch(70% .022 190);font:12px ui-monospace,SFMono-Regular,Menlo,monospace}.tag-meta{justify-items:end;gap:2px;display:grid}.empty{color:oklch(62% .02 190);padding:12px 0;font-size:13px}@media (width<=860px){body{overflow:auto}#app{height:auto;min-height:100vh}.topbar{flex-direction:column;align-items:flex-start}.hud-strip{justify-content:flex-start}.workspace{grid-template-rows:minmax(420px,62vh) auto;grid-template-columns:1fr}.stage{border-bottom:1px solid oklch(76% .018 185/.13);border-right:0}.side-panel{padding:16px 18px 22px}}
