:root{--lidar-bg: #ffffff;--lidar-bg-muted: #f8f9fa;--lidar-bg-subtle: #f0f0f0;--lidar-bg-code: #f5f5f5;--lidar-hover: #e0e0e0;--lidar-active: #d0d0d0;--lidar-border: #e0e0e0;--lidar-border-input: #dddddd;--lidar-border-strong: #cccccc;--lidar-border-hover: #bbbbbb;--lidar-border-subtle: rgba(0, 0, 0, .15);--lidar-border-dashed: #dddddd;--lidar-text: #333333;--lidar-text-strong: #1f2a37;--lidar-text-secondary: #555555;--lidar-text-tertiary: #666666;--lidar-text-muted: #888888;--lidar-text-faint: #999999;--lidar-accent: #159895;--lidar-accent-hover: #128784;--lidar-accent-border: #128583;--lidar-accent-dark: #0f6d6b;--lidar-accent-darker: #0b5b59;--lidar-accent-soft: #f0faf9;--lidar-accent-ring: rgba(21, 152, 149, .15);--lidar-on-accent: #ffffff;--lidar-shadow: rgba(0, 0, 0, .1);--lidar-shadow-modal: rgba(0, 0, 0, .3);--lidar-backdrop: rgba(0, 0, 0, .5);--lidar-overlay: rgba(255, 255, 255, .95);--lidar-toggle-hover: rgba(0, 0, 0, .05);--lidar-scrollbar: rgba(0, 0, 0, .3);--lidar-scrollbar-hover: rgba(0, 0, 0, .5);--lidar-tooltip-bg: rgba(0, 0, 0, .85);--lidar-tooltip-text: #ffffff;--lidar-error-bg: #fff5f5;--lidar-error-border: #ffcdd2;--lidar-error-text: #c62828;--lidar-danger: #dc3545;--lidar-danger-bg: #fff5f5;--lidar-danger-on: #ffffff;--lidar-info-bg: #e3f2fd;--lidar-info-text: #1565c0;--lidar-info-border: #90caf9;--lidar-resize-grip: #cccccc;--lidar-resize-grip-hover: #999999;--lidar-chart-bg: #f8f8f8;--lidar-chart-grid: #dddddd;--lidar-chart-axis: #333333;--lidar-chart-text: #333333;--lidar-chart-muted: #888888;--lidar-chart-highlight: #000000}@media(prefers-color-scheme:dark){:root:not(.lidar-theme-light){--lidar-bg: #1f2127;--lidar-bg-muted: #2a2d35;--lidar-bg-subtle: #313640;--lidar-bg-code: #14161a;--lidar-hover: #3a3f4a;--lidar-active: #454b58;--lidar-border: #3a3f4a;--lidar-border-input: #454b58;--lidar-border-strong: #4f5662;--lidar-border-hover: #5a626f;--lidar-border-subtle: rgba(255, 255, 255, .15);--lidar-border-dashed: #4f5662;--lidar-text: #e6e8ec;--lidar-text-strong: #f2f4f7;--lidar-text-secondary: #c3c8d1;--lidar-text-tertiary: #a7adb8;--lidar-text-muted: #8b919c;--lidar-text-faint: #757b86;--lidar-accent: #1bb3af;--lidar-accent-hover: #19a3a0;--lidar-accent-border: #17928f;--lidar-accent-dark: #2bc7c3;--lidar-accent-darker: #3ad4d0;--lidar-accent-soft: rgba(27, 179, 175, .18);--lidar-accent-ring: rgba(27, 179, 175, .3);--lidar-on-accent: #ffffff;--lidar-shadow: rgba(0, 0, 0, .5);--lidar-shadow-modal: rgba(0, 0, 0, .6);--lidar-backdrop: rgba(0, 0, 0, .65);--lidar-overlay: rgba(25, 27, 31, .95);--lidar-toggle-hover: rgba(255, 255, 255, .08);--lidar-scrollbar: rgba(255, 255, 255, .25);--lidar-scrollbar-hover: rgba(255, 255, 255, .4);--lidar-tooltip-bg: rgba(0, 0, 0, .9);--lidar-tooltip-text: #ffffff;--lidar-error-bg: rgba(198, 40, 40, .15);--lidar-error-border: rgba(198, 40, 40, .5);--lidar-error-text: #f1a9a9;--lidar-danger: #e5546a;--lidar-danger-bg: rgba(220, 53, 69, .15);--lidar-danger-on: #ffffff;--lidar-info-bg: rgba(21, 101, 192, .22);--lidar-info-text: #7fb6f0;--lidar-info-border: rgba(144, 202, 249, .4);--lidar-resize-grip: #5a626f;--lidar-resize-grip-hover: #8b919c;--lidar-chart-bg: #1a1c20;--lidar-chart-grid: #3a3f4a;--lidar-chart-axis: #c3c8d1;--lidar-chart-text: #c3c8d1;--lidar-chart-muted: #8b919c;--lidar-chart-highlight: #ffffff}}:root.lidar-theme-dark{--lidar-bg: #1f2127;--lidar-bg-muted: #2a2d35;--lidar-bg-subtle: #313640;--lidar-bg-code: #14161a;--lidar-hover: #3a3f4a;--lidar-active: #454b58;--lidar-border: #3a3f4a;--lidar-border-input: #454b58;--lidar-border-strong: #4f5662;--lidar-border-hover: #5a626f;--lidar-border-subtle: rgba(255, 255, 255, .15);--lidar-border-dashed: #4f5662;--lidar-text: #e6e8ec;--lidar-text-strong: #f2f4f7;--lidar-text-secondary: #c3c8d1;--lidar-text-tertiary: #a7adb8;--lidar-text-muted: #8b919c;--lidar-text-faint: #757b86;--lidar-accent: #1bb3af;--lidar-accent-hover: #19a3a0;--lidar-accent-border: #17928f;--lidar-accent-dark: #2bc7c3;--lidar-accent-darker: #3ad4d0;--lidar-accent-soft: rgba(27, 179, 175, .18);--lidar-accent-ring: rgba(27, 179, 175, .3);--lidar-on-accent: #ffffff;--lidar-shadow: rgba(0, 0, 0, .5);--lidar-shadow-modal: rgba(0, 0, 0, .6);--lidar-backdrop: rgba(0, 0, 0, .65);--lidar-overlay: rgba(25, 27, 31, .95);--lidar-toggle-hover: rgba(255, 255, 255, .08);--lidar-scrollbar: rgba(255, 255, 255, .25);--lidar-scrollbar-hover: rgba(255, 255, 255, .4);--lidar-tooltip-bg: rgba(0, 0, 0, .9);--lidar-tooltip-text: #ffffff;--lidar-error-bg: rgba(198, 40, 40, .15);--lidar-error-border: rgba(198, 40, 40, .5);--lidar-error-text: #f1a9a9;--lidar-danger: #e5546a;--lidar-danger-bg: rgba(220, 53, 69, .15);--lidar-danger-on: #ffffff;--lidar-info-bg: rgba(21, 101, 192, .22);--lidar-info-text: #7fb6f0;--lidar-info-border: rgba(144, 202, 249, .4);--lidar-resize-grip: #5a626f;--lidar-resize-grip-hover: #8b919c;--lidar-chart-bg: #1a1c20;--lidar-chart-grid: #3a3f4a;--lidar-chart-axis: #c3c8d1;--lidar-chart-text: #c3c8d1;--lidar-chart-muted: #8b919c;--lidar-chart-highlight: #ffffff}.lidar-control,.maplibregl-ctrl-group.lidar-control{background:var(--lidar-bg);border-radius:4px;box-shadow:0 0 0 2px var(--lidar-shadow);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}:root{color-scheme:dark;font-family:Figtree,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-feature-settings:"ss01","cv01";-webkit-font-smoothing:antialiased;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--bg-app: #050607;--bg-rail: #101114;--bg-panel: #15171b;--bg-panel-raised: #1c2027;--canvas-bg: #0d1117;--text-primary: #f6f8f8;--text-secondary: #aeb6ba;--text-muted: #747d82;--border-subtle: #282d33;--border-strong: #434a53;--accent: #0097a7;--accent-strong: #19d4d2;--status-ready: #7dcc3d;--status-processing: #f2c44f;--status-failed: #ff6b6b;--status-idle: #8ea0a8;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--radius-sm: 5px;--radius-md: 8px;--shadow-panel: 0 24px 72px rgba(0, 0, 0, .44);--class-created-never-classified: #7A7A7A;--class-unclassified: #ABABAB;--class-ground: #A87C4F;--class-low-vegetation: #A8D96C;--class-medium-vegetation: #5FB53B;--class-high-vegetation: #2E7D32;--class-building: #C0392B;--class-buildings: #C0392B;--class-low-noise: #F06292;--class-model-key-point: #f5cf4f;--class-water: #3D85C6;--class-rail: #8D6E63;--class-road-surface: #565656;--class-overlap: #6aa9ff;--class-wire-guard: #FFD966;--class-wire-conductor: #F0B400;--class-transmission-tower: #8E44AD;--class-wire-structure-connector: #E67E22;--class-poles: #D46213;--class-bridge-deck: #26C6DA;--class-high-noise: #D549C1;--class-ignored-ground: #7A5230;--class-snow: #E8F4F8;--class-temporal-exclusion: #9C7BD4;--class-source-other: #7fd8c6}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 80% -20%,rgba(0,151,167,.12),transparent 34rem),var(--bg-app);color:var(--text-primary);overflow-x:hidden}#root{min-width:0;overflow-x:hidden}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}button,input,select{font:inherit}button{min-height:34px;border:1px solid transparent;border-radius:var(--radius-sm);padding:9px 12px;cursor:pointer;color:var(--text-primary);background:#087d8b;font-weight:800}button:hover:not(:disabled){background:#0bb7c7}button:disabled{cursor:not-allowed;opacity:.48}.btn-spinner{display:inline-block;width:12px;height:12px;flex:none;margin-right:8px;vertical-align:-1px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:btn-spin .7s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.btn-spinner{animation-duration:1.6s}}button.secondary{border-color:var(--border-strong);background:#1c2026;color:var(--text-secondary)}button.danger{border-color:#ff6b6b8c;background:#ff6b6b1f;color:#ff9a9a}button.danger:hover:not(:disabled){border-color:#ff6b6bcc;background:#ff6b6b33;color:#ffd1d1}button.secondary:hover:not(:disabled){border-color:var(--accent);color:var(--text-primary);background:#1b272b}.dataset-row:hover{border-color:var(--accent);color:var(--text-primary);background:#1b272b}button.compact,.compact{min-height:28px;padding:5px 8px;font-size:.82rem}input,select{width:100%;min-height:36px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:9px 10px;background:#0b0d10;color:var(--text-primary);outline:none}input:focus,select:focus,button:focus-visible{border-color:var(--accent);outline:2px solid rgba(25,212,210,.2);outline-offset:2px}h1,h2,h3,p{margin:0}h1{margin-top:2px;font-size:1.45rem;line-height:1.15}h2{margin-top:2px;font-size:1rem;line-height:1.2}h3{margin-top:2px;font-size:.94rem}.auth-entry-screen{min-height:100vh;display:grid;grid-template-columns:minmax(420px,.9fr) minmax(560px,1.1fr);color-scheme:light;font-family:Figtree,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#15181e;background:#fbfaf8}.auth-form-column{min-width:0;display:grid;place-items:center;padding:56px;background:#fbfaf8}.auth-card{width:min(100%,420px)}.auth-brand{display:flex;align-items:center}.auth-brand{gap:12px;margin-bottom:34px}.auth-brand-mark{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--accent-soft-line);background:#fff;border-radius:12px;box-shadow:var(--shadow-1)}.auth-brand-mark img{width:38px;height:38px;object-fit:contain}.auth-wordmark{color:#6b7280;font-size:1.62rem;font-weight:500;letter-spacing:-.03em;line-height:1}.auth-wordmark strong{color:#15181e;font-weight:850}.auth-copy{display:grid;gap:8px;margin-bottom:26px}.auth-copy h1{color:var(--ink, #15181e);font-size:var(--type-display, 2rem);font-weight:850;letter-spacing:-.035em;line-height:var(--leading-tight, 1.05)}.auth-copy p,.auth-footnote,.auth-demo-note{color:#6b7280;font-size:.93rem;line-height:1.55}.auth-link{min-height:0;border:0;border-radius:0;padding:0;color:var(--accent-ink);background:transparent;font-size:.82rem;font-weight:800}.auth-link:hover{color:var(--accent-hover);background:transparent}.auth-submit{min-height:44px;border-radius:var(--radius-control);font-size:.9rem;transition:background .16s var(--ease),border-color .16s var(--ease),color .16s var(--ease),box-shadow .16s var(--ease),transform .12s var(--ease)}.auth-submit{width:100%;border:1px solid var(--accent);color:#fff;background:var(--accent);font-weight:850;box-shadow:0 1px 2px #15181e1a,0 8px 20px -6px #1d4ed87a}.auth-submit:hover:not(:disabled){box-shadow:0 2px 4px #15181e1f,0 12px 26px -8px #1d4ed894}.auth-provider-panel{display:grid;gap:9px;border:1px solid var(--line-soft);border-radius:14px;padding:16px;background:#fff;box-shadow:var(--shadow-1);margin-bottom:14px}.auth-provider-panel p{color:#6b7280;font-size:.84rem;line-height:1.5}.auth-footnote,.auth-demo-note{margin-top:22px;text-align:center}.auth-demo-note{margin-top:14px;color:#9aa1ac;font-size:.72rem}.auth-showcase{position:relative;min-width:0;display:flex;align-items:flex-end;overflow:hidden;padding:58px;color:#fff;background:linear-gradient(155deg,var(--data-glow, rgba(29, 78, 216, .25)),transparent 38%),var(--data-surface, #0c1018);box-shadow:inset 0 0 0 1px var(--data-edge, rgba(255, 255, 255, .08));border-radius:0}.auth-cloud-visual{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:linear-gradient(180deg,#0c101829,#0c1018f5),repeating-linear-gradient(19deg,transparent 0 23px,rgba(255,255,255,.045) 24px 25px),#0c1018}.auth-cloud-grid{position:absolute;top:9%;right:6%;bottom:8%;left:6%;transform:perspective(720px) rotateX(58deg) rotate(-12deg);border:1px solid rgba(110,168,255,.18);background:linear-gradient(90deg,rgba(110,168,255,.08) 1px,transparent 1px),linear-gradient(0deg,rgba(110,168,255,.08) 1px,transparent 1px);background-size:28px 28px}.auth-cloud-point{position:absolute;width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 16px currentColor}.auth-cloud-point.ground{color:var(--class-ground, #7c3030)}.auth-cloud-point.veg{color:var(--class-high-vegetation, #4c8c4c)}.auth-cloud-point.building{color:var(--class-building, #b00707)}.auth-cloud-point.wire{color:var(--class-wire-conductor, #f2b705)}.auth-cloud-point.water{color:var(--class-water, #3b82c4)}.auth-cloud-point.noise{color:var(--class-unclassified, #8c8c8c)}.auth-showcase-copy{position:relative;z-index:1;width:min(520px,100%)}.auth-showcase h2{margin-top:18px;color:#fff;font-size:var(--type-display, 2.2rem);font-weight:850;letter-spacing:var(--track-display, -.04em);line-height:var(--leading-tight, 1.05)}.auth-showcase p{max-width:460px;margin-top:16px;color:#ffffffb8;font-size:.95rem;line-height:1.65}.app-shell{min-width:0;min-height:100vh;display:grid;grid-template-rows:64px minmax(0,1fr);background:var(--bg-app);overflow-x:hidden}.app-shell.workspace-active{grid-template-columns:264px minmax(0,1fr);grid-template-rows:60px minmax(0,1fr);color-scheme:light;color:#15181e;background:#fbfaf8}.app-shell.viewer-active{grid-template-rows:56px minmax(0,1fr);--accent: #1f6feb;--accent-strong: #6ea8ff}.workspace-rail{grid-column:1;grid-row:1 / -1;min-width:0;display:flex;flex-direction:column}.rail-brand{display:flex;align-items:center;gap:10px;min-height:60px;padding:0 18px}.rail-brand-mark{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--accent-soft-line);background:#fff;border-radius:var(--radius-control);box-shadow:var(--shadow-1)}.rail-brand-mark img{width:28px;height:28px;object-fit:contain}.rail-wordmark{color:#6b7280;font-size:1.04rem;font-weight:500;letter-spacing:-.025em}.rail-wordmark strong{color:#15181e;font-weight:850}.rail-nav{flex:1;min-width:0;display:grid;align-content:start;gap:8px;padding:20px 12px}.rail-section-label,.rail-current-project span,.rail-scope-chip span{color:#6b7280;font-size:.68rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.rail-section-label{padding:0 8px}.rail-account-label{margin-top:10px}.rail-nav-item,.rail-signout{width:100%;min-height:38px;border-radius:var(--radius-control)}.rail-nav-item{display:flex;align-items:center;justify-content:space-between;gap:10px;border:0;border-left:0;padding:9px 12px;color:#3d434d;background:transparent;font-size:.9rem;font-weight:750;text-align:left;transition:color .18s var(--ease),background .18s var(--ease),box-shadow .18s var(--ease)}.rail-nav-item.static{cursor:default}.rail-nav-item.static,.rail-nav-item.static:hover{color:#3d434d;background:transparent}.rail-subnav{display:flex;flex-direction:column;gap:1px;margin:2px 0 6px;padding-left:10px}.rail-subnav-item{display:block;width:100%;min-height:0;border:0;border-left:2px solid #e5e2db;border-radius:0;padding:7px 10px 7px 16px;color:#6b7280;background:transparent;font-size:.84rem;font-weight:600;text-align:left;text-decoration:none;transition:color .12s ease,border-color .12s ease}.rail-subnav .rail-subnav-item:hover:not(:disabled){color:#15181e;background:transparent}.rail-subnav .rail-subnav-item.active,.rail-subnav .rail-subnav-item.active:hover:not(:disabled){border-left-color:var(--accent);color:#15181e;background:transparent}.rail-nav-item strong{color:#6b7280;font-family:var(--mono);font-size:.72rem}.rail-current-project{display:grid;gap:5px;margin-top:12px;border:1px solid var(--line-soft);border-radius:12px;padding:11px 12px;background:var(--sunken-soft);box-shadow:var(--shadow-1)}.rail-current-project strong{min-width:0;overflow:hidden;color:#15181e;font-size:.86rem;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.rail-footer{display:grid;gap:10px;padding:12px}.rail-scope-chip{display:flex;justify-content:space-between;gap:10px;border:1px solid var(--accent-soft-line);padding:9px 10px;color:var(--accent-ink);background:var(--accent-soft)}.rail-scope-chip strong{color:var(--accent-ink);font-family:var(--mono);font-size:.75rem;text-transform:uppercase}.rail-user-card{width:100%;min-height:50px;display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:10px;border:0;border-radius:12px;padding:8px;color:#15181e;background:transparent;text-align:left}.rail-avatar{width:32px;height:32px;display:grid;place-items:center;border-radius:999px;color:#fff;background:var(--accent);font-size:.72rem;font-weight:850}.rail-user-card strong,.rail-user-card small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-user-card strong{color:#15181e;font-size:.82rem}.rail-user-card small{color:#6b7280;font-size:.72rem}.topbar{min-width:0;display:grid;grid-template-columns:minmax(250px,360px) minmax(0,1fr);gap:var(--space-5);align-items:center;padding:0 var(--space-6);border-bottom:1px solid var(--border-subtle);background:#111214fa}.workspace-active .topbar{grid-column:2;grid-template-columns:minmax(0,1fr);gap:16px;height:60px;border-bottom-color:#e5e2db;padding:0 34px;color:#15181e;background:#fbfaf8e6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.workspace-active .topbar-context{justify-content:flex-end;gap:24px}.workspace-active .topbar-context .eyebrow{color:#6b7280}.workspace-active .topbar-context strong{color:#15181e}.topbar-workspace-row{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,320px) auto;align-items:center;gap:12px}.topbar-actions{display:flex;align-items:center;gap:10px}.topbar-actions button{min-height:36px;border-radius:9px;padding:0 16px;font-size:.84rem;white-space:nowrap}.workspace-crumbs{min-width:0;display:flex;align-items:center;gap:9px;color:#6b7280;font-size:.86rem}.workspace-crumbs button{min-height:0;border:0;padding:0;color:#6b7280;background:transparent;font-size:inherit;font-weight:600}.workspace-crumbs button:hover{color:#15181e;background:transparent}.workspace-crumbs span{color:#9aa1ac}.workspace-crumbs strong{min-width:0;overflow:hidden;color:#15181e;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.topbar-search{min-width:0}.topbar-search input{width:100%;height:36px;border:1px solid #d7d3ca;padding:0 12px;color:#15181e;background:#fff}.workspace-active .topbar-signout{min-height:36px}.viewer-active .topbar{grid-template-columns:minmax(0,1fr);gap:0;padding:0;border-bottom-color:#1e2733;background:#11161f}.viewer-bar{min-width:0;display:flex;align-items:center;gap:14px;height:100%;padding:0 18px;color:#e6e9ef}.viewer-bar-back{display:inline-flex;align-items:center;gap:8px;min-height:34px;border:1px solid #283341;border-radius:0;padding:0 13px;color:#cfd5df;background:#161c26;font-size:.8rem;font-weight:800}.viewer-bar-back:hover{border-color:#3a4757;color:#fff;background:#161c26}.viewer-bar-file{min-width:0;display:flex;align-items:center;gap:10px}.viewer-bar-fmt{border:1px solid rgba(31,111,235,.4);padding:3px 8px;color:#6ea8ff;background:#1f6feb26;font-size:.62rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.viewer-bar-name{min-width:0;overflow:hidden;color:#cfd5df;font-family:var(--mono);font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.viewer-bar-right{margin-left:auto;display:flex;align-items:center;gap:10px}.viewer-bar-version{color:#7a8595;font-family:var(--mono);font-size:.74rem;white-space:nowrap}.viewer-active .viewer-bar-right .status-pill{border-color:#283341;border-radius:0;color:#cfd5df;background:#161c26}.viewer-active .viewer-bar-right button.secondary{min-height:34px;border-color:#283341;border-radius:0;color:#cfd5df;background:#161c26}.viewer-active .viewer-bar-right button.secondary:hover:not(:disabled){border-color:#3a4757;color:#fff;background:#161c26}.viewer-active .brand-mark{width:32px;height:32px}.notification-stack{position:fixed;top:76px;right:var(--space-5);display:grid;width:min(420px,calc(100vw - 32px));gap:var(--space-2)}.app-notification{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:var(--space-3);background:#081218;box-shadow:var(--shadow-panel)}.app-notification.success{border-color:#45d3917a}.app-notification.error{border-color:#ff6b6b80}.app-notification span{min-width:0;overflow-wrap:anywhere}.brand-block,.topbar-context,.panel-heading,.asset-title-row,.stage-header,.stage-chips,.button-row,.class-label,.viewer-topline,.project-header,.modal-heading,.modal-footer{display:flex;align-items:center}.brand-block{gap:var(--space-3);min-width:0}.brand-button{min-height:0;border:0;padding:0;text-align:left;background:transparent}.brand-button:hover{background:transparent}.brand-mark{width:36px;height:36px;display:grid;place-items:center;border:1px solid rgba(29,78,216,.42);border-radius:var(--radius-sm);background:#fff;overflow:hidden}.brand-mark img{width:30px;height:30px;display:block;object-fit:contain}.topbar-context{justify-content:flex-end;gap:var(--space-6);min-width:0}.topbar-context>div{min-width:0}.topbar-context strong,.brand-block strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-screen,.project-screen,.viewer-screen{min-width:0;min-height:0;padding:var(--space-4)}.workspace-active>.dashboard-screen,.workspace-active>.project-screen,.workspace-active>.settings-screen{grid-column:2;width:min(1320px,100%);margin:0 auto;padding:30px 34px 60px}.workspace-active .project-screen .project-workspace>.dataset-panel{min-height:200px}.viewer-screen{display:grid;grid-template-rows:auto minmax(0,1fr);gap:0;padding:0}.viewer-screen>.viewer-loading-panel,.viewer-screen>.error-panel{margin:var(--space-4)}.dashboard-screen,.settings-screen{display:grid;gap:var(--space-5);align-content:start}.workspace-active .dashboard-screen,.workspace-active .project-screen,.workspace-active .settings-screen{color:#15181e}.workspace-toolbar,.project-header,.viewer-topline{min-width:0;display:flex;justify-content:space-between;gap:var(--space-4);align-items:center;border-bottom:1px solid var(--border-subtle);padding-bottom:var(--space-5)}.workspace-active .workspace-toolbar h1,.workspace-active .project-header h1{color:#15181e;font-weight:850;font-size:var(--type-title);letter-spacing:var(--track-title);line-height:var(--leading-tight)}.toolbar-subtitle{margin:5px 0 0;color:#6b7280;font-size:.9rem}.workspace-active .workspace-toolbar .eyebrow,.workspace-active .project-header .eyebrow,.workspace-active .panel-heading .eyebrow{color:#6b7280}.viewer-screen .viewer-topline{min-height:48px;padding:0 var(--space-4);background:#070809fa}.workspace-toolbar{min-height:72px}.toolbar-create{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2)}.settings-field span{color:#6b7280;font-size:.68rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.settings-content{min-width:0;display:grid;gap:24px}.settings-page-head{display:grid;gap:2px}.workspace-active .settings-page-head h1{color:#15181e;font-weight:850;font-size:var(--type-title);letter-spacing:var(--track-title);line-height:var(--leading-tight)}.settings-page-head .toolbar-subtitle{margin:3px 0 0}.settings-body{display:grid;gap:10px;padding:18px}.settings-note{margin:0;padding:0 18px 16px;color:#6b7280;font-size:.82rem;line-height:1.45}.member-row.pending{border-style:dashed}.settings-invite-row{justify-content:stretch}.settings-invite-row input[type=email]{flex:1;min-width:0}.workspace-active .settings-invite-row input{width:auto;height:34px;min-height:34px;border-color:var(--line-soft-2);border-radius:var(--radius-control);color:#15181e;background:#fff}.workspace-active .settings-invite-row input:focus{border-color:var(--accent);outline:none;box-shadow:var(--shadow-focus)}.settings-section{min-width:0;border:1px solid var(--line-soft);background:#fff;border-radius:var(--radius-card);overflow:hidden;box-shadow:var(--shadow-2)}.settings-section-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;border-bottom:1px solid var(--line-soft);padding:16px 18px}.settings-section-heading h2{margin-top:2px;color:#15181e;font-size:1rem;font-weight:800}.settings-profile-row{display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--line-soft);padding:18px}.settings-avatar{width:56px;height:56px;display:grid;place-items:center;flex:none;color:#fff;background:var(--accent);font-size:1.05rem;font-weight:850;border-radius:14px;box-shadow:0 3px 10px -2px #1d4ed86b}.settings-profile-row strong{color:#15181e;font-size:.96rem}.settings-profile-row p,.settings-empty p,.settings-disabled-row p{margin-top:3px;color:#6b7280;font-size:.82rem;line-height:1.45}.settings-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:18px}.settings-field{min-width:0;display:grid;gap:6px}.workspace-active .settings-field input,.workspace-active .settings-field select{height:38px;border-color:var(--line-soft-2);border-radius:var(--radius-control);color:#15181e;background:#fff}.settings-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line-soft);padding:14px 18px;background:var(--sunken-soft)}.settings-disabled-list{display:grid;padding:6px 18px}.settings-disabled-row{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line-soft);padding:15px 0}.settings-disabled-row:last-child{border-bottom:0}.settings-disabled-row strong,.settings-empty strong{color:#15181e;font-size:.9rem}.settings-empty{display:grid;justify-items:start;gap:8px;padding:18px;background:#f4f2ee}.project-filter-bar label{min-width:0;display:grid;gap:5px}.project-filter-bar label span{color:#6b7280;font-size:.68rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase}.project-filter-result{align-self:center;color:#6b7280;font-family:var(--mono);font-size:.76rem;font-weight:750;white-space:nowrap}.workspace-active input,.workspace-active select{border-color:#d7d3ca;color:#15181e;background:#fff}.workspace-active input:focus,.workspace-active select:focus,.workspace-active button:focus-visible{border-color:var(--accent);outline:2px solid var(--focus-ring)}.workspace-active button:not(.secondary):not(.danger):not(.brand-button):not(.rail-nav-item):not(.rail-subnav-item):not(.select-menu-option):not(.rail-user-card):not(.auth-link):not(.auth-password-toggle):not(.project-card-body):not(.open-action):not(.project-action-btn):not(.command-palette-item):not(.upload-float-icon-btn):not(.project-card--new){border:1px solid var(--accent);color:#fff;background:var(--accent);font-weight:850}.workspace-active button:not(.secondary):not(.danger):not(.brand-button):not(.rail-nav-item):not(.rail-subnav-item):not(.select-menu-option):not(.rail-user-card):not(.auth-link):not(.auth-password-toggle):not(.project-card-body):not(.open-action):not(.project-action-btn):not(.command-palette-item):not(.upload-float-icon-btn):not(.project-card--new):hover:not(:disabled){border-color:var(--accent-strong);background:var(--accent-strong)}.workspace-active .workspace-crumbs button,.workspace-active .workspace-crumbs button:hover:not(:disabled){border:0!important;color:#6b7280!important;background:transparent!important}.workspace-active .workspace-crumbs button:hover:not(:disabled){color:#15181e!important}.workspace-active button.secondary{border-color:#d7d3ca;color:#15181e;background:#fff}.workspace-active button.secondary:hover:not(:disabled){border-color:#6b7280;color:#15181e;background:#fff}.workspace-active button.danger{border-color:#eccac4;color:#c0392b;background:#fff}.workspace-active button.danger:hover:not(:disabled){border-color:#c0392b;background:#fbe9e7}.project-header p{max-width:680px;margin-top:var(--space-2)}.project-workspace{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--space-4);margin-top:var(--space-4)}.workspace-active .project-workspace{grid-template-columns:minmax(0,1fr);margin-top:18px}.project-header-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.workspace-active .project-action-btn{min-height:34px;border:1px solid #e5e2db;border-radius:0;padding:0 14px;color:#3d434d;background:#fff;font-size:.82rem;font-weight:750;transition:border-color .12s ease,color .12s ease,background .12s ease}.workspace-active .project-action-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent-ink);background:#fff}.workspace-active .project-action-btn.danger{border-color:#e5e2db;color:#3d434d;background:#fff}.workspace-active .project-action-btn.danger:hover:not(:disabled){border-color:#c0392b;color:#c0392b;background:#fbe9e7}.project-meta-strip .ms{min-width:0;display:flex;flex-direction:column;gap:4px}.project-meta-strip .msk{color:#9aa1ac;font-size:.64rem;font-weight:850;letter-spacing:.11em;text-transform:uppercase}.project-meta-strip .msv{min-width:0;overflow:hidden;color:#15181e;font-size:.9rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.workspace-active .project-edit-panel{margin-top:18px}.project-side-panel{display:grid;align-content:start;gap:var(--space-4)}.panel,.viewer-stage{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-panel)}.workspace-active .panel{border-color:#e5e2db;border-radius:0;color:#15181e;background:#fff;box-shadow:0 1px 2px #15181e0d}.workspace-active .project-list-panel{padding:0}.workspace-active .project-list-panel>.panel-heading{margin-bottom:0;padding:16px 18px}.workspace-active .project-list-panel>.project-list,.workspace-active .project-list-panel>.empty-state,.workspace-active .project-list-panel>.loading-state,.workspace-active .project-list-panel>.error-panel{margin:18px}.panel{padding:var(--space-4)}.project-properties-panel,.property-list,.property-edit-form{display:grid;gap:var(--space-3)}.property-list div{min-width:0;display:grid;gap:3px;border-bottom:1px solid var(--border-subtle);padding-bottom:var(--space-2)}.property-list div:last-child{border-bottom:0;padding-bottom:0}.property-list span{color:var(--text-muted);font-size:.72rem;font-weight:800;text-transform:uppercase}.property-list strong{min-width:0;overflow-wrap:anywhere;color:var(--text-primary);font-size:.88rem;line-height:1.35}.compact-error{padding:var(--space-3);font-size:.82rem}.danger-zone{display:flex;justify-content:space-between;gap:var(--space-3);align-items:center;border-top:1px solid rgba(255,107,107,.22);padding-top:var(--space-3);color:var(--text-secondary)}.danger-zone span{color:#ff9a9a;font-size:.78rem;font-weight:800;text-transform:uppercase}.panel-heading{justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.eyebrow{display:block;margin-bottom:2px;color:var(--text-muted);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.subtle,.muted,.status-copy,.validation-message,.bounds-copy,.class-label small,.project-card small,.job-card small{color:var(--text-secondary);font-size:.86rem;line-height:1.45}.field{display:grid;gap:6px;margin-top:var(--space-3)}.field label,.opacity-control label{color:var(--text-secondary);font-size:.78rem;font-weight:700}.primary-action{width:100%;margin-top:var(--space-4)}.count-chip,.status-pill,.stage-chips span,.job-strip span{display:inline-flex;align-items:center;min-height:24px;border:1px solid var(--border-strong);border-radius:999px;padding:3px 9px;color:var(--text-secondary);background:#0b0d10;font-size:.76rem;font-weight:700;white-space:nowrap}.workspace-active .status-pill,.workspace-active .job-strip span{border-color:var(--line-strong);border-radius:var(--radius-pill);color:var(--ink-2);background:var(--sunken-soft)}.status-ready{border-color:#3ddc9773;color:var(--status-ready);background:#3ddc9714}.workspace-active .status-ready{border-color:var(--status-ready-line);color:var(--status-ready-ink);background:var(--status-ready-fill)}.status-validating,.status-uploading,.status-uploaded,.status-mock-classifying,.status-publishing,.status-created{border-color:#f6c15a73;color:var(--status-processing);background:#f6c15a14}.workspace-active .status-validating,.workspace-active .status-uploading,.workspace-active .status-uploaded,.workspace-active .status-mock-classifying,.workspace-active .status-publishing,.workspace-active .status-created{border-color:var(--status-processing-line);color:var(--status-processing-ink);background:var(--status-processing-fill)}.status-failed,.status-validation-failed{border-color:#ff6b6b80;color:var(--status-failed);background:#ff6b6b14}.workspace-active .status-failed,.workspace-active .status-validation-failed{border-color:var(--status-failed-line);color:var(--status-failed-ink);background:var(--status-failed-fill)}.status-idle{color:var(--status-idle)}.project-list,.job-list{display:grid;gap:var(--space-3)}.project-card,.job-card{width:100%;display:grid;gap:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:var(--space-3);color:inherit;background:#0b0d10;text-align:left}.workspace-active .project-card{display:flex;flex-direction:column;min-height:0;gap:0;padding:0;border-color:var(--line-soft);border-radius:var(--radius-card);color:#15181e;background:var(--surface-tint);box-shadow:var(--shadow-1);overflow:hidden;transition:transform .18s var(--ease),box-shadow .18s var(--ease),border-color .18s var(--ease);will-change:transform}.project-card-thumb{position:relative;height:120px;overflow:hidden;border-bottom:1px solid #e5e2db;background:var(--data-surface, #10141c);box-shadow:inset 0 0 0 1px var(--data-edge, rgba(255, 255, 255, .08))}.thumb-canvas{display:block;width:100%;height:100%}.project-card-chip{position:absolute;top:10px;left:10px;border:1px solid rgba(255,255,255,.18);padding:3px 8px;color:#ffffffeb;background:#10141cbd;font-size:.62rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.project-card-id{position:absolute;right:10px;bottom:8px;color:#ffffffd1;font-family:var(--mono);font-size:.66rem;letter-spacing:.02em}.project-card-body{flex:1;min-height:0;display:grid;align-content:start;gap:7px;border:0;border-radius:0;padding:18px 20px;color:#15181e;background:transparent;text-align:left;cursor:pointer}.workspace-active .project-card-body strong{display:block;min-width:0;overflow:hidden;color:#15181e;font-size:1rem;font-weight:800;letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap}.project-card-sub{min-width:0;overflow:hidden;color:#6b7280;font-family:var(--mono);font-size:.74rem;text-overflow:ellipsis;white-space:nowrap}.workspace-active .project-card-body small{display:-webkit-box;overflow:hidden;margin-top:3px;color:#6b7280;font-size:.8rem;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.asset-title-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-card-foot{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line-soft);padding:14px 20px;background:var(--sunken-soft)}.project-card-role{flex:1;min-width:0;overflow:hidden;color:#6b7280;font-family:var(--mono);font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.project-empty-state,.empty-state{display:grid;gap:var(--space-3);place-items:start;border:1px dashed var(--border-strong);border-radius:var(--radius-md);padding:var(--space-5);background:#071015}.loading-state,.viewer-loading-panel,.error-panel,.success-panel{display:grid;gap:var(--space-2);border-radius:var(--radius-md);padding:var(--space-4)}.loading-state,.viewer-loading-panel{border:1px solid var(--border-subtle);color:var(--text-secondary);background:#071015}.workspace-active .loading-state{border-color:var(--line-soft-2);border-radius:var(--radius-card);color:#6b7280;background:#fff}.error-panel{border:1px solid rgba(255,107,107,.45);color:var(--text-secondary);background:#ff6b6b14}.workspace-active .error-panel{border-color:#eccac4;border-radius:0;color:#3d434d;background:#fbe9e7}.success-panel{border:1px solid rgba(61,220,151,.45);color:var(--status-ready);background:#3ddc9714}.workspace-active .success-panel{border-color:#bfe2cd;border-radius:0;color:#1c8a4e;background:#e6f4ec}.error-panel strong{color:var(--status-failed)}.error-panel p{overflow-wrap:anywhere}.viewer-loading-panel{margin:0 var(--space-5) var(--space-4)}.dataset-filter-bar{display:grid;grid-template-columns:minmax(260px,1fr) 160px 148px 188px auto;gap:var(--space-3);align-items:end;margin-bottom:var(--space-4);padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:#090f13}.dataset-filter-control{display:grid;gap:5px;min-width:0}.dataset-filter-control span,.dataset-filter-summary span{color:var(--text-muted);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.workspace-active .dataset-filter-control span,.workspace-active .dataset-filter-summary span,.workspace-active .cell-label,.workspace-active .dataset-name-cell span,.workspace-active .dataset-cell small{color:#6b7280}.dataset-filter-control input,.dataset-filter-control select{min-width:0;width:100%;min-height:34px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:7px 10px;color:var(--text-primary);background:#070a0d}.workspace-active .dataset-filter-control input,.workspace-active .dataset-filter-control select{border-color:#d7d3ca;border-radius:0;color:#15181e;background:#fff}.dataset-filter-control input:focus,.dataset-filter-control select:focus{border-color:#19d4d2a6;outline:2px solid rgba(25,212,210,.18)}.workspace-active .dataset-filter-control input:focus,.workspace-active .dataset-filter-control select:focus{border-color:var(--accent);outline:2px solid var(--focus-ring)}.dataset-filter-summary{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);min-width:190px}.dataset-table{display:grid;border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow-x:auto;background:#071015}.dataset-head,.dataset-row{display:grid;grid-template-columns:minmax(220px,1.3fr) 76px 112px 92px minmax(184px,1fr) 168px;gap:var(--space-3);align-items:center;min-width:840px}.dataset-head{min-height:38px;padding:0 var(--space-3);border-bottom:1px solid var(--border-subtle);color:var(--text-muted);background:#101216;font-size:.72rem;font-weight:800;text-transform:uppercase}.dataset-row{min-height:74px;padding:var(--space-3);border-bottom:1px solid var(--border-subtle);color:inherit;background:#0b0d10;text-align:left}.dataset-row:last-child{border-bottom:0}.dataset-cell,.dataset-name-cell,.dataset-action{min-width:0}.dataset-cell{display:grid;gap:3px}.dataset-job-status{display:grid;gap:5px}.dataset-job-status.ready-compact{display:inline-flex;align-items:center;gap:8px}.dataset-job-status.ready-compact .status-pill{min-width:86px;justify-content:center}.dataset-job-status.ready-compact small{color:#6b7280;font-family:var(--mono);font-size:.72rem}.dataset-job-status .job-timeline{margin-top:4px;padding-top:6px;border-top:1px solid var(--border-subtle)}.dataset-job-status .job-timeline-summary{display:none}.dataset-job-status .job-step-list{max-height:92px;overflow:hidden}.dataset-job-status .job-step-item{font-size:.7rem}.dataset-cell strong,.dataset-name-cell strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-active .dataset-cell strong,.workspace-active .dataset-name-cell strong,.workspace-active .job-step-item strong{color:#15181e}.dataset-name-cell span,.dataset-cell small,.cell-label{color:var(--text-muted);font-size:.74rem}.cell-label{display:none;font-weight:800;text-transform:uppercase}.job-progress-inline{height:5px;overflow:hidden;border-radius:999px;background:#242a2c}.workspace-active .job-progress-inline{background:#e5e2db}.job-progress-inline span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--status-ready))}.workspace-active .job-progress-inline span{background:var(--accent)}.job-timeline{display:grid;gap:var(--space-2)}.job-timeline-summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);color:var(--text-secondary);font-size:.78rem}.workspace-active .job-timeline-summary,.workspace-active .job-step-item{color:#6b7280}.job-step-list{display:grid;gap:var(--space-1)}.job-step-item{display:grid;grid-template-columns:14px minmax(0,1fr);gap:var(--space-2);align-items:start;color:var(--text-muted);font-size:.74rem}.job-step-item span:last-child{display:grid;min-width:0;gap:2px}.job-step-item strong,.job-step-item small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-step-item.complete .step-dot{border-color:var(--status-ready);background:var(--status-ready)}.job-step-item.current .step-dot{border-color:var(--status-processing);background:var(--status-processing)}.job-step-item.failed .step-dot{border-color:var(--status-failed);background:var(--status-failed)}.dataset-action{display:flex;align-items:center;gap:var(--space-2);justify-content:flex-end;flex-wrap:wrap}.dataset-actions-menu{position:relative}.dataset-actions-menu summary{display:inline-flex;align-items:center;min-height:30px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:5px 9px;color:var(--text-primary);background:#171a1f;font-size:.78rem;font-weight:800;cursor:pointer;list-style:none}.dataset-actions-menu summary::-webkit-details-marker{display:none}.dataset-actions-popover button{width:100%;justify-content:flex-start;border-radius:8px}.select-menu{position:relative;display:inline-block}.select-menu--block{display:block}.select-menu--block summary{width:100%}.select-menu summary{display:inline-flex;align-items:center;justify-content:space-between;gap:10px;min-height:34px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:6px 10px 6px 12px;color:var(--text-primary);background:#171a1f;font-size:.84rem;font-weight:700;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.select-menu summary::-webkit-details-marker{display:none}.select-menu[data-disabled=true] summary{cursor:not-allowed;opacity:.48}.select-menu-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-menu-caret{display:inline-flex;flex:none;color:#6b7280}.select-menu-popover{position:fixed;z-index:90;display:grid;gap:2px;padding:6px;border:1px solid var(--border-subtle);border-radius:10px;background:#14171c;box-shadow:var(--shadow-panel)}.select-menu-option{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:30px;border:0;border-radius:8px;padding:6px 10px;color:var(--text-primary);background:transparent;font-size:.84rem;font-weight:600;text-align:left}.select-menu-check{display:inline-flex;flex:none;color:var(--accent)}.details-loading-panel,.asset-details-drawer{margin-top:var(--space-4)}.details-loading-panel{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4);color:var(--text-muted);background:#081218}.workspace-active .details-loading-panel,.workspace-active .asset-details-drawer{border-color:#e5e2db;border-radius:0;color:#15181e;background:#fff}.asset-details-drawer{display:grid;gap:var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:var(--space-4);background:#081218;box-shadow:inset 3px 0 #49d3c2b3}.workspace-active .asset-details-drawer{box-shadow:inset 3px 0 0 var(--accent)}.drawer-heading,.drawer-summary,.drawer-footer,.artifact-state-row{display:flex;align-items:center;gap:var(--space-3)}.drawer-heading{justify-content:space-between}.drawer-heading h2{margin-top:2px}.drawer-summary{flex-wrap:wrap;color:var(--text-muted);font-size:.78rem}.drawer-section{display:grid;gap:var(--space-3);border-top:1px solid var(--border-subtle);padding-top:var(--space-3)}.artifact-state-row{justify-content:space-between;min-width:0;gap:var(--space-4)}.artifact-state-row span:first-child{display:grid;min-width:0;gap:3px}.artifact-state-row small{overflow-wrap:anywhere;color:var(--text-muted)}.job-detail-block{display:grid;gap:var(--space-3)}.drawer-footer{justify-content:flex-end}.asset-title-row{justify-content:space-between;gap:var(--space-2)}.job-strip{display:flex;flex-wrap:wrap;gap:var(--space-1)}.open-action{display:inline-flex;align-items:center;justify-content:center;align-self:start;min-height:30px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:5px 9px;color:var(--accent-strong);background:#0b0d10;font-size:.78rem;font-weight:800}.workspace-active .open-action{border-color:var(--accent);border-radius:var(--radius-control);color:var(--accent-ink);background:#fff;box-shadow:var(--shadow-1);transition:background .16s var(--ease),border-color .16s var(--ease),color .16s var(--ease),box-shadow .16s var(--ease),transform .12s var(--ease)}.workspace-active .open-action:hover:not(:disabled){color:#fff;background:var(--accent);box-shadow:0 4px 12px -4px #1d4ed873;transform:translateY(-1px)}.job-card progress{width:100%;height:7px;overflow:hidden;border:0;border-radius:999px;background:#071015}.job-card progress::-webkit-progress-bar{background:#071015}.job-card progress::-webkit-progress-value{background:var(--status-processing)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:var(--space-5);background:#000000bd}.upload-modal{width:min(1040px,100%);display:grid;gap:var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:var(--space-5);background:#15171b;box-shadow:var(--shadow-panel)}.create-modal{width:min(460px,100%);display:grid;gap:var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:var(--space-5);background:var(--bg-panel);box-shadow:var(--shadow-panel)}.delete-modal{width:min(540px,100%);display:grid;gap:var(--space-4);border:1px solid rgba(255,107,107,.38);border-radius:var(--radius-sm);padding:var(--space-5);background:var(--bg-panel);box-shadow:var(--shadow-panel)}.modal-heading,.modal-footer{justify-content:space-between;gap:var(--space-4)}.modal-footer{align-items:end}.members-modal{width:min(640px,100%);border-color:var(--line-soft)}.members-list{display:grid;gap:var(--space-2)}.member-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--line-soft);border-radius:var(--radius-sm)}.member-identity{flex:1;min-width:0;display:grid;gap:2px}.member-identity strong,.member-identity .muted{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-row .select-menu{flex:none}.member-add-row{display:flex;align-items:center;gap:var(--space-2)}.member-add-row .select-menu--block{flex:1;min-width:0}.drop-zone{display:grid;gap:var(--space-2);place-items:center;min-height:210px;border:1px dashed var(--border-strong);border-radius:var(--radius-sm);padding:var(--space-6);background:#0b0d10;text-align:center;cursor:pointer}.workspace-active .drop-zone{border-color:#d7d3ca;border-radius:0;color:#15181e;background:#f4f2ee}.drop-zone.has-file{border-color:var(--accent);background:#0097a71a}.workspace-active .drop-zone.has-file{border-color:var(--accent);background:var(--accent-soft)}.drop-zone input{width:1px;height:1px;position:absolute;opacity:0;pointer-events:none}.drop-zone-title{font-size:1.12rem;font-weight:800}.workspace-active .upload-progress-cell span{color:#6b7280}.upload-progress-cell span{color:var(--text-muted);font-size:.74rem}.upload-progress-cell{display:grid;gap:var(--space-1)}.viewer-screen{min-width:0;display:flex;flex-direction:column;gap:0;padding:0;overflow:hidden;background:var(--canvas-bg)}.viewer-screen>.review-workbench{flex:1;min-height:0}.review-workbench{min-width:0;min-height:0;height:100%;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:0;padding:0}.viewer-commandbar{grid-column:1 / -1;min-width:0;display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;border-bottom:1px solid var(--border-subtle);padding:var(--space-2) var(--space-3);background:#03070af5}.viewer-commandbar-title{flex:1 1 260px;min-width:0;display:grid;gap:2px}.viewer-commandbar-title strong,.viewer-commandbar-title span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-commandbar-title span:last-child,.source-chip{color:var(--text-secondary);font-size:.78rem}.display-mode-tabs,.camera-tabs,.viewer-command-actions{min-width:0;display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;justify-content:flex-end}.display-mode-tabs{flex:0 1 auto}.viewer-command-actions{flex:1 1 500px}.mode-tab,.camera-tab{min-height:30px;border-color:var(--border-strong);padding:5px 9px;background:#101d23;color:var(--text-secondary);font-size:.8rem;text-transform:capitalize}.mode-tab.active{border-color:#49d4b79e;background:#25b89a24;color:var(--accent-strong)}.camera-tabs{border-left:1px solid var(--border-subtle);padding-left:var(--space-2)}.source-chip{min-height:28px;display:inline-flex;align-items:center;border:1px solid var(--border-strong);border-radius:999px;padding:3px 9px;background:#0b151a;white-space:nowrap}.viewer-stage{position:relative;min-width:0;min-height:calc(100vh - 56px);display:grid;grid-template-rows:minmax(0,1fr);overflow:hidden;border-right:0;border-bottom:0;border-left:0;border-radius:0;background:var(--canvas-bg);box-shadow:var(--shadow-panel)}.viewer-stage.is-editing{box-shadow:var(--shadow-panel),inset 0 0 0 2px #19d4d299}.viewer-edit-mode-cue{position:absolute;z-index:4;left:12px;bottom:12px;display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border-radius:999px;border:1px solid rgba(25,212,210,.5);background:#0097a73d;color:#eafcfb;font-size:.7rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;box-shadow:0 10px 26px #0000006b;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);pointer-events:none}.viewer-edit-mode-dot{width:8px;height:8px;border-radius:50%;background:#19d4d2;box-shadow:0 0 8px #19d4d2e6}@media(prefers-reduced-motion:no-preference){.viewer-edit-mode-dot{animation:viewer-edit-pulse 1.6s ease-in-out infinite}}@keyframes viewer-edit-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.68)}}.stage-header{position:absolute;z-index:2;top:var(--space-3);left:var(--space-3);right:var(--space-3);justify-content:space-between;gap:var(--space-4);border:1px solid rgba(54,81,91,.72);border-radius:var(--radius-md);padding:var(--space-3);background:#05080bc7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.viewer-problem-overlay{position:absolute;z-index:4;right:var(--space-3);bottom:var(--space-3);max-width:min(560px,calc(100% - 32px));border:1px solid rgba(255,107,107,.58);border-radius:var(--radius-md);padding:8px 10px;color:#ffb8b8;background:#230a0cdb;box-shadow:var(--shadow-panel)}.stage-chips{justify-content:flex-end;flex-wrap:wrap;gap:var(--space-2)}.stage-chips .viewer-problem-chip{max-width:min(520px,100%);border-color:#ff6b6b94;color:#ffb8b8;background:var(--canvas-bg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-canvas{position:relative;grid-row:1;min-height:0;overflow:hidden;background:var(--canvas-bg)}.viewer-pane{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:var(--canvas-bg)}.viewer-canvas--split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3px}.viewer-canvas--split-3{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1fr)}.viewer-canvas--split-3 .viewer-pane--main{grid-row:1 / span 2}.viewer-canvas--split .viewer-pane{position:relative;inset:auto;min-width:0;min-height:0}.viewer-canvas--split .viewer-pane--split{border-left:1px solid rgba(0,151,167,.55)}.viewer-canvas--split .viewer-pane--cut{border-top:1px solid rgba(0,151,167,.55)}.viewer-canvas--split .viewer-pane.is-active-pane{box-shadow:inset 0 0 0 1.5px #19d4d28c}.viewer-split-chip{position:absolute;z-index:3;bottom:10px;left:10px;display:inline-flex;align-items:center;gap:8px;padding:4px 6px 4px 12px;border:1px solid rgba(0,151,167,.4);border-radius:999px;background:#0b1015e6;color:var(--text-secondary);font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.viewer-split-chip.is-active{border-color:#19d4d2c7;color:var(--text-primary);box-shadow:0 0 0 1px #19d4d229}.viewer-split-chip button{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:1px solid transparent;border-radius:50%;background:transparent;color:var(--text-secondary);cursor:pointer}.viewer-split-chip button:hover{border-color:#788c9a80;background:#ffffff12;color:var(--text-primary)}.copc-viewport,.opengeo-lidar-viewport,.point-preview{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:stretch;background:var(--canvas-bg)}.copc-viewport,.opengeo-lidar-viewport{padding:0}.copc-webgl-stage,.opengeo-lidar-map{min-width:0;min-height:0}.opengeo-lidar-map{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--canvas-bg)}.copc-webgl-stage canvas,.opengeo-lidar-map canvas{display:block;width:100%;height:100%;background:var(--canvas-bg)}.opengeo-lidar-map .maplibregl-canvas{display:block;outline:none}.opengeo-lidar-map .maplibregl-ctrl-top-left{pointer-events:none}.viewer-control-panel{position:absolute;z-index:3;top:16px;left:16px;width:min(332px,calc(100% - 32px));max-height:calc(100% - 32px);overflow:auto;display:grid;gap:0;border:1px solid rgba(0,151,167,.32);border-radius:0;background:#0c1116e6;color:var(--text-primary);box-shadow:0 22px 56px #00000085;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.viewer-control-section{padding:12px;border-bottom:1px solid rgba(92,108,120,.24)}.viewer-control-section:last-child{border-bottom:0}.viewer-control-heading,.viewer-slider-label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px;color:var(--text-muted);font-size:.68rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.viewer-panel-toggle-button,.viewer-show-controls-button{border:1px solid rgba(96,116,129,.54);border-radius:0;background:#12191fe6;color:var(--text-secondary);font-size:.7rem;font-weight:900}.viewer-panel-toggle-button{min-height:24px;padding:3px 8px;letter-spacing:0;text-transform:none}.viewer-show-controls-button{position:absolute;z-index:3;top:16px;left:16px;min-height:34px;padding:7px 12px;box-shadow:0 18px 42px #00000070}.viewer-panel-toggle-button:hover:not(:disabled),.viewer-show-controls-button:hover:not(:disabled){border-color:#19d4d2a8;color:var(--text-primary)}.viewer-slider-label output{color:var(--accent-strong);font-family:var(--mono);font-size:.72rem;letter-spacing:0}.viewer-mode-tabs,.viewer-camera-actions,.viewer-class-actions,.viewer-class-preset-actions{display:flex;flex-wrap:wrap;gap:6px}.viewer-mode-button,.viewer-camera-button,.viewer-link-button,.viewer-class-preset,.viewer-refresh-button,.viewer-class-toggle{border:1px solid rgba(96,116,129,.52);border-radius:0;background:#12191feb;color:var(--text-secondary)}.viewer-mode-button,.viewer-camera-button{min-height:30px;padding:6px 9px;font-size:.78rem}.viewer-mode-button.active,.viewer-class-toggle.visible{border-color:#19d4d2a8;background:#0097a72e;color:var(--text-primary)}.viewer-camera-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.viewer-point-size-slider{accent-color:var(--accent);min-height:22px;padding:0;border:0;background:transparent}.viewer-class-actions{margin-bottom:8px}.viewer-link-button{min-height:26px;padding:4px 8px;color:var(--accent-strong);font-size:.72rem}.viewer-class-preset-actions{margin-bottom:8px}.viewer-class-preset{min-height:28px;padding:5px 8px;color:var(--text-secondary);font-size:.72rem}.viewer-class-preset.active{border-color:#19d4d2a8;background:#0097a72e;color:var(--text-primary)}.viewer-class-list{display:grid;gap:6px;max-height:232px;overflow:auto;padding-right:2px}.viewer-class-toggle{width:100%;min-height:30px;display:grid;grid-template-columns:12px minmax(0,1fr);align-items:center;gap:8px;padding:6px 8px;text-align:left;font-size:.76rem;font-weight:800}.viewer-class-toggle:not(.visible){opacity:.52}.viewer-class-swatch{width:12px;height:12px;border:1px solid rgba(255,255,255,.18);border-radius:0}.viewer-class-toggle span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-refresh-button{width:100%;min-height:30px;padding:6px 10px;color:var(--text-primary);font-size:.78rem}.point-preview canvas{width:100%;height:100%;border:1px solid rgba(54,81,91,.72);border-radius:var(--radius-md);background:var(--canvas-bg)}.copc-viewer-status,.preview-state{position:absolute;right:var(--space-4);bottom:var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:7px 10px;color:var(--text-secondary);background:#05080bd1}.viewer-empty-state{position:absolute;inset:var(--space-5);display:grid;place-content:center;place-items:center;gap:var(--space-2);color:var(--text-secondary);text-align:center}.button-row{justify-content:flex-end;flex-wrap:wrap;gap:var(--space-2)}.metadata-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);margin-top:var(--space-3)}.metadata-grid div{min-width:0;border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:var(--space-3);background:var(--surface-tint)}.metadata-grid span{display:block;margin-bottom:3px;color:var(--text-muted);font-size:.72rem}.metadata-grid strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bounds-copy{margin-top:var(--space-3);overflow-wrap:anywhere}.step-dot{width:12px;height:12px;border:2px solid var(--border-strong);border-radius:999px;background:var(--bg-panel)}.error-text{color:var(--status-failed)}@media(max-width:1240px){.project-workspace,.review-workbench{grid-template-columns:1fr}.review-workbench{grid-template-rows:minmax(0,1fr)}.viewer-commandbar{grid-column:auto;grid-row:auto}.viewer-commandbar{order:0;grid-template-columns:1fr}.display-mode-tabs,.camera-tabs,.viewer-command-actions{justify-content:flex-start}.viewer-stage{order:1;min-height:calc(100vh - 112px)}.viewer-canvas{min-height:calc(100vh - 112px)}}@media(max-width:820px){.app-shell{grid-template-rows:auto minmax(0,1fr)}.topbar,.workspace-toolbar,.project-header,.viewer-topline,.modal-heading,.modal-footer,.toolbar-create,.upload-body,.upload-queue-row,.selected-file-meta,.project-card{grid-template-columns:1fr;flex-direction:column;align-items:flex-start}.topbar{padding:var(--space-4)}.topbar-context,.stage-header{justify-content:flex-start;flex-wrap:wrap}.dashboard-screen,.project-screen{padding:var(--space-4)}.viewer-screen{padding:0}.dataset-table{overflow-x:visible}.dataset-filter-bar{grid-template-columns:1fr;align-items:stretch}.dataset-filter-summary{justify-content:space-between}.dataset-head{display:none}.dataset-row{min-width:0;grid-template-columns:1fr;align-items:stretch}.cell-label{display:block}.dataset-action{justify-content:flex-start}.dataset-action .open-action{width:100%}.viewer-stage{min-height:560px}.viewer-canvas{min-height:420px}.metadata-grid{grid-template-columns:1fr}}.app-shell.workspace-active,.auth-entry-screen{--accent: #1d4ed8;--accent-hover: #1a44bd;--accent-active: #173aa3;--accent-ink: #1d4ed8;--accent-soft: #e9eefc;--accent-soft-line: #c9d5f6;--focus-ring: rgba(29, 78, 216, .16);--accent-strong: var(--accent-hover);--ink: #15181e;--ink-2: #3d434d;--ink-3: #6b7280;--ink-4: #9aa1ac;--ink-disabled: #a8adb6;--line-soft: #ece9e3;--line-soft-2: #e1ddd5;--line-strong: #d7d3ca;--surface-tint: #fcfbf9;--sunken-soft: #f6f4f0;--status-ready-ink: #256b2c;--status-ready-fill: #e8f3e8;--status-ready-line: #bcd9bd;--status-ready-dot: #2e7d32;--status-processing-ink: #8a6400;--status-processing-fill: #faf1da;--status-processing-line: #ecd9a0;--status-processing-dot: #d9a300;--status-failed-ink: #a83326;--status-failed-fill: #faecea;--status-failed-line: #ecc4bf;--status-failed-dot: #c0392b;--status-idle-ink: #5d6b73;--status-idle-fill: #eef1f2;--status-idle-line: #d5dbde;--status-idle-dot: #8ea0a8;--status-ready: var(--status-ready-dot);--status-processing: var(--status-processing-dot);--status-failed: var(--status-failed-dot);--status-idle: var(--status-idle-dot);--type-display: 34px;--type-title: 26px;--type-heading: 17px;--type-body: 15px;--type-caption: 13px;--type-micro: 11px;--type-data: 12.5px;--track-display: -.04em;--track-title: -.03em;--track-caps: .1em;--leading-tight: 1.15;--leading-body: 1.5;--radius-lg: 16px;--radius-card: var(--radius-lg);--radius-control: 10px;--radius-pill: 999px;--space-7: 32px;--space-8: 48px;--shadow-1: 0 1px 1px rgba(21, 24, 30, .04), 0 2px 6px -2px rgba(21, 24, 30, .06);--shadow-2: 0 1px 2px rgba(21, 24, 30, .05), 0 8px 22px -10px rgba(21, 24, 30, .13);--shadow-lift: 0 2px 4px rgba(21, 24, 30, .05), 0 18px 38px -14px rgba(21, 24, 30, .2);--shadow-pop: 0 2px 6px rgba(21, 24, 30, .07), 0 24px 58px -18px rgba(21, 24, 30, .3);--shadow-focus: 0 0 0 3px var(--focus-ring);--ease: cubic-bezier(.32, .72, 0, 1);--data-surface: #0c1018;--data-edge: rgba(255, 255, 255, .08);--data-glow: rgba(29, 78, 216, .25);--hover-surface: #f6f8fb;--hover-hairline: var(--accent-soft-line)}.rail-nav{gap:4px}.rail-nav-item.static,.rail-nav-item.static:hover{box-shadow:none}.rail-scope-chip{box-shadow:var(--shadow-1)}.workspace-active .topbar{border-bottom-color:var(--line-soft);background:#fbfaf8d1;backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px)}.topbar-search input{border-radius:var(--radius-control);border-color:var(--line-soft-2);box-shadow:var(--shadow-1);transition:border-color .15s var(--ease),box-shadow .15s var(--ease),background .15s var(--ease)}.topbar-search input:focus{border-color:var(--accent);outline:none;box-shadow:var(--shadow-focus)}.workspace-active .topbar-signout{border-radius:var(--radius-control);transition:background .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease)}.workspace-active .panel{border-color:var(--line-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-2)}.panel,.card{border-radius:var(--radius-card)}.workspace-active .card{border-color:var(--line-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-2)}.panel-heading{margin-bottom:var(--space-5)}.workspace-active .project-list-panel>.panel-heading{border-bottom-color:var(--line-soft)}.eyebrow{letter-spacing:.1em}.workspace-active .workspace-toolbar .eyebrow,.workspace-active .project-header .eyebrow,.workspace-active .panel-heading .eyebrow{font-size:var(--type-micro);letter-spacing:var(--track-caps)}.toolbar-subtitle{line-height:1.5}.project-filter-bar{display:grid;grid-template-columns:minmax(150px,190px) minmax(0,1fr) auto;gap:16px;align-items:end;border-bottom:1px solid var(--line-soft);padding:18px 22px;background:var(--sunken-soft);border-radius:var(--radius-card) var(--radius-card) 0 0}.project-filter-bar input,.project-filter-bar select{width:100%;height:36px;padding:0 11px;border-radius:var(--radius-control);transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}.count-chip{border-radius:var(--radius-pill);border-color:var(--line-soft-2);box-shadow:var(--shadow-1)}.workspace-active .count-chip{border-color:var(--line-soft-2);border-radius:var(--radius-pill);color:var(--ink-2);background:var(--sunken-soft);box-shadow:var(--shadow-1)}.project-card-thumb{border-bottom-color:var(--line-soft);box-shadow:inset 0 -1px #15181e0a}.project-card-chip{border-radius:var(--radius-pill);padding:3px 9px;background:#10141c9e;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.workspace-active .project-card-body strong{letter-spacing:-.015em}.workspace-active .project-action-btn{border-color:var(--line-soft-2);border-radius:var(--radius-control);box-shadow:var(--shadow-1);transition:background .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease),box-shadow .15s var(--ease),transform .15s var(--ease)}.workspace-active .project-action-btn:hover:not(:disabled){box-shadow:var(--shadow-2)}.workspace-active .project-action-btn:active:not(:disabled){transform:translateY(1px)}.project-meta-strip{display:flex;flex-wrap:wrap;gap:32px;margin-top:20px;padding-bottom:20px;border-bottom:1px solid var(--line-soft)}.project-meta-strip .msv.mono{font-family:var(--mono);font-size:.84rem;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:0}.workspace-active .dataset-table{border-color:var(--line-soft);border-radius:var(--radius-card);overflow-x:auto;overflow-y:hidden;background:#fff;box-shadow:var(--shadow-2)}.workspace-active .dataset-cell strong,.workspace-active .dataset-name-cell strong{letter-spacing:-.01em}.dataset-cell.mono,.dataset-name-cell span,.dataset-job-status.ready-compact small{font-variant-numeric:tabular-nums}.workspace-active .dataset-filter-bar{border-color:var(--line-soft);border-radius:var(--radius-card);background:#f4f2ee}.workspace-active .dataset-filter-control input,.workspace-active .dataset-filter-control select{border-radius:var(--radius-control);border-color:var(--line-soft-2)}.workspace-active .details-loading-panel,.workspace-active .asset-details-drawer{border-color:var(--line-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-2)}.settings-section{border-color:var(--line-soft);border-radius:var(--radius-card);overflow:hidden;box-shadow:var(--shadow-2)}.settings-section-heading,.settings-profile-row,.settings-disabled-row,.settings-actions{border-color:var(--line-soft)}.settings-actions{background:var(--sunken-soft)}.settings-avatar{border-radius:14px;box-shadow:0 3px 10px -2px #1d4ed86b}.workspace-active .settings-field input,.workspace-active .settings-field select{border-radius:var(--radius-control);border-color:var(--line-soft-2)}.workspace-active .settings-field input:focus,.workspace-active .settings-field select:focus{border-color:var(--accent);outline:none;box-shadow:var(--shadow-focus)}.workspace-active .modal-backdrop{background:#15181e70;backdrop-filter:blur(8px) saturate(140%);-webkit-backdrop-filter:blur(8px) saturate(140%)}.workspace-active .upload-modal,.workspace-active .delete-modal,.workspace-active .create-modal{border-color:var(--line-soft);border-radius:20px;color:#15181e;background:#fff;box-shadow:var(--shadow-pop);gap:var(--space-5);padding:var(--space-6)}.workspace-active .delete-modal{border-color:#eccac4}.modal-heading,.modal-footer{gap:var(--space-5)}.field input,.field select{border-radius:var(--radius-control)}.workspace-active button{border-radius:var(--radius-control);transition:background .16s var(--ease),border-color .16s var(--ease),box-shadow .16s var(--ease),transform .12s var(--ease)}.workspace-active button:active:not(:disabled){transform:translateY(1px)}.workspace-active button:not(.secondary):not(.danger):not(.brand-button):not(.rail-nav-item):not(.rail-subnav-item):not(.select-menu-option):not(.rail-user-card):not(.auth-link):not(.auth-password-toggle):not(.project-card-body):not(.open-action):not(.project-action-btn):not(.command-palette-item):not(.upload-float-icon-btn):not(.project-card--new){box-shadow:var(--shadow-1)}.workspace-active button:not(.secondary):not(.danger):not(.brand-button):not(.rail-nav-item):not(.rail-subnav-item):not(.select-menu-option):not(.rail-user-card):not(.auth-link):not(.auth-password-toggle):not(.project-card-body):not(.open-action):not(.project-action-btn):not(.command-palette-item):not(.upload-float-icon-btn):not(.project-card--new):hover:not(:disabled){box-shadow:var(--shadow-2)}.workspace-active button.secondary{border-color:var(--line-soft-2);box-shadow:var(--shadow-1)}.workspace-active button.secondary:hover:not(:disabled){box-shadow:var(--shadow-2)}.workspace-active button.danger{border-color:#efd6d1;box-shadow:var(--shadow-1)}button.compact,.compact{border-radius:9px}.workspace-active .workspace-crumbs button,.workspace-active .workspace-crumbs button:hover:not(:disabled){border-radius:0;box-shadow:none!important}.workspace-active .rail-subnav .rail-subnav-item,.workspace-active .rail-subnav .rail-subnav-item:hover:not(:disabled),.workspace-active .rail-subnav .rail-subnav-item:active:not(:disabled){border-radius:0;background:transparent;box-shadow:none!important;transform:none}.workspace-active .open-action.disabled{border-radius:var(--radius-control)}.workspace-active input,.workspace-active select{border-radius:var(--radius-control);border-color:var(--line-soft-2);transition:border-color .15s var(--ease),box-shadow .15s var(--ease),background .15s var(--ease)}.workspace-active input:focus,.workspace-active select:focus{border-color:var(--accent);outline:none;box-shadow:var(--shadow-focus)}.workspace-active button:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.auth-submit:active:not(:disabled){transform:translateY(1px)}.app-notification{border-radius:12px;border-color:var(--line-soft-2, #e1ddd5);box-shadow:0 2px 6px #15181e1a,0 18px 44px -16px #15181e57}.app-notification.success{border-color:#cfe8d9}.app-notification.error{border-color:#f0d3cd}@media(prefers-reduced-motion:reduce){.app-shell.workspace-active *,.auth-entry-screen *{transition-duration:.01ms!important}}.workspace-active .project-edit-panel{margin-top:24px}.workspace-active .dashboard-screen,.workspace-active .settings-screen{gap:26px}.workspace-active .panel-heading{margin-bottom:var(--space-6)}.workspace-active .project-list-panel>.panel-heading{padding:20px 22px}.workspace-active .project-list-panel>.project-list,.workspace-active .project-list-panel>.empty-state,.workspace-active .project-list-panel>.loading-state,.workspace-active .project-list-panel>.error-panel{margin:22px}.workspace-active .project-list{gap:22px}.workspace-active .project-empty-state,.workspace-active .empty-state{padding:40px}.workspace-active .loading-state,.workspace-active .details-loading-panel{padding:36px}.workspace-active .asset-details-drawer{padding:24px}.modal-footer{margin-top:var(--space-2)}.workspace-active .project-card:active{transform:translateY(-1px);box-shadow:var(--shadow-2)}.workspace-active .project-card-body{transition:background .18s var(--ease),color .18s var(--ease)}.workspace-active .project-card:has(.project-card-body:active){transform:translateY(0)}.workspace-active .open-action:active:not(:disabled){transform:translateY(1px);box-shadow:var(--shadow-1)}.workspace-active .toolbar-create button{transition:background .16s var(--ease),border-color .16s var(--ease),color .16s var(--ease),box-shadow .16s var(--ease),transform .12s var(--ease)}.workspace-active .toolbar-create button:hover:not(:disabled){transform:translateY(-1px)}.workspace-active .toolbar-create button:active:not(:disabled){transform:translateY(1px);box-shadow:var(--shadow-1)}.workspace-active .project-action-btn{transition:background .16s var(--ease),border-color .16s var(--ease),color .16s var(--ease),box-shadow .16s var(--ease),transform .12s var(--ease)}.workspace-active .project-action-btn:active:not(:disabled){transform:translateY(1px);box-shadow:var(--shadow-1)}.workspace-active .rail-nav-item:not(.static):active{transform:translateY(.5px)}.workspace-active .dataset-actions-menu summary{border-color:var(--line-soft-2);border-radius:var(--radius-control);color:#15181e;background:#fff;box-shadow:var(--shadow-1);transition:background .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease),box-shadow .15s var(--ease),transform .12s var(--ease)}.workspace-active .dataset-actions-menu summary:active{transform:translateY(.5px)}.workspace-active .select-menu summary{border-color:var(--line-soft-2);border-radius:var(--radius-control);color:#15181e;background:#fff;box-shadow:var(--shadow-1);transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}.workspace-active .select-menu:not([data-disabled=true]) summary:hover{border-color:#6b7280}.workspace-active .select-menu summary:focus-visible{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus)}.workspace-active .select-menu-popover{border-color:var(--line-soft-2);background:#fff;box-shadow:0 10px 30px -12px #15181e47}.workspace-active .select-menu-option{color:#15181e}.workspace-active .select-menu-option:hover:not(:disabled){background:#f4f2ee}.workspace-active .select-menu-option:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.workspace-active .select-menu-option[aria-selected=true]{color:var(--accent-ink);background:var(--accent-soft);font-weight:750}.workspace-active .topbar-signout:active:not(:disabled){transform:translateY(.5px)}.rail-signout:active{transform:translateY(.5px)}.workspace-active a:focus-visible,.workspace-active summary:focus-visible,.workspace-active .open-action:focus-visible,.workspace-active .project-card-body:focus-visible,.workspace-active .project-action-btn:focus-visible,.workspace-active .dataset-actions-menu summary:focus-visible,.workspace-active .dataset-actions-popover button:focus-visible,.workspace-active .topbar-signout:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.workspace-active .rail-nav-item:focus-visible,.workspace-active .rail-user-card:focus-visible,.rail-signout:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.workspace-active .project-card-body:focus-visible{border-radius:var(--radius-card)}.auth-entry-screen a:focus-visible,.auth-entry-screen .auth-link:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:var(--radius-control)}@media(prefers-reduced-motion:reduce){.app-shell.workspace-active .project-card:hover,.app-shell.workspace-active .project-card:active,.app-shell.workspace-active .open-action:hover:not(:disabled),.app-shell.workspace-active .open-action:active:not(:disabled),.app-shell.workspace-active .toolbar-create button:hover:not(:disabled),.app-shell.workspace-active .toolbar-create button:active:not(:disabled),.app-shell.workspace-active .project-action-btn:active:not(:disabled),.app-shell.workspace-active .rail-nav-item:not(.static):active,.app-shell.workspace-active .dataset-actions-menu summary:active,.app-shell.workspace-active .topbar-signout:active:not(:disabled),.app-shell.workspace-active .rail-signout:active{transform:none}}.workspace-active .dataset-actions-popover button{transition:background .14s var(--ease),color .14s var(--ease);border-radius:var(--radius-control);padding:8px 12px}.workspace-active .details-loading-panel,.workspace-active .asset-details-drawer{border-radius:var(--radius-card);border-color:var(--line-soft);box-shadow:var(--shadow-2)}.workspace-active .asset-details-drawer .drawer-summary span,.workspace-active .asset-details-drawer .status-pill{border-radius:var(--radius-pill)}.workspace-active .drop-zone,.workspace-active .drop-zone.has-file{gap:var(--space-3);min-height:224px;padding:32px;border-radius:var(--radius-card);border-color:var(--line-soft-2)}.workspace-active .upload-modal .segmented,.workspace-active .upload-modal .segmented button,.workspace-active .upload-modal .upload-chip,.workspace-active .upload-modal .format-chip,.workspace-active .count-chip,.workspace-active .project-card-chip,.workspace-active .status-pill,.workspace-active .rail-scope-chip{border-radius:var(--radius-pill)}.app-notification{border-radius:var(--radius-card);border-color:var(--line-soft-2);transition:transform .24s var(--ease),opacity .24s var(--ease),box-shadow .24s var(--ease)}.workspace-active .dataset-table{scrollbar-width:thin;scrollbar-color:var(--line-soft-2) transparent}.workspace-active .dataset-table::-webkit-scrollbar{width:10px;height:10px}.workspace-active .dataset-table::-webkit-scrollbar-track{background:transparent}.workspace-active .dataset-table::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:var(--radius-pill);background-clip:padding-box;background-color:var(--line-soft-2)}.workspace-active .dataset-table::-webkit-scrollbar-thumb:hover{background-color:#9aa1ac}.workspace-active .workspace-crumbs button,.workspace-active .workspace-crumbs button:focus-visible,.workspace-active .link-button{border:0!important;background:transparent!important;color:#6b7280!important;box-shadow:none!important;font-weight:650!important}.workspace-active .workspace-crumbs button:hover:not(:disabled),.workspace-active .link-button:hover:not(:disabled){color:#15181e!important;background:#15181e0a!important;box-shadow:none!important}.workspace-active .workspace-crumbs button:hover:not(:disabled){background:transparent!important}.workspace-active .workspace-crumbs button:disabled,.workspace-active .link-button:disabled{border:0!important;background:transparent!important;color:#b3b0a8!important;box-shadow:none!important}.workspace-active .workspace-toolbar,.workspace-active .project-header{border-bottom:0;padding-bottom:0;margin-bottom:4px}.workspace-active .project-meta-strip{gap:40px;margin-top:22px;padding-bottom:0;border-bottom:0}.workspace-rail{border-right:0;background:var(--surface-tint);box-shadow:1px 0 0 var(--line-soft)}.workspace-active .project-list-panel>.panel-heading{border-bottom:0;box-shadow:inset 0 -1px 0 var(--line-soft)}.rail-brand{border-bottom:0;box-shadow:inset 0 -1px 0 var(--line-soft)}.rail-footer{border-top:0;box-shadow:inset 0 1px 0 var(--line-soft)}.workspace-active .rail-nav-item.active{box-shadow:none;background:var(--accent-soft);color:var(--accent-ink)}.workspace-active .dataset-actions-popover button:hover{background:var(--sunken-soft);box-shadow:none}.workspace-active .dataset-actions-popover button:active{background:var(--accent-soft)}.workspace-active .topbar-search input:focus,.workspace-active .dataset-filter-control input:focus,.workspace-active .dataset-filter-control select:focus{border-color:var(--line-soft-2);outline:none;box-shadow:var(--shadow-focus)}.auth-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.auth-field span{font-size:.78rem;font-weight:600;letter-spacing:.02em;color:var(--text-soft, #6b7280)}.auth-field input{width:100%;padding:10px 12px;border:1px solid var(--line-soft-2, #d8dee9);border-radius:8px;font:inherit;background:var(--surface, #ffffff);color:inherit}.auth-field input:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus)}.auth-error{margin:0 0 12px;padding:10px 12px;border-radius:8px;background:#dc26261a;color:#b91c1c;font-size:.85rem}.wizard-modal{width:min(920px,100%);max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);grid-template-rows:auto auto minmax(0,1fr) auto}.wizard-steps{display:flex;align-items:center;list-style:none;margin:0 0 26px;padding:0;flex-wrap:nowrap;gap:10px}.wizard-steps li{display:flex;align-items:center;flex:none;gap:9px;color:var(--text-soft, #6b7280);font-size:.88rem}.wizard-steps li:not(:last-child){flex:1}.wizard-steps li:not(:last-child):after{content:"";flex:1;width:auto;min-width:24px;height:1px;background:var(--line-soft-2, #d8dee9);margin:0 2px}.wizard-step-num{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:999px;background:var(--sunken-soft, #eef1f6);color:var(--ink-3, #6b7280);font-size:.8rem;font-weight:700;transition:background .16s var(--ease),color .16s var(--ease),box-shadow .16s var(--ease)}.wizard-steps li.active .wizard-step-num{color:#fff;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.wizard-steps li.done .wizard-step-num{background:var(--accent-soft);color:var(--accent-ink)}.wizard-steps li.active{color:var(--text, #111827);font-weight:600}.wizard-steps li.done{color:var(--accent-ink)}.wizard-body{min-height:260px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line-soft-2) transparent}.wizard-step-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.wizard-step-single{max-width:640px;display:flex;flex-direction:column;gap:14px}.storage-bar-block{margin-bottom:16px}.storage-bar-head{display:flex;justify-content:space-between;gap:12px;font-size:.8rem;color:var(--text-soft, #6b7280);margin-bottom:6px}.storage-bar{height:4px;border-radius:999px;background:var(--sunken-soft, #eef1f6);overflow:hidden}.storage-bar span{display:block;height:100%;background:var(--status-ready-dot, #3f9d57);border-radius:999px}.wizard-file-list{border:1px solid var(--line-soft-2, #e2e6ee);border-radius:12px;padding:12px;min-height:210px;max-height:340px;overflow-y:auto}.wizard-file-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 4px;border-bottom:1px solid var(--line-soft, #eef1f6)}.wizard-file-row:last-child{border-bottom:none}.wizard-file-row strong{display:block;font-size:.9rem}.wizard-file-row small{color:var(--text-soft, #6b7280);font-size:.78rem}.checkbox-row{display:flex;align-items:center;gap:8px;font-size:.9rem}.checkbox-row input{width:16px;height:16px}.wizard-callout{border-left:3px solid var(--accent);padding:4px 0 4px 12px}.wizard-callout strong{display:block;margin-bottom:4px}.wizard-callout p{margin:0;color:var(--text-soft, #6b7280);font-size:.88rem}.wizard-footer{display:flex;justify-content:space-between;align-items:center}.wizard-nav{display:flex;gap:10px}.workspace-active .chip{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:2px 9px;border:1px solid var(--line-soft-2);border-radius:var(--radius-pill);background:var(--sunken-soft);color:var(--ink-2);font-size:var(--type-micro);font-weight:750;letter-spacing:.02em;white-space:nowrap;transition:border-color .16s var(--ease),background .16s var(--ease)}.workspace-active .chip--accent{border-color:var(--accent-soft-line);background:var(--accent-soft);color:var(--accent-ink)}.status-dot{display:inline-block;width:8px;height:8px;flex:none;border-radius:999px;background:var(--status-idle)}.status-dot--ready{background:var(--status-ready)}.status-dot--processing{background:var(--status-processing)}.status-dot--failed{background:var(--status-failed)}.status-dot--pending{background:var(--status-idle)}@media(prefers-reduced-motion:no-preference){.status-dot--processing{animation:status-dot-pulse 1.6s ease-in-out infinite}@keyframes status-dot-pulse{0%,to{opacity:1}50%{opacity:.35}}}.status-dot-label{display:inline-flex;align-items:center;gap:7px;font-size:var(--type-caption, .82rem);font-weight:650;color:var(--ink-2, #3d434d)}.upload-float-panel{--uf-surface: #ffffff;--uf-surface-2: #fcfbf9;--uf-ink: #15181e;--uf-ink-3: #6b7280;--uf-line: #ece9e3;--uf-accent: #1d4ed8;position:fixed;top:72px;right:24px;z-index:60;width:384px;max-width:calc(100vw - 48px);border-radius:14px;overflow:hidden;background:var(--uf-surface);color:var(--uf-ink);box-shadow:0 2px 6px #15181e1f,0 24px 58px -18px #15181e6b}.upload-float-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--uf-line);background:var(--uf-surface-2);color:var(--uf-ink)}.upload-float-head strong{font-size:.92rem;font-weight:750}.upload-float-head-actions{display:flex;gap:4px}.upload-float-icon-btn{min-height:26px;width:28px;padding:0;border:0;border-radius:7px;background:transparent;color:var(--uf-ink-3);font-weight:700;box-shadow:none!important}.upload-float-icon-btn:hover:not(:disabled){background:#15181e12;color:var(--uf-ink)}.upload-float-body{max-height:min(52vh,460px);overflow-y:auto;padding:10px 14px 14px}.upload-float-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 0 8px;font-size:.8rem}.upload-float-summary .muted{color:var(--uf-ink-3)}.upload-float-project{margin:6px 0 2px;color:var(--uf-accent);font-size:.8rem;font-weight:750}.upload-float-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--uf-line)}.upload-float-row:last-child{border-bottom:0}.upload-float-row-main{min-width:0;flex:1;display:grid;gap:3px}.upload-float-row-main strong{font-size:.86rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-float-row-main small{color:var(--uf-ink-3);font-size:.76rem}.upload-float-row-main .error-text{font-size:.76rem}.upload-float-row-side{display:flex;flex-direction:column;align-items:flex-end;gap:5px}.upload-float-panel .link-button{min-height:0;padding:0;border:0;background:transparent;color:var(--uf-accent);font-size:.78rem;font-weight:750;cursor:pointer;box-shadow:none!important}.upload-float-panel .link-button:hover:not(:disabled){background:transparent;text-decoration:underline}.upload-status-icon{width:20px;height:20px;flex:none;fill:none;stroke-width:1.8}.upload-status-icon--done{stroke:#2e7d32}.upload-status-icon--done circle{fill:#2e7d321f}.upload-status-icon--failed{stroke:#c0392b}.upload-status-icon--failed circle{fill:#c0392b1a}.upload-status-icon--failed .upload-status-icon-dot{fill:#c0392b}.upload-status-icon--queued,.upload-status-icon--canceled{stroke:#c3c9d1}.upload-status-icon--active .upload-status-icon-track{stroke:#d9e1f8}.upload-status-icon--active .upload-status-icon-arc{stroke:var(--uf-accent);stroke-dasharray:38 88;stroke-linecap:round}@media(prefers-reduced-motion:no-preference){.upload-status-icon--active{animation:upload-spinner-rotate 1s linear infinite}@keyframes upload-spinner-rotate{to{transform:rotate(360deg)}}}.storage-eyebrow{display:block;margin-bottom:4px;color:var(--ink-3, #6b7280);font-size:var(--type-micro, .68rem);font-weight:850;letter-spacing:var(--track-caps, .12em);text-transform:uppercase}.storage-bar-head .storage-used{color:var(--status-ready-ink, #2f9e44);font-weight:750}.storage-bar-head .storage-remaining{color:#6b7280}.browse-chip{display:inline-flex;align-items:center;margin-left:2px;padding:6px 14px;border:1px solid var(--accent);border-radius:var(--radius-control);color:var(--accent);background:#fff;font-size:.9rem;font-weight:750;vertical-align:middle}.drop-zone:hover .browse-chip{background:var(--accent-soft)}.scale-cards{display:grid;gap:10px;margin:0;padding:0;border:0}.scale-cards-legend{padding:0;font-size:.95rem;font-weight:800}.scale-cards-hint{margin:2px 0 4px;font-size:.84rem}.scale-card{display:flex;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--line-soft-2);border-radius:var(--radius-control);background:#fff;cursor:pointer;transition:border-color .15s var(--ease),background .15s var(--ease),box-shadow .15s var(--ease)}.scale-card:hover{border-color:var(--accent);box-shadow:var(--shadow-1)}.scale-card.selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.scale-card-art{width:58px;height:46px;flex:none}.scale-card-art .art-ground{fill:#eef1f6}.scale-card-art .art-wall{fill:#c7d5ee}.scale-card-art .art-wall-shade{fill:#a9bfe4}.scale-card-art .art-roof{fill:#5d87c9}.scale-card-art .art-roof-shade,.scale-card-art .art-door{fill:#46699f}.scale-card-art .art-window{fill:#fff}.scale-card-art .art-chimney{fill:#8fa8d4}.scale-card-art .art-line{stroke:#fff;stroke-width:1}.scale-card-copy{min-width:0;flex:1;display:grid;gap:2px}.scale-card-copy strong{font-size:.92rem;font-weight:800}.scale-card-copy small{color:#6b7280;font-size:.8rem}.scale-card-radio{width:18px;height:18px;flex:none;border:2px solid var(--line-soft-2);border-radius:999px;background:#fff;transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}.scale-card.selected .scale-card-radio{border-color:var(--accent);box-shadow:inset 0 0 0 4px #fff,inset 0 0 0 10px var(--accent)}.scale-card input:focus-visible~.scale-card-radio{box-shadow:var(--shadow-focus)}.module-ico{width:26px;height:26px;flex:none}.module-card .scale-card-copy strong{display:flex;align-items:center;gap:8px}.module-classes{color:var(--ink-3);font-family:var(--mono);font-size:.72rem;letter-spacing:.01em}.module-card.disabled{cursor:default;background:var(--sunken-soft)}.module-card.disabled:hover{border-color:var(--line-soft-2);box-shadow:none}.module-card.disabled .module-ico,.module-card.disabled .scale-card-copy small,.module-card.disabled .scale-card-radio{opacity:.55}.wizard-class-grid{border:1px solid var(--line-soft-2);border-radius:12px;overflow:hidden;background:#fff}.wizard-class-row{display:grid;grid-template-columns:56px 1fr 90px;align-items:center;gap:8px;padding:7px 12px;border-bottom:1px solid var(--line-soft);font-size:.84rem}.wizard-class-row:last-child{border-bottom:0}.wizard-class-head{background:var(--sunken-soft);color:var(--ink-3);font-size:.7rem;font-weight:750;text-transform:uppercase;letter-spacing:.06em}.wizard-class-code{font-family:var(--mono);font-size:.78rem}.wizard-class-row.ignore{color:var(--ink-3)}.workspace-active .dataset-name-cell .chip{margin-top:3px;justify-self:start}.dataset-skeleton{display:grid;border:1px solid var(--line-soft);border-radius:var(--radius-card);overflow:hidden;background:#fff}.dataset-skeleton-row{display:grid;grid-template-columns:minmax(220px,1.3fr) 92px 88px 168px;gap:var(--space-3);align-items:center;min-height:64px;padding:0 var(--space-3);border-bottom:1px solid var(--line-soft)}.dataset-skeleton-row:last-child{border-bottom:0}.dataset-skeleton-row .skeleton{height:14px}.dataset-skeleton-name.skeleton{height:18px;max-width:260px}.rail-storage{display:flex;align-items:center;gap:10px;margin-bottom:10px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:12px;background:var(--sunken-soft)}.rail-storage-ring{width:38px;height:38px;flex:none;fill:none;transform:rotate(-90deg)}.rail-storage-track{stroke:var(--line-soft-2);stroke-width:4}.rail-storage-arc{stroke:var(--accent);stroke-width:4;stroke-linecap:round}.rail-storage-copy{min-width:0;display:grid;gap:1px}.rail-storage-copy strong{font-size:.82rem;font-weight:800;color:#15181e}.rail-storage-copy small{color:#6b7280;font-size:.72rem}.command-palette-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;justify-items:center;align-items:start;padding-top:14vh;background:#15181e70;backdrop-filter:blur(6px) saturate(140%);-webkit-backdrop-filter:blur(6px) saturate(140%)}.command-palette{width:min(620px,calc(100vw - 48px));border-radius:14px;overflow:hidden;background:#fff;color:var(--ink, #15181e);box-shadow:0 2px 6px #15181e1f,0 24px 58px -18px #15181e6b}.command-palette-input-row{display:flex;align-items:center;gap:10px;padding:6px 14px;border-bottom:1px solid var(--line-soft, #eef1f6)}.command-palette-input-row input{flex:1;min-height:44px;border:0;padding:0;color:var(--ink, #15181e);background:transparent;font-size:1rem}.command-palette-input-row input:focus{border:0;outline:none;box-shadow:none}.command-palette kbd{padding:2px 7px;border:1px solid var(--line-soft-2, #e1ddd5);border-radius:6px;color:var(--ink-3, #6b7280);background:var(--sunken-soft, #f6f4f0);font-family:var(--mono);font-size:.68rem}.command-palette-list{max-height:min(46vh,420px);overflow-y:auto;margin:0;padding:8px;list-style:none}.command-palette-section{margin:8px 6px 3px;color:var(--ink-3, #6b7280);font-size:.68rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.command-palette-empty{padding:18px 10px;color:var(--ink-3, #6b7280);font-size:.9rem;text-align:center}.command-palette-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:40px;padding:8px 10px;border:0;border-radius:9px;color:var(--ink, #15181e);background:transparent;font-weight:650;text-align:left;box-shadow:none!important}.command-palette-item small{flex:none;color:var(--ink-3, #6b7280);font-weight:500}.command-palette-item .command-palette-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.command-palette-item.active,.command-palette-item[aria-selected=true],.command-palette-item:hover:not(:disabled){color:var(--ink, #15181e);background:var(--accent-soft, #e9eefc);box-shadow:inset 2px 0 0 var(--accent)!important}.command-palette-foot{display:flex;gap:16px;padding:9px 14px;border-top:1px solid var(--line-soft, #eef1f6);color:var(--ink-3, #6b7280);font-size:.74rem}.command-palette-foot span{display:inline-flex;align-items:center;gap:5px}.notification-stack{z-index:70}.dataset-actions-popover{position:fixed;top:auto;right:auto;z-index:65;display:grid;width:180px;gap:var(--space-1);border:1px solid var(--border-strong);border-radius:12px;padding:var(--space-2);background:#15171b;box-shadow:var(--shadow-panel)}.dataset-actions-menu:not([open]) .dataset-actions-popover{display:none}.workspace-active .dataset-actions-popover{border-color:var(--line-soft);border-radius:12px;padding:6px;background:#fff;box-shadow:0 2px 6px #15181e1a,0 18px 50px -16px #15181e47}.workspace-active .dataset-row{grid-template-columns:minmax(220px,1.3fr) 72px 92px 88px minmax(178px,1fr) 104px 210px;min-width:984px;min-height:64px;padding-top:var(--space-4);padding-bottom:var(--space-4);padding-left:var(--space-5);padding-right:var(--space-5);border-bottom-color:var(--line-soft);color:#15181e;background:#fff;transition:background .16s var(--ease),box-shadow .16s var(--ease)}.workspace-active .dataset-row:hover{border-color:var(--line-soft);color:inherit;background:var(--hover-surface);box-shadow:inset 2px 0 0 var(--accent)}.workspace-active .project-card:hover{color:inherit;border-color:var(--hover-hairline);background:#fff;transform:translateY(-2px);box-shadow:var(--shadow-lift)}.workspace-active button.secondary:hover:not(:disabled){border-color:var(--hover-hairline);color:#15181e;background:var(--hover-surface);box-shadow:var(--shadow-2)}.workspace-active .dataset-actions-menu summary:hover{border-color:var(--hover-hairline);background:var(--hover-surface);box-shadow:var(--shadow-1)}.workspace-active .rail-nav-item:hover:not(.active):not(.static){color:#15181e;background:var(--hover-surface)}.workspace-active .topbar-search input:hover:not(:focus){border-color:var(--hover-hairline)}@media(prefers-reduced-motion:reduce){.workspace-active .project-card,.workspace-active .project-card:hover{transform:none}}@media(max-width:900px){.app-shell.workspace-active{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr)}.workspace-active .workspace-rail{grid-column:1;grid-row:1;flex-direction:row;align-items:center;gap:4px;border-right:0;border-bottom:1px solid var(--line-soft)}.workspace-active .rail-brand{min-height:52px;padding:0 10px 0 14px;border-bottom:0;flex:none}.workspace-active .rail-nav{display:flex;flex:1;align-items:center;gap:4px;padding:8px 6px;overflow-x:auto}.workspace-active .rail-section-label,.workspace-active .rail-subnav,.workspace-active .rail-current-project,.workspace-active .rail-scope-chip,.workspace-active .rail-storage,.workspace-active .rail-nav-item strong,.workspace-active .rail-user-card span:not(.rail-avatar){display:none}.workspace-active .rail-nav-item{width:auto;min-height:36px;padding:7px 12px;white-space:nowrap}.workspace-active .rail-footer{padding:0 10px;border-top:0;flex:none}.workspace-active .rail-user-card{padding:4px;border:0;background:transparent;box-shadow:none}.workspace-active .topbar{grid-column:1;grid-row:2;display:flex;height:auto;min-height:0;padding:10px 14px}.workspace-active .topbar-workspace-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;width:100%}.workspace-active .workspace-crumbs{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.workspace-active .topbar-search{flex:1 1 100%;order:3;max-width:none}.workspace-active>.dashboard-screen,.workspace-active>.project-screen,.workspace-active>.settings-screen,.workspace-active>main{grid-column:1;grid-row:3;width:100%;padding:16px 14px 40px}.workspace-active .dataset-table{overflow-x:visible}.workspace-active .dataset-head{display:none}.workspace-active .dataset-row{grid-template-columns:minmax(0,1fr);min-width:0;min-height:0;gap:8px;padding:14px;align-items:stretch}.workspace-active .dataset-row:hover{box-shadow:none}.workspace-active .cell-label{display:block;color:#6b7280;font-size:.68rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.workspace-active .dataset-action{flex-direction:row;align-items:center;gap:8px}.dataset-skeleton-row{grid-template-columns:1fr;min-height:0;padding:14px;gap:10px}.wizard-modal{width:100%}.wizard-step-grid{grid-template-columns:1fr}.wizard-steps{flex-wrap:wrap;gap:8px 14px}.wizard-steps li:not(:last-child){flex:none}.wizard-steps li:not(:last-child):after{display:none}.wizard-file-list{min-height:120px;max-height:220px}.workspace-active .modal-backdrop{align-items:flex-start;padding:12px;overflow-y:auto}.command-palette-backdrop{padding-top:7vh}.command-palette{width:calc(100vw - 24px)}.workspace-active .project-meta-strip{gap:10px}.workspace-active .modal-heading{flex-direction:row;align-items:center;justify-content:space-between}.workspace-active .modal-footer{flex-direction:column;align-items:stretch;gap:10px}.workspace-active .modal-footer button{width:100%;min-height:44px}.wizard-nav{flex-direction:column;gap:10px}}@media(max-width:560px){.workspace-active .rail-wordmark{display:none}}@media(max-width:900px){.workspace-active input,.workspace-active select,.auth-entry-screen input{min-height:44px;font-size:1rem}.workspace-active button{min-height:40px}.workspace-active .rail-nav-item,.workspace-active .upload-float-icon-btn,.workspace-active .compact{min-height:36px}}@media(max-width:640px){.upload-float-panel{bottom:calc(12px + env(safe-area-inset-bottom,0px))}}.workspace-active button:hover:not(:disabled):not(.upload-float-icon-btn):not(.command-palette-item):not(.open-action):not(.danger),.auth-entry-screen button:hover:not(:disabled){background:var(--hover-surface)}.workspace-active .rail-user-card,.workspace-active .rail-user-card:hover{transition:background .16s var(--ease),box-shadow .16s var(--ease)}.workspace-active .rail-user-card:hover{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-soft-line),var(--shadow-1)}.workspace-active .rail-user-card:hover small{color:var(--accent)}.auth-entry-screen .auth-submit:hover:not(:disabled){border-color:var(--accent-strong);color:#fff;background:var(--accent-strong)}.app-shell.workspace-active{background:radial-gradient(1100px 420px at 82% -160px,rgba(29,78,216,.08),transparent 70%),linear-gradient(180deg,#f2f4f8,#f7f7f4 340px,#fbfaf8 720px)}.workspace-active .dataset-head{grid-template-columns:minmax(220px,1.3fr) 72px 92px 88px minmax(178px,1fr) 104px 210px;min-width:984px;min-height:44px;padding-left:var(--space-5);padding-right:var(--space-5);border-bottom-color:var(--line-soft);color:#6b7280;background:#f7f8fb;text-transform:none;letter-spacing:.01em;font-size:.78rem;font-weight:700}.format-badge{display:inline-flex;align-items:center;padding:3px 10px;border:1px solid var(--line-soft-2);border-radius:var(--radius-pill);background:var(--sunken-soft);color:#3d434d;font-size:.74rem;font-weight:800;letter-spacing:.04em}.format-badge--laz{border-color:#e2dbf7;background:#f4f0fd;color:#6d4fd1}.format-badge--las{border-color:#f2e3c4;background:#fdf6e6;color:#a0721c}.format-badge--copc{border-color:#c9ebe6;background:#e9f8f5;color:#0f8a7d}.muted-value{color:#a3aab4;font-weight:600}.workspace-active .rail-nav-item span:first-child:before{content:"";display:inline-block;width:6px;height:6px;margin-right:9px;border-radius:999px;background:#c6cdd8;vertical-align:2px;transition:background .16s var(--ease)}.workspace-active .rail-nav-item.active span:first-child:before{background:var(--accent)}.workspace-active .rail-nav-item.static span:first-child:before{content:none}.notification-stack{top:14px;right:auto;left:50%;transform:translate(-50%)}.workspace-active .app-notification,.app-shell.viewer-active .app-notification{border-color:var(--line-soft-2, #e1ddd5);color:#15181e;background:#fff;box-shadow:inset 3px 0 0 var(--status-idle-dot, #8ea0a8),0 2px 6px #15181e1a,0 18px 44px -16px #15181e57}.workspace-active .app-notification.success,.app-shell.viewer-active .app-notification.success{box-shadow:inset 3px 0 0 var(--status-ready-dot, #2f9e44),0 2px 6px #15181e1a,0 18px 44px -16px #15181e57}.workspace-active .app-notification.error,.app-shell.viewer-active .app-notification.error{box-shadow:inset 3px 0 0 var(--status-failed-dot, #d64545),0 2px 6px #15181e1a,0 18px 44px -16px #15181e57}.app-shell.viewer-active .app-notification{border-color:#2a2f36;color:#f6f8f8;background:#15171b}@media(prefers-reduced-motion:no-preference){.app-notification,.success-panel{animation:toast-in .22s var(--ease, ease-out)}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}}@media(max-width:640px){.upload-float-panel{top:auto;right:12px;bottom:12px;left:12px;width:auto;max-width:none}.upload-float-body{max-height:38vh}}.workspace-active .project-screen{position:relative}.drop-catch-overlay{position:absolute;top:10px;right:10px;bottom:10px;left:10px;z-index:40;display:grid;place-items:center;border:2px dashed var(--accent);border-radius:var(--radius-card);background:#eef4feeb;color:#15181e;font-size:1.05rem;font-weight:700;pointer-events:none}.workspace-active .skeleton{position:relative;overflow:hidden;border-radius:var(--radius-sm);background:var(--sunken-soft);color:transparent;pointer-events:none;-webkit-user-select:none;user-select:none}@media(prefers-reduced-motion:no-preference){.workspace-active .skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);animation:skeleton-shimmer 1.4s ease-in-out infinite}@keyframes skeleton-shimmer{to{transform:translate(100%)}}}.workspace-active .notification-stack{top:auto;right:auto;bottom:24px;left:50%;transform:translate(-50%)}@media(prefers-reduced-motion:no-preference){.workspace-active .app-notification{animation:toast-in-up .22s var(--ease, ease-out)}@keyframes toast-in-up{0%{opacity:0;transform:translateY(8px)}}}.workspace-active button:not(.secondary):not(.danger):not(.brand-button):not(.rail-nav-item):not(.rail-subnav-item):not(.select-menu-option):not(.rail-user-card):not(.auth-link):not(.auth-password-toggle):not(.project-card-body):not(.open-action):not(.project-action-btn):not(.command-palette-item):not(.upload-float-icon-btn):not(.project-card--new):disabled{border-color:var(--line-soft-2);color:var(--ink-disabled);background:var(--sunken-soft);box-shadow:none;opacity:1}.workspace-active button.secondary:disabled,.workspace-active button.danger:disabled{border-color:var(--line-soft-2);color:var(--ink-disabled);background:var(--sunken-soft);box-shadow:none;opacity:1}.workspace-active .open-action.disabled,.workspace-active .open-action:disabled{border-color:var(--line-soft-2);color:var(--ink-disabled);background:var(--sunken-soft);box-shadow:none;opacity:1;cursor:not-allowed}.workspace-active .project-list{grid-template-columns:repeat(auto-fill,minmax(300px,360px))}.workspace-active .project-card--new{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:220px;border:1.5px dashed var(--line-soft-2);border-radius:var(--radius-card);color:var(--ink-3);background:var(--surface-tint);box-shadow:none;font-weight:700;transition:border-color .15s var(--ease),color .15s var(--ease),background .15s var(--ease)}.workspace-active .project-card--new:hover:not(:disabled){border-color:var(--accent-soft-line);color:var(--accent-ink);background:var(--hover-surface, #fff);box-shadow:none;transform:none}.workspace-active .empty-state,.workspace-active .project-empty-state{border:1px solid var(--line-soft);border-radius:var(--radius-card);color:var(--ink-3);background:var(--surface-tint)}.app-shell.viewer-active{--radius-card: 16px;--radius-control: 10px;--radius-pill: 999px;--line-soft: rgba(255, 255, 255, .09);--line-soft-2: rgba(255, 255, 255, .15);--surface-tint: rgba(17, 20, 26, .8);--sunken-soft: rgba(0, 0, 0, .34);--fill-ghost: rgba(255, 255, 255, .05);--fill-ghost-2: rgba(255, 255, 255, .095);--glass-chip: rgba(12, 15, 20, .68);--accent: #0097a7;--accent-strong: #19d4d2;--accent-tint: rgba(25, 212, 210, .13);--accent-line: rgba(25, 212, 210, .36);--accent-ink: #a3f0ed;--shadow-1: 0 1px 1px rgba(0, 0, 0, .3), 0 2px 8px -2px rgba(0, 0, 0, .36);--shadow-2: 0 1px 2px rgba(0, 0, 0, .34), 0 10px 26px -10px rgba(0, 0, 0, .55);--shadow-lift: 0 2px 5px rgba(0, 0, 0, .36), 0 20px 44px -14px rgba(0, 0, 0, .62);--shadow-pop: 0 2px 8px rgba(0, 0, 0, .42), 0 28px 68px -18px rgba(0, 0, 0, .7);--shadow-focus: 0 0 0 3px rgba(25, 212, 210, .22);--edge-top: inset 0 1px 0 rgba(255, 255, 255, .055);--ease: cubic-bezier(.32, .72, 0, 1)}.viewer-active .viewer-bar-back,.viewer-active .viewer-bar-right button.secondary,.viewer-active .viewer-panel-toggle-button,.viewer-active .viewer-show-controls-button,.viewer-active .viewer-mode-button,.viewer-active .viewer-camera-button,.viewer-active .viewer-link-button,.viewer-active .viewer-class-preset,.viewer-active .viewer-class-toggle,.viewer-active .viewer-refresh-button{transition:background .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease),box-shadow .15s var(--ease),transform .12s var(--ease)}@keyframes viewer-chrome-in{0%{opacity:0;transform:translateY(4px) scale(.99)}}.viewer-active .topbar{border-bottom-color:#ffffff12;background:#0b0e13}.viewer-active .viewer-bar{gap:16px;padding:0 20px}.viewer-active .viewer-bar-back{gap:7px;min-height:32px;border:1px solid var(--line-soft);border-radius:var(--radius-pill);padding:0 14px;color:var(--text-secondary);background:var(--fill-ghost);font-size:.78rem;font-weight:650}.viewer-active .viewer-bar-back:hover:not(:disabled){border-color:var(--line-soft-2);color:var(--text-primary);background:var(--fill-ghost-2)}.viewer-active .viewer-bar-back:active:not(:disabled){transform:translateY(.5px)}.viewer-active .viewer-bar-fmt{border:0;border-radius:6px;padding:3px 8px;color:var(--text-muted);background:#ffffff12;font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.1em}.viewer-active .viewer-bar-name{color:#b6bfc6;font-size:.8rem}.viewer-active .viewer-bar-right .status-pill{min-height:26px;border-color:var(--line-soft);border-radius:var(--radius-pill);padding:2px 11px;color:var(--text-secondary);background:var(--fill-ghost);font-size:.72rem;font-weight:650}.viewer-active .viewer-bar-right .status-pill.status-ready{border-color:#7dcc3d42;color:var(--status-ready);background:#7dcc3d17}.viewer-active .viewer-bar-right .status-pill.status-validating,.viewer-active .viewer-bar-right .status-pill.status-uploading,.viewer-active .viewer-bar-right .status-pill.status-uploaded,.viewer-active .viewer-bar-right .status-pill.status-mock-classifying,.viewer-active .viewer-bar-right .status-pill.status-publishing,.viewer-active .viewer-bar-right .status-pill.status-created{border-color:#f2c44f42;color:var(--status-processing);background:#f2c44f17}.viewer-active .viewer-bar-right .status-pill.status-failed,.viewer-active .viewer-bar-right .status-pill.status-validation-failed{border-color:#ff6b6b4d;color:var(--status-failed);background:#ff6b6b1a}.viewer-active .viewer-bar-right button.secondary{min-height:32px;border-color:var(--line-soft);border-radius:var(--radius-pill);color:var(--text-secondary);background:var(--fill-ghost);font-weight:650}.viewer-active .viewer-bar-right button.secondary:hover:not(:disabled){border-color:var(--line-soft-2);color:var(--text-primary);background:var(--fill-ghost-2)}.viewer-active .viewer-bar-right button.secondary:active:not(:disabled){transform:translateY(.5px)}.viewer-active .viewer-control-panel{top:20px;left:20px;width:min(332px,calc(100% - 40px));max-height:calc(100% - 40px);border:1px solid var(--line-soft);border-radius:var(--radius-card);background:var(--surface-tint);box-shadow:var(--shadow-pop),var(--edge-top);-webkit-backdrop-filter:blur(22px) saturate(1.4);backdrop-filter:blur(22px) saturate(1.4);overscroll-behavior:contain;animation:viewer-chrome-in .28s var(--ease)}.viewer-active .viewer-panel-header{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 12px 12px 16px;border-bottom:1px solid var(--line-soft);background:#11141ae0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.viewer-active .viewer-panel-title{color:var(--text-primary);font-size:.78rem;font-weight:700;letter-spacing:.01em}.viewer-active .viewer-panel-toggle-button{display:inline-flex;align-items:center;justify-content:center;width:26px;min-height:26px;border:1px solid rgba(255,255,255,0);border-radius:var(--radius-pill);padding:0;color:var(--text-muted);background:none}.viewer-active .viewer-panel-toggle-button svg{display:block}.viewer-active .viewer-panel-toggle-button:hover:not(:disabled){border-color:var(--line-soft);color:var(--text-primary);background:var(--fill-ghost-2)}.viewer-active .viewer-panel-toggle-button:active:not(:disabled){transform:translateY(.5px)}.viewer-active .viewer-show-controls-button{top:20px;left:20px;display:inline-flex;align-items:center;gap:8px;min-height:36px;border:1px solid var(--line-soft);border-radius:var(--radius-pill);padding:0 16px 0 13px;color:var(--text-secondary);background:var(--glass-chip);box-shadow:var(--shadow-lift),var(--edge-top);-webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3);font-size:.78rem;font-weight:650;letter-spacing:.01em;animation:viewer-chrome-in .24s var(--ease)}.viewer-active .viewer-show-controls-button svg{display:block;color:var(--accent-strong)}.viewer-active .viewer-show-controls-button:hover:not(:disabled){border-color:var(--line-soft-2);color:var(--text-primary);background:#161a21cc;transform:translateY(-1px);box-shadow:var(--shadow-pop),var(--edge-top)}.viewer-active .viewer-show-controls-button:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-lift),var(--edge-top)}.viewer-active .viewer-control-section{padding:14px 16px 16px;border-bottom-color:var(--line-soft)}.viewer-active .viewer-control-heading,.viewer-active .viewer-slider-label{margin-bottom:10px;color:#8a939a;font-size:.63rem;font-weight:750;letter-spacing:.12em}.viewer-active .viewer-heading-count{color:var(--text-muted);font-family:var(--mono);font-size:.66rem;font-weight:600;letter-spacing:0;font-variant-numeric:tabular-nums;text-transform:none}.viewer-active .viewer-section-status{margin:8px 0;color:var(--text-muted);font-size:.68rem;line-height:1.35}.viewer-active .viewer-section-control-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-bottom:10px}.viewer-active .viewer-section-depth-input{min-height:34px;font-family:var(--mono);font-size:.8rem}.viewer-active .viewer-section-secondary-button{min-width:82px}.viewer-active .viewer-section-step-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin-bottom:8px}.viewer-active .viewer-section-focus-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin-bottom:10px}.viewer-active .viewer-section-cut-button{width:100%;min-width:0}.viewer-active .viewer-section-exit-button{width:100%;min-width:0;margin-bottom:0}.viewer-active .viewer-mode-tabs{flex-wrap:nowrap;gap:2px;padding:3px;border-radius:calc(var(--radius-control) + 2px);background:var(--sunken-soft);box-shadow:inset 0 1px 2px #00000059,inset 0 0 0 1px #ffffff0a}.viewer-active .viewer-mode-button{flex:1 1 0;min-width:0;min-height:28px;border:0;border-radius:calc(var(--radius-control) - 3px);padding:5px 4px;color:var(--text-secondary);background:none;font-size:.72rem;font-weight:650;white-space:nowrap}.viewer-active .viewer-mode-button:hover:not(:disabled):not(.active){color:var(--text-primary);background:var(--fill-ghost)}.viewer-active .viewer-mode-button.active{border:0;color:var(--accent-ink);background:var(--accent-tint);box-shadow:inset 0 0 0 1px var(--accent-line),0 1px 2px #00000059}.viewer-active .viewer-camera-actions{gap:7px}.viewer-active .viewer-camera-button{min-height:30px;border:1px solid var(--line-soft);border-radius:var(--radius-control);padding:5px 8px;color:var(--text-secondary);background:var(--fill-ghost);font-size:.74rem;font-weight:600}.viewer-active .viewer-camera-button:hover:not(:disabled){border-color:var(--line-soft-2);color:var(--text-primary);background:var(--fill-ghost-2)}.viewer-active .viewer-camera-button.active{border-color:#67e8f96b;color:var(--text-primary);background:#67e8f91f}.viewer-active .viewer-camera-button:active:not(:disabled){transform:translateY(.5px)}.viewer-active .viewer-slider-label output{color:var(--accent-strong);font-size:.7rem;font-weight:600;font-variant-numeric:tabular-nums}.viewer-active .viewer-point-size-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;accent-color:var(--accent)}.viewer-active .viewer-point-size-slider:focus,.viewer-active .viewer-point-size-slider:focus-visible{border:0;outline:none}.viewer-active .viewer-point-size-slider::-webkit-slider-runnable-track{height:4px;border-radius:var(--radius-pill);background:#ffffff24}.viewer-active .viewer-point-size-slider::-webkit-slider-thumb{-webkit-appearance:none;width:15px;height:15px;margin-top:-5.5px;border:0;border-radius:50%;background:#e8ecef;box-shadow:0 0 0 1px #00000073,0 1px 3px #00000080;transition:transform .14s var(--ease),background .14s var(--ease)}.viewer-active .viewer-point-size-slider:hover::-webkit-slider-thumb{transform:scale(1.08)}.viewer-active .viewer-point-size-slider:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 1px #00000073,0 1px 3px #00000080,var(--shadow-focus)}.viewer-active .viewer-point-size-slider::-moz-range-track{height:4px;border-radius:var(--radius-pill);background:#ffffff24}.viewer-active .viewer-point-size-slider::-moz-range-progress{height:4px;border-radius:var(--radius-pill);background:#19d4d266}.viewer-active .viewer-point-size-slider::-moz-range-thumb{width:15px;height:15px;border:0;border-radius:50%;background:#e8ecef;box-shadow:0 0 0 1px #00000073,0 1px 3px #00000080}.viewer-active .viewer-point-size-slider:focus-visible::-moz-range-thumb{box-shadow:0 0 0 1px #00000073,0 1px 3px #00000080,var(--shadow-focus)}.viewer-active .viewer-class-actions{margin-bottom:8px;gap:4px}.viewer-active .viewer-link-button{min-height:24px;border:0;border-radius:var(--radius-pill);padding:3px 9px;color:var(--accent-strong);background:none;font-size:.7rem;font-weight:650}.viewer-active .viewer-link-button:hover:not(:disabled){color:var(--accent-ink);background:#19d4d21a}.viewer-active .viewer-class-preset-actions{margin-bottom:12px;gap:6px}.viewer-active .viewer-class-preset{min-height:26px;border:1px solid var(--line-soft);border-radius:var(--radius-pill);padding:4px 11px;color:var(--text-secondary);background:var(--fill-ghost);font-size:.7rem;font-weight:600}.viewer-active .viewer-class-preset:hover:not(:disabled):not(.active){border-color:var(--line-soft-2);color:var(--text-primary);background:var(--fill-ghost-2)}.viewer-active .viewer-class-preset:active:not(:disabled){transform:translateY(.5px)}.viewer-active .viewer-class-preset.active{border-color:var(--accent-line);color:var(--accent-ink);background:var(--accent-tint)}.viewer-active .viewer-class-list{gap:2px;max-height:min(42vh,380px);padding-right:4px}.viewer-active .viewer-class-toggle{min-height:32px;grid-template-columns:14px minmax(0,1fr) auto;gap:10px;border:1px solid rgba(255,255,255,0);border-radius:calc(var(--radius-control) - 1px);padding:6px 9px;color:#dfe5e8;background:none;font-size:.75rem;font-weight:600}.viewer-active .viewer-class-toggle.visible{border-color:#fff0;color:#dfe5e8;background:none}.viewer-active .viewer-class-toggle:hover:not(:disabled){border-color:var(--line-soft);color:#f6f8f8;background:var(--fill-ghost)}.viewer-active .viewer-class-toggle:active:not(:disabled){background:var(--fill-ghost-2)}.viewer-active .viewer-class-toggle:not(.visible){opacity:1;color:var(--text-muted)}.viewer-active .viewer-class-toggle:not(.visible):after{content:"hidden";content:"hidden" / "";justify-self:end;color:#626b72;font-size:.56rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.viewer-active .viewer-class-swatch{position:relative;width:14px;height:14px;border:0;border-radius:4.5px;box-shadow:inset 0 0 0 1px #ffffff38,inset 0 -2px 3px #00000038,0 0 0 1px #00000059;transition:transform .15s var(--ease),filter .15s var(--ease)}.viewer-active .viewer-class-toggle:hover:not(:disabled) .viewer-class-swatch{transform:scale(1.1)}.viewer-active .viewer-class-toggle:not(.visible) .viewer-class-swatch{filter:saturate(.2) brightness(.6)}.viewer-active .viewer-class-toggle:not(.visible) .viewer-class-swatch:after{content:"";position:absolute;left:50%;top:-1px;bottom:-1px;width:1.5px;border-radius:1px;transform:translate(-50%) rotate(45deg);background:#e6e9ec}.viewer-active .viewer-refresh-button{min-height:32px;border:1px solid var(--line-soft);border-radius:var(--radius-control);padding:6px 10px;color:var(--text-secondary);background:var(--fill-ghost);font-size:.75rem;font-weight:650}.viewer-active .viewer-refresh-button:hover:not(:disabled){border-color:var(--line-soft-2);color:var(--text-primary);background:var(--fill-ghost-2)}.viewer-active .viewer-refresh-button:active:not(:disabled){transform:translateY(.5px)}.viewer-active .viewer-stream-chip{position:absolute;z-index:2;right:20px;bottom:20px;display:inline-flex;align-items:center;gap:7px;min-height:28px;border:1px solid var(--line-soft);border-radius:var(--radius-pill);padding:4px 12px 4px 11px;background:var(--glass-chip);box-shadow:var(--shadow-2),var(--edge-top);-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);pointer-events:none;-webkit-user-select:none;user-select:none;animation:viewer-chrome-in .24s var(--ease)}.viewer-active .viewer-stream-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-strong);box-shadow:0 0 6px #19d4d28c}.viewer-active .viewer-stream-chip.streaming .viewer-stream-dot{animation:viewer-stream-pulse 1.6s var(--ease) infinite}@keyframes viewer-stream-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}.viewer-active .viewer-stream-count{color:var(--text-primary);font-family:var(--mono);font-size:.74rem;font-weight:600;font-variant-numeric:tabular-nums}.viewer-active .viewer-stream-unit{color:var(--text-muted);font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.viewer-active .viewer-problem-overlay{right:20px;bottom:20px;border-color:#ff6b6b57;border-radius:var(--radius-card);padding:10px 14px;background:#200a0cd1;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--shadow-pop);font-size:.78rem}.viewer-active .error-panel{border-radius:var(--radius-card);border-color:#ff6b6b52}.viewer-active .copc-viewer-status,.viewer-active .preview-state{border:1px solid var(--line-soft);border-radius:var(--radius-pill);padding:6px 12px;color:var(--text-secondary);background:var(--glass-chip);font-family:var(--mono);font-size:.72rem;box-shadow:var(--shadow-2),var(--edge-top)}.viewer-active .viewer-empty-state{gap:10px}.viewer-active .viewer-empty-state .eyebrow{color:var(--text-muted);letter-spacing:.14em}.viewer-active .viewer-empty-state h2{color:var(--text-primary);font-size:1.3rem;font-weight:700;letter-spacing:-.01em}.viewer-active .viewer-empty-state p{max-width:46ch;font-size:.85rem}.viewer-active .viewer-control-panel,.viewer-active .viewer-class-list{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}.viewer-active .viewer-control-panel::-webkit-scrollbar,.viewer-active .viewer-class-list::-webkit-scrollbar{width:9px}.viewer-active .viewer-control-panel::-webkit-scrollbar-track,.viewer-active .viewer-class-list::-webkit-scrollbar-track{background:transparent}.viewer-active .viewer-control-panel::-webkit-scrollbar-thumb,.viewer-active .viewer-class-list::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:var(--radius-pill);background-clip:padding-box;background-color:#ffffff29}.viewer-active .viewer-control-panel::-webkit-scrollbar-thumb:hover,.viewer-active .viewer-class-list::-webkit-scrollbar-thumb:hover{background-color:#ffffff42}.viewer-active .viewer-bar-back:focus-visible,.viewer-active .viewer-bar-right button.secondary:focus-visible,.viewer-active .viewer-panel-toggle-button:focus-visible,.viewer-active .viewer-show-controls-button:focus-visible,.viewer-active .viewer-mode-button:focus-visible,.viewer-active .viewer-camera-button:focus-visible,.viewer-active .viewer-link-button:focus-visible,.viewer-active .viewer-class-preset:focus-visible,.viewer-active .viewer-class-toggle:focus-visible,.viewer-active .viewer-refresh-button:focus-visible{outline:none;border-color:var(--accent-line);box-shadow:var(--shadow-focus)}.viewer-active .viewer-mode-button.active:focus-visible{box-shadow:inset 0 0 0 1px var(--accent-line),var(--shadow-focus)}.viewer-active .viewer-show-controls-button:focus-visible{box-shadow:var(--shadow-lift),var(--edge-top),var(--shadow-focus)}@media(max-width:820px){.viewer-active .viewer-control-panel{top:12px;left:12px;width:min(300px,calc(100% - 24px));max-height:calc(100% - 24px)}.viewer-active .viewer-show-controls-button{top:12px;left:12px}.viewer-active .viewer-stream-chip,.viewer-active .viewer-problem-overlay{right:12px;bottom:12px}}@media(prefers-reduced-motion:reduce){.app-shell.viewer-active *,.app-shell.viewer-active *:before,.app-shell.viewer-active *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.app-shell.viewer-active .viewer-bar-back:active:not(:disabled),.app-shell.viewer-active .viewer-bar-right button.secondary:active:not(:disabled),.app-shell.viewer-active .viewer-panel-toggle-button:active:not(:disabled),.app-shell.viewer-active .viewer-show-controls-button:hover:not(:disabled),.app-shell.viewer-active .viewer-show-controls-button:active:not(:disabled),.app-shell.viewer-active .viewer-camera-button:active:not(:disabled),.app-shell.viewer-active .viewer-class-preset:active:not(:disabled),.app-shell.viewer-active .viewer-refresh-button:active:not(:disabled){transform:none}.app-shell.viewer-active .viewer-class-toggle:hover:not(:disabled) .viewer-class-swatch,.app-shell.viewer-active .viewer-point-size-slider:hover::-webkit-slider-thumb{transform:none}.app-shell.viewer-active .viewer-stream-chip.streaming .viewer-stream-dot{animation:none}}.app-shell.viewer-active .viewer-selection-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:2;pointer-events:none}.app-shell.viewer-active .viewer-selection-overlay rect,.app-shell.viewer-active .viewer-selection-overlay polygon{fill:#19d4d214;stroke:#19d4d2d9;stroke-width:1.5;stroke-dasharray:6 4}.app-shell.viewer-active .viewer-selection-overlay line,.app-shell.viewer-active .viewer-selection-overlay polyline{fill:none;stroke:#ffc64af5;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.app-shell.viewer-active .viewer-selection-overlay .viewer-line-doomed-region{fill:#ffc64a29;stroke:#ffc64a5c;stroke-width:1}.app-shell.viewer-active .viewer-selection-overlay circle{fill:#fff4d2fa;stroke:#ffc64af2;stroke-width:1.5}.app-shell.viewer-active .viewer-selection-overlay .viewer-brush-trail{stroke:#7ce8e6e0;stroke-width:1.5}.app-shell.viewer-active .viewer-selection-overlay .viewer-brush-stamp{fill:#19d4d21a;stroke:#7ce8e6e6;stroke-width:1.4;stroke-dasharray:5 4}.app-shell.viewer-active .viewer-section-draw-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:2;pointer-events:none}.app-shell.viewer-active .viewer-section-draw-overlay polygon{fill:none;stroke:#7ce8e6e6;stroke-width:1.5;stroke-dasharray:7 5}.app-shell.viewer-active .viewer-section-draw-overlay polyline{fill:none;stroke:#fffffff5;stroke-width:2;stroke-linecap:round}.app-shell.viewer-active .viewer-section-draw-overlay circle{fill:#fff;stroke:#19d4d2f2;stroke-width:1.5}.app-shell.viewer-active .viewer-edit-action-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;margin-bottom:8px}.app-shell.viewer-active .viewer-edit-class-grid{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:6px;margin-bottom:8px}.app-shell.viewer-active .viewer-edit-class-field{display:grid;gap:4px;min-width:0;color:var(--text-tertiary);font-size:.68rem}.app-shell.viewer-active .viewer-edit-brush-radius{display:grid;grid-template-columns:auto minmax(72px,1fr);align-items:center;gap:8px;margin:-2px 0 8px;color:var(--text-tertiary);font-size:.68rem}.app-shell.viewer-active .viewer-edit-class-select{flex:1;min-width:0;min-height:30px;padding:4px 8px;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-control, 10px);color:var(--text-primary);background:#ffffff0d;font-size:.78rem}.app-shell.viewer-active .viewer-edit-swap-button{min-width:54px}.app-shell.viewer-active .viewer-edit-assign-action{grid-column:1 / -1}.app-shell.viewer-active .viewer-edit-tool-status{margin:-2px 0 8px;color:var(--text-tertiary);font-size:.72rem;line-height:1.35}.app-shell.viewer-active .viewer-edit-publish-status{margin:0 0 8px;font-size:.72rem;line-height:1.35;color:var(--text-tertiary)}.app-shell.viewer-active .viewer-edit-publish-status--publishing{color:var(--status-processing-ink)}.app-shell.viewer-active .viewer-edit-publish-status--ready{color:var(--status-ready-ink)}.app-shell.viewer-active .viewer-edit-publish-status--failed{color:var(--status-failed-ink)}.viewer-toolbar{position:absolute;z-index:4;top:12px;left:12px;right:12px;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}.viewer-toolbar>*{pointer-events:auto;max-width:100%}@media(prefers-reduced-motion:no-preference){.viewer-toolbar-bar{animation:vt-drop-in .22s cubic-bezier(.32,.72,0,1) both}}@keyframes vt-drop-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.viewer-toolbar-bar{position:relative;z-index:2;display:flex;align-items:center;justify-content:flex-start;flex-wrap:nowrap;gap:6px;max-width:100%;padding:5px 7px;border:1px solid rgba(0,151,167,.34);border-radius:11px;background:#0b1015eb;box-shadow:0 18px 46px #00000080,inset 0 1px #ffffff0a;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.vt-tools{display:flex;align-items:center;flex-wrap:wrap;gap:4px;flex:0 1 auto;min-width:0}.vt-group{display:flex;align-items:center;gap:2px}.vt-group-primary{gap:6px;flex:0 0 auto;align-self:center}.vt-sep{width:1px;height:20px;margin:0 3px;background:#92a2b066}.vt-divider{width:1px;align-self:stretch;margin:2px 4px;background:#92a2b080}.vt-btn{display:inline-flex;align-items:center;justify-content:center;min-width:34px;min-height:34px;padding:0 6px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text-secondary);font-size:.78rem;font-weight:700;line-height:1;cursor:pointer;transition:background .14s ease,border-color .14s ease,color .14s ease}.vt-btn-icon{display:inline-flex;font-size:1.05rem}.vt-btn:hover:not(:disabled){border-color:#788c9a80;background:#ffffff0e;color:var(--text-primary)}.vt-btn:focus-visible{outline:none;border-color:#19d4d2cc;box-shadow:0 0 0 2px #19d4d247}.vt-btn:disabled{opacity:.36;cursor:not-allowed}.vt-btn.active{border-color:#19d4d2b8;background:#0097a73d;color:#eafcfb}.vt-btn-label{min-width:40px;padding:0 9px;font-size:.72rem;letter-spacing:.01em;font-variant-numeric:tabular-nums}.vt-btn-positive:not(:disabled){color:#6ad79a}.vt-btn-positive:not(:disabled):hover{border-color:#63d48999;background:#63d48929;color:#8fe6b3}.vt-btn-danger:not(:disabled){color:#ff8b8b}.vt-btn-danger:not(:disabled):hover{border-color:#ff6b6b99;background:#ff6b6b24;color:#ffb0b0}.vt-btn-collapse{min-width:28px;color:var(--text-muted)}.vt-publish{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 14px;border:1px solid rgba(25,212,210,.5);border-radius:8px;background:linear-gradient(180deg,#0fa3b4,#0a8b9a);color:#f2ffff;font-size:.76rem;font-weight:800;letter-spacing:.01em;white-space:nowrap;cursor:pointer;box-shadow:0 2px 10px #0097a752;transition:filter .14s ease,box-shadow .14s ease}.vt-publish .vt-btn-icon{display:inline-flex}.vt-spinner{width:13px;height:13px;border-radius:50%;border:2px solid rgba(242,255,255,.35);border-top-color:#f2ffff;animation:vt-spin .7s linear infinite}@keyframes vt-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.vt-spinner{animation-duration:1.6s}}.vt-publish:hover:not(:disabled){filter:brightness(1.1);box-shadow:0 3px 14px #0097a770}.vt-publish:focus-visible{outline:none;box-shadow:0 0 0 2px #19d4d266}.vt-publish:disabled{border-color:#788c9a57;background:#ffffff0d;color:var(--text-muted);box-shadow:none;cursor:not-allowed}.vt-pop{position:relative;display:inline-flex}.vt-pop>summary{list-style:none;position:relative}.vt-pop>summary::-webkit-details-marker{display:none}.vt-btn-summary{gap:3px}.vt-pop[open]>.vt-btn-summary{border-color:#19d4d2b8;background:#0097a73d;color:#eafcfb}.vt-badge{min-width:15px;height:15px;padding:0 4px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#19d4d2e6;color:#05242a;font-size:.6rem;font-weight:800;font-variant-numeric:tabular-nums}.vt-pop-panel{position:absolute;z-index:6;top:calc(100% + 8px);left:0;width:max-content;max-width:min(300px,82vw);padding:10px;border:1px solid rgba(0,151,167,.34);border-radius:10px;background:#0d1218f7;box-shadow:0 20px 52px #0000008c;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.vt-pop-classes,.vt-pop-settings{right:0;left:auto}.vt-pop-settings{width:268px}.vt-pop-camera,.vt-pop-color{left:50%;right:auto;width:190px;transform:translate(-50%)}.vt-camera-grid,.vt-mode-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.vt-camera-grid .viewer-camera-button,.vt-mode-list .viewer-camera-button{width:100%;margin:0;justify-content:center}.vt-color-summary{min-width:58px}.vt-pop-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px;color:var(--text-muted);font-size:.64rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.vt-pop-empty{margin:4px 2px;color:var(--text-muted);font-size:.74rem;line-height:1.4}.vt-pop-action{width:100%;display:flex;align-items:center;gap:7px;margin-top:8px;justify-content:flex-start}.vt-pop-action-icon{display:inline-flex;font-size:.95rem;color:var(--text-muted)}.vt-pop-settings .viewer-slider-label{margin-bottom:4px}.viewer-toolbar-context{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 10px;max-width:100%;padding:6px 10px;border:1px solid rgba(92,108,120,.28);border-radius:9px;background:#0b1015db;box-shadow:0 12px 30px #0006;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.vt-ctx-group{display:flex;align-items:center;gap:6px}.vt-ctx-group+.vt-ctx-group{padding-left:10px;border-left:1px solid rgba(146,162,176,.2)}.vt-ctx-label{color:var(--text-muted);font-size:.62rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.vt-ctx-field{display:inline-flex;align-items:center;gap:6px}.vt-ctx-field .viewer-edit-class-select{min-height:30px;font-size:.75rem}.vt-swatch{flex:0 0 auto;width:12px;height:12px;border-radius:3px;border:1px solid rgba(255,255,255,.28);pointer-events:none}.vt-swatch[data-any=true]{background-image:linear-gradient(135deg,transparent 44%,rgba(174,182,186,.9) 44%,rgba(174,182,186,.9) 56%,transparent 56%);border-style:dashed}.vt-ctx-swap{min-width:30px;min-height:30px}.vt-seg{display:inline-flex;border:1px solid rgba(120,140,154,.42);border-radius:8px;overflow:hidden}.vt-seg-btn{min-height:30px;padding:0 10px;border:0;border-right:1px solid rgba(120,140,154,.32);background:#12191fb3;color:var(--text-secondary);font-size:.72rem;font-weight:700;cursor:pointer;transition:background .14s ease,color .14s ease}.vt-seg-btn:last-child{border-right:0}.vt-seg-btn:hover:not(:disabled){background:#ffffff0f;color:var(--text-primary)}.vt-seg-btn.active{background:#0097a747;color:#eafcfb}.vt-seg-btn:disabled{opacity:.4;cursor:not-allowed}.vt-num{width:74px;min-height:30px;font-family:var(--mono);font-size:.76rem}.vt-step{min-width:28px;min-height:30px;border-color:#788c9a6b;font-size:1rem;font-weight:700}.vt-ctx-note,.vt-ctx-count{color:var(--text-muted);font-family:var(--mono);font-size:.7rem;font-variant-numeric:tabular-nums}.vt-ctx-count{color:var(--accent-strong)}.viewer-toolbar-status{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 12px;max-width:min(720px,100%);padding:4px 12px;border-radius:999px;background:#090d11d1;color:var(--text-secondary);font-size:.72rem;line-height:1.35;text-align:center;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.vt-status-text{color:var(--text-secondary)}@media(max-width:900px){.viewer-toolbar{left:8px;right:8px;align-items:stretch}.viewer-toolbar-bar{justify-content:flex-start}}.vt-setting-group{display:grid;gap:6px;margin-bottom:12px}.vt-setting-label{color:var(--text-muted);font-size:.68rem;font-weight:750;letter-spacing:0}.vt-setting-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;padding:3px;border:1px solid rgba(120,140,154,.3);border-radius:8px;background:#00000047}.vt-setting-option{min-width:0;min-height:32px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:6px;color:var(--text-secondary);background:transparent;font-size:.74rem;font-weight:700;letter-spacing:0;cursor:pointer}.vt-setting-option:hover:not(:disabled){color:var(--text-primary);background:#ffffff0f}.vt-setting-option.active{color:var(--accent-ink);background:var(--accent-tint);box-shadow:inset 0 0 0 1px var(--accent-line)}.vt-setting-option:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.app-shell.viewer-active[data-viewer-appearance=light],.review-workbench[data-viewer-appearance=light]{color-scheme:light;--text-primary: #101828;--text-secondary: #475467;--text-muted: #7a8494;--border-subtle: #d8dee8;--border-strong: #c2cad6;--accent: #2f6fed;--accent-strong: #245fd3;--accent-tint: #eaf1ff;--accent-line: #a8c1f8;--accent-ink: #1749a5;--line-soft: #e2e7ee;--line-soft-2: #cbd3df;--surface-tint: rgba(255, 255, 255, .97);--sunken-soft: #eef2f7;--fill-ghost: #f5f7fa;--fill-ghost-2: #edf1f6;--glass-chip: rgba(255, 255, 255, .94);--shadow-1: 0 1px 2px rgba(16, 24, 40, .08), 0 4px 12px rgba(16, 24, 40, .08);--shadow-2: 0 2px 5px rgba(16, 24, 40, .1), 0 12px 26px rgba(16, 24, 40, .12);--shadow-lift: 0 4px 12px rgba(16, 24, 40, .12), 0 18px 38px rgba(16, 24, 40, .12);--shadow-pop: 0 8px 24px rgba(16, 24, 40, .16), 0 2px 5px rgba(16, 24, 40, .1);--shadow-focus: 0 0 0 3px rgba(47, 111, 237, .22);--edge-top: inset 0 1px 0 rgba(255, 255, 255, .9)}.app-shell.viewer-active[data-viewer-appearance=light]{background:#eef1f5}.app-shell.viewer-active[data-viewer-appearance=light] .topbar{border-bottom-color:#d9e0e8;background:#fff;box-shadow:0 1px 2px #1018280a}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-bar-back{border-color:#d9e0e8;border-radius:8px;color:#475467;background:#f8fafc}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-bar-back:hover:not(:disabled),.app-shell.viewer-active[data-viewer-appearance=light] .viewer-bar-right button.secondary:hover:not(:disabled){border-color:#bfc9d7;color:#101828;background:#eef2f7}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-bar-fmt{color:#1749a5;background:#eaf1ff;letter-spacing:0}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-bar-name{color:#344054}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-bar-right .status-pill{border-color:#d9e0e8;color:#475467;background:#f8fafc}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-bar-right .status-pill.status-ready{border-color:#b7dfc2;color:#16713a;background:#edf9f0}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-bar-right .status-pill.status-validating,.app-shell.viewer-active[data-viewer-appearance=light] .viewer-bar-right .status-pill.status-uploading,.app-shell.viewer-active[data-viewer-appearance=light] .viewer-bar-right .status-pill.status-uploaded,.app-shell.viewer-active[data-viewer-appearance=light] .viewer-bar-right .status-pill.status-mock-classifying,.app-shell.viewer-active[data-viewer-appearance=light] .viewer-bar-right .status-pill.status-publishing,.app-shell.viewer-active[data-viewer-appearance=light] .viewer-bar-right .status-pill.status-created{border-color:#eadba8;color:#765700;background:#fff8df}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-bar-right .status-pill.status-failed,.app-shell.viewer-active[data-viewer-appearance=light] .viewer-bar-right .status-pill.status-validation-failed{border-color:#f2b8bd;color:#a62b35;background:#fff0f1}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-bar-right button.secondary{border-color:#d9e0e8;border-radius:8px;color:#475467;background:#fff}.app-shell.viewer-active[data-viewer-appearance=light] .app-notification{border-color:#d9e0e8;color:#101828;background:#fff}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-loading-panel{border-color:#d9e0e8;color:#475467;background:#fff}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-screen>.error-panel{border-color:#efb6bb;color:#475467;background:#fff0f1}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-screen>.error-panel strong{color:#a62b35}.review-workbench[data-viewer-appearance=light] .viewer-toolbar{top:14px;left:16px;right:16px;gap:7px}.review-workbench[data-viewer-appearance=light] .viewer-canvas--split{gap:1px;background:#d4dbe5}.review-workbench[data-viewer-appearance=light] .viewer-canvas--split .viewer-pane--split{border-left:0}.review-workbench[data-viewer-appearance=light] .viewer-canvas--split .viewer-pane--cut{border-top:0}.review-workbench[data-viewer-appearance=light] .viewer-canvas--split .viewer-pane.is-active-pane{box-shadow:inset 0 0 0 1.5px #2f6fed80}.review-workbench[data-viewer-appearance=light] .viewer-toolbar-bar{gap:5px;padding:5px 6px;border-color:#d4dbe5;border-radius:8px;background:#fffffff7;box-shadow:0 8px 24px #10182829,0 1px 3px #1018281a;backdrop-filter:blur(18px) saturate(1.1);-webkit-backdrop-filter:blur(18px) saturate(1.1)}.review-workbench[data-viewer-appearance=light] .vt-tools{gap:3px}.review-workbench[data-viewer-appearance=light] .vt-sep,.review-workbench[data-viewer-appearance=light] .vt-divider{background:#d7dde6}.review-workbench[data-viewer-appearance=light] .vt-btn{border-radius:7px;color:#475467;letter-spacing:0}.review-workbench[data-viewer-appearance=light] .vt-btn:hover:not(:disabled){border-color:#dde3eb;color:#101828;background:#f1f4f8}.review-workbench[data-viewer-appearance=light] .vt-btn:focus-visible{border-color:#7ea4f4;box-shadow:var(--shadow-focus)}.review-workbench[data-viewer-appearance=light] .vt-btn.active,.review-workbench[data-viewer-appearance=light] .vt-pop[open]>.vt-btn-summary{border-color:#2f6fed;color:#fff;background:#2f6fed;box-shadow:0 2px 5px #2f6fed42}.review-workbench[data-viewer-appearance=light] .vt-btn-positive:not(:disabled){color:#16804a}.review-workbench[data-viewer-appearance=light] .vt-btn-positive:not(:disabled):hover{border-color:#a8d8bb;color:#0f6b3d;background:#edf8f1}.review-workbench[data-viewer-appearance=light] .vt-btn-danger:not(:disabled){color:#c13d47}.review-workbench[data-viewer-appearance=light] .vt-btn-danger:not(:disabled):hover{border-color:#efb6bb;color:#a92c36;background:#fff0f1}.review-workbench[data-viewer-appearance=light] .vt-publish{border-color:#2f6fed;border-radius:7px;color:#fff;background:#2f6fed;box-shadow:0 2px 8px #2f6fed47;letter-spacing:0}.review-workbench[data-viewer-appearance=light] .vt-publish:hover:not(:disabled){filter:none;background:#245fd3;box-shadow:0 4px 12px #2f6fed52}.review-workbench[data-viewer-appearance=light] .vt-publish:disabled{border-color:#dfe4eb;color:#98a2b3;background:#f2f4f7;box-shadow:none}.review-workbench[data-viewer-appearance=light] .vt-pop-panel{border-color:#d4dbe5;border-radius:8px;color:#101828;background:#fffffffb;box-shadow:0 12px 32px #1018282e,0 2px 5px #10182814}.review-workbench[data-viewer-appearance=light] .vt-pop-title{color:#344054;font-size:.76rem;letter-spacing:0;text-transform:none}.review-workbench[data-viewer-appearance=light] .vt-pop-empty,.review-workbench[data-viewer-appearance=light] .vt-pop-action-icon{color:#667085}.review-workbench[data-viewer-appearance=light] .vt-setting-label,.review-workbench[data-viewer-appearance=light] .viewer-slider-label{color:#667085;letter-spacing:0;text-transform:none}.review-workbench[data-viewer-appearance=light] .vt-setting-options{border-color:#dce2ea;background:#eef2f7}.review-workbench[data-viewer-appearance=light] .vt-setting-option{color:#667085}.review-workbench[data-viewer-appearance=light] .vt-setting-option:hover:not(:disabled){color:#101828;background:#ffffffb8}.review-workbench[data-viewer-appearance=light] .vt-setting-option.active{color:#1749a5;background:#fff;box-shadow:0 1px 3px #1018281f,inset 0 0 0 1px #cbd8f5}.review-workbench[data-viewer-appearance=light] .viewer-toolbar-context{border-color:#d4dbe5;border-radius:8px;color:#344054;background:#fffffff5;box-shadow:0 8px 22px #10182824}.review-workbench[data-viewer-appearance=light] .vt-ctx-group+.vt-ctx-group{border-left-color:#dce2ea}.review-workbench[data-viewer-appearance=light] .vt-ctx-label,.review-workbench[data-viewer-appearance=light] .vt-ctx-note{color:#667085;letter-spacing:0}.review-workbench[data-viewer-appearance=light] .vt-ctx-count{color:#245fd3}.review-workbench[data-viewer-appearance=light] .vt-swatch{border-color:#10182847}.review-workbench[data-viewer-appearance=light] .vt-seg{border-color:#cbd3df;background:#eef2f7}.review-workbench[data-viewer-appearance=light] .vt-seg-btn{border-right-color:#d5dce6;color:#475467;background:transparent;letter-spacing:0}.review-workbench[data-viewer-appearance=light] .vt-seg-btn:hover:not(:disabled){color:#101828;background:#fff}.review-workbench[data-viewer-appearance=light] .vt-seg-btn.active{color:#fff;background:#2f6fed}.review-workbench[data-viewer-appearance=light] .viewer-toolbar-status{border:1px solid #d9e0e8;color:#475467;background:#fffffff0;box-shadow:0 5px 16px #1018281f}.review-workbench[data-viewer-appearance=light] .vt-status-text{color:#475467}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-edit-class-select{border-color:#d7dee8;color:#101828;background:#fff}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-camera-button{border-color:#dce2ea;color:#475467;background:#f8fafc}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-camera-button:hover:not(:disabled){border-color:#c4cdd9;color:#101828;background:#eef2f7}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-link-button{color:#245fd3}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-link-button:hover:not(:disabled){color:#1749a5;background:#eaf1ff}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-class-preset{border-color:#dce2ea;color:#475467;background:#f8fafc}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-class-preset:hover:not(:disabled):not(.active){border-color:#c4cdd9;color:#101828;background:#eef2f7}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-class-preset.active{border-color:#a8c1f8;color:#1749a5;background:#eaf1ff}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-class-toggle,.app-shell.viewer-active[data-viewer-appearance=light] .viewer-class-toggle.visible{border-color:transparent;color:#344054;background:transparent}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-class-toggle:hover:not(:disabled){border-color:#e0e5ec;color:#101828;background:#f4f6f9}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-class-toggle:not(.visible){color:#8a94a4}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-class-toggle:not(.visible):after{color:#98a2b3}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-class-swatch{box-shadow:inset 0 0 0 1px #ffffff73,inset 0 -2px 3px #00000029,0 0 0 1px #10182847}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-class-toggle:not(.visible) .viewer-class-swatch:after{background:#475467}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-point-size-slider::-webkit-slider-runnable-track{background:#dce2ea}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-point-size-slider::-webkit-slider-thumb{background:#fff;box-shadow:0 0 0 1px #aab4c2,0 1px 3px #10182838}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-point-size-slider::-moz-range-track{background:#dce2ea}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-point-size-slider::-moz-range-progress{background:#2f6fed}.app-shell.viewer-active[data-viewer-appearance=light] .viewer-point-size-slider::-moz-range-thumb{background:#fff;box-shadow:0 0 0 1px #aab4c2,0 1px 3px #10182838}.review-workbench[data-viewer-appearance=light] .viewer-stream-chip,.review-workbench[data-viewer-appearance=light] .viewer-show-controls-button,.review-workbench[data-viewer-appearance=light] .viewer-split-chip{border-color:#d4dbe5;color:#475467;background:#fffffff0;box-shadow:0 6px 18px #10182824}.review-workbench[data-viewer-appearance=light] .viewer-show-controls-button{border-radius:8px}.review-workbench[data-viewer-appearance=light] .viewer-show-controls-button svg,.review-workbench[data-viewer-appearance=light] .viewer-stream-dot{color:#245fd3;background:#2f6fed}.review-workbench[data-viewer-appearance=light] .viewer-show-controls-button:hover:not(:disabled){border-color:#bfc9d7;color:#101828;background:#fff}.review-workbench[data-viewer-appearance=light] .viewer-stream-count{color:#101828}.review-workbench[data-viewer-appearance=light] .viewer-stream-unit{color:#667085;letter-spacing:0}.review-workbench[data-viewer-appearance=light] .viewer-split-chip button{color:#667085}.review-workbench[data-viewer-appearance=light] .viewer-split-chip button:hover{border-color:#d4dbe5;color:#101828;background:#eef2f7}.review-workbench[data-viewer-appearance=light] .viewer-split-chip.is-active{border-color:#7fa5f5;color:#1749a5;box-shadow:0 0 0 1px #2f6fed1f,0 6px 18px #10182824}.review-workbench[data-viewer-appearance=light] .viewer-stage.is-editing{box-shadow:var(--shadow-panel),inset 0 0 0 2px #2f6fedb8}.review-workbench[data-viewer-appearance=light] .viewer-edit-mode-cue{border-color:#2f6fed;color:#fff;background:#2f6fed;box-shadow:0 6px 18px #1018282e;letter-spacing:0}.review-workbench[data-viewer-appearance=light] .viewer-edit-mode-dot{background:#fff;box-shadow:0 0 0 3px #ffffff40}.review-workbench[data-viewer-appearance=light] .viewer-problem-overlay{border-color:#efb6bb;color:#8f2530;background:#fff4f5f5}@media(max-width:900px){.review-workbench[data-viewer-appearance=light] .viewer-toolbar{left:8px;right:8px}.review-workbench[data-viewer-appearance=light] .viewer-toolbar-bar{padding:5px}}@media(max-width:640px){.app-shell.viewer-active .viewer-bar{gap:8px;padding:0 8px}.app-shell.viewer-active .viewer-bar-back{flex:0 0 auto;min-height:40px;padding:0 10px;font-size:.7rem;white-space:nowrap}.app-shell.viewer-active .viewer-bar-file{flex:1 1 auto;gap:6px;overflow:hidden}.app-shell.viewer-active .viewer-bar-fmt{flex:0 0 auto;padding:3px 6px}.app-shell.viewer-active .viewer-bar-right{flex:0 0 auto;margin-left:0}.app-shell.viewer-active .viewer-bar-right button.secondary{min-height:40px;padding-inline:10px;font-size:.7rem;white-space:nowrap}.review-workbench .viewer-toolbar-bar{gap:4px;padding:5px}.review-workbench .vt-btn,.review-workbench .vt-publish{min-width:44px;min-height:44px}.review-workbench .vt-btn-label{min-width:48px}.review-workbench .vt-btn-collapse{min-width:40px}}.review-workbench.has-height-profile{grid-template-rows:minmax(0,1fr) 214px}.review-workbench.has-height-profile .viewer-stage{min-height:0}.height-profile-panel{min-width:0;min-height:0;display:grid;grid-template-columns:150px minmax(260px,1fr) minmax(430px,auto);gap:16px;align-items:stretch;padding:12px 16px;border-top:1px solid rgba(255,255,255,.14);background:#10151c;color:#eef3f8}.height-profile-header{min-width:0;display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding-top:3px}.height-profile-header h2{margin:0;font-size:.92rem;line-height:1.2;letter-spacing:0}.height-profile-header p{margin:5px 0 0;color:#98a6b7;font-size:.72rem;line-height:1.35}.height-profile-close{width:28px;height:28px;flex:0 0 28px;display:inline-grid;place-items:center;border:1px solid rgba(255,255,255,.16);border-radius:6px;background:transparent;color:#c9d3de;cursor:pointer}.height-profile-close:hover,.height-profile-close:focus-visible{border-color:#73a7ff;color:#fff;outline:none}.height-profile-chart{position:relative;min-width:0;min-height:150px;overflow:hidden;border-left:1px solid rgba(255,255,255,.1);border-right:1px solid rgba(255,255,255,.1)}.height-profile-plot{position:absolute;top:8px;right:12px;bottom:8px;left:12px}.height-profile-plot svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.height-profile-axis{stroke:#ffffff2e;stroke-width:1;vector-effect:non-scaling-stroke}.height-profile-line{fill:none;stroke:#4e8df5;stroke-width:2;vector-effect:non-scaling-stroke}.height-profile-sample{position:absolute;z-index:1;left:var(--sample-x);top:var(--sample-y);width:11px;height:11px;padding:0;border:2px solid #10151c;border-radius:50%;background:#73a7ff;transform:translate(-50%,-50%);cursor:pointer}.height-profile-sample:hover,.height-profile-sample:focus-visible,.height-profile-sample.active{width:15px;height:15px;border-color:#fff;background:#ffc857;outline:none}.height-profile-metrics{min-width:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(90px,1fr));align-content:center;border-left:1px solid rgba(255,255,255,.12)}.height-profile-metrics>div{min-width:0;padding:7px 12px}.height-profile-metrics dt{color:#8f9cab;font-size:.65rem;font-weight:700;line-height:1.2;text-transform:uppercase}.height-profile-metrics dd{margin:4px 0 0;color:#f7f9fc;font-size:.84rem;font-variant-numeric:tabular-nums;line-height:1.2}.review-workbench[data-viewer-appearance=light] .height-profile-panel{border-top-color:#ccd5df;background:#fff;color:#111827}.review-workbench[data-viewer-appearance=light] .height-profile-header p,.review-workbench[data-viewer-appearance=light] .height-profile-metrics dt{color:#667085}.review-workbench[data-viewer-appearance=light] .height-profile-close{border-color:#d4dce6;color:#475467}.review-workbench[data-viewer-appearance=light] .height-profile-chart{border-color:#e0e6ed}.review-workbench[data-viewer-appearance=light] .height-profile-axis{stroke:#d4dce6}.review-workbench[data-viewer-appearance=light] .height-profile-sample{border-color:#fff}.review-workbench[data-viewer-appearance=light] .height-profile-metrics{border-left-color:#e0e6ed}.review-workbench[data-viewer-appearance=light] .height-profile-metrics dd{color:#101828}@media(max-width:980px){.review-workbench.has-height-profile{grid-template-rows:minmax(0,1fr) 252px}.height-profile-panel{grid-template-columns:130px minmax(220px,1fr);grid-template-rows:minmax(120px,1fr) auto;gap:10px 14px}.height-profile-metrics{grid-column:1 / -1;grid-template-columns:repeat(6,minmax(80px,1fr));border-top:1px solid rgba(255,255,255,.12);border-left:0}}@media(max-width:640px){.review-workbench.has-height-profile{grid-template-rows:minmax(0,1fr) 300px}.height-profile-panel{grid-template-columns:1fr;grid-template-rows:auto minmax(110px,1fr) auto;padding:10px 12px}.height-profile-chart{min-height:110px;border:0}.height-profile-metrics{grid-column:1;grid-template-columns:repeat(3,minmax(80px,1fr))}.height-profile-metrics>div{padding:5px 8px}}.modal-backdrop{z-index:var(--z-modal);overflow-y:auto}.modal-backdrop>section{max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);overflow-y:auto}:root{--z-drop-overlay: 40;--z-float-panel: 60;--z-modal: 70;--z-palette: 80;--z-toast: 85;--z-popover: 90}.drop-catch-overlay{z-index:var(--z-drop-overlay)}.upload-float-panel{z-index:var(--z-float-panel)}.command-palette-backdrop{z-index:var(--z-palette)}.notification-stack{z-index:var(--z-toast)}.dataset-actions-popover,.select-menu-popover{z-index:var(--z-popover)}.select-menu-popover,.dataset-actions-popover{max-width:calc(100vw - 16px);max-height:min(340px,calc(100dvh - 16px));overflow-y:auto}@media(max-width:900px){.auth-entry-screen{grid-template-columns:minmax(0,1fr)}.auth-showcase{display:none}}@media(max-width:640px){.auth-form-column{padding:36px 20px}}@media(max-width:900px){.project-header{flex-direction:column;align-items:flex-start}.dataset-filter-bar{grid-template-columns:1fr;align-items:stretch}.dataset-filter-summary{justify-content:space-between}.metadata-grid{grid-template-columns:1fr}}@media(max-width:1240px)and (min-width:1081px){.workspace-active .dataset-head,.workspace-active .dataset-row{grid-template-columns:minmax(200px,1.3fr) 60px 80px 80px minmax(150px,1fr) 122px;min-width:700px}.workspace-active .dataset-cell--created{display:none}}@media(max-width:1080px){.workspace-active .dataset-table{overflow-x:visible}.workspace-active .dataset-head{display:none}.workspace-active .dataset-row{grid-template-columns:minmax(0,1fr);min-width:0;min-height:0;gap:8px;padding:14px;align-items:stretch}.workspace-active .dataset-row:hover{box-shadow:none}.workspace-active .cell-label{display:block;color:var(--ink-3, #6b7280);font-size:.68rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.workspace-active .dataset-action{flex-direction:row;align-items:center;gap:8px}.dataset-skeleton-row{grid-template-columns:1fr;min-height:0;padding:14px;gap:10px}}@media(max-width:640px){.member-row{flex-wrap:wrap}.member-identity{flex-basis:100%}.member-add-row,.settings-actions.settings-invite-row{flex-direction:column;align-items:stretch}.member-add-row .select-menu,.settings-invite-row .select-menu{display:block}.member-add-row .select-menu summary,.settings-invite-row .select-menu summary{width:100%}.settings-invite-row input{width:100%}.settings-form-grid{grid-template-columns:1fr}}.rail-user-menu{position:relative}.rail-user-menu summary.rail-user-card{width:100%;list-style:none;cursor:pointer}.rail-user-menu summary.rail-user-card::-webkit-details-marker{display:none}.rail-user-popover{position:absolute;bottom:calc(100% + 8px);left:0;right:0;z-index:var(--z-popover);display:grid;gap:6px;padding:10px;border:1px solid var(--line-soft-2, #e1ddd5);border-radius:12px;background:#fff;box-shadow:0 10px 30px -12px #15181e47}.rail-user-popover button{width:100%;justify-content:flex-start;text-align:left}.rail-user-identity{display:grid;gap:2px;padding:2px 4px 8px;border-bottom:1px solid var(--line-soft, #ece9e3)}.rail-user-identity strong{color:var(--ink, #15181e);font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-user-identity small{color:var(--ink-3, #6b7280);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:900px){.rail-user-popover{bottom:auto;top:calc(100% + 8px);left:auto;right:0;min-width:220px}}.dataset-actions-menu summary.dataset-actions-trigger{display:inline-grid;place-items:center;width:32px;min-height:32px;padding:0;color:var(--ink-3, #6b7280)}.workspace-active .dataset-actions-menu summary.dataset-actions-trigger:hover{color:var(--ink, #15181e)}@media(min-width:1241px){.workspace-active .dataset-head,.workspace-active .dataset-row{grid-template-columns:minmax(220px,1.3fr) 72px 92px 88px minmax(178px,1fr) 104px 122px;min-width:900px}}.workspace-active .dataset-head [role=columnheader]:last-child{text-align:right}.dataset-actions-menu summary.dataset-actions-trigger{width:34px;min-height:34px}.workspace-active .dataset-actions-popover button{min-height:32px;border:0;border-radius:8px;background:transparent;box-shadow:none;color:var(--ink, #15181e);font-weight:650}.workspace-active .dataset-actions-popover button:hover:not(:disabled){background:#f4f2ee;box-shadow:none}.workspace-active .dataset-actions-popover button.danger{color:#c0392b;background:transparent}.workspace-active .dataset-actions-popover button.danger:hover:not(:disabled){background:#fbe9e7}.workspace-active .dataset-actions-popover button:disabled{background:transparent;border-color:transparent;box-shadow:none;color:var(--ink-3, #6b7280);opacity:.55}.usage-meter{display:grid;grid-template-columns:160px minmax(0,1fr);align-items:center;gap:14px}.usage-meter-label{color:var(--ink, #15181e);font-size:.88rem;font-weight:650}.usage-meter-bar{position:relative;height:26px;overflow:hidden;border:1px solid var(--line-soft-2, #e1ddd5);border-radius:999px;background:var(--sunken-soft, #f4f2ee)}.usage-meter-fill{position:absolute;inset:0 auto 0 0;background:var(--accent, #1d4ed8);border-radius:999px;transition:width .4s var(--ease, ease)}.usage-meter-fill--hot{background:#c0392b}.usage-meter-value{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:flex-end;padding:0 12px;color:var(--ink, #15181e);font-family:var(--mono);font-size:.74rem;font-weight:700}.usage-meter-fill~.usage-meter-value,.usage-meter-bar .usage-meter-value{mix-blend-mode:normal}@media(max-width:640px){.usage-meter{grid-template-columns:1fr;gap:6px}}.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.plan-card{display:grid;grid-template-rows:auto auto 1fr auto;gap:12px;border:1px solid var(--line-soft, #ece9e3);border-radius:var(--radius-card, 14px);padding:18px;background:#fff;box-shadow:var(--shadow-2)}.plan-card--current{border-color:var(--accent, #1d4ed8);box-shadow:0 0 0 1px var(--accent, #1d4ed8),var(--shadow-2)}.plan-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.plan-card-head h3{margin:0;color:var(--ink, #15181e);font-size:1rem;font-weight:800}.plan-current-chip{color:var(--accent-ink, #1d4ed8);border-color:var(--accent-soft-line, #c7d8f9);background:var(--accent-soft, #eaf1fd)}.plan-price strong{color:var(--ink, #15181e);font-size:1.5rem;font-weight:850;letter-spacing:-.01em}.plan-price span{color:var(--ink-3, #6b7280);font-size:.82rem}.plan-features{margin:0;padding:0;list-style:none;display:grid;gap:7px;align-content:start}.plan-features li{position:relative;padding-left:20px;color:#47526a;font-size:.84rem;line-height:1.35}.plan-features li:before{content:"";position:absolute;left:0;top:5px;width:9px;height:9px;border-radius:50%;background:var(--accent-soft, #eaf1fd);box-shadow:inset 0 0 0 2px var(--accent, #1d4ed8)}.plan-card button{width:100%}.orders-head{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line-soft, #ece9e3);color:#6b7280;font-size:.68rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}@keyframes vecten-pop-in{0%{opacity:0;transform:translateY(4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}details[open]>.select-menu-popover,details[open]>.dataset-actions-popover,details[open]>.vt-pop-panel,details[open]>.rail-user-popover{animation:vecten-pop-in .14s var(--ease, ease-out)}@media(prefers-reduced-motion:reduce){details[open]>.select-menu-popover,details[open]>.dataset-actions-popover,details[open]>.vt-pop-panel,details[open]>.rail-user-popover{animation:none}}.member-row .select-menu summary{width:118px}.member-row>button{min-width:92px;justify-content:center}@media(max-width:640px){.member-row .select-menu summary{width:auto;min-width:118px}}.impersonation-banner{position:fixed;top:0;left:50%;transform:translate(-50%);z-index:var(--z-toast);display:flex;align-items:center;gap:14px;padding:8px 10px 8px 16px;border:1px solid #e7c76f;border-top:0;border-radius:0 0 12px 12px;background:#fdf6df;color:#6b5518;font-size:.86rem;box-shadow:0 8px 24px -10px #15181e4d}.admin-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.admin-stat{display:grid;gap:4px;padding:14px 16px;border:1px solid var(--line-soft, #ece9e3);border-radius:var(--radius-card, 14px);background:#fff;box-shadow:var(--shadow-2);text-align:left}.admin-stat strong{color:var(--ink, #15181e);font-size:1.35rem;font-weight:850;font-variant-numeric:tabular-nums}.admin-stat-label{color:#6b7280;font-size:.68rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.admin-stat-bad{color:#c0392b!important}.workspace-active button.admin-stat--link{border:1px solid var(--line-soft, #ece9e3);color:inherit;background:#fff;cursor:pointer}.workspace-active button.admin-stat--link:hover:not(:disabled){border-color:var(--accent, #1d4ed8);background:#fff}.admin-search input{min-width:240px}.admin-table-wrap{overflow-x:auto;padding:0 18px 18px}.admin-customers .admin-table-wrap{padding-top:6px}.admin-table{width:100%;border-collapse:collapse;font-size:.85rem}.admin-table th{padding:10px 12px;border-bottom:1px solid var(--line-soft, #ece9e3);color:#6b7280;font-size:.66rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase;text-align:left;white-space:nowrap}.admin-table td{padding:10px 12px;border-bottom:1px solid var(--line-soft, #ece9e3);color:var(--ink, #15181e);font-variant-numeric:tabular-nums;white-space:nowrap}.admin-table tbody tr:last-child td{border-bottom:0}.admin-row{cursor:pointer;transition:background .12s var(--ease, ease)}.admin-row:hover td{background:var(--sunken-soft, #f4f2ee)}.admin-cell-bad{color:#c0392b!important;font-weight:750}.admin-subhead{margin:6px 0 0;color:var(--ink, #15181e);font-size:.92rem;font-weight:800}.admin-billing-controls{justify-content:flex-start;flex-wrap:wrap}.admin-billing-controls input{width:auto;min-width:180px;height:34px;min-height:34px;border-color:var(--line-soft-2, #e1ddd5);border-radius:var(--radius-control, 9px);color:var(--ink, #15181e);background:#fff}.admin-check{display:flex;align-items:center;gap:10px;color:var(--ink, #15181e);font-size:.88rem}.admin-check input{width:16px;min-height:16px;accent-color:var(--accent, #1d4ed8)}.admin-banned-chip{margin-left:6px;color:#c0392b;border-color:#eccac4;background:#fbe9e7}.admin-filter-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.admin-error-row{border:1px solid var(--line-soft, #ece9e3);border-radius:10px;background:#fff}.admin-error-row summary{display:flex;align-items:center;gap:12px;padding:10px 14px;cursor:pointer;list-style:none}.admin-error-row summary::-webkit-details-marker{display:none}.admin-error-when{flex:none;color:#6b7280;font-family:var(--mono);font-size:.74rem}.admin-error-message{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink, #15181e);font-size:.85rem;font-weight:600}.admin-error-meta{margin:0;padding:12px 14px;overflow-x:auto;border-top:1px solid var(--line-soft, #ece9e3);background:var(--sunken-soft, #f4f2ee);color:#47526a;font-family:var(--mono);font-size:.74rem;line-height:1.5}@media(max-width:640px){.admin-billing-controls input{width:100%}.impersonation-banner{left:8px;right:8px;transform:none;flex-wrap:wrap}}:root{--spectrum: #1d4ed8}.app-shell.workspace-active{background:radial-gradient(1100px 420px at 82% -160px,rgba(29,78,216,.08),transparent 70%),radial-gradient(900px 380px at -10% 110%,rgba(95,181,59,.05),transparent 70%),linear-gradient(180deg,#f2f4f8,#f7f7f4 340px,#fbfaf8 720px)}.settings-page-head:after{content:"";width:64px;height:4px;margin-top:10px;border-radius:2px;background:var(--spectrum)}.workspace-active .project-header h1:after{content:"";display:block;width:64px;height:4px;margin-top:8px;border-radius:2px;background:var(--spectrum)}.workspace-active .rail-brand{position:relative}.workspace-active .rail-brand:after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:2px;border-radius:1px;background:var(--spectrum);opacity:.55}.settings-section .settings-section-heading .eyebrow:before{content:"";display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:50%;background:var(--accent);vertical-align:1px}#profile .eyebrow:before{background:var(--class-water)}#organization .eyebrow:before{background:#7c3aed}#organization-members .eyebrow:before{background:#7c3aed}#organization-workspaces .eyebrow:before{background:#7c3aed}#usage-plan .eyebrow:before,#usage-resources .eyebrow:before{background:var(--class-medium-vegetation)}#billing-information .eyebrow:before{background:var(--class-ground)}#orders .eyebrow:before{background:#d08a00}#security .eyebrow:before{background:var(--class-building)}#api-keys .eyebrow:before{background:var(--class-road-surface)}#admin-customer-usage .eyebrow:before{background:var(--class-medium-vegetation)}#admin-customer-members .eyebrow:before{background:#7c3aed}#admin-customer-activity .eyebrow:before{background:var(--class-water)}#admin-errors .eyebrow:before{background:var(--class-building)}.project-empty-state:before,.workspace-active .settings-empty:before,.workspace-active .empty-state:before{content:"";display:block;width:96px;height:5px;margin-bottom:12px;border-radius:3px;background:var(--spectrum);opacity:.85}.workspace-active .chip--tier-free{color:#47526a;border-color:var(--line-soft-2, #e1ddd5);background:var(--sunken-soft, #f4f2ee)}.workspace-active .chip--tier-premium{color:#1d4ed8;border-color:#c7d8f9;background:#eaf1fd}.workspace-active .chip--tier-advanced{color:#6d28d9;border-color:#ddd0f7;background:#f3eefe}.workspace-active .chip--tier-enterprise{color:#92600a;border-color:#ecd9a8;background:#fdf4dc}.workspace-active .chip--tier-none{color:#8a93a6;border-color:var(--line-soft, #ece9e3);background:#fff}.avatar-hue-1{background:var(--class-water)!important}.avatar-hue-2{background:var(--class-high-vegetation)!important}.avatar-hue-3{background:var(--class-ground)!important}.avatar-hue-4{background:var(--class-building)!important}.avatar-hue-5{background:#7c3aed!important}.avatar-hue-6{background:#0e7490!important}.admin-stat-label:before{content:"";display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:var(--accent);vertical-align:1px}.admin-stat-grid>:nth-child(1) .admin-stat-label:before{background:var(--class-water)}.admin-stat-grid>:nth-child(2) .admin-stat-label:before{background:var(--class-medium-vegetation)}.admin-stat-grid>:nth-child(3) .admin-stat-label:before{background:var(--class-low-vegetation)}.admin-stat-grid>:nth-child(4) .admin-stat-label:before{background:var(--class-ground)}.admin-stat-grid>:nth-child(5) .admin-stat-label:before{background:var(--class-building)}.admin-stat-grid>:nth-child(6) .admin-stat-label:before{background:#d08a00}.admin-stat-grid>:nth-child(7) .admin-stat-label:before{background:#7c3aed}@keyframes vecten-head-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.settings-page-head,.workspace-active .project-header{animation:vecten-head-in .24s var(--ease, ease-out)}@keyframes vecten-meter-in{0%{transform:scaleX(0)}}.usage-meter-fill{transform-origin:left center;animation:vecten-meter-in .6s var(--ease, ease-out)}@keyframes vecten-breathe{0%,to{opacity:1}50%{opacity:.62}}.status-pill.status-uploading,.status-pill.status-uploaded,.status-pill.status-validating,.status-pill.status-mock-classifying,.status-pill.status-publishing{animation:vecten-breathe 2.2s ease-in-out infinite}.plan-card{transition:transform .16s var(--ease, ease),box-shadow .16s var(--ease, ease)}.plan-card:hover{transform:translateY(-2px);box-shadow:0 10px 30px -14px #15181e52}.admin-stat{transition:transform .16s var(--ease, ease),box-shadow .16s var(--ease, ease)}.workspace-active button.admin-stat--link:hover:not(:disabled){transform:translateY(-2px)}@media(prefers-reduced-motion:reduce){.settings-page-head,.workspace-active .project-header,.usage-meter-fill,.status-pill.status-uploading,.status-pill.status-uploaded,.status-pill.status-validating,.status-pill.status-mock-classifying,.status-pill.status-publishing{animation:none}.plan-card:hover,.workspace-active button.admin-stat--link:hover:not(:disabled){transform:none}}.rail-subnav-nested{margin:0 0 2px;padding-left:22px}.workspace-active .delete-modal button.danger:not(:disabled){border-color:#c0392b;color:#fff;background:#c0392b}.workspace-active .delete-modal button.danger:hover:not(:disabled){border-color:#a93226;color:#fff;background:#a93226}.landing-screen{--l-accent: #1f6feb;--l-accent-hover: #1a5fd0;--l-ink: #15181e;--l-ink-2: #3d434d;--l-ink-3: #6b7280;--l-paper: #fbfaf8;--l-line: #e7e4dd;--l-dark: #0c1018;--l-display: Archivo, Figtree, ui-sans-serif, system-ui, sans-serif;min-height:100vh;margin:0;padding:0;color:var(--l-ink);background:var(--l-paper);font-family:Figtree,ui-sans-serif,system-ui,sans-serif}@media(prefers-reduced-motion:no-preference){html:has(.landing-screen){scroll-behavior:smooth}}.landing-shell{max-width:1120px;margin:0 auto;padding-left:24px;padding-right:24px}.landing-screen a{color:inherit;text-decoration:none}.landing-nav{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--l-line);background:#fbfaf8e0;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.landing-nav-row{display:flex;align-items:center;justify-content:space-between;gap:24px;height:62px}.landing-brand{display:inline-flex;align-items:center;gap:10px}.landing-brand-mark img{display:block;width:26px;height:26px}.landing-wordmark{font-size:15.5px;color:var(--l-ink)}.landing-wordmark strong{font-weight:750}.landing-nav-links{display:flex;gap:26px}.landing-nav-links a{font-size:14px;font-weight:500;color:var(--l-ink-2)}.landing-nav-links a:hover{color:var(--l-ink)}.landing-nav-actions{display:flex;align-items:center;gap:10px}.landing-btn,.landing-btn-secondary,.landing-btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:4px;padding:9px 16px;font-family:Figtree,ui-sans-serif,system-ui,sans-serif;font-size:13.5px;font-weight:600;line-height:1.2;cursor:pointer;box-shadow:none;transition:background-color .14s ease,border-color .14s ease,color .14s ease}.landing-btn{border:1px solid var(--l-accent);color:#fff;background:var(--l-accent)}.landing-btn:hover:not(:disabled){border-color:var(--l-accent-hover);color:#fff;background:var(--l-accent-hover)}.landing-btn-secondary{border:1px solid var(--l-line);color:var(--l-ink);background:#fff}.landing-btn-secondary:hover{border-color:var(--l-ink-3);color:var(--l-ink);background:#fff}.landing-btn-ghost{border:1px solid transparent;color:var(--l-ink-2);background:transparent}.landing-btn-ghost:hover:not(:disabled){color:var(--l-ink);background:transparent;border-color:transparent}.landing-btn span[aria-hidden],.landing-btn-secondary span[aria-hidden],.landing-card-link span[aria-hidden]{transition:transform .14s ease}.landing-btn:hover span[aria-hidden],.landing-btn-secondary:hover span[aria-hidden],.landing-card-link:hover span[aria-hidden]{transform:translate(2px)}.landing-eyebrow{display:block;font-size:11.5px;font-weight:650;letter-spacing:.14em;text-transform:uppercase;color:var(--l-ink-3)}.landing-eyebrow:before{content:"";display:inline-block;width:22px;height:2px;margin-right:10px;vertical-align:3px;background:var(--l-accent)}.landing-eyebrow-dark{color:#ffffff9e}.landing-hero{display:grid;grid-template-columns:1.04fr .96fr;align-items:center;gap:56px;padding-top:76px;padding-bottom:84px}.landing-hero-copy h1{margin:18px 0 0;font-family:var(--l-display);font-size:clamp(34px,4.6vw,54px);font-weight:640;letter-spacing:-.018em;line-height:1.05;color:var(--l-ink)}.landing-accent-text{color:var(--l-accent)}.landing-lede{margin:20px 0 0;max-width:56ch;font-size:16.5px;line-height:1.6;color:var(--l-ink-2)}.landing-chips{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 0;padding:0;list-style:none}.landing-chips li{border:1px solid var(--l-line);border-radius:3px;padding:5px 9px;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--l-ink-2);background:#fff}.landing-hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.landing-hero-frame{display:grid;grid-template-rows:auto 1fr auto;overflow:hidden;border:1px solid rgba(255,255,255,.09);border-radius:10px;background:var(--l-dark);box-shadow:0 24px 60px #10182847,0 4px 14px #1018282e}.landing-frame-bar{display:flex;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid rgba(255,255,255,.07)}.landing-frame-dots{display:inline-flex;gap:5px}.landing-frame-dots i{width:8px;height:8px;border-radius:50%;background:#ffffff29}.landing-frame-title{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:#ffffff85}.landing-cloud{position:relative;min-height:330px;overflow:hidden}.landing-cloud-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:34px 34px;-webkit-mask-image:radial-gradient(ellipse 90% 85% at 50% 55%,#000 40%,transparent 100%);mask-image:radial-gradient(ellipse 90% 85% at 50% 55%,#000 40%,transparent 100%)}.landing-cloud:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 70% 55% at 50% 78%,rgba(31,111,235,.16),transparent 70%)}.landing-cloud-point{position:absolute;border-radius:50%}.landing-cloud-point.ground{background:var(--class-ground)}.landing-cloud-point.veg{background:var(--class-medium-vegetation)}.landing-cloud-point.building{background:var(--class-building)}.landing-cloud-point.water{background:var(--class-water)}.landing-cloud-point.wire{background:var(--class-wire-conductor)}.landing-cloud-point.noise{background:var(--class-low-noise)}.landing-frame-legend{display:flex;flex-wrap:wrap;gap:14px;padding:10px 14px;border-top:1px solid rgba(255,255,255,.07);font-family:var(--mono);font-size:11px;color:#fff9}.landing-frame-legend .dot{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;vertical-align:1px}.landing-frame-legend .dot.ground{background:var(--class-ground)}.landing-frame-legend .dot.veg{background:var(--class-medium-vegetation)}.landing-frame-legend .dot.building{background:var(--class-building)}.landing-frame-legend .dot.water{background:var(--class-water)}.landing-formats{padding-top:4px;padding-bottom:40px}.landing-formats-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px}.landing-format-badge{border:1px solid var(--l-line);border-radius:4px;padding:7px 13px;font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.08em;color:var(--l-ink);background:#fff}.landing-formats-row p{margin:0 0 0 8px;font-size:14.5px;color:var(--l-ink-3)}.landing-features{padding-top:30px;padding-bottom:72px}.landing-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:26px}.landing-card{position:relative;display:flex;flex-direction:column;gap:12px;border:1px solid var(--l-line);border-radius:6px;padding:26px 24px;background:#fff}.landing-card:before{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;pointer-events:none;background:linear-gradient(#15181e8c,#15181e8c) left top / 10px 1.5px,linear-gradient(#15181e8c,#15181e8c) left top / 1.5px 10px,linear-gradient(#15181e8c,#15181e8c) right top / 10px 1.5px,linear-gradient(#15181e8c,#15181e8c) right top / 1.5px 10px,linear-gradient(#15181e8c,#15181e8c) left bottom / 10px 1.5px,linear-gradient(#15181e8c,#15181e8c) left bottom / 1.5px 10px,linear-gradient(#15181e8c,#15181e8c) right bottom / 10px 1.5px,linear-gradient(#15181e8c,#15181e8c) right bottom / 1.5px 10px;background-repeat:no-repeat}.landing-card h3{margin:0;font-size:17px;font-weight:700;color:var(--l-ink)}.landing-card p{margin:0;font-size:14.5px;line-height:1.6;color:var(--l-ink-2)}.landing-module-list{display:grid;gap:10px;margin:4px 0 0;padding:0;list-style:none;font-size:13.5px;color:var(--l-ink-2)}.landing-module-list strong{display:inline-block;margin-right:6px;border:1px solid var(--l-line);border-radius:4px;padding:2px 7px;font-family:var(--mono);font-size:11.5px;font-weight:600;color:var(--l-ink);background:#f6f4ef}.landing-card-link{display:inline-flex;align-items:center;gap:6px;margin-top:auto;padding:6px 0 0;border:0;font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--l-accent);background:transparent;cursor:pointer}.landing-card-link:hover:not(:disabled){color:var(--l-accent-hover);background:transparent;border-color:transparent}.landing-band-dark{padding:26px 0}.landing-band-dark>.landing-shell{border-radius:14px;padding:54px 56px;color:#fff;background:radial-gradient(ellipse 60% 50% at 82% 10%,rgba(31,111,235,.14),transparent 65%),var(--l-dark)}.landing-band-lede{margin:18px 0 0;max-width:64ch;font-size:15.5px;line-height:1.65;color:#ffffffb8}.landing-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px;margin:44px 0 0;padding:0;list-style:none}.landing-flow li{position:relative}.landing-flow li:not(:last-child):after{content:"→";position:absolute;top:6px;right:-22px;color:#ffffff59}.landing-flow-node{display:inline-grid;place-items:center;width:34px;height:34px;border:1px solid rgba(255,255,255,.2);border-radius:50%;font-family:var(--mono);font-size:12px;color:#9db9f5}.landing-flow li:nth-child(2) .landing-flow-node{border-color:transparent;color:#fff;background:var(--l-accent);box-shadow:0 0 26px #1f6feb73}.landing-flow strong{display:block;margin-top:13px;font-size:14.5px;font-weight:650}.landing-flow small{display:block;margin-top:6px;font-size:12.5px;line-height:1.5;color:#ffffff8c}.landing-pricing{padding-top:72px;padding-bottom:76px}.landing-pricing h2{margin:16px 0 0;font-family:var(--l-display);font-size:clamp(28px,3.4vw,40px);font-weight:640;letter-spacing:-.018em;line-height:1.1;color:var(--l-ink)}.landing-pricing .landing-lede{margin-top:12px}.landing-plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:38px}.landing-plan{position:relative;display:flex;flex-direction:column;border:1px solid var(--l-line);border-radius:8px;padding:26px 24px;background:#fff}.landing-plan-featured{border-color:#b9cffb;box-shadow:0 14px 34px #1f6feb1f}.landing-plan-tag{position:absolute;top:-11px;left:22px;border-radius:3px;padding:3px 8px;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--l-accent)}.landing-plan h3{margin:0;font-size:15.5px;font-weight:700;color:var(--l-ink)}.landing-plan-price{margin:12px 0 0;font-family:var(--l-display);font-size:38px;font-weight:640;letter-spacing:-.02em;color:var(--l-ink)}.landing-plan-price small{font-family:Figtree,ui-sans-serif,system-ui,sans-serif;font-size:13px;font-weight:500;letter-spacing:0;color:var(--l-ink-3)}.landing-plan ul{margin:18px 0 22px;padding:0;list-style:none}.landing-plan li{padding:7px 0;border-top:1px solid #f0ede6;font-size:13.5px;color:var(--l-ink-2)}.landing-plan li:first-child{border-top:0}.landing-plan li:before{content:"";display:inline-block;width:5px;height:5px;margin-right:9px;border-radius:1px;vertical-align:2px;background:#1f6febbf}.landing-plan-cta{margin-top:auto;width:100%}.landing-pricing-note{margin:24px 0 0;font-size:14px;color:var(--l-ink-3)}.landing-pricing-note a{font-weight:600;color:var(--l-accent)}.landing-band-beige{border-top:1px solid #e9e3d7;border-bottom:1px solid #e9e3d7;padding:64px 0;background:#f2eee6}.landing-band-beige h2{margin:16px 0 34px;font-family:var(--l-display);font-size:clamp(26px,3.2vw,38px);font-weight:640;letter-spacing:-.018em;line-height:1.16;color:var(--l-ink)}.landing-band-beige .landing-card-grid{margin-top:0}.landing-band-cta .landing-cta-row{display:flex;align-items:center;justify-content:space-between;gap:32px}.landing-band-cta h2{margin:0;font-family:var(--l-display);font-size:clamp(24px,3vw,34px);font-weight:640;letter-spacing:-.015em;color:#fff}.landing-band-cta p{margin:10px 0 0;font-size:15px;color:#ffffffb3}.landing-band-cta .landing-btn{flex-shrink:0}.landing-footer{padding:56px 0 28px}.landing-footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}.landing-footer-brand p{margin:12px 0 0;max-width:36ch;font-size:13.5px;line-height:1.6;color:var(--l-ink-3)}.landing-footer-grid nav strong{display:block;margin-bottom:4px;font-size:12px;font-weight:650;letter-spacing:.1em;text-transform:uppercase;color:var(--l-ink-3)}.landing-footer-grid nav a,.landing-footer-grid nav button{display:block;margin-top:10px;padding:0;border:0;font-family:Figtree,ui-sans-serif,system-ui,sans-serif;font-size:14px;font-weight:500;text-align:left;color:var(--l-ink-2);background:transparent;cursor:pointer}.landing-footer-grid nav a:hover,.landing-footer-grid nav button:hover:not(:disabled){color:var(--l-accent);background:transparent}.landing-footer-legal{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:44px;padding-top:20px;border-top:1px solid var(--l-line);font-size:13px;color:var(--l-ink-3)}.landing-footer-legal a{font-weight:600;color:var(--l-ink-2)}.landing-footer-legal a:hover{color:var(--l-accent)}@media(max-width:1080px){.landing-hero{grid-template-columns:1fr;gap:40px;padding-top:56px;padding-bottom:64px}.landing-flow{grid-template-columns:repeat(2,minmax(0,1fr))}.landing-flow li:not(:last-child):after{content:none}}@media(max-width:900px){.landing-nav-links{display:none}.landing-card-grid,.landing-plan-grid{grid-template-columns:1fr}.landing-band-dark>.landing-shell{padding:40px 28px}.landing-flow{grid-template-columns:1fr;gap:24px}.landing-band-cta .landing-cta-row{flex-direction:column;align-items:flex-start}.landing-footer-grid{grid-template-columns:1fr 1fr}}@media(max-width:640px){.landing-hero-copy h1{font-size:clamp(30px,8.4vw,38px)}.landing-footer-grid{grid-template-columns:1fr;gap:24px}.landing-cloud{min-height:250px}}.landing-cloud-point{animation:landing-classify 7s linear infinite}.landing-cloud-point.ground{--pt: var(--class-ground)}.landing-cloud-point.veg{--pt: var(--class-medium-vegetation)}.landing-cloud-point.building{--pt: var(--class-building)}.landing-cloud-point.water{--pt: var(--class-water)}.landing-cloud-point.wire{--pt: var(--class-wire-conductor)}.landing-cloud-point.noise{--pt: var(--class-low-noise)}.landing-cloud-point.static{animation:none}@keyframes landing-classify{0%,4%{background:#4b5261}9%,76%{background:var(--pt)}86%,to{background:#4b5261}}.landing-cloud-scan{position:absolute;top:3%;bottom:3%;left:-2%;width:2px;border-radius:1px;background:linear-gradient(180deg,transparent,rgba(31,111,235,.9),transparent);box-shadow:0 0 18px #1f6feb8c;animation:landing-scan 7s linear infinite}@keyframes landing-scan{0%{left:-2%;opacity:0}3%{opacity:1}36%{opacity:1}40%,to{left:101%;opacity:0}}@media(prefers-reduced-motion:reduce){.landing-cloud-point{animation:none}.landing-cloud-scan{display:none}}.landing-card-visual{position:relative;overflow:hidden;height:150px;border:1px solid rgba(255,255,255,.08);border-radius:5px;background:radial-gradient(ellipse 75% 60% at 50% 85%,rgba(31,111,235,.13),transparent 70%),var(--l-dark)}.landing-mini-cloud{position:absolute;top:0;right:0;bottom:0;left:0}.landing-mini-toolbar{position:absolute;top:10px;left:8px;z-index:1;display:grid;gap:4px}.landing-mini-toolbar i{width:14px;height:14px;border:1px solid rgba(255,255,255,.18);border-radius:3px;background:#ffffff0f}.landing-mini-toolbar i:first-child{border-color:transparent;background:var(--l-accent)}.landing-mini-readout{position:absolute;right:8px;bottom:8px;border:1px solid rgba(255,255,255,.1);border-radius:3px;padding:2px 6px;font-family:var(--mono);font-size:9.5px;color:#fff9;background:#0c1018bf}.landing-card-visual-team{display:grid;place-content:center;justify-items:center;gap:11px}.landing-mini-avatars{display:flex}.landing-mini-avatars i{display:grid;place-items:center;width:30px;height:30px;border:2px solid var(--l-dark);border-radius:50%;font-family:var(--mono);font-size:10px;font-style:normal;font-weight:600;color:#fff}.landing-mini-avatars i+i{margin-left:-8px}.landing-mini-avatars .a1{background:#3f6cd0}.landing-mini-avatars .a2{background:#2e8b74}.landing-mini-avatars .a3{background:#5a6272}.landing-mini-roles{display:flex;gap:6px}.landing-mini-roles em{border:1px solid rgba(255,255,255,.16);border-radius:3px;padding:2px 7px;font-family:var(--mono);font-size:9.5px;font-style:normal;letter-spacing:.08em;text-transform:uppercase;color:#ffffffb8}.landing-mini-project{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#fff9}.landing-mini-project-dot{width:6px;height:6px;border-radius:2px;background:var(--class-medium-vegetation)}.landing-stats{padding-top:34px;padding-bottom:6px}.landing-stats dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;margin:0}.landing-stats div{border-left:2px solid var(--l-accent);padding-left:16px}.landing-stats dt{font-size:11.5px;font-weight:650;letter-spacing:.12em;text-transform:uppercase;color:var(--l-ink-3)}.landing-stats dd{margin:8px 0 0;font-family:var(--l-display);font-size:40px;font-weight:640;letter-spacing:-.02em;line-height:1;color:var(--l-ink)}.landing-stats dd small{display:block;margin-top:8px;font-family:Figtree,ui-sans-serif,system-ui,sans-serif;font-size:12.5px;font-weight:500;letter-spacing:0;line-height:1.5;color:var(--l-ink-3)}.landing-compare{padding-top:10px;padding-bottom:72px}.landing-compare h2{margin:16px 0 0;font-family:var(--l-display);font-size:clamp(26px,3.2vw,38px);font-weight:640;letter-spacing:-.018em;line-height:1.12;color:var(--l-ink)}.landing-compare-scroll{overflow-x:auto;margin-top:30px;border:1px solid var(--l-line);border-radius:8px;background:#fff}.landing-compare table{width:100%;min-width:640px;border-collapse:collapse;font-size:14px}.landing-compare thead th{padding:14px 18px;border-bottom:1px solid var(--l-line);font-size:12px;font-weight:650;letter-spacing:.1em;text-align:left;text-transform:uppercase;color:var(--l-ink-3)}.landing-compare thead th a{color:var(--l-ink-2)}.landing-compare thead th a:hover{color:var(--l-accent)}.landing-compare tbody th{width:190px;padding:13px 18px;border-top:1px solid #f0ede6;font-size:13px;font-weight:600;text-align:left;color:var(--l-ink-3)}.landing-compare td{padding:13px 18px;border-top:1px solid #f0ede6;color:var(--l-ink-2)}.landing-compare .landing-compare-cloud{background:#1f6feb0d;color:var(--l-ink)}.landing-compare thead th.landing-compare-cloud{color:var(--l-accent)}.landing-compare-same td{font-weight:600;color:var(--l-ink);background:#f8f6f1}.landing-faq{padding-top:0;padding-bottom:78px}.landing-faq h2{margin:16px 0 26px;font-family:var(--l-display);font-size:clamp(26px,3.2vw,38px);font-weight:640;letter-spacing:-.018em;color:var(--l-ink)}.landing-faq-list{display:grid;gap:10px;max-width:780px}.landing-faq details{border:1px solid var(--l-line);border-radius:6px;padding:0 18px;background:#fff}.landing-faq summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 0;list-style:none;cursor:pointer;font-size:15px;font-weight:600;color:var(--l-ink)}.landing-faq summary::-webkit-details-marker{display:none}.landing-faq summary:after{content:"+";font-family:var(--mono);font-size:16px;color:var(--l-ink-3)}.landing-faq details[open] summary:after{content:"–"}.landing-faq details p{margin:0;padding:0 0 16px;max-width:66ch;font-size:14.5px;line-height:1.65;color:var(--l-ink-2)}@media(max-width:900px){.landing-stats dl{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.landing-stats dl{grid-template-columns:1fr}}.landing-demo-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:18px}.landing-demo-readout{border:1px solid rgba(255,255,255,.12);border-radius:3px;padding:3px 8px;font-family:var(--mono);font-size:11px;color:#ffffffa6;background:#ffffff0a}.landing-demo-stage{position:relative;height:480px;margin-top:26px;overflow:hidden;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:#080b11}.landing-demo-stage .opengeo-lidar-viewport,.landing-demo-stage .opengeo-lidar-map{position:absolute;top:0;right:0;bottom:0;left:0}.landing-demo-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:16px}.landing-demo-placeholder .landing-mini-cloud{opacity:.55}.landing-demo-placeholder>*{position:relative;z-index:1}.landing-demo-placeholder .landing-mini-cloud{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.landing-demo-placeholder small,.landing-demo-placeholder span{font-family:var(--mono);font-size:11px;color:#ffffff8c}@media(max-width:640px){.landing-demo-stage{height:340px}}
