:root{color:#1f2426;background:#eef1ef;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:geometricPrecision;--surface: #ffffff;--surface-2: #f6f8f7;--ink: #1f2426;--muted: #657072;--line: #d9dfdc;--strong-line: #aeb9b5;--green: #2f8d61;--green-dark: #1f6b48;--red: #b8453d;--orange: #c87928;--cyan: #1f7f96;--shadow: 0 14px 32px rgba(31, 36, 38, .13)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;background:#eef1ef}body{overflow:hidden;color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid rgba(31,127,150,.35);outline-offset:2px}.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}.app-shell{display:grid;grid-template-rows:auto minmax(0,1fr);height:100%;min-height:100%;background:#eef1ef}.topbar{position:relative;display:grid;grid-template-columns:minmax(500px,520px) minmax(0,1fr);gap:18px;align-items:start;padding:14px 18px;background:var(--surface);border-bottom:1px solid var(--line);z-index:20}.brand-panel{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.brand{display:flex;align-items:center;gap:12px;min-height:48px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:8px;background:#24312d;color:#f7fbf9;font-weight:800}.brand h1{margin:0;font-size:19px;line-height:1.1;letter-spacing:0}.brand span,.field span,.candidate-meta,.compact-list dt,.metric-grid span,.segment-list span,.project-strip span{color:var(--muted);font-size:12px;line-height:1.2}.sign-out-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 9px;border:1px solid var(--line);border-radius:7px;color:var(--ink);background:var(--surface);font-size:12px;font-weight:700;white-space:nowrap}.account-actions,.account-identity{display:inline-flex;align-items:center;gap:7px}.account-actions{flex-wrap:wrap;justify-content:flex-end}.account-identity{min-height:34px;padding:0 9px;border:1px solid #c8ddd0;border-radius:7px;color:#245b3d;background:#edf7f0;font-size:12px}.account-identity strong{font-size:10px;letter-spacing:0;text-transform:uppercase}.recent-projects{position:static}.recent-projects>summary{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:0 8px;border:1px solid var(--line);border-radius:7px;color:var(--ink);background:var(--surface);cursor:pointer;list-style:none}.recent-projects-label{font-size:12px;font-weight:750}.recent-projects-count{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:10px;color:#385049;background:#e8eeeb;font-size:10px;font-weight:800}.recent-projects>summary::-webkit-details-marker{display:none}.recent-projects[open]>summary,.recent-projects>summary:hover{border-color:var(--strong-line);background:var(--surface-2)}.recent-projects-menu{position:absolute;top:calc(100% + 8px);left:0;z-index:30;width:min(360px,calc(100vw - 24px));padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 18px 42px #1c25222e}.recent-projects-heading{display:flex;align-items:center;justify-content:space-between;min-height:34px;padding:0 6px 6px 10px;border-bottom:1px solid var(--line);font-size:13px}.recent-projects-heading button{display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:6px;color:var(--muted);background:transparent}.recent-projects-filter{display:flex;align-items:center;gap:7px;min-height:36px;margin:8px 5px 3px;padding:0 9px;border:1px solid var(--line);border-radius:7px;color:var(--muted);background:var(--surface-2)}.recent-projects-filter:focus-within{border-color:#6ba988;box-shadow:0 0 0 2px #2f8d611f}.recent-projects-filter input{min-width:0;width:100%;font-size:12px}.recent-project-list{display:grid;max-height:320px;overflow-y:auto;padding-top:5px}.recent-project-list>button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;min-height:54px;padding:8px 10px;border:0;border-radius:6px;color:var(--ink);background:transparent;text-align:left}.recent-project-list>button:hover,.recent-project-list>button.active{background:var(--surface-2)}.recent-project-list>button>span{display:grid;gap:4px;min-width:0}.recent-project-list strong,.recent-project-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-project-list strong{font-size:12px}.recent-project-list small,.recent-projects-state{color:var(--muted);font-size:11px}.recent-project-status{justify-self:start;padding:3px 6px;border-radius:5px;color:#4f5a56;background:#edf0ef;font-size:10px;font-weight:750}.recent-project-status.ready{color:#225c3d;background:#e4f4ea}.recent-project-status.review{color:#735012;background:#fff1cc}.recent-projects-state{display:flex;align-items:center;gap:7px;min-height:54px;padding:10px}.recent-projects-state.error{color:#9b3b34}.connection-state{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 9px;border:1px solid #e2c5a2;border-radius:7px;color:#704a1e;background:#fff6e9;font-size:12px;font-weight:700}.sign-out-button:hover{border-color:var(--strong-line);background:var(--surface-2)}.address-panel{display:grid;gap:8px}.search-row{display:grid;grid-template-columns:minmax(260px,1fr) minmax(150px,190px) minmax(160px,230px) auto;gap:10px;align-items:end}.field{display:grid;gap:5px}.input-with-icon{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;min-height:42px;padding:0 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface-2)}.input-clear-button{display:grid;width:28px;height:28px;padding:0;place-items:center;border:0;border-radius:6px;color:var(--muted);background:transparent}.input-clear-button:hover{color:var(--ink);background:#e6ebe8}.input-with-icon:focus-within,select:focus{border-color:var(--cyan);outline:2px solid rgba(31,127,150,.16)}input,select{min-width:0;height:42px;border:1px solid var(--line);border-radius:7px;color:var(--ink);background:var(--surface-2)}input{border:0;background:transparent;outline:0}select{padding:0 10px}.provider-value{display:flex;align-items:center;min-width:0;height:42px;padding:0 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface-2)}.provider-value.loading{gap:7px;color:#5b6863}.provider-value strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:0 14px;border-radius:7px;border:1px solid transparent;font-size:14px;font-weight:700;white-space:nowrap}.primary-button{color:#fff;background:var(--green-dark)}.primary-button:hover:not(:disabled){background:#18573c}.primary-button:disabled,.secondary-button:disabled,.tool:disabled{opacity:.45}.primary-button.compact{min-height:40px}.secondary-button{color:var(--ink);background:var(--surface);border-color:var(--line)}.secondary-button.active{border-color:var(--green);color:var(--green-dark);background:#edf8f1}.candidate-list{display:grid;gap:6px;max-height:118px;overflow:auto;padding-right:4px}.candidate-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;min-height:48px;padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:#fbfcfc;text-align:left;width:100%}.candidate-row:hover,.candidate-row.active{border-color:var(--cyan);background:#f1f8f8}.candidate-main{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700}.candidate-meta{display:inline-flex;align-items:center;gap:5px}.candidate-meta.strong{color:#24613f}.candidate-meta.review{color:#765315}.candidate-meta.broad{color:#6f4b43}.geocoder-attributions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px 12px}.geocoder-attribution{justify-self:end;color:#59645f;font-size:11px;text-decoration:none}.geocoder-attribution:hover{text-decoration:underline}.inline-error,.inline-warning{padding:8px 10px;border-radius:7px;font-size:12px;font-weight:650}.inline-error{color:var(--red);background:#fff0ee}.service-error{display:flex;align-items:center;justify-content:space-between;gap:12px}.retry-button{display:inline-flex;flex:0 0 auto;align-items:center;gap:5px;min-height:28px;padding:0 9px;border:1px solid #d98f88;border-radius:6px;color:#8c2f28;background:#fff;font-size:12px;font-weight:750}.inline-warning{color:#77510f;background:#fff7e8}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 390px;min-height:0;overflow:hidden}.workspace.rail-collapsed{grid-template-columns:minmax(0,1fr)}.editor-region{position:relative;display:grid;grid-template-rows:auto auto minmax(0,1fr);min-width:0;min-height:0;background:#d9dfdb}.workflow-stepper{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:stretch;gap:0;min-height:38px;padding:0 14px;border-bottom:1px solid var(--line);background:#f3f6f4}.workflow-position{display:grid;align-content:center;min-width:96px;padding-right:14px;border-right:1px solid var(--line)}.workflow-position strong{color:var(--green-dark);font-size:12px}.workflow-position span{color:var(--muted);font-size:11px}.workflow-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));min-width:0}.workflow-step{position:relative;display:flex;align-items:center;justify-content:center;gap:7px;color:#7a8581;min-height:46px;font-size:12px;font-weight:750;border:0;background:transparent}.workflow-step:disabled{cursor:default}.workflow-step:hover:not(:disabled){color:var(--green-dark);background:#2f8d610f}.workflow-step:not(:last-child):after{content:"";position:absolute;top:50%;right:-18%;width:36%;height:1px;background:#cbd4d0}.workflow-step.complete,.workflow-step.active{color:var(--green-dark)}.workflow-step.complete:not(:last-child):after{background:#67ae86}.workflow-step-icon{display:grid;place-items:center;width:23px;height:23px;border:1px solid #cbd4d0;border-radius:50%;background:var(--surface)}.workflow-step.complete .workflow-step-icon,.workflow-step.active .workflow-step-icon{border-color:#67ae86;background:#e7f5ec}.editor-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 12px;padding:9px 12px;background:#fbfcfc;border-bottom:1px solid var(--line);overflow:visible;position:relative;z-index:4}.editor-toolbar.confirmation{justify-content:flex-start}.toolbar-tools,.toolbar-actions,.confirmation-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0}.toolbar-tools{flex:1 1 430px}.toolbar-actions{flex:0 1 auto;justify-content:flex-end;margin-left:auto}.confirmation-actions{width:100%}.imagery-ready-badge{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 9px;border:1px solid var(--line);border-radius:7px;color:var(--muted);background:var(--surface);font-size:11px;font-weight:750}.imagery-ready-badge.ready{color:var(--green-dark);border-color:#b8d9c6;background:#edf8f1}.unsaved-badge{display:inline-flex;align-items:center;min-height:28px;padding:0 8px;border-radius:6px;color:#735012;background:#fff4d7;border:1px solid #ead28e;font-size:11px;font-weight:750}.tool{display:grid;place-items:center;flex:0 0 auto;width:40px;height:40px;color:#39413f;background:var(--surface);border:1px solid var(--line);border-radius:7px}.tool:hover:not(:disabled),.tool.active{color:var(--green-dark);border-color:#96cdb0;background:#edf8f1}.roof-line-tools{display:inline-flex;gap:2px;height:40px;padding:2px;border:1px solid var(--line);border-radius:7px;background:#edf1ef}.line-tool{display:inline-flex;align-items:center;gap:4px;min-width:62px;height:34px;padding:0 7px;border:0;border-radius:5px;color:#4a5551;background:transparent;font-size:10px;font-weight:800}.line-tool.active{color:#16211e;background:var(--surface);box-shadow:0 1px 3px #1f242629}.line-tool.ridge svg{color:#c98b13}.line-tool.hip svg{color:#d55d18}.line-tool.valley svg{color:#1289b5}.auto-outline-button{flex:0 0 auto;min-width:122px}.roof-center-button{flex:0 0 auto;min-width:142px}.outline-scope-control{display:inline-grid;grid-template-columns:repeat(2,auto);flex:0 0 auto;height:34px;padding:2px;border:1px solid var(--line);border-radius:7px;background:#edf1ef}.scope-option{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:104px;height:28px;padding:0 9px;border:0;border-radius:5px;color:#4a5551;background:transparent;font-size:12px;font-weight:750;white-space:nowrap}.scope-option.active{color:var(--green-dark);background:var(--surface);box-shadow:0 1px 3px #1f242629}.editor-canvas.target-mode{cursor:grab}.editor-canvas.target-mode.panning{cursor:grabbing}.map-marker{pointer-events:none}.map-marker circle{fill:#ffffffeb;stroke-width:4}.map-marker text{fill:#182421;font-size:13px;font-weight:800;text-anchor:middle}.map-marker.address-point circle{stroke:#f1b447}.map-marker.roof-target circle,.map-marker.roof-target path{stroke:#37d39a}.tool-separator{width:1px;height:25px;margin:0 4px;background:var(--line)}.tool-spacer{flex:1 1 auto}.edit-tools-menu{position:relative;flex:0 0 auto}.edit-tools-menu>summary{list-style:none}.edit-tools-menu>summary::-webkit-details-marker{display:none}.edit-tools-menu[open]>summary{color:var(--green-dark);border-color:#96cdb0;background:#edf8f1}.edit-tools-popover{position:absolute;left:0;top:calc(100% + 7px);z-index:8;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;width:278px;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.edit-tools-popover button{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 9px;border:1px solid transparent;border-radius:6px;color:var(--ink);background:var(--surface-2);font-size:12px;font-weight:700;text-align:left}.edit-tools-popover button:hover:not(:disabled){border-color:#96cdb0;background:#edf8f1}.edit-tools-popover button:disabled{opacity:.45}.export-menu{position:relative}.export-menu>summary{list-style:none;cursor:pointer}.export-menu>summary::-webkit-details-marker{display:none}.export-menu[open]>summary{background:#18573c}.export-menu.disabled>summary{cursor:default;opacity:.45}.export-menu-popover{position:absolute;top:calc(100% + 7px);right:0;z-index:9;display:grid;gap:5px;width:220px;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.export-menu-popover button{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 10px;border:1px solid transparent;border-radius:6px;color:var(--ink);background:var(--surface-2);font-size:12px;font-weight:700;text-align:left}.export-menu-popover button:hover:not(:disabled){border-color:#96cdb0;background:#edf8f1}.export-menu-popover button:disabled{opacity:.45}.canvas-shell{position:relative;display:grid;min-height:0;padding:16px}.empty-workspace-action{position:absolute;left:50%;top:50%;z-index:3;display:grid;justify-items:center;gap:10px;padding:14px;border:1px solid rgba(255,255,255,.48);border-radius:8px;color:#fff;background:#21312be0;box-shadow:0 12px 30px #0a141138;transform:translate(-50%,-50%)}.empty-workspace-action strong{font-size:14px}.rail-open-button{position:absolute;top:96px;right:26px;z-index:6;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 10px;border:1px solid var(--line);border-radius:7px;color:var(--ink);background:#fffffff0;font-size:11px;font-weight:800;box-shadow:0 5px 16px #0e1b1729}.map-zoom-control{position:absolute;top:28px;right:28px;z-index:4;display:grid;overflow:hidden;border:1px solid rgba(32,49,43,.35);border-radius:6px;background:#fffffff0;box-shadow:0 5px 16px #0e1b1733}.map-zoom-control button{display:grid;width:36px;height:36px;padding:0;place-items:center;border:0;border-bottom:1px solid var(--line);color:var(--ink);background:transparent}.map-zoom-control button:last-child{border-bottom:0}.map-zoom-control button:hover:not(:disabled){color:var(--green-dark);background:#edf8f1}.map-zoom-control button:disabled{opacity:.38}.roof-confirmation-pin{position:absolute;left:50%;top:50%;z-index:3;display:grid;width:46px;height:46px;place-items:center;color:#0da87f;filter:drop-shadow(0 2px 1px rgba(0,0,0,.78));pointer-events:none;transform:translate(-50%,-100%)}.roof-confirmation-pin svg{fill:#fffffff5}.editor-canvas{display:block;width:100%;height:100%;min-height:420px;border:1px solid #adb7b3;border-radius:8px;background:#26312f;box-shadow:var(--shadow);touch-action:none}.imagery-source{opacity:1}.editor-canvas[data-imagery-status=loading] .imagery-source{opacity:.28}.imagery-state{position:absolute;left:50%;top:50%;z-index:2;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:7px;max-width:calc(100% - 56px);padding:9px 12px;border:1px solid rgba(255,255,255,.7);border-radius:7px;background:#1f2426db;color:#fff;font-size:13px;font-weight:750;box-shadow:0 8px 22px #0003;pointer-events:none}.imagery-state.error{border-color:#efb6b1;background:#69231feb}.fatal-error{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;width:min(760px,calc(100% - 32px));min-height:100vh;margin:0 auto;color:var(--ink)}.fatal-error>svg{color:var(--red)}.fatal-error h1{margin:0 0 6px;font-size:21px}.fatal-error p{margin:0;color:var(--muted);font-size:14px}.canvas-status-text{fill:#fff;font-size:17px;font-weight:800;paint-order:stroke;stroke:#1f242673;stroke-width:4px}.canvas-status-text.warning{fill:#ffe6a6}.polygon-fill{fill:#21846842;stroke:none}.roof-facet-group{pointer-events:none}.roof-facet{fill:#f4f7f633;stroke:#ffffff85;stroke-width:1.5;vector-effect:non-scaling-stroke}.roof-facet.facet-0{fill:#73c2a433}.roof-facet.facet-1{fill:#5ea6c633}.roof-facet.facet-2{fill:#e1b55d33}.roof-facet.facet-3{fill:#a98ec433}.roof-facet-group.excluded .roof-facet{fill:#757c792e;stroke:#f2c36b;stroke-dasharray:7 5}.roof-facet-label{fill:#fff;font-size:13px;font-weight:850;text-anchor:middle;paint-order:stroke;stroke:#1a2320d9;stroke-width:3px}.roof-facet-structure{fill:#f4fbf8;font-size:10px;font-weight:800;text-anchor:middle;paint-order:stroke;stroke:#1a2320d9;stroke-width:3px}.roof-facet-direction{color:#fff;stroke:currentColor;stroke-width:2.25;vector-effect:non-scaling-stroke}.polygon-stroke{fill:none;stroke:#13d3a4;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 1px rgba(0,0,0,.35))}.polygon-edge-display{fill:none;stroke-width:6;stroke-linecap:round;vector-effect:non-scaling-stroke;pointer-events:none}.polygon-edge-display.eave{stroke:#45a366}.polygon-edge-display.rake{stroke:#edaa33}.polygon-edge-display.wall_flashing{stroke:#2d7cc1;stroke-dasharray:9 5}.polygon-edge-display.step_flashing{stroke:#bb6756;stroke-dasharray:9 5}.polygon-edge-display.transition{stroke:#bd55b8;stroke-dasharray:9 5}.polygon-edge-display.parapet{stroke:#dc772c;stroke-dasharray:9 5}.polygon-edge-display.unspecified{stroke:#36a0b8}.roof-structure-line{fill:none;stroke-width:4;stroke-linecap:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 1px rgba(0,0,0,.55));pointer-events:none}.roof-structure-line.ridge{stroke:#ffd166}.roof-structure-line.hip{stroke:#ff934f;stroke-dasharray:15 5}.roof-structure-line.valley{stroke:#5fd2ff;stroke-dasharray:3 7}.roof-structure-line.suggested{stroke-dasharray:9 7;opacity:.88}.roof-line-label{fill:#fff;font-size:10px;font-weight:850;text-anchor:middle;paint-order:stroke;stroke:#1a2320e0;stroke-width:3px;pointer-events:none}.roof-line-label.suggested{fill:#fff2bf}.roof-structure-hit{stroke:transparent;stroke-width:22;cursor:pointer}.roof-structure-line.selected{stroke-width:6;filter:drop-shadow(0 0 3px rgba(255,255,255,.9))}.roof-line-endpoint{fill:#fff;stroke:#1d2926;stroke-width:3;cursor:move}.roof-line-draft line{stroke-width:4;stroke-linecap:round;stroke-dasharray:9 7;pointer-events:none}.roof-line-draft circle{fill:#fff;stroke-width:3;pointer-events:none}.roof-line-draft.ridge line,.roof-line-draft.ridge circle{stroke:#ffd166}.roof-line-draft.hip line,.roof-line-draft.hip circle{stroke:#ff934f}.roof-line-draft.valley line,.roof-line-draft.valley circle{stroke:#5fd2ff}.polygon-edge-hit{stroke:transparent;stroke-width:22;cursor:move}.vertex{fill:#fff;stroke:#13d3a4;stroke-width:4;cursor:grab}.vertex-hit{fill:transparent;stroke:transparent;cursor:grab}.vertex.selected{fill:#f6c453;stroke:#24312d}.vertex-label{fill:#fff;font-size:14px;font-weight:800;paint-order:stroke;stroke:#0000008c;stroke-width:3px}.attribution{position:absolute;right:28px;bottom:27px;max-width:min(620px,calc(100% - 56px));padding:6px 8px;border-radius:6px;background:#ffffffeb;color:#2f3636;font-size:12px;font-weight:750;box-shadow:0 6px 14px #00000024}.workspace-message{position:absolute;left:28px;bottom:27px;display:inline-flex;align-items:center;gap:8px;max-width:min(620px,calc(100% - 56px));padding:9px 11px;border-radius:7px;color:#24434b;background:#edf7f8;border:1px solid #b9d9df;font-size:13px;font-weight:700;box-shadow:0 8px 22px #00000021}.workspace-message span{min-width:0}.message-dismiss{display:grid;place-items:center;flex:0 0 auto;width:24px;height:24px;margin:-4px -5px -4px 2px;border:0;border-radius:5px;color:currentColor;background:transparent}.message-dismiss:hover{background:#00000012}.workspace-message.success{color:var(--green-dark);background:#edf8f1;border-color:#acd7bd}.workspace-message.warning{color:#4d350c;background:#fff6de;border-color:#efd393}.side-rail{display:grid;grid-auto-rows:auto;gap:12px;min-height:0;padding:12px;border-left:1px solid var(--line);background:var(--surface-2);overflow:auto}.project-strip,.status-panel,.measurement-panel,.analysis-panel,.estimate-panel,.history-panel{border:1px solid var(--line);border-radius:8px;background:var(--surface)}.project-strip{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px}.project-strip strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.project-strip-title{min-width:0}.project-state-badges{display:flex;align-items:center;gap:5px;min-width:0;margin-bottom:4px}.project-revision,.project-state{padding:2px 5px;border-radius:4px;background:#edf0ef;font-size:9px!important;font-weight:750}.project-state.unsaved{color:#735012;background:#fff1cc}.project-state.reviewed{color:#225c3d;background:#e4f4ea}.project-state.draft{color:#724b16;background:#f9ead4}.status-panel,.measurement-panel,.analysis-panel,.estimate-panel,.history-panel{display:grid;gap:12px;padding:13px}.quality-summary{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;padding:10px;border-left:4px solid #a66a12;background:#fff8e8}.quality-summary:has(.quality-score.ready){border-left-color:#257852;background:#edf8f1}.quality-summary:has(.quality-score.blocked){border-left-color:#b53a32;background:#fff0ee}.quality-score{display:flex;align-items:baseline;color:#9a6210}.quality-score.ready{color:#257852}.quality-score.blocked{color:#b53a32}.quality-score strong{font-size:24px;line-height:1}.quality-score span{font-size:12px;font-weight:800}.quality-summary>div:last-child strong,.quality-summary>div:last-child span{display:block}.quality-summary>div:last-child strong{font-size:14px}.quality-summary>div:last-child span{margin-top:3px;color:#59645f;font-size:12px}.blocking-checklist{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;padding:10px;border:1px solid #efc6c2;border-radius:7px;color:#8b302a;background:#fff4f2}.blocking-checklist>svg{margin-top:1px}.blocking-checklist strong{display:block;font-size:13px}.blocking-checklist ul{display:grid;gap:4px;margin:7px 0 0;padding-left:17px;font-size:13px;line-height:1.35}.analysis-controls{display:grid;grid-template-columns:1fr 1fr 40px;gap:7px;align-items:end}.analysis-controls label{display:grid;gap:4px;color:#5e6965;font-size:12px;font-weight:750}.analysis-controls select,.analysis-controls input,.edge-classification-list select{min-width:0;height:40px;border:1px solid var(--strong-line);border-radius:6px;background:var(--surface);color:var(--ink);font-size:14px}.analysis-controls select,.edge-classification-list select{padding:0 7px}.analysis-controls input{width:100%;padding:0 7px}.icon-reset-button{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:#4a5551}.takeoff-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;overflow:hidden;border:1px solid var(--line);background:var(--line)}.takeoff-grid div{min-width:0;padding:8px;background:var(--surface)}.takeoff-grid span,.takeoff-grid strong{display:block}.takeoff-grid span{color:#5f6a66;font-size:12px}.takeoff-grid strong{margin-top:2px;font-size:14px}.analysis-details{border-top:1px solid var(--line);padding-top:8px}.analysis-details summary{display:flex;align-items:center;gap:6px;cursor:pointer;color:var(--ink);font-size:11px;font-weight:800}.edge-classification-list,.quality-checks{display:grid;gap:6px;max-height:210px;margin-top:8px;overflow:auto}.edge-classification-list label{display:grid;grid-template-columns:minmax(0,1fr) 108px;gap:7px;align-items:center;font-size:12px}.edge-classification-list select{height:38px;font-size:13px}.facet-settings-list{display:grid;gap:8px;max-height:340px;margin-top:8px;overflow:auto}.facet-setting{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:6px;min-width:0;margin:0;padding:7px;border:1px solid var(--line);background:var(--surface)}.facet-setting.excluded{background:#fff8eb}.facet-setting legend{display:flex;align-items:baseline;gap:7px;padding:0 3px;color:var(--ink);font-size:12px}.facet-setting legend span{color:#66716d;font-size:10px;font-weight:650}.facet-setting label{display:grid;gap:3px;min-width:0;color:#5e6965;font-size:10px;font-weight:750}.facet-setting select,.facet-setting input[type=number]{width:100%;min-width:0;height:34px;padding:0 5px;border:1px solid var(--strong-line);border-radius:5px;background:var(--surface);color:var(--ink);font-size:12px}.facet-setting .facet-exclude-toggle{display:flex;align-items:center;gap:4px;align-self:end;height:34px}.facet-exclude-toggle input{width:16px;height:16px}.measurement-table{display:grid;margin-top:8px;border:1px solid var(--line);font-size:11px}.measurement-table>div{display:grid;grid-template-columns:1.2fr repeat(3,minmax(0,1fr));gap:4px;padding:6px;border-bottom:1px solid var(--line);background:var(--surface)}.measurement-table>div:last-child{border-bottom:0}.measurement-table>div span:not(:first-child){text-align:right}.measurement-table .measurement-table-heading{background:#f0f4f2;color:#56615d;font-weight:800}.measurement-table>div.selected{background:#eaf5ee;color:#1d633f;font-weight:800}.structure-summary-row{display:flex;justify-content:space-between;gap:8px;padding:7px 2px;border-bottom:1px solid var(--line);font-size:11px}.structure-summary-row span{color:#5e6965;text-align:right}.quality-check{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px;padding:7px 0;border-bottom:1px solid #edf0ef}.quality-check:last-child{border-bottom:0}.quality-check.pass>svg{color:#257852}.quality-check.warning>svg{color:#a66a12}.quality-check.fail>svg{color:#b53a32}.quality-check strong,.quality-check span{display:block}.quality-check strong{font-size:12px}.quality-check strong small{float:right;margin-left:8px;color:#66716d;font-size:11px}.quality-check span{margin-top:3px;color:#5d6864;font-size:11px;line-height:1.4}.side-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;padding:3px;border:1px solid var(--line);border-radius:7px;background:#e9eeeb}.rail-toggle-button{display:grid;width:32px;height:32px;padding:0;place-items:center;border:1px solid var(--line);border-radius:6px;color:var(--muted);background:var(--surface)}.rail-toggle-button:hover{color:var(--green-dark);border-color:#96cdb0;background:#edf8f1}.side-tab-panel{display:grid;gap:12px}.side-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:42px;padding:0 7px;border:0;border-radius:5px;color:#59645f;background:transparent;font-size:13px;font-weight:800}.side-tabs button.active{color:var(--green-dark);background:var(--surface);box-shadow:0 1px 3px #1f242626}.status-details{border-top:1px solid var(--line);padding-top:8px}.status-details summary{cursor:pointer;color:#53605b;font-size:10px;font-weight:800}.status-details .compact-list{margin-top:7px}.estimate-panel,.history-panel{display:grid;gap:12px;padding:13px}.estimate-gate{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;padding:9px 10px;border-left:4px solid #257852;color:#205f43;background:#edf8f1}.estimate-gate.blocked{border-left-color:#b66c18;color:#6f470d;background:#fff7e5}.estimate-gate strong,.estimate-gate span{display:block}.estimate-gate strong{font-size:11px}.estimate-gate span{margin-top:2px;font-size:10px}.estimate-section,.history-events{border-top:1px solid var(--line);padding-top:9px}.estimate-section summary,.history-events summary{cursor:pointer;font-size:12px;font-weight:800}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}.form-grid label{display:grid;gap:4px;min-width:0;color:#5e6965;font-size:10px;font-weight:750}.save-state,.report-readiness{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:0 8px;border:1px solid var(--line);border-radius:6px;color:#4f5a56;background:#f4f6f5;font-size:11px;font-weight:750;white-space:nowrap}.save-state.unsaved,.report-readiness.review{color:#735012;border-color:#ead28e;background:#fff4d7}.save-state.saved,.report-readiness.ready{color:#225c3d;border-color:#b8d9c6;background:#eaf6ee}.report-readiness.blocked{color:#8b3b35;border-color:#e6c0bc;background:#fff0ee}.form-grid label.full{grid-column:1 / -1}.form-grid input,.form-grid select,.form-grid textarea,.material-row input{width:100%;min-width:0;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:var(--surface);font-size:11px}.form-grid input,.form-grid select{height:32px;padding:0 7px}.form-grid textarea{resize:vertical;padding:7px;line-height:1.35}.form-grid .check-field{display:flex;grid-template-columns:none;flex-direction:row;align-items:center;gap:7px}.form-grid .check-field input{width:15px;height:15px;padding:0}.material-table{display:grid;overflow:hidden;border:1px solid var(--line);border-radius:6px}.material-row{display:grid;grid-template-columns:minmax(92px,1.4fr) minmax(52px,.65fr) minmax(60px,.7fr) minmax(58px,.7fr);gap:6px;align-items:center;min-height:36px;padding:5px 7px;border-bottom:1px solid #edf0ef;font-size:9px}.material-row:last-child{border-bottom:0}.material-row>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-row strong{text-align:right;font-size:9px}.material-row input{height:27px;padding:0 5px;text-align:right}.material-head{min-height:29px;color:#63706b;background:var(--surface-2);font-weight:800}.material-head span:last-child{text-align:right}.estimate-totals{display:grid;gap:0;margin:0}.estimate-totals div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid #edf0ef;font-size:10px}.estimate-totals dt{color:#66716d}.estimate-totals dd{margin:0;font-weight:800}.estimate-totals .estimate-total{padding-top:9px;border-bottom:0;font-size:13px}.estimate-totals .estimate-total dt{color:var(--ink);font-weight:800}.export-csv-button{justify-content:center;width:100%;min-height:34px}.revision-list,.history-events>div{display:grid;gap:0}.revision-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid #edf0ef}.revision-row strong,.revision-row span,.revision-row small{display:block}.revision-row strong{font-size:11px}.revision-row span{margin-top:2px;color:#66716d;font-size:10px;text-transform:capitalize}.revision-row small{margin-top:3px;color:#7a8581;font-size:9px}.icon-action-button{display:grid;place-items:center;width:31px;height:31px;border:1px solid var(--line);border-radius:6px;color:#44504b;background:var(--surface)}.icon-action-button:hover:not(:disabled){color:var(--green-dark);border-color:#96cdb0;background:#edf8f1}.icon-action-button:disabled{opacity:.35}.history-filter{display:grid;grid-template-columns:1fr 1fr auto;gap:4px;margin-top:8px;padding:3px;border:1px solid var(--line);border-radius:6px;background:#edf1ef}.history-filter button{min-height:28px;padding:0 7px;border:0;border-radius:4px;color:#5f6b66;background:transparent;font-size:9px;font-weight:800}.history-filter button.active{color:var(--green-dark);background:var(--surface);box-shadow:0 1px 2px #1f242621}.audit-list{max-height:310px;margin-top:7px;overflow:auto}.audit-row{padding:7px 0;border-bottom:1px solid #edf0ef}.audit-row strong,.audit-row span{display:block}.audit-row strong{font-size:10px;font-weight:700}.audit-row span{margin-top:3px;color:#75807c;font-size:9px}.empty-state.compact{padding:10px}.panel-heading{display:flex;justify-content:space-between;align-items:center;color:var(--ink);font-size:14px;font-weight:800}.license-state{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;padding:11px;border-radius:7px}.license-state.allowed{color:var(--green-dark);background:#edf8f1}.license-state.blocked{color:var(--red);background:#fff0ee}.license-state strong,.license-state span{display:block}.license-state strong{font-size:14px}.license-state span{margin-top:2px;font-size:13px}.compact-list{display:grid;gap:9px;margin:0}.compact-list dt{font-size:13px}.compact-list div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #edf0ef;padding-bottom:8px}.compact-list div:last-child{border-bottom:0;padding-bottom:0}.compact-list dd{margin:0;color:var(--ink);font-size:13px;font-weight:750;text-align:right}.warnings{display:grid;gap:7px}.warnings p{margin:0;padding:8px 9px;border-radius:7px;color:#6c480e;background:#fff7e5;font-size:13px;line-height:1.35}.additional-notes{border-top:1px solid #ead9ae;padding-top:7px}.additional-notes summary{color:#6c480e;cursor:pointer;font-size:12px;font-weight:750}.additional-notes>div{display:grid;gap:7px;margin-top:7px}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.measurement-heading-actions{display:inline-flex;align-items:center;gap:8px}.measurement-unit-toggle{display:inline-flex;padding:2px;border:1px solid var(--line);border-radius:6px;background:#edf1ef}.measurement-unit-toggle button{min-height:24px;padding:0 7px;border:0;border-radius:4px;color:var(--muted);background:transparent;font-size:10px;font-weight:750}.measurement-unit-toggle button.active{color:var(--green-dark);background:var(--surface);box-shadow:0 1px 3px #1f242624}.metric-grid div{display:grid;gap:4px;padding:10px;border:1px solid #e5e9e7;border-radius:7px;background:#fbfcfc}.metric-grid strong{font-size:18px;line-height:1.1}.metric-grid small{color:var(--muted);font-size:12px}.segment-list{display:grid;gap:6px;max-height:150px;overflow:auto}.segment-list div{display:flex;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px solid #edf0ef;font-size:12px}.segment-list strong{font-size:12px}.disclaimer,.empty-state{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.segment-toggle{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:30px;border:1px solid var(--line);border-radius:6px;color:#3f514b;background:var(--surface-2);font-size:11px;font-weight:700}.empty-state{padding:18px 10px;border:1px dashed var(--strong-line);border-radius:7px;text-align:center}.empty-state.invalid{color:var(--red);border-color:#e1aaa5;background:#fff5f4}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1500px){.topbar{grid-template-columns:minmax(320px,340px) minmax(0,1fr)}.account-actions .new-project-button,.account-actions .sign-out-button,.account-actions .account-identity{width:34px;padding:0}.account-actions .new-project-button span,.account-actions .sign-out-button span,.account-actions .account-identity span,.account-actions .account-identity strong,.account-actions .recent-projects-label{display:none}.account-actions .recent-projects>summary{min-width:48px;padding:0 5px}}@media(max-width:1120px){body{overflow:auto;overflow-x:hidden}.app-shell{height:auto;min-height:100vh}.topbar{grid-template-columns:1fr}.brand-panel{justify-content:flex-start;flex-wrap:wrap}.workspace{grid-template-columns:1fr;overflow:visible}.side-rail{grid-template-columns:1fr 1fr;grid-template-rows:auto auto;border-left:0;border-top:1px solid var(--line)}.project-strip,.side-tabs,.analysis-panel,.estimate-panel,.history-panel{grid-column:1 / -1}}@media(max-width:760px){.topbar{position:sticky;top:0;gap:10px;padding:10px;z-index:12}.brand-panel{justify-content:space-between}.brand>div:last-child>span{display:none}.brand{min-height:40px}.provider-field{display:none}.workflow-stepper{grid-template-columns:1fr;padding:0}.workflow-position{display:flex;align-items:center;gap:6px;min-width:0;min-height:28px;padding:0 10px;border-right:0;border-bottom:1px solid var(--line)}.workflow-steps{min-height:42px}.workflow-step{gap:4px;min-height:42px;font-size:9px}.workflow-step:not(:last-child):after{display:none}.search-row{grid-template-columns:minmax(0,1fr) auto}.side-rail{grid-template-columns:1fr;padding:10px}.side-tabs,.analysis-panel,.estimate-panel,.history-panel{grid-column:auto}.canvas-shell{padding:10px}.map-zoom-control{top:20px;right:20px}.editor-canvas{min-height:360px}.metric-grid{grid-template-columns:1fr}.workspace-message{left:18px;right:18px;max-width:none}.editor-toolbar{display:grid;align-items:stretch;padding:8px 10px}.toolbar-tools,.toolbar-actions{width:100%;flex-wrap:nowrap;justify-content:flex-start;margin-left:0;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}.confirmation-actions{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);width:100%;margin-left:0;overflow:visible}.confirmation-actions .outline-scope-control{grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;height:auto}.confirmation-actions .imagery-ready-badge,.confirmation-actions .auto-outline-button{width:100%;min-width:0;justify-content:center}.confirmation-actions>.secondary-button{grid-column:1 / -1;width:100%;justify-content:center}.toolbar-tools{flex-basis:100%}.roof-center-button{min-width:0}.roof-line-tools{order:initial;width:auto;flex:0 0 auto}.line-tool{flex:0 0 auto;justify-content:center}.primary-button,.secondary-button,.tool,.line-tool,.scope-option,.side-tabs button,.sign-out-button{min-height:44px}.recent-projects>summary{min-height:44px}.recent-projects-label{display:none}.recent-projects-menu{position:fixed;top:62px;right:10px}.tool{width:44px;height:44px}.roof-line-tools{height:44px}.line-tool{min-width:72px}.rail-open-button{top:100px;right:18px}.empty-workspace-action{width:min(250px,calc(100% - 44px))}.edit-tools-popover{width:min(278px,calc(100vw - 28px))}.export-menu-popover{position:fixed;top:168px;right:10px;width:min(240px,calc(100vw - 20px))}.scope-option{min-width:94px;padding:0 6px;font-size:11px}.auto-outline-button{min-width:112px;padding:0 9px;font-size:12px}.fatal-error{grid-template-columns:auto minmax(0,1fr);align-content:center}.fatal-error .primary-button{grid-column:1 / -1;justify-self:start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}@media(prefers-contrast:more){:root{--muted: #424b48;--line: #7f8b86;--strong-line: #4e5b56}.roof-structure-line,.polygon-stroke{filter:none;stroke-width:6}}
