:root{--font-interface:var(--font-ibm-plex-sans),"Segoe UI",Arial,sans-serif;--font-technical:var(--font-ibm-plex-mono),"SFMono-Regular",Consolas,"Liberation Mono",monospace;--type-display-size:clamp(2rem,4vw,3rem);--type-display-line:1.05;--type-page-size:clamp(1.75rem,3vw,2.625rem);--type-page-line:1.08;--type-section-size:clamp(1.25rem,2vw,1.5rem);--type-section-line:1.2;--type-body-size:1rem;--type-body-line:1.55;--type-label-size:.8125rem;--type-label-line:1.35;--type-caption-size:.6875rem;--type-caption-line:1.45;--type-button-size:.875rem;--type-button-line:1.2;--type-telemetry-size:.6875rem;--type-telemetry-line:1.5;--color-surface-canvas:#f5f5f3;--color-surface:#fff;--color-surface-subtle:#edf1ef;--color-surface-elevated:#fff;--color-surface-inverse:#151515;--color-text:#151515;--color-text-secondary:#565d5a;--color-text-tertiary:#6b726f;--color-text-inverse:#fff;--color-border:#d3d3cf;--color-border-strong:#7a8581;--color-action-primary:#176b5b;--color-action-primary-hover:#105548;--color-action-primary-active:#0b4339;--color-action-secondary:#356c86;--color-action-secondary-hover:#28576e;--color-focus:#b25e00;--color-danger:#9b3329;--color-danger-hover:#76251e;--color-danger-subtle:#f7e9e6;--color-disabled-bg:#e5e7e4;--color-disabled-text:#737975;--color-success:#176b5b;--color-success-subtle:#e5f1ed;--color-warning:#9a5a08;--color-warning-subtle:#f8edda;--color-overlay:#101c19b8;--color-viewer-overlay:#14231feb;--color-map-parcel:#356c86;--color-map-selected:#176b5b;--color-map-warning:#d58a2a;--shadow-elevated:0 16px 48px #1825222e;--ink:var(--color-text);--brand-red:#e3262e;--green:var(--color-action-primary);--amber:var(--color-warning);--blue:var(--color-action-secondary);--limestone:var(--color-surface-canvas);--line:var(--color-border);--paper:var(--color-surface);--muted:var(--color-text-secondary);--danger:var(--color-danger);--sidebar:232px;color-scheme:light}*{box-sizing:border-box}html{text-size-adjust:100%}body,html{margin:0;min-height:100%;background:var(--limestone);color:var(--ink);font-family:var(--font-interface);font-size:var(--type-body-size);line-height:var(--type-body-line)}body{overflow-wrap:break-word}h1{font-size:var(--type-page-size);line-height:var(--type-page-line);font-weight:700;letter-spacing:-.025em;text-wrap:balance}h2{font-size:var(--type-section-size)}h2,h3{line-height:var(--type-section-line);font-weight:600;text-wrap:balance}.type-display{font:700 var(--type-display-size)/var(--type-display-line) var(--font-interface);letter-spacing:-.03em;text-wrap:balance}.type-page-heading{font:700 var(--type-page-size)/var(--type-page-line) var(--font-interface);letter-spacing:-.025em;text-wrap:balance}.type-section-heading{font:600 var(--type-section-size)/var(--type-section-line) var(--font-interface);text-wrap:balance}.type-body{font:400 var(--type-body-size)/var(--type-body-line) var(--font-interface)}.type-label{font:600 var(--type-label-size)/var(--type-label-line) var(--font-interface)}.type-caption{font:400 var(--type-caption-size)/var(--type-caption-line) var(--font-interface)}.button,.type-button,button{font:600 var(--type-button-size)/var(--type-button-line) var(--font-interface)}.mono,.type-telemetry{font:400 var(--type-telemetry-size)/var(--type-telemetry-line) var(--font-technical);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}button,input,select,textarea{font-family:var(--font-interface);font-size:inherit;line-height:inherit}a{color:inherit}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:var(--ink);color:#eef1ec;padding:25px 18px;display:flex;flex-direction:column;z-index:10}.brand-logo{display:inline-flex;width:max-content;text-decoration:none}.brand-logo img{display:block;width:auto;height:48px}.sidebar-brand img{width:178px;height:auto}.brand-logo-compact img{width:40px;height:40px}.sidebar nav{margin-top:45px;display:grid;grid-gap:7px;gap:7px}.nav-link{display:flex;gap:12px;align-items:center;padding:11px 12px;text-decoration:none;color:#b9c5c1;border-left:2px solid transparent;font-size:14px}.nav-link:hover{background:#223531;color:#fff}.nav-link.active{color:#fff;background:#28413b;border-left-color:#d3a459}.sidebar-note{margin-top:auto;padding:15px 10px;border-top:1px solid #3c4b48;color:#98a6a2;font:var(--type-telemetry-size)/1.7 var(--font-technical)}.sidebar-note b{font-weight:500;color:#d8dedb}.datum-dot{display:inline-block;width:7px;height:7px;background:#78b7a5;border-radius:50%;margin-right:7px}.workspace{min-height:100vh;margin-left:var(--sidebar);padding:38px clamp(24px,4vw,64px) 60px}.mobile-bar{display:none}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:30px}.eyebrow{font:var(--type-telemetry-size)/1.2 var(--font-technical);color:var(--blue);margin:0 0 9px}.page-head h1{font-size:var(--type-page-size);line-height:var(--type-page-line);letter-spacing:-.025em;margin:0}.page-head p{color:var(--muted);max-width:640px;margin:11px 0 0;line-height:1.55}.button{border:1px solid var(--ink);background:var(--ink);color:#fff;padding:11px 16px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:9px;cursor:pointer;min-height:43px}.button:hover{background:var(--green);border-color:var(--green)}.button.secondary{background:transparent;color:var(--ink);border-color:#9aa6a1}.button:disabled{opacity:.45;cursor:not-allowed}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);background:var(--paper);margin-bottom:22px}.summary-item{padding:17px 20px;border-right:1px solid var(--line)}.summary-item:last-child{border:0}.summary-item span{display:block;color:var(--muted);font-size:12px;margin-bottom:4px}.summary-item strong{font:22px var(--font-technical)}.project-ledger{border-top:2px solid var(--ink)}.ledger-head,.project-row{display:grid;grid-template-columns:minmax(220px,1.6fr) 150px 110px 120px 42px;align-items:center;grid-gap:16px;gap:16px}.ledger-head{padding:11px 17px;color:var(--muted);font-size:11px}.ledger-head,.project-row{border-bottom:1px solid var(--line)}.project-row{background:var(--paper);padding:18px 17px;text-decoration:none;transition:background .15s}.project-row:hover{background:#fff}.project-name{font-weight:650}.mono,.project-id{display:block;font:var(--type-telemetry-size)/1.5 var(--font-technical);color:var(--muted)}.cell-label{display:none}.status{display:inline-flex;align-items:center;gap:7px;font-size:13px}.status:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 3px #d58a2a22}.status.completed:before{background:var(--green);box-shadow:0 0 0 3px #176b5b22}.status.failed:before{background:var(--danger);box-shadow:0 0 0 3px #a33d3222}.row-arrow{color:var(--blue)}.empty-state{border:1px solid var(--line);border-top:2px solid var(--ink);background:var(--paper);min-height:350px;padding:60px clamp(24px,8vw,100px);display:grid;grid-template-columns:110px 1fr;align-items:center;grid-gap:35px;gap:35px}.empty-diagram{width:105px;height:105px;border:1px solid var(--line);position:relative;background:repeating-linear-gradient(0deg,transparent,transparent 20px,#dfe3df 21px),repeating-linear-gradient(90deg,transparent,transparent 20px,#dfe3df 21px)}.empty-diagram:after{content:"";position:absolute;inset:27px 21px;border:2px solid var(--green);transform:skew(-10deg) rotate(-8deg)}.empty-state h2{font-size:var(--type-section-size);margin:0 0 9px}.empty-state p{color:var(--muted);max-width:500px;line-height:1.6;margin:0 0 22px}.notice{padding:12px 15px;border-left:3px solid var(--blue);background:#e7eff1;font-size:13px;color:#34505a}.notice,.panel{margin-bottom:22px}.panel{background:var(--paper);border:1px solid var(--line);border-top:2px solid var(--ink);padding:clamp(18px,3vw,30px)}.panel h2{font-size:var(--type-section-size);margin:0 0 7px}.panel-intro{color:var(--muted);margin:0 0 22px;line-height:1.5}.mission-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.65fr);grid-gap:22px;gap:22px}.file-drop{display:block;border:1px dashed #7e908a;background:#f6f7f2;padding:25px;text-align:center;cursor:pointer}.file-drop input{max-width:100%}.mode-options{border:0;padding:0;margin:0;display:grid;grid-gap:10px;gap:10px}.mode-option{display:grid;grid-template-columns:20px 1fr;grid-gap:10px;gap:10px;border:1px solid var(--line);padding:14px;cursor:pointer}.mode-option:has(input:checked){border-color:var(--green);box-shadow:inset 3px 0 var(--green)}.mode-option span{font-size:13px;color:var(--muted);display:block;margin-top:3px}.selection-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:16px 0}.selection-count{margin-left:auto}.thumb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(125px,1fr));grid-gap:9px;gap:9px}.thumb{padding:5px;border:1px solid var(--line);background:#fff;min-height:125px;color:var(--ink);cursor:pointer}.thumb[aria-pressed=true]{border:2px solid var(--green);background:#e8f1ec}.thumb img{width:100%;height:78px;object-fit:cover}.thumb span{font:var(--type-telemetry-size)/1.3 var(--font-technical);display:block;overflow-wrap:anywhere;margin-top:5px}.status-console{font:13px var(--font-technical);border-left:3px solid var(--amber);padding:12px 15px;background:#282f2d;color:#edf0eb;margin:18px 0}.upload-row{display:grid;grid-template-columns:minmax(130px,1fr) 2fr 90px;grid-gap:12px;gap:12px;align-items:center;font:var(--type-telemetry-size)/var(--type-telemetry-line) var(--font-technical);margin:9px 0}.upload-row progress{width:100%;accent-color:var(--green)}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;grid-gap:18px;gap:18px}.map-canvas{height:540px;width:100%;border:1px solid #73817c}.map-controls{border-left:1px solid var(--line);padding-left:18px}.map-controls h3{font-size:14px;margin:20px 0 8px}.form-grid{display:grid;grid-gap:10px;gap:10px}.field{font-size:12px;color:var(--muted)}.field input,.text-input{border:1px solid #9eaaa5;color:var(--ink);margin-top:5px}.choice,.field input,.text-input{display:block;width:100%;background:#fff;padding:10px}.choice{text-align:left;border:1px solid var(--line);margin:5px 0;cursor:pointer}.choice[aria-pressed=true]{border-color:var(--green);box-shadow:inset 3px 0 var(--green);background:#edf4f0}.check{display:block;padding:5px 0;font-size:13px}.viewer-shell{height:min(65vh,620px);min-height:420px;border:1px solid #75817d;background:#e6e9e5;position:relative}.viewer-label{position:absolute;z-index:2;top:12px;left:12px;background:#182522e8;color:#fff;padding:8px 11px;font:var(--type-telemetry-size)/var(--type-telemetry-line) var(--font-technical)}.detail-meta{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px}.detail-meta span{font:var(--type-telemetry-size)/var(--type-telemetry-line) var(--font-technical);color:var(--muted)}.stage-line{display:flex;align-items:center;gap:10px;margin-top:12px}.stage-line:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--amber)}.error{border-left-color:var(--danger);background:#f4e8e5;color:#71342d}@media(max-width:900px){:root{--sidebar:190px}.workspace{padding:28px 22px}.map-layout,.mission-grid{grid-template-columns:1fr}.map-controls{border-left:0;border-top:1px solid var(--line);padding:16px 0}.ledger-head{display:none}.project-row{grid-template-columns:1fr 1fr}.row-arrow{display:none}.cell-label{display:block;font-size:10px;color:var(--muted);margin-bottom:3px}}@media(max-width:650px){.sidebar{display:none}.mobile-bar{display:flex;position:-webkit-sticky;position:sticky;top:0;height:62px;background:var(--ink);color:#fff;z-index:20;align-items:center;justify-content:space-between;padding:0 14px}.mobile-brand{font-size:15px}.mobile-brand .brand-mark{width:24px;height:24px}.mobile-bar nav{display:flex;gap:5px}.mobile-bar nav a{padding:8px;display:flex;text-decoration:none;color:#afbfba}.mobile-bar nav a.active{color:#fff;background:#2d443e}.mobile-bar nav span{display:none}.workspace{margin-left:0;padding:24px 14px 50px}.page-head{display:block}.page-head .button{margin-top:18px;width:100%}.summary-grid{grid-template-columns:1fr}.summary-item{border-right:0;border-bottom:1px solid var(--line)}.project-row{grid-template-columns:1fr;gap:11px}.empty-state{grid-template-columns:1fr;padding:35px 24px}.mission-grid{display:block}.panel{padding:18px}.map-canvas{height:440px}.viewer-shell{height:440px;min-height:0}.upload-row{grid-template-columns:1fr 65px}.upload-row progress{grid-row:2;grid-column:1/3}}.roof-preview{background:var(--paper);border:1px solid var(--line);border-top:2px solid var(--ink);margin-bottom:22px}.roof-preview-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px;border-bottom:1px solid var(--line)}.roof-preview-head h2{margin:0;font-size:var(--type-section-size)}.preview-badge{color:var(--ink);background:var(--limestone);padding:3px 6px}.roof-facts{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--line)}.roof-fact{min-width:0;padding:14px;border-right:1px solid var(--line)}.roof-fact:last-child{border-right:0}.roof-fact>span:first-child{display:block;color:var(--muted);font-size:11px}.roof-fact strong{display:block;margin:5px 0 8px;font:18px var(--font-technical)}.roof-preview-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.65fr);grid-gap:24px;gap:24px;padding:22px}.roof-preview-grid h3{margin:0 0 12px;font-size:14px}.pipeline-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px}.pipeline-step{display:flex;gap:10px;min-height:82px;padding:12px;border:1px solid var(--line)}.pipeline-step.real.complete{border-left:3px solid var(--green)}.pipeline-step.real.active{border-left:3px solid var(--amber)}.pipeline-step.real.failed{border-left:3px solid var(--ink)}.pipeline-step.placeholder{border-style:dashed;background:var(--limestone);color:var(--muted)}.pipeline-index{font:var(--type-telemetry-size)/var(--type-telemetry-line) var(--font-technical);color:var(--blue)}.pipeline-step small,.pipeline-step strong{display:block}.pipeline-step strong{font-size:12px}.pipeline-step small{margin:5px 0 7px;color:var(--muted);font:var(--type-telemetry-size)/1.4 var(--font-technical)}.capture-facts{border-left:1px solid var(--line);padding-left:22px}.capture-facts dl{margin:0}.capture-facts dl div{padding:9px 0;border-bottom:1px solid var(--line)}.capture-facts dt{color:var(--muted);font-size:11px}.capture-facts dd{margin:4px 0 0;font:13px var(--font-technical)}.capture-facts dd .preview-badge{margin-left:5px}.roof-actions{display:grid;grid-gap:8px;gap:8px;margin-top:18px}.roof-actions .button{width:100%}.roof-actions small{font-size:9px}@media(max-width:900px){.roof-facts{grid-template-columns:repeat(4,1fr)}.roof-fact{border-bottom:1px solid var(--line)}.roof-preview-grid{grid-template-columns:1fr}.capture-facts{border-left:0;border-top:1px solid var(--line);padding:18px 0 0}}@media(max-width:650px){.roof-preview-head{align-items:flex-start;flex-direction:column}.pipeline-steps,.roof-facts{grid-template-columns:1fr 1fr}.roof-fact:nth-child(2n){border-right:0}}.auth-workspace{min-height:100vh;display:grid;place-items:center;padding:32px;background:var(--limestone)}.auth-card{width:min(460px,100%);display:grid;grid-gap:30px;gap:30px;padding:38px;background:var(--paper);border:1px solid var(--line);box-shadow:0 18px 50px rgba(24,35,38,.08)}.auth-card h1{margin:5px 0 8px}.auth-card p{margin:0;color:var(--muted)}.auth-card form{display:grid;grid-gap:18px;gap:18px}.auth-card label{display:grid;grid-gap:7px;gap:7px;font-size:12px;font-weight:700}.auth-card input{width:100%;padding:12px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font:14px inherit}.auth-card input:focus{outline:2px solid var(--blue);outline-offset:1px}.auth-card .button{justify-content:center}.auth-card .auth-error{color:#8f2f24}.auth-switch{font-size:12px}.auth-switch a{color:var(--blue);font-weight:700}.sidebar-account{margin-top:auto;padding:16px 18px;border-top:1px solid hsla(0,0%,100%,.14);display:grid;grid-gap:8px;gap:8px;color:var(--paper);font-size:11px;overflow-wrap:anywhere}.sidebar-account button{width:max-content;padding:0;border:0;background:none;color:var(--amber);font:700 var(--type-caption-size)/var(--type-caption-line) var(--font-interface);text-transform:uppercase;cursor:pointer}.dashboard-topbar{display:grid;grid-template-columns:minmax(210px,1fr) minmax(220px,420px) auto;align-items:center;grid-gap:24px;gap:24px;padding-bottom:25px;border-bottom:1px solid var(--line);margin-bottom:31px}.dashboard-topbar h1{font-size:var(--type-page-size);line-height:var(--type-page-line);margin:0;letter-spacing:-.025em}.dashboard-topbar .eyebrow{margin-bottom:8px}.project-search{height:43px;border:1px solid var(--line);background:var(--paper);display:flex;align-items:center;gap:10px;padding:0 13px}.project-search:focus-within{border-color:var(--green)}.project-search input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:var(--ink)}.search-icon{width:14px;height:14px;border:1.5px solid var(--muted);border-radius:50%;position:relative;flex:0 0 auto}.search-icon:after{content:"";position:absolute;width:6px;border-top:1.5px solid var(--muted);right:-5px;bottom:-3px;transform:rotate(45deg)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dashboard-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}.dashboard-intro h2{font-size:var(--type-section-size);margin:0 0 5px}.dashboard-intro p{color:var(--muted);margin:0}.project-total{white-space:nowrap}.project-loading{min-height:230px;display:grid;place-items:center;border-top:2px solid var(--ink);background:var(--paper);color:var(--muted)}.ledger-head,.project-row{grid-template-columns:minmax(260px,1.7fr) minmax(130px,.8fr) minmax(140px,.7fr) 30px}.project-identity{display:flex;align-items:center;gap:13px;min-width:0}.project-symbol{width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto;border:1px solid var(--line);color:var(--green);background:var(--limestone)}.project-name{display:block}.project-id,.project-name{overflow:hidden;text-overflow:ellipsis}.no-search-results{padding:30px;text-align:center;border-bottom:1px solid var(--line);background:var(--paper);color:var(--muted);margin:0}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:16px;margin-top:20px}.pagination .button{min-width:96px}.dialog-backdrop{position:fixed;inset:0;z-index:40;background:#182522aa;display:grid;place-items:center;padding:20px}.create-dialog{width:min(100%,520px);padding:30px;background:var(--paper);border-top:3px solid var(--green);box-shadow:0 16px 50px #18252244}.create-dialog h2{font-size:var(--type-section-size);margin:0 0 8px}.create-dialog form{display:grid;grid-gap:17px;gap:17px}.create-dialog .field input,.create-dialog .field textarea{display:block;width:100%;border:1px solid var(--line);background:#fff;color:var(--ink);padding:11px;margin-top:6px}.create-dialog textarea{min-height:92px;resize:vertical;font:inherit}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:4px}@media(max-width:900px){.dashboard-topbar{grid-template-columns:1fr auto}.project-search{grid-row:2;grid-column:1/3}.ledger-head,.project-row{grid-template-columns:1fr 1fr}.project-identity{grid-column:1/3}}@media(max-width:650px){.dashboard-topbar{grid-template-columns:1fr auto;gap:14px;margin-bottom:24px;padding-bottom:20px}.dashboard-topbar .button{width:43px;padding:0;font-size:0}.dashboard-topbar .project-search{grid-column:1/3;width:100%}.dashboard-intro{align-items:start}.dashboard-intro p{font-size:13px}.summary-grid{display:none}.project-ledger{display:grid;grid-gap:10px;gap:10px;border-top:0}.project-row{grid-template-columns:1fr;gap:14px;padding:17px;min-height:44px;border:1px solid var(--line);border-left:3px solid var(--green)}.project-identity{grid-column:auto}.project-symbol{display:none}.project-row>div:not(.project-identity){display:flex;justify-content:space-between;align-items:center;gap:12px}.project-row .cell-label{margin:0}.pagination{justify-content:space-between;gap:8px}.pagination .button{min-width:0}.create-dialog{padding:24px 18px}.dialog-actions{display:grid;grid-template-columns:1fr 1fr}.dialog-actions .button{width:100%}}.project-filters{display:grid;grid-template-columns:minmax(180px,1fr) minmax(130px,auto);grid-gap:8px;gap:8px}.status-filter select{height:43px;width:100%;border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:0 30px 0 10px;font:inherit}.status-filter select:focus{outline:2px solid var(--green);outline-offset:1px}@media(max-width:900px){.project-filters{grid-row:2;grid-column:1/3}.dashboard-topbar .project-search{grid-row:auto;grid-column:auto}}@media(max-width:650px){.dashboard-topbar .project-filters{grid-column:1/3;grid-template-columns:1fr}.dashboard-topbar .project-search{grid-column:auto}}.shell-main{margin-left:var(--sidebar);min-height:100vh}.shell-main .workspace{margin-left:0}.global-topbar{height:64px;padding:0 clamp(24px,4vw,64px);gap:20px;background:var(--paper);border-bottom:1px solid var(--line)}.global-topbar,.profile-chip{display:flex;align-items:center}.profile-chip{gap:9px;min-width:180px;margin-left:auto}.profile-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--ink);color:#fff}.profile-chip small,.profile-chip strong{display:block;font-size:11px}.profile-chip small{color:var(--muted);margin-top:2px}.project-viewer-page{max-width:1500px;margin:auto}.viewer-breadcrumb{min-height:48px;display:flex;align-items:center;gap:10px;font-size:13px}.viewer-breadcrumb a{color:var(--muted);text-decoration:none}.status-pill{padding:4px 8px;background:#e3f3ea;color:var(--green);border:1px solid #b9dfcb;border-radius:4px;font-size:10px;text-transform:capitalize}.status-pill.loading,.status-pill.processing,.status-pill.queued,.status-pill.running{background:#fbf0d9;color:#8c5b13;border-color:#ead19e}.share-button{margin-left:auto;padding:8px 12px;border:1px solid var(--line);background:var(--paper);border-radius:4px}.viewer-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;grid-template-areas:"model inspector" "stepper inspector";grid-gap:12px;gap:12px}.model-workspace{grid-area:model;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--paper)}.viewer-tabs{height:46px;display:flex;align-items:stretch;border-bottom:1px solid var(--line);padding:0 10px}.viewer-tabs button{border:0;border-bottom:2px solid transparent;background:none;padding:0 18px;color:var(--muted);cursor:pointer;font-size:12px}.viewer-tabs button[aria-selected=true]{color:#075ed5;border-color:#075ed5}.model-stage{height:clamp(480px,64vh,690px);background:#e8eceb;position:relative}.viewer-message{height:100%;display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center;color:var(--muted)}.viewer-message strong{color:var(--ink)}.viewer-inspector{grid-area:inspector;display:grid;align-content:start;grid-gap:9px;gap:9px}.inspector-card{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:14px}.inspector-title,.project-card span{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:10px;margin-bottom:7px}.project-card strong{font-size:13px}.metric-list{margin:0}.metric-list div{display:flex;justify-content:space-between;gap:8px;padding:7px 0}.metric-list dt{font-size:10px;color:var(--muted)}.metric-list dd{margin:0;font:600 var(--type-telemetry-size)/var(--type-telemetry-line) var(--font-technical)}.metric-list div:nth-child(2) dd{color:#078d83}.mission-metadata div{display:block}.mission-metadata dd{margin-top:4px}.inspector-actions{display:grid;grid-gap:7px;gap:7px}.inspector-actions .button{min-height:38px;padding:8px;font-size:11px}.inspector-actions small{font-size:8px}.viewer-stepper{grid-area:stepper;display:flex;align-items:flex-start;padding:22px 16px;background:var(--paper);border:1px solid var(--line);border-radius:8px;overflow-x:auto}.viewer-step{position:relative;min-width:115px;flex:1 1;text-align:center;padding:0 6px}.viewer-step:before{content:"";position:absolute;top:12px;left:-50%;width:100%;height:1px;background:var(--line)}.viewer-step:first-child:before{display:none}.step-marker{position:relative;z-index:1;margin:auto auto 8px;display:grid;place-items:center;width:25px;height:25px;border-radius:50%;border:1px solid var(--line);background:var(--paper);font:var(--type-telemetry-size)/var(--type-telemetry-line) var(--font-technical)}.viewer-step.complete .step-marker{background:#0aa88d;color:#fff;border-color:#0aa88d}.viewer-step.active .step-marker{border:2px solid var(--amber)}.viewer-step.failed .step-marker{background:var(--danger);color:#fff}.viewer-step small,.viewer-step strong{display:block}.viewer-step strong{font-size:10px}.viewer-step small{margin-top:4px;color:var(--muted);font-size:8px}.viewer-step.placeholder{opacity:.68}.viewer-step.placeholder .step-marker,.viewer-step.placeholder:before{border-style:dashed}.viewer-step .preview-badge{margin-top:6px}.preview-badge{display:inline-flex;width:max-content;border:1px dashed var(--amber);color:#86540c;background:#fff8e9;padding:2px 5px;font:var(--type-telemetry-size)/1.2 var(--font-technical)}@media(max-width:1050px){.viewer-layout{grid-template-columns:1fr;grid-template-areas:"model" "inspector" "stepper"}.viewer-inspector{grid-template-columns:repeat(3,1fr)}.inspector-actions{align-content:start}.viewer-stepper{order:3}}@media(max-width:650px){.shell-main{margin-left:0}.global-topbar{display:none}.viewer-layout{display:block}.viewer-inspector{display:grid;grid-template-columns:1fr;margin:10px 0}.viewer-stepper{margin-top:10px}.model-stage{height:430px}.viewer-tabs{overflow-x:auto}.viewer-tabs button{white-space:nowrap;padding:0 12px}.viewer-breadcrumb{flex-wrap:wrap}.share-button{display:none}}.point-cloud-summary{position:absolute;z-index:2;right:12px;bottom:12px;display:flex;align-items:center;gap:7px;padding:9px 11px;border:1px solid var(--line);border-radius:4px;background:#fbfbf8e8;font:var(--type-telemetry-size)/var(--type-telemetry-line) var(--font-technical);color:var(--muted)}.point-cloud-summary strong{color:var(--ink)}.point-cloud-summary a{margin-left:8px;color:var(--blue)}.control-explanation{align-self:center;color:var(--muted);font-size:12px}.orthophoto-view{width:100%;height:100%;object-fit:contain;background:#e8eceb}.mission-head{padding-bottom:25px;border-bottom:1px solid var(--line)}.mission-head-index{align-self:center;padding:9px 12px;border:1px solid var(--line);background:var(--paper)}.mission-panel{padding:0;overflow:hidden}.mission-panel-head{display:flex;align-items:flex-start;gap:14px;padding:22px 24px;border-bottom:1px solid var(--line)}.mission-panel-head .mission-step{display:grid;place-items:center;flex:0 0 31px;height:31px;border:1px solid var(--green);color:var(--green)}.mission-panel-head h2{margin-top:2px}.mission-panel-head .panel-intro{margin:4px 0 0}.file-drop{margin:24px;min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border-color:var(--muted);background:var(--limestone)}.file-drop:hover{border-color:var(--green)}.file-drop-mark{display:grid;place-items:center;width:40px;height:40px;margin-bottom:6px;border:1px solid var(--green);color:var(--green);font:24px/1 var(--font-technical)}.file-drop strong{font-size:15px}.file-drop>span:not(.file-drop-mark){color:var(--muted);font-size:12px}.file-drop input{margin-top:12px;font:400 var(--type-caption-size)/var(--type-caption-line) var(--font-interface);color:var(--muted)}.image-selection{padding:0 24px 24px;border-top:1px solid var(--line)}.selection-guidance{margin:0 0 16px;color:var(--muted);font-size:12px}.processing-panel{padding:0;position:-webkit-sticky;position:sticky;top:22px}.processing-panel .mode-options{padding:20px 22px}.mode-options legend{padding:0 0 9px;color:var(--muted)}.mode-option{background:var(--paper)}.status-console{display:grid;grid-gap:5px;gap:5px;margin:0 22px 18px}.status-console span{font-size:9px;color:var(--line)}.status-console strong{font-weight:500;text-transform:uppercase}.mission-submit{width:calc(100% - 44px);margin:0 22px;justify-content:space-between}.project-reference{margin:14px 22px 20px;overflow-wrap:anywhere}.transfer-panel .upload-row{margin-right:24px;margin-left:24px}.transfer-panel .upload-row:last-child{margin-bottom:24px}.cost-estimate{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(240px,.65fr);margin-bottom:22px;border:1px dashed var(--amber);border-top:2px solid var(--amber);background:var(--paper)}.cost-estimate-copy{position:relative;padding:24px}.cost-estimate-copy .preview-badge{position:absolute;top:24px;right:24px}.cost-estimate-copy .eyebrow{color:var(--amber)}.cost-estimate-copy h2{margin:0 0 8px;font-size:var(--type-section-size)}.cost-estimate-copy p:last-child{max-width:580px;margin:0;color:var(--muted);line-height:1.5}.cost-estimate-value{display:grid;align-content:center;padding:24px;border-left:1px dashed var(--amber);background:var(--limestone)}.cost-estimate-value>span{color:var(--muted);font-size:11px}.cost-estimate-value strong{margin:7px 0;font:32px var(--font-technical);color:var(--ink)}.cost-estimate-value small{font:var(--type-telemetry-size)/1.5 var(--font-technical);color:var(--muted)}@media(max-width:650px){.mission-head-index{display:none}.mission-panel-head{padding:18px}.file-drop{margin:18px;min-height:170px}.image-selection{padding:0 18px 18px}.selection-count{width:100%;margin:3px 0 0}.processing-panel{position:static}.processing-panel .mode-options{padding:18px}.status-console{margin:0 18px 18px}.mission-submit{width:calc(100% - 36px);margin:0 18px}.project-reference,.transfer-panel .upload-row{margin-right:18px;margin-left:18px}.cost-estimate{grid-template-columns:1fr}.cost-estimate-copy{padding:20px 18px}.cost-estimate-copy .preview-badge{position:static;margin-bottom:17px}.cost-estimate-value{padding:20px 18px;border-top:1px dashed var(--amber);border-left:0}.thumb-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.mission-image-summary{overflow:hidden;border:1px solid var(--line);border-top:2px solid var(--green);background:#fff}.mission-image-summary-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 18px;border-bottom:1px solid var(--line);background:linear-gradient(105deg,#edf4f0,#fbfbf8 48%)}.mission-image-heading{display:flex;align-items:center;gap:12px}.mission-image-empty-mark,.mission-image-heading-mark{position:relative;display:grid;place-items:center;width:38px;height:38px;border:1px solid #9ec3b6;background:var(--paper);color:var(--green)}.mission-image-empty-mark:before,.mission-image-heading-mark:before{content:"";width:19px;height:13px;border:1.5px solid}.mission-image-empty-mark i,.mission-image-heading-mark i{position:absolute;width:5px;height:5px;border:1.5px solid;border-radius:50%}.mission-image-heading strong{display:block;margin-top:2px;font-size:16px}.mission-image-stats{display:flex;margin:0}.mission-image-stats div{min-width:96px;padding:2px 15px;border-left:1px solid var(--line)}.mission-image-stats dt{color:var(--muted);font-size:10px}.mission-image-stats dd{margin:3px 0 0;font:18px var(--font-technical)}.mission-image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));grid-gap:12px;gap:12px;margin:0;padding:14px;list-style:none;background:var(--limestone)}.mission-image-grid li{min-width:0;overflow:hidden;border:1px solid var(--line);background:var(--paper);transition:border-color .15s,transform .15s,box-shadow .15s}.mission-image-grid li:hover{border-color:#82958e;transform:translateY(-2px);box-shadow:0 7px 18px #18252216}.mission-image-visual{position:relative;overflow:hidden;background:var(--ink)}.mission-image-thumbnail{display:grid;place-items:center;overflow:hidden;aspect-ratio:4/3;background:#dfe4df;color:#53615d;font:var(--type-telemetry-size)/var(--type-telemetry-line) var(--font-technical)}.mission-image-thumbnail img{width:100%;height:100%;object-fit:cover;transition:transform .25s}.mission-image-grid li:hover img{transform:scale(1.025)}.mission-image-order{position:absolute;left:8px;bottom:8px;padding:4px 7px;background:#182522dc;color:#fff;border-left:2px solid var(--amber)}.mission-image-remove{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:30px;height:30px;border:1px solid #ffffff88;background:#182522d9;color:#fff;cursor:pointer;font:22px/1 var(--font-interface)}.mission-image-remove:focus-visible,.mission-image-remove:hover{border-color:#fff;background:var(--danger);outline:2px solid #fff;outline-offset:1px}.mission-image-meta{min-width:0;padding:11px 12px}.mission-image-meta strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:var(--type-telemetry-size)/1.4 var(--font-technical)}.mission-image-meta small{display:flex;justify-content:space-between;gap:10px;margin-top:6px;color:var(--muted);font-size:10px}.mission-image-empty{display:grid;justify-items:center;padding:50px 20px;background:repeating-linear-gradient(0deg,transparent,transparent 31px,#e5e8e3 32px),repeating-linear-gradient(90deg,transparent,transparent 31px,#e5e8e3 32px);color:var(--muted);text-align:center}.mission-image-empty-mark{width:54px;height:54px;margin-bottom:13px;background:var(--paper)}.mission-image-empty-mark:before{width:26px;height:18px}.mission-image-empty strong{color:var(--ink)}.mission-image-empty p{margin:5px 0 0;font-size:12px}.mission-review-controls{display:flex;gap:8px}.mission-range-actions{display:flex;gap:8px;margin-top:10px}@media(max-width:650px){.mission-image-summary-head{align-items:stretch;flex-direction:column}.mission-image-stats{border-top:1px solid var(--line);padding-top:12px}.mission-image-stats div{flex:1 1}.mission-image-stats div:first-child{padding-left:0;border-left:0}.mission-image-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px}.mission-image-meta small{display:block}.mission-image-meta small span{display:block;margin-top:2px}.mission-range-actions,.mission-review-controls{flex-direction:column}.mission-range-actions .button,.mission-review-controls .button{width:100%}}@media(max-width:420px){.mission-image-grid{grid-template-columns:1fr}.mission-image-thumbnail{aspect-ratio:16/10}}.mission-ledger .ledger-head,.mission-ledger .project-row{grid-template-columns:minmax(220px,1.6fr) 150px 120px 100px}.mission-resume{display:flex;align-items:center;justify-content:flex-end;gap:7px;color:var(--blue);font-size:12px}.mission-resume svg{width:16px}@media(max-width:900px){.mission-ledger .project-row{grid-template-columns:1fr 1fr}.mission-ledger .mission-resume{justify-content:flex-start}}@media(max-width:650px){.mission-ledger .project-row{grid-template-columns:1fr}.mission-ledger .mission-resume{justify-content:space-between}}.model-viewer{height:100%;display:grid;grid-template-rows:auto auto minmax(0,1fr);background:#e8eceb}.viewer-canvas{position:relative;min-height:0}.viewer-canvas canvas,.viewer-canvas>div{height:100%!important;width:100%!important}.viewer-controls{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px;background:var(--paper);border-bottom:1px solid var(--line);position:relative;z-index:3}.viewer-camera-controls,.viewer-measurement-controls{display:flex;gap:5px;flex-wrap:wrap}.viewer-controls button,.viewer-layer-drawer summary{min-height:38px;border:1px solid var(--line);background:#fff;color:var(--ink);padding:7px 10px;cursor:pointer}.viewer-controls button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:#fff}.viewer-controls button:disabled{cursor:not-allowed;opacity:.45}.viewer-controls button:focus-visible,.viewer-layer-drawer summary:focus-visible,.viewer-message button:focus-visible{outline:3px solid var(--amber);outline-offset:2px}.viewer-layer-drawer{position:relative}.viewer-layer-drawer summary{list-style:none}.viewer-layer-drawer>div{position:absolute;right:0;top:42px;display:grid;grid-gap:8px;gap:8px;min-width:140px;padding:12px;background:var(--paper);border:1px solid var(--line);box-shadow:0 5px 14px #18252222}.viewer-guidance{margin:0;padding:6px 10px;background:#edf1ef;color:var(--muted);font-size:11px}.viewer-load-progress{position:absolute;z-index:2;left:0;right:0;bottom:0;width:100%;height:5px;accent-color:var(--green)}.viewer-measurement-results{position:absolute;z-index:2;left:12px;bottom:12px;display:grid;grid-gap:4px;gap:4px;padding:9px 11px;background:#fbfbf8eb;border:1px solid var(--line);font:var(--type-telemetry-size)/var(--type-telemetry-line) var(--font-technical)}.viewer-message button{border:1px solid var(--ink);background:var(--ink);color:#fff;padding:8px 13px;cursor:pointer}.model-viewer canvas{touch-action:pan-y}@media(max-width:650px){.model-viewer{grid-template-rows:auto auto minmax(0,1fr)}.viewer-controls{align-items:flex-start}.viewer-camera-controls{display:grid;grid-template-columns:repeat(3,auto)}.viewer-controls button{font-size:11px;padding:6px}.viewer-layer-drawer>div{position:fixed;left:14px;right:14px;top:auto;min-width:0}.viewer-guidance{font-size:10px}}.delete-project-button{padding:8px 12px;border:1px solid #d6aaa4;background:transparent;color:var(--danger);border-radius:4px;cursor:pointer}.delete-project-button:disabled,.share-button:disabled{opacity:.45;cursor:not-allowed}.project-metadata{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:12px 14px;margin:0 0 12px}.project-metadata form{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(240px,1.2fr) auto;align-items:end;grid-gap:12px;gap:12px}.project-metadata .field input{margin-top:5px}.project-metadata>div{display:flex;gap:12px;align-items:baseline}.metadata-label{color:var(--muted);font-size:10px;text-transform:uppercase}.project-metadata strong{font-size:13px}.metadata-actions{display:flex;gap:7px}.metadata-actions .button{min-height:39px;padding:8px 12px;font-size:11px}.delete-dialog{border-top-color:var(--danger)}.danger-button{background:var(--danger);border-color:var(--danger)}.danger-button:hover{background:#7e2d26;border-color:#7e2d26}@media(max-width:650px){.project-metadata form{grid-template-columns:1fr}.metadata-actions{justify-content:flex-end}}.project-viewer-page{max-width:1680px}.project-workspace-header{margin-bottom:18px}.viewer-breadcrumb{min-height:auto;margin-bottom:12px;color:var(--color-text-tertiary);font-size:var(--type-label-size)}.viewer-breadcrumb a{color:var(--color-action-secondary);font-weight:600}.project-title-row{display:flex;align-items:center;gap:16px}.project-title-row h1{margin:0;font-size:clamp(1.75rem,2.4vw,2.5rem)}.project-title-row .eyebrow{margin-bottom:5px}.project-header-actions{display:flex;gap:10px;margin-left:auto}.delete-project-button,.share-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px}.share-button{border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);cursor:pointer}.status-pill{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border:0;border-radius:999px;background:var(--color-success-subtle);color:var(--color-success);font-size:var(--type-label-size);font-weight:600}.status-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.project-metadata{padding:14px 18px;border:0;border-left:4px solid var(--color-action-secondary);box-shadow:0 7px 24px #1825220b}.project-metadata>div{align-items:center}.project-metadata>div>svg{color:var(--color-action-secondary);flex:0 0 auto}.metadata-label{font-size:var(--type-label-size);text-transform:none}.project-metadata strong{font-size:var(--type-body-size)}.viewer-layout{grid-template-columns:minmax(0,1fr) 310px;gap:18px}.model-workspace{border:0;border-radius:12px;box-shadow:0 14px 40px #18252212}.viewer-tabs{height:58px;padding:7px 12px;align-items:center;background:var(--color-surface);gap:12px}.viewer-tabs>div{display:flex;gap:5px;padding:4px;background:var(--color-surface-subtle);border-radius:8px}.viewer-tabs button{min-height:38px;display:inline-flex;align-items:center;gap:7px;border:0!important;border-radius:6px;padding:0 14px;font-size:var(--type-button-size);font-weight:600}.viewer-tabs button[aria-pressed=true]{background:var(--color-surface);color:var(--color-action-secondary);box-shadow:0 2px 8px #18252218}.control-explanation{margin-left:auto;font-size:var(--type-label-size);color:var(--color-text-secondary)}.model-stage{height:clamp(540px,68vh,760px);background:var(--color-surface-subtle)}.model-stage>.map-workspace{height:100%;position:relative}.model-stage .map-canvas{height:100%;border:0}.model-stage .status-console{position:absolute;z-index:2;left:14px;right:auto;bottom:14px;max-width:min(680px,calc(100% - 28px));margin:0;border:0;border-radius:6px;padding:9px 12px;background:var(--color-viewer-overlay);box-shadow:var(--shadow-elevated);font-size:var(--type-caption-size)}.viewer-inspector{gap:12px}.inspector-card{border:0;border-radius:10px;padding:18px;box-shadow:0 7px 24px #1825220c}.project-card{border-top:4px solid var(--color-action-secondary)}.inspector-title,.project-card span{font-size:var(--type-label-size)}.inspector-title span,.project-card span{display:flex;align-items:center;justify-content:flex-start;gap:8px}.inspector-title svg,.project-card span svg{color:var(--color-action-secondary)}.project-card strong{font-size:1.125rem}.metric-list div{padding:11px 0;border-bottom:1px solid var(--color-border)}.metric-list div:last-child{border:0}.metric-list dt{font-size:var(--type-label-size)}.metric-list dd{font-size:.8125rem}.inspector-actions .button{min-height:46px;font-size:var(--type-button-size)}.viewer-stepper{border:0;border-radius:10px;padding:25px 20px;box-shadow:0 7px 24px #1825220c}.viewer-step strong{font-size:var(--type-label-size)}.viewer-step small{font-size:var(--type-caption-size)}.step-marker{width:30px;height:30px}.viewer-step:before{top:15px}.viewer-step.complete .step-marker{background:var(--color-success);border-color:var(--color-success)}.viewer-controls{padding:10px 12px;gap:10px}.viewer-camera-controls{gap:7px}.viewer-controls button,.viewer-layer-drawer summary,.viewer-tool-drawer summary{min-height:44px;display:inline-flex;align-items:center;gap:7px;border-radius:6px;font-size:var(--type-button-size)}.viewer-layer-drawer,.viewer-tool-drawer{position:relative}.viewer-layer-drawer summary,.viewer-tool-drawer summary{list-style:none;border:1px solid var(--color-border);background:var(--color-surface);padding:8px 12px;cursor:pointer}.viewer-tool-drawer>div{position:absolute;z-index:5;top:48px;right:0;min-width:220px;padding:10px;background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-elevated)}.viewer-guidance{padding:8px 12px;font-size:var(--type-label-size)}@media(max-width:1050px){.viewer-layout{grid-template-columns:1fr}.viewer-inspector{grid-template-columns:repeat(3,1fr)}}@media(max-width:650px){.project-title-row{align-items:flex-start;flex-wrap:wrap}.project-title-row .status-pill{margin-top:5px}.project-header-actions{width:100%;margin-left:0}.project-header-actions button{flex:1 1}.share-button{display:inline-flex}.viewer-tabs{height:auto;align-items:stretch;flex-direction:column}.viewer-tabs>div{width:100%}.viewer-tabs button{flex:1 1}.control-explanation{margin:0;padding:4px}.model-stage{height:520px}.viewer-inspector{grid-template-columns:1fr}.viewer-controls{flex-wrap:wrap}.viewer-tool-drawer>div{position:fixed;left:14px;right:14px;top:auto}}.workflow-progress{margin:-8px 0 22px;border:1px solid var(--line);background:var(--paper);padding:12px 16px}.workflow-progress>p{margin:0 0 9px}.workflow-progress ol{display:grid;grid-template-columns:repeat(8,1fr);list-style:none;padding:0;margin:0}.workflow-progress li{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;min-width:0}.workflow-progress li:after{content:"";height:1px;background:var(--line);flex:1 1}.workflow-progress li:last-child:after{display:none}.workflow-progress li span{display:grid;place-items:center;flex:0 0 23px;height:23px;border:1px solid var(--line);font:var(--type-telemetry-size)/var(--type-telemetry-line) var(--font-technical)}.workflow-progress li b{font-weight:500}.workflow-progress li.complete span{border-color:var(--green);background:var(--green);color:#fff}.workflow-progress li.active{color:var(--ink)}.workflow-progress li.active span{border-color:var(--amber);box-shadow:inset 0 0 0 2px var(--paper),inset 0 0 0 8px var(--amber)}.workflow-card{max-width:980px;margin-right:auto;margin-left:auto}.workflow-card>h2{font-size:var(--type-section-size)}.workflow-card>.field{display:block;max-width:600px;margin-bottom:20px}.crop-actions,.workflow-actions,.workflow-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.workflow-title-row .panel-intro{margin-bottom:16px}.review-list{display:grid;grid-gap:5px;gap:5px;margin-top:18px}.review-list label{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;padding:10px;border:1px solid var(--line);background:#fff}.review-list small{color:var(--muted)}.quote-total{display:grid;grid-template-columns:1fr auto;align-items:center;margin-top:20px;padding:18px;border:1px dashed var(--amber);background:var(--limestone)}.quote-total strong{font:30px var(--font-technical)}.quote-total small{grid-column:1/3;color:var(--muted)}.workflow-actions{max-width:980px;margin:0 auto 18px}.workflow-actions span{flex:1 1}.workflow-reference{max-width:980px;margin:0 auto;overflow-wrap:anywhere}.mission-hidden-input{position:fixed;width:1px;height:1px;opacity:0;pointer-events:none}.workflow-area>.panel{max-width:1100px;margin-right:auto;margin-left:auto}.crop-actions{justify-content:flex-start;margin-bottom:18px}.crop-actions .text-input{max-width:390px;margin:0}.completion-card{text-align:center;padding-block:55px}.completion-mark{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 18px;border:2px solid var(--green);border-radius:50%;color:var(--green);font-size:28px}.completion-card p{color:var(--muted)}.completion-card>div{display:flex;justify-content:center;gap:10px;margin:25px 0}.completion-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:28px auto 0;max-width:820px;border:1px solid var(--line);text-align:left}.completion-summary div{min-width:0;padding:14px 16px;border-right:1px solid var(--line)}.completion-summary div:last-child{border-right:0}.completion-summary dt{color:var(--muted);font-size:12px}.completion-summary dd{margin:5px 0 0;font-weight:600;overflow-wrap:anywhere}.completion-dashboard-link{display:inline-block;color:var(--muted);text-decoration:underline;text-underline-offset:3px}.completion-card .completion-actions{margin-bottom:18px}.processing-step{position:relative;overflow:hidden}.processing-illustration{position:absolute;right:30px;top:28px;display:grid;place-items:center;width:58px;height:58px;border:2px solid var(--amber);color:var(--amber);background:var(--limestone);transform:rotate(45deg)}.processing-illustration span{font:28px var(--font-technical);transform:rotate(-45deg)}.processing-illustration.success{border-color:var(--green);color:var(--green)}.processing-illustration.failure{border-color:var(--danger);color:var(--danger)}.processing-summary{display:grid;grid-template-columns:auto minmax(160px,1fr) auto;align-items:center;grid-gap:18px;gap:18px;padding:16px 18px;margin:20px 0 25px;background:var(--ink);color:#fff}.processing-summary div{display:grid;grid-gap:4px;gap:4px}.processing-summary span{font:var(--type-telemetry-size)/var(--type-telemetry-line) var(--font-technical);color:var(--line)}.processing-summary strong{font:14px var(--font-technical);text-transform:capitalize}.processing-summary progress{width:100%;accent-color:var(--amber)}.processing-step h3{margin:24px 0 10px;font-size:13px}.upload-list{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.processing-step .upload-row{grid-template-columns:minmax(130px,1fr) 2fr 105px auto;margin:0;padding:10px 4px;border-bottom:1px solid #e4e7e3}.processing-step .upload-row:last-child{border-bottom:0}.upload-row.failed{color:var(--danger)}.text-action{border:0;border-bottom:1px solid;padding:2px;background:transparent;color:var(--blue);cursor:pointer;font:var(--type-telemetry-size)/var(--type-telemetry-line) var(--font-technical)}.processing-stages{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));grid-gap:8px;gap:8px;padding:0;list-style:none}.processing-stages li{display:flex;align-items:center;gap:10px;min-height:64px;padding:11px;border-left:1px solid var(--line);border:1px solid var(--line);border-left-width:3px}.processing-stages li.running{border-left-color:var(--amber)}.processing-stages li.succeeded{border-left-color:var(--green)}.processing-stages li.failed{border-left-color:var(--danger)}.stage-mark{flex:0 0 9px;height:9px;border-radius:50%;background:var(--line)}.running .stage-mark{background:var(--amber)}.succeeded .stage-mark{background:var(--green)}.failed .stage-mark{background:var(--danger)}.processing-stages small,.processing-stages strong{display:block}.processing-stages strong{font-size:12px}.processing-stages small{margin-top:5px;color:var(--muted);font:var(--type-telemetry-size)/var(--type-telemetry-line) var(--font-technical)}.pipeline-empty{padding:15px;border:1px dashed var(--line);color:var(--muted);font-size:12px}.processing-step .notice{margin-top:20px}.processing-step .notice strong{display:block}.processing-step .notice p{line-height:1.5}.processing-later{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:18px;margin-top:22px;border-top:1px solid var(--line)}.processing-later p{margin:3px 0 0;color:var(--muted);font-size:12px}@media(max-width:650px){.processing-illustration{position:static;margin:0 0 18px 5px}.processing-summary{grid-template-columns:1fr}.processing-step .upload-row{grid-template-columns:1fr auto}.processing-step .upload-row progress{grid-column:1/3}.processing-later{align-items:stretch;flex-direction:column}.processing-later .button{width:100%}}@media(max-width:900px){.workflow-progress{overflow-x:auto}.workflow-progress ol{min-width:720px}}@media(max-width:650px){.workflow-progress{margin-inline:-14px;border-right:0;border-left:0}.workflow-progress li b{display:none}.workflow-progress ol{min-width:390px}.workflow-progress li:after{margin-inline:3px}.workflow-title-row{display:block}.workflow-title-row .button{margin-bottom:15px}.review-list label{grid-template-columns:22px minmax(0,1fr)}.review-list small{grid-column:2}.workflow-actions{position:-webkit-sticky;position:sticky;bottom:0;z-index:5;margin-inline:-14px;padding:12px 14px;background:var(--limestone);border-top:1px solid var(--line)}.completion-card>div,.crop-actions{flex-direction:column}.completion-summary{grid-template-columns:1fr 1fr}.completion-summary div:nth-child(2){border-right:0}.completion-summary div:nth-child(-n+2){border-bottom:1px solid var(--line)}.completion-card .button,.crop-actions .button{width:100%}}.field-error{display:block;margin-top:6px;color:var(--danger);font-size:11px}.field input[aria-invalid=true]{border-color:var(--danger)}.quote-option div{display:grid;grid-gap:3px;gap:3px}.quote-option strong{font-family:var(--font-technical)}.quote-confirm{display:flex;align-items:flex-start;gap:9px;margin-top:16px;padding:14px;border:1px solid var(--line);background:#fff}.quote-confirm input{margin-top:2px}.model-step-workspace{width:100%;min-width:0}.model-step-context{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:0 0 12px;padding:0 2px}.model-step-context h2{margin:0;font-size:var(--type-section-size)}.viewer-source-badge{flex:0 0 auto;padding:6px 9px;border:1px solid var(--green);background:#e8f1ec;color:var(--green);font:var(--type-telemetry-size)/var(--type-telemetry-line) var(--font-technical);text-transform:uppercase}.viewer-source-badge.fallback{border-color:var(--amber);background:#f6ecdc;color:#76501d}.model-step-grid{display:grid;grid-template-columns:minmax(0,1fr) clamp(290px,25vw,370px);grid-gap:14px;gap:14px;min-height:clamp(560px,72vh,820px)}.model-step-stage{display:grid;grid-template-rows:minmax(0,1fr) auto;min-width:0}.viewer-shell-primary{height:100%;min-height:560px}.viewer-fallback-note{margin:0;padding:10px 13px;border:1px solid var(--line);border-top:0;background:#f6ecdc;color:#76501d;font-size:12px}.model-step-rail{display:flex;flex-direction:column;gap:8px;min-width:0;overflow:auto}.model-step-rail>details{border:1px solid var(--line);background:var(--paper)}.model-step-rail>details>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:11px 13px;cursor:pointer;font-weight:650}.model-step-rail>details>summary:focus-visible{outline:3px solid var(--amber);outline-offset:2px}.model-step-rail>details>summary span{color:var(--muted);font:var(--type-telemetry-size)/var(--type-telemetry-line) var(--font-technical);text-transform:uppercase}.model-step-drawer{padding:0 12px 13px;border-top:1px solid var(--line)}.model-step-drawer>p{color:var(--muted);font-size:12px;line-height:1.45}.model-step-drawer>.panel{padding:0;border:0;margin:0;background:transparent}.model-step-drawer>.panel>.eyebrow,.model-step-drawer>.panel>.panel-intro,.model-step-drawer>.panel>h2{display:none}.model-step-drawer .map-layout{display:block}.model-step-drawer .map-canvas{height:310px}.model-step-drawer .map-controls{padding:0;border:0}.model-step-drawer .map-controls h3{margin-top:13px}.model-step-drawer .button{width:100%;margin-top:12px}.model-step-drawer .map-workspace .map-canvas{height:370px}.model-facts{margin:0;padding:0 13px 12px}.model-facts div{padding:9px 0;border-top:1px solid var(--line)}.model-facts dt{color:var(--muted);font-size:10px}.model-facts dd{margin:4px 0 0;overflow-wrap:anywhere;font:var(--type-telemetry-size)/1.4 var(--font-technical)}.viewer-tool-drawer{position:relative}.viewer-tool-drawer>summary{min-height:38px;border:1px solid var(--line);background:#fff;padding:9px 10px;cursor:pointer;font-size:12px}.viewer-tool-drawer>summary:focus-visible{outline:3px solid var(--amber);outline-offset:2px}.viewer-tool-drawer>.viewer-measurement-controls{position:absolute;z-index:4;right:0;top:42px;display:grid;min-width:205px;padding:10px;background:var(--paper);border:1px solid var(--line);box-shadow:0 5px 14px #18252222}@media(max-width:1050px){.model-step-grid{grid-template-columns:minmax(0,1fr) 300px}.viewer-shell-primary{min-height:510px}.viewer-controls{align-items:flex-start;flex-wrap:wrap}.viewer-camera-controls{flex:1 1}}@media(max-width:760px){.model-step-context{align-items:flex-start;flex-direction:column}.model-step-grid{grid-template-columns:1fr;min-height:0}.viewer-shell-primary{height:min(62vh,560px);min-height:420px}.model-step-rail{overflow:visible}.model-step-drawer .map-canvas{height:390px}.viewer-tool-drawer>.viewer-measurement-controls{position:fixed;left:14px;right:14px;top:auto;min-width:0}.viewer-source-badge{white-space:normal}}@media(max-width:420px){.viewer-shell-primary{height:430px;min-height:430px}.model-step-context h2{font-size:var(--type-section-size)}.viewer-camera-controls{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.viewer-camera-controls button{min-width:0}.viewer-layer-drawer,.viewer-tool-drawer{flex:1 1}.viewer-layer-drawer>summary,.viewer-tool-drawer>summary{width:100%;text-align:center}}@media(min-width:901px){.project-ledger .ledger-head,.project-ledger .project-row{grid-template-columns:minmax(260px,1.7fr) minmax(120px,.7fr) minmax(90px,.5fr) minmax(140px,.7fr) 30px}}.project-address{display:block;color:var(--muted);font-size:12px;margin:2px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bulk-toolbar{display:flex;align-items:center;gap:9px;padding:10px 12px;background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--green);margin-bottom:12px}.bulk-toolbar strong{margin-right:auto}.bulk-toolbar .button{min-height:36px;padding:7px 11px}.selectable-ledger .ledger-head,.selectable-ledger>.project-row{grid-template-columns:24px 1fr}.selectable-ledger>.project-row{display:grid;align-items:center}.selectable-ledger input[type=checkbox]{width:16px;height:16px;accent-color:var(--green)}.row-link{display:grid;grid-template-columns:minmax(260px,1.7fr) minmax(120px,.7fr) minmax(90px,.5fr) minmax(140px,.7fr) 30px;align-items:center;color:inherit;text-decoration:none}.selectable-ledger .ledger-head{padding-left:18px}.selectable-ledger>.project-row>input{margin-left:18px}.selectable-ledger>.project-row .row-link{min-height:76px}@media(max-width:900px){.row-link{grid-template-columns:1fr 1fr}.bulk-toolbar{flex-wrap:wrap}.bulk-toolbar strong{width:100%}}:where(button,a,input,select,textarea,summary,[role=button]):focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.ui-button{min-height:44px;padding:0 16px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:9px;background:var(--color-action-primary);color:var(--color-text-inverse);cursor:pointer;text-decoration:none;transition:background-color .12s,border-color .12s,transform .08s}.ui-button:hover:not(:disabled){background:var(--color-action-primary-hover)}.ui-button:active:not(:disabled){background:var(--color-action-primary-active);transform:translateY(1px)}.ui-button--secondary{border-color:var(--color-border-strong);background:var(--color-surface);color:var(--color-text)}.ui-button--secondary:hover:not(:disabled){border-color:var(--color-action-secondary);background:var(--color-surface-subtle)}.ui-button--quiet{background:transparent;color:var(--color-action-secondary)}.ui-button--quiet:hover:not(:disabled){background:var(--color-surface-subtle)}.ui-button--destructive{border-color:var(--color-danger);background:var(--color-danger);color:var(--color-text-inverse);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.ui-button--destructive:hover:not(:disabled){background:var(--color-danger-hover)}.ui-button--small{min-height:36px;padding-inline:12px;font-size:var(--type-caption-size)}.ui-button--large{min-height:52px;padding-inline:22px}.ui-button:disabled,.ui-icon-button:disabled{border-color:var(--color-border);background:var(--color-disabled-bg);color:var(--color-disabled-text);cursor:not-allowed;opacity:1}.ui-icon-button{width:44px;height:44px;display:inline-grid;place-items:center;padding:0;border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);cursor:pointer}.ui-icon-button:hover:not(:disabled){border-color:var(--color-action-secondary);background:var(--color-surface-subtle)}.ui-icon-button:active:not(:disabled){background:var(--color-border)}.ui-icon-button--large{width:52px;height:52px}.ui-icon-button--destructive{border-color:var(--color-danger);color:var(--color-danger)}.ui-field{display:grid;grid-gap:6px;gap:6px;color:var(--color-text)}.ui-field__label{font:600 var(--type-label-size)/var(--type-label-line) var(--font-interface)}.ui-control{width:100%;min-height:44px;padding:9px 11px;border:1px solid var(--color-border-strong);border-radius:0;background:var(--color-surface);color:var(--color-text)}.ui-control:hover:not(:disabled){border-color:var(--color-action-secondary)}.ui-control:focus{outline:3px solid var(--color-focus);outline-offset:1px;border-color:var(--color-text)}.ui-control:disabled{background:var(--color-disabled-bg);color:var(--color-disabled-text);cursor:not-allowed}.ui-control[aria-invalid=true]{border:2px solid var(--color-danger)}.ui-field__error,.ui-field__hint{font-size:var(--type-caption-size)}.ui-field__hint{color:var(--color-text-secondary)}.ui-field__error{color:var(--color-danger);font-weight:600}.ui-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:36px;background-image:linear-gradient(45deg,transparent 50%,currentColor 0),linear-gradient(135deg,currentColor 50%,transparent 0);background-position:calc(100% - 16px) 19px,calc(100% - 11px) 19px;background-size:5px 5px;background-repeat:no-repeat}.ui-textarea{min-height:96px;resize:vertical}.ui-choice{position:relative;display:grid;grid-template-columns:24px 1fr;grid-gap:10px;gap:10px;align-items:start;min-height:44px;padding:10px 0;cursor:pointer}.ui-choice__input{position:absolute;width:1px;height:1px;opacity:0}.ui-choice__mark{display:grid;place-items:center;width:20px;height:20px;border:2px solid var(--color-border-strong);background:var(--color-surface)}.ui-choice__input[type=radio]+.ui-choice__mark{border-radius:50%}.ui-choice__input:checked+.ui-choice__mark{border:5px solid var(--color-action-primary)}.ui-choice__input[type=checkbox]:checked+.ui-choice__mark:after{content:"";width:6px;height:10px;border:solid var(--color-action-primary);border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px)}.ui-choice__input:focus-visible+.ui-choice__mark{outline:3px solid var(--color-focus);outline-offset:2px}.ui-choice:has(input:disabled){color:var(--color-disabled-text);cursor:not-allowed}.ui-choice small{display:block;color:var(--color-text-secondary)}.ui-status{display:inline-flex;align-items:center;gap:7px;width:max-content;padding:3px 8px;border:1px solid var(--color-border-strong);background:var(--color-surface-subtle);font-size:var(--type-caption-size);font-weight:600}.ui-status:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.ui-status--success{border-color:var(--color-success);background:var(--color-success-subtle);color:var(--color-success)}.ui-status--warning{border-color:var(--color-warning);background:var(--color-warning-subtle);color:#704000}.ui-status--danger{border-color:var(--color-danger);background:var(--color-danger-subtle);color:var(--color-danger)}.ui-status--info{border-color:var(--color-action-secondary);color:var(--color-action-secondary)}.ui-spinner{display:inline-grid;place-items:center}.ui-spinner__ring{width:20px;height:20px;border:2px solid;border-right:2px solid transparent;border-radius:50%;animation:ui-spin .7s linear infinite}.ui-spinner--small .ui-spinner__ring{width:16px;height:16px}.ui-spinner--large .ui-spinner__ring{width:32px;height:32px;border-width:3px}@keyframes ui-spin{to{transform:rotate(1turn)}}@media(prefers-reduced-motion:reduce){.ui-spinner__ring{animation-duration:1.5s}.ui-button{transition:none}}.ui-dialog-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:var(--color-overlay)}.ui-dialog{width:min(100%,540px);max-height:calc(100vh - 40px);overflow:auto;padding:28px;background:var(--color-surface-elevated);border-top:4px solid var(--color-action-primary);box-shadow:var(--shadow-elevated)}.ui-dialog--destructive{border-top-color:var(--color-danger)}.ui-dialog h2{margin:0 0 8px}.ui-dialog__description{margin:0 0 22px;color:var(--color-text-secondary)}.button{min-height:44px;background:var(--color-action-primary);border-color:var(--color-action-primary)}.button:hover{background:var(--color-action-primary-hover);border-color:var(--color-action-primary-hover)}.button.secondary{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text)}.button.secondary:hover{background:var(--color-surface-subtle);border-color:var(--color-action-secondary)}.button:disabled{opacity:1;background:var(--color-disabled-bg);border-color:var(--color-border);color:var(--color-disabled-text)}.danger-button,.delete-project-button{background:var(--color-danger);border-color:var(--color-danger);color:var(--color-text-inverse);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.danger-button:hover,.delete-project-button:hover{background:var(--color-danger-hover);border-color:var(--color-danger-hover)}.dialog-backdrop{background:var(--color-overlay)}.create-dialog{background:var(--color-surface-elevated);box-shadow:var(--shadow-elevated)}.mission-image-order,.viewer-label{background:var(--color-viewer-overlay)}.viewer-controls button{min-height:44px}.mission-image-remove{width:44px;height:44px;background:var(--color-viewer-overlay)}:root{--motion-feedback:90ms;--motion-standard:180ms;--motion-entrance:240ms;--ease-standard:cubic-bezier(.2,0,0,1);--ease-exit:cubic-bezier(.4,0,1,1)}html{scroll-behavior:smooth}:where(.button,.ui-button,.ui-icon-button,.viewer-controls button,.share-button,.nav-link,.mobile-bar nav a,.choice,.mode-option,.project-row,.inspector-card,.model-step-rail>details>summary,.viewer-tool-drawer>summary){transition:color var(--motion-feedback) var(--ease-standard),background-color var(--motion-feedback) var(--ease-standard),border-color var(--motion-feedback) var(--ease-standard),box-shadow var(--motion-standard) var(--ease-standard),opacity var(--motion-feedback) var(--ease-standard),transform var(--motion-feedback) var(--ease-standard)}:where(input,select,textarea,.ui-control,.project-search){transition:border-color var(--motion-feedback) var(--ease-standard),box-shadow var(--motion-feedback) var(--ease-standard),background-color var(--motion-feedback) var(--ease-standard)}:where(.viewer-inspector,.model-step-rail,.model-step-drawer,.viewer-tool-drawer>.viewer-measurement-controls){transition:opacity var(--motion-standard) var(--ease-standard),transform var(--motion-standard) var(--ease-standard)}.ui-dialog-backdrop{animation:motion-fade-in var(--motion-standard) var(--ease-standard)}.ui-dialog{animation:motion-dialog-in var(--motion-entrance) var(--ease-standard)}.error,.notice.error,.ui-dialog--destructive,[role=alert]{animation:none;transition:none}.processing-stages li,.status,.status-pill,.ui-status,.viewer-step{transition:color var(--motion-standard) var(--ease-standard),background-color var(--motion-standard) var(--ease-standard),border-color var(--motion-standard) var(--ease-standard),opacity var(--motion-standard) var(--ease-standard),transform var(--motion-standard) var(--ease-standard)}@keyframes motion-fade-in{0%{opacity:0}}@keyframes motion-dialog-in{0%{opacity:0;transform:translateY(8px)}}.route-skeleton{animation:motion-fade-in var(--motion-entrance) var(--ease-standard)}.skeleton-block,.skeleton-line,.skeleton-row,.skeleton-summary{display:block;background:var(--color-disabled-bg);position:relative;overflow:hidden}.skeleton-line{height:14px}.skeleton-eyebrow{width:90px;height:11px;margin-bottom:10px}.skeleton-title{width:min(240px,55vw);height:42px}.skeleton-heading{width:230px;height:24px;margin-bottom:9px}.skeleton-copy{width:min(440px,70vw);height:16px}.skeleton-search{height:43px}.skeleton-action{width:126px;height:44px}.skeleton-summary{height:78px;border-right:1px solid var(--color-border)}.skeleton-ledger{display:grid}.skeleton-row{height:76px;border-bottom:1px solid var(--color-border)}.skeleton-breadcrumb{width:120px;height:14px}.skeleton-status{width:76px;height:28px}.skeleton-viewer{height:min(65vh,620px);min-height:420px}.skeleton-inspector-card{height:118px}.skeleton-inspector-tall{height:260px}.skeleton-progress{height:72px;margin:0 auto 22px;max-width:980px}.skeleton-field{width:min(600px,100%);height:68px;margin:22px 0}.skeleton-dropzone{height:160px}.mission-loading .workflow-actions{max-width:980px}.route-skeleton :where(.skeleton-line,.skeleton-block,.skeleton-row,.skeleton-summary):after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,var(--color-surface-subtle),transparent);transform:translateX(-100%);animation:skeleton-sweep 1.4s ease-in-out infinite}@keyframes skeleton-sweep{to{transform:translateX(100%)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important;transition-delay:0ms!important}.route-skeleton :where(.skeleton-line,.skeleton-block,.skeleton-row,.skeleton-summary):after{display:none}}@media(max-width:650px){.skeleton-search{grid-column:1/3}.skeleton-action{width:44px}.skeleton-viewer{height:440px;min-height:0}.skeleton-summary{display:none}}.app-shell,.panel,.shell-main,.workspace{min-width:0}.workspace{max-width:none;background:linear-gradient(180deg,var(--color-surface) 0,var(--color-surface-canvas) 190px)}.dashboard-topbar{grid-template-columns:minmax(0,1fr) auto;align-items:end;max-width:1560px;margin:0 auto 28px;padding:6px 0 28px}.dashboard-title{max-width:720px}.dashboard-title h1{font-size:clamp(2.25rem,4vw,3.5rem)}.dashboard-title>p:last-child{max-width:630px;margin:12px 0 0;color:var(--color-text-secondary);font-size:1.0625rem;line-height:1.6}.dashboard-create{min-height:52px;padding:0 22px;border-radius:10px;box-shadow:var(--shadow-elevated)}.dashboard-create svg{width:22px;height:22px}.project-toolbar{display:grid;grid-template-columns:minmax(280px,1fr) auto;grid-gap:14px;gap:14px;align-items:end;max-width:1560px;margin:0 auto 38px;padding:18px;border:1px solid var(--color-border);border-radius:14px;background:var(--color-surface);box-shadow:var(--shadow-elevated)}.project-search{height:54px;padding:0 17px;gap:12px;border-color:var(--color-border-strong);border-radius:9px}.project-search:hover{border-color:var(--color-action-secondary)}.project-search:focus-within{border-color:var(--color-focus);box-shadow:0 0 0 3px var(--color-warning-subtle)}.project-search input{font-size:1rem}.project-search input::placeholder{color:var(--color-text-tertiary)}.search-field-icon{display:grid;place-items:center;color:var(--color-action-secondary)}.search-field-icon svg{width:22px;height:22px}.project-filters{display:flex;gap:10px}.status-filter{display:grid;grid-gap:5px;gap:5px;min-width:170px}.status-filter>span{padding-left:2px;color:var(--color-text-secondary);font-size:.75rem;font-weight:600}.status-filter select{height:54px;min-width:170px;padding:0 42px 0 14px;border-color:var(--color-border-strong);border-radius:9px;font-weight:500;cursor:pointer}.status-filter select:hover{border-color:var(--color-action-secondary);background:var(--color-surface-subtle)}.status-filter select:focus{outline:3px solid var(--color-focus);outline-offset:2px;border-color:var(--color-focus)}.bulk-toolbar,.dashboard-intro,.empty-state,.notice,.pagination,.project-ledger,.project-loading,.summary-grid{max-width:1560px;margin-left:auto;margin-right:auto}.dashboard-intro{align-items:center;margin-bottom:18px}.dashboard-intro .eyebrow,.dashboard-intro h2{margin-bottom:7px}.dashboard-intro p{font-size:1rem}.project-total{padding:7px 10px;border-radius:999px;background:var(--color-surface-subtle);color:var(--color-text-secondary);font-weight:600}.summary-grid{gap:14px;border:0;background:transparent;margin-bottom:28px}.summary-item{position:relative;display:grid;grid-template-columns:52px 1fr;grid-template-rows:auto auto auto;padding:18px 20px;border:1px solid var(--color-border)!important;border-radius:12px;background:var(--color-surface);box-shadow:var(--shadow-elevated)}.summary-item>.summary-icon{grid-row:1/4;align-self:center;display:grid;place-items:center;width:44px;height:44px;margin:0;border-radius:11px;background:var(--color-surface-subtle);color:var(--color-action-secondary)}.summary-item>.summary-icon svg{width:24px;height:24px}.summary-item>span:not(.summary-icon){font-size:.8125rem;font-weight:600}.summary-item strong{margin-top:2px;font-size:1.75rem;line-height:1.1}.summary-item small{color:var(--color-text-tertiary);font-size:.75rem}.summary-item.completed>.summary-icon{background:var(--color-success-subtle);color:var(--color-success);font-size:1.25rem;font-weight:700}.summary-pulse{width:12px;height:12px;border:3px solid var(--color-warning);border-radius:50%;box-shadow:0 0 0 5px var(--color-warning-subtle)}.project-ledger{overflow:hidden;border:1px solid var(--color-border);border-top:3px solid var(--color-text);border-radius:12px;background:var(--color-surface);box-shadow:var(--shadow-elevated)}.selectable-ledger .ledger-head{display:grid;grid-template-columns:32px minmax(260px,1.7fr) minmax(130px,.7fr) minmax(90px,.5fr) minmax(140px,.7fr) 30px;grid-gap:16px;gap:16px;align-items:center;padding:14px 20px;background:var(--color-surface-subtle);font-size:.75rem;font-weight:600}.selectable-ledger>.project-row{grid-template-columns:32px minmax(0,1fr);gap:0;padding:0 20px;transition:background-color var(--motion-feedback) var(--ease-standard),transform var(--motion-feedback) var(--ease-standard)}.selectable-ledger>.project-row:hover{background:var(--color-surface-subtle)}.selectable-ledger>.project-row>input{margin:0}.selectable-ledger>.project-row .row-link{min-height:94px;padding-left:0}.selectable-ledger input[type=checkbox]{width:18px;height:18px}.project-symbol{width:46px;height:46px;border-radius:10px;background:var(--color-success-subtle);border-color:transparent}.project-symbol svg{width:23px;height:23px}.project-name{font-size:1rem}.project-address{font-size:.8125rem}.project-id{font-size:.6875rem}.status{padding:6px 10px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);font-size:.8125rem;font-weight:600}.status.completed{border-color:var(--color-success);background:var(--color-success-subtle);color:var(--color-success)}.status.failed{border-color:var(--color-danger);background:var(--color-danger-subtle);color:var(--color-danger)}.row-arrow{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;transition:background-color .15s,transform .15s}.project-row:hover .row-arrow{background:var(--color-action-secondary);color:var(--color-text-inverse);transform:translateX(3px)}@media(max-width:1050px){.project-toolbar{grid-template-columns:1fr}.project-filters{display:grid;grid-template-columns:1fr 1fr}.selectable-ledger .ledger-head{display:none}.selectable-ledger>.project-row{grid-template-columns:32px 1fr}.row-link{grid-template-columns:minmax(240px,1.4fr) repeat(3,minmax(110px,.65fr)) 30px}}@media(max-width:650px){.workspace{background:var(--color-surface-canvas)}.dashboard-topbar{grid-template-columns:1fr auto;align-items:center}.dashboard-title h1{font-size:2.125rem}.dashboard-title>p:last-child{display:none}.dashboard-create{width:52px!important;height:52px;font-size:0!important;border-radius:50%}.project-toolbar{margin-bottom:30px;padding:12px;border-radius:12px}.project-search{height:52px}.project-filters{grid-template-columns:1fr 1fr}.status-filter{min-width:0}.status-filter select{min-width:0;height:50px;font-size:.8125rem}.dashboard-intro{align-items:flex-end}.dashboard-intro .eyebrow{display:none}.dashboard-intro h2{font-size:1.25rem}.dashboard-intro p{font-size:.875rem}.project-total{font-size:.625rem}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:7px;gap:7px}.summary-item{display:block;padding:12px}.summary-item>.summary-icon{width:34px;height:34px;margin-bottom:14px}.summary-item small,.summary-item>span:not(.summary-icon){display:none}.summary-item strong{font-size:1.5rem}.selectable-ledger>.project-row{grid-template-columns:28px 1fr;padding:0 14px;border-left:0}.selectable-ledger>.project-row .row-link{grid-template-columns:1fr;gap:11px;padding:15px 0}.selectable-ledger>.project-row .row-link>div:not(.project-identity){display:flex;align-items:center;justify-content:space-between}.selectable-ledger>.project-row .row-arrow{display:none}.project-symbol{display:grid}.project-id{white-space:normal;overflow-wrap:anywhere}}.mobile-header{display:none}.map-canvas{height:clamp(360px,62dvh,620px);min-height:360px}.viewer-shell{height:clamp(420px,65dvh,620px)}.viewer-shell-primary{height:clamp(500px,72dvh,820px);min-height:500px}:where(button,a,summary,input[type=button],input[type=submit],input[type=reset]){min-height:44px}:where(input[type=checkbox],input[type=radio]){min-width:20px;min-height:20px}.workflow-progress-summary{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:9px}.workflow-progress-summary p{margin:0}.workflow-progress-summary strong{font-size:var(--type-label-size)}.workflow-progress-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch}.workflow-progress-scroll:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}@media(max-width:650px){.mobile-header{display:block;position:-webkit-sticky;position:sticky;top:0;z-index:30;background:var(--color-surface-inverse);color:var(--color-text-inverse)}.mobile-bar{display:flex;position:relative;top:auto;height:auto;min-height:64px;padding:8px max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left));gap:10px}.mobile-location{min-width:0;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.mobile-menu-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:88px;min-height:44px;padding:8px 10px;border:1px solid var(--color-border-strong);background:transparent;color:inherit;cursor:pointer}.menu-icon{display:grid;grid-gap:4px;gap:4px;width:18px}.menu-icon i{display:block;height:2px;background:currentColor}.mobile-menu{position:absolute;top:100%;right:0;left:0;padding:10px max(14px,env(safe-area-inset-right)) calc(14px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));background:var(--color-surface-inverse);border-top:1px solid var(--color-border-strong);box-shadow:var(--shadow-elevated)}.mobile-menu nav{display:grid;grid-gap:4px;gap:4px}.mobile-menu nav a{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;grid-gap:12px;gap:12px;min-height:52px;padding:10px 12px;color:var(--color-text-inverse);text-decoration:none;border-left:3px solid transparent}.mobile-menu nav a.active{background:#28413b;border-left-color:var(--color-warning)}.mobile-menu nav a small{font:var(--type-telemetry-size)/var(--type-telemetry-line) var(--font-technical)}.mobile-account{display:flex;align-items:center;gap:12px;margin-top:10px;padding:12px;border-top:1px solid var(--color-border-strong)}.mobile-account>span{display:grid;min-width:0;margin-right:auto}.mobile-account small,.mobile-account strong{overflow-wrap:anywhere}.mobile-account small{color:var(--color-border)}.mobile-account button{flex:0 0 auto;padding:8px 14px;border:1px solid var(--color-border-strong);background:transparent;color:var(--color-text-inverse);cursor:pointer}.workspace{padding-right:max(14px,env(safe-area-inset-right));padding-bottom:calc(64px + env(safe-area-inset-bottom));padding-left:max(14px,env(safe-area-inset-left))}.map-canvas{height:clamp(320px,58dvh,520px);min-height:320px}.viewer-shell,.viewer-shell-primary{height:clamp(360px,62dvh,560px);min-height:360px}.workflow-progress{overflow:visible}.workflow-progress-scroll{margin-inline:-2px;padding:3px 2px 10px}.workflow-progress ol{min-width:720px}.workflow-progress li{font-size:var(--type-label-size)}.workflow-progress li b{display:block;white-space:nowrap}.workflow-progress li span{flex-basis:28px;height:28px}.workflow-actions{bottom:0;padding-bottom:calc(12px + env(safe-area-inset-bottom))}.auth-workspace{align-items:start;padding:calc(20px + env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}.auth-card{padding:clamp(20px,7vw,32px);gap:24px}.row-link{grid-template-columns:minmax(0,1fr)}}@media(max-height:520px) and (orientation:landscape){.map-canvas,.viewer-shell,.viewer-shell-primary{height:calc(100dvh - 96px);min-height:280px}.workspace{padding-top:18px}}@media(max-width:360px){.mobile-location{display:none}.mobile-menu-button{margin-left:auto}.workflow-actions{flex-wrap:wrap}.workflow-actions span{display:none}.workflow-actions .button{flex:1 1 100%}.completion-summary{grid-template-columns:minmax(0,1fr)}.completion-summary div{border-right:0;border-bottom:1px solid var(--line)}}