:root{--ink: #1d1d22;--muted: #6b6b74;--line: #e6e4df;--surface: #fff;--ground: #f6f5f2;--accent: #c2603a;--accent-ink: #fff;font:14px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;color:var(--ink);background:var(--ground)}*{box-sizing:border-box}html,body{height:100%;margin:0}body{display:flex;flex-direction:column}.bar{display:flex;align-items:center;gap:10px;height:52px;padding:0 14px;background:var(--surface);border-bottom:1px solid var(--line)}.brand{font-size:15px;white-space:nowrap}.brand b{color:var(--accent)}.address{flex:1;min-width:0}.address input{width:100%;height:32px;padding:0 12px;border:1px solid var(--line);border-radius:8px;font:13px ui-monospace,SF Mono,Menlo,monospace;color:var(--ink);background:var(--ground)}.address input:focus{outline:2px solid color-mix(in srgb,var(--accent) 40%,transparent);background:var(--surface)}button,.button{height:32px;padding:0 14px;border:1px solid var(--line);border-radius:8px;font:600 13px inherit;font-family:inherit;color:var(--ink);background:var(--surface);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center}button:disabled{opacity:.5;cursor:default}.primary{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}.stage{position:relative;flex:1}#site{position:absolute;inset:0;width:100%;height:100%;border:0;background:#fff}.boot{position:absolute;inset:0;display:grid;place-content:center;gap:12px;text-align:center}.boot__label{color:var(--muted)}.boot__track{width:260px;height:4px;border-radius:2px;background:var(--line);overflow:hidden}.boot__fill{width:0;height:100%;background:var(--accent);transition:width .3s ease}.boot[data-failed] .boot__label{color:#b3261e;white-space:pre-wrap;max-width:640px;text-align:left;font:12px ui-monospace,Menlo,monospace}dialog{border:0;border-radius:14px;padding:0;width:min(560px,calc(100vw - 32px));box-shadow:0 24px 60px -20px #00000059}dialog::backdrop{background:#14141859}.sheet{padding:22px;display:grid;gap:12px}.sheet h2{margin:0;font-size:18px}.sheet p{margin:0;color:var(--muted)}.sheet textarea{width:100%;padding:10px;border:1px solid var(--line);border-radius:8px;font:12px/1.5 ui-monospace,Menlo,monospace}.steps{margin:0;padding-left:20px;display:grid;gap:6px}.row{display:flex;justify-content:flex-end;gap:8px}.error{color:#b3261e!important}.playground-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid var(--line)}.playground-row strong{flex:1;min-width:150px}#playgrounds-list{max-height:50vh;overflow:auto}#tools-dialog{width:min(1000px,calc(100vw - 32px));max-height:90vh}.tools-tabs{display:flex;gap:8px;flex-wrap:wrap}.tools-tabs [aria-selected=true]{background:var(--accent);color:var(--accent-ink)}.tool-panel{display:flex;gap:10px;flex-wrap:wrap;align-items:start;min-width:0}.tool-panel[hidden]{display:none}.tool-panel>div,.tool-panel>p,.tool-panel>textarea,.tool-panel>pre{width:100%}.tool-panel input{padding:8px;border:1px solid var(--line);border-radius:8px;max-width:100%}.tool-panel pre,.tool-results{max-height:40vh;overflow:auto;background:var(--ground);padding:12px;margin:0}.tool-panel pre{white-space:pre-wrap;overflow-wrap:anywhere}.tool-panel table{border-collapse:collapse;font:12px ui-monospace,Menlo,monospace}.tool-panel td,.tool-panel th{padding:6px 10px;border:1px solid var(--line);text-align:left;max-width:400px;overflow-wrap:anywhere}.tool-panel>div>button{margin:3px}button:focus-visible,.tool-panel :focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:850px){.bar{height:auto;min-height:52px;flex-wrap:wrap;padding:10px}.address{min-width:180px}}#tools-dialog:has(.database-panel:not([hidden])){width:min(1440px,calc(100vw - 32px))}#tools-dialog:has(.database-panel:not([hidden])) .sheet{height:90vh;grid-template-rows:auto auto minmax(0,1fr) auto auto}.database-panel{flex-direction:column;flex-wrap:nowrap;min-height:0}.database-panel iframe{width:100%;flex:1;min-height:0;border:1px solid var(--line);background:#fff}#tools-dialog:has(#tool-tab-Files[aria-selected=true]){width:min(1440px,calc(100vw - 32px));max-height:96vh}.file-manager{display:block}.fm-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:12px 0}.fm-cwd{color:var(--muted);font:11px ui-monospace,monospace;overflow-wrap:anywhere}.fm-theme-toggle{margin-left:auto}.fm-grid{--fm-bg: #1e1e1e;--fm-fg: #d4d4d4;--fm-panel: #252526;--fm-border: #333;--fm-muted: #8a8a8a;display:grid;grid-template-columns:minmax(200px,320px) minmax(0,1fr);height:64vh;grid-template-rows:minmax(0,1fr);border:1px solid var(--fm-border);border-radius:10px;overflow:hidden;background:var(--fm-bg);color:var(--fm-fg)}.fm-grid[data-mode=light]{--fm-bg: #fff;--fm-fg: #1f2328;--fm-panel: #f6f8fa;--fm-border: #d0d7de;--fm-muted: #656d76}.fm-tree-pane{min-height:0;overflow:auto;border-right:1px solid var(--fm-border);background:var(--fm-panel);padding:6px 4px}.fm-tree{height:100%}.fm-editor-pane{min-height:0;overflow:hidden;display:flex;flex-direction:column;min-width:0;height:100%}.fm-editor-head{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--fm-border);padding:6px 8px 6px 12px}.fm-editor-path{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:12px ui-monospace,monospace}.fm-editor-body{position:relative;flex:1;min-height:0;overflow:hidden}.fm-editor-body>.cm-editor{position:absolute;inset:0;height:100%}.fm-editor-body .cm-editor.cm-focused{outline:none}.fm-placeholder{display:grid;place-content:center;color:var(--fm-muted);padding:20px;text-align:center}.fm-menu{position:fixed;inset:auto;margin:0;min-width:240px;padding:6px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 18px 48px -24px #0006}.fm-menu button{display:flex;width:100%;border:0;border-radius:5px;padding:8px 9px;background:transparent;font-weight:400}.fm-menu button:hover,.fm-menu button:focus-visible{background:var(--ground)}.fm-menu button:last-child{border-top:1px solid var(--line);margin-top:6px}.fm-dialog input{padding:10px;border:1px solid var(--line);border-radius:8px;font:inherit}@media(max-width:720px){.fm-grid{grid-template-columns:minmax(130px,35%) minmax(0,1fr)}.fm-cwd{width:100%}.fm-editor-head{flex-wrap:wrap}}.fm-toolbar button,.fm-menu button{gap:8px}.fm-toolbar>.fm-theme-toggle{margin-left:auto}
