:root{--bg: #0d1016;--panel: #12161f;--panel-raised: #1b212c;--line: #262d3b;--text: #e7ebf3;--muted: #8d95a6;--accent: #3ddc97;--warning: #f2a33c;--danger: #ff6b6b;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{overflow:hidden;background:var(--bg);color:var(--text);font:13px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}.app{display:grid;grid-template-rows:44px 1fr;height:100%}.modes{display:flex;gap:6px;align-items:center;padding:0 14px;background:var(--panel);border-bottom:1px solid var(--line)}.brand{margin-right:14px;font-weight:600;letter-spacing:.04em}.mode{padding:5px 12px;color:var(--muted);cursor:pointer;background:transparent;border:1px solid transparent;border-radius:5px}.mode:hover{color:var(--text);background:var(--panel-raised)}.mode.active{color:var(--bg);background:var(--accent);border-color:var(--accent)}.wire{margin-left:auto;font-size:11px;color:var(--muted)}.workspace{display:grid;grid-template-columns:340px 1fr;min-height:0}.workspace.play{grid-template-columns:1fr}.viewport{position:relative;min-width:0}.viewport canvas{display:block}.panel{padding:16px;overflow-y:auto;background:var(--panel);border-right:1px solid var(--line)}.panel h1{margin:0;font-size:15px;letter-spacing:.02em}.subtitle{margin:4px 0 16px;font-size:11px;color:var(--muted)}.panel section{padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--line)}.panel h2{margin:0 0 8px;font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}.hint{margin:0 0 8px;font-size:11px;line-height:1.45;color:var(--muted)}.verdict{padding:6px 10px;margin-bottom:8px;font-weight:600;border-radius:5px}.verdict.ok{color:var(--accent);background:#3ddc971f}.verdict.bad{color:var(--danger);background:#ff6b6b24}.kv{display:flex;justify-content:space-between;gap:12px;padding:2px 0;font-variant-numeric:tabular-nums}.kv>span:first-child{color:var(--muted)}.refusal{padding:6px 8px;margin:6px 0 0;font-size:11px;color:var(--danger);background:#ff6b6b1a;border-radius:4px}.layer{display:flex;gap:7px;align-items:center;padding:3px 0;cursor:pointer}.swatch{display:inline-block;flex:none;width:10px;height:10px;margin-right:4px;border-radius:2px}.legend{display:flex;flex-wrap:wrap;gap:8px;font-size:11px;color:var(--muted)}.legend-stop{display:flex;align-items:center}.row{display:flex;gap:6px;align-items:baseline;width:100%;padding:4px 6px;font:inherit;color:var(--text);text-align:left;cursor:pointer;background:transparent;border:1px solid transparent;border-radius:4px}.row:hover{background:var(--panel-raised)}.row.selected{background:var(--panel-raised);border-color:var(--muted)}.row-id{flex:none;font-variant-numeric:tabular-nums}.row-detail{margin-left:auto;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}button.wide{width:100%;padding:6px;font:inherit;color:var(--text);cursor:pointer;background:var(--panel-raised);border:1px solid var(--line);border-radius:5px}.finding{display:block;width:100%;padding:6px 8px;margin-bottom:5px;font:inherit;text-align:left;cursor:pointer;background:var(--panel-raised);border:1px solid var(--line);border-left-width:3px;border-radius:4px}.finding.error{border-left-color:var(--danger)}.finding.warning{border-left-color:var(--warning)}.finding.note{border-left-color:var(--muted)}.finding-subject{display:block;font-weight:600}.finding-detail{display:block;font-size:11px;line-height:1.4;color:var(--text)}.finding-code{display:block;margin-top:3px;font-size:10px;letter-spacing:.04em;color:var(--muted)}.crosshair{position:absolute;top:50%;left:50%;width:6px;height:6px;pointer-events:none;background:#e7ebf3b3;border-radius:50%;transform:translate(-50%,-50%)}.hud{position:absolute;bottom:16px;left:16px;display:flex;flex-direction:column;gap:3px;max-width:420px;font-size:11px;color:var(--muted);pointer-events:none;font-variant-numeric:tabular-nums}.hud-warning{color:var(--warning)}.fatal{max-width:620px;padding:40px}.fatal h1{font-size:17px;color:var(--danger)}code{padding:1px 4px;font-size:12px;background:var(--panel-raised);border-radius:3px}.roomPicker{margin-left:auto;background:#14161c;color:#d6dae4;border:1px solid #2a2f3a;border-radius:6px;padding:5px 9px;font:inherit;font-size:.82rem;max-width:22rem}.roomPicker:focus-visible{outline:2px solid #4c9aff;outline-offset:1px}.modes .mode:disabled{opacity:.38;cursor:not-allowed}
