:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-ui:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "Cascadia Mono", "SF Mono", Menlo, Consolas, monospace;--fs-xs:11px;--fs-sm:12px;--fs-md:13px;--fs-lg:15px;--r-sm:4px;--r-md:6px;--r-lg:10px;--titlebar-h:38px;--rtabs-h:30px;--ribbon-h:98px;--options-h:36px;--vtabs-h:30px;--viewbar-h:30px;--status-h:26px;--dock-w:290px;--bg-app:#e9ebee;--bg-chrome:#f6f7f8;--bg-panel:#fff;--bg-input:#fff;--bg-hover:#e8ebef;--bg-active:#dce6f6;--bg-pressed:#d3dbe7;--bg-elev:#fff;--bg-canvas:#fff;--bg-group:#f0f2f4;--border:#d6dae0;--border-strong:#8c939e;--fg:#1b2129;--fg-muted:#57606d;--fg-faint:#5c6471;--accent:#2563eb;--accent-strong:#2160e0;--accent-fg:#fff;--accent-soft:#2563eb1f;--accent-text:#1d4fc4;--icon-accent:#2563eb33;--icon-soft:#1b212914;--contextual:#146b3d;--contextual-soft:#1f8a521f;--danger:#c62f2f;--warning:#a86200;--success:#1e7f45;--focus:#2563eb;--scrim:#14181f5c;--tooltip-bg:#1f2530;--tooltip-fg:#f2f4f7;--ink:#15191f;--sel:#1f6fff;--hover:#2f8cff;--snap:#d97706;--preview:#2563eb}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-app:#16191e;--bg-chrome:#1f242b;--bg-panel:#1b1f25;--bg-input:#15181d;--bg-hover:#2a3039;--bg-active:#273650;--bg-pressed:#31415d;--bg-elev:#242a32;--bg-canvas:#1d2127;--bg-group:#232830;--border:#333a45;--border-strong:#6b7584;--fg:#e6e9ee;--fg-muted:#a3acba;--fg-faint:#8f98a7;--accent:#5b8fff;--accent-strong:#3d74ea;--accent-fg:#fff;--accent-soft:#5b8fff2e;--accent-text:#8db0ff;--icon-accent:#5b8fff4d;--icon-soft:#e6e9ee1a;--contextual:#46c07c;--contextual-soft:#46c07c29;--danger:#ff6b6b;--warning:#f0a740;--success:#4cc382;--focus:#7aa5ff;--scrim:#0000008c;--tooltip-bg:#e8ecf2;--tooltip-fg:#161a20;--ink:#e4e8ee;--sel:#5b9bff;--hover:#7fb3ff;--snap:#f59e0b;--preview:#6ea0ff}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-app:#16191e;--bg-chrome:#1f242b;--bg-panel:#1b1f25;--bg-input:#15181d;--bg-hover:#2a3039;--bg-active:#273650;--bg-pressed:#31415d;--bg-elev:#242a32;--bg-canvas:#1d2127;--bg-group:#232830;--border:#333a45;--border-strong:#6b7584;--fg:#e6e9ee;--fg-muted:#a3acba;--fg-faint:#8f98a7;--accent:#5b8fff;--accent-strong:#3d74ea;--accent-fg:#fff;--accent-soft:#5b8fff2e;--accent-text:#8db0ff;--icon-accent:#5b8fff4d;--icon-soft:#e6e9ee1a;--contextual:#46c07c;--contextual-soft:#46c07c29;--danger:#ff6b6b;--warning:#f0a740;--success:#4cc382;--focus:#7aa5ff;--scrim:#0000008c;--tooltip-bg:#e8ecf2;--tooltip-fg:#161a20;--ink:#e4e8ee;--sel:#5b9bff;--hover:#7fb3ff;--snap:#f59e0b;--preview:#6ea0ff}@media (pointer:coarse){:root{--ribbon-h:104px;--options-h:42px;--vtabs-h:36px;--viewbar-h:38px}}@media (max-width:760px){:root{--titlebar-h:46px;--status-h:0px;--dock-w:100vw}}*,:before,:after{box-sizing:border-box}html,body{-webkit-user-select:none;user-select:none;background:var(--bg-app);height:100%;color:var(--fg);font:var(--fs-md) / 1.4 var(--font-ui);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0;overflow:hidden}#app{height:100%}button,input,select,textarea{font:inherit;color:inherit}input,textarea,[contenteditable],.cmd-history,.dialog-body p,.dialog-body dd,.dialog-body dt{-webkit-user-select:text;user-select:text}button{cursor:pointer}button:disabled{cursor:default}h1,h2,h3,p{margin:0}kbd{font:500 var(--fs-xs) / 1 var(--font-ui);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--fg-muted);background:var(--bg-panel);white-space:nowrap;padding:2px 5px}code{font-family:var(--font-mono);font-size:.95em}:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.icon{flex:none;display:block}.icon .a{fill:var(--icon-accent)}.icon .s{fill:var(--icon-soft)}.icon .f{fill:currentColor;stroke:none}.icon .thin{stroke-width:1px;opacity:.8}.icon .thick{stroke-width:2.6px}.icon .thick-a{stroke:var(--accent);stroke-width:2.4px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.grow{flex:1}[hidden]{display:none!important}.btn{border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--bg-panel);height:32px;color:var(--fg);white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-weight:500;transition:background-color .12s,border-color .12s;display:inline-flex}.btn:hover:not(:disabled){background:var(--bg-hover)}.btn:active:not(:disabled){background:var(--bg-pressed)}.btn:disabled{opacity:.5}.btn.primary{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--accent-fg)}.btn.primary:hover:not(:disabled){background:var(--accent-strong);filter:brightness(1.08)}.btn.danger{border-color:var(--danger);color:var(--danger);background:0 0}.btn.danger:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 10%, transparent)}.btn.ghost{background:0 0;border-color:#0000}.btn.sm{height:26px;font-size:var(--fs-sm);padding:0 9px}.btn.big{text-align:left;justify-content:flex-start;gap:12px;width:100%;height:auto;padding:12px 14px}.btn.big span{flex-direction:column;display:flex}.btn.big small{color:var(--fg-muted);font-weight:400}.icon-btn{border-radius:var(--r-md);width:30px;height:30px;color:var(--fg-muted);background:0 0;border:0;justify-content:center;align-items:center;padding:0;text-decoration:none;transition:background-color .12s,color .12s;display:inline-flex}.icon-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--fg)}.icon-btn:active:not(:disabled){background:var(--bg-pressed)}.icon-btn:disabled{opacity:.4}.icon-btn.sm{width:24px;height:24px}.icon-btn[aria-pressed=true]{color:var(--accent-text)}.input{border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--bg-input);width:100%;min-width:0;height:32px;color:var(--fg);padding:0 9px}.input.sm{height:26px;font-size:var(--fs-sm);border-radius:var(--r-sm);padding:0 7px}textarea.input{resize:vertical;height:auto;padding:6px 8px;line-height:1.4}select.input{padding-right:4px}.input:focus-visible{outline:2px solid var(--focus);outline-offset:-1px;border-color:#0000}.input[aria-invalid=true]{border-color:var(--danger)}input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:15px;height:15px;margin:0}input[type=color].input{width:46px;padding:2px}.swatch{border:1px solid color-mix(in srgb, var(--fg) 30%, transparent);border-radius:2px;flex:none;width:12px;height:12px;display:inline-block}.swatch.lg{border-radius:var(--r-sm);width:28px;height:28px}.badge{font-size:var(--fs-xs);background:var(--accent-soft);color:var(--accent-text);border-radius:999px;padding:1px 6px;font-weight:500;display:inline-block}.check,.radio{cursor:pointer;align-items:center;gap:8px;padding:4px 0;display:flex}.radio{align-items:flex-start}.radio input{margin-top:3px}.radio span{flex-direction:column;display:flex}.radio small{color:var(--fg-muted)}.inline{align-items:center;gap:8px;display:flex}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.app-root{grid-template-columns:minmax(0,1fr);grid-template-rows:var(--titlebar-h) auto auto minmax(0, 1fr) var(--status-h) auto;height:100%;height:100dvh;min-height:0;display:grid}.app-root>*{min-width:0}.app-root>.titlebar{grid-row:1}.app-root>.ribbon{grid-row:2}.app-root>.optionsbar{grid-row:3}.app-root>.main{grid-row:4}.app-root>.statusbar{grid-row:5}.app-root>.phonebar{grid-row:6}.titlebar{padding:0 6px 0 4px;padding-top:env(safe-area-inset-top);background:var(--bg-app);border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;display:grid}.tb-left,.tb-right{align-items:center;gap:2px;min-width:0;display:flex}.tb-right{justify-content:flex-end}.app-btn{border-radius:var(--r-md);background:var(--accent-strong);height:28px;color:var(--accent-fg);font-weight:600;font-size:var(--fs-sm);border:0;align-items:center;gap:6px;padding:0 10px 0 6px;display:inline-flex}.app-btn:hover{filter:brightness(1.08)}.app-btn .icon{color:inherit}.qat{align-items:center;gap:1px;min-width:0;margin-left:6px;display:flex;overflow:hidden}.qat-btn{width:28px;height:28px}.qat-sep{background:var(--border);flex:none;width:1px;height:18px;margin:0 4px}.title{min-width:0;font-size:var(--fs-sm);color:var(--fg-muted);white-space:nowrap;align-items:center;gap:6px;display:flex}.title-name{color:var(--fg);text-overflow:ellipsis;max-width:32vw;font-weight:600;overflow:hidden}.title-view{text-overflow:ellipsis;max-width:22vw;overflow:hidden}.title-dot{background:var(--accent);border-radius:50%;width:7px;height:7px}.search-btn{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-input);width:210px;height:28px;color:var(--fg-faint);font-size:var(--fs-sm);align-items:center;gap:8px;margin-right:4px;padding:0 6px 0 9px;display:inline-flex}.search-btn:hover{border-color:var(--border-strong);color:var(--fg-muted)}.search-text{text-align:left;flex:1}.account{align-items:center;margin-left:4px;display:flex}.avatar-btn{background:0 0;border:0;border-radius:50%;place-items:center;width:30px;height:30px;padding:0;display:grid}.avatar{object-fit:cover;border-radius:50%;place-items:center;width:26px;height:26px;display:grid}.avatar.initials{background:var(--accent-strong);color:#fff;font-weight:600;font-size:var(--fs-sm)}.ribbon{background:var(--bg-chrome);border-bottom:1px solid var(--border);z-index:3;position:relative}.rb-tabbar{height:var(--rtabs-h);background:var(--bg-app);border-bottom:1px solid var(--border);align-items:flex-end;padding:0 6px;display:flex}.rb-tabs{scrollbar-width:none;align-items:flex-end;gap:1px;min-width:0;display:flex;overflow-x:auto}.rb-tabs::-webkit-scrollbar{display:none}.rb-tab{height:calc(var(--rtabs-h) - 4px);border-radius:var(--r-md) var(--r-md) 0 0;color:var(--fg-muted);font-size:var(--fs-sm);white-space:nowrap;background:0 0;border:1px solid #0000;border-bottom:0;flex:none;margin-bottom:-1px;padding:0 12px;font-weight:500}.rb-tab:hover{color:var(--fg);background:var(--bg-hover)}.rb-tab[aria-selected=true]{background:var(--bg-chrome);border-color:var(--border);color:var(--fg)}.rb-tab.contextual{color:var(--contextual);font-weight:600}.rb-tab.contextual[aria-selected=true]{background:var(--bg-chrome);border-top:2px solid var(--contextual)}.rb-tab-spacer{flex:1}.rb-collapse{width:26px;height:26px;margin-bottom:1px}.rb-body{height:var(--ribbon-h);overflow:hidden}.ribbon.collapsed .rb-body{display:none}.ribbon.collapsed.flyout-open .rb-body{left:0;right:0;top:var(--rtabs-h);background:var(--bg-chrome);border-bottom:1px solid var(--border-strong);display:block;position:absolute}.rb-scroller{scrollbar-width:thin;height:100%;display:flex;overflow:auto hidden}.rb-panel{border-right:1px solid var(--border);flex-direction:column;flex:none;padding:4px 4px 0;display:flex}.rb-panel-body{flex:1;align-items:flex-start;gap:1px;min-height:0;display:flex}.rb-panel-title{height:18px;color:var(--fg-faint);font-size:var(--fs-xs);white-space:nowrap;background:0 0;border:0;flex:none;justify-content:center;align-items:center;gap:2px;padding:0 4px;display:flex}button.rb-panel-title:hover{color:var(--fg);background:var(--bg-hover);border-radius:var(--r-sm)}.rb-lg-wrap{flex-direction:column;align-items:stretch;height:100%;display:flex}.rb-lg{border-radius:var(--r-md);min-width:48px;max-width:72px;height:70px;color:var(--fg);font-size:var(--fs-xs);text-align:center;background:0 0;border:1px solid #0000;flex-direction:column;align-items:center;gap:3px;padding:5px 4px 3px;line-height:1.15;display:flex}.rb-lg-wrap.split .rb-lg{border-radius:var(--r-md) var(--r-md) 0 0;height:58px}.rb-lg-arrow{border-radius:0 0 var(--r-md) var(--r-md);height:14px;color:var(--fg-muted);background:0 0;border:1px solid #0000;place-items:center;display:grid}.rb-lg:hover,.rb-lg-arrow:hover,.rb-sm:hover,.rb-sm-arrow:hover{background:var(--bg-hover);border-color:var(--border)}.rb-lg[aria-pressed=true],.rb-sm[aria-pressed=true]{background:var(--bg-active);border-color:color-mix(in srgb, var(--accent) 45%, transparent)}.rb-lg:disabled,.rb-sm:disabled{opacity:.45;background:0 0;border-color:#0000}.rb-lg .icon{color:var(--fg)}.rb-lg-label{-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.rb-col,.rb-stack{flex-direction:column;gap:1px;padding-top:1px;display:flex}.rb-sm-wrap{display:flex}.rb-sm{border-radius:var(--r-sm);height:22px;color:var(--fg);font-size:var(--fs-xs);white-space:nowrap;background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:0 6px 0 4px;display:flex}.rb-sm.icon-only{padding:0 3px}.rb-sm-wrap.split .rb-sm{border-radius:var(--r-sm) 0 0 var(--r-sm)}.rb-sm-arrow{border-radius:0 var(--r-sm) var(--r-sm) 0;width:14px;height:22px;color:var(--fg-muted);background:0 0;border:1px solid #0000;place-items:center;padding:0;display:grid}.rb-row{gap:1px;display:flex}.rb-combo{height:24px;font-size:var(--fs-xs);align-items:center;gap:6px;display:flex}.rb-combo .input{height:22px;font-size:var(--fs-xs)}@media (pointer:coarse){.rb-lg{min-width:60px;height:72px}.rb-sm,.rb-sm-arrow{height:30px}}.optionsbar{height:var(--options-h);background:var(--bg-chrome);border-bottom:1px solid var(--border);scrollbar-width:thin;font-size:var(--fs-sm);align-items:center;gap:10px;padding:0 10px;display:flex;overflow:auto hidden}.optionsbar:empty{display:none}.ob-title{background:var(--contextual-soft);color:var(--contextual);font-weight:600;font-size:var(--fs-xs);white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:6px;padding:2px 8px;display:inline-flex}.ob-group{white-space:nowrap;flex:none;align-items:center;gap:6px;display:flex}.ob-group label,.ob-label{color:var(--fg-muted);font-size:var(--fs-xs)}.ob-group .input{height:26px;font-size:var(--fs-sm);width:auto}.ob-group .input.num{width:92px}.ob-sep{background:var(--border);flex:none;width:1px;height:20px}.ob-actions{flex:none;gap:6px;margin-left:auto;display:flex}.seg{border:1px solid var(--border-strong);border-radius:var(--r-md);flex:none;display:inline-flex;overflow:hidden}.seg-btn{background:var(--bg-input);height:24px;color:var(--fg-muted);font-size:var(--fs-xs);white-space:nowrap;border:0;align-items:center;gap:5px;padding:0 8px;display:inline-flex}.seg-btn+.seg-btn{border-left:1px solid var(--border)}.seg-btn[aria-checked=true],.seg-btn[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-text);font-weight:600}.seg-btn:hover:not([aria-checked=true]){background:var(--bg-hover)}.main{grid-template-columns:var(--dock-w) 5px minmax(0, 1fr);background:var(--bg-app);min-height:0;display:grid}.main>.dock{grid-area:1/1}.main>.dock-resize{grid-area:1/2}.main>.viewarea{grid-area:1/3}.main.dock-hidden{grid-template-columns:0 0 minmax(0,1fr)}.main.dock-hidden .dock{display:none}.dock{grid-template-rows:minmax(120px, var(--props-h,52%)) 5px minmax(100px, 1fr);background:var(--bg-panel);border-right:1px solid var(--border);min-width:0;min-height:0;display:grid}.dock.props-hidden{grid-template-rows:0 0 1fr}.dock.browser-hidden{grid-template-rows:1fr 0 0}.dock.props-hidden .pane-props,.dock.browser-hidden .pane-browser,.dock.props-hidden .dock-split,.dock.browser-hidden .dock-split{display:none}.dock-resize,.dock-split{background:var(--bg-app);touch-action:none}.dock-resize{cursor:col-resize}.dock-split{cursor:row-resize;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}:is(.dock-resize:hover,.dock-split:hover,.dock-resize:focus-visible,.dock-split:focus-visible){background:var(--accent-soft)}.pane{flex-direction:column;min-height:0;display:flex;overflow:hidden}.pane-head{border-bottom:1px solid var(--border);background:var(--bg-chrome);flex:none;align-items:center;gap:6px;height:30px;padding:0 4px 0 10px;display:flex}.pane-title{min-width:0;font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;overflow:hidden}.pane-body{flex:1;min-height:0;overflow:auto}.viewarea{grid-template-rows:var(--vtabs-h) minmax(0, 1fr) var(--viewbar-h);min-width:0;min-height:0;display:grid}.vtabs{background:var(--bg-app);border-bottom:1px solid var(--border);scrollbar-width:none;align-items:flex-end;gap:1px;padding:0 4px;display:flex;overflow:auto hidden}.vtabs::-webkit-scrollbar{display:none}.vtab{height:calc(var(--vtabs-h) - 3px);border-radius:var(--r-md) var(--r-md) 0 0;max-width:220px;color:var(--fg-muted);border:1px solid #0000;border-bottom:0;flex:none;align-items:center;margin-bottom:-1px;display:flex}.vtab:hover{background:var(--bg-hover)}.vtab.active{background:var(--bg-canvas);border-color:var(--border);color:var(--fg)}.vtab-btn{min-width:0;height:100%;color:inherit;font-size:var(--fs-sm);background:0 0;border:0;align-items:center;gap:6px;padding:0 4px 0 10px;display:flex}.vtab-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vtab-close{opacity:.6;margin-right:4px}.vtab.active .vtab-close,.vtab:hover .vtab-close{opacity:1}.canvas-wrap{background:var(--bg-canvas);touch-action:none;min-width:0;min-height:0;position:relative;overflow:hidden}.gl-canvas,.overlay-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.overlay-canvas{outline:none}.overlay-canvas:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.dom-view{background:var(--bg-canvas);position:absolute;inset:0;overflow:auto}.navbar{border:1px solid var(--border);border-radius:var(--r-lg);background:color-mix(in srgb, var(--bg-elev) 92%, transparent);z-index:2;flex-direction:column;gap:2px;padding:3px;display:flex;position:absolute;top:120px;right:10px}.navbar .icon-btn{width:30px;height:30px}.navbar.plan{top:12px}.viewcube{z-index:2;perspective:400px;-webkit-user-select:none;user-select:none;width:96px;height:96px;position:absolute;top:12px;right:12px}.vc-ring{border:1.5px solid var(--border-strong);opacity:.55;border-radius:50%;width:80px;height:36px;position:absolute;top:52px;left:8px}.vc-cube{width:40px;height:40px;transform-style:preserve-3d;position:absolute;top:22px;left:28px}.vc-face{border:1px solid var(--border-strong);background:color-mix(in srgb, var(--bg-elev) 88%, transparent);width:40px;height:40px;color:var(--fg-muted);letter-spacing:.02em;cursor:pointer;-webkit-backface-visibility:hidden;backface-visibility:hidden;place-items:center;padding:0;font-size:8.5px;font-weight:600;display:grid;position:absolute}.vc-face:hover{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent)}.vc-home{width:24px;height:24px;position:absolute;top:2px;left:2px}.vc-compass{color:var(--fg-faint);pointer-events:none;font-size:9px;font-weight:700;position:absolute}.home{align-content:start;gap:24px;max-width:1100px;min-height:100%;margin:0 auto;padding:32px clamp(16px,4vw,48px);display:grid}.home h1{font-size:22px;font-weight:650}.home h2{font-size:var(--fs-md);color:var(--fg-muted);margin-bottom:10px;font-weight:600}.home-sub{color:var(--fg-muted);margin-top:4px}.home-cards{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;display:grid}.home-card{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-panel);min-height:108px;color:var(--fg);text-align:left;flex-direction:column;align-items:flex-start;gap:8px;padding:14px;display:flex}.home-card:hover{border-color:var(--accent);background:var(--accent-soft)}.home-card .icon{color:var(--accent-text)}.home-card strong{font-weight:600}.home-card small{color:var(--fg-muted)}.home-recent{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-panel);margin:0;padding:0;list-style:none;overflow:hidden}.home-recent:empty:after{content:"No recent projects yet.";color:var(--fg-faint);padding:14px;display:block}.home-recent li+li{border-top:1px solid var(--border)}.viewbar{background:var(--bg-chrome);border-top:1px solid var(--border);scrollbar-width:none;font-size:var(--fs-xs);align-items:center;gap:2px;padding:0 6px;display:flex;overflow:auto hidden}.viewbar::-webkit-scrollbar{display:none}.vb-btn{border-radius:var(--r-sm);height:24px;color:var(--fg-muted);font-size:var(--fs-xs);white-space:nowrap;background:0 0;border:1px solid #0000;flex:none;align-items:center;gap:4px;padding:0 6px;display:inline-flex}.vb-btn:hover{background:var(--bg-hover);color:var(--fg)}.vb-btn[aria-pressed=true]{background:var(--bg-active);color:var(--accent-text)}.vb-btn.warn{color:var(--warning);border-color:var(--warning)}.vb-sep{background:var(--border);flex:none;width:1px;height:16px;margin:0 3px}.vb-label{color:var(--fg-faint);white-space:nowrap;padding:0 4px}.view-banner{z-index:2;border:1px solid var(--warning);background:var(--bg-elev);color:var(--warning);font-size:var(--fs-xs);border-radius:999px;align-items:center;gap:8px;padding:4px 6px 4px 12px;font-weight:600;display:flex;position:absolute;top:8px;left:50%;transform:translate(-50%)}.statusbar{background:var(--bg-app);border-top:1px solid var(--border);font-size:var(--fs-xs);color:var(--fg-muted);align-items:center;gap:10px;min-width:0;padding:0 10px;display:flex;overflow:hidden}.sb-prompt{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.sb-item{border-radius:var(--r-sm);height:22px;color:var(--fg-muted);font-size:var(--fs-xs);white-space:nowrap;background:0 0;border:0;flex:none;align-items:center;gap:4px;padding:0 6px;display:inline-flex}button.sb-item:hover{background:var(--bg-hover);color:var(--fg)}.sb-item[aria-pressed=true]{color:var(--accent-text)}.sb-coords{font-family:var(--font-mono);text-align:right;min-width:170px}.phonebar{display:none}.only-phone{display:none!important}@media (max-width:760px){.hide-phone{display:none!important}.only-phone{display:inline-flex!important}.search-btn{justify-content:center;width:34px;padding:0}.search-btn .search-text,.search-btn kbd,.title-view,.statusbar{display:none}.main{grid-template-columns:0 0 minmax(0,1fr)}.dock{left:0;right:0;bottom:calc(52px + env(safe-area-inset-bottom));z-index:50;border-top:1px solid var(--border-strong);border-radius:var(--r-lg) var(--r-lg) 0 0;border-right:0;grid-template-rows:1fr;height:min(62dvh,560px);display:none;position:fixed;top:auto}.dock.phone-open{display:grid}.dock.phone-props .pane-browser,.dock.phone-props .dock-split,.dock.phone-browser .pane-props,.dock.phone-browser .dock-split,.dock-resize{display:none}.phonebar{height:calc(52px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--bg-chrome);border-top:1px solid var(--border);justify-content:space-around;align-items:stretch;display:flex}.pb-btn{color:var(--fg-muted);background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:10.5px;display:flex}.pb-btn[aria-pressed=true]{color:var(--accent-text)}.viewcube{transform-origin:100% 0;transform:scale(.85)}.navbar{top:96px}}.props{flex-direction:column;height:100%;min-height:0;display:flex}.type-sel{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-input);min-height:52px;color:var(--fg);text-align:left;flex:none;align-items:center;gap:10px;width:calc(100% - 16px);margin:8px 8px 6px;padding:6px 8px;display:flex}button.type-sel:hover:not(:disabled){border-color:var(--border-strong)}.type-sel:disabled{cursor:default}.type-sel-ico{border-radius:var(--r-sm);background:var(--bg-group);width:38px;height:38px;color:var(--fg);flex:none;place-items:center;display:grid}.type-sel-text{flex-direction:column;flex:1;min-width:0;display:flex}.type-sel-fam{font-size:var(--fs-xs);color:var(--fg-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.type-sel-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.props-bar{flex:none;align-items:center;gap:6px;padding:0 8px 6px;display:flex}.props-bar .input{height:26px;font-size:var(--fs-sm);flex:1}.props-body{border-top:1px solid var(--border);flex:1;min-height:0;overflow:auto}.pgroup-head{z-index:1;border:0;border-bottom:1px solid var(--border);background:var(--bg-group);width:100%;height:26px;color:var(--fg);font-size:var(--fs-xs);text-align:left;align-items:center;gap:4px;padding:0 8px;font-weight:700;display:flex;position:sticky;top:0}.pgroup-head .icon{color:var(--fg-muted);transition:transform .12s}.pgroup-head[aria-expanded=false] .icon{transform:rotate(-90deg)}.prow{border-bottom:1px solid var(--border);min-height:28px;font-size:var(--fs-sm);grid-template-columns:minmax(96px,44%) minmax(0,1fr);align-items:center;display:grid}.prow-label{color:var(--fg);text-overflow:ellipsis;white-space:nowrap;border-right:1px solid var(--border);align-self:stretch;align-items:center;padding:4px 8px;display:flex;overflow:hidden}.prow.ro .prow-label,.prow.ro .prow-value{color:var(--fg-faint)}.prow-value{align-items:center;gap:4px;min-width:0;padding:2px 4px;display:flex}.prow-value .input{height:24px;font-size:var(--fs-sm);border-radius:var(--r-sm);background:0 0;border-color:#0000;padding:0 4px}.prow-value .input:hover{border-color:var(--border)}.prow-value .input:focus-visible{background:var(--bg-input)}.prow-value .ro-text{text-overflow:ellipsis;white-space:nowrap;padding:0 4px;overflow:hidden}.prow-value .btn.sm{width:100%;height:22px}.prow.varies .input::placeholder{color:var(--fg-faint);font-style:italic}.props-empty{color:var(--fg-faint);font-size:var(--fs-sm);padding:16px}.browser-search{border-bottom:1px solid var(--border);flex:none;padding:6px 8px}.browser-search .input{height:26px;font-size:var(--fs-sm)}.tree{font-size:var(--fs-sm);margin:0;padding:4px 0 12px;list-style:none}.tree ul{margin:0;padding:0;list-style:none}.tnode{width:100%;min-height:24px;padding:0 8px 0 calc(6px + var(--depth,0) * 14px);color:var(--fg);text-align:left;white-space:nowrap;cursor:default;background:0 0;border:0;outline:none;align-items:center;gap:4px;display:flex}.tnode:hover{background:var(--bg-hover)}.tnode:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.tnode[aria-selected=true]{background:var(--accent-soft)}.tnode.current .tnode-name{font-weight:700}.tnode-twisty{width:14px;height:14px;color:var(--fg-muted);flex:none;place-items:center;transition:transform .12s;display:grid}.tnode[aria-expanded=false] .tnode-twisty{transform:rotate(-90deg)}.tnode-twisty.leaf{visibility:hidden}.tnode-ico{color:var(--fg-muted);flex:none;display:inline-flex}.tnode-name{text-overflow:ellipsis;min-width:0;overflow:hidden}.tnode-count{color:var(--fg-faint);font-size:var(--fs-xs);margin-left:auto}.tree-rename{height:22px;font-size:var(--fs-sm)}@media (pointer:coarse){.tnode{min-height:36px}.prow{min-height:38px}}.menu{z-index:1000;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--bg-elev);outline:none;min-width:200px;max-width:360px;max-height:calc(100vh - 16px);padding:4px;position:fixed;overflow-y:auto}.menu-item{border-radius:var(--r-sm);width:100%;height:30px;color:var(--fg);text-align:left;font-size:var(--fs-sm);background:0 0;border:0;align-items:center;gap:8px;padding:0 8px 0 4px;display:flex}.menu-item:hover:not(:disabled){background:var(--accent-soft)}.menu-item:focus-visible{background:var(--accent-soft);outline:2px solid var(--focus);outline-offset:-2px}.menu-item:disabled{color:var(--fg-faint)}.menu-check,.menu-icon{flex:none;justify-content:center;align-items:center;width:16px;display:inline-flex}.menu-check{width:14px;color:var(--accent-text)}.menu-icon{color:var(--fg-muted)}.menu-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.menu-kbd{background:0 0;border:0;padding:0}.menu-sub{color:var(--fg-muted)}.menu-sep{background:var(--border);height:1px;margin:4px 2px}.menu-header{font-size:var(--fs-xs);color:var(--fg-muted);padding:6px 8px 4px}.menu.app-menu{min-width:260px}.menu.type-menu{min-width:280px;max-width:400px}.type-menu-search{padding:4px 4px 6px}.type-menu-search .input{height:28px}@media (pointer:coarse){.menu-item{height:40px}}.tooltip{z-index:1100;border-radius:var(--r-md);background:var(--tooltip-bg);max-width:300px;color:var(--tooltip-fg);font-size:var(--fs-sm);opacity:0;visibility:hidden;pointer-events:none;padding:6px 9px;transition:opacity .1s;position:fixed}.tooltip.show{opacity:1;visibility:visible}.tooltip-title{align-items:center;gap:8px;font-weight:600;display:flex}.tooltip-title kbd{color:inherit;opacity:.75;background:0 0;border-color:currentColor}.tooltip-desc{opacity:.85;margin-top:2px}.toasts{color:inherit;inset:auto auto auto 50%;bottom:calc(var(--status-h) + var(--viewbar-h) + 12px);z-index:1200;pointer-events:none;background:0 0;border:0;flex-direction:column;align-items:center;gap:6px;margin:0;padding:0;display:flex;position:fixed;overflow:visible;transform:translate(-50%)}@media (max-width:760px){.toasts{bottom:calc(64px + var(--viewbar-h) + env(safe-area-inset-bottom))}}.toast{border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--bg-elev);max-width:min(520px,100vw - 24px);font-size:var(--fs-sm);pointer-events:auto;align-items:center;gap:8px;padding:6px 6px 6px 12px;display:flex}.toast.success{border-color:var(--success)}.toast.error{border-color:var(--danger)}.toast-msg{flex:1}.alpha-notice{right:16px;bottom:calc(var(--status-h) + var(--viewbar-h) + 16px);z-index:900;border:1px solid var(--warning);border-radius:var(--r-lg);background:var(--bg-elev);gap:10px;width:min(380px,100vw - 32px);padding:12px 14px;display:flex;position:fixed}.alpha-icon{color:var(--warning);padding-top:1px}.alpha-body h2{font-size:var(--fs-md);margin-bottom:2px;font-weight:600}.alpha-body p{font-size:var(--fs-sm);color:var(--fg-muted)}.alpha-actions{margin-top:8px}@media (max-width:760px){.alpha-notice{width:auto;left:8px;right:8px;bottom:calc(60px + env(safe-area-inset-bottom))}}.canvas-input{z-index:4;border:1px solid var(--accent);border-radius:var(--r-md);background:var(--bg-elev);align-items:center;gap:4px;padding:3px;display:flex;position:absolute}.canvas-input .input{width:120px;height:24px;font-size:var(--fs-sm)}.canvas-input textarea.input{width:240px;height:70px}.schedule{min-width:max-content;padding:16px}.schedule-head{align-items:center;gap:10px;margin-bottom:10px;display:flex}.schedule-head h2{font-size:var(--fs-lg);flex:1;font-weight:650}.schedule table{border-collapse:collapse;font-size:var(--fs-sm);background:var(--bg-panel)}.schedule th,.schedule td{border:1px solid var(--border);text-align:left;white-space:nowrap;padding:4px 10px}.schedule th{background:var(--bg-group);cursor:pointer;font-weight:600;position:sticky;top:0}.schedule th[aria-sort]{color:var(--accent-text)}.schedule td.num{text-align:right;font-variant-numeric:tabular-nums}.schedule tr.sel td{background:var(--accent-soft)}.schedule tbody tr:hover td{background:var(--bg-hover)}.schedule td input{width:100%;min-width:80px;font:inherit;color:inherit;background:0 0;border:0;padding:0}.schedule td input:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.schedule tfoot td{background:var(--bg-group);font-weight:600}.layers-table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.layers-table th,.layers-table td{border-bottom:1px solid var(--border);text-align:left;padding:4px 6px}.layers-table th{color:var(--fg-muted);font-weight:600;font-size:var(--fs-xs)}.layers-table .input{height:26px}.layers-table tr[aria-selected=true] td{background:var(--accent-soft)}.layer-preview{border:1px solid var(--border);border-radius:var(--r-sm);width:100%;height:46px;margin:8px 0;display:block}.vis-table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.vis-table td{border-bottom:1px solid var(--border);padding:4px 6px}.swatch-btn{border:1px solid var(--border-strong);border-radius:var(--r-sm);width:28px;height:22px;padding:0}.kbd-list{font-size:var(--fs-sm);grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:4px 24px;display:grid}.kbd-row{border-bottom:1px solid var(--border);justify-content:space-between;gap:12px;padding:3px 0;display:flex}.share-list{border:1px solid var(--border);border-radius:var(--r-md);margin:8px 0 0;padding:0;list-style:none}.share-list li{align-items:center;gap:8px;padding:6px 8px;display:flex}.share-list li+li{border-top:1px solid var(--border)}.share-list .grow{text-overflow:ellipsis;min-width:0;overflow:hidden}.dialog{border:1px solid var(--border-strong);border-radius:var(--r-lg);background:var(--bg-panel);width:min(520px,100vw - 24px);max-height:calc(100dvh - 32px);color:var(--fg);flex-direction:column;padding:0;display:flex}.dialog:not([open]){display:none}.dialog::backdrop{background:var(--scrim)}.dialog.size-sm{width:min(400px,100vw - 24px)}.dialog.size-lg{width:min(820px,100vw - 24px)}.dialog-head{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:12px 12px 10px 18px;display:flex}.dialog-title{font-size:var(--fs-lg);flex:1;font-weight:600}.dialog-body{min-height:0;padding:14px 18px;overflow:auto}.dialog-text{color:var(--fg-muted)}.dialog-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:10px 18px 14px;display:flex}.dialog.sheet{border-radius:var(--r-lg) var(--r-lg) 0 0;width:100%;max-width:100%;padding-bottom:env(safe-area-inset-bottom);margin:auto auto 0}.field{flex-direction:column;gap:4px;margin-bottom:10px;display:flex}.field-label{font-size:var(--fs-sm);color:var(--fg-muted);font-weight:500}.field-hint{font-size:var(--fs-xs);color:var(--fg-faint)}.field-error{font-size:var(--fs-sm);color:var(--danger);min-height:1em}.fs{border:1px solid var(--border);border-radius:var(--r-md);margin:0 0 12px;padding:8px 12px 6px}.fs legend{font-size:var(--fs-sm);padding:0 4px;font-weight:600}.row2{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (max-width:599px){.row2{grid-template-columns:1fr}}.dlg-sub{font-size:var(--fs-sm);margin:12px 0 6px;font-weight:600}.dlg-sub:first-child{margin-top:0}.sample{border-radius:var(--r-md);background:var(--bg-chrome);font:var(--fs-sm) var(--font-mono);padding:8px 10px;display:block}.open-sources{gap:8px;margin-bottom:8px;display:grid}.file-list{border:1px solid var(--border);border-radius:var(--r-md);max-height:320px;margin:6px 0 0;padding:0;list-style:none;overflow-y:auto}.file-list:empty{display:none}.file-item{border:0;border-bottom:1px solid var(--border);text-align:left;background:0 0;align-items:center;gap:10px;width:100%;padding:8px 10px;display:flex}.file-item:hover{background:var(--bg-hover)}.file-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.file-meta{font-size:var(--fs-xs);color:var(--fg-faint)}.file-empty{color:var(--fg-muted);justify-items:start;gap:10px;padding:12px;display:grid}.plot-cols{grid-template-columns:1fr 380px;gap:18px;display:grid}.plot-prev{border-radius:var(--r-md);background:var(--bg-chrome);place-items:center;min-height:280px;display:grid}.plot-preview{border:1px solid var(--border-strong);display:block}.scale-row{font-size:var(--fs-sm);grid-template-columns:1fr auto 1fr auto;align-items:center;gap:6px;margin:6px 0 4px;display:grid}.scale-row.disabled{opacity:.55}@media (max-width:760px){.plot-cols{grid-template-columns:1fr}}.aci-grid{grid-template-columns:repeat(24,minmax(16px,1fr));gap:2px;display:grid;overflow-x:auto}.aci{aspect-ratio:1;border:1px solid #0000;border-radius:2px;min-width:0;padding:0}.aci[aria-checked=true]{outline:2px solid var(--fg);outline-offset:1px;z-index:1}.aci-extra{gap:16px;margin-top:10px;display:flex}.aci-row{gap:2px;display:flex}.aci-row .aci{width:22px}.color-foot{flex-wrap:wrap;align-items:center;gap:12px;margin-top:14px;display:flex}.color-label{min-width:80px;font-weight:500}.tabs{border-bottom:1px solid var(--border);gap:2px;margin-bottom:12px;display:flex;overflow-x:auto}.tab{height:32px;color:var(--fg-muted);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:0 12px;font-weight:500}.tab[aria-selected=true]{color:var(--fg);border-bottom-color:var(--accent)}.snap-grid{grid-template-columns:1fr 1fr;gap:0 16px;margin:8px 0;display:grid}.snap-ico{color:var(--fg-muted);display:inline-flex}.style-dlg{grid-template-columns:200px 1fr;gap:16px;display:grid}.style-side{flex-direction:column;gap:8px;display:flex}.style-side .inline{flex-wrap:wrap;gap:4px}.style-list{border:1px solid var(--border);border-radius:var(--r-md);min-height:200px;max-height:340px;margin:0;padding:4px;list-style:none;overflow-y:auto}.style-item{border-radius:var(--r-sm);text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;width:100%;height:30px;padding:0 8px;display:flex}.style-item[aria-selected=true]{background:var(--accent-soft)}@media (max-width:599px){.style-dlg{grid-template-columns:1fr}}.lt-list{max-height:300px;font-family:var(--font-mono);font-size:var(--fs-sm);flex-direction:column;margin:6px 0 12px;display:flex;overflow-y:auto}.purge section{margin-bottom:10px}.purge-names{color:var(--fg-muted);font-size:var(--fs-sm);overflow-wrap:anywhere}.help-list{color:var(--fg-muted);gap:4px;margin:0;padding-left:18px;display:grid}.kv{font-size:var(--fs-sm);grid-template-columns:max-content 1fr;gap:4px 16px;margin:0;display:grid}.kv dt{font-weight:500}.kv dd{color:var(--fg-muted);margin:0}.kv.cmds{grid-template-columns:minmax(180px,max-content) 1fr}.kv.cmds small{color:var(--fg-faint)}.shortcuts{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:8px 24px;display:grid}.palette-dlg .dialog-body{padding:10px}.palette-input{height:38px;font-size:var(--fs-md)}.palette-list{max-height:360px;margin:8px 0 0;padding:0;list-style:none;overflow-y:auto}.palette-item{border-radius:var(--r-sm);cursor:pointer;align-items:center;gap:10px;padding:7px 10px;display:flex}.palette-item[aria-selected=true]{background:var(--accent-soft)}.palette-label{flex:1}.palette-cmd{font:var(--fs-xs) var(--font-mono);color:var(--fg-faint)}.tool-grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px;display:grid}.tool-tile{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-input);font-size:var(--fs-sm);text-align:center;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;display:flex}.tool-tile:active{background:var(--bg-pressed)}.radios{gap:2px;display:grid}
