:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;text-rendering:optimizelegibility;--topbar-height:58px;--modebar-height:42px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;height:100%;margin:0;overflow:hidden}button,input,select,textarea{font:inherit}button,select{-webkit-user-select:none;user-select:none}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--focus);outline-offset:2px}button:disabled{cursor:not-allowed}.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}.skip-link{z-index:100;color:#fff;background:#176ee8;border-radius:5px;padding:9px 13px;text-decoration:none;transition:top .12s;position:fixed;top:-64px;left:16px}.skip-link:focus{top:12px}.app{--bg:#07101d;--surface-0:#091423;--surface-1:#0d1929;--surface-2:#122136;--surface-3:#182a43;--line:#223752;--line-strong:#314c6d;--text:#e6edf5;--text-soft:#aebbd0;--text-muted:#7587a2;--accent:#3f96ff;--accent-soft:#3f96ff24;--success:#52d598;--warning:#f0ba55;--danger:#ff7a7a;--focus:#79baff;--app-background:var(--bg);--surface:var(--surface-1);--surface-panel:var(--surface-1);--surface-raised:var(--surface-2);--surface-canvas:var(--bg);--border:var(--line);--border-subtle:var(--line);--border-strong:var(--line-strong);--text-primary:var(--text);--text-secondary:var(--text-soft);--accent-primary:var(--accent);--status-warning:var(--warning);--control-height:28px;--control-radius:4px;width:100%;height:100%;color:var(--text);background:var(--bg)}.app.theme-light{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#e8eef5;--surface-0:#f8fafc;--surface-1:#fff;--surface-2:#eff4f9;--surface-3:#e5edf6;--line:#cad6e3;--line-strong:#adbed0;--text:#182435;--text-soft:#46586c;--text-muted:#718398;--accent:#176ee8;--accent-soft:#176ee81a;--success:#087b4e;--warning:#9c6811;--danger:#b23b3b;--focus:#176ee8}.topbar{height:var(--topbar-height);border-bottom:1px solid var(--line);background:var(--surface-0);align-items:center;gap:16px;padding:0 14px;display:flex}.brand{flex:none;align-items:center;gap:10px;width:211px;display:flex}.brand-mark{color:#dbeaff;background:linear-gradient(145deg,#1677ea,#1251a9);border:1px solid #448ee8;border-radius:7px;place-items:center;width:34px;height:34px;display:grid;box-shadow:0 7px 22px #0061da33}.brand-copy{gap:1px;min-width:0;display:grid}.brand-copy strong{letter-spacing:.01em;font-size:14px}.brand-copy span{color:var(--text-muted);letter-spacing:.13em;text-transform:uppercase;font-size:10px;font-weight:650}.project-switcher-wrap{width:min(260px,20vw);position:relative}.project-switcher{width:100%;height:34px;color:var(--text);background:var(--surface-2);border:1px solid var(--line);appearance:none;border-radius:5px;padding:0 30px 0 11px;font-size:12px;font-weight:550}.select-chevron{color:var(--text-muted);pointer-events:none;position:absolute;top:10px;right:10px}.global-search{width:min(370px,25vw);height:34px;color:var(--text-muted);background:var(--surface-1);border:1px solid var(--line);border-radius:5px;align-items:center;gap:8px;padding:0 9px;display:flex}.global-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.global-search input{min-width:0;color:var(--text);background:0 0;border:0;outline:0;flex:1;font-size:12px}.global-search input::placeholder{color:var(--text-muted)}kbd{min-width:19px;color:var(--text-muted);background:var(--surface-3);border:1px solid var(--line);text-align:center;border-radius:3px;padding:1px 5px;font:10px IBM Plex Mono,monospace}.topbar-actions{align-items:center;gap:7px;min-width:0;margin-left:auto;display:flex}.system-pill{height:28px;color:var(--text-soft);background:var(--surface-1);border:1px solid var(--line);border-radius:20px;align-items:center;gap:6px;padding:0 9px;font-size:10px;font-weight:600;display:flex}.system-pill.is-online svg{color:var(--success)}.system-pill.is-offline svg{color:var(--warning)}.icon-button,.panel-toggle{width:30px;height:30px;color:var(--text-soft);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;place-items:center;padding:0;display:grid}.icon-button:hover:not(:disabled),.panel-toggle:hover:not(:disabled){color:var(--text);background:var(--surface-3);border-color:var(--line)}.icon-button:disabled{color:var(--text-muted);opacity:.45}.share-button{height:30px;color:var(--text-muted);background:var(--surface-2);border:1px solid var(--line);border-radius:4px;align-items:center;gap:6px;padding:0 10px;font-size:11px;font-weight:600;display:flex}.profile-wrap{position:relative}.profile-button{height:38px;color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;align-items:center;gap:8px;padding:3px 7px 3px 4px;display:flex}.profile-button:hover{background:var(--surface-2);border-color:var(--line)}.avatar{color:#e8f3ff;background:linear-gradient(145deg,#445f82,#293e5a);border:1px solid #57769d;border-radius:50%;place-items:center;width:29px;height:29px;font-size:10px;font-weight:700;display:grid}.profile-label{text-align:left;gap:1px;max-width:132px;display:grid}.profile-label strong,.profile-label small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.profile-label strong{font-size:10px}.profile-label small{color:var(--text-muted);letter-spacing:.04em;font-size:8px}.profile-menu{z-index:30;background:var(--surface-1);border:1px solid var(--line-strong);border-radius:7px;width:250px;padding:7px;position:absolute;top:44px;right:0;box-shadow:0 20px 50px #00000047}.profile-menu-heading{border-bottom:1px solid var(--line);gap:9px;margin-bottom:6px;padding:9px;display:flex}.profile-menu-heading svg{color:var(--accent)}.profile-menu-heading div{gap:2px;min-width:0;display:grid}.profile-menu-heading strong{font-size:12px}.profile-menu-heading small{color:var(--text-muted);font-size:10px}.profile-menu button{width:100%;height:34px;color:var(--text-soft);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:4px;align-items:center;gap:9px;padding:0 9px;font-size:11px;display:flex}.profile-menu button:hover{color:var(--text);background:var(--surface-3)}.modebar{height:var(--modebar-height);background:var(--surface-1);border-bottom:1px solid var(--line);align-items:center;gap:6px;padding:0 10px;display:flex}.mode-tabs{align-self:stretch;align-items:stretch;gap:2px;display:flex}.mode-tabs button{min-width:70px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;padding:0 12px;font-size:10px;font-weight:650;position:relative}.mode-tabs button:hover:not(:disabled){color:var(--text);background:var(--surface-2)}.mode-tabs button.active{color:var(--text)}.mode-tabs button.active:after{content:"";background:var(--accent);height:2px;position:absolute;bottom:0;left:10px;right:10px}.mode-tabs button:disabled:not(.active){opacity:.45}.mode-context{color:var(--text-muted);letter-spacing:.03em;text-transform:uppercase;align-items:center;gap:6px;margin-left:auto;font-size:9px;font-weight:600;display:flex}.status-dot{background:var(--success);width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb, var(--success), transparent 84%);border-radius:50%;flex:none;display:inline-block}.status-dot.warning{background:var(--warning);box-shadow:0 0 0 3px color-mix(in srgb, var(--warning), transparent 84%)}.warning-strip{z-index:20;top:calc(var(--topbar-height) + var(--modebar-height) + 6px);max-width:700px;color:var(--text);background:color-mix(in srgb, var(--warning), var(--surface-1) 86%);border:1px solid color-mix(in srgb, var(--warning), var(--line) 50%);border-radius:6px;align-items:center;gap:9px;padding:9px 10px;font-size:11px;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0003}.warning-strip svg{color:var(--warning)}.warning-strip button{width:23px;height:23px;color:var(--text-soft);background:0 0;border:0;border-radius:3px;place-items:center;margin-left:auto;padding:0;display:grid}.workspace{height:calc(100% - var(--topbar-height) - var(--modebar-height));grid-template:"left viewer right"minmax(0,1fr)/minmax(215px,255px) minmax(420px,1fr) minmax(235px,284px);display:grid;overflow:hidden}.workspace.left-collapsed{grid-template-columns:0 minmax(420px,1fr) minmax(235px,284px)}.workspace.right-collapsed{grid-template-columns:minmax(215px,255px) minmax(420px,1fr) 0}.workspace.left-collapsed.right-collapsed{grid-template-columns:0 minmax(420px,1fr) 0}.left-panel,.right-panel{background:var(--surface-1);min-width:0;overflow:hidden}.left-panel{border-right:1px solid var(--line);resize:horizontal;flex-direction:column;grid-area:left;display:flex}.right-panel{border-left:1px solid var(--line);resize:horizontal;flex-direction:column;grid-area:right;display:flex}.scene-display-content{flex:1;min-height:0;overflow:auto}.scene-display-content .point-controls,.scene-display-content .panorama-controls{width:auto;max-height:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-radius:0;padding:11px;position:static;overflow:visible}.scene-display-content .panorama-controls{border-top:1px solid var(--line-strong)}.scene-display-content>.extraction-properties{border-top:1px solid var(--line-strong);height:auto}.scene-display-section{border-top:1px solid var(--line-strong);padding:11px}.scene-display-section>header{justify-content:space-between;align-items:center;gap:8px;padding-bottom:9px;display:flex}.scene-display-section>header>div{gap:2px;display:grid}.scene-display-section>header strong{font-size:10px}.scene-display-section>header svg{color:var(--accent)}.scene-select-control{border-top:1px solid var(--line);gap:7px;padding-top:8px;display:grid}.scene-select-control>span{gap:2px;display:grid}.scene-select-control strong,.scene-select-control small,.scene-control-note,.scene-toggle-list label{font-size:8px}.scene-select-control small,.scene-control-note{color:var(--text-muted)}.scene-select-control select{min-height:27px;color:var(--text-soft);background:var(--surface-2);border:1px solid var(--line);border-radius:3px}.scene-control-note{margin:8px 0 0;line-height:1.45}.scene-toggle-list{border-top:1px solid var(--line);gap:6px;padding-top:8px;display:grid}.scene-toggle-list label{min-height:27px;color:var(--text-soft);grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:6px;display:grid}.restore-workspace-button{z-index:20;min-height:30px;color:var(--text);background:color-mix(in srgb, var(--surface-1), transparent 8%);border:1px solid var(--line-strong);cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:0 10px;font-size:8px;display:none;position:absolute;top:10px;right:10px;box-shadow:0 8px 24px #00000047}.app.viewport-focus .topbar,.app.viewport-focus .modebar,.app.viewport-focus .left-panel,.app.viewport-focus .right-panel,.app.viewport-focus .bottom-panel,.app.viewport-focus .extraction-mode-tools,.app.viewport-focus .viewer-statusbar,.app.viewport-focus .viewer-status-bar,.app.viewport-focus .navigation-cube,.app.viewport-focus .viewer-coordinate-readout,.app.viewport-focus .viewer-metrics{display:none}.app.viewport-focus .workspace{grid-template:"viewer"minmax(0,1fr)/minmax(0,1fr);width:100%;height:100%}.app.viewport-focus .restore-workspace-button{display:inline-flex}.left-collapsed .left-panel,.right-collapsed .right-panel{visibility:hidden}.panel-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;min-height:56px;padding:10px 11px 8px 13px;display:flex}.panel-heading>div{min-width:0}.eyebrow,.mini-label{color:var(--text-muted);letter-spacing:.13em;text-transform:uppercase;font-size:8px;font-weight:700;line-height:1.4;display:block}.panel-heading h2{text-overflow:ellipsis;white-space:nowrap;margin:2px 0 0;font-size:12px;line-height:1.3;overflow:hidden}.project-summary{border-bottom:1px solid var(--line);align-items:center;gap:9px;padding:12px;display:flex}.summary-icon{width:31px;height:31px;color:var(--accent);background:var(--accent-soft);border:1px solid color-mix(in srgb, var(--accent), transparent 65%);border-radius:5px;flex:none;place-items:center;display:grid}.project-summary div{gap:2px;min-width:0;display:grid}.project-summary strong,.project-summary small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-summary strong{font-size:10px}.project-summary small{color:var(--text-muted);font:8px IBM Plex Mono,monospace}.explorer-nav{gap:2px;padding:8px;display:grid}.explorer-nav button{width:100%;height:33px;color:var(--text-soft);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:4px;align-items:center;gap:9px;padding:0 8px;font-size:10px;display:flex}.explorer-nav button span{flex:1;min-width:0}.explorer-nav button strong{color:var(--text-muted);font:8px IBM Plex Mono,monospace}.explorer-nav button small{color:var(--text-muted);font:7px IBM Plex Mono,monospace}.explorer-nav button.active{color:var(--text);background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent), transparent 72%)}.explorer-nav button.active svg{color:var(--accent)}.explorer-nav button:disabled{opacity:.63}.layer-list{border-top:1px solid var(--line);min-height:0;padding:4px 8px 8px;overflow:auto}.layer-list-heading{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;padding:7px 4px;font-size:8px;font-weight:700;display:flex}.layer-list-heading small{color:var(--success);font-size:7px}.layer-row{min-width:0;min-height:31px;color:var(--text-soft);border-radius:4px;grid-template-columns:24px 7px minmax(0,1fr) auto 24px;align-items:center;gap:6px;font-size:9px;display:grid}.layer-row:hover{background:var(--surface-2)}.layer-row>i{width:7px;height:7px;box-shadow:0 0 0 2px color-mix(in srgb, currentColor, transparent 70%);border-radius:50%}.layer-row>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.layer-row>small{color:var(--text-muted);font:8px IBM Plex Mono,monospace}.layer-row button{width:24px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:3px;place-items:center;padding:0;display:grid}.layer-row button:hover{color:var(--accent);background:var(--accent-soft)}.layer-list-status{color:var(--text-muted);border-top:1px solid var(--line);padding:10px 12px;font-size:9px}.layer-list-status.error{color:var(--danger)}.left-panel-footer{border-top:1px solid var(--line);gap:3px;margin-top:auto;padding:10px 13px;display:grid}.left-panel-footer code{color:var(--text-soft);text-overflow:ellipsis;font:8px IBM Plex Mono,monospace;overflow:hidden}.viewer-column{background:var(--bg);grid-area:viewer;grid-template-rows:63px minmax(0,1fr) 29px;min-width:0;min-height:0;display:grid;position:relative}.viewer-column.tools-hidden{grid-template-rows:minmax(0,1fr) 29px}.viewer-column.readouts-hidden{grid-template-rows:63px minmax(0,1fr)}.viewer-column.tools-hidden.readouts-hidden,.app.viewport-focus .viewer-column{grid-template-rows:minmax(0,1fr)}.extraction-mode-tools{border-bottom:1px solid var(--border-subtle);background:var(--surface-1);grid-template-rows:39px 24px;min-width:0;display:grid}.extraction-mode-tools .viewer-toolbar{border-bottom:0}.extraction-tool-hint{border-top:1px solid var(--border-subtle);min-width:0;color:var(--text-muted);white-space:nowrap;align-items:center;gap:10px;padding:0 9px;font-size:8px;display:flex;overflow:hidden}.extraction-tool-hint strong{color:var(--text-soft)}.extraction-tool-hint kbd{border:1px solid var(--line-strong);background:var(--surface-0);color:var(--text);border-radius:3px;padding:1px 4px;font:7px IBM Plex Mono,monospace}.viewer-toolbar{background:var(--surface-0);border-bottom:1px solid var(--line);align-items:center;gap:5px;min-width:0;padding:0 8px;display:flex;overflow:auto hidden}.tool-button{height:27px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;align-items:center;gap:6px;padding:0 8px;font-size:9px;font-weight:600;display:flex}.toolbar-select select{max-width:138px;height:27px;color:var(--text-soft);background:var(--surface-1);border:1px solid var(--line);border-radius:4px;padding:0 24px 0 7px;font-size:8px}.tool-button.active{color:var(--text);background:var(--surface-3);border-color:var(--line)}.tool-button:disabled{opacity:.47}.toolbar-divider{background:var(--line);width:1px;height:17px;margin:0 3px}.toolbar-spacer,.status-spacer,.bottom-spacer{flex:1}.toolbar-readout{color:var(--text-muted);font:8px IBM Plex Mono,monospace}.viewer-surface{background:#08111e;min-width:0;min-height:0;position:relative;overflow:hidden}.web-viewer,.web-viewer-host{position:absolute;inset:0}.web-viewer{background:#07111e;overflow:hidden}.viewer-layout-surface{z-index:0;min-width:0;min-height:0;display:grid;position:absolute;inset:0}.viewer-layout-surface>.web-viewer-host{min-width:0;min-height:0;position:relative;inset:auto}.navigation-cube{z-index:5;pointer-events:none;width:126px;height:126px;padding:0;position:absolute;bottom:78px;left:12px}.web-viewer-host canvas,.web-viewer-canvas{cursor:grab;touch-action:none;width:100%;height:100%;display:block}.web-viewer-host canvas:active,.web-viewer-canvas:active{cursor:grabbing}.panorama-interaction-surface{z-index:2;cursor:grab;touch-action:none;background:0 0;position:absolute;inset:0}.panorama-interaction-surface:active{cursor:grabbing}.panorama-interaction-surface:focus-visible{outline:2px solid var(--focus);outline-offset:-4px}.extraction-interaction-surface{z-index:3;cursor:crosshair;touch-action:none;position:absolute;inset:0}.vector-edit-actions{z-index:3;max-width:min(560px,100% - 24px);color:var(--text);background:color-mix(in srgb, var(--surface-1) 92%, transparent);border:1px solid var(--line-strong);box-shadow:0 6px 20px color-mix(in srgb, var(--bg), transparent 50%);pointer-events:auto;border-radius:6px;gap:5px;padding:8px 10px;display:grid;position:absolute;top:12px;left:50%;transform:translate(-50%)}.vector-edit-actions>span{color:var(--text-soft);font-size:11px}.vector-edit-continuation-actions{flex-wrap:wrap;gap:6px;display:flex}.vector-edit-line-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.line-offset-inspector-action{z-index:6;max-width:min(520px,100% - 24px);color:var(--text);background:color-mix(in srgb, var(--surface-1) 92%, transparent);border:1px solid var(--line-strong);box-shadow:0 6px 20px color-mix(in srgb, var(--bg), transparent 50%);border-radius:6px;align-items:center;gap:7px;padding:7px 9px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.line-offset-inspector-action span{color:var(--text-soft);font-size:11px}.line-feature-context-menu{z-index:8;background:var(--surface-1);border:1px solid var(--line-strong);min-width:180px;box-shadow:0 8px 24px color-mix(in srgb, var(--bg), transparent 35%);border-radius:5px;padding:4px;position:absolute;transform:translate(4px,4px)}.line-feature-context-menu button{text-align:left;width:100%}.line-offset-dialog{z-index:9;width:min(390px,100% - 24px);max-height:calc(100% - 24px);color:var(--text);background:color-mix(in srgb, var(--surface-1) 96%, transparent);border:1px solid var(--line-strong);box-shadow:0 10px 32px color-mix(in srgb, var(--bg), transparent 30%);border-radius:7px;gap:8px;padding:10px;display:grid;position:absolute;top:12px;right:12px;overflow:auto}.line-offset-dialog>header,.line-offset-dialog>footer,.line-offset-mode{justify-content:space-between;align-items:center;gap:7px;display:flex}.line-offset-dialog>header>div{gap:2px;display:grid}.line-offset-dialog>header span,.line-offset-note{color:var(--text-soft);font-size:11px}.line-offset-mode button{flex:1}.line-offset-row{border:1px solid var(--line);border-radius:5px;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:8px;display:grid}.line-offset-row>legend,.line-offset-direction{grid-column:1/-1}.line-offset-row label{min-width:0;color:var(--text-soft);gap:3px;font-size:11px;display:grid}.line-offset-row select,.line-offset-row input{width:100%}.line-offset-direction{color:var(--accent);font-family:var(--font-mono);letter-spacing:.04em;font-size:12px;font-weight:700}.line-offset-error{color:var(--danger);margin:0;font-size:12px}.line-offset-drag-handle{z-index:7;color:#07111e;cursor:ew-resize;touch-action:none;background:#64e6ff;border:2px solid #fff;border-radius:50%;width:30px;height:30px;padding:0;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 3px #07111ea6}.clearance-interaction-surface{z-index:4;cursor:crosshair;touch-action:none;position:absolute;inset:0}.clearance-interaction-surface:focus-visible,.extraction-interaction-surface:focus-visible{outline:2px solid var(--focus);outline-offset:-4px}.cursor-target-preview{pointer-events:none;color:#64e6ff;filter:drop-shadow(0 0 3px #00131a);width:24px;height:24px;position:absolute;transform:translate(-50%,-50%)}.cursor-target-preview-ring{border:1px solid;border-radius:50%;position:absolute;inset:3px}.cursor-target-preview:before,.cursor-target-preview:after{content:"";background:currentColor;position:absolute}.cursor-target-preview:before{width:1px;height:24px;left:11px}.cursor-target-preview:after{width:24px;height:1px;top:11px}.cursor-target-preview-glyph{place-items:center;font-size:11px;line-height:1;display:grid;position:absolute;inset:0}.cursor-target-preview[data-kind=surface]{color:#ffe28a}.cursor-target-preview[data-kind=vertex]{color:#7dff9a}.cursor-target-preview[data-kind=endpoint]{color:#83c9ff}.cursor-target-preview[data-kind=intersection]{color:#ff75e6}.cursor-target-preview[data-kind=perpendicular]{color:#ffd166}.cursor-target-preview[data-kind=nearest-on-segment]{color:#c7a6ff}.cursor-target-preview[data-kind=snap]{color:#7dff9a}.cursor-target-preview[data-kind=plane]{color:#ff9c9c}.selection-polygon-preview{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.selection-polygon-preview polygon{fill:#52d6c829;stroke:var(--accent);stroke-width:2px;stroke-dasharray:5 3}.selection-polygon-preview circle{fill:var(--surface-0);stroke:var(--accent);stroke-width:2px}.drawing-geometry-preview{z-index:4;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.drawing-geometry-preview polyline{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.drawing-preview-halo{stroke:#000d18eb;stroke-width:6px}.drawing-preview-stroke{stroke:#3195ff;stroke-width:2px}.extraction-cursor-label,.extraction-pick-message{color:#f2f8ff;pointer-events:none;background:#061220e0;border:1px solid #52d6c87a;border-radius:4px;font:9px IBM Plex Mono,monospace;box-shadow:0 8px 28px #0000004d}.extraction-cursor-label{padding:5px 8px;position:absolute;top:36px;left:13px}.extraction-pick-message{z-index:7;max-width:min(520px,100% - 40px);padding:7px 10px;position:absolute;bottom:52px;left:50%;transform:translate(-50%)}.viewer-coordinate-readout{z-index:3;color:#7f96b1;pointer-events:none;gap:14px;font:8px IBM Plex Mono,monospace;display:flex;position:absolute;top:12px;left:13px}.viewer-load-card,.panorama-load-card,.viewer-error-card{z-index:6;color:#dce9f6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#091626e0;border:1px solid #5494d361;border-radius:7px;align-items:center;gap:11px;min-width:250px;padding:12px 14px;display:flex;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%);box-shadow:0 18px 55px #00000059}.viewer-load-card>div,.viewer-error-card>div{gap:3px;min-width:0;display:grid}.panorama-load-card{min-width:0;font-size:9px;top:auto;bottom:52px;transform:translate(-50%)}.viewer-load-card strong,.viewer-error-card strong{font-size:11px}.viewer-error-card{border-color:color-mix(in srgb, var(--danger), transparent 55%);width:min(450px,100% - 40px)}.viewer-error-card>svg{color:var(--danger);flex:none}.viewer-error-card button,.control-actions button{min-height:29px;color:var(--text-soft);background:var(--surface-2);border:1px solid var(--line);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;gap:6px;padding:0 9px;font-size:8px;font-weight:650;display:inline-flex}.spin-icon{color:var(--accent);animation:.9s linear infinite spin}.renderer-badge{z-index:4;color:#dae7f5;pointer-events:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#081320d1;border:1px solid #4e84b852;border-radius:5px;align-items:center;gap:9px;padding:8px 10px;display:flex;position:absolute;bottom:86px;right:14px}.renderer-badge>div{gap:2px;display:grid}.renderer-badge strong{font-size:9px}.renderer-badge small{color:#7f96b1;font:7px IBM Plex Mono,monospace}.point-controls,.panorama-controls{z-index:5;width:224px;max-height:calc(100% - 138px);color:var(--text);background:color-mix(in srgb, var(--surface-1), transparent 7%);border:1px solid color-mix(in srgb, var(--line-strong), transparent 20%);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:6px;padding:11px;position:absolute;top:38px;right:12px;overflow:auto;box-shadow:0 18px 42px #0000004d}.panorama-controls{z-index:5;width:252px;max-height:calc(100% - 92px);color:var(--text);background:color-mix(in srgb, var(--surface-1), transparent 4%);border:1px solid color-mix(in srgb, var(--accent), transparent 55%);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:6px;padding:11px;position:absolute;top:38px;right:12px;overflow:auto;box-shadow:0 18px 42px #00000061}.panorama-controls .control-field{grid-template-columns:minmax(0,1fr);justify-content:stretch;align-items:stretch;gap:5px;display:grid}.panorama-controls .control-field select{width:100%}.panorama-overlay-status{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px;padding:7px 0;display:grid}.panorama-overlay-status button{min-height:27px;color:var(--text);background:var(--surface-2);border:1px solid var(--line-strong);cursor:pointer;border-radius:4px;align-items:center;gap:5px;font-size:8px;display:inline-flex}.panorama-overlay-status span{color:var(--text-muted);font:8px IBM Plex Mono,monospace}.panorama-navigation{border-top:1px solid var(--line);grid-template-columns:1fr auto 1fr;align-items:center;gap:5px;padding:8px 0;display:grid}.panorama-navigation button,.panorama-close{min-height:28px;color:var(--text-soft);background:var(--surface-2);border:1px solid var(--line);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;gap:4px;font-size:8px;display:flex}.panorama-navigation button:disabled,.panorama-close:disabled{opacity:.4;cursor:default}.panorama-navigation>span{min-width:58px;color:var(--text-muted);text-align:center;font:8px IBM Plex Mono,monospace}.panorama-metadata{background:var(--surface-2);border:1px solid var(--line);border-radius:4px;gap:5px;margin:8px 0;padding:8px;display:grid}.panorama-metadata>div{grid-template-columns:52px minmax(0,1fr);gap:6px;min-width:0;display:grid}.panorama-metadata dt{color:var(--text-muted);font-size:8px}.panorama-metadata dd{color:var(--text-soft);text-align:right;text-overflow:ellipsis;white-space:nowrap;margin:0;font:8px IBM Plex Mono,monospace;overflow:hidden}.panorama-error{color:var(--danger);background:color-mix(in srgb, var(--danger), transparent 92%);border-radius:4px;align-items:flex-start;gap:6px;margin:7px 0;padding:7px;font-size:8px;line-height:1.4;display:flex}.panorama-close{width:100%;margin-top:7px}.point-controls-heading,.control-slider>span,.advanced-controls label,.control-field{justify-content:space-between;align-items:center;gap:8px;display:flex}.point-controls-heading{border-bottom:1px solid var(--line);padding-bottom:9px}.point-controls-heading>div{gap:2px;display:grid}.point-controls-heading strong{font-size:10px}.point-controls-heading>svg{color:var(--accent)}.control-actions{grid-template-columns:1fr 1fr;gap:6px;margin:9px 0;display:grid}.control-field,.control-slider,.classification-controls{border-top:1px solid color-mix(in srgb, var(--line), transparent 25%);padding:8px 0}.control-field>span,.control-slider>span>span,.classification-controls>span,.advanced-controls span{color:var(--text-muted);font-size:8px;font-weight:650}.control-field select{width:112px;height:26px;color:var(--text-soft);background:var(--surface-2);border:1px solid var(--line);border-radius:3px;padding:0 6px;font-size:8px}.point-cloud-distance-control{gap:6px;display:grid}.point-cloud-distance-control label{color:var(--text-muted);justify-content:space-between;align-items:center;gap:8px;font-size:8px;font-weight:650;display:flex}.point-cloud-distance-control select,.point-cloud-distance-control input[type=number]{width:112px;height:26px;color:var(--text-soft);background:var(--surface-2);border:1px solid var(--line);border-radius:3px;padding:0 6px;font-size:8px}.control-slider{gap:6px;display:grid}.control-slider output{color:var(--text-soft);font:8px IBM Plex Mono,monospace}.control-slider input[type=range]{width:100%;height:3px;accent-color:var(--accent)}.classification-controls{gap:7px;display:grid}.classification-controls>div{grid-template-columns:1fr 1fr;gap:4px;display:grid}.classification-controls button{min-width:0;height:25px;color:var(--text-soft);background:var(--surface-2);border:1px solid var(--line);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border-radius:3px;align-items:center;gap:5px;padding:0 6px;font-size:7px;display:flex;overflow:hidden}.classification-controls button[aria-pressed=false]{opacity:.43}.classification-swatch{background:#8799ad;border-radius:50%;flex:none;width:6px;height:6px}.classification-swatch.class-2{background:#749971}.classification-swatch.class-5{background:#3eb170}.classification-swatch.class-6{background:#8aa9cf}.classification-swatch.class-11{background:#677182}.point-controls details{border-top:1px solid var(--line);padding-top:8px}.point-controls summary{color:var(--text-muted);cursor:pointer;font-size:8px;font-weight:650}.advanced-controls{gap:6px;padding-top:8px;display:grid}.advanced-controls input[type=number]{width:80px;height:25px;color:var(--text-soft);background:var(--surface-2);border:1px solid var(--line);border-radius:3px;padding:0 5px;font-size:8px}.advanced-controls input[type=color]{background:var(--surface-2);border:1px solid var(--line);border-radius:3px;width:37px;height:24px;padding:2px}.viewer-status-bar{z-index:4;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#2e48658c;border:1px solid #48719c5c;border-radius:5px;position:absolute;bottom:12px;left:12px;right:12px;overflow:hidden}.viewer-status-survey{pointer-events:none;grid-template-columns:minmax(130px,2fr) repeat(4,minmax(84px,1fr));gap:1px;display:grid}.viewer-status-survey>div{background:#07111ed1;gap:3px;min-width:0;padding:7px 9px;display:grid}.viewer-status-survey span{color:#758ba5;letter-spacing:.06em;text-transform:uppercase;font-size:7px;font-weight:650}.viewer-status-survey strong{color:#dbe8f5;white-space:nowrap;text-overflow:ellipsis;font:10px IBM Plex Mono,monospace;overflow:hidden}.viewer-status-diagnostics{background:#07111ed1;border-top:1px solid #48719c5c}.viewer-status-diagnostics>summary{color:#758ba5;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;padding:5px 9px;font-size:7px;font-weight:650}.viewer-metrics{pointer-events:none;background:#2e48658c;grid-template-columns:repeat(5,minmax(90px,1fr));gap:1px;display:grid;overflow:hidden}.viewer-metrics>div{background:#07111ed1;gap:3px;min-width:0;padding:7px 9px;display:grid}.viewer-metrics span{color:#758ba5;letter-spacing:.06em;text-transform:uppercase;font-size:7px;font-weight:650}.viewer-metrics strong{color:#dbe8f5;text-overflow:ellipsis;font:10px IBM Plex Mono,monospace;overflow:hidden}.theme-light .viewer-surface{background:#d8e2ed}.scene,.scene-grid{position:absolute;inset:0}.scene{background:radial-gradient(circle at 58% 45%,#2070be1f,#0000 35%),linear-gradient(165deg,#0a1625 0%,#07101b 62%,#091524 100%);overflow:hidden}.theme-light .scene{background:radial-gradient(circle at 58% 45%,#2777c81f,#0000 35%),linear-gradient(165deg,#e6edf5,#d4e0eb)}.scene-grid{transform-origin:top;background-image:linear-gradient(#5b97d324 1px,#0000 1px),linear-gradient(90deg,#5b97d324 1px,#0000 1px);background-size:46px 46px;border-top:1px solid #6baae833;inset:43% -24% -85%;transform:perspective(600px)rotateX(58deg)scale(1.6);-webkit-mask-image:linear-gradient(#0000,#000 11% 72%,#0000);mask-image:linear-gradient(#0000,#000 11% 72%,#0000)}.scene-axis{opacity:.4;transform-origin:0;width:45%;height:1px;position:absolute;top:56%;left:50%}.scene-axis-x{background:linear-gradient(90deg,#e86b6b,#0000);transform:rotate(11deg)}.scene-axis-y{background:linear-gradient(90deg,#63c789,#0000);transform:rotate(169deg)}.scene-object{background:#246eb312;border:1px solid #68b5ff80;position:absolute;transform:skewY(-8deg)rotate(-4deg);box-shadow:inset 0 0 30px #3e97ee0d}.scene-object:before,.scene-object:after{content:"";background:#68b5ff3b;position:absolute}.scene-object:before{height:1px;top:50%;left:0;right:0}.scene-object:after{width:1px;top:0;bottom:0;left:52%}.scene-object-primary{width:22%;height:19%;top:35%;left:25%}.scene-object-secondary{opacity:.48;width:14%;height:13%;top:26%;right:21%}.scene-overlay{z-index:2;color:#718aa8;gap:13px;font:8px IBM Plex Mono,monospace;display:flex;position:absolute}.theme-light .scene-overlay{color:#5d7187}.scene-overlay-top{top:12px;left:13px}.scene-empty-state{z-index:3;color:#dbe8f5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#091626cc;border:1px solid #4f86be54;border-radius:8px;width:min(420px,100% - 50px);padding:24px 28px;position:absolute;top:48%;left:50%;transform:translate(-50%,-50%);box-shadow:0 24px 70px #00000052}.theme-light .scene-empty-state{color:#1a2a3e;background:#f6fafedb;box-shadow:0 24px 70px #21375129}.scene-empty-icon{width:42px;height:42px;color:var(--accent);background:var(--accent-soft);border:1px solid color-mix(in srgb, var(--accent), transparent 55%);border-radius:7px;place-items:center;margin-bottom:16px;display:grid}.scene-empty-state h2{letter-spacing:-.02em;margin:5px 0 8px;font-size:19px}.scene-empty-state p{max-width:360px;color:var(--text-soft);margin:0;font-size:11px;line-height:1.55}.scene-facts{border-top:1px solid var(--line);gap:17px;margin-top:17px;padding-top:15px;display:flex}.scene-facts span{color:var(--text-muted);align-items:center;gap:6px;font-size:9px;font-weight:600;display:flex}.scene-facts svg{color:var(--accent)}.scene-scale{z-index:2;color:#7f96b1;justify-items:center;font:8px IBM Plex Mono,monospace;display:grid;position:absolute;bottom:14px;right:15px}.scene-scale span{border-bottom:1px solid;border-left:1px solid;border-right:1px solid;width:76px;height:7px;margin-bottom:3px}.scene-loading,.scene-error{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.scene-empty-project{text-align:center;place-content:center;justify-items:center;gap:7px;padding:24px;display:grid;position:absolute;inset:0}.scene-empty-project>svg{color:var(--accent)}.scene-empty-project h2{margin:0;font-size:18px}.scene-empty-project p{max-width:430px;color:var(--text-muted);margin:0 0 5px;font-size:10px;line-height:1.55}.scene-loading h2,.scene-error h2{margin:5px 0;font-size:17px}.scene-error>svg{color:var(--danger);margin-bottom:14px}.scene-error p{color:var(--text-muted);font:9px IBM Plex Mono,monospace}.loader-ring{border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;margin-bottom:16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.primary-button{color:#fff;cursor:pointer;background:#176ee8;border:1px solid #4c94ee;border-radius:5px;min-height:33px;padding:0 13px;font-size:10px;font-weight:650}.viewer-statusbar{color:var(--text-muted);background:var(--surface-0);border-top:1px solid var(--line);align-items:center;gap:15px;padding:0 9px;font:8px IBM Plex Mono,monospace;display:flex}.viewer-statusbar>span{align-items:center;gap:6px;display:flex}.properties-scroll{height:calc(100% - 56px);overflow:auto}.property-section{border-bottom:1px solid var(--line);padding:13px}.property-section h3{color:var(--text-soft);letter-spacing:.08em;text-transform:uppercase;margin:0 0 11px;font-size:9px;font-weight:700}.property-list{gap:9px;margin:0;display:grid}.property-list>div{grid-template-columns:76px minmax(0,1fr);align-items:baseline;gap:8px;min-width:0;display:grid}.property-list dt{color:var(--text-muted);font-size:9px}.property-list dd{min-width:0;color:var(--text-soft);text-align:right;text-overflow:ellipsis;white-space:nowrap;margin:0;font:9px IBM Plex Mono,monospace;overflow:hidden}.property-list dd.success-text,.success-text{color:var(--success)}.asset-stat-grid{grid-template-columns:1fr 1fr;gap:7px;display:grid}.asset-stat-grid>div{background:var(--surface-2);border:1px solid var(--line);border-radius:5px;grid-template-columns:auto 1fr;align-items:center;gap:2px 7px;padding:9px;display:grid}.asset-stat-grid svg{color:var(--accent);grid-row:span 2}.asset-stat-grid strong{font-size:13px}.asset-stat-grid span{color:var(--text-muted);font-size:8px}.boundary-note{color:var(--success);background:color-mix(in srgb, var(--success), transparent 95%);gap:9px;display:flex}.boundary-note div{min-width:0}.boundary-note strong{color:var(--text);font-size:10px}.boundary-note p{color:var(--text-muted);margin:4px 0 0;font-size:9px;line-height:1.5}.empty-panel{color:var(--text-muted);gap:8px;padding:18px;font-size:10px;display:flex}.property-title-row{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.property-title-row h3{margin:0}.property-title-row button{color:var(--accent);background:var(--accent-soft);border:1px solid color-mix(in srgb, var(--accent), transparent 70%);cursor:pointer;border-radius:3px;align-items:center;gap:4px;padding:4px 6px;font-size:8px;display:flex}.selection-note{color:var(--text-muted);background:var(--surface-2);border:1px solid var(--line);border-radius:4px;margin:10px;padding:8px;font-size:9px}.review-issues-panel{border-top:1px solid var(--line);flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.review-section-heading{justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.review-section-heading strong{margin-top:2px;font-size:10px;display:block}.review-create-button,.review-dialog button,.review-comments button,.review-activity button{color:var(--text-soft);background:var(--surface-2);border:1px solid var(--line);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;gap:5px;font-size:9px;display:inline-flex}.review-create-button{height:27px;color:var(--accent);background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent), transparent 65%);padding:0 8px}.review-create-button:disabled,.review-dialog button:disabled,.review-comments button:disabled,.review-activity button:disabled{opacity:.45}.review-filter-grid{grid-template-columns:minmax(0,1fr) 92px;gap:5px;padding:0 8px 8px;display:grid}.review-filter-grid label{min-width:0;height:28px;color:var(--text-muted);background:var(--surface-2);border:1px solid var(--line);border-radius:3px;align-items:center;gap:5px;padding:0 7px;display:flex}.review-filter-grid input,.review-filter-grid select{width:100%;min-width:0;color:var(--text);background:0 0;border:0;outline:0;font-size:8px}.review-issue-list{border-top:1px solid var(--line);min-height:0;overflow:auto}.review-issue-list>button{width:100%;min-height:49px;color:var(--text-soft);border:0;border-bottom:1px solid var(--line);cursor:pointer;text-align:left;background:0 0;grid-template-columns:4px minmax(0,1fr) 20px;align-items:center;gap:8px;padding:7px 9px;display:grid}.review-issue-list>button:hover{background:var(--surface-2)}.review-issue-list>button.selected{color:var(--text);background:var(--accent-soft);box-shadow:inset 2px 0 var(--accent)}.review-severity{background:var(--text-muted);border-radius:3px;width:4px;height:24px;display:inline-block}.severity-low{background:#70b7ff}.severity-medium{background:#f0ba55}.severity-high{background:#ff8c5f}.severity-critical{background:#ff5f6d}.review-card-copy{gap:4px;min-width:0;display:grid}.review-card-copy strong,.review-card-copy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.review-card-copy strong{font-size:9px}.review-card-copy small,.review-comment-count,.review-list-state{color:var(--text-muted);font-size:8px}.review-comment-count{background:var(--surface-3);text-align:center;border-radius:8px;min-width:18px;padding:2px 4px}.review-list-state{text-align:center;padding:12px}.review-list-state.error{color:var(--danger)}.review-dialog-backdrop{z-index:80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#02070eb8;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.review-dialog{width:min(520px,100%);max-height:min(720px,100vh - 48px);color:var(--text);background:var(--surface-1);border:1px solid var(--line-strong);border-radius:8px;overflow:auto;box-shadow:0 24px 80px #00000073}.review-dialog-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.review-dialog-heading h2{margin:3px 0 0;font-size:15px}.review-dialog-heading>button{background:0 0;border:0;width:30px;height:30px;padding:0}.review-dialog form{gap:12px;padding:16px;display:grid}.review-dialog form>label,.review-dialog-grid label,.review-field-grid label,.review-assignee-field{color:var(--text-muted);letter-spacing:.04em;gap:5px;font-size:8px;font-weight:700;display:grid}.review-dialog input,.review-dialog textarea,.review-dialog select,.review-field-grid select,.review-assignee-field select,.review-comments textarea{width:100%;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:4px;font-size:10px}.review-dialog input,.review-dialog select,.review-field-grid select,.review-assignee-field select{height:32px;padding:0 9px}.review-dialog textarea,.review-comments textarea{resize:vertical;padding:8px 9px}.review-dialog-grid,.review-field-grid{grid-template-columns:1fr 1fr;gap:9px;display:grid}.review-context-check{background:var(--surface-2);border:1px solid var(--line);border-radius:4px;grid-template-columns:17px minmax(0,1fr);align-items:start;padding:9px}.review-context-check input{width:14px;height:14px;margin:1px 0 0}.review-context-check span{color:var(--text-soft);gap:3px;font-size:9px;display:grid}.review-context-check small{color:var(--text-muted);font-size:8px;font-weight:400}.review-dialog-actions{justify-content:flex-end;gap:7px;padding-top:3px;display:flex}.review-dialog-actions button{min-width:88px;height:32px;padding:0 12px}.review-form-error{color:var(--danger);background:color-mix(in srgb, var(--danger), transparent 94%);border:1px solid color-mix(in srgb, var(--danger), transparent 70%);border-radius:4px;align-items:flex-start;gap:7px;padding:8px;font-size:8px;line-height:1.45;display:flex}.review-detail{height:calc(100% - 56px);padding-bottom:18px;overflow:auto}.review-detail-empty{height:calc(100% - 56px);color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:7px;padding:18px;display:flex}.review-detail-empty strong{color:var(--text-soft);font-size:11px}.review-detail-empty p{margin:0;font-size:9px;line-height:1.5}.review-detail-title{border-bottom:1px solid var(--line);grid-template-columns:5px minmax(0,1fr);gap:9px;padding:13px;display:grid}.review-detail-title .review-severity{width:5px;height:100%;min-height:36px}.review-detail-title>div{gap:5px;min-width:0;display:grid}.review-detail-title strong{font-size:11px;line-height:1.4}.review-detail-title code{color:var(--text-muted);font-size:7px}.review-description{color:var(--text-soft);border-bottom:1px solid var(--line);white-space:pre-wrap;margin:0;padding:11px 13px;font-size:9px;line-height:1.55}.review-field-grid,.review-assignee-field{margin:11px 13px 0}.review-field-grid select,.review-assignee-field select{height:29px;font-size:8px}.review-meta-list{border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:7px;margin:12px 0 0;padding:11px 13px;display:grid}.review-meta-list>div{grid-template-columns:67px minmax(0,1fr);gap:7px;font-size:8px;display:grid}.review-meta-list dt{color:var(--text-muted)}.review-meta-list dd{color:var(--text-soft);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.review-context-section,.review-comments{border-bottom:1px solid var(--line);padding:12px 13px}.review-context-section h3,.review-comments h3{color:var(--text-soft);letter-spacing:.08em;text-transform:uppercase;margin:0 0 9px;font-size:9px}.review-context-section>div,.review-context-section>button{width:100%;min-width:0;color:var(--text-muted);text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;align-items:center;gap:7px;padding:5px 0;font-size:8px;display:flex;overflow:hidden}.review-context-section>button{color:var(--accent);cursor:pointer}.muted-copy{color:var(--text-muted);font-size:8px}.review-comments h3 span{color:var(--text-muted)}.review-comment-list{gap:9px;display:grid}.review-comment-list article{grid-template-columns:23px minmax(0,1fr);gap:7px;display:grid}.review-comment-avatar{width:23px;height:23px;color:var(--accent);background:var(--accent-soft);border-radius:50%;place-items:center;display:grid}.review-comment-list article>div{background:var(--surface-2);border:1px solid var(--line);border-radius:4px;min-width:0;padding:7px}.review-comment-list header{justify-content:space-between;gap:7px;font-size:8px;display:flex}.review-comment-list time{color:var(--text-muted);font-size:7px}.review-comment-list p{color:var(--text-soft);white-space:pre-wrap;margin:5px 0 0;font-size:8px;line-height:1.5}.review-comments form{gap:6px;margin-top:10px;display:grid}.review-comments button{height:27px;color:var(--accent);justify-self:end;padding:0 9px}.review-detail>.review-form-error{margin:10px 13px}.review-table{grid-template-rows:25px minmax(0,1fr);min-width:760px;height:100%;display:grid}.review-table-header,.review-table-body>button{grid-template-columns:minmax(260px,1.8fr) 110px 90px 120px 70px;align-items:center;gap:9px;padding:0 10px;display:grid}.review-table-header{color:var(--text-muted);background:var(--surface-0);border-bottom:1px solid var(--line);text-transform:uppercase;font-size:8px;font-weight:700}.review-table-body{min-height:0;overflow:auto}.review-table-body>button{width:100%;min-height:36px;color:var(--text-soft);border:0;border-bottom:1px solid var(--line);cursor:pointer;text-align:left;background:0 0;font-size:8px}.review-table-body>button:hover{background:var(--surface-2)}.review-table-body>button.selected{color:var(--text);background:var(--accent-soft);box-shadow:inset 2px 0 var(--accent)}.review-table-body span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.review-table-body span:first-child{gap:2px;display:grid}.review-table-body small{color:var(--text-muted);font-size:7px}.review-table-body [role=gridcell]:last-child{align-items:center;gap:4px;display:flex}.severity-text-low{color:#70b7ff}.severity-text-medium{color:var(--warning)}.severity-text-high,.severity-text-critical{color:var(--danger)}.review-activity{grid-template-rows:34px minmax(0,1fr);height:100%;display:grid}.review-activity-heading{color:var(--text-muted);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:0 9px;font-size:8px;display:flex}.review-activity-heading button{height:24px;padding:0 7px}.review-activity-list{min-height:0;overflow:auto}.review-activity-list>button{border:0;border-bottom:1px solid var(--line);text-align:left;background:0 0;grid-template-columns:25px minmax(0,1fr) auto;gap:8px;width:100%;min-height:42px;padding:5px 10px;display:grid}.review-activity-list>button:hover:not(:disabled){background:var(--surface-2)}.activity-icon{width:24px;height:24px;color:var(--accent);background:var(--accent-soft);border-radius:50%;place-items:center;display:grid}.review-activity-list>button>span:nth-child(2){gap:3px;min-width:0;display:grid}.review-activity-list strong{color:var(--text-soft);font-size:8px}.review-activity-list small,.review-activity-list time{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:8px;overflow:hidden}.bottom-panel{background:var(--surface-1);border-top:1px solid var(--line);resize:vertical;grid-area:bottom;grid-template-rows:35px minmax(0,1fr);min-width:0;min-height:0;display:grid}.bottom-collapsed .bottom-panel{overflow:hidden}.bottom-tabs{background:var(--surface-0);border-bottom:1px solid var(--line);align-items:stretch;padding:0 5px;display:flex}.bottom-tabs>button:not(.panel-toggle){min-width:92px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:9px;font-weight:600;display:flex;position:relative}.bottom-tabs>button.active{color:var(--text)}.bottom-tabs>button.active:after{content:"";background:var(--accent);height:2px;position:absolute;bottom:0;left:8px;right:8px}.tab-count{min-width:16px;color:var(--accent);background:var(--accent-soft);border-radius:8px;padding:1px 4px;font:7px IBM Plex Mono,monospace}.bottom-content{min-height:0;overflow:auto}.attribute-workspace{grid-template-columns:minmax(720px,1fr) auto;min-width:0;height:100%;display:grid;overflow:auto}.attribute-selection-details{background:var(--surface-1);border-left:1px solid var(--line-strong);width:255px;overflow:auto}.attribute-selection-details>header{border-bottom:1px solid var(--line);gap:2px;padding:7px 10px;font-size:9px;display:grid}.bottom-title{color:var(--text-soft);align-items:center;gap:6px;padding:0 9px;font-size:9px;font-weight:650;display:inline-flex}.extraction-layers{scrollbar-gutter:stable;flex-direction:column;flex:1;gap:10px;min-height:0;padding:10px;display:flex;overflow:auto}.extraction-panel-actions{gap:7px;display:grid}.extraction-create-actions,.extraction-file-actions{gap:4px;display:grid}.extraction-create-actions{background:var(--surface-2);border:1px solid var(--line);border-radius:7px;grid-template-columns:repeat(3,minmax(0,1fr));padding:4px}.extraction-file-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.extraction-create-actions button,.extraction-file-actions button,.danger-button{min-width:0;min-height:30px;color:var(--text-soft);background:var(--surface-1);border:1px solid var(--line);cursor:pointer;border-radius:5px;justify-content:center;align-items:center;gap:5px;padding:0 6px;font-size:9px;font-weight:700;transition:color .12s,background .12s,border-color .12s,box-shadow .12s;display:inline-flex}.extraction-create-actions button{background:0 0;border-color:#0000;min-height:32px}.extraction-create-actions button:hover,.extraction-file-actions button:hover,.extraction-create-actions button[aria-pressed=true]{color:var(--text);background:var(--surface-1);border-color:var(--line-strong)}.extraction-create-actions button[aria-pressed=true]{color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent), transparent 55%)}.extraction-panel-actions button:disabled{cursor:not-allowed;opacity:.45}.new-extraction-layer-form{background:var(--surface-2);border:1px solid color-mix(in srgb, var(--accent), var(--line) 55%);border-radius:4px;gap:7px;padding:9px;display:grid}.new-extraction-layer-form label{color:var(--text-soft);gap:2px;font-size:9px;display:grid}.new-extraction-layer-form label span{color:var(--text-muted);font-size:8px}.new-extraction-layer-form input,.new-extraction-layer-form select{min-width:0;height:30px;color:var(--text);background:var(--surface-1);border:1px solid var(--line-strong);border-radius:3px;padding:0 8px;font-size:10px}.new-extraction-layer-form input:focus,.new-extraction-layer-form select:focus{border-color:var(--accent);outline:2px solid color-mix(in srgb, var(--accent), transparent 72%);outline-offset:1px}.new-extraction-layer-form input[aria-invalid=true],.new-extraction-layer-form select[aria-invalid=true]{border-color:var(--danger)}.new-extraction-layer-form .field-error{color:var(--danger);font-size:8px}.drafting-profile-summary{color:var(--text-soft);background:color-mix(in srgb, var(--accent) 6%, var(--surface-1));border:1px solid color-mix(in srgb, var(--accent) 24%, var(--line));border-radius:4px;gap:3px;padding:7px 8px;font-size:8px;line-height:1.35;display:grid}.drafting-profile-summary span,.drafting-profile-summary small{color:var(--text-muted)}.drafting-profile-summary small{font-family:IBM Plex Mono,monospace}.new-extraction-layer-actions{gap:5px;display:flex}.new-extraction-layer-form button{min-height:27px;color:var(--text-soft);background:var(--surface-1);border:1px solid var(--line);cursor:pointer;border-radius:3px;padding:0 9px;font-size:8px;font-weight:650}.new-extraction-layer-form button[type=submit]{color:var(--accent-contrast);background:var(--accent);border-color:var(--accent)}.extraction-authority-note{color:var(--text-muted);align-items:center;gap:6px;padding:2px 3px;font-size:7px;line-height:1.35;display:flex}.extraction-authority-note svg{color:var(--accent);flex:none}.shapefile-import-progress,.shapefile-import-summary{border:1px solid color-mix(in srgb, var(--accent), transparent 68%);background:color-mix(in srgb, var(--accent), transparent 93%);color:var(--text-soft);border-radius:4px;gap:7px;padding:8px;font-size:8px;display:grid}.shapefile-import-progress>div,.shapefile-import-summary header,.shapefile-import-layer-summary li{justify-content:space-between;align-items:center;gap:8px;display:flex}.shapefile-import-progress>div>span,.shapefile-import-summary header span{color:var(--text-muted)}.draft-distance-control{border:1px solid var(--border-subtle);background:color-mix(in srgb, var(--surface-2) 84%, transparent);border-radius:4px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 8px;display:grid}.draft-distance-control>span{min-width:0;display:grid}.draft-distance-control strong{font-size:9px}.draft-distance-control small{color:var(--text-muted);font-size:8px}.draft-distance-control select{border:1px solid var(--border-strong);background:var(--surface-3);min-width:112px;color:var(--text-primary);font:inherit;border-radius:3px;padding:4px 5px;font-size:9px}.shapefile-import-progress>div>span{gap:2px;display:grid}.shapefile-import-progress progress{width:100%;accent-color:var(--accent)}.shapefile-import-summary header>div{gap:2px;min-width:0;display:grid}.shapefile-import-summary header span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.shapefile-import-summary dl{grid-template-columns:1fr 1fr;gap:4px;margin:0;display:grid}.shapefile-import-summary dl>div,.shapefile-import-audit{background:color-mix(in srgb, var(--surface-0), transparent 12%);border-radius:3px;gap:2px;padding:6px;display:grid}.shapefile-import-summary dt{color:var(--text-muted)}.shapefile-import-summary dd{margin:0;font-weight:700}.shapefile-import-layer-summary{gap:3px;margin:0;padding:0;list-style:none;display:grid}.shapefile-import-layer-summary li{border-bottom:1px solid var(--border-subtle);padding-block:3px}.shapefile-import-layer-summary li:last-child{border-bottom:0}.shapefile-import-audit{line-height:1.45}.extraction-layer-list{gap:8px;display:grid}.extraction-layer-list article{background:color-mix(in srgb, var(--surface-1) 96%, var(--surface-2));border:1px solid color-mix(in srgb, var(--line), transparent 8%);min-width:0;box-shadow:0 1px 1px color-mix(in srgb, var(--bg), transparent 88%);border-radius:6px;transition:border-color .12s,background .12s,box-shadow .12s;position:relative;overflow:visible}.extraction-layer-list article:hover{border-color:var(--line-strong);background:var(--surface-1);box-shadow:0 3px 10px color-mix(in srgb, var(--bg), transparent 88%)}.extraction-layer-group{gap:3px;display:grid}.extraction-layer-group>header{min-height:29px;color:var(--text-soft);background:color-mix(in srgb, var(--surface-2), transparent 32%);border:1px solid color-mix(in srgb, var(--line), transparent 28%);text-transform:uppercase;letter-spacing:.055em;border-radius:5px;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;margin-top:1px;padding:0 5px 0 1px;font-size:8px;display:grid}.extraction-layer-group .group-toggle{color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;justify-content:center;align-items:center;padding:4px;display:inline-flex}.extraction-layer-group>header input{min-width:0;color:var(--text-soft);font:inherit;text-transform:uppercase;letter-spacing:.055em;background:0 0;border:0;padding:5px 2px;font-weight:700}.extraction-layer-group>header input:focus{color:var(--text);outline:0}.extraction-layer-group>header strong{font-weight:700}.extraction-layer-group>header span,.extraction-layer-count{font-family:IBM Plex Mono,monospace}.extraction-layer-count{min-width:20px;color:var(--text-muted);background:var(--surface-1);border:1px solid var(--line);text-align:center;letter-spacing:0;border-radius:999px;padding:2px 5px}.extraction-layer-row{align-items:center;min-width:0;min-height:42px;padding:3px 4px 3px 3px;display:flex}.extraction-layer-actions{flex:none;align-items:center;gap:0;display:flex}.extraction-layer-actions .icon-button{border-radius:4px;width:25px;height:27px}.extraction-layer-menu{position:relative}.extraction-layer-menu>.icon-button[aria-expanded=true]{color:var(--text);background:var(--surface-3);border-color:var(--line)}.extraction-layer-menu>div{z-index:20;background:var(--surface-1);border:1px solid var(--line-strong);width:142px;box-shadow:0 10px 26px color-mix(in srgb, var(--bg), transparent 64%);border-radius:6px;gap:2px;padding:4px;display:grid;position:absolute;top:calc(100% + 4px);right:0}.extraction-layer-menu>div button{min-height:28px;color:var(--text-soft);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-radius:4px;align-items:center;gap:7px;padding:0 8px;font-size:8px;display:flex}.extraction-layer-menu>div button:hover,.extraction-layer-menu>div button:focus-visible{color:var(--text);background:var(--surface-2);outline:0}.extraction-layer-menu>div button:disabled{cursor:not-allowed;opacity:.42}.extraction-layer-menu>div button.danger{color:var(--danger)}.extraction-layer-actions .icon-button.active,.extraction-layer-actions .icon-button[aria-pressed=true]:not([aria-label^=Hide]){color:var(--success);background:color-mix(in srgb, var(--success), transparent 90%)}.extraction-layer-editor{background:color-mix(in srgb, var(--surface-2), transparent 42%);border-top:1px solid color-mix(in srgb, var(--line), transparent 18%);grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:7px;min-width:0;padding:8px;display:grid}.extraction-layer-editor input[type=color]{background:var(--surface-2);border:1px solid var(--line);border-radius:3px;width:24px;height:24px;padding:2px}.layer-color-control{place-items:center;display:grid}.layer-geometry-identity{min-width:0;color:var(--text-muted);grid-column:2/-1;align-items:center;gap:5px;font-size:7px;display:flex}.layer-geometry-identity svg{color:var(--accent);flex:none}.layer-applied-profile{min-width:0;color:var(--text-soft);background:color-mix(in srgb, var(--accent) 5%, var(--surface-2));border:1px solid color-mix(in srgb, var(--accent) 20%, var(--line));border-radius:4px;grid-column:1/-1;gap:4px;padding:7px 8px;font-size:7px;display:grid}.layer-applied-profile dl{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:0;display:grid}.layer-applied-profile dl>div{gap:1px;min-width:0;display:grid}.layer-applied-profile dt{color:var(--text-muted);text-transform:uppercase;letter-spacing:.045em}.layer-applied-profile dd{min-width:0;color:var(--text-soft);text-overflow:ellipsis;white-space:nowrap;margin:0;font-weight:700;overflow:hidden}.layer-applied-profile p,.layer-applied-profile small{color:var(--text-muted);margin:0;line-height:1.35}.layer-applied-profile small{font-family:IBM Plex Mono,monospace}.layer-editability{text-transform:uppercase;letter-spacing:.055em;grid-column:1/-1;padding-top:1px}.extraction-layer-editor>span{color:var(--text-muted);font-size:7px}.drawing-target-status{color:var(--text-soft);background:color-mix(in srgb, var(--accent) 10%, var(--surface-1));border:1px solid color-mix(in srgb, var(--accent) 42%, var(--line));border-radius:5px;grid-column:1/-1;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:2px 7px;padding:7px 8px;font-size:7px;display:grid}.drawing-target-status strong{color:var(--accent);text-transform:uppercase;letter-spacing:.06em}.drawing-target-status small{color:var(--text-muted);grid-column:1/-1;font-family:IBM Plex Mono,monospace}.layer-marker-size,.layer-line-width,.layer-point-symbol{color:var(--text-muted);grid-column:1/-1;grid-template-columns:auto minmax(0,1fr) 30px;align-items:center;gap:6px;font-size:7px;display:grid}.layer-point-symbol select{min-width:0;height:26px;color:var(--text-soft);background:var(--surface-2);border:1px solid var(--line);font-size:inherit;border-radius:3px;padding:0 6px}.layer-marker-size input,.layer-line-width input{min-width:0}.layer-marker-size output,.layer-line-width output{color:var(--text-soft);font-family:IBM Plex Mono,monospace}.extraction-layer-list article.active{border-color:color-mix(in srgb, var(--accent), transparent 25%);background:var(--surface-1);box-shadow:inset 3px 0 var(--accent), 0 3px 12px color-mix(in srgb, var(--accent), transparent 91%)}.extraction-layer-list article.drawing-target{border-color:color-mix(in srgb, var(--success), transparent 28%);box-shadow:inset 3px 0 var(--success), 0 3px 12px color-mix(in srgb, var(--success), transparent 92%)}.extraction-layer-main{min-width:0;color:var(--text-soft);cursor:pointer;text-align:left;background:0 0;border:0;flex:auto;align-self:stretch;align-items:center;gap:9px;padding:5px 6px;display:flex}.extraction-layer-main i{width:4px;height:30px;box-shadow:0 0 0 1px color-mix(in srgb, currentColor, transparent 78%);border-radius:999px;flex:none}.extraction-layer-main span{flex:auto;gap:2px;min-width:0;display:grid}.extraction-layer-main.is-renaming{cursor:default}.extraction-layer-main input{width:100%;min-width:15ch;height:25px;color:var(--text);background:var(--surface-1);border:1px solid var(--accent);outline:2px solid color-mix(in srgb, var(--accent), transparent 80%);font:inherit;border-radius:4px;padding:0 6px;font-size:9px;font-weight:700}.extraction-layer-main strong,.extraction-layer-main small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.extraction-layer-main strong{min-width:15ch;color:var(--text);font-size:9px;font-weight:700}.extraction-layer-main small{color:var(--text-muted);font-family:IBM Plex Mono,monospace;font-size:7px}.icon-button.danger,.danger-button{color:var(--danger)}.extraction-empty,.extraction-inspector-empty{color:var(--text-muted);text-align:center;justify-items:center;gap:6px;padding:22px 12px;font-size:8px;display:grid}.extraction-empty strong,.extraction-inspector-empty strong{color:var(--text-soft);font-size:10px}.extraction-inspector-empty p{max-width:210px;margin:0;line-height:1.5}.extraction-warning,.extraction-error{border-radius:3px;margin:0;padding:7px;font-size:8px;line-height:1.4}.extraction-warning{color:var(--warning);background:color-mix(in srgb, var(--warning), transparent 90%)}.extraction-error{color:var(--danger);background:color-mix(in srgb, var(--danger), transparent 90%)}.viewer-failure-notice>div,.extraction-error>div,.panorama-error>div{gap:5px;min-width:0;display:grid}.viewer-failure-notice details,.extraction-error details,.panorama-error details{color:var(--text-muted)}.viewer-failure-notice summary,.extraction-error summary,.panorama-error summary{cursor:pointer;font-size:8px}.viewer-failure-notice code,.extraction-error code,.panorama-error code{max-height:88px;color:var(--text-soft);background:color-mix(in srgb, var(--surface-0), transparent 12%);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:3px;margin-top:4px;padding:5px;font-size:7px;display:block;overflow:auto}.extraction-properties .control-field input,.extraction-properties .control-field textarea{width:100%;min-width:0;color:var(--text);background:var(--surface-0);border:1px solid var(--line);border-radius:3px;padding:6px}.extraction-properties .control-field textarea{resize:vertical;font:inherit}.extraction-coordinate-list{gap:6px;display:grid}.extraction-coordinate-list fieldset{border:1px solid var(--line);border-radius:3px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;min-width:0;margin:0;padding:5px;display:grid}.coordinate-summary{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;grid-column:1/-1;font-size:7px;overflow:hidden}.extraction-coordinate-list legend{color:var(--text-muted);padding:0 3px;font-size:7px}.extraction-coordinate-list label{min-width:0;color:var(--text-muted);gap:2px;font-size:7px;display:grid}.extraction-coordinate-list input{width:100%;min-width:0;color:var(--text-soft);background:var(--surface-0);border:1px solid var(--line);border-radius:3px;padding:4px;font:7px IBM Plex Mono,monospace}.coordinate-actions{grid-column:1/-1;gap:.35rem;display:flex}.coordinate-actions button{border:1px solid var(--border);background:var(--surface-2);min-height:1.8rem;color:var(--text-secondary);border-radius:4px;flex:1;font-size:.72rem}.property-help,.extraction-lock-note{color:var(--text-muted);margin:0 0 8px;font-size:8px;line-height:1.45}.extraction-lock-note{align-items:center;gap:5px;margin:10px 12px;display:flex}.danger-button{margin:10px 12px}.draft-feature-table-wrap{flex-direction:column;min-width:720px;height:100%;scroll-padding-top:31px;display:flex;overflow:hidden}.draft-feature-table-viewport{flex:1;min-height:0;overflow:auto}.draft-feature-table-wrap.paginated{scroll-padding-top:61px}.draft-feature-table-pagination{z-index:2;border-bottom:1px solid var(--line);background:var(--surface-0);min-height:30px;color:var(--text-muted);justify-content:flex-end;align-items:center;gap:6px;padding:4px 9px;font-size:8px;display:flex;position:sticky;top:0}.draft-feature-table-pagination span{margin-right:auto}.draft-feature-table-pagination button{min-height:22px}.draft-feature-table{border-collapse:collapse;width:100%;font-size:8px}.draft-feature-table th,.draft-feature-table td{text-align:left;border-bottom:1px solid var(--line);padding:6px 9px}.draft-feature-table th{z-index:1;color:var(--text-muted);background:var(--surface-0);text-transform:uppercase;font-weight:700;position:sticky;top:0}.draft-feature-table-wrap.paginated .draft-feature-table th{top:0}.attribute-table-toolbar,.attribute-field-form{min-height:31px;color:var(--text-muted);background:var(--surface-1);border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:4px 8px;font-size:8px;display:flex}.attribute-table-toolbar label,.attribute-field-form label{align-items:center;gap:6px;display:flex}.attribute-table-toolbar select,.attribute-field-form select,.attribute-field-form input{min-height:23px;color:var(--text-soft);background:var(--surface-0);border:1px solid var(--line);border-radius:3px;font-size:8px}.attribute-table-toolbar button,.attribute-field-form button{align-items:center;gap:4px;min-height:23px;display:inline-flex}.attribute-toolbar-spacer{flex:1}.attribute-lock-state{color:var(--success);background:color-mix(in srgb, var(--success), transparent 90%);border-radius:3px;padding:3px 6px}.attribute-lock-state.locked{color:var(--warning);background:color-mix(in srgb, var(--warning), transparent 90%)}.attribute-field-form{background:var(--surface-0);justify-content:flex-end}.attribute-field-form input{width:180px}.attribute-table th{white-space:nowrap;min-width:120px}.attribute-table th>span,.attribute-table th>small{display:block}.attribute-table th>small{color:var(--text-faint);text-transform:none;font-size:6px}.attribute-table th>button{width:18px;height:18px;color:var(--text-muted);background:var(--surface-2);border:1px solid var(--line);border-radius:3px;place-items:center;display:none;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.attribute-table th:hover>button,.attribute-table th:focus-within>button{display:grid}.attribute-cell{width:100%;min-width:95px;height:24px;color:var(--text-soft);font:inherit;background:0 0;border:1px solid #0000;border-radius:2px;padding:2px 5px}.attribute-cell:hover:not(:disabled),.attribute-cell:focus{background:var(--surface-0);border-color:var(--line-strong)}.attribute-cell.invalid{border-color:var(--danger);background:color-mix(in srgb, var(--danger), transparent 92%)}.draft-feature-table tbody tr{cursor:pointer;scroll-margin-top:31px}.draft-feature-table tbody tr:not(.draft-feature-table-spacer){height:32px}.draft-feature-table-spacer,.draft-feature-table-spacer td{cursor:default;border:0;padding:0}.draft-feature-table-wrap.paginated .draft-feature-table tbody tr{scroll-margin-top:61px}.draft-feature-table tbody tr:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.draft-feature-table tbody tr:hover,.draft-feature-table tbody tr.selected{background:var(--accent-soft)}.draft-feature-table td:last-child{gap:4px;display:flex}.draft-feature-table td button{width:24px;height:22px;color:var(--text-muted);background:var(--surface-2);border:1px solid var(--line);border-radius:3px;place-items:center;display:inline-grid}.feature-table{grid-template-rows:34px minmax(0,1fr) 25px;min-width:720px;height:100%;display:grid}.feature-table-toolbar{border-bottom:1px solid var(--line);align-items:center;gap:6px;padding:4px 7px;display:flex}.feature-table-toolbar label{height:25px;color:var(--text-muted);background:var(--surface-2);border:1px solid var(--line);border-radius:3px;align-items:center;gap:5px;padding:0 7px;display:flex}.feature-table-toolbar input{width:150px;color:var(--text);background:0 0;border:0;outline:0;font-size:9px}.feature-table-toolbar select,.feature-table-toolbar button{height:25px;color:var(--text-soft);background:var(--surface-2);border:1px solid var(--line);border-radius:3px;align-items:center;gap:4px;padding:0 7px;font-size:8px;display:flex}.feature-table-toolbar button{cursor:pointer}.feature-table-toolbar button:disabled{opacity:.45;cursor:default}.feature-total{color:var(--text-muted);margin-left:auto;font:8px IBM Plex Mono,monospace}.feature-table-grid{grid-template-rows:23px minmax(0,1fr);min-height:0;display:grid}.feature-table-header,.feature-table-window>button{grid-template-columns:minmax(185px,1.35fr) minmax(130px,1fr) 90px minmax(150px,1fr) 24px;align-items:center;gap:8px;padding:0 9px;display:grid}.feature-table-header{color:var(--text-muted);background:var(--surface-0);border-bottom:1px solid var(--line);text-transform:uppercase;font-size:8px;font-weight:700}.feature-table-viewport{min-height:0;overflow:auto}.feature-table-window{min-width:100%;position:relative}.feature-table-window>button{width:100%;min-height:25px;color:var(--text-soft);border:0;border-bottom:1px solid var(--line);cursor:pointer;text-align:left;background:0 0;font-size:8px;position:absolute;left:0}.feature-table-window>button:hover{background:var(--surface-2)}.feature-table-window>button.selected{color:var(--text);background:var(--accent-soft);box-shadow:inset 2px 0 var(--accent)}.feature-table-window code,.feature-table-window span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.feature-table-window code{color:var(--accent);font-size:8px}.feature-table-empty{height:100%;color:var(--text-muted);place-items:center;font-size:9px;display:grid}.feature-table-empty.error{color:var(--danger)}.feature-table-footer{color:var(--text-muted);border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:5px;padding:0 7px;font-size:8px;display:flex}.feature-table-footer button{width:21px;height:19px;color:var(--text-soft);background:var(--surface-2);border:1px solid var(--line);border-radius:3px;place-items:center;padding:0;display:grid}.feature-table-footer button:disabled{opacity:.4}.message-grid{display:grid}.message-row{border-bottom:1px solid var(--line);min-height:36px;color:var(--text-soft);grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:7px;padding:0 12px;font-size:9px;display:grid}.message-row.success svg{color:var(--success)}.message-row.info svg{color:var(--accent)}.message-row.neutral svg{color:var(--text-muted)}.message-row time{color:var(--text-muted);font:8px IBM Plex Mono,monospace}.empty-bottom{height:100%;color:var(--text-muted);justify-content:center;align-items:center;gap:8px;font-size:10px;display:flex}.diagnostics-view{grid-template-columns:180px 1fr;height:100%;display:grid}.diagnostics-actions{border-right:1px solid var(--line);align-content:center;gap:8px;padding:10px;display:grid}.diagnostics-actions span{color:var(--text-muted);font-size:8px}.diagnostics-actions button{height:27px;color:var(--text-soft);background:var(--surface-2);border:1px solid var(--line);cursor:pointer;border-radius:4px;font-size:8px}.diagnostics-list{min-width:0;overflow:auto}.diagnostics-list>div{border-bottom:1px solid var(--line);min-width:0;color:var(--text-muted);grid-template-columns:130px minmax(0,1fr) auto;gap:9px;padding:6px 10px;font-size:8px;display:grid}.diagnostics-list code{color:var(--accent);font:8px IBM Plex Mono,monospace}.diagnostics-list time{font:8px IBM Plex Mono,monospace}.mobile-only{display:none}.fatal-state,.bootstrap-failure{color:#e9f0f7;background:#07101d;place-items:center;width:100%;min-height:100%;padding:24px;display:grid}.fatal-card,.bootstrap-failure section{background:#0d1929;border:1px solid #2d4563;border-radius:8px;justify-items:start;gap:11px;width:min(520px,100%);padding:28px;display:grid}.fatal-card h1,.bootstrap-failure h1{margin:0;font-size:22px}.fatal-card p,.bootstrap-failure p{color:#9eb0c6;margin:0;line-height:1.6}.fatal-card code{color:#70b2ff}.density-comfortable .explorer-nav button{height:40px}.density-comfortable .message-row{min-height:42px}.app select{min-height:var(--control-height);color:var(--text-soft);background-color:var(--surface-2);border:1px solid var(--line-strong);border-radius:var(--control-radius);appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23718398' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;background-size:12px;padding:0 28px 0 9px;font-size:9px;transition:border-color .12s,background-color .12s,box-shadow .12s}.app select:hover:not(:disabled){background-color:var(--surface-3);border-color:color-mix(in srgb, var(--accent), var(--line-strong) 55%)}.app select:focus-visible{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);outline:0}.app select:disabled{cursor:not-allowed;opacity:.52}.app select option{color:var(--text);background:var(--surface-1)}.app .project-switcher{height:34px;padding-left:11px;font-size:12px;font-weight:550}.app .toolbar-select select{height:27px;min-height:27px;font-size:8px}.app .review-filter-grid select{min-height:auto;box-shadow:none;background-color:#0000;background-image:none;border:0;border-radius:0;padding:0}@media (max-width:1120px){.system-pill span,.share-button,.profile-label,.global-search kbd{display:none}.system-pill{justify-content:center;width:29px;padding:0}.global-search{width:min(250px,22vw)}.workspace{grid-template-columns:220px minmax(380px,1fr) 244px}}.app[data-testid=application-shell] .viewport-hud{z-index:7;color:#dbe8f5;pointer-events:none;justify-content:space-between;align-items:stretch;gap:8px;min-width:0;height:32px;font:9px IBM Plex Mono,monospace;display:flex;position:absolute;bottom:10px;left:12px;right:12px}.app[data-testid=application-shell] .viewport-hud-primary,.app[data-testid=application-shell] .viewport-hud-secondary{align-items:stretch;gap:4px;min-width:0;display:flex}.app[data-testid=application-shell] .viewport-hud-secondary{flex:none}.app[data-testid=application-shell] .viewport-hud-chip,.app[data-testid=application-shell] .viewport-hud-health{color:#dbe8f5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#07111ed6;border:1px solid #5f89b46b;border-radius:5px;align-items:center;gap:6px;min-width:0;padding:0 9px;display:inline-flex;box-shadow:0 5px 18px #0003}.app[data-testid=application-shell] .viewport-hud-chip{pointer-events:none}.app[data-testid=application-shell] .viewport-hud-coordinate{max-width:min(430px,42vw)}.app[data-testid=application-shell] .viewport-hud-coordinate strong{color:#7f96b1;letter-spacing:.06em;text-transform:uppercase;font-size:7px}.app[data-testid=application-shell] .viewport-hud-coordinate span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.app[data-testid=application-shell] .viewport-hud-crs,.app[data-testid=application-shell] .viewport-hud-tool,.app[data-testid=application-shell] .viewport-hud-points,.app[data-testid=application-shell] .viewport-hud-drafts{color:#9fb2c8}.app[data-testid=application-shell] .viewport-hud-save.is-saved,.app[data-testid=application-shell] .viewport-hud-save.is-clean{color:#87e1bc}.app[data-testid=application-shell] .viewport-hud-save.is-offline,.app[data-testid=application-shell] .viewport-hud-save.is-pending{color:#f2c879}.app[data-testid=application-shell] .viewport-hud-save.is-failed,.app[data-testid=application-shell] .viewport-hud-save.is-conflict{color:#ff9a9a}.app[data-testid=application-shell] .viewport-hud-diagnostics{pointer-events:auto;display:flex;position:relative}.app[data-testid=application-shell] .viewport-hud-health{cursor:pointer;min-height:32px;font:inherit}.app[data-testid=application-shell] .viewport-hud-diagnostics-label{color:#dbe8f5;border-left:1px solid #9fb2c861;padding-left:6px}.app[data-testid=application-shell] .viewport-hud-readiness{color:#9fb2c8}.app[data-testid=application-shell] .viewport-hud-health:hover,.app[data-testid=application-shell] .viewport-hud-health[aria-expanded=true]{background:#16314df0;border-color:#4997ebcc}.app[data-testid=application-shell] .viewport-hud-health.is-ready{color:#72d8ad}.app[data-testid=application-shell] .viewport-hud-health.is-loading{color:#86bfff}.app[data-testid=application-shell] .viewport-hud-health.is-warning{color:#f2c879}.app[data-testid=application-shell] .viewport-hud-health.is-error{color:#ff8e8e}.app[data-testid=application-shell] .viewport-diagnostics-panel{width:min(360px,100vw - 32px);max-height:min(470px,100vh - 160px);color:var(--text);background:color-mix(in srgb, var(--surface-1) 96%, transparent);border:1px solid var(--line-strong);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:7px;position:absolute;bottom:calc(100% + 8px);right:0;overflow:auto;box-shadow:0 18px 48px #00000057}.app[data-testid=application-shell] .viewport-diagnostics-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:50px;padding:8px 10px 8px 12px;display:flex}.app[data-testid=application-shell] .viewport-diagnostics-heading>div,.app[data-testid=application-shell] .viewport-diagnostics-source>div{gap:2px;display:grid}.app[data-testid=application-shell] .viewport-diagnostics-heading strong{font-size:12px}.app[data-testid=application-shell] .viewport-diagnostics-source{color:var(--accent);border-bottom:1px solid var(--line);align-items:center;gap:9px;padding:10px 12px;display:flex}.app[data-testid=application-shell] .viewport-diagnostics-source strong{color:var(--text);font-size:10px}.app[data-testid=application-shell] .viewport-diagnostics-source span{color:var(--text-muted);font-size:8px}.app[data-testid=application-shell] .viewport-diagnostics-grid{background:var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0;display:grid}.app[data-testid=application-shell] .viewport-diagnostics-grid>div{background:var(--surface-1);gap:4px;min-width:0;padding:10px 12px;display:grid}.app[data-testid=application-shell] .viewport-diagnostics-grid dt{color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;font-size:7px}.app[data-testid=application-shell] .viewport-diagnostics-grid dd{min-width:0;color:var(--text-soft);white-space:nowrap;text-overflow:ellipsis;margin:0;font:10px IBM Plex Mono,monospace;overflow:hidden}.app[data-testid=application-shell] .navigation-cube{width:88px;height:88px;bottom:50px;left:12px}.app[data-testid=application-shell] .extraction-pick-message{bottom:50px}@media (max-width:1180px){.app[data-testid=application-shell] .viewport-hud-health span,.app[data-testid=application-shell] .viewport-hud-drafts{display:none}}@media (max-width:840px){.app[data-testid=application-shell] .viewport-hud-crs,.app[data-testid=application-shell] .viewport-hud-points{display:none}.app[data-testid=application-shell] .viewport-hud-coordinate{max-width:calc(100vw - 175px)}.app[data-testid=application-shell] .viewport-hud-save{padding-inline:7px}}@media (max-width:900px){.brand{width:auto}.brand-copy,.global-search{display:none}.project-switcher-wrap{width:min(330px,42vw)}.workspace,.workspace.right-collapsed{grid-template-columns:210px minmax(0,1fr) 0}.workspace.left-collapsed,.workspace.left-collapsed.right-collapsed{grid-template-columns:0 minmax(0,1fr) 0}.right-panel{z-index:25;top:calc(var(--topbar-height) + var(--modebar-height));visibility:visible;width:min(320px,82vw);position:fixed;bottom:0;right:0;box-shadow:-20px 0 50px #0000004d}.right-collapsed .right-panel{visibility:hidden;transform:translate(100%)}.mode-tabs{min-width:0;overflow-x:auto}.mode-tabs button{min-width:64px}.mode-context{display:none}.mobile-only{display:grid}.point-controls{width:204px}.viewer-metrics{grid-template-columns:repeat(2,minmax(90px,1fr));right:224px}.renderer-badge{right:224px}}@media (max-width:640px){:root{--topbar-height:54px}.topbar{gap:8px;padding:0 8px}.project-switcher-wrap{flex:1;width:auto;min-width:0}.topbar-actions>.icon-button,.system-pill{display:none}.workspace,.workspace.right-collapsed,.workspace.left-collapsed,.workspace.left-collapsed.right-collapsed{grid-template-columns:minmax(0,1fr);grid-template-areas:"viewer""bottom"}.left-panel{z-index:25;top:calc(var(--topbar-height) + var(--modebar-height));visibility:visible;width:min(270px,84vw);position:fixed;bottom:0;left:0;box-shadow:20px 0 50px #0000004d}.left-collapsed .left-panel{visibility:hidden;transform:translate(-100%)}.modebar{padding-right:0}.mode-tabs button{min-width:62px;padding:0 8px;font-size:9px}.scene-empty-state{padding:20px}.scene-facts{gap:8px;display:grid}.viewer-statusbar span:nth-child(2),.viewer-statusbar span:nth-last-child(2){display:none}.bottom-tabs>button:not(.panel-toggle){flex:1;min-width:auto}.diagnostics-view{grid-template-columns:1fr}.diagnostics-actions{border-right:0;border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:center}.point-controls,.renderer-badge{display:none}.viewer-metrics{bottom:9px;left:9px;right:9px}.viewer-coordinate-readout span:last-child{display:none}}.qc-drive-controls{background:color-mix(in srgb, var(--accent), transparent 94%);border:1px solid color-mix(in srgb, var(--accent), transparent 68%);border-radius:5px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px;padding:8px;display:grid}.qc-drive-controls>div{gap:2px;display:grid}.qc-drive-controls>button,.qc-drive-controls select{min-height:var(--control-height);color:var(--text);background-color:var(--surface-2);border:1px solid var(--line-strong);border-radius:var(--control-radius);font-size:9px}.qc-drive-controls>button{cursor:pointer;align-items:center;gap:4px;padding:4px 8px;display:inline-flex}.qc-drive-controls>button.active{color:#fff;background:var(--accent);border-color:var(--accent)}.qc-drive-controls label{color:var(--text-muted);gap:3px;font-size:8px;display:grid}.qc-drive-controls .qc-drive-loop{align-items:center;gap:5px;display:flex}.qc-drive-controls p{color:var(--text-muted);grid-column:1/-1;margin:0;font-size:8px}.measurement-panel,.saved-views-panel{border-top:1px solid var(--line);flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.saved-views-panel{display:block;overflow-y:auto}.saved-views-panel .saved-view-list{overflow:visible}.measurement-composer,.saved-view-composer{background:var(--surface-2);border-bottom:1px solid var(--line);gap:8px;padding:10px;display:grid}.measurement-composer label,.saved-view-composer label,.saved-view-link{color:var(--text-muted);gap:4px;font-size:9px;display:grid}.measurement-composer input,.measurement-composer select,.saved-view-composer input,.saved-view-composer textarea,.saved-view-link input{width:100%;color:var(--text);background:var(--surface-1);border:1px solid var(--line-strong);border-radius:4px;padding:7px;font-size:10px}.measurement-coordinates{gap:5px;max-height:155px;display:grid;overflow:auto}.measurement-coordinates>div{grid-template-columns:20px repeat(3,minmax(0,1fr)) 22px;align-items:center;gap:4px;display:grid}.measurement-coordinates input{min-width:0;padding:5px}.measurement-coordinates button,.measurement-composer-actions button,.saved-view-actions button,.danger-link,.destructive-confirm button{color:var(--text-soft);background:var(--surface-1);border:1px solid var(--line);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;gap:4px;padding:5px 7px;font-size:9px;display:inline-flex}.measurement-composer-actions{flex-wrap:wrap;gap:5px;display:flex}.measurement-preview{color:var(--text-muted);background:color-mix(in srgb, var(--accent), transparent 94%);border:1px solid color-mix(in srgb, var(--accent), transparent 70%);border-radius:4px;grid-template-columns:auto 1fr;align-items:center;gap:2px 7px;padding:8px;font-size:9px;display:grid}.measurement-preview svg{color:var(--accent);grid-row:span 2}.measurement-preview strong{color:var(--text);font-size:11px}.measurement-list,.saved-view-list{flex:auto;min-height:0;overflow:auto}.measurement-list>button,.saved-view-select{width:100%;color:var(--text-soft);text-align:left;border:0;border-bottom:1px solid var(--line);cursor:pointer;background:0 0;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px;display:grid}.measurement-list>button.selected,.saved-view-list article.selected{background:var(--accent-soft);box-shadow:inset 3px 0 var(--accent)}.measurement-list span,.saved-view-select span{gap:3px;min-width:0;display:grid}.measurement-list strong,.saved-view-select strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.measurement-list small,.saved-view-select small,.measurement-list output{color:var(--text-muted);font-size:8px}.measurement-detail{gap:12px;padding:12px;display:grid;overflow:auto}.measurement-detail h3{margin:0;font-size:13px}.measurement-result-card{background:color-mix(in srgb, var(--accent), transparent 94%);border:1px solid color-mix(in srgb, var(--accent), transparent 70%);border-radius:5px;gap:5px;padding:12px;display:grid}.measurement-result-card span,.measurement-result-card small{color:var(--text-muted);font-size:9px}.measurement-result-card strong{color:var(--text);font:600 18px/1.2 var(--font-mono)}.measurement-position-list{gap:5px;display:grid}.measurement-position-list code{color:var(--text-muted);background:var(--surface-2);text-overflow:ellipsis;border-radius:3px;padding:6px;font-size:8px;overflow:hidden}.danger-link{color:var(--danger);justify-self:start}.destructive-confirm{color:var(--warning);background:color-mix(in srgb, var(--warning), transparent 94%);border:1px solid color-mix(in srgb, var(--warning), transparent 70%);border-radius:4px;flex-wrap:wrap;align-items:center;gap:6px;padding:8px;font-size:9px;display:flex}.destructive-confirm .danger-button{color:#fff;background:var(--danger);border-color:var(--danger)}.saved-view-list article{border-bottom:1px solid var(--line)}.saved-view-actions{flex-wrap:wrap;gap:4px;padding:0 9px 9px;display:flex}.saved-view-summary,.saved-view-link{color:var(--text-muted);background:var(--surface-2);border:1px solid var(--line);border-radius:4px;flex:none;margin:8px;padding:8px;font-size:8px}.saved-view-summary{align-items:center;gap:6px;display:flex}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.primary-button,.secondary-button,.danger-button{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:7px;min-width:0;min-height:34px;margin:0;padding:0 13px;font-size:11px;font-weight:700;line-height:1;text-decoration:none;transition:color .12s,background .12s,border-color .12s,box-shadow .12s,transform .12s;display:inline-flex}.primary-button{color:#fff;background:#176ee8;border-color:#2d7ce9;box-shadow:0 4px 12px #176ee838}.primary-button:hover:not(:disabled){background:#0f61d5;border-color:#3989ed}.secondary-button{color:var(--text-soft);background:var(--surface-1);border-color:var(--line)}.secondary-button:hover:not(:disabled){color:var(--text);background:var(--surface-3);border-color:var(--line-strong)}.danger-button{color:var(--danger);background:color-mix(in srgb, var(--danger), transparent 93%);border-color:color-mix(in srgb, var(--danger), transparent 65%)}.danger-button:hover:not(:disabled){color:color-mix(in srgb, var(--danger), white 16%);background:color-mix(in srgb, var(--danger), transparent 86%);border-color:color-mix(in srgb, var(--danger), transparent 40%)}.primary-button:disabled,.secondary-button:disabled,.danger-button:disabled{opacity:.48;box-shadow:none}.text-button{color:var(--accent);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;margin:0;padding:0;font-weight:700;text-decoration:underline;display:inline}.viewer-platform-actions{background:var(--surface-1);border:1px solid var(--line);border-radius:7px;align-items:center;padding:2px;display:inline-flex}.viewer-platform-actions .secondary-button{background:0 0;border:0;border-radius:4px;min-height:27px;padding:0 9px}.viewer-platform-actions .secondary-button:hover:not(:disabled){background:var(--surface-3)}.platform-shell .admin-panel input:not([type=checkbox]):not([type=radio]),.platform-shell .admin-panel select,.platform-shell .admin-dialog input:not([type=checkbox]):not([type=radio]),.platform-shell .admin-dialog select{width:100%;min-height:36px;color:var(--text);background:var(--surface-0);border:1px solid var(--line);border-radius:6px;padding:0 10px}.platform-shell .admin-panel input:not([type=checkbox]):not([type=radio]):hover,.platform-shell .admin-panel select:hover{border-color:var(--line-strong)}.platform-shell .admin-panel label{color:var(--text-soft);font-size:11px;font-weight:700}.platform-shell .admin-panel h2{letter-spacing:-.015em;margin:0 0 14px;font-size:17px}.platform-shell .admin-panel p{color:var(--text-soft);font-size:12px;line-height:1.55}.platform-shell .admin-card-grid{grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;margin-bottom:10px}.platform-shell .admin-card-grid article{min-height:94px;box-shadow:none;align-content:center;padding:15px 17px}.platform-shell .admin-card-grid strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:23px;line-height:1.1;overflow:hidden}.platform-shell .admin-card-grid span{color:var(--text-soft);font-size:11px;line-height:1.35}.platform-shell .platform-access-toolbar{box-shadow:none;grid-template-columns:minmax(260px,1fr) auto;align-items:end;gap:14px;margin-bottom:10px;padding:15px 17px;display:grid}.platform-operations-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.platform-operations-grid .admin-panel{min-width:0;box-shadow:none;padding:17px}.platform-audit-panel{grid-column:1/-1}.platform-load-state{min-height:132px;box-shadow:none;align-items:center;gap:16px;padding:22px;display:flex}.platform-load-state>svg{color:var(--accent);flex:none}.platform-load-state h2,.platform-load-state p{margin:0}.platform-load-state p{max-width:720px;margin-top:5px}.platform-empty-state{background:var(--surface-2);border:1px dashed var(--line);border-radius:7px;align-items:center;min-height:48px;margin:0;padding:10px 12px;display:flex}.platform-data-boundary,.platform-audit-summary{align-items:center;gap:7px;margin:12px 0 0;display:flex}.platform-data-boundary>svg,.platform-audit-summary>svg{color:var(--success);flex:none}.admin-row-actions{justify-content:flex-end;align-items:center;gap:7px;display:inline-flex}.modal-backdrop{z-index:120;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#020711ad;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.admin-dialog{width:min(500px,100%);color:var(--text);background:var(--surface-1);border:1px solid var(--line-strong);border-radius:10px;padding:22px;box-shadow:0 24px 70px #0000008c}.admin-dialog h2{margin:0 0 8px;font-size:20px}.admin-dialog p{color:var(--text-soft);margin:0;font-size:12px;line-height:1.6}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.density-compact.platform-shell .admin-card-grid article{min-height:78px;padding:12px 14px}.density-compact.platform-shell .admin-card-grid strong{font-size:20px}.density-compact.platform-shell .platform-operations-grid .admin-panel,.density-compact.platform-shell .platform-access-toolbar{padding:13px 14px}@media (max-width:1280px){.platform-shell .admin-card-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}}@media (max-width:900px){.viewer-platform-actions .secondary-button{font-size:0}.viewer-platform-actions .secondary-button svg{width:15px;height:15px}.platform-operations-grid{grid-template-columns:1fr}.platform-audit-panel{grid-column:auto}}@media (max-width:620px){.portal-page-header{align-items:stretch}.platform-shell .platform-access-toolbar{grid-template-columns:1fr;align-items:stretch}.platform-shell .admin-card-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}.portal-pagination{justify-content:stretch}.portal-pagination .secondary-button{flex:1}}.navigation-cube .view-cube-scene{pointer-events:auto;perspective:320px;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:relative}.navigation-cube .view-cube-scene[data-dragging=true]{cursor:grabbing}.view-cube-body{z-index:2;width:58px;height:58px;transform-style:preserve-3d;margin:-29px 0 0 -29px;transition:transform 90ms linear;position:absolute;top:50%;left:50%}.view-cube-compass-ring{z-index:1;transform-origin:50%;border:12px solid #444444e6;border-radius:50%;transition:transform 90ms linear;position:absolute;inset:18px;box-shadow:0 2px 5px #00000061}.view-cube-compass-letter{color:#fff;width:22px;height:22px;font:800 14px/1 var(--font-sans);text-shadow:0 1px 2px #000;place-items:center;display:grid;position:absolute}.view-cube-compass-letter b{transition:transform 90ms linear;display:block}.view-cube-compass-letter.direction-n{margin-left:-11px;top:-18px;left:50%}.view-cube-compass-letter.direction-e{margin-top:-11px;top:50%;right:-18px}.view-cube-compass-letter.direction-s{margin-left:-11px;bottom:-18px;left:50%}.view-cube-compass-letter.direction-w{margin-top:-11px;top:50%;left:-18px}.navigation-cube .view-cube-face{color:#111;cursor:pointer;width:52px;height:52px;min-height:0;font:800 8px var(--font-sans);letter-spacing:.06em;backface-visibility:hidden;background:#ddd;border:1px solid #444;border-radius:0;place-items:center;margin:-26px 0 0 -26px;padding:0;display:grid;position:absolute;top:50%;left:50%}.navigation-cube .view-cube-face[data-facing=true]{color:#000;background:#fff;border-color:#222}.navigation-cube .view-cube-face:hover,.navigation-cube .view-cube-face:focus-visible{color:#000;outline:2px solid var(--focus);outline-offset:-2px;background:#aaa}.account-lifecycle-page{min-height:100vh;color:var(--text-primary);background:radial-gradient(circle at 25% 15%, #2872d22e, transparent 34rem), var(--surface-app);place-items:center;padding:32px;display:grid}.account-lifecycle-card{background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:12px;gap:16px;width:min(100%,430px);padding:32px;display:grid;box-shadow:0 24px 60px #00000038}.account-lifecycle-card h1,.account-lifecycle-card p{margin:0}.account-lifecycle-card form,.account-lifecycle-card footer{gap:10px;display:grid}.account-lifecycle-card footer{border-top:1px solid var(--border-subtle);grid-template-columns:repeat(2,max-content);padding-top:8px}.account-lifecycle-brand{color:var(--accent);letter-spacing:.04em;align-items:center;gap:10px;font-weight:800;text-decoration:none;display:flex}.account-lifecycle-brand>span:last-child{gap:1px;display:grid}.account-lifecycle-brand strong{color:var(--text);letter-spacing:.01em;font-size:15px}.account-lifecycle-brand small{color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase;font-size:9px}.account-lifecycle-note{color:var(--text-muted);font-size:.82rem}.account-fixture-badge{color:#a9d2ff;letter-spacing:.04em;background:#1866b838;border:1px solid #529ded75;border-radius:999px;width:-moz-fit-content;width:fit-content;padding:5px 8px;font-size:.74rem;font-weight:700}.account-provider-link{font-weight:700}.organization-admin-shell{min-height:100vh;color:var(--text-primary);background:var(--surface-canvas);padding:24px}.organization-admin-header,.organization-admin-tabs,.admin-panel-toolbar{align-items:center;gap:16px;display:flex}.organization-admin-header{justify-content:space-between;max-width:1320px;margin:0 auto 20px}.organization-admin-header h1{margin:4px 0 0}.organization-admin-tabs{border-bottom:1px solid var(--border-subtle);max-width:1320px;margin:0 auto;overflow-x:auto}.organization-admin-tabs button{color:var(--text-secondary);text-transform:capitalize;background:0 0;border:0;border-bottom:3px solid #0000;padding:12px 14px}.organization-admin-tabs button[aria-current=page]{border-bottom-color:var(--accent-primary);color:var(--text-primary);font-weight:700}.organization-admin-content,.admin-feedback{max-width:1320px;margin:16px auto}.admin-feedback{border:1px solid var(--border-strong);background:var(--surface-raised);padding:12px 14px}.admin-card-grid{grid-template-columns:repeat(3,minmax(180px,1fr));gap:16px;display:grid}.admin-card-grid article,.admin-panel{border:1px solid var(--border-subtle);background:var(--surface-panel);border-radius:8px;padding:20px}.admin-card-grid article{gap:8px;display:grid}.admin-card-grid strong{font-size:28px}.admin-panel-toolbar{justify-content:space-between;margin-bottom:16px}.admin-panel-toolbar label{gap:5px;display:grid}.admin-panel table{border-collapse:collapse;width:100%}.admin-panel th,.admin-panel td{text-align:left;border-bottom:1px solid var(--border-subtle);padding:10px}.admin-panel select,.admin-panel input{min-height:36px}.admin-pagination{color:var(--text-muted);justify-content:space-between;align-items:center;gap:12px;padding-top:14px;display:flex}.status-with-text{white-space:nowrap}.admin-unavailable{border-left:3px solid var(--status-warning);background:var(--surface-raised);padding:10px}.admin-project-row{border-bottom:1px solid var(--border-subtle);justify-content:space-between;gap:16px;padding:12px 0;display:flex}@media (max-width:760px){.organization-admin-shell{padding:12px}.organization-admin-header{flex-wrap:wrap;align-items:flex-start}.admin-card-grid{grid-template-columns:1fr}.admin-panel{overflow-x:auto}}.portal-app{grid-template-rows:64px minmax(0,1fr);min-height:100%;display:grid;overflow:hidden}.portal-topbar{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--surface-0), transparent 3%);z-index:3;grid-template-columns:220px minmax(180px,260px) minmax(220px,620px) auto;align-items:center;gap:16px;min-width:0;padding:0 24px;display:grid;box-shadow:0 8px 30px #0000001f}.portal-brand{color:var(--text);align-items:center;gap:10px;text-decoration:none;display:flex}.portal-brand>span:last-child{display:grid}.portal-brand strong{letter-spacing:.01em;font-size:15px}.portal-brand small{color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase;font-size:10px}.portal-brand-mark{color:#e7f2ff;background:linear-gradient(145deg,#2187ff,#1150ae);border:1px solid #479cff;border-radius:9px;flex:none;place-items:center;width:36px;height:36px;display:grid;box-shadow:0 8px 22px #1b77e640}.portal-org-switcher{gap:2px;min-width:0;display:grid}.portal-org-switcher label{color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-weight:700}.portal-org-switcher select{background:0 0;border:0;width:100%;min-height:32px;padding-left:0;font-weight:650}.portal-global-search{border:1px solid var(--line);min-width:0;height:38px;color:var(--text-muted);background:var(--surface-1);border-radius:7px;align-items:center;gap:9px;padding:0 11px;display:flex}.portal-global-search:focus-within{border-color:var(--focus);box-shadow:0 0 0 2px color-mix(in srgb, var(--focus), transparent 78%)}.portal-global-search input{min-width:0;color:var(--text);background:0 0;border:0;outline:0;flex:1}.portal-global-search kbd{border:1px solid var(--line);color:var(--text-muted);background:var(--surface-2);border-radius:4px;padding:2px 6px}.portal-topbar-actions,.portal-project-actions,.portal-dialog-actions{align-items:center;gap:8px;display:flex}.portal-topbar-actions{justify-content:flex-end}.portal-profile{min-width:0;color:var(--text);background:0 0;border:0;align-items:center;gap:8px;display:flex}.portal-profile>span{border:1px solid var(--line-strong);color:#eaf3ff;background:#25476f;border-radius:50%;place-items:center;width:30px;height:30px;font-size:10px;font-weight:800;display:grid}.portal-profile strong{text-overflow:ellipsis;white-space:nowrap;max-width:110px;font-size:12px;overflow:hidden}.portal-body{grid-template-columns:236px minmax(0,1fr);min-height:0;display:grid}.portal-sidebar{border-right:1px solid var(--line);background:var(--surface-0);flex-direction:column;gap:20px;min-height:0;padding:22px 14px 16px;display:flex}.portal-sidebar nav,.portal-sidebar-section,.portal-sidebar-footer{gap:5px;display:grid}.portal-sidebar-section>span{color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase;padding:8px 10px 4px;font-size:9px;font-weight:800}.portal-sidebar a,.portal-sidebar button{min-height:38px;color:var(--text-soft);text-align:left;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:10px;padding:0 11px;text-decoration:none;display:flex}.portal-sidebar a:hover,.portal-sidebar button:hover,.portal-sidebar a.active{color:var(--text);border-color:var(--line);background:var(--surface-2)}.portal-sidebar a.active{box-shadow:inset 3px 0 0 var(--accent)}.portal-sidebar-footer{border-top:1px solid var(--line);margin-top:auto;padding-top:14px}.portal-main{background:radial-gradient(circle at 84% 2%, color-mix(in srgb, var(--accent), transparent 90%), transparent 28rem), var(--bg);min-width:0;padding:38px clamp(24px,4vw,64px) 64px;overflow:auto}.portal-page-header{justify-content:space-between;align-items:flex-start;gap:24px;max-width:1500px;margin:0 auto 28px;display:flex}.portal-page-header h1{letter-spacing:-.035em;margin:5px 0 7px;font-size:clamp(28px,3vw,42px)}.portal-page-header p{max-width:660px;color:var(--text-soft);margin:0;font-size:14px;line-height:1.6}.eyebrow{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;font-size:10px;font-weight:800}.portal-projects-section,.portal-notice{max-width:1500px;margin-left:auto;margin-right:auto}.portal-projects-section{border:1px solid var(--line);background:var(--surface-1);border-radius:10px;overflow:hidden;box-shadow:0 16px 45px #0000001f}.portal-collection-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:64px;padding:11px 16px 11px 20px;display:flex}.portal-collection-toolbar h2{margin:0 0 3px;font-size:15px}.portal-collection-toolbar span{color:var(--text-muted);font-size:11px}.portal-view-toggle{border:1px solid var(--line);background:var(--surface-0);border-radius:6px;padding:3px;display:flex}.portal-view-toggle button{width:30px;height:28px;color:var(--text-muted);background:0 0;border:0;border-radius:4px;place-items:center;display:grid}.portal-view-toggle button[aria-pressed=true]{color:var(--text);background:var(--surface-3)}.portal-table-wrap{overflow-x:auto}.portal-project-table{border-collapse:collapse;width:100%}.portal-project-table th,.portal-project-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:14px 20px}.portal-project-table tr:last-child td{border-bottom:0}.portal-project-table th{color:var(--text-muted);background:var(--surface-2);letter-spacing:.1em;text-transform:uppercase;font-size:9px}.portal-project-table td:first-child{min-width:260px}.portal-project-table td:first-child strong,.portal-project-table td:first-child small{display:block}.portal-project-table td:first-child strong{margin-bottom:4px;font-size:13px}.portal-project-table td:first-child small,.portal-project-table td:nth-child(3){color:var(--text-muted)}.portal-project-actions{white-space:nowrap;justify-content:flex-end}.portal-project-link{appearance:none;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.portal-project-link:hover strong,.portal-project-link:hover h3{color:var(--accent)}.portal-row-actions{justify-content:flex-end;align-items:center;gap:.45rem;display:flex}.portal-filter select{background:var(--surface);border:1px solid var(--border);color:var(--text-primary);border-radius:.35rem;min-height:2rem;padding:0 .55rem}.portal-pagination{justify-content:flex-end;gap:.5rem;margin-top:.9rem;display:flex}.portal-status-badge.status-draft,.portal-status-badge.status-validating,.portal-status-badge.status-ingesting{background:color-mix(in srgb, #2878da 14%, var(--surface));color:#2878da}.portal-status-badge.status-attention-required{background:color-mix(in srgb, #c67818 16%, var(--surface));color:#a96008}.portal-status-badge.status-archived{background:color-mix(in srgb, var(--text-muted) 13%, var(--surface));color:var(--text-muted)}.project-command-page{background:var(--app-background);color:var(--text-primary);min-height:100vh;padding:clamp(1.25rem,4vw,3.5rem);overflow:auto}.project-command-header{grid-template-columns:auto minmax(0,1fr) auto;align-items:flex-start;gap:1.25rem;max-width:72rem;margin:0 auto 2rem;display:grid}.project-command-header h1{margin:.2rem 0 0;font-size:clamp(1.75rem,3vw,2.5rem)}.project-command-header p{color:var(--text-muted);margin:.5rem 0 0}.project-wizard,.project-overview-grid{max-width:58rem;margin:0 auto}.wizard-progress{grid-template-columns:repeat(3,1fr);margin:0 0 1.25rem;padding:0;list-style:none;display:grid}.wizard-progress li{border-bottom:2px solid var(--border);color:var(--text-muted);align-items:center;gap:.5rem;padding:.8rem;display:flex}.wizard-progress li.active,.wizard-progress li.complete{border-color:var(--accent);color:var(--text-primary)}.wizard-card{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:clamp(1.25rem,4vw,2.25rem);box-shadow:0 12px 32px #04152814}.wizard-card h2{margin:.6rem 0 1.25rem}.wizard-card label,.wizard-fields{gap:.55rem;display:grid}.wizard-card label{margin-top:1rem;font-size:.82rem;font-weight:650}.wizard-card input,.wizard-card textarea,.wizard-card select{background:var(--surface-raised);border:1px solid var(--border-strong);color:var(--text-primary);font:inherit;border-radius:.38rem;padding:.72rem .8rem}.wizard-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.wizard-actions{justify-content:space-between;margin-top:1rem;display:flex}.project-summary-list{gap:0;margin:0;display:grid}.project-summary-list>div{border-bottom:1px solid var(--border);grid-template-columns:10rem 1fr;align-items:center;padding:.8rem 0;display:grid}.project-summary-list dt{color:var(--text-muted)}.project-summary-list dd{margin:0}.project-overview-grid{grid-template-columns:minmax(0,1.5fr) minmax(18rem,1fr);gap:1rem;max-width:72rem;display:grid}.project-activity-list{gap:.7rem;margin:0;padding:0;list-style:none;display:grid}.project-activity-list li{border-left:2px solid var(--accent);gap:.25rem;padding-left:.75rem;display:grid}.project-activity-list time{color:var(--text-muted);font-size:.75rem}.project-processing-card,.project-upload-card{grid-column:1/-1}.project-upload-heading{align-items:flex-start;gap:.8rem;display:flex}.project-upload-heading h2{margin:0}.project-upload-heading p{color:var(--text-muted);margin:.35rem 0 0}.project-upload-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin-top:1rem;display:grid}.project-upload-file,.project-upload-progress,.project-upload-actions,.project-upload-security-note,.project-upload-fields>.portal-notice{grid-column:1/-1}.project-upload-file,.project-upload-progress>div:first-child,.project-upload-actions,.project-upload-security-note{align-items:center;display:flex}.project-upload-file,.project-upload-progress>div:first-child{justify-content:space-between}.project-upload-file span,.project-upload-progress span,.project-upload-security-note{color:var(--text-muted);font-size:.78rem}.project-upload-progress{gap:.45rem;display:grid}.project-upload-progress-track{background:var(--surface-raised);border:1px solid var(--border);border-radius:999px;height:.55rem;overflow:hidden}.project-upload-progress-track>span{background:var(--accent);height:100%;transition:width .12s linear;display:block}.project-upload-actions{gap:.6rem}.project-upload-security-note{border-top:1px solid var(--border);gap:.5rem;margin-top:1rem;padding-top:.9rem}.project-upload-security-note span{flex:1}.project-processing-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.project-processing-list li{border:1px solid var(--line);background:var(--surface-2);border-radius:7px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.project-processing-list li>div{gap:3px;min-width:0;display:grid}.project-processing-list span,.project-processing-list code{color:var(--text-muted);font-size:11px}@media (max-width:760px){.project-command-header{grid-template-columns:1fr}.project-command-header>.icon-button{position:absolute;right:1rem}.wizard-fields,.project-overview-grid,.project-upload-fields{grid-template-columns:1fr}.wizard-progress span{display:none}.project-summary-list>div{grid-template-columns:1fr;gap:.25rem}}.portal-project-actions button{min-height:32px}.portal-status-badge{border:1px solid color-mix(in srgb, var(--success), transparent 62%);color:var(--success);background:color-mix(in srgb, var(--success), transparent 90%);border-radius:999px;align-items:center;gap:6px;padding:4px 8px;font-size:10px;font-weight:700;display:inline-flex}.portal-status-badge:before{content:"";background:currentColor;border-radius:50%;width:5px;height:5px}.portal-project-grid{grid-template-columns:repeat(3,minmax(240px,1fr));gap:16px;padding:20px;display:grid}.portal-project-card{border:1px solid var(--line);background:var(--surface-0);border-radius:8px;grid-template-columns:1fr auto;gap:9px;min-width:0;padding:17px;display:grid}.portal-project-visual{border:1px solid var(--line);width:40px;height:40px;color:var(--accent);background:var(--accent-soft);border-radius:7px;place-items:center;display:grid}.portal-project-card h3,.portal-project-card p,.portal-project-card>small,.portal-project-card .portal-project-actions{grid-column:1/-1;margin:0}.portal-project-card p,.portal-project-card>small{color:var(--text-muted);line-height:1.5}.portal-project-card .portal-project-actions{justify-content:flex-start;margin-top:7px}.portal-notice{border:1px solid var(--line);background:var(--surface-1);border-left-width:3px;border-radius:6px;grid-template-columns:auto 1fr;gap:10px;margin-bottom:18px;padding:12px 14px;display:grid}.portal-notice-warning{border-left-color:var(--warning)}.portal-notice-error{border-left-color:var(--danger)}.portal-notice-success{border-left-color:var(--success)}.portal-notice-info{border-left-color:var(--accent)}.portal-notice p{color:var(--text-soft);margin:3px 0 0}.portal-collection,.portal-empty-state{padding:26px}.portal-loading-heading{color:var(--text-soft);align-items:center;gap:9px;margin-bottom:18px;display:flex}.portal-spinner{animation:.9s linear infinite portal-spin}@keyframes portal-spin{to{transform:rotate(360deg)}}.portal-skeleton-row{border-top:1px solid var(--line);grid-template-columns:2fr 1fr 1fr;gap:30px;padding:16px 0;display:grid}.portal-skeleton-row span{background:linear-gradient(90deg, var(--surface-2), var(--surface-3), var(--surface-2));background-size:200% 100%;border-radius:4px;height:12px;animation:1.4s infinite portal-shimmer}@keyframes portal-shimmer{to{background-position:-200% 0}}.portal-empty-state{text-align:center;align-content:center;place-items:center;gap:8px;min-height:310px;display:grid}.portal-empty-state h2,.portal-empty-state p{margin:0}.portal-empty-state p{max-width:440px;color:var(--text-muted);line-height:1.6}.portal-empty-icon{align-items:flex-end;gap:4px;height:45px;display:flex}.portal-empty-icon span{background:var(--accent);border-radius:2px;width:9px}.portal-empty-icon span:first-child{opacity:.5;height:20px}.portal-empty-icon span:nth-child(2){height:37px}.portal-empty-icon span:nth-child(3){opacity:.7;height:28px}.portal-dialog-backdrop{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#020810b3;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.portal-dialog{border:1px solid var(--line-strong);background:var(--surface-1);border-radius:10px;width:min(440px,100%);padding:26px;position:relative;box-shadow:0 24px 80px #0000006b}.portal-dialog h2{margin:0 36px 8px 0}.portal-dialog p{color:var(--text-soft);margin:0 0 22px;line-height:1.6}.portal-dialog-close{position:absolute;top:14px;right:14px}.portal-dialog-actions{justify-content:flex-end}.portal-auth-state{background:radial-gradient(circle at 30% 15%, color-mix(in srgb, var(--accent), transparent 82%), transparent 30rem), var(--bg);place-items:center;min-height:100%;padding:24px;display:grid}.portal-auth-card{border:1px solid var(--line);background:var(--surface-1);border-radius:12px;justify-items:start;gap:15px;width:min(520px,100%);padding:42px;display:grid;box-shadow:0 30px 90px #00000059}.portal-auth-card h1,.portal-auth-card p{margin:0}.portal-auth-card h1{letter-spacing:-.035em;font-size:clamp(28px,5vw,42px)}.portal-auth-card p{color:var(--text-soft);line-height:1.65}.portal-auth-card small{color:var(--text-muted)}@media (max-width:1120px){.portal-topbar{grid-template-columns:190px minmax(170px,230px) minmax(180px,1fr) auto;padding:0 16px}.portal-topbar .system-pill,.portal-profile strong{display:none}.portal-project-grid{grid-template-columns:repeat(2,minmax(230px,1fr))}.portal-project-table td:nth-child(2),.portal-project-table th:nth-child(2){display:none}}@media (max-width:820px){.portal-app{grid-template-rows:auto minmax(0,1fr)}.portal-topbar{grid-template-columns:1fr auto;gap:10px;padding:10px 14px}.portal-org-switcher{grid-area:2/1}.portal-global-search{grid-area:3/1/auto/-1}.portal-topbar-actions{grid-area:1/2/3}.portal-body{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr}.portal-sidebar{border-right:0;border-bottom:1px solid var(--line);scrollbar-width:none;flex-direction:row;min-height:auto;padding:8px 12px;overflow-x:auto}.portal-sidebar::-webkit-scrollbar{display:none}.portal-sidebar nav,.portal-sidebar-section,.portal-sidebar-footer{border:0;margin:0;padding:0;display:flex}.portal-sidebar-section>span,.portal-sidebar-footer{display:none}.portal-sidebar a,.portal-sidebar button{white-space:nowrap;flex:none}.portal-main{padding:26px 16px 48px}.portal-project-table th:nth-child(3),.portal-project-table td:nth-child(3){display:none}}@media (max-width:620px){.portal-page-header{flex-direction:column;align-items:stretch}.portal-page-header>button{align-self:flex-start}.portal-project-grid{grid-template-columns:1fr;padding:12px}.portal-table-wrap{overflow:visible}.portal-project-table,.portal-project-table tbody,.portal-project-table tr,.portal-project-table td{display:block}.portal-project-table thead{display:none}.portal-project-table tr{border-bottom:1px solid var(--line);padding:16px}.portal-project-table td{border:0;padding:4px 0;min-width:0!important}.portal-project-table td:nth-child(2),.portal-project-table td:nth-child(3){display:none}.portal-project-table td:last-child{padding-top:13px}.portal-project-actions{flex-direction:column;align-items:stretch}.portal-project-actions button{justify-content:center}.portal-topbar .icon-button{display:none}}@media (prefers-reduced-motion:reduce){.portal-spinner,.portal-skeleton-row span{animation:none}}.platform-shell{grid-template-rows:64px minmax(0,1fr);min-height:100%;display:grid;overflow:hidden}.platform-topbar{z-index:20;background:color-mix(in srgb, var(--surface-0), transparent 2%);border-bottom:1px solid var(--line);grid-template-columns:220px minmax(180px,250px) minmax(220px,1fr) auto;align-items:center;gap:16px;min-width:0;padding:0 22px;display:grid;position:relative;box-shadow:0 8px 28px #0000001a}.platform-brand-button{text-align:left;background:0 0;border:0;padding:0}.platform-context{min-width:0;height:38px;color:var(--text-muted);background:var(--surface-1);border:1px solid var(--line);border-radius:7px;align-items:center;padding:0 12px;display:flex;overflow:hidden}.platform-context span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.platform-body{grid-template-columns:236px minmax(0,1fr);min-height:0;display:grid;position:relative}.platform-sidebar{z-index:12;background:var(--surface-0);border-right:1px solid var(--line);flex-direction:column;gap:20px;min-height:0;padding:22px 14px 16px;display:flex;position:relative;overflow-y:auto}.platform-sidebar nav,.platform-sidebar-section,.platform-sidebar-footer{gap:5px;display:grid}.platform-sidebar-section>span{color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase;padding:8px 10px 4px;font-size:9px;font-weight:800}.platform-sidebar button{width:100%;min-height:38px;color:var(--text-soft);text-align:left;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:10px;padding:0 11px;display:flex}.platform-sidebar button:hover,.platform-sidebar button.active{color:var(--text);background:var(--surface-2);border-color:var(--line)}.platform-sidebar button.active{box-shadow:inset 3px 0 0 var(--accent)}.platform-subnavigation{border-left:1px solid var(--line);gap:2px;margin:2px 0 4px 18px;padding-left:11px;display:grid}.platform-subnavigation button{min-height:31px;padding-left:10px;font-size:11px}.platform-subnavigation button.active{color:var(--accent);background:var(--accent-soft);box-shadow:none}.platform-sidebar-footer{border-top:1px solid var(--line);margin-top:auto;padding-top:14px}.platform-main{background:radial-gradient(circle at 84% 2%, color-mix(in srgb, var(--accent), transparent 91%), transparent 30rem), var(--bg);min-width:0;padding:38px clamp(24px,4vw,64px) 64px;overflow:auto}.platform-page{width:100%;max-width:1500px;margin:0 auto}.platform-inline-error{max-width:1500px;color:var(--danger);background:color-mix(in srgb, var(--danger), transparent 90%);border:1px solid color-mix(in srgb, var(--danger), transparent 60%);border-radius:7px;margin:0 auto 16px;padding:10px 13px}.platform-route-loading{max-width:1500px;margin:0 auto}.platform-route-loading>p{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.platform-page-heading-skeleton,.platform-panel-skeleton{display:grid;overflow:hidden}.platform-page-heading-skeleton{gap:9px;max-width:550px;margin-bottom:28px}.platform-page-heading-skeleton span,.platform-panel-skeleton span{background:linear-gradient(90deg, var(--surface-1), var(--surface-3), var(--surface-1));background-size:220% 100%;border-radius:5px;animation:1.35s ease-in-out infinite portal-shimmer;display:block}.platform-page-heading-skeleton span:first-child{width:120px;height:10px}.platform-page-heading-skeleton span:nth-child(2){width:280px;height:38px}.platform-page-heading-skeleton span:nth-child(3){width:520px;max-width:90%;height:13px}.platform-panel-skeleton{background:var(--line);border:1px solid var(--line);border-radius:10px;gap:1px;padding:1px}.platform-panel-skeleton span{border-radius:0;height:64px}.platform-shell .organization-admin-shell,.platform-shell .project-command-page{min-height:auto;color:var(--text);background:0 0;padding:0;overflow:visible}.platform-shell .organization-admin-header,.platform-shell .organization-admin-content,.platform-shell .admin-feedback{max-width:none}.platform-shell .organization-admin-header{margin:0 0 26px}.platform-shell .organization-admin-header>.secondary-button,.platform-shell .organization-admin-tabs{display:none}.platform-shell .organization-admin-header h1,.platform-shell .project-command-header h1{letter-spacing:-.03em;margin:5px 0 0;font-size:clamp(28px,3vw,38px)}.platform-shell .organization-admin-content,.platform-shell .admin-feedback{margin:16px 0}.platform-shell .admin-card-grid article,.platform-shell .admin-panel,.platform-shell .wizard-card{color:var(--text);background:var(--surface-1);border-color:var(--line);border-radius:10px;box-shadow:0 16px 42px #0000001a}.platform-shell .admin-panel th{color:var(--text-muted);background:var(--surface-2);letter-spacing:.1em;text-transform:uppercase;font-size:9px}.platform-shell .admin-panel th,.platform-shell .admin-panel td{border-color:var(--line);padding:13px 14px}.platform-shell .project-command-header,.platform-shell .project-wizard,.platform-shell .project-overview-grid{max-width:1500px}.platform-shell .project-command-header{grid-template-columns:minmax(0,1fr) auto;margin-bottom:28px}.platform-shell .project-command-header>.secondary-button{grid-area:1/2}.platform-shell .project-command-header>div{grid-area:1/1}.platform-shell .project-overview-grid{grid-template-columns:minmax(0,1.6fr) minmax(280px,.9fr)}@media (max-width:1080px){.platform-topbar{grid-template-columns:200px minmax(160px,220px) minmax(180px,1fr) auto;gap:10px;padding:0 14px}.portal-profile strong,.portal-profile>svg,.platform-topbar .system-pill{display:none}}@media (max-width:820px){.platform-topbar{grid-template-columns:minmax(150px,1fr) auto}.platform-topbar .portal-org-switcher,.platform-topbar .portal-global-search,.platform-context,.platform-brand-button .portal-brand-mark{display:none}.platform-body{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr}.platform-sidebar{border-right:0;border-bottom:1px solid var(--line);width:auto;min-height:auto;box-shadow:none;scrollbar-width:none;flex-direction:row;gap:6px;padding:8px 12px;position:relative;inset:auto;overflow:auto hidden;transform:none}.platform-sidebar::-webkit-scrollbar{display:none}.platform-sidebar nav,.platform-sidebar-section,.platform-subnavigation{border:0;flex:none;gap:4px;margin:0;padding:0;display:flex}.platform-sidebar-section>span,.platform-sidebar-footer,.platform-sidebar-section>button.active+.platform-subnavigation{display:none}.platform-sidebar button{white-space:nowrap;flex:none;width:auto}.platform-main{padding:28px 18px 48px}.platform-shell .project-overview-grid,.platform-shell .admin-card-grid{grid-template-columns:1fr}}@media (max-width:620px){.platform-topbar{grid-template-columns:minmax(120px,1fr) auto}.portal-topbar-actions>.icon-button{display:none}.platform-shell .project-command-header{grid-template-columns:1fr}.platform-shell .project-command-header>.secondary-button,.platform-shell .project-command-header>div{grid-area:auto/1}}@media (prefers-reduced-motion:reduce){.platform-page-heading-skeleton span,.platform-panel-skeleton span{transition:none;animation:none}}.portal-page-header{align-items:center}.portal-pagination{border-top:1px solid var(--line);background:color-mix(in srgb, var(--surface-2), transparent 36%);align-items:center;min-height:54px;margin:0;padding:10px 16px}.platform-shell .admin-card-grid article,.platform-shell .admin-panel-toolbar,.platform-shell .platform-operations-grid .admin-panel,.platform-shell .platform-load-state{box-shadow:none}.portal-org-switcher>label,.portal-org-label{color:var(--text-muted);letter-spacing:.11em;text-transform:uppercase;font-size:8px;font-weight:800}.portal-org-static,.portal-org-select-wrap{min-width:0;height:34px;color:var(--text-soft);background:var(--surface-1);border:1px solid var(--line);border-radius:7px;align-items:center;gap:7px;padding:0 9px;display:flex}.portal-org-static>svg,.portal-org-select-wrap>svg{color:var(--accent);flex:none}.portal-org-static strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:700;overflow:hidden}.portal-org-select-wrap select{min-width:0;height:100%;color:var(--text);appearance:none;background:0 0;border:0;outline:0;flex:1;padding:0;font-size:11px;font-weight:700}.admin-section-header{margin-bottom:18px}.admin-section-header h2,.admin-section-header p{margin:0}.admin-section-header p{margin-top:4px}.admin-pagination>div{align-items:center;gap:7px;display:inline-flex}.platform-shell .admin-panel-toolbar{flex-wrap:wrap}.platform-shell .admin-panel-toolbar>label{flex:220px;min-width:min(220px,100%)}.account-lifecycle-card input{width:100%;min-height:40px;color:var(--text);background:var(--surface-0);border:1px solid var(--line);border-radius:7px;padding:0 11px}.account-lifecycle-card>.primary-button,.account-lifecycle-card form .primary-button{align-self:flex-start;min-height:40px}.platform-shell .wizard-actions{background:var(--surface-1);border:1px solid var(--line);border-radius:9px;align-items:center;gap:10px;min-height:58px;margin-top:12px;padding:11px 13px}.app[data-testid=application-shell]{--topbar-height:62px;--modebar-height:46px;--viewer-left-panel-width:284px;--viewer-right-panel-width:310px;--viewer-tool-region-height:70px;--viewer-readout-height:30px;--viewer-action-height:32px;--viewer-radius:7px}.app[data-testid=application-shell] .topbar{background:var(--surface-0);gap:12px;padding:0 16px;box-shadow:0 8px 28px #00000014}.app[data-testid=application-shell] .brand{width:210px}.app[data-testid=application-shell] .brand-mark{border-radius:9px;width:38px;height:38px}.app[data-testid=application-shell] .brand-copy strong{font-size:15px}.app[data-testid=application-shell] .project-switcher-wrap{width:min(258px,20vw)}.app[data-testid=application-shell] .project-switcher{border-radius:var(--viewer-radius);height:36px;font-size:12px}.app[data-testid=application-shell] .modebar{background:var(--surface-0);gap:10px;padding:5px 12px}.app[data-testid=application-shell] .modebar>.panel-toggle{flex:none;width:34px;height:34px}.app[data-testid=application-shell] .mode-tabs{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;align-self:auto;gap:3px;padding:3px}.app[data-testid=application-shell] .mode-tabs button{border:1px solid #0000;border-radius:5px;justify-content:center;align-items:center;gap:7px;min-width:92px;min-height:32px;padding:0 12px;font-size:11px;display:inline-flex}.app[data-testid=application-shell] .mode-tabs button.active{color:var(--text);background:var(--surface-0);border-color:var(--line-strong);box-shadow:0 2px 8px #0000001f}.app[data-testid=application-shell] .mode-tabs button.active:after{display:none}.app[data-testid=application-shell] .mode-context{background:var(--surface-1);border:1px solid var(--line);border-radius:999px;gap:7px;min-height:30px;padding:0 10px;font-size:9px}.app[data-testid=application-shell] .workspace,.app[data-testid=application-shell] .workspace.right-collapsed{grid-template-columns:var(--viewer-left-panel-width) minmax(420px, 1fr) var(--viewer-right-panel-width)}.app[data-testid=application-shell] .workspace.left-collapsed{grid-template-columns:0 minmax(420px, 1fr) var(--viewer-right-panel-width)}.app[data-testid=application-shell] .workspace.right-collapsed{grid-template-columns:var(--viewer-left-panel-width) minmax(420px, 1fr) 0}.app[data-testid=application-shell] .workspace.left-collapsed.right-collapsed{grid-template-columns:0 minmax(420px,1fr) 0}.app[data-testid=application-shell] .left-panel,.app[data-testid=application-shell] .right-panel{background:var(--surface-0)}.app[data-testid=application-shell] .panel-heading{background:var(--surface-0);min-height:62px;padding:11px 13px}.app[data-testid=application-shell] .panel-heading h2{margin-top:3px;font-size:14px}.app[data-testid=application-shell] .panel-heading .eyebrow,.app[data-testid=application-shell] .mini-label{font-size:9px}.app[data-testid=application-shell] .project-summary{background:var(--surface-1);min-height:58px;padding:11px 13px}.app[data-testid=application-shell] .project-summary strong{font-size:11px}.app[data-testid=application-shell] .project-summary small{font-size:9px}.app[data-testid=application-shell] .viewer-column{grid-template-rows:var(--viewer-tool-region-height) minmax(0, 1fr) var(--viewer-readout-height)}.app[data-testid=application-shell] .viewer-column.tools-hidden{grid-template-rows:minmax(0, 1fr) var(--viewer-readout-height)}.app[data-testid=application-shell] .extraction-mode-tools{background:var(--surface-0);grid-template-rows:42px minmax(24px,1fr);box-shadow:0 4px 14px #00000014}.app[data-testid=application-shell] .viewer-toolbar{background:var(--surface-0);gap:6px;padding:4px 10px}.app[data-testid=application-shell] .tool-button{height:var(--viewer-action-height);border-radius:6px;gap:7px;padding:0 10px;font-size:10px;font-weight:700}.app[data-testid=application-shell] .tool-button:hover:not(:disabled){color:var(--text);background:var(--surface-2);border-color:var(--line)}.app[data-testid=application-shell] .tool-button.active{color:var(--accent);background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent), transparent 54%)}.app[data-testid=application-shell] .toolbar-select select{height:var(--viewer-action-height);border-radius:6px;font-size:10px}.app[data-testid=application-shell] .toolbar-divider{height:22px}.app[data-testid=application-shell] .toolbar-readout{align-items:center;gap:6px;font-size:9px;display:inline-flex}.app[data-testid=application-shell] .extraction-tool-hint{gap:12px;padding:0 11px;font-size:9px}.app[data-testid=application-shell] .extraction-tool-hint kbd{font-size:8px}.app[data-testid=application-shell] .viewer-statusbar{min-height:var(--viewer-readout-height);gap:18px;padding:0 11px;font-size:9px}.app[data-testid=application-shell] .extraction-layers{gap:11px;padding:11px}.app[data-testid=application-shell] .extraction-create-actions,.app[data-testid=application-shell] .extraction-file-actions{gap:6px}.app[data-testid=application-shell] .extraction-create-actions{border-radius:8px;padding:5px}.app[data-testid=application-shell] .extraction-create-actions button,.app[data-testid=application-shell] .extraction-file-actions button{border-radius:6px;gap:6px;min-height:34px;font-size:10px}.app[data-testid=application-shell] .extraction-authority-note{padding:2px 4px;font-size:8px}.app[data-testid=application-shell] .extraction-layer-list{gap:9px}.app[data-testid=application-shell] .extraction-layer-group{gap:5px}.app[data-testid=application-shell] .extraction-layer-group>header{border-radius:7px;grid-template-columns:26px minmax(0,1fr) auto;min-height:34px;padding-right:7px;font-size:9px}.app[data-testid=application-shell] .extraction-layer-list article{border-radius:8px}.app[data-testid=application-shell] .extraction-layer-row{min-height:50px;padding:4px 5px 4px 4px}.app[data-testid=application-shell] .extraction-layer-main{gap:10px;padding:6px 7px}.app[data-testid=application-shell] .extraction-layer-main strong{font-size:11px}.app[data-testid=application-shell] .extraction-layer-main small{font-size:9px}.app[data-testid=application-shell] .extraction-layer-actions .icon-button{width:29px;height:30px}.app[data-testid=application-shell] .extraction-layer-menu>div{border-radius:8px;width:168px;padding:6px}.app[data-testid=application-shell] .extraction-layer-menu>div button{min-height:32px;font-size:10px}.app[data-testid=application-shell] .drawing-target-status,.app[data-testid=application-shell] .layer-geometry-identity,.app[data-testid=application-shell] .layer-applied-profile,.app[data-testid=application-shell] .extraction-layer-editor>span,.app[data-testid=application-shell] .layer-marker-size,.app[data-testid=application-shell] .layer-line-width,.app[data-testid=application-shell] .layer-point-symbol{font-size:9px}.app[data-testid=application-shell] .extraction-layer-editor{gap:8px;padding:10px}.app[data-testid=application-shell] .scene-display-section,.app[data-testid=application-shell] .scene-display-content .point-controls,.app[data-testid=application-shell] .scene-display-content .panorama-controls{padding:13px}.app[data-testid=application-shell] .scene-display-section>header strong{font-size:12px}.app[data-testid=application-shell] .scene-select-control strong,.app[data-testid=application-shell] .scene-select-control small,.app[data-testid=application-shell] .scene-control-note,.app[data-testid=application-shell] .scene-toggle-list label{font-size:10px}.app[data-testid=application-shell] .scene-select-control select{border-radius:6px;min-height:32px}.app[data-testid=application-shell] .left-panel-footer{align-content:center;min-height:38px;padding:8px 13px}.app[data-testid=application-shell] .left-panel-footer code{font-size:9px}@media (max-width:1120px){.app[data-testid=application-shell],.app[data-testid=application-shell].density-compact{--viewer-left-panel-width:244px;--viewer-right-panel-width:274px}.app[data-testid=application-shell] .workspace,.app[data-testid=application-shell] .workspace.right-collapsed{grid-template-columns:var(--viewer-left-panel-width) minmax(0, 1fr) 0}.app[data-testid=application-shell] .workspace.left-collapsed,.app[data-testid=application-shell] .workspace.left-collapsed.right-collapsed{grid-template-columns:0 minmax(0,1fr) 0}.app[data-testid=application-shell] .right-panel{z-index:25;top:calc(var(--topbar-height) + var(--modebar-height));width:min(var(--viewer-right-panel-width), 82vw);visibility:visible;position:fixed;bottom:0;right:0;box-shadow:-20px 0 50px #0000005c}.app[data-testid=application-shell] .right-collapsed .right-panel{visibility:hidden;transform:translate(100%)}.app[data-testid=application-shell] .brand{width:auto}.app[data-testid=application-shell] .brand-copy,.app[data-testid=application-shell] .profile-label,.app[data-testid=application-shell] .viewer-platform-actions .secondary-button{font-size:0}}@media (max-width:900px){.app[data-testid=application-shell] .workspace,.app[data-testid=application-shell] .workspace.right-collapsed{grid-template-columns:228px minmax(0,1fr) 0}.app[data-testid=application-shell] .workspace.left-collapsed,.app[data-testid=application-shell] .workspace.left-collapsed.right-collapsed{grid-template-columns:0 minmax(0,1fr) 0}}@media (max-width:640px){.app[data-testid=application-shell]{--topbar-height:56px;--modebar-height:44px}.app[data-testid=application-shell] .workspace,.app[data-testid=application-shell] .workspace.right-collapsed,.app[data-testid=application-shell] .workspace.left-collapsed,.app[data-testid=application-shell] .workspace.left-collapsed.right-collapsed{grid-template-columns:minmax(0,1fr)}.app[data-testid=application-shell] .mode-tabs button{min-width:72px;font-size:10px}}@media (max-width:620px){.portal-page-header{align-items:stretch}}.app[data-testid=application-shell]{--topbar-height:54px;--modebar-height:40px;--viewer-left-panel-width:254px;--viewer-right-panel-width:276px;--viewer-tool-region-height:42px;--viewer-readout-height:26px}.app[data-testid=application-shell].density-compact{--viewer-left-panel-width:246px;--viewer-right-panel-width:268px;--viewer-tool-region-height:42px}.app[data-testid=application-shell] .topbar{padding-inline:12px}.app[data-testid=application-shell] .brand-mark{width:34px;height:34px}.app[data-testid=application-shell] .project-switcher{height:34px}.app[data-testid=application-shell] .modebar{gap:8px;padding:3px 8px}.app[data-testid=application-shell] .modebar>.panel-toggle{width:32px;height:32px}.app[data-testid=application-shell] .mode-tabs{padding:2px}.app[data-testid=application-shell] .mode-tabs button{min-height:30px}.app[data-testid=application-shell] .mode-context{background:0 0;border:0;min-height:26px;padding:0 9px}.app[data-testid=application-shell] .panel-heading{min-height:48px;padding:8px 10px 8px 12px}.app[data-testid=application-shell] .panel-heading h2{margin:0;font-size:13px}.app[data-testid=application-shell] .viewer-column,.app[data-testid=application-shell] .viewer-column.readouts-hidden{grid-template-rows:var(--viewer-tool-region-height) minmax(0, 1fr) var(--viewer-readout-height)}.app[data-testid=application-shell] .viewer-column.readouts-hidden{grid-template-rows:var(--viewer-tool-region-height) minmax(0, 1fr)}.app[data-testid=application-shell] .extraction-mode-tools{border-bottom:1px solid var(--line);display:block;position:relative;box-shadow:0 3px 12px #0000000f}.app[data-testid=application-shell] .viewer-toolbar{height:var(--viewer-tool-region-height);gap:4px;padding:4px 8px}.app[data-testid=application-shell] .tool-help{flex:none;position:relative}.app[data-testid=application-shell] .tool-help>summary{height:var(--viewer-action-height);color:var(--text-soft);cursor:pointer;border:1px solid #0000;border-radius:6px;align-items:center;gap:6px;padding:0 9px;font-size:10px;font-weight:700;list-style:none;display:inline-flex}.app[data-testid=application-shell] .tool-help>summary::-webkit-details-marker{display:none}.app[data-testid=application-shell] .tool-help>summary:hover,.app[data-testid=application-shell] .tool-help[open]>summary{color:var(--text);background:var(--surface-2);border-color:var(--line)}.app[data-testid=application-shell] .toolbar-snap-group{height:var(--viewer-action-height);color:var(--text-muted);background:var(--surface-1);border:1px solid var(--line);border-radius:6px;flex:none;align-items:center;font-size:9px;display:inline-flex}.app[data-testid=application-shell] .toolbar-snap-toggle,.app[data-testid=application-shell] .toolbar-snap-tolerance{border-right:1px solid var(--line);align-items:center;gap:5px;height:100%;padding:0 7px;display:inline-flex}.app[data-testid=application-shell] .toolbar-snap-toggle{color:var(--text-soft);cursor:pointer;font-weight:700}.app[data-testid=application-shell] .toolbar-snap-toggle:has(input:checked){color:var(--accent);background:var(--accent-soft)}.app[data-testid=application-shell] .toolbar-snap-toggle input{width:13px;height:13px;margin:0}.app[data-testid=application-shell] .toolbar-snap-tolerance{gap:3px;padding-inline:5px}.app[data-testid=application-shell] .toolbar-snap-tolerance input{width:34px;height:22px;color:var(--text);background:var(--surface-0);border:1px solid var(--line);font:inherit;border-radius:4px;padding:0 3px}.app[data-testid=application-shell] .toolbar-snap-types{height:100%;position:relative}.app[data-testid=application-shell] .toolbar-snap-types>summary{height:100%;color:var(--text-soft);cursor:pointer;align-items:center;padding:0 7px;list-style:none;display:flex}.app[data-testid=application-shell] .toolbar-snap-types>summary::-webkit-details-marker{display:none}.app[data-testid=application-shell] .toolbar-snap-types[open]>summary{color:var(--accent);background:var(--accent-soft)}.app[data-testid=application-shell] .toolbar-snap-types>div{z-index:45;top:calc(var(--topbar-height) + var(--modebar-height) + var(--viewer-tool-region-height) + 6px);right:calc(var(--viewer-right-panel-width) + 10px);width:190px;color:var(--text-soft);background:var(--surface-0);border:1px solid var(--line-strong);border-radius:7px;gap:3px;padding:7px;display:grid;position:fixed;box-shadow:0 12px 30px #00000057}.app[data-testid=application-shell] .right-collapsed .toolbar-snap-types>div{right:10px}.app[data-testid=application-shell] .toolbar-snap-types label{text-transform:capitalize;border-radius:4px;align-items:center;gap:7px;min-height:28px;padding:0 6px;display:flex}.app[data-testid=application-shell] .toolbar-snap-types label:hover{background:var(--surface-2)}.app[data-testid=application-shell] .toolbar-snap-bypass{color:var(--text-muted);padding:0 7px;font-family:IBM Plex Mono,monospace}.app[data-testid=application-shell] .tool-help .extraction-tool-hint{z-index:40;top:calc(var(--topbar-height) + var(--modebar-height) + var(--viewer-tool-region-height) + 6px);right:calc(var(--viewer-right-panel-width) + 10px);max-width:min(720px, calc(100vw - var(--viewer-left-panel-width) - var(--viewer-right-panel-width) - 32px));min-height:38px;color:var(--text-muted);background:color-mix(in srgb, var(--surface-0), transparent 3%);border:1px solid var(--line-strong);white-space:normal;border-radius:7px;flex-wrap:wrap;gap:8px 12px;padding:9px 11px;display:flex;position:fixed;overflow:visible;box-shadow:0 12px 32px #00000052}.app[data-testid=application-shell] .right-collapsed .tool-help .extraction-tool-hint{right:10px}.app[data-testid=application-shell] .scene-display-content .point-controls,.app[data-testid=application-shell] .scene-display-section{padding:0}.app[data-testid=application-shell] .point-controls-heading,.app[data-testid=application-shell] .scene-display-section>summary{min-height:42px;color:var(--text);cursor:pointer;justify-content:space-between;align-items:center;gap:8px;padding:0 12px;font-size:11px;list-style:none;display:flex}.app[data-testid=application-shell] .point-controls-heading::-webkit-details-marker{display:none}.app[data-testid=application-shell] .scene-display-section>summary::-webkit-details-marker{display:none}.app[data-testid=application-shell] .point-controls-heading>span,.app[data-testid=application-shell] .scene-display-section>summary>span{color:var(--accent);align-items:center;gap:5px;display:inline-flex}.app[data-testid=application-shell] .disclosure-chevron{transition:transform .15s}.app[data-testid=application-shell] details[open]>summary .disclosure-chevron{transform:rotate(180deg)}.app[data-testid=application-shell] .point-controls-body,.app[data-testid=application-shell] .scene-display-section-body{gap:10px;padding:0 12px 12px;display:grid}.app[data-testid=application-shell] .scene-display-section{border-top:1px solid var(--line)}.app[data-testid=application-shell] .scene-select-control,.app[data-testid=application-shell] .scene-toggle-list{padding-top:10px}.app[data-testid=application-shell] .left-panel-footer{min-height:32px;padding-block:5px}@media (max-width:1120px){.app[data-testid=application-shell],.app[data-testid=application-shell].density-compact{--viewer-left-panel-width:232px;--viewer-right-panel-width:264px}.app[data-testid=application-shell] .tool-help .extraction-tool-hint{max-width:calc(100vw - var(--viewer-left-panel-width) - 20px);right:10px}.app[data-testid=application-shell] .toolbar-snap-types>div{right:10px}}@media (max-width:640px){.app[data-testid=application-shell]{--topbar-height:52px;--modebar-height:40px}.app[data-testid=application-shell] .mode-context{padding-inline:4px}.app[data-testid=application-shell] .mode-context strong{display:none}.app[data-testid=application-shell] .tool-help .extraction-tool-hint{max-width:none;left:8px;right:8px}}.app[data-testid=application-shell]{--viewer-tool-region-height:0px}.app[data-testid=application-shell] .modebar{overflow:visible}.app[data-testid=application-shell] .mode-tabs,.app[data-testid=application-shell] .mode-context{flex:none}.app[data-testid=application-shell] .modebar-tools-host{border-left:1px solid var(--line);flex:auto;align-items:center;min-width:0;height:100%;display:flex;overflow:hidden}.app[data-testid=application-shell] .modebar-tools-host:empty{border-left-color:#0000}.app[data-testid=application-shell] .modebar-tools-host .viewer-toolbar{width:100%;height:100%;box-shadow:none;scrollbar-width:none;background:0 0;border:0;gap:4px;padding:3px 6px;overflow:auto hidden}.app[data-testid=application-shell] .modebar-tools-host .viewer-toolbar::-webkit-scrollbar{display:none}.app[data-testid=application-shell] .viewer-column,.app[data-testid=application-shell] .viewer-column.tools-hidden{grid-template-rows:minmax(0, 1fr) var(--viewer-readout-height)}.app[data-testid=application-shell] .viewer-column.readouts-hidden,.app[data-testid=application-shell] .viewer-column.tools-hidden.readouts-hidden{grid-template-rows:minmax(0,1fr)}.app[data-testid=application-shell] .drawing-command-slot{flex:0 0 314px;align-items:center;gap:4px;min-width:314px;height:100%;display:inline-flex}.app[data-testid=application-shell] .drawing-command-slot[data-active=false]:before{content:"";background:var(--line);width:1px;height:22px;margin-left:2px}.app[data-testid=application-shell] .tool-help .extraction-tool-hint,.app[data-testid=application-shell] .toolbar-snap-types>div{top:calc(var(--topbar-height) + var(--modebar-height) + 6px)}@media (max-width:1480px){.app[data-testid=application-shell] .drawing-command-slot{flex-basis:286px;min-width:286px}.app[data-testid=application-shell] .toolbar-readout:not([role=status]){display:none}}@media (max-width:1120px){.app[data-testid=application-shell] .modebar{gap:5px;padding-inline:5px}.app[data-testid=application-shell] .mode-tabs button{min-width:78px;padding-inline:8px}.app[data-testid=application-shell] .drawing-command-slot{flex-basis:260px;min-width:260px}}.app[data-testid=application-shell] .viewer-column,.app[data-testid=application-shell] .viewer-column.tools-hidden,.app[data-testid=application-shell] .viewer-column.readouts-hidden,.app[data-testid=application-shell] .viewer-column.tools-hidden.readouts-hidden{grid-template-rows:minmax(0,1fr)}
