:root{color-scheme:dark;--bg: #16161e;--panel: #1f2030;--line: #2c2e40;--fg: #c8cbe0;--muted: #7d819c;--accent: #7aa2f7;--ok: #9ece6a;--warn: #e0af68;--bad: #f7768e;--na: #565a72}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--fg);font:14px/1.4 system-ui,sans-serif}.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px}.muted{color:var(--muted)}.error{color:var(--bad)}a{color:var(--accent)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 16px;background:var(--panel);border-bottom:1px solid var(--line)}.topbar h1{font-size:16px;margin:0}.topbar .sub{color:var(--muted);font-weight:400}.topbar-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.status{color:var(--muted);font-size:12px}.layout{display:grid;grid-template-columns:300px 1fr;height:calc(100% - 41px)}.layout.drag{outline:2px dashed var(--accent);outline-offset:-4px}.sidebar{overflow:auto;border-right:1px solid var(--line);padding:8px 0;background:var(--panel)}.sidebar details{margin:0 0 4px}.sidebar summary{cursor:pointer;padding:4px 12px;font-weight:600}.sidebar .count{color:var(--muted);font-weight:400}.sidebar ul{list-style:none;margin:0;padding:0}.sidebar li.asset{padding:2px 12px 2px 24px;cursor:pointer;white-space:nowrap;font-family:ui-monospace,Menlo,monospace;font-size:12px}.sidebar li.asset:hover{background:var(--line)}.sidebar li.asset.selected{background:#2b3352}.sidebar li.asset.missing{color:var(--na);cursor:default;text-decoration:line-through}.sidebar .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;background:var(--na)}.status-decoded .dot{background:var(--ok)}.status-partial .dot{background:var(--warn)}.status-unknown .dot{background:var(--bad)}.view{overflow:auto;padding:16px}.view-head h2{display:inline;font-size:15px;margin:0;font-family:ui-monospace,Menlo,monospace}.placeholder{color:var(--muted)}.info dl{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px}.info dt{color:var(--muted)}.info dd{margin:0}.cols{display:flex;gap:32px;flex-wrap:wrap}.toolbar{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin:12px 0}.toolbar input[type=number]{width:6em}.toolbar button{margin-left:2px}.tabs{display:flex;gap:4px;margin:12px 0;border-bottom:1px solid var(--line)}.tabs button{background:none;border:1px solid transparent;border-bottom:none;color:var(--muted);padding:6px 12px;cursor:pointer}.tabs button.active{color:var(--fg);border-color:var(--line);background:var(--panel)}.hexdump{max-height:70vh;overflow:auto;background:var(--panel);padding:8px;margin:0 0 8px}.chart{background:var(--panel);display:block;margin-bottom:12px}.readout{color:var(--muted);margin:8px 0;min-height:1.4em}.canvas-wrap{overflow:auto}.pixels{image-rendering:pixelated}.pal-grid{display:grid;grid-template-columns:repeat(16,28px);gap:2px;margin:12px 0}.pal-swatch{width:28px;height:28px;border:1px solid #0006}.stage{padding:16px}.stage.drag{outline:2px dashed var(--accent);outline-offset:-4px}.game-body{display:flex;flex-direction:column;min-height:100%}.stage-center{flex:1;display:flex;align-items:center;justify-content:center;overflow:auto}.game-note{max-width:640px}.race-canvas{display:block;image-rendering:pixelated;width:512px;height:400px;border:1px solid var(--line);background:#000}.race-status{color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px}.sprite-sheet{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.sprite-sheet figure{margin:0}.sprite-sheet figcaption{font-size:11px;color:var(--muted)}.members h3{margin:16px 0 6px;font-size:13px;font-family:ui-monospace,Menlo,monospace}.hexdump.small{max-height:12em}pre.small{font-size:10px;line-height:1.2}.toolbar.wrap{flex-wrap:wrap;gap:6px}.toolbar button small{color:var(--muted);font-weight:400}.opl-channels{display:grid;grid-template-columns:repeat(9,1fr);gap:4px;margin:8px 0}.opl-ch{font:11px ui-monospace,Menlo,monospace;color:var(--muted);background:var(--panel);padding:4px;border-radius:3px}.opl-ch.on{color:var(--fg)}.opl-ch .env{height:4px;background:var(--ok);margin-top:3px}
