:root,:root[data-theme=light]{--bg:#fafafa;--panel:#f0f0f0;--border:#d4d4d4;--fg:#1a1a1a;--muted:#6e6e6e;--accent:#b8860b;--error:#c0392b;--canvas-bg:#fff;--buncss-light:initial;--buncss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#1d1f21;--panel:#2a2d31;--border:#3c4046;--fg:#e7e9ec;--muted:#9aa0a6;--accent:#f0b342;--error:#ff6b6b;--canvas-bg:#fff;--buncss-light: ;--buncss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font-family:ui-monospace,SF Mono,Cascadia Mono,JetBrains Mono,Menlo,Consolas,monospace;font-size:14px}.layout{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr;background:var(--border);gap:1px;height:100%}.header{grid-column:1/-1;background:var(--panel);display:flex;border-bottom:1px solid var(--border);flex-wrap:wrap;align-items: center;gap:16px;padding:6px 12px}.header h1{color:var(--accent);margin:0;font-size:14px;font-weight:600}.header .status{color:var(--muted);flex:1;font-size:12px}.header .status.error{color:var(--error)}.header label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-right:6px;font-size:11px}.header select,.header button{background:var(--bg);color:var(--fg);border:1px solid var(--border);font:inherit;cursor:pointer;border-radius:3px;padding:3px 8px;font-size:12px}.header select:hover,.header button:hover{border-color:var(--accent)}.pane{background:var(--bg);overflow:hidden;display:flex;flex-direction:column}.pane .pane-title{background:var(--panel);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:4px 10px;font-size:11px}.editor-pane .cm-editor{height:100%;font-size:14px}.output-pane{display:grid;grid-template-rows:1fr auto}.text-output{white-space:pre;overflow:auto;flex:1;padding:10px 12px;font-family:inherit;font-size:13px}.canvas-host{border-top:1px solid var(--border);background:var(--canvas-bg);display:flex;justify-content:center;align-items: center;padding:8px}.canvas-host canvas{display:block;image-rendering:pixelated;background:var(--canvas-bg)}
