:root{--color-bg-base:#eceef1;--color-bg-viewport:#e4e7ea;--color-surface-base:#fff;--color-surface-raised:#f7f8fa;--color-surface-subtle:#f2f4f6;--color-surface-muted:#eef0f3;--color-surface-inset:#e5e8ec;--color-surface-hover:#fafbfc;--color-surface-progress-track:#e9ecf0;--color-text-strong:#1c1f23;--color-text-default:#3c4248;--color-text-secondary:#4d545b;--color-text-muted:#5f666d;--color-text-subtle:#7b8189;--color-text-quiet:#8b9198;--color-text-disabled:#a8aeb5;--color-text-on-strong:#fff;--color-accent-base:#e8604c;--color-accent-solid:#c9442f;--color-accent-foreground:#b83a28;--color-accent-surface:#fdeeeb;--color-accent-surface-soft:#fdf6f4;--color-accent-border-soft:#e8a89c;--color-accent-disabled:#f0b6ac;--color-focus-ring:var(--color-accent-solid);--color-border-subtle:#eef0f2;--color-border-default:#dde1e6;--color-border-section:#e3e6ea;--color-border-divider:var(--color-border-section);--color-border-strong:#d3d7dd;--color-border-input-idle:#c8ccd3;--color-border-hover:#b6bcc4;--color-border-viewport:#d9dde2;--color-border-overlay:var(--color-border-viewport);--color-border-chrome:#dcdfe4;--color-border-swatch:#cdd2d8;--color-border-accent:var(--color-accent-base);--color-border-accent-muted:var(--color-accent-border-soft);--color-border-transparent:transparent;--color-status-success-surface:#eaf6ef;--color-status-success-foreground:#256b40;--color-status-success-indicator:#3fae6e;--color-status-warning-surface:#fdf1e7;--color-status-warning-foreground:#8a4b0f;--color-status-error-surface:#fdeeeb;--color-status-error-foreground:#b83a28;--color-status-neutral-surface:#eef0f3;--color-status-neutral-foreground:#5f666d;--color-axis-x-east-longitude:#c0392b;--color-axis-y-north-latitude:#2f8f4e;--color-axis-z-up-elevation:#2f6fbf;--color-model-voxel:#a9b6c4;--color-model-selected:#e8604c;--color-model-processing:#dba25f;--color-model-edge:#5e6773;--color-model-edge-selected:#c9442f;--color-model-source:#8e99a6;--color-grid-minor:#b6bdc5;--color-grid-major:#8d959e;--color-overlay-scrim:#1c1f2352;--color-overlay-surface:#ffffffe6;--color-shadow-soft:#1c1f2312;--color-shadow-panel:#1c1f231a;--color-shadow-popover:#1c1f2329;--color-shadow-modal:#1c1f2338;--shadow-sm:0 12px 30px var(--color-shadow-popover);--shadow:0 18px 50px var(--color-shadow-modal);--radius-none:0;--radius-dot:2px;--radius-indicator:3px;--radius-control-sm:4px;--radius-control:5px;--radius-field-sm:6px;--radius-field:7px;--radius-item:8px;--radius-panel-sm:9px;--radius-panel:10px;--radius-dialog:12px;--radius-pill:9999px;--border-width-none:0;--border-width-thin:1px;--border-width-emphasis:1.5px;--border-width-strong:2px;--border-style-solid:solid;--border-style-dashed:dashed;--border-default:var(--border-width-thin) var(--border-style-solid) var(--color-border-default);--border-divider:var(--border-width-thin) var(--border-style-solid) var(--color-border-section);--border-focus:var(--border-width-thin) var(--border-style-solid) var(--color-border-accent);--border-selected:var(--border-width-thin) var(--border-style-solid) var(--color-border-accent);--border-dropzone:var(--border-width-emphasis) var(--border-style-dashed) var(--color-border-accent-muted);--border-avatar-active:var(--border-width-strong) var(--border-style-solid) var(--color-border-accent);--font-family-sans:Jost, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Yu Gothic", Meiryo, "Noto Sans CJK JP", "Noto Sans JP", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-family-mono:"IBM Plex Mono", "SFMono-Regular", Consolas, "Liberation Mono", "Noto Sans Mono CJK JP", "Hiragino Sans", "Yu Gothic UI", Meiryo, monospace;--font-size-2xs:.59375rem;--font-size-xs:.625rem;--font-size-sm:.65625rem;--font-size-md:.6875rem;--font-size-lg:.71875rem;--font-size-xl:.75rem;--font-size-2xl:.78125rem;--font-size-3xl:.8125rem;--font-size-4xl:.84375rem;--font-size-5xl:.875rem;--font-size-6xl:.9375rem;--font-size-page-title:1.1875rem;--font-line-height-tight:1.25;--font-line-height-compact:1.4;--font-line-height-default:1.5;--font-line-height-relaxed:1.55;--font-weight-light:300;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-letter-spacing-tight:-.01em;--font-letter-spacing-normal:0;--font-letter-spacing-label:.09em;--font-letter-spacing-section:.11em;--space-0:0;--space-2:2px;--space-3:3px;--space-4:4px;--space-5:5px;--space-6:6px;--space-7:7px;--space-8:8px;--space-9:9px;--space-10:10px;--space-11:11px;--space-12:12px;--space-13:13px;--space-14:14px;--space-15:15px;--space-16:16px;--space-18:18px;--space-20:20px;--space-22:22px;--space-24:24px;--space-26:26px;--space-28:28px;--space-30:30px;--space-42:42px;--space-44:44px;--space-page-inset:var(--space-26) var(--space-28) var(--space-44);--space-toolbar-inset:var(--space-0) var(--space-10);--space-header-inset:var(--space-0) var(--space-14);--space-statusbar-inset:var(--space-0) var(--space-14);--space-panel-inset:var(--space-14);--space-section-inset:var(--space-12) var(--space-14);--space-card-inset:var(--space-12) var(--space-13) var(--space-13);--space-row-inset:var(--space-11) var(--space-14);--space-row-header-inset:var(--space-10) var(--space-14);--space-menu-item-inset:var(--space-8) var(--space-9);--space-control-inline:var(--space-0) var(--space-14);--space-field-inset:var(--space-9) var(--space-11);--space-modal-inset:var(--space-22) var(--space-24) var(--space-24);--space-overlay-inset:var(--space-20);--space-empty-inset:var(--space-30) var(--space-42);--space-dropzone-inset:var(--space-26) var(--space-14);--text:var(--color-text-muted);--text-h:var(--color-text-strong);--bg:var(--color-bg-base);--panel:var(--color-surface-base);--panel-muted:var(--color-surface-muted);--border:var(--color-border-default);--accent:var(--color-accent-base);--accent-hover:var(--color-accent-solid);--accent-bg:var(--color-accent-surface);--accent-border:var(--color-accent-border-soft);--accent-solid-bg:var(--color-accent-solid);--success-bg:var(--color-status-success-surface);--warning-bg:var(--color-status-warning-surface);--danger:var(--color-status-error-foreground);--danger-bg:var(--color-status-error-surface);--success:var(--color-status-success-foreground);--warning:var(--color-status-warning-foreground);--radius-sm:var(--radius-field);--radius-md:var(--radius-panel);--radius-lg:var(--radius-dialog);--radius-full:var(--radius-pill);--border-width:var(--border-width-thin);--border-width-dashed:var(--border-width-emphasis);--sans:var(--font-family-sans);--mono:var(--font-family-mono);--overlay-text:#ffffffd1;--overlay-warning:#ffd47a;--grid-line:#e8604c12;font-family:var(--sans);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}:root[data-theme=dark]{--color-bg-base:#111417;--color-bg-viewport:#171b1f;--color-surface-base:#1c2024;--color-surface-raised:#22272c;--color-surface-subtle:#272d32;--color-surface-muted:#2c3238;--color-surface-inset:#14181b;--color-surface-hover:#30373d;--color-surface-progress-track:#363e45;--color-text-strong:#f5f7f8;--color-text-default:#e2e6e9;--color-text-secondary:#c8cfd4;--color-text-muted:#b4bdc4;--color-text-subtle:#a5afb7;--color-text-quiet:#9aa5ae;--color-text-disabled:#75818a;--color-text-on-strong:#fff;--color-accent-base:#ff8b73;--color-accent-solid:#c9442f;--color-accent-foreground:#ff9b85;--color-accent-surface:#3b2421;--color-accent-surface-soft:#2e211f;--color-accent-border-soft:#b85e50;--color-accent-disabled:#754d47;--color-focus-ring:var(--color-accent-base);--color-border-subtle:#353c42;--color-border-default:#454e55;--color-border-section:#3d454c;--color-border-divider:var(--color-border-section);--color-border-strong:#606b74;--color-border-input-idle:#65717a;--color-border-hover:#77838c;--color-border-viewport:#556069;--color-border-overlay:var(--color-border-viewport);--color-border-chrome:#414950;--color-border-swatch:#59646d;--color-border-accent:var(--color-accent-base);--color-border-accent-muted:var(--color-accent-border-soft);--color-border-transparent:transparent;--color-status-success-surface:#153528;--color-status-success-foreground:#72d99b;--color-status-success-indicator:#54c786;--color-status-warning-surface:#3c2b14;--color-status-warning-foreground:#f3c36b;--color-status-error-surface:#3b211e;--color-status-error-foreground:#ff9b8a;--color-status-neutral-surface:#2b3136;--color-status-neutral-foreground:#bdc6cc;--color-axis-x-east-longitude:#ff806e;--color-axis-y-north-latitude:#6fd39a;--color-axis-z-up-elevation:#75aaff;--color-model-voxel:#8795a1;--color-model-selected:#ff8b73;--color-model-processing:#e7b466;--color-model-edge:#65727c;--color-model-edge-selected:#ff9b85;--color-model-source:#778692;--color-grid-minor:#3f4a53;--color-grid-major:#66747e;--color-overlay-scrim:#00000094;--color-overlay-surface:#1c2024f0;--color-shadow-soft:#0000003d;--color-shadow-panel:#00000052;--color-shadow-popover:#0000006b;--color-shadow-modal:#0000008f;--grid-line:#ff8b731c}@media (prefers-color-scheme:dark){:root:not([data-theme]){--color-bg-base:#111417;--color-bg-viewport:#171b1f;--color-surface-base:#1c2024;--color-surface-raised:#22272c;--color-surface-subtle:#272d32;--color-surface-muted:#2c3238;--color-surface-inset:#14181b;--color-surface-hover:#30373d;--color-surface-progress-track:#363e45;--color-text-strong:#f5f7f8;--color-text-default:#e2e6e9;--color-text-secondary:#c8cfd4;--color-text-muted:#b4bdc4;--color-text-subtle:#a5afb7;--color-text-quiet:#9aa5ae;--color-text-disabled:#75818a;--color-text-on-strong:#fff;--color-accent-base:#ff8b73;--color-accent-solid:#c9442f;--color-accent-foreground:#ff9b85;--color-accent-surface:#3b2421;--color-accent-surface-soft:#2e211f;--color-accent-border-soft:#b85e50;--color-accent-disabled:#754d47;--color-focus-ring:var(--color-accent-base);--color-border-subtle:#353c42;--color-border-default:#454e55;--color-border-section:#3d454c;--color-border-divider:var(--color-border-section);--color-border-strong:#606b74;--color-border-input-idle:#65717a;--color-border-hover:#77838c;--color-border-viewport:#556069;--color-border-overlay:var(--color-border-viewport);--color-border-chrome:#414950;--color-border-swatch:#59646d;--color-border-accent:var(--color-accent-base);--color-border-accent-muted:var(--color-accent-border-soft);--color-border-transparent:transparent;--color-status-success-surface:#153528;--color-status-success-foreground:#72d99b;--color-status-success-indicator:#54c786;--color-status-warning-surface:#3c2b14;--color-status-warning-foreground:#f3c36b;--color-status-error-surface:#3b211e;--color-status-error-foreground:#ff9b8a;--color-status-neutral-surface:#2b3136;--color-status-neutral-foreground:#bdc6cc;--color-axis-x-east-longitude:#ff806e;--color-axis-y-north-latitude:#6fd39a;--color-axis-z-up-elevation:#75aaff;--color-model-voxel:#8795a1;--color-model-selected:#ff8b73;--color-model-processing:#e7b466;--color-model-edge:#65727c;--color-model-edge-selected:#ff9b85;--color-model-source:#778692;--color-grid-minor:#3f4a53;--color-grid-major:#66747e;--color-overlay-scrim:#00000094;--color-overlay-surface:#1c2024f0;--color-shadow-soft:#0000003d;--color-shadow-panel:#00000052;--color-shadow-popover:#0000006b;--color-shadow-modal:#0000008f;--grid-line:#ff8b731c}}*{box-sizing:border-box}.scene-touch,.editor-scene-stage canvas{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}button,a,label,summary,select,input,textarea,[role=button],.workspace-page{touch-action:manipulation}html{-webkit-tap-highlight-color:transparent}@media (hover:none){:is(button,.button,[role=button],summary,label:has(>input[type=file])):active:not(:disabled){filter:brightness(.92)}}html,body,#root{width:100%;min-width:320px;min-height:100%;margin:0}body{background:var(--bg);min-height:100dvh}button,input{font:inherit}h1,h2,p{margin:0}h1,h2,strong{color:var(--text-h)}h1{letter-spacing:-.055em;font-size:clamp(2rem,5vw,3.8rem);line-height:1.02}h2{letter-spacing:-.025em;font-size:1.25rem}:lang(ja) h1{letter-spacing:normal;font-feature-settings:"palt" 1;word-break:auto-phrase;line-height:1.28}:lang(ja) h2{letter-spacing:normal;font-feature-settings:"palt" 1}:lang(ja) .eyebrow,:lang(ja) .brand{font-feature-settings:normal}.eyebrow{color:var(--accent);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);letter-spacing:.15em}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.button{border-radius:var(--radius-sm);min-height:44px;font-weight:var(--font-weight-semibold);cursor:pointer;white-space:nowrap;border:1px solid #0000;padding:.65rem 1rem;transition:border-color .15s,background .15s,transform .15s}@media (hover:hover){.button:hover:not(:disabled){transform:translateY(-1px)}}.button:disabled{cursor:not-allowed;opacity:.55}.button-primary{color:var(--color-text-on-strong);background:var(--color-accent-solid);box-shadow:none}@media (hover:hover){.button-primary:hover:not(:disabled){filter:brightness(.9)}}.button-secondary{color:var(--text-h);background:var(--panel);border-color:var(--border)}.button-quiet{min-height:34px;color:var(--text);border-color:var(--border);background:0 0;padding:.4rem .7rem}@media (pointer:coarse){.button-quiet{min-height:var(--space-44)}}.button-full{width:100%}.auth-page,.centered-state{place-content:center;gap:1rem;min-height:100dvh;padding:2rem;display:grid}.auth-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--panel);width:min(520px,100vw - 2rem);box-shadow:var(--shadow);padding:clamp(2rem,7vw,4.5rem)}.brand-mark{border-radius:var(--radius-md);width:48px;height:48px;color:var(--color-text-on-strong);background:var(--accent);font-size:1.2rem;font-weight:var(--font-weight-semibold);place-items:center;margin-bottom:2rem;display:grid}.auth-card h1{max-width:440px;margin:.85rem 0 1.25rem;font-size:clamp(2rem,4.2vw,3rem)}.auth-card h1 .phrase{display:inline-block}.auth-lead{text-wrap:pretty;line-height:1.7}.auth-actions{gap:.7rem;margin-top:2rem;display:grid}.auth-note{color:var(--text);font-size:var(--font-size-xl);text-align:center;margin-top:1.25rem}.form-error{border:1px solid var(--color-status-error-foreground);border-radius:var(--radius-item);color:var(--danger);background:var(--danger-bg);font-size:var(--font-size-3xl);margin-top:.8rem;padding:.7rem .8rem;line-height:1.45}.form-error p,.form-error small{margin:0;display:block}.form-error small{font-family:var(--mono);font-size:var(--font-size-lg);opacity:.85;margin-top:.25rem}.form-error-quota{border-color:var(--warning);color:var(--warning);background:var(--warning-bg)}.form-error-tag{border-radius:var(--radius-full);background:var(--warning);color:var(--panel);font-size:var(--font-size-sm);letter-spacing:.04em;margin-bottom:.35rem;padding:1px 7px;display:inline-block}.app-header{border-bottom:1px solid var(--border);background:var(--color-surface-raised);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);justify-content:space-between;align-items:center;height:56px;padding:0 2rem;display:flex}.dashboard-page>header.app-header{height:auto;min-height:calc(56px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px)}.brand{color:var(--text-h);font-size:var(--font-size-5xl);font-weight:var(--font-weight-semibold);letter-spacing:.18em;text-decoration:none}.header-account{font-size:var(--font-size-3xl);align-items:center;gap:1rem;display:flex}.header-nav-link[aria-current=page]{color:var(--color-text-strong);box-shadow:inset 0 calc(-1 * var(--border-width-strong)) 0 var(--color-text-strong);font-weight:var(--font-weight-semibold);cursor:default;background:0 0;border-color:#0000;border-radius:0}.dashboard-page{background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);min-height:100dvh;padding:0 env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);background-size:40px 40px}.dashboard-main{max-width:1360px;padding:var(--space-page-inset);margin:0 auto}.dashboard-heading{margin-bottom:var(--space-18);justify-content:space-between;align-items:flex-end;gap:2rem;display:flex}.dashboard-heading h1{font-size:var(--font-size-page-title);line-height:var(--font-line-height-tight);font-weight:var(--font-weight-medium);letter-spacing:normal;margin:0}.dashboard-heading p:last-child{max-width:580px;color:var(--color-text-muted);font-size:var(--font-size-5xl);line-height:1.5}.section-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.section-heading h2{font-size:var(--font-size-6xl);font-weight:var(--font-weight-medium);letter-spacing:normal;margin-top:.25rem}.icon-button,.back-button{color:var(--text);cursor:pointer;background:0 0;border:0}.icon-button{width:44px;height:44px;font-size:1.5rem}.project-form{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-top:1.5rem;display:grid}.field{color:var(--text);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);align-content:start;gap:.4rem;display:grid}.field-wide{grid-column:span 2}.field-full{grid-column:1/-1}.field-input-group>span{white-space:nowrap;flex:none}.field input,.field select{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;min-height:44px;color:var(--text-h);background:var(--panel-muted);font:inherit;outline:none;padding:.65rem .75rem;font-weight:400}.field select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text) 50%), linear-gradient(135deg, var(--text) 50%, transparent 50%);cursor:pointer;background-position:calc(100% - 1.05rem) 55%,calc(100% - .75rem) 55%;background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:2rem}.field select:disabled{cursor:not-allowed;opacity:.6}.field input:focus,.field select:focus{border-color:var(--accent-border);box-shadow:0 0 0 3px var(--accent-bg)}.field input[type=file]{padding:.5rem .75rem}.field input[type=file]::file-selector-button{border:1px solid var(--border);border-radius:var(--radius-sm);min-height:44px;color:var(--text-h);background:var(--panel);font:inherit;font-weight:var(--font-weight-semibold);cursor:pointer;margin-right:.75rem;padding:.55rem .9rem}.field-checkbox{flex-direction:row;align-items:flex-start;gap:.5rem;display:flex}.field-checkbox input[type=checkbox]{width:auto;min-height:0;margin-top:3px;padding:0}.field-checkbox-note{margin-top:var(--space-4);color:var(--text);font-weight:var(--font-weight-regular);display:block}.upload-form{margin-top:1.5rem}.site-range-box{background:var(--panel-muted);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.65rem .75rem}.site-range-grid{color:var(--text-h);grid-template-columns:repeat(2,minmax(0,1fr));gap:.2rem .75rem;margin:0;font-weight:400;display:grid}.file-picker{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.file-picker-native{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.file-picker-native:focus-visible+.button{outline:2px solid var(--color-focus-ring);outline-offset:2px}.file-picker-name{color:var(--text);font-size:var(--font-size-4xl);overflow-wrap:anywhere}.upload-progress{margin-top:.9rem}.upload-progress-bar{width:100%;height:6px}.upload-progress-label{color:var(--text);font-size:var(--font-size-xl);margin:.3rem 0 0}.form-actions{justify-content:flex-end;align-items:flex-end;gap:1rem;display:flex}.form-actions .form-error{flex:1;margin:0}.list-heading{justify-content:flex-start;margin-bottom:1.25rem}.count-badge{border-radius:var(--radius-full);min-width:28px;color:var(--accent);background:var(--accent-bg);font-family:var(--mono);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);text-align:center;padding:.2rem .5rem}.project-grid{gap:var(--space-14);grid-template-columns:repeat(auto-fill,minmax(272px,1fr));display:grid}.project-card-shell{display:flex;position:relative}.project-card-shell>.project-card{flex:1}.project-card-delete{border-radius:var(--radius-full);color:var(--text);font-size:var(--font-size-xl);cursor:pointer;background:0 0;border:1px solid #0000;padding:.15rem .5rem;transition:color .15s,border-color .15s,background .15s;position:absolute;top:.6rem;right:.6rem}.project-card-confirm{justify-items:end;gap:.3rem;display:grid;position:absolute;top:.6rem;left:.6rem;right:.6rem}.project-card-confirm-text{color:var(--warning);font-size:var(--font-size-md);text-align:right;line-height:1.4}.project-card-confirm-error{color:var(--danger);font-size:var(--font-size-md);text-align:right;line-height:1.4}.project-card-confirm-actions{gap:.3rem;display:flex}.project-card-confirm .project-card-delete{position:static}.project-card-delete.is-danger{color:var(--danger);border-color:var(--danger)}.project-card-delete:hover:not(:disabled){color:var(--danger);border-color:var(--danger);background:var(--danger-bg)}.project-card-delete:disabled{cursor:default;opacity:.4}.project-card{min-height:96px;padding:var(--space-card-inset);border:1px solid var(--border);border-radius:var(--radius-panel);color:var(--text);background:var(--panel);text-align:left;cursor:pointer;align-items:center;gap:1rem;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}@media (hover:hover){.project-card:hover{border-color:var(--accent-border);background:var(--color-surface-hover);box-shadow:0 12px 32px var(--color-shadow-soft);transform:translateY(-2px)}}.project-card-coord{border:1px solid var(--accent-border);border-radius:var(--radius-field-sm);min-width:2.75rem;color:var(--accent);background:var(--accent-bg);font-family:var(--mono);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);text-align:center;white-space:nowrap;padding:.3rem .4rem}.project-card-copy{flex:1;gap:.25rem;min-width:0;display:grid}.project-card-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:1rem;overflow:hidden}.project-card-copy span,.project-card-copy small{font-size:var(--font-size-xl)}.project-card-copy small{color:var(--color-text-muted)}.state-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--panel);text-align:center;padding:1.5rem}.state-error{border-color:var(--danger);color:var(--danger);background:var(--danger-bg);justify-items:center;gap:.9rem;display:grid}.state-card[aria-busy=true]{justify-content:center;align-items:center;gap:.6rem;display:flex}.empty-state{text-align:center;justify-items:center;gap:.6rem;padding:3rem 1.5rem;display:grid}.empty-state span{font-size:var(--font-size-4xl)}.empty-state .button{margin-top:.6rem}.workspace-page{background:var(--bg);height:100dvh;overflow:hidden}.workspace-header{z-index:20;justify-content:flex-start;padding:0 1rem;position:relative}.back-button{border-radius:var(--radius-panel);width:44px;height:44px;margin-right:.7rem;font-size:1.1rem}.back-button:hover{background:var(--panel-muted)}.workspace-title{gap:.1rem;min-width:0;display:grid}.workspace-title strong{font-size:var(--font-size-5xl);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.workspace-title span{font-size:var(--font-size-md)}.workspace-header .header-account{margin-left:auto}.workspace-menu{position:relative}.workspace-menu-toggle{border:1px solid var(--border);border-radius:var(--radius-panel);min-width:44px;min-height:44px;color:var(--text-h);background:var(--panel);cursor:pointer;margin-left:.5rem;padding:0;font-size:1.2rem;line-height:1;display:none}.workspace-mobile-menu{z-index:25;border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--panel);width:max-content;min-width:200px;box-shadow:var(--shadow);flex-direction:column;display:flex;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden}.workspace-mobile-menu button{border:0;border-bottom:1px solid var(--border);min-height:44px;color:var(--text-h);text-align:left;font:inherit;font-weight:var(--font-weight-semibold);cursor:pointer;background:0 0;padding:0 1rem}.workspace-mobile-menu button:last-child{border-bottom:0}.workspace-mobile-menu button:hover{background:var(--panel-muted)}.workspace-body{height:calc(100dvh - 64px);min-height:0;display:flex;position:relative}.ingest-toggle{border-radius:var(--radius-panel);color:var(--color-text-on-strong);background:var(--color-accent-solid);font-weight:var(--font-weight-semibold);cursor:pointer;border:1px solid #0000;display:none}.ingest-toggle:hover{filter:brightness(.9)}.workspace-tabs{z-index:14;pointer-events:none;gap:4px;display:flex;position:absolute;top:8px;right:8px}.workspace-tab{border:1px solid var(--border);border-radius:var(--radius-item);min-height:44px;color:var(--text-h);background:var(--panel);font:inherit;white-space:nowrap;pointer-events:auto;padding:0 .75rem}.workspace-tab[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.workspace-side{flex:none;min-height:0;display:flex}.workspace-sheet-header,.workspace-sheet-close{display:none}.workspace-sheet-body{flex:auto;min-width:0;min-height:0;display:flex}@media (width>=761px){.workspace-tab[data-tab=assets],.workspace-tab[data-tab=properties]{display:none}.workspace-properties-inner{padding-top:56px}}.workspace-side--notes{z-index:13;border-left:1px solid var(--border);background:var(--panel);width:320px;display:none;position:absolute;top:0;bottom:0;right:0;overflow-y:auto}.workspace-body[data-side-tab=notes] .workspace-side--notes{display:flex}.notes-panel-content{width:100%;padding:4rem 1rem 1rem;overflow-y:auto}.notes-panel-content h2{margin:0 0 .8rem}.notes-toolbar,.notes-row-actions{align-items:center;gap:.5rem;display:flex}.notes-toolbar{flex-wrap:wrap}.notes-toolbar label{align-items:center;gap:var(--space-8);font-size:var(--font-size-xl);display:flex}.notes-toolbar select{min-height:var(--space-44);padding:var(--space-6) var(--space-8);border:var(--border-default);border-radius:var(--radius-field-sm);color:var(--color-text-strong);background:var(--color-surface-base);font:inherit}.notes-hint{color:var(--color-accent-foreground);font-size:var(--font-size-xl)}.notes-list{gap:.7rem;padding:0;list-style:none;display:grid}.notes-list li{border:1px solid var(--border);border-radius:var(--radius-item);background:var(--panel-muted);padding:.75rem}.notes-list li>p{overflow-wrap:anywhere;white-space:pre-wrap;margin:0 0 .6rem}.note-create-dialog{gap:var(--space-10);margin-top:var(--space-16);display:grid}.note-create-dialog label{gap:var(--space-6);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);display:grid}.notes-list textarea,.note-create-dialog textarea{box-sizing:border-box;resize:vertical;width:100%;min-height:7rem}.notes-row-actions button{min-height:36px}.ingest-panel{border-right:1px solid var(--border);background:var(--panel);flex:none;width:320px;padding:1.25rem;overflow-y:auto}.source-picker-dialog{box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--panel);width:min(540px,100vw - 2rem);max-height:calc(100dvh - 2rem);color:var(--text);box-shadow:var(--shadow);padding:1.5rem;overflow-y:auto}.source-picker-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#00000073}.source-picker-dialog .ingest-heading-row,.source-upload-status .ingest-heading-row{justify-content:space-between;align-items:center}.source-picker-dialog h2{margin:0;font-size:1.15rem}.source-picker-dialog .icon-button{min-width:44px;min-height:44px}.source-upload-status{right:calc(1rem + env(safe-area-inset-right,0px));bottom:calc(3.5rem + env(safe-area-inset-bottom,0px));z-index:25;box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--panel);width:min(360px,100vw - 2rem);max-height:min(420px,45dvh);color:var(--text);box-shadow:var(--shadow);padding:1rem;position:fixed;overflow-y:auto}.ingest-heading-row{align-items:flex-start;gap:.5rem;display:flex}.ingest-heading-row .ingest-heading{flex:1;min-width:0}.ingest-heading h2{margin:.3rem 0 .45rem}.ingest-heading>p:last-child{font-size:var(--font-size-xl);line-height:1.5}.frame-settings{gap:.9rem;margin-top:1.25rem;display:grid}.frame-settings-note{color:var(--text);font-size:var(--font-size-xl);margin:0;line-height:1.6}.frame-settings-value{border:1px solid var(--border);border-radius:var(--radius-item);background:var(--panel-muted);align-items:baseline;gap:.5rem;margin:0;padding:.7rem .85rem;display:flex}.frame-settings-value strong{color:var(--text-h);font-size:1rem}.frame-settings-value span{color:var(--text);font-size:var(--font-size-lg)}.upload-form{gap:.75rem;margin-top:1.25rem;display:grid}.drop-zone{border:1px dashed var(--color-border-input-idle);border-radius:var(--radius-dialog);background:var(--panel-muted);text-align:center;cursor:pointer;place-content:center;gap:.3rem;min-height:150px;padding:1rem;display:grid}.drop-zone.is-dragover{border-color:var(--accent);background:var(--accent-bg)}.drop-zone-queue{gap:.45rem;width:100%;max-width:100%;margin:0;padding:0;list-style:none;display:grid}.drop-zone-queue-item{border:1px solid var(--border);border-radius:var(--radius-item);background:var(--panel);justify-content:space-between;align-items:center;gap:.5rem;min-width:0;padding:.55rem .65rem;display:flex}.drop-zone-queue-item[data-status=pending]{background:var(--panel-muted)}.drop-zone-queue-item[data-status=uploading]{border-color:var(--accent-border);background:var(--accent-bg)}.drop-zone-queue-item[data-status=done]{border-color:var(--success);background:var(--success-bg)}.drop-zone-queue-item[data-status=failed],.drop-zone-queue-item[data-status=rejected]{border-color:var(--danger);background:var(--danger-bg)}.drop-zone-queue-item .queue-item-name{min-width:0;color:var(--text-h);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);text-overflow:ellipsis;white-space:nowrap;flex:1 1 0;overflow:hidden}.drop-zone-queue-item .queue-item-status{overflow-wrap:anywhere;min-width:0;max-width:45%;color:var(--text);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-align:right;flex:0 auto;line-height:1.2}.drop-zone-queue-item[data-status=uploading] .queue-item-status{color:var(--accent)}.drop-zone-queue-item[data-status=done] .queue-item-status{color:var(--success)}.drop-zone-queue-item[data-status=failed] .queue-item-status,.drop-zone-queue-item[data-status=rejected] .queue-item-status{color:var(--danger)}.drop-zone-queue-item .queue-item-retry,.drop-zone-queue-summary button{border:1px solid var(--border);border-radius:var(--radius-item);min-height:28px;color:var(--text-h);background:var(--panel);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);white-space:nowrap;cursor:pointer;flex:none;padding:.3rem .55rem}.drop-zone-queue-item .queue-item-retry:hover:not(:disabled),.drop-zone-queue-summary button:hover:not(:disabled){border-color:var(--accent-border);background:var(--accent-bg)}.drop-zone-queue-item .queue-item-retry:focus-visible,.drop-zone-queue-summary button:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.drop-zone-queue-item .queue-item-retry:disabled,.drop-zone-queue-summary button:disabled{cursor:not-allowed;opacity:.55}.drop-zone-queue-summary{color:var(--text);font-size:var(--font-size-lg);justify-content:space-between;align-items:center;gap:.5rem;line-height:1.4;display:flex}.drop-zone-queue-summary>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.drop-zone-queue-summary button{min-height:30px}.drop-zone:hover,.drop-zone.has-file{border-color:var(--accent);background:var(--accent-bg)}.drop-zone input{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.drop-zone-icon{color:var(--accent);font-size:1.5rem;font-weight:var(--font-weight-semibold)}.drop-zone strong{max-width:240px;font-size:var(--font-size-3xl);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.drop-zone small{color:var(--text);font-size:var(--font-size-lg)}.job-card{border:1px solid var(--border);border-radius:var(--radius-dialog);background:var(--panel-muted);margin-top:1.25rem;padding:1rem}.job-succeeded{border-color:var(--color-status-success-foreground);background:var(--success-bg)}.job-failed{border-color:var(--color-status-error-foreground);background:var(--danger-bg)}.job-summary{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.job-summary>div{gap:.15rem;min-width:0;display:grid}.job-summary strong{font-size:var(--font-size-3xl);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.job-status{color:var(--accent);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.job-succeeded .job-status{color:var(--success)}.job-failed .job-status{color:var(--danger)}.job-percent{color:var(--text-h);font-family:var(--mono);font-size:var(--font-size-3xl)}.progress-track{border-radius:var(--radius-full);background:var(--color-surface-progress-track);height:6px;margin:.8rem 0;overflow:hidden}.progress-track span{border-radius:inherit;background:var(--accent);height:100%;transition:width .3s;display:block}.job-succeeded .progress-track span{background:var(--success)}.job-card>p{font-size:var(--font-size-lg);line-height:1.5}.job-warning{color:var(--warning);margin-top:.5rem}.job-result{grid-template-columns:1fr 1fr;gap:.5rem;margin:.8rem 0 0;display:grid}.job-result div{gap:.1rem;display:grid}.job-result dt{color:var(--text);font-size:var(--font-size-sm)}.job-result dd{color:var(--text-h);font-family:var(--mono);font-size:var(--font-size-2xl);margin:0}.job-result-wide{grid-column:span 2}.job-result-wide dd{font-size:var(--font-size-lg);white-space:normal;line-height:1.4}.feature-props{font-family:var(--mono);font-size:var(--font-size-md);grid-template-columns:auto 1fr;gap:2px 8px;margin:0;display:grid}.feature-props dt{opacity:.6;white-space:nowrap}.feature-props dd{overflow-wrap:anywhere;min-width:0;margin:0}.editor-stage{background:#17171c;flex:1;min-width:0;position:relative}.workspace-add-button{min-height:44px;font-size:var(--font-size-xl);margin-left:1rem;padding:.4rem .9rem}.workspace-scope-button{min-height:40px;font-size:var(--font-size-xl);margin-left:1rem;padding:.4rem .75rem}.editor-status{z-index:2;border-radius:var(--radius-field-sm);color:#fff;font-family:var(--mono);font-size:var(--font-size-sm);pointer-events:none;background:#00000094;padding:.3rem .5rem;position:absolute;top:8px;left:8px}.packet-building{z-index:13;border-radius:var(--radius-item);color:#fff;font-size:var(--font-size-xl);background:#000000ad;align-items:center;gap:8px;padding:.4rem .7rem;display:flex;position:absolute;top:8px;left:50%;transform:translate(-50%)}.packet-building-error{color:var(--danger);background:var(--danger-bg);border:1px solid #fecdca}.map-accuracy-warning{color:var(--overlay-warning)}.map-accuracy-warning-close{color:inherit;cursor:pointer;background:0 0;border:0;padding:0 .2rem;font-size:1rem;line-height:1}.scene-view-toggle{z-index:3;border-radius:var(--radius-item);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0000009e;border:1px solid #fff3;padding:3px;display:flex;position:absolute;top:8px;right:8px}.scene-view-toggle button{border-radius:var(--radius-control);color:#ffffffb8;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);cursor:pointer;background:0 0;border:0;padding:.3rem .6rem}.scene-view-toggle button[aria-pressed=true]{color:#fff;background:var(--accent)}.scene-mode-toolbar{z-index:3;border-radius:var(--radius-item);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0000009e;border:1px solid #fff3;flex-wrap:wrap;justify-content:flex-end;gap:2px;padding:3px;display:flex;position:absolute;top:48px;right:8px}.scene-mode-toolbar button{border-radius:var(--radius-control);color:#ffffffb8;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);cursor:pointer;background:0 0;border:0;padding:.3rem .6rem}.scene-mode-toolbar button[aria-pressed=true]{color:#fff;background:var(--accent)}.scene-mode-toolbar-gizmo{border:0;border-left:1px solid #fff3;gap:2px;margin:0 0 0 4px;padding:0 0 0 4px;display:flex}.scene-mode-toolbar-gizmo button{border-radius:var(--radius-control);color:#ffffffb8;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);cursor:pointer;background:0 0;border:0;padding:.3rem .6rem}.scene-mode-toolbar-gizmo button[aria-pressed=true]{color:#fff;background:var(--accent)}.grid-level-control.on-map{bottom:32px}.map-base-toggle{z-index:3;border-radius:var(--radius-item);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0000009e;border:1px solid #fff3;gap:2px;padding:3px;display:flex;position:absolute;top:88px;right:8px}.map-base-toggle button{border-radius:var(--radius-control);color:#ffffffb8;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);cursor:pointer;background:0 0;border:0;padding:.3rem .6rem}.map-base-toggle button[aria-pressed=true]{color:#fff;background:var(--accent)}.map-base-toggle .map-place-at-target{border-left:1px solid #fff3;border-radius:0 5px 5px 0;margin-left:4px}.map-base-toggle button:disabled{opacity:.5;cursor:not-allowed}@media (width<=760px){.app-header{padding:0 1rem}.app-header:not(.workspace-header){flex-wrap:wrap;gap:8px;height:auto;min-height:56px;padding-block:8px}.app-header:not(.workspace-header) .header-account{gap:var(--space-8);scrollbar-width:none;width:100%;min-width:0;max-width:100%;-webkit-mask-image:linear-gradient(to right, #000 calc(100% - var(--space-28)), transparent);mask-image:linear-gradient(to right, #000 calc(100% - var(--space-28)), transparent);flex-wrap:nowrap;padding-inline-end:var(--space-28);overflow-x:auto}.app-header:not(.workspace-header) .header-account>*{flex:none}.header-account>span{display:none}.workspace-header{overflow-x:auto}.workspace-title{flex:none;min-width:88px;max-width:40vw}.dashboard-main{padding:var(--space-18) var(--space-14) var(--space-24)}.dashboard-heading{margin-bottom:var(--space-14);flex-direction:column;align-items:stretch}.project-form{grid-template-columns:1fr}.field-wide{grid-column:span 1}.form-actions{flex-direction:column;align-items:stretch}.workspace-add-button:not(.share-trigger-button),.workspace-scope-button{display:none}.share-trigger-button{font-size:var(--font-size-md);margin-left:.4rem;padding:.35rem .55rem}.ingest-toggle{white-space:nowrap;flex:none;min-height:44px;padding:0 .75rem}.workspace-menu-toggle{display:inline-flex}.workspace-body{position:relative}.workspace-body[data-ingest-open=false] #ingest-panel,.workspace-body:not([data-ingest-open=true]) #ingest-panel{display:none}.workspace-body .ingest-panel[aria-labelledby=project-frame-title],.workspace-body[data-ingest-open=true] #ingest-panel{z-index:12;background:var(--panel);width:min(320px,100vw - 32px);height:auto;display:block;position:absolute;top:48px;bottom:0;left:0;overflow-y:auto}.workspace-body .ingest-panel[aria-labelledby=project-frame-title]{z-index:15}.editor-stage{flex:auto;width:100%;min-width:0}.editor-stage canvas{max-width:100%}.ingest-toggle,.workspace-tabs{display:flex}.workspace-tabs{top:auto;bottom:calc(8px + env(safe-area-inset-bottom));z-index:16;pointer-events:none;justify-content:center;align-items:center;gap:4px;min-height:44px;position:absolute;left:8px;right:8px}.workspace-tab{border:1px solid var(--border);border-radius:var(--radius-item);min-height:44px;color:var(--text-h);background:var(--panel);font:inherit;white-space:nowrap;pointer-events:auto;box-shadow:var(--shadow);padding:0 .75rem}.workspace-tab[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.workspace-side--assets,.workspace-side--properties{display:none!important}.workspace-body[data-side-tab=assets] .workspace-side--assets,.workspace-body[data-side-tab=properties] .workspace-side--properties,.workspace-body[data-side-tab=notes] .workspace-side--notes{right:0;bottom:calc(60px + env(safe-area-inset-bottom));z-index:13;border-top:1px solid var(--border);background:var(--panel);flex-direction:column;height:50%;max-height:50%;position:absolute;left:0;overflow:hidden;box-shadow:0 -12px 28px #00000059;display:flex!important}.workspace-side--notes{width:auto;top:auto}.workspace-sheet-header{border-bottom:1px solid var(--border);background:var(--panel);flex:none;justify-content:center;align-items:center;min-height:44px;padding:0 44px;display:flex;position:relative}.workspace-sheet-handle{border-radius:var(--radius-dot);background:var(--border);width:36px;height:4px}.workspace-sheet-close{border:0;border-left:1px solid var(--border);width:44px;height:44px;color:var(--text-h);cursor:pointer;background:0 0;justify-content:center;align-items:center;font-size:1rem;line-height:1;display:flex;position:absolute;top:0;right:0}.workspace-sheet-close:hover{background:var(--panel-muted)}.notes-panel-content{padding-top:1rem}.workspace-properties-inner{width:100%}.asset-tree-panel,.property-panel{width:100%!important;max-width:none!important}.scene-mode-toolbar{left:8px}}@media (width<=760px),(pointer:coarse){.scene-mode-toolbar,.scene-view-toggle,.map-base-toggle,.grid-level-control,.frame-control-row{min-height:44px}.scene-mode-toolbar button,.scene-view-toggle button,.map-base-toggle button,.grid-level-control button,.frame-control button{min-width:44px;min-height:44px}}.grid-level-control{z-index:3;border-radius:var(--radius-item);color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-family:var(--mono);font-size:var(--font-size-lg);background:#0000009e;border:1px solid #fff3;align-items:center;gap:8px;padding:4px 8px;display:flex;position:absolute;bottom:8px;right:8px}.grid-level-control input[type=range]{width:140px;accent-color:var(--accent)}.grid-level-control input:disabled{opacity:.4}.grid-level-label{min-width:6.5em}.grid-level-control button{border-radius:var(--radius-control);color:#ffffffb8;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);cursor:pointer;background:0 0;border:0;padding:.2rem .5rem}.grid-level-control button:disabled{cursor:default;opacity:.5}.grid-level-control button[aria-pressed=true]{color:#fff;background:var(--accent)}.grid-level-note{color:var(--overlay-text)}.grid-level-note--limit{color:var(--overlay-warning);font-weight:var(--font-weight-semibold)}.frame-control{z-index:3;border-radius:var(--radius-item);color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);max-width:22rem;font-family:var(--mono);font-size:var(--font-size-lg);background:#0000009e;border:1px solid #fff3;flex-direction:column;gap:4px;padding:4px 8px;display:flex;position:absolute;bottom:8px;left:8px}.frame-control.on-map{bottom:32px}.frame-control-row{border:0;align-items:center;gap:8px;margin:0;padding:0;display:flex}.frame-control-label{color:#ffffffb8;padding:0}.frame-control button{border-radius:var(--radius-control);color:#ffffffb8;font-family:inherit;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);cursor:pointer;background:0 0;border:0;padding:.2rem .5rem}.frame-control button[aria-pressed=true]{color:#fff;background:var(--accent)}.frame-control button:disabled{color:#ffffff61;cursor:not-allowed;background:0 0}.frame-control-note{color:#ffffffb8;margin:0;line-height:1.5}.frame-control-missing{color:#ffffffdb;border-top:1px solid #ffffff24;padding-top:4px}.frame-control-action{color:#fff;padding:0;text-decoration:underline}.frame-control-action:disabled{color:#ffffff80;text-decoration:none}.admin-table-scroll{border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--panel);overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;min-width:640px;font-size:var(--font-size-5xl)}.admin-table th,.admin-table td{padding:var(--space-row-inset);text-align:left;vertical-align:top;border-bottom:1px solid var(--border)}.admin-table th{padding:var(--space-row-header-inset);color:var(--text-h);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);background:var(--panel-muted)}.admin-table tr:last-child td{border-bottom:0}.admin-table tbody tr:hover{background:var(--color-surface-hover)}.admin-row-disabled{opacity:.55}.admin-user-name{color:var(--text-h);align-items:center;gap:.4rem;font-weight:600;display:flex}.admin-user-email{color:var(--text);font-size:var(--font-size-2xl)}.admin-badge,.admin-badge-off{border-radius:var(--radius-full);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);letter-spacing:.04em;padding:.05rem .4rem}.admin-badge{color:var(--accent);background:var(--accent-bg)}.admin-badge-off{color:var(--danger);background:var(--danger-bg)}.admin-workspace+.admin-workspace{border-top:1px dashed var(--border);margin-top:.75rem;padding-top:.75rem}.admin-plan{font-size:var(--font-size-xl);align-items:center;gap:.35rem;margin-top:.35rem;display:inline-flex}.admin-actions{flex-direction:column;gap:.4rem;display:flex}.admin-actions .button{white-space:nowrap}.admin-confirm-text{max-width:220px;color:var(--warning);font-size:var(--font-size-lg);line-height:1.45}.admin-danger{color:var(--danger);border-color:var(--danger)}.admin-section{margin:2rem 0 1.5rem}.plan-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem;display:grid}.plan-card{border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--panel);flex-direction:column;gap:.75rem;padding:1rem 1.25rem 1.25rem;display:flex}.plan-card-head{color:var(--text-h);text-transform:uppercase;letter-spacing:.06em;font-size:var(--font-size-2xl);align-items:center;gap:.5rem;display:flex}.plan-saved{color:var(--success);background:var(--success-bg);border-radius:var(--radius-full);font-size:var(--font-size-md);letter-spacing:0;text-transform:none;padding:.05rem .5rem}.plan-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.plan-fields .field small{color:var(--text);font-size:var(--font-size-md)}.plateau-admin-form{margin-bottom:1rem}.plateau-admin-wards{border:0;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:.35rem .75rem;min-width:0;margin:0;padding:0;display:grid}.plateau-admin-wards legend{color:var(--text);margin-bottom:.4rem;padding:0}.plateau-admin-ward{min-height:32px;color:var(--text-h);align-items:center;gap:.4rem;display:flex}.plateau-admin-ward-all{font-weight:var(--font-weight-semibold);grid-column:1/-1}.plateau-admin-form .field-error{color:var(--danger);font-size:var(--font-size-xl);grid-column:1/-1;display:block}@media (width<=560px){.plateau-admin-form .plan-fields{grid-template-columns:minmax(0,1fr)}}.plateau-admin-published{margin-bottom:1rem}.plateau-admin-published h3{margin:0 0 .4rem}.plateau-admin-download{flex-wrap:wrap;align-items:center;gap:.4rem .75rem;display:flex}.error-filters{flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-bottom:.75rem;display:flex}.error-filter-actions{align-items:center;gap:.5rem;display:flex}.error-cell-time{white-space:nowrap;font-variant-numeric:tabular-nums}.error-badge{border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);letter-spacing:.04em;color:var(--text-h);background:var(--panel-muted);padding:.05rem .4rem}.error-badge-server{color:var(--danger);background:var(--danger-bg)}.error-badge-job{color:var(--warning);background:var(--panel-muted)}.error-badge-client{color:var(--accent);background:var(--accent-bg)}.error-message{overflow-wrap:anywhere;max-width:42ch}.error-detail{border-radius:var(--radius-item);background:var(--panel-muted);max-width:60ch;max-height:18rem;font-family:var(--mono);font-size:var(--font-size-lg);white-space:pre-wrap;overflow-wrap:anywhere;margin:.5rem 0 0;padding:.6rem;overflow:auto}.error-manual-copy{border:1px solid var(--border);border-radius:var(--radius-item);width:100%;height:10rem;color:var(--text-h);background:var(--panel-muted);font-family:var(--mono);font-size:var(--font-size-lg);margin-bottom:.75rem;padding:.6rem}.job-toasts{right:8px;bottom:calc(8px + var(--grid-level-height,32px) + 8px);z-index:4;pointer-events:none;flex-direction:column;gap:6px;width:240px;max-height:60%;display:flex;position:absolute;overflow-y:auto}.workspace-body:has(.source-upload-status) .job-toasts{z-index:26}.job-toasts>*{pointer-events:auto}@media (width<=760px){.grid-level-control{bottom:calc(60px + env(safe-area-inset-bottom) + 8px)}.grid-level-control.on-map{bottom:calc(60px + env(safe-area-inset-bottom) + 32px)}.frame-control{bottom:calc(60px + env(safe-area-inset-bottom) + 8px)}.frame-control.on-map{bottom:calc(60px + env(safe-area-inset-bottom) + 32px)}.job-toasts{bottom:calc(60px + env(safe-area-inset-bottom) + 8px + var(--grid-level-height,32px) + 8px)}}.job-toast{border:1px solid var(--border);border-radius:var(--radius-panel);color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:var(--font-size-lg);background:#000000b8;padding:8px 10px;line-height:1.5}.job-toast-head{align-items:center;gap:6px;display:flex}.job-toast-head strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--font-size-xl);flex:1;overflow:hidden}.job-toast-status{opacity:.7;flex:none}.job-toast-frame{border-radius:var(--radius-pill);font-size:var(--font-size-xs);opacity:.8;border:1px solid;flex:none;padding:0 .35rem}.job-toast-close{flex:none;width:18px;height:18px;padding:0;line-height:1}.job-toast .progress-track{margin:6px 0 4px}.job-toast.is-fading{pointer-events:none;animation:1s 5s forwards job-toast-fade}.job-toast.is-fading .job-toast-close{pointer-events:auto}@keyframes job-toast-fade{to{opacity:0}}.job-toast.job-failed{border-color:#ff8f8f}.job-toast-message{color:#ffb4b4;overflow-wrap:anywhere}.job-toast-error{color:#ffb4b4}.layer-placeholder-label{border-radius:var(--radius-field-sm);color:#fff;font-family:var(--sans);font-size:var(--font-size-md);text-align:center;white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;background:#000000b3;gap:2px;padding:4px 8px;line-height:1.3;display:grid}.layer-placeholder-label span{opacity:.8}.confirm-modal{z-index:50;background:0 0;border:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;position:fixed;inset:0;overflow:visible}.confirm-modal::backdrop{background:0 0}.confirm-backdrop{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#00000073;place-items:center;display:grid;position:fixed;inset:0}.confirm-dialog{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--panel);width:min(420px,100vw - 2rem);box-shadow:var(--shadow);gap:.6rem;padding:1.25rem;display:grid}.confirm-dialog p{color:var(--text);font-size:var(--font-size-4xl);margin:0;line-height:1.5}.confirm-actions{justify-content:flex-end;gap:.5rem;margin-top:.4rem;display:flex}.job-toast-actions{gap:6px;margin-top:6px;display:flex}.job-toast-actions button{min-height:28px;font-size:var(--font-size-lg);flex:1;padding:.25rem .5rem}.job-toast-note{opacity:.75}.job-toast-duration{opacity:.75;font-size:var(--font-size-md);margin:2px 0 0}.upload-progress{gap:.5rem;margin-top:.8rem;display:grid}.upload-progress-bar{appearance:none;border-radius:var(--radius-full);background:var(--panel-muted);border:none;width:100%;height:6px;overflow:hidden}.upload-progress-bar::-webkit-progress-bar{background:var(--panel-muted)}.upload-progress-bar::-webkit-progress-value{background:var(--accent);transition:width .15s linear}.upload-progress-bar::-moz-progress-bar{background:var(--accent)}.upload-progress-text{color:var(--text-h);font-family:var(--mono);font-size:var(--font-size-lg);font-variant-numeric:tabular-nums;margin:0}.ingest-busy{color:var(--text);font-size:var(--font-size-lg);margin-top:.5rem}.project-card-jobs{color:var(--accent);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);align-items:center;gap:6px;margin-top:4px;display:inline-flex}.spinner{border:2px solid var(--accent);border-top-color:#0000;border-radius:50%;width:10px;height:10px;animation:.8s linear infinite spinner-turn}@keyframes spinner-turn{to{transform:rotate(360deg)}}.failure-counts{font-size:var(--font-size-lg);flex-wrap:wrap;gap:10px;margin:0 0 .75rem;display:flex}.failure-counts span{border:1px solid var(--border);border-radius:var(--radius-full);font-family:var(--mono);padding:2px 8px}.failure-counts strong{color:var(--danger)}.failure-code{font-family:var(--mono);color:var(--danger)}.failure-download{white-space:nowrap;display:inline-block}.diagnostics-panel{border:1px solid var(--border);border-radius:var(--radius-item);margin-top:16px;padding:16px}.diagnostics-panel h3{font-family:var(--mono);font-size:var(--font-size-5xl);word-break:break-all;margin:0}.diagnostics-warnings{color:var(--danger);margin:12px 0 0;padding-left:20px}.diagnostics-json{border:1px solid var(--border);border-radius:var(--radius-field-sm);max-height:420px;font-family:var(--mono);font-size:var(--font-size-xl);white-space:pre;margin:12px 0 0;padding:12px;overflow:auto}.account-section{margin-bottom:2.5rem}.account-lead{color:var(--text);font-size:var(--font-size-4xl);margin:0 0 .75rem}.account-facts{border:1px solid var(--border);border-radius:var(--radius-dialog);background:var(--panel);gap:.75rem;margin:0;padding:1.25rem;display:grid}.account-facts>div{grid-template-columns:10rem 1fr;align-items:baseline;gap:.75rem;display:grid}.account-facts dt{color:var(--text);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.account-facts dd{color:var(--text-h);font-size:var(--font-size-5xl);word-break:break-all;margin:0}.account-code-sample{border:1px solid var(--border);border-radius:var(--radius-item);background:var(--panel-muted);font-family:var(--mono);font-size:var(--font-size-2xl);margin:0 0 1.25rem;padding:.75rem 1rem;overflow-x:auto}.account-create{border:1px solid var(--border);border-radius:var(--radius-dialog);background:var(--panel);grid-template-columns:1fr auto;align-items:end;gap:1rem;margin-bottom:1.25rem;padding:1.25rem;display:grid}.account-create>.field{grid-column:2}.account-create>.form-actions{grid-column:1/-1}.account-create>.field-wide{grid-column:1}.account-issued{border:1px solid var(--warning);border-radius:var(--radius-dialog);background:var(--warning-bg);gap:.5rem;margin-bottom:1.25rem;padding:1.25rem;display:grid}.account-issued strong{color:var(--text-h)}.account-issued p{font-size:var(--font-size-4xl);margin:0}.account-issued-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.account-issued-note{color:var(--danger)}.account-key{border:1px solid var(--border);border-radius:var(--radius-item);background:var(--panel);min-width:16rem;font-family:var(--mono);font-size:var(--font-size-3xl);word-break:break-all;-webkit-user-select:all;user-select:all;flex:1;padding:.55rem .75rem}.account-key-start{font-family:var(--mono);font-size:var(--font-size-2xl)}@media (width<=720px){.account-create{grid-template-columns:1fr}.account-create>.field-wide,.account-create>.field,.account-create>.form-actions{grid-area:auto/1}.account-facts>div{grid-template-columns:1fr;gap:.15rem}}
