:root{--bg: #0e1116;--panel: #161b22;--panel-2: #1c232d;--border: #2a3542;--text: #d6deeb;--muted: #7d8ea0;--accent: #58a6ff;--ok: #3fb950;--err: #f85149;--run: #d2a8ff}*{box-sizing:border-box}html,body{margin:0;height:100%}body.dev{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex;flex-direction:column;height:100vh;overflow:hidden}.toolbar{display:flex;align-items:center;gap:14px;padding:8px 14px;background:var(--panel);border-bottom:1px solid var(--border);flex:0 0 auto}.brand{font-weight:600;letter-spacing:.2px;white-space:nowrap}.brand b{color:var(--accent);font-weight:600}.project-name{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:5px 9px;font-size:13px;width:180px}.project-name:focus{outline:none;border-color:var(--accent)}.toolbar-actions{display:flex;align-items:center;gap:8px}.btn{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:6px 12px;font-size:13px;cursor:pointer;white-space:nowrap}.btn:hover{border-color:var(--accent)}.btn:disabled{opacity:.45;cursor:default;border-color:var(--border)}.btn-play{background:#17361f;border-color:#245c30;color:#7ee787;font-weight:600}.btn-play:hover{border-color:var(--ok)}.btn-stop{color:#ffb3ad}.rom-label{font-size:12px;color:var(--text);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rom-label.empty{color:var(--muted);font-style:italic}.status-pill{margin-left:auto;font-size:12px;font-variant-numeric:tabular-nums;padding:4px 10px;border-radius:999px;border:1px solid var(--border);color:var(--muted);white-space:nowrap}.status-pill.ok{color:var(--ok);border-color:#245c30}.status-pill.err{color:var(--err);border-color:#5c2422}.workspace{flex:1 1 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,460px);min-height:0}.editor-col{display:flex;flex-direction:column;min-width:0;border-right:1px solid var(--border)}.tabs{display:flex;align-items:stretch;gap:2px;background:var(--panel);border-bottom:1px solid var(--border);padding:4px 6px 0;overflow-x:auto;flex:0 0 auto}.tab{display:flex;align-items:center;gap:4px;padding:6px 10px;font-size:12.5px;color:var(--muted);background:transparent;border:1px solid transparent;border-bottom:none;border-radius:6px 6px 0 0;cursor:pointer;white-space:nowrap}.tab.active{color:var(--text);background:var(--bg);border-color:var(--border)}.tab-name{user-select:none}.tab-close{background:none;border:none;color:var(--muted);font-size:14px;line-height:1;cursor:pointer;padding:0 2px}.tab-close:hover{color:var(--err)}.tab-add{background:none;border:none;color:var(--muted);font-size:12.5px;cursor:pointer;padding:6px 10px;align-self:center}.tab-add:hover{color:var(--accent)}.editor-host{flex:1 1 auto;min-height:0;overflow:hidden}.editor-host .cm-editor{height:100%}.run-col{display:flex;flex-direction:column;min-height:0;background:var(--panel)}.stage{flex:0 0 auto;display:flex;align-items:center;justify-content:center;padding:16px;background:repeating-conic-gradient(#12161c 0% 25%,#0d1116 0% 50%) 50% / 20px 20px;border-bottom:1px solid var(--border)}.screen-wrap{line-height:0;box-shadow:0 6px 22px #00000080;image-rendering:pixelated}#screen{image-rendering:pixelated;display:block;width:256px;height:240px}.console{flex:1 1 auto;min-height:0;overflow-y:auto;padding:8px 12px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:12px;line-height:1.5;background:var(--bg)}.log{white-space:pre-wrap;word-break:break-word}.log-info{color:var(--muted)}.log-connected{color:var(--accent)}.log-run{color:var(--run)}.log-error{color:var(--err)}.diag-block{margin-top:8px;padding:8px 10px;border:1px solid #5c2422;border-radius:6px;background:#1a1214}.diag-block:empty{display:none}.diag-head{color:var(--err);font-weight:600;margin-bottom:4px}.diag-row{color:#ffb3ad;white-space:pre-wrap;word-break:break-word}@media (max-width: 900px){.workspace{grid-template-columns:1fr;grid-template-rows:1fr auto}.editor-col{border-right:none;border-bottom:1px solid var(--border)}}
