:root{--accent:#047857;--ink:#111827;--muted:#6b7280;--line:#e5e7eb;--surface:#fff;--ground:#f6f7f8;--danger:#b91c1c;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink);background:var(--ground);--bg:#0a0a0b;--panel:#ffffff05;--card:#ffffff09;--card-hover:#ffffff0e;--border:#ffffff1a;--border-soft:#ffffff12;--border-strong:#fff3;--text:#ededef;--text-2:#a1a1aa;--text-3:#8b8b95;--pink:#f2309b;--on-accent:#0a0a0b;--pink-soft:#f564b4;--pink-tint:#f2309b1a;--pink-border:#f2309b59;--red:#f87171;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--overlay:#121215eb;--overlay-solid:#1b1b1f;font-family:system-ui,-apple-system,Segoe UI,sans-serif}[data-theme=light]{--bg:#fafafb;--panel:#14161c06;--card:#fff;--card-hover:#f3f4f6;--border:#1112161f;--border-soft:#11121614;--border-strong:#11121638;--text:#141417;--text-2:#494951;--text-3:#6e6e78;--pink-soft:#c21e80;--pink-tint:#f2309b1f;--pink-border:#f2309b66;--red:#dc2626;--overlay:#ffffffeb;--overlay-solid:#fff;--on-fill:#fff}[data-theme=dark]{--accent:#34d399;--ink:var(--text);--muted:var(--text-2);--line:var(--border);--surface:#121215;--ground:var(--bg);--danger:var(--red);--on-fill:var(--on-accent);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{-webkit-text-size-adjust:100%;margin:0;font-size:15px;line-height:1.5}.app{max-width:68rem;margin:0 auto;padding:1.5rem 1rem 4rem}header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:1rem;padding-bottom:1rem;display:flex}h1{letter-spacing:.02em;margin:0;font-size:1.1rem}h1 a{color:var(--ink);text-decoration:none}h2{margin:0 0 .75rem;font-size:.95rem}main{flex-direction:column;gap:1rem;padding-top:1rem;display:flex}.card{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:1rem}.card-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.card-head h2{margin:0}.muted{color:var(--muted);margin:.5rem 0 0}.error{color:var(--danger);margin:.5rem 0 0}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em}.wrap{overflow-wrap:anywhere;min-width:0}button,.button{font:inherit;border:1px solid var(--accent);background:var(--accent);color:var(--on-fill);cursor:pointer;border-radius:6px;min-height:2.25rem;padding:.45rem .9rem;text-decoration:none;display:inline-block}button:disabled{opacity:.5;cursor:default}button.link,a.link{color:var(--accent);text-align:left;cursor:pointer;background:0 0;border:0;min-height:0;padding:0;text-decoration:underline}a.back{display:inline-block}input{font:inherit;border:1px solid var(--line);background:var(--surface);min-width:0;color:var(--ink);border-radius:6px;flex:12rem;min-height:2.25rem;padding:.45rem .6rem}.row{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.gate{max-width:32rem}.who{overflow-wrap:anywhere;align-items:baseline;gap:.75rem;min-width:0;display:flex}.drop{border:1px dashed var(--line);text-align:center;border-radius:8px;flex-direction:column;align-items:center;gap:.75rem;padding:1.75rem 1rem;display:flex}.drop.dragging{border-color:var(--accent);background:#ecfdf5}.drop p{color:var(--muted);margin:0}.progress{background:var(--line);border-radius:999px;height:6px;margin-top:.75rem;overflow:hidden}.progress span{background:var(--accent);height:100%;transition:width .15s linear;display:block}.facts{grid-template-columns:9rem 1fr;gap:.25rem 1rem;margin:.75rem 0;display:grid}.facts .contents{display:contents}.facts dt{color:var(--muted)}.facts dd{min-width:0;margin:0}.scroll{overflow-x:auto}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:.5rem .6rem .5rem 0}th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}tbody tr{cursor:pointer}tr.total td{cursor:default;font-weight:600}tr.part td:first-child{padding-left:1.5em}.badge{border:1px solid var(--line);color:var(--muted);background:var(--ground);border-radius:999px;padding:.05rem .5rem;font-size:.78rem;display:inline-block}.badge.running{border-color:var(--accent);color:var(--accent);background:#ecfdf5}.badge.done{border-color:var(--accent);color:var(--on-fill);background:var(--accent)}.badge.failed{border-color:var(--danger);color:var(--on-fill);background:var(--danger)}.outputs td{vertical-align:top}.outputs td:nth-child(2){white-space:nowrap}.outputs a{color:var(--accent)}.frag-source{gap:.4rem;display:flex}@media (width<=640px){.outputs,.outputs tbody{display:block}.outputs thead{display:none}.outputs tr{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;gap:.15rem .75rem;padding:.6rem 0;display:grid}.outputs td{white-space:normal;overflow-wrap:anywhere;border:0;padding:0}.outputs td:nth-child(3),.outputs td:nth-child(4){grid-column:1/-1}.outputs td:nth-child(3){color:var(--muted);font-size:.85rem}}@media (width<=800px){.app{padding:1rem .75rem 3rem}.facts{grid-template-columns:7rem 1fr}.hide-sm{display:none}}.app.wide{max-width:none}.viewer{grid-template-columns:minmax(0,1fr) 21rem;gap:1rem;height:calc(100dvh - 13rem);min-height:26rem;display:grid}.viewer-stage{border:1px solid var(--line);background:#eef1f4;border-radius:8px;min-width:0;position:relative;overflow:hidden}.viewer-canvas{touch-action:none;width:100%;height:100%;display:block}.viewer-overlay{text-align:center;background:color-mix(in srgb, var(--ground) 92%, transparent);flex-direction:column;justify-content:center;align-items:center;gap:.25rem;padding:1.5rem;display:flex;position:absolute;inset:0}.viewer-overlay .progress{width:min(22rem,80%)}.viewer-hud,.viewer-tools{background:var(--overlay);border:1px solid var(--line);border-radius:6px;position:absolute}.viewer-hud{color:var(--muted);max-width:calc(100% - 1rem);padding:.2rem .5rem;font-size:.75rem;top:.5rem;left:.5rem}.viewer-tools{background:0 0;border:0;gap:.4rem;padding:.4rem;display:flex;bottom:.5rem;left:.5rem}.viewer-tools button{min-height:2.1rem;padding:.35rem .7rem;font-size:.85rem}.viewer-view-select{font:inherit;border:1px solid var(--accent);background:var(--overlay);min-height:2.1rem;color:var(--accent);cursor:pointer;border-radius:6px;padding:.25rem .5rem;font-size:.85rem}.viewer-note{background:var(--overlay);color:var(--danger);border-radius:6px;align-self:center;padding:.25rem .5rem;font-size:.8rem}.walk-hud{pointer-events:none;flex-direction:column;align-items:flex-end;gap:.4rem;display:flex;position:absolute;bottom:.75rem;right:.75rem}.walk-stick{touch-action:none;pointer-events:auto;background:#ffffff73;border:2px solid #0478578c;border-radius:50%;width:7rem;height:7rem;position:relative}.walk-stick-knob{background:#047857bf;border-radius:50%;width:2.8rem;height:2.8rem;position:absolute;top:calc(50% - 1.4rem);left:calc(50% - 1.4rem)}.walk-hint{background:var(--overlay);max-width:16rem;color:var(--muted);text-align:right;border-radius:6px;margin:0;padding:.2rem .5rem;font-size:.75rem}button.ghost{background:var(--overlay);color:var(--accent)}.viewer-stage.placing .viewer-canvas{cursor:crosshair}.section-layer{pointer-events:none;position:absolute;inset:0;overflow:hidden}.section-outline{width:100%;height:100%;position:absolute;inset:0}.section-outline line{stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:5 4}.measure-layer{pointer-events:none;--measure:#c026d3;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.measure-line,.measure-edge,.measure-aim line{stroke:var(--measure);stroke-width:2px}.measure-line.dashed{stroke-dasharray:5 4}.measure-edge{stroke-width:4px;stroke-opacity:.55}.measure-end,.measure-draft{fill:var(--surface);stroke:var(--measure);stroke-width:2px}.measure-area{fill:var(--measure);fill-opacity:.22;fill-rule:evenodd;stroke:var(--measure);stroke-width:1.5px}.measure-area.preview{fill-opacity:.12;stroke-dasharray:4 3}.measure-label,.measure-snap text{fill:var(--ink);text-anchor:middle;paint-order:stroke;stroke:var(--surface);stroke-width:4px;stroke-linejoin:round;font:600 13px/1 system-ui,sans-serif}.measure-snap text{text-anchor:start;font-size:11px;font-weight:500}.measure-snap rect,.measure-snap path,.measure-snap circle{fill:none;stroke:var(--measure);stroke-width:2.5px}.measure-aim circle{fill:#ffffff40;stroke:var(--measure);stroke-width:2px}.measure-list{margin:0;padding:0;list-style:none}.measure-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem 0;display:flex}.measure-list li div{gap:.1rem;min-width:0;display:grid}.measure-list .mono{overflow-wrap:anywhere;font-size:.8rem}.section-handle{pointer-events:auto;touch-action:none;cursor:grab;background:0 0;border:0;border-radius:50%;place-items:center;width:2.75rem;height:2.75rem;min-height:0;margin:-1.375rem 0 0 -1.375rem;padding:0;display:grid;position:absolute;top:0;left:0}.section-handle:active{cursor:grabbing}.section-handle span{border:2px solid var(--accent);background:var(--surface);border-radius:50%;width:1.1rem;height:1.1rem;box-shadow:0 1px 3px #1118274d}.section-handle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.section-hint{border:1px solid var(--line);background:var(--overlay);border-radius:6px;align-self:center;padding:.3rem .6rem;font-size:.85rem}.section-kinds,.section-row{flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem;display:flex}.section-kinds button{flex:1}.section-row button,.section-kinds button{min-height:2.1rem;padding:.35rem .7rem;font-size:.85rem}.section-field{grid-template-columns:5.5rem minmax(0,1fr) auto;align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:.9rem;display:grid}.section-field input[type=range]{width:100%;accent-color:var(--accent)}.section-field input[type=number],.section-field select{font:inherit;border:1px solid var(--line);background:var(--surface);border-radius:6px;min-width:0;min-height:2.1rem;padding:.25rem .4rem}.section-panel .muted{font-size:.85rem}.viewer-side{border:1px solid var(--line);background:var(--surface);border-radius:8px;flex-direction:column;min-width:0;display:flex;overflow:hidden}.viewer-tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:.4rem;padding:.6rem;display:flex}.viewer-tabs button{flex:1 0 auto;min-height:2.1rem;padding:.35rem .6rem;font-size:.85rem}.viewer-panel{-webkit-overflow-scrolling:touch;padding:.85rem;overflow-y:auto}.viewer-panel .facts{grid-template-columns:7.5rem 1fr;font-size:.9rem}.storeys{margin:0;padding:0;list-style:none}.storeys label{cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.5rem;padding:.3rem 0;display:grid}.storeys input{width:1.05rem;height:1.05rem;min-height:0;accent-color:var(--accent);flex:none;padding:0}.colour-field{grid-template-columns:5.5rem minmax(0,1fr)}.colour-field select,.colour-filter select{width:100%}.legend-head{margin-top:.5rem}.legend-head h3{margin:0;font-size:.9rem}.legend li{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.5rem;padding:.2rem 0;display:grid}.legend-check{cursor:pointer;align-items:center;gap:.5rem;display:flex}.legend input{width:1.05rem;height:1.05rem;min-height:0;accent-color:var(--accent);margin:0}.legend-swatch{border-radius:3px;width:.9rem;height:.9rem;box-shadow:inset 0 0 0 1px #0b0b0b1a}.legend-value{min-height:0;color:var(--ink);text-align:left;overflow-wrap:anywhere;background:0 0;border:0;border-radius:4px;padding:.15rem .3rem;font-size:.9rem}.legend-value:hover{background:var(--ground)}.legend-isolated{box-shadow:inset 0 0 0 1px var(--line);font-weight:600}.legend-off .legend-swatch,.legend-off .legend-value{opacity:.45}.legend-hint,.colour-count{font-size:.8rem}.colour-filter{grid-template-columns:6.5rem minmax(0,1fr);gap:.5rem;margin-bottom:.5rem;display:grid}.colour-filter select,.colour-panel .section-field select{font:inherit;border:1px solid var(--line);background:var(--surface);border-radius:6px;min-width:0;min-height:2.1rem;padding:.25rem .4rem}.tree-panel{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.tree{border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex:1;min-height:0;position:relative;overflow-y:auto}.tree>div{position:relative}.tree-row{white-space:nowrap;align-items:center;gap:.3rem;font-size:.85rem;display:flex;position:absolute;left:0;right:0}.tree-row.dim .tree-label{color:var(--muted);text-decoration:line-through}.tree-row.selected{background:#f9731624}.tree-row.isolated{background:#2563eb1f}.tree-row.found{background:#04785724}.tree-row.found-within .tree-label{font-weight:600}.tree-row input{width:.95rem;height:.95rem;min-height:0;accent-color:var(--accent);flex:none;margin:0;padding:0}.tree-caret,.tree-label{min-height:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.tree-caret{width:1rem;color:var(--muted);flex:none}.tree-label{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.tree-row .mono{padding-right:.4rem;font-size:.75rem}.tree-note{margin:.4rem 0;font-size:.8rem}.search-panel{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.search-input{flex:none;width:100%}.search-actions{flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.5rem;display:flex}.search-count{flex:auto;font-size:.8rem}.search-actions button{min-height:2.1rem;padding:.3rem .7rem;font-size:.85rem}.search-results{border-top:1px solid var(--line);-webkit-overflow-scrolling:touch;flex:1;min-height:0;margin-top:.5rem;overflow-y:auto}.search-group h3{justify-content:space-between;gap:.5rem;margin:0;padding:.5rem .3rem .2rem;font-size:.8rem;display:flex}.search-group h3 .mono{font-size:.75rem}.search-hit{width:100%;min-height:0;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:4px;flex-direction:column;padding:.25rem .3rem;font-size:.85rem;display:flex}.search-hit:hover,.search-hit.active{background:var(--ground)}.search-hit.active{box-shadow:inset 0 0 0 1px var(--line)}.search-label,.search-detail{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;overflow:hidden}.search-detail{font-size:.75rem}.compare-counts{flex-wrap:wrap;gap:.2rem .8rem;margin:.4rem 0;font-size:.85rem;display:flex}.compare-panel{overflow-y:auto}.compare-panel>button.ghost{align-self:flex-start}.compare-panel .search-results{flex:none;overflow:visible}.search-more{margin:.2rem .3rem .4rem;font-size:.8rem}.pset{border-top:1px solid var(--line);margin-top:.9rem;padding-top:.6rem}.pset h3{margin:0;font-size:.85rem}.pset.tagged h3{color:var(--accent)}.pset .facts{grid-template-columns:minmax(6rem,1fr) minmax(0,1fr);font-size:.85rem}.viewer-modes{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.viewer-modes button{min-height:2.1rem;padding:.35rem .8rem;font-size:.85rem}.viewer-modes .error{margin:0}h3.section{border-top:1px solid var(--line);color:var(--muted);margin:1.25rem 0 0;padding-top:.75rem;font-size:.85rem}.job-progress{min-width:8rem}.job-progress .bar{background:var(--line);border-radius:999px;height:4px;margin-top:.3rem;overflow:hidden}.job-progress.large .bar{height:10px;margin-top:.75rem}.job-progress .bar span{background:var(--accent);height:100%;transition:width .4s;display:block}.job-progress.failed .bar span{background:var(--danger)}.job-progress .bar.indeterminate span{width:35%;animation:1.2s ease-in-out infinite job-progress-slide}.job-progress-label{color:var(--muted);justify-content:space-between;gap:.5rem;margin-top:.2rem;font-size:.75rem;display:flex}.job-progress.large .job-progress-label{font-size:.85rem}.job-progress.failed .job-progress-label{color:var(--danger)}@keyframes job-progress-slide{0%{transform:translate(-100%)}to{transform:translate(290%)}}@media (prefers-reduced-motion:reduce){.job-progress .bar.indeterminate span{opacity:.4;width:100%;animation:none}}.viewer-menu,.viewer-peek,.viewer-backdrop,.viewer-drawer-head{display:none}@media (pointer:coarse){.viewer-modes button,.viewer-tools button,.viewer-tabs button,.section-kinds button,.section-row button,.section-field input[type=number],.section-field select,.colour-filter select,.colour-filter input,.colour-panel button.link,.legend-check,.legend-value,.viewer-view-select,.views-panel button.link,.search-input,.search-actions button,.search-panel .search-more,.search-isolated button.link{min-width:2.75rem;min-height:2.75rem}.tree-caret{align-self:stretch;width:2rem}.tree-row input,.legend input{width:1.25rem;height:1.25rem}.search-hit{justify-content:center;min-height:2.75rem}}@media (width<=900px){.app.wide{height:100dvh;padding:max(.5rem, env(safe-area-inset-top)) max(.5rem, env(safe-area-inset-right)) max(.5rem, env(safe-area-inset-bottom)) max(.5rem, env(safe-area-inset-left));flex-direction:column;display:flex;overflow:hidden}.app.wide header{padding-bottom:.4rem}.app.wide h1{font-size:1rem}.app.wide main{flex:1;grid-template-rows:auto minmax(0,1fr);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.5rem;min-height:0;padding-top:.5rem;display:grid}.app.wide main>:not(.back,.viewer-modes){grid-column:1/-1}.app.wide a.back{justify-content:center;align-items:center;min-width:2.75rem;min-height:2.75rem;font-size:1.2rem;text-decoration:none;display:inline-flex}.back-label{display:none}.viewer-modes{scrollbar-width:none;flex-wrap:nowrap;min-width:0;overflow-x:auto}.viewer-modes button{flex:none}.viewer{align-self:stretch;height:auto;min-height:0;display:block;position:relative}.viewer-stage{touch-action:none;height:100%}.viewer-hud{pointer-events:none;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:calc(100% - 4.25rem);font-size:.7rem;display:-webkit-box;overflow:hidden}.viewer-tools{flex-wrap:wrap;padding:0;right:.5rem}.viewer:has(.viewer-peek) .viewer-tools{bottom:4.25rem}.walk-hud{top:40%;bottom:auto}.walk-hint{display:none}.viewer-menu{z-index:2;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;padding:0;display:inline-flex;position:absolute;top:.5rem;right:.5rem}.viewer-peek{z-index:2;border:1px solid var(--line);background:var(--surface);border-radius:8px;align-items:center;gap:.5rem;padding:.4rem .4rem .4rem .75rem;display:flex;position:absolute;bottom:.5rem;left:.5rem;right:.5rem}.viewer-peek-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.85rem;overflow:hidden}.viewer-peek button{flex:none;min-height:2.75rem}.viewer-backdrop{z-index:19;opacity:0;pointer-events:none;background:#11182759;transition:opacity .2s;display:block;position:fixed;inset:0}.viewer-backdrop.shown{opacity:1;pointer-events:auto}.viewer-side{z-index:20;width:min(24rem,100vw - 3rem);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) 0;touch-action:pan-y;visibility:hidden;border-width:0 0 0 1px;border-radius:0;transition:transform .2s,visibility 0s linear .2s;position:fixed;top:0;bottom:0;right:0;transform:translate(100%)}.viewer-side.drawer-open{visibility:visible;transition:transform .2s;transform:none}.viewer-drawer-head{justify-content:space-between;align-items:center;padding:.35rem .35rem 0 .85rem;font-size:.9rem;font-weight:600;display:flex}.viewer-drawer-head button{border-color:#0000;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;padding:0;display:inline-flex}.viewer-tabs button{min-height:2.75rem;padding:.35rem .4rem}.search-input,.search-actions button,.search-panel .search-more,.search-isolated button.link{min-height:2.75rem}.search-hit{justify-content:center;min-height:2.75rem}}@media (width<=900px) and (prefers-reduced-motion:reduce){.viewer-side,.viewer-side.drawer-open,.viewer-backdrop{transition:none}}.views-save{margin-top:0}.views-status{font-size:.85rem}.views{border-top:1px solid var(--line);margin:.75rem 0 0;padding:0;list-style:none}.views li{border-bottom:1px solid var(--line);align-items:center;gap:.5rem;padding:.35rem 0;display:flex}.views li.active{box-shadow:inset 3px 0 0 var(--accent);padding-left:.5rem}.views-open{min-width:0;min-height:0;color:var(--ink);text-align:left;background:0 0;border:0;flex-direction:column;flex:1;padding:.2rem 0;display:flex}.views-open .muted{margin:0;font-size:.8rem}.views-actions{flex:none;gap:.75rem;font-size:.85rem;display:flex}.viewer-debug{z-index:3;color:var(--ink);background:var(--overlay);border:1px solid var(--line);pointer-events:none;border-radius:6px;padding:.2rem .5rem;font-size:.7rem;line-height:1.35;position:absolute;top:2.2rem;left:.5rem}.viewer-guard{gap:.5rem;margin-top:.5rem;display:flex}button.delete-job{border-color:var(--line);background:var(--surface);min-width:2.75rem;min-height:2.75rem;color:var(--danger);justify-content:center;align-items:center;display:inline-flex}button.delete-job:hover:not(:disabled){border-color:var(--danger)}.delete-dialog{border:1px solid var(--line);background:var(--surface);width:min(30rem,100% - 2rem);color:var(--ink);white-space:normal;border-radius:8px;padding:1.25rem}.delete-dialog::backdrop{background:#0a0a0b73}.delete-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.theme-toggle{border-color:var(--line);min-height:2rem;color:var(--muted);font-family:var(--mono);background:0 0;margin-left:auto;padding:.2rem .6rem;font-size:12px}.viewer{--toolbar-h:46px}.viewer-hud{max-width:calc(100% - 124px - 1.75rem)}.viewer-toolbar-wrap{z-index:5;pointer-events:none;flex-direction:column;align-items:center;gap:.4rem;padding:0 .5rem;display:flex;position:absolute;bottom:.5rem;left:0;right:0}.viewer-toolbar-wrap>*{pointer-events:auto}.viewer-toolbar{border:1px solid var(--border);background:var(--overlay);max-width:100%;color:var(--text-2);scrollbar-width:none;border-radius:8px;align-items:center;gap:2px;padding:4px;display:flex;overflow-x:auto}.viewer-toolbar-gap{background:var(--border);flex:none;align-self:stretch;width:1px;margin:6px 3px}.viewer-tool{width:36px;height:36px;min-height:0;color:var(--text-2);background:0 0;border:1px solid #0000;border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.viewer-tool.viewer-tool-more{width:22px;margin-left:-2px}.viewer-tool:hover,.viewer-tool[aria-expanded=true]{border-color:var(--border-strong);color:var(--text)}.viewer-tool[aria-expanded=true]{background:var(--card-hover)}.viewer-tool[data-on],.viewer-flyout-item[data-on]{border-color:var(--pink-border);background:var(--pink-tint);color:var(--pink-soft)}.viewer-tool:focus-visible,.viewer-flyout-item:focus-visible,.nav-cube button:focus-visible,.theme-toggle:focus-visible{outline:2px solid var(--pink);outline-offset:1px}.viewer-toolbar-status{border:1px solid var(--border);background:var(--overlay);color:var(--text-2);font-family:var(--mono);border-radius:6px;margin:0;padding:2px 8px;font-size:12px}.viewer-flyout{border:1px solid var(--border);background:var(--overlay-solid);min-width:14rem;max-width:calc(100% - 1rem);color:var(--text);border-radius:8px;flex-direction:column;gap:2px;padding:4px;font-size:13px;line-height:1.45;display:flex;position:absolute;bottom:calc(100% + 6px);left:0}.viewer-flyout-grid{border-bottom:1px solid var(--border-soft);grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;margin-bottom:2px;padding-bottom:4px;display:grid}.viewer-flyout-item{width:100%;min-height:32px;color:var(--text);text-align:left;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:8px;padding:4px 8px;font-size:13px;display:flex}.viewer-flyout-item .icon{color:var(--text-2);flex:none}.viewer-flyout-item[data-on] .icon{color:inherit}.viewer-flyout-item:hover:not(:disabled){background:var(--card-hover);border-color:var(--border)}.viewer-flyout-grid .viewer-flyout-item{font-family:var(--mono);justify-content:center;padding:4px 2px;font-size:12px}.nav-cube{--cube:54px;--cube-box:96px;z-index:2;align-items:flex-start;gap:2px;display:flex;position:absolute;top:.5rem;right:.5rem}.nav-cube-stage{width:var(--cube-box);height:var(--cube-box);place-items:center;display:grid}.nav-cube-body{width:var(--cube);height:var(--cube);transform-style:preserve-3d;pointer-events:none;position:relative}.nav-cube-face{border:1px solid var(--border-strong);background:var(--overlay-solid);backface-visibility:hidden;grid-template:22% 1fr 22%/22% 1fr 22%;display:grid;position:absolute;inset:0}.nav-cube-front{transform:translateZ(calc(var(--cube) / 2))}.nav-cube-back{transform:rotateY(180deg) translateZ(calc(var(--cube) / 2))}.nav-cube-right{transform:rotateY(90deg) translateZ(calc(var(--cube) / 2))}.nav-cube-left{transform:rotateY(-90deg) translateZ(calc(var(--cube) / 2))}.nav-cube-top{transform:rotateX(90deg) translateZ(calc(var(--cube) / 2))}.nav-cube-bottom{transform:rotateX(-90deg) translateZ(calc(var(--cube) / 2))}.nav-cube-cell{pointer-events:auto;background:0 0;border:0;border-radius:0;min-width:0;min-height:0;padding:0}.nav-cube-cell:hover{background:var(--pink-tint)}.nav-cube-cell:focus-visible{outline-offset:-2px}.nav-cube-label{color:var(--text-2);font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;pointer-events:none;place-items:center;font-size:10px;display:grid;position:absolute;inset:0}.nav-cube-buttons{flex-direction:column;gap:2px;display:flex}.nav-cube-home,.nav-cube-views{border:1px solid var(--border);background:var(--overlay);width:28px;height:28px;min-height:0;color:var(--text-2);border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex}.nav-cube-home:hover,.nav-cube-views:hover,.nav-cube-views[aria-expanded=true]{border-color:var(--border-strong);color:var(--text)}.search-dock{left:.5rem;right:.5rem;bottom:calc(.5rem + var(--toolbar-h) + .5rem);z-index:4;pointer-events:none;flex-direction:column;justify-content:flex-end;display:flex;position:absolute}.search-dock>*{pointer-events:auto}.search-dock.open{z-index:25;position:fixed}.search-dock.open[style]{bottom:auto}.search-panel.docked{flex-direction:column;gap:6px;min-height:0;max-height:100%;display:flex}.search-dock-results{border:1px solid var(--border);background:var(--surface);-webkit-overflow-scrolling:touch;border-radius:8px;flex-direction:column;flex:0 auto;min-height:0;padding:.5rem .75rem;display:flex;overflow-y:auto}.search-dock-results .search-results{flex:none;overflow:visible}.search-panel.docked .search-input{border-color:var(--border);background:var(--overlay);width:100%;min-height:2.75rem;color:var(--text);flex:none;font-size:16px}.search-panel.docked .search-input:focus{border-color:var(--border-strong);outline:none}.nav-cube-menu{z-index:6;width:min(17rem,100% - 1rem);max-height:calc(100% - 1.5rem - var(--toolbar-h) - .5rem);border:1px solid var(--border);background:var(--overlay-solid);border-radius:8px;align-content:start;gap:.25rem;padding:.375rem;display:grid;position:absolute;top:.5rem;right:.5rem;overflow-y:auto;box-shadow:0 8px 24px #0000002e}.nav-cube-menu-group{grid-template-columns:1fr 1fr;gap:2px;display:grid}.nav-cube-menu-head{color:var(--text-2);letter-spacing:.04em;text-transform:uppercase;grid-column:1/-1;margin:.25rem .5rem .125rem;font-size:11px}.nav-cube-menu-item{min-height:44px;color:var(--text);text-align:left;background:0 0;border:0;border-radius:6px;padding:0 .5rem;font-size:13px}.nav-cube-menu-item:hover{background:var(--pink-tint)}@media (pointer:coarse){.viewer{--toolbar-h:54px}.viewer-tool,.viewer-tool.viewer-tool-more{width:44px;height:44px}.viewer-flyout-item{min-height:44px}.viewer-flyout-grid{grid-template-columns:repeat(4,minmax(44px,1fr))}.nav-cube-home,.nav-cube-views,.nav-cube-menu-item{min-width:44px;min-height:44px}.viewer-hud{max-width:calc(100% - 176px - 1.75rem)}}@media (width<=900px){.viewer-hud{max-width:calc(100% - 4.25rem)}.nav-cube{top:3.75rem}.viewer-peek{bottom:calc(.5rem + var(--toolbar-h) + .5rem)}}@media (width<=600px){.nav-cube{--cube:46px;--cube-box:80px}.viewer:has(.search-dock) .viewer-peek{bottom:calc(.5rem + var(--toolbar-h) + .5rem + 2.75rem + .5rem)}}@media (pointer:coarse){.nav-cube{--cube:76px;--cube-box:132px}.nav-cube-cell:not(.centre){display:none}.nav-cube-cell.centre{grid-area:1/1/-1/-1}}
