@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap";:root{font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#17343b;background:#f5f7f8;font-synthesis:none;--ink:#17343b;--muted:#63777d;--line:#dce4e5;--lime:#b6ef62;--green:#247760;--dark:#122b32;--surface:#fff;--shadow:0 15px 50px #18383f09}*{box-sizing:border-box}body{margin:0;font-size:16px;line-height:1.5}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,canvas:focus-visible{outline:3px solid #42a890;outline-offset:4px}a,button{color:inherit}input,select{width:100%;border:1px solid #cad6d8;border-radius:10px;background:#fff;min-height:52px;padding:12px 15px;color:var(--ink);transition:border-color .15s}input:hover,select:hover{border-color:#8aa7a9}input:focus,select:focus{outline:2px solid #9adcb9;border-color:#317c65}input[type=checkbox],input[type=radio]{width:20px;min-height:20px;accent-color:#247760}input[type=range]{accent-color:var(--green);padding:0;min-height:30px}input[aria-invalid=true]{border-color:#bd493c}.skip{position:fixed;top:-100px;left:20px;z-index:100;background:#fff;padding:16px}.skip:focus{top:15px}.topbar{height:92px;max-width:1440px;margin:auto;padding:0 64px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;font-family:Manrope,sans-serif;font-weight:800;font-size:25px;letter-spacing:-1px;text-decoration:none}.brand>span:not(.brand-mark):not(.brand-dot){font-weight:500}.brand-mark{width:35px;height:35px;background:var(--ink);color:var(--lime);border-radius:10px;margin-right:10px;font-family:system-ui;font-size:35px;line-height:30px;text-align:center;letter-spacing:0}.brand-dot{width:6px;height:6px;background:#7fbf3f;border-radius:50%;margin:12px 0 0 3px}.top-right{display:flex;gap:26px;align-items:center}.prototype-badge{font-size:11px;letter-spacing:1.5px;font-weight:700;border:1px solid #b7c7ca;border-radius:5px;padding:3px 7px}.text-button{padding:6px 0;background:none;border:0;font-weight:550;font-size:14px;display:inline-flex;align-items:center;gap:9px}.text-button:hover{text-decoration:underline}.shell{max-width:1312px;margin:auto;padding:36px 32px 24px}.stepper{display:flex;justify-content:center;align-items:center;margin:0 auto 42px;max-width:930px}.step{display:flex;align-items:center;gap:10px;border:0;background:none;color:#8c9da1;padding:6px;white-space:nowrap;font-size:14px;font-weight:550}.step em{font-style:normal;display:grid;place-items:center;width:29px;height:29px;border:1px solid #cbd5d7;border-radius:50%;font-size:12px}.step.current{color:var(--ink)}.step.current em{background:var(--dark);border-color:var(--dark);color:var(--lime)}.step.complete{color:#367864}.step.complete em{background:#e0eddd;border-color:#e0eddd}.step-line{height:1px;background:var(--line);flex:1;margin:0 17px;max-width:62px}.step-line.complete{background:#aecbba}.main-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:66px;align-items:start;min-height:580px}.form-panel{padding:22px 0 0;max-width:510px}.eyebrow{text-transform:uppercase;letter-spacing:1.8px;color:#50746c;font-size:12px;font-weight:700;margin:0 0 17px;display:flex;align-items:center;gap:10px}.eyebrow:before{content:"";width:22px;height:2px;background:#70a990}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Manrope,system-ui,sans-serif}h1{font-size:clamp(30px,3.2vw,44px);line-height:1.19;letter-spacing:-1.65px;font-weight:650;max-width:650px}h2{font-size:25px;line-height:1.3;letter-spacing:-.7px;font-weight:650}h3{font-size:19px;line-height:1.35;letter-spacing:-.4px;font-weight:650}.lede{color:var(--muted);line-height:1.7;margin:19px 0 28px;font-size:16px;max-width:440px}.field{display:block;margin:0 0 20px}.field>span:first-child{display:block;font-size:14px;font-weight:550;margin-bottom:8px}.field .hint,.hint{display:block;color:var(--muted);font-size:13px;line-height:1.5;margin-top:7px}.input-with-unit{position:relative}.input-with-unit input{padding-right:86px}.input-with-unit .unit{position:absolute;right:15px;top:14px;font-size:14px;color:var(--muted);pointer-events:none}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;border:1px solid var(--line);border-radius:10px;padding:13px 20px;min-height:50px;background:#fff;text-decoration:none;font-weight:600;font-size:15px;transition:transform .15s,background .15s}.button:hover{background:#edf3f1}.button.primary{background:var(--dark);border-color:var(--dark);color:#fff}.button.primary:hover{background:#21444b}.button.primary .arrow{color:var(--lime)}.button.lime{background:var(--lime);border-color:var(--lime);color:var(--dark)}.button.lime:hover{background:#a9e552}.button.full{width:100%}.button.small{min-height:40px;padding:8px 14px;font-size:14px}.button-row{display:flex;gap:12px;align-items:center;margin-top:27px}.button-row>.primary{flex:1}.micro{font-size:12px;color:#7b8d91;line-height:1.6}.secure{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:12px}.example-button{margin:15px 0 0;background:none;border:0;padding:0;font-size:14px;color:#2d7565;display:flex;gap:8px;align-items:center}.inline-note{padding:13px 16px;border-radius:9px;background:#eaf1ef;font-size:14px;color:#466860;line-height:1.6;margin:21px 0}.inline-note.warning{background:#fff4df;color:#885d25}.inline-note strong{font-weight:650}.error{font-size:14px;color:#ad3e35;background:#fcedea;padding:11px 14px;border-radius:8px;margin:15px 0}.visual-panel{position:sticky;top:25px}.map-card{position:relative;min-height:520px;border-radius:20px;overflow:hidden;background:#223f3b;box-shadow:var(--shadow)}.map-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.79) saturate(.78);transform:scale(1.02)}.map-card:after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#122b32da);pointer-events:none}.map-top{position:absolute;top:22px;left:22px;right:22px;display:flex;align-items:center;justify-content:space-between;z-index:1}.pill{display:inline-flex;gap:7px;align-items:center;border-radius:7px;background:#fffef4ef;padding:7px 10px;font-size:12px;font-weight:550;color:#2c4a43;box-shadow:0 3px 15px #001a2510}.pill.dark{background:#17343be6;color:#f2f7ef}.compass{background:#fffef4f5;border-radius:50%;width:37px;height:37px;display:grid;place-items:center;font-weight:700;font-size:13px}.map-marker{position:absolute;left:58%;top:51%;display:flex;flex-direction:column;align-items:center;z-index:1;transform:translate(-50%,-50%)}.map-marker .pin{width:43px;height:43px;display:grid;place-items:center;background:var(--lime);border:5px solid #ffffff80;border-radius:50%;box-shadow:0 0 0 12px #b6ef6220;color:#17343b}.map-marker .pin-label{background:#fff;border-radius:7px;font-size:12px;padding:6px 10px;margin-top:12px;box-shadow:0 4px 20px #0002;white-space:nowrap}.map-bottom{position:absolute;z-index:1;bottom:26px;left:26px;right:26px;color:#fff}.map-bottom h3{font-size:21px;color:#fff}.map-bottom p{color:#d2e0dc;font-size:14px;margin-top:6px}.map-meta{display:flex;gap:24px;margin-top:24px;border-top:1px solid #ffffff30;padding-top:15px;color:#d4e1dd;font-size:12px}.map-meta strong{font-size:18px;display:block;color:#fff;margin-bottom:3px;font-weight:500}.under-map{display:flex;justify-content:space-between;margin-top:13px;gap:10px;color:var(--muted);font-size:12px}.foot{display:flex;justify-content:space-between;gap:20px;margin:48px 0 0;padding:23px 0 0;border-top:1px solid var(--line);font-size:12px;color:#7c8e93}.checklist{padding:0;margin:24px 0;list-style:none}.checklist li{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);font-size:15px}.check-icon{width:27px;height:27px;display:grid;place-items:center;border-radius:50%;background:#e1e9e8;color:#7e9599;font-size:13px}.check-icon.done{background:#dceecf;color:#326527}.check-icon.loading{border:2px solid #b5ccbb;border-top-color:#247760;animation:spin .8s linear infinite}.checklist small{display:block;font-size:12px;color:var(--muted)}.checklist .status{margin-left:auto;font-size:12px;color:var(--muted)}@keyframes spin{to{transform:rotate(360deg)}}.options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.option{border:1px solid #cdd9da;border-radius:11px;background:#fff;padding:17px 15px;text-align:left;display:flex;align-items:center;gap:12px;min-height:70px;font-size:15px}.option[aria-pressed=true]{background:#edf6e9;border-color:#69995c;box-shadow:0 0 0 1px #69995c}.option .radio-dot{width:19px;height:19px;border:1px solid #acbec1;border-radius:50%;flex-shrink:0}.option[aria-pressed=true] .radio-dot{border:5px solid #376e4d;background:#fff}.option small{display:block;font-size:12px;color:var(--muted);font-weight:400;margin-top:3px}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px}.subsection{margin-top:27px;padding-top:24px;border-top:1px solid var(--line)}.subsection h3{margin-bottom:17px}.segmented{display:flex;padding:4px;background:#e9eef0;border-radius:9px;gap:3px;margin:14px 0 22px}.segmented button{border:0;border-radius:6px;background:none;padding:9px 12px;font-size:13px;flex:1;color:var(--muted);font-weight:550}.segmented button[aria-pressed=true]{background:#fff;color:var(--ink);box-shadow:0 2px 5px #15363d0b}.list-row{display:flex;justify-content:space-between;align-items:baseline;gap:15px;padding:12px 0;border-bottom:1px solid #e7eded;font-size:14px}.list-row:last-child{border-bottom:0}.list-row span{color:var(--muted)}.list-row strong{text-align:right;font-weight:550}.checkbox-row{display:flex;align-items:flex-start;gap:10px;font-size:14px;color:#4a6269;margin:15px 0}.checkbox-row input{margin-top:1px;flex-shrink:0}.ev-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;margin:16px 0}.ev-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.ev-header h3{font-size:16px;margin:0}.ev-card .field{margin-bottom:10px}.result-shell{max-width:1248px}.result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin:4px 0 28px}.result-head h1{font-size:37px}.result-head .lede{margin:12px 0 0;max-width:680px}.house-summary{background:var(--dark);color:#fff;border-radius:16px;padding:18px 22px;display:flex;align-items:center;gap:24px;margin-bottom:25px}.house-summary .summary-address{flex:1}.house-summary small{color:#adbfbe;display:block;font-size:12px}.house-summary strong{font-weight:500;font-size:16px}.house-summary .summary-item{border-left:1px solid #ffffff24;padding-left:24px}.house-summary .text-button{color:#d0e7cc}.assumptions-bar{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px 18px;margin-bottom:25px;flex-wrap:wrap}.assumptions-bar>div:first-child{flex:1}.assumptions-bar strong{font-size:14px}.assumptions-bar p{font-size:12px;color:var(--muted);margin-top:2px}.assumptions-bar select{width:260px;min-height:42px;padding:8px 12px;font-size:14px}.scenario-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}.pack{position:relative;padding:26px 24px 23px;background:#fff;border:1px solid #cfdbdc;border-radius:15px;display:flex;flex-direction:column;overflow:hidden}.pack.recommended{border:2px solid #628e48;padding:25px 23px 22px;background:linear-gradient(155deg,#f6fbef,#fff 60%)}.pack-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.pack-tag{font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:#63797f}.recommended .pack-tag{color:#447039}.rec-label{font-size:11px;font-weight:600;background:#ddedca;color:#3f642d;padding:4px 8px;border-radius:5px}.pack-icon{width:42px;height:42px;border-radius:10px;background:#edf2f3;display:grid;place-items:center;margin-bottom:16px}.recommended .pack-icon{background:#e7f0d9}.pack h3{font-size:22px;min-height:60px}.pack .kit{font-size:13px;color:#728287;min-height:44px;margin-top:8px}.saving{margin:20px 0 19px;padding-top:20px;border-top:1px solid #e2e8e8}.saving strong{font-size:33px;font-family:Manrope,sans-serif;font-weight:650;letter-spacing:-1px;line-height:1.3}.saving strong small{font-size:18px;letter-spacing:-.3px;font-weight:500}.saving>span{display:block;font-size:13px;color:#5e747a;margin-top:3px}.pack .list-row{font-size:13px}.pack .button{margin-top:23px}.pack .pack-details{margin:11px auto 0;font-size:13px}.pack-benefit{font-size:13px;color:#546e5b;margin-top:15px;min-height:39px}.result-bottom{margin:26px 0;display:grid;grid-template-columns:1.4fr 1fr;gap:22px}.chart-wrap{overflow:hidden}.chart{width:100%;height:auto;display:block;margin-top:15px}.chart text{font-family:DM Sans,sans-serif;fill:#7b8d91;font-size:12px}.legend{display:flex;gap:20px;font-size:12px;color:#5e747a;margin-top:8px}.legend span:before{content:"";width:16px;height:3px;background:var(--series);display:inline-block;vertical-align:middle;margin-right:6px}.timeline{display:flex;gap:0;justify-content:space-between;margin-top:27px;position:relative}.timeline:before{content:"";height:1px;background:#cfddda;position:absolute;top:8px;left:5px;right:5px}.timeline-item{position:relative;flex:1;font-size:12px;color:#6a7f84;max-width:85px}.timeline-item:before{content:"";display:block;width:15px;height:15px;background:#9abb8d;border:4px solid #e8f2e3;border-radius:50%;margin-bottom:9px}.timeline-item strong{display:block;color:#284c4b;font-size:14px;font-weight:550}.detail-link{margin-top:18px;color:#327660}.value-badge{font-size:12px;border-radius:6px;padding:5px 8px;background:#e8f1e2;color:#4e7140;white-space:nowrap}.viewer{position:relative;background:#e5eceb;border:1px solid #d1dddc;border-radius:18px;overflow:hidden;height:480px}.viewer canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}.viewer canvas:active{cursor:grabbing}.viewer-header{position:absolute;left:18px;right:18px;top:18px;display:flex;justify-content:space-between;pointer-events:none;gap:10px}.viewer-controls{position:absolute;bottom:17px;right:17px;display:flex;gap:6px}.viewer-controls button{width:36px;height:36px;border:1px solid #d0dad9;border-radius:8px;background:#fffffff0;font-size:17px}.viewer-label{position:absolute;bottom:19px;left:18px;background:#ffffffd9;border-radius:7px;padding:7px 10px;font-size:12px;color:#48635d;pointer-events:none;max-width:60%}.heat-legend{display:flex;align-items:center;justify-content:center;gap:10px;font-size:12px;color:#6a7f80;margin-top:14px}.heat-legend i{height:7px;width:130px;border-radius:5px;background:linear-gradient(90deg,#3d7a91,#84a775,#d4cb56,#f1b34b)}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0}.metric{padding:17px 12px;border:1px solid #d8e3df;border-radius:11px;background:#fff}.metric strong{display:block;font-family:Manrope,sans-serif;font-size:24px;letter-spacing:-.7px;font-weight:650}.metric span{font-size:12px;color:#6b807d}.range-row{display:flex;align-items:center;gap:14px;margin:15px 0}.range-row label{font-size:13px;color:#5c7578;min-width:60px}.range-row output{font-size:13px;min-width:50px;font-variant-numeric:tabular-nums}.small-note{font-size:13px;color:var(--muted);line-height:1.65;margin-top:15px}dialog{border:0;border-radius:19px;padding:0;width:min(700px,calc(100vw - 30px));max-height:88dvh;box-shadow:0 30px 120px #0c282e55;color:var(--ink)}dialog::backdrop{background:#142e3970;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog-body{padding:30px}.dialog-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px}.close-button{background:#eff3f3;border:0;width:33px;height:33px;flex-shrink:0;border-radius:50%;font-size:23px;line-height:1}.dialog-body .lede{margin:0 0 22px;max-width:none;font-size:14px}.dialog-body h3{font-size:16px;margin:23px 0 10px}.dialog-body p,.dialog-body li{font-size:14px;color:#5c737a;line-height:1.7}.dialog-body li{margin:8px 0}.dialog-body a{color:#2e7868}.dialog-body .field{margin-bottom:17px}.dialog-body .list-row{font-size:14px}.brief-wrap{max-width:920px;margin:auto}.brief-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:28px;margin-top:28px}.brief-summary{background:var(--dark);border-radius:14px;padding:28px;color:#fff}.brief-summary h3{font-size:21px;margin-bottom:17px}.brief-summary .list-row{border-color:#ffffff1c}.brief-summary .list-row span{color:#b4c7c5}.brief-summary .micro{color:#adbfbe;margin-top:23px}.success-icon{width:62px;height:62px;background:#ddedca;border-radius:50%;display:grid;place-items:center;color:#477a38;font-size:27px;margin:0 0 23px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,25px);opacity:0;pointer-events:none;padding:13px 22px;background:var(--dark);color:#fff;border-radius:10px;box-shadow:0 8px 30px #0002;font-size:14px;z-index:50;transition:.2s;max-width:90vw}.toast.visible{transform:translate(-50%);opacity:1}.screen-enter{animation:enter .25s ease-out}@keyframes enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(min-width:1400px){.shell{padding-top:40px}.main-grid{gap:86px}}@media(max-width:1000px){.topbar{padding:0 32px}.main-grid{gap:32px}.pack{padding:21px 18px}.pack.recommended{padding:20px 17px}.scenario-grid{gap:12px}.saving strong{font-size:28px}.step-line{margin:0 8px}.result-head h1{font-size:32px}}@media(max-width:760px){.topbar{height:73px;padding:0 21px}.brand{font-size:22px}.top-right{gap:10px}.top-right .text-button{font-size:0}.top-right .text-button span{font-size:19px}.shell{padding:24px 21px}.stepper{margin:0 0 28px;justify-content:space-between;gap:0}.step{flex-direction:column;gap:6px;font-size:11px;padding:0}.step em{width:27px;height:27px}.step-line{margin:0 4px;position:relative;top:-11px;max-width:none}.main-grid{grid-template-columns:1fr;gap:26px;min-height:0}.form-panel{max-width:none;padding:0}.eyebrow{font-size:11px;margin-bottom:13px}h1{font-size:34px;letter-spacing:-1.2px}.lede{margin-top:15px;max-width:none}.visual-panel{position:relative;top:0}.map-card{min-height:330px}.main-grid.address .visual-panel{display:none}.foot{margin-top:28px;font-size:11px}.foot>span:last-child{display:none}.result-head{flex-direction:column;gap:15px}.result-head h1{font-size:31px}.house-summary{flex-wrap:wrap;gap:12px;padding:17px}.house-summary .summary-address{flex-basis:100%}.house-summary .summary-item{padding-left:0;border:0;flex:1}.house-summary .summary-item strong{font-size:14px}.scenario-grid{grid-template-columns:1fr;gap:18px}.pack h3,.pack .kit{min-height:0}.pack-top{margin-bottom:14px}.pack-icon{float:left}.pack .saving{margin-top:18px}.pack-benefit{min-height:0}.result-bottom{grid-template-columns:1fr}.assumptions-bar{align-items:flex-start}.assumptions-bar select{width:100%;order:2}.assumptions-bar .text-button{order:1}.brief-grid{grid-template-columns:1fr}.brief-summary{order:2}.viewer{height:370px}.dialog-body{padding:23px}.field-grid{gap:12px}.metric strong{font-size:21px}.metric{padding:13px 9px}.options{gap:10px}.option{padding:14px 12px}.viewer-label{font-size:11px;max-width:57%}.result-head .value-badge{font-size:12px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media print{.topbar,.stepper,.foot,.button,.text-button,.prototype-badge{display:none!important}.shell{padding:0}.pack{break-inside:avoid}.scenario-grid{grid-template-columns:repeat(3,1fr)}body{background:#fff}.house-summary{color:#17343b;background:#eee}}.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}h1[tabindex]:focus{outline:0}input[type=date]{min-width:0}.viewer-controls button:hover{background:#edf5e9}.pack-icon svg{color:#46736d}.ev-header h3{display:flex;align-items:center;gap:8px}.brief-summary .list-row strong{font-size:14px}.result-shell .stepper{margin-bottom:32px}.pack .list-row strong{white-space:nowrap}.field input[name$=-km]{padding-right:100px}.metric strong small{font-size:14px;font-weight:500}.button .arrow{font-size:19px}.address-field>label{display:block;font-size:14px;font-weight:550;margin-bottom:8px}#address-control{min-width:0}gmp-place-autocomplete{display:block;width:100%;color-scheme:light;border:1px solid #cad6d8;border-radius:10px;background:#fff;font-family:inherit}gmp-place-autocomplete::part(input){font:inherit;font-size:16px;color:var(--ink);min-height:52px}gmp-place-autocomplete::part(focus-ring){outline:2px solid #9adcb9;border-radius:10px}gmp-place-autocomplete::part(prediction-item){font-family:DM Sans,sans-serif;min-height:52px}.address-manual{font-size:12px;margin-top:4px}.address-manual[hidden]{display:none}#address-status{min-height:20px}.analysis-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);column-gap:66px;align-items:start}.analysis-intro{grid-column:1;grid-row:1;padding-top:20px}.analysis-intro .lede{margin-bottom:18px}.analysis-address{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--muted);padding-bottom:18px;border-bottom:1px solid var(--line)}.analysis-address>svg{flex-shrink:0}.analysis-address>span{flex:1}.analysis-address .text-button{font-size:12px;color:var(--green);flex-shrink:0}.analysis-visual{grid-column:2;grid-row:1 / span 3;position:sticky;top:25px;min-width:0}.analysis-image{position:relative;aspect-ratio:1;border-radius:18px;overflow:hidden;background:#e6edeb;border:1px solid #d4dfdc}.analysis-image>img{display:block;width:100%;height:100%;object-fit:fill}.analysis-image>canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}.analysis-image-top{position:absolute;top:16px;left:16px;right:16px;display:flex;justify-content:space-between;pointer-events:none}.analysis-image-top .compass{color:#fff;text-shadow:0 1px 5px #000}.analysis-image-caption{position:absolute;bottom:0;left:0;right:0;padding:46px 22px 20px;background:linear-gradient(transparent,#122b32ed);color:#fff;pointer-events:none}.analysis-image-caption strong{display:block;font-size:17px;font-weight:600}.analysis-image-caption span{display:block;font-size:12px;color:#e0ece7;margin-top:4px;max-width:340px}.show-model .analysis-image-caption{background:linear-gradient(transparent,#e4ecebdd);color:var(--ink)}.show-model .analysis-image-caption span{color:var(--muted)}.photo-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;padding:35px;text-align:center;color:#50766b;background:radial-gradient(circle,#f5faf7,#e2ece6)}.photo-placeholder strong{font-weight:550;font-size:16px}.photo-placeholder span{font-size:13px;max-width:230px;color:var(--muted)}.building-outline{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.building-outline polygon{fill:#b6ef6230;stroke:#b6ef62;stroke-width:.6;stroke-linejoin:round;filter:drop-shadow(0 1px 2px #122b32)}.analysis-view-tabs{display:flex;gap:5px;background:#e9efed;border-radius:10px;padding:4px;margin-top:12px}.analysis-view-tabs button{flex:1;border:0;border-radius:7px;background:none;min-height:39px;font-size:13px}.analysis-view-tabs button[aria-pressed=true]{background:#fff;box-shadow:0 2px 5px #17343b09}.analysis-view-tabs button:disabled{opacity:.4}.analysis-progress{grid-column:1;grid-row:2;min-width:0}.analysis-progress-summary{margin:12px 0 16px;font-size:13px;line-height:1.55;color:var(--muted)}.analysis-progress-count{display:block;color:var(--ink);font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;margin-bottom:4px}.analysis-stages{padding:0;margin:12px 0 22px;list-style:none}.analysis-stage{border-bottom:1px solid var(--line)}.analysis-stage button{display:flex;align-items:center;width:100%;gap:12px;border:0;background:none;text-align:left;padding:16px 0;color:var(--ink);border-radius:8px}.analysis-stage button:disabled{opacity:1;cursor:default}.analysis-stage button:not(:disabled):hover{background:#eaf1ee}.analysis-stage-icon{display:grid;place-items:center;width:32px;height:32px;border:1px solid #cbd8d2;border-radius:50%;color:var(--muted);flex-shrink:0;font-size:13px;font-variant-numeric:tabular-nums}.analysis-stage.ready .analysis-stage-icon{background:#deedcf;border-color:#deedcf;color:#477c36}.analysis-stage.partial .analysis-stage-icon,.analysis-stage.review .analysis-stage-icon{background:#fff2d8;border-color:#f3dfb5;color:#947231}.analysis-stage-text{flex:1;min-width:0}.analysis-stage-text strong{display:block;font-size:15px;font-weight:550;color:var(--ink)}.analysis-stage-text small{display:block;font-size:12px;line-height:1.5;color:var(--muted);margin-top:4px;overflow-wrap:anywhere}.analysis-stage-status{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;min-width:86px;flex-shrink:0;font-size:11px;color:var(--muted);align-self:flex-start;padding-top:4px;white-space:nowrap}.analysis-stage.ready .analysis-stage-status{color:var(--green)}.analysis-stage.partial .analysis-stage-status,.analysis-stage.review .analysis-stage-status{color:#8c713f}.analysis-status-spinner{display:inline-block;width:18px;height:18px;flex:0 0 18px;border:2px solid #c0d0cd;border-top-color:var(--ink);border-radius:50%;animation:spin 1s linear infinite}.analysis-stage.waiting .analysis-status-spinner{border-top-color:var(--muted);animation-duration:1.6s}@media(prefers-reduced-motion:reduce){.analysis-status-spinner{animation:none}}.analysis-actions{grid-column:1;grid-row:3}.analysis-actions>.micro{margin-top:10px;text-align:center}.analysis-actions>.text-button{display:flex;margin:8px auto}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1000px){.analysis-grid{column-gap:32px}}@media(max-width:760px){.analysis-grid{display:flex;flex-direction:column;gap:0}.analysis-grid>*{width:100%}.analysis-intro{padding-top:0}.analysis-intro h1{font-size:30px}.analysis-intro .lede{font-size:14px;margin:12px 0 14px}.analysis-visual{position:relative;top:0;margin:20px 0 4px}.analysis-image{aspect-ratio:1.13}.analysis-image>img{object-fit:fill}.analysis-image-caption{padding:36px 17px 16px}.analysis-image-caption strong{font-size:15px}.analysis-image-top{top:12px;left:12px;right:12px}.analysis-stage button{padding:14px 0}.analysis-stage-text strong{font-size:14px}.analysis-stages{margin-top:8px}.analysis-stage-status{font-size:10px}.analysis-address{padding-bottom:15px}.analysis-visual .under-map{margin-top:7px}.analysis-visual .under-map .text-button{font-size:12px}}.roof-photo{min-width:0}.roof-photo-image{display:block;width:100%;height:auto;border-radius:18px;border:1px solid var(--line)}.roof-photo-empty{display:grid;place-items:center;aspect-ratio:1;background:#e6edeb;border:1px solid var(--line);border-radius:18px;padding:24px;color:var(--muted);text-align:center;font-size:14px}.pv-power-help-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:-12px 0 20px}.pv-power-help-row>.text-button{color:var(--green);min-height:34px}.pv-power-badge{font-size:11px;color:#54715c;background:#e5efde;border-radius:5px;padding:4px 7px}.pv-power-badge.estimated{color:#886526;background:#fff1d6}.pv-power-assumption{font-size:12px;color:var(--muted);margin:-10px 0 22px;line-height:1.5}.pv-power-guide{border-radius:10px;background:#eaf1ed;padding:16px;margin-bottom:22px;font-size:15px}.pv-power-guide p{margin-top:5px}.pv-power-estimate{background:#eff4f1;color:var(--green);font-size:16px;font-weight:550;padding:15px;border-radius:9px;margin:20px 0 14px;min-height:54px}.pv-power-fallback{border-top:1px solid var(--line);margin-top:24px;padding-top:1px}.pv-power-fallback .button{margin-top:13px}#pv-power-form input:disabled{background:#edf1ef;color:#8b9b94}.price-assumption-summary{align-items:center;gap:20px}.price-assumption-summary>div{flex:1;min-width:0}.price-assumption-summary .assumption-heading{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}.price-assumption-summary strong{font-size:16px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.price-assumption-summary p{margin-top:6px;font-size:13px;line-height:1.6;max-width:560px}.assumption-default{font-size:10px;font-weight:500;color:#53754a;padding:3px 7px;background:#e8f1df;border-radius:5px}.price-assumption-summary>.text-button{color:var(--green);white-space:nowrap;flex-shrink:0}.price-scenario-options{border:0;padding:0;margin:0 0 20px;display:grid;gap:9px}.price-scenario-option{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:14px;cursor:pointer;background:#fff}.price-scenario-option:hover{border-color:#94b392}.price-scenario-option:has(input:checked){background:#f0f6e9;border-color:#7ea664;box-shadow:inset 0 0 0 1px #7ea664}.price-scenario-option>input{flex-shrink:0;margin:3px 0 0}.price-scenario-option strong{display:flex;flex-wrap:wrap;gap:9px;align-items:center;font-size:14px;font-weight:550}.price-scenario-option em{font-size:10px;font-style:normal;font-weight:500;color:#5a7c46}.price-scenario-option small{display:block;font-size:12px;color:var(--muted);margin-top:4px;line-height:1.5}.price-preview{background:#f3f6f4;border:1px solid #e3eae5;border-radius:12px;padding:16px;margin:15px 0 22px}.dialog-body .price-preview h3{margin:0 0 6px}.price-preview-numbers{display:flex;gap:40px;margin-top:16px;font-size:12px;color:var(--muted)}.price-preview-numbers strong{display:block;font-size:25px;color:var(--ink);font-family:Manrope,system-ui,sans-serif;font-weight:600}.price-preview .chart{margin-top:5px}.price-preview .legend{flex-wrap:wrap;gap:8px 16px;font-size:11px}.scenario-details{border-top:1px solid var(--line);font-size:13px}.scenario-details>summary{cursor:pointer;padding:15px 0;color:#4c7066;font-weight:550}.scenario-details-body{padding:0 0 16px}.scenario-details-body p+p{margin-top:12px}.scenario-details-body ul{padding-left:20px}.price-dialog-actions{padding-top:18px;display:grid;gap:10px}.price-dialog-actions>.text-button{justify-self:center}.price-dialog-actions .button{white-space:normal}#custom-price-fields[hidden]{display:none}@media(max-width:760px){.price-assumption-summary{flex-direction:column;align-items:stretch;gap:10px}.price-assumption-summary>.text-button{align-self:flex-start;white-space:normal}.price-scenario-option{padding:12px}.price-preview{padding:13px}.price-preview-numbers{gap:30px}}.analysis-image:not(.show-model)>img{object-fit:fill}.analysis-image .terrain-controls{top:60px;bottom:auto;right:12px}.analysis-image .terrain-controls button{width:44px;height:44px}.analysis-image.show-model{aspect-ratio:auto}.analysis-image.show-model>canvas{height:440px}.terrain-selection{margin:0;padding:8px 16px;background:#e6edeb;border-top:1px solid #d4dfdc;color:var(--muted);font-size:12px;line-height:1.5}@media(max-width:760px){.analysis-image.show-model>canvas{height:340px}}.trace-json{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;max-height:360px;overflow:auto;background:#f3f7f5;padding:14px}.cashflow-table{overflow-x:auto;margin:18px 0}.cashflow-table table{width:100%;border-collapse:collapse;font-size:14px}.cashflow-table th,.cashflow-table td{text-align:right;padding:8px;border-bottom:1px solid #dce5e1}.scenario-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.kit{overflow-wrap:anywhere}.quality-flags{font-size:13px;overflow-wrap:anywhere;margin-top:12px}.inline-note details{margin-top:8px}.inline-note p{margin:6px 0}.analysis-stage-row{display:flex;align-items:center;gap:8px}.analysis-stage-row>button:first-child{display:flex;align-items:center;min-width:0;width:100%;gap:12px;border:0;background:none;text-align:left;padding:16px 0;color:var(--ink);border-radius:8px}.analysis-stage-row>button:first-child:disabled{opacity:1;cursor:default}.analysis-stage-row>button:first-child:not(:disabled):hover{background:#eaf1ee}.analysis-stage-row>.stage-retry{display:block;width:auto;flex:0 0 auto;border:1px solid #b8cec3;background:#fff;color:var(--green);border-radius:8px;padding:7px 10px;font:inherit;font-size:12px;font-weight:600;text-align:center}.analysis-stage-row>.stage-retry:disabled{opacity:.55}.annual-legend{margin-top:14px;color:#526b6c;font-size:11px}.annual-legend-swatches{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.annual-legend-item,.annual-legend-missing{display:flex;align-items:center;gap:6px;min-width:0}.annual-legend-missing{margin-top:8px;color:#647579}.annual-swatch{display:grid;place-items:center;flex:0 0 25px;width:25px;height:25px;border-radius:6px;background:var(--swatch);color:#17343b;font-size:11px;font-weight:700;border:1px solid #ffffffb5;box-shadow:0 1px 2px #17343b20}.annual-legend-item:nth-child(-n+2) .annual-swatch{color:#fff}.annual-legend-item strong,.annual-legend-missing strong{display:block;font-size:11px;font-weight:650;white-space:nowrap}.annual-legend-item small,.annual-legend-missing small{display:block;font-size:10px;color:#7b8d91;white-space:nowrap}.metric span br{display:none}.metric span br{display:block}.annual-legend-item{flex-direction:column;align-items:flex-start;gap:3px}@media(max-width:760px){.annual-legend-swatches{gap:3px}.annual-legend-item strong,.annual-legend-missing strong{font-size:10px;white-space:normal;line-height:1.15}.annual-legend-item small,.annual-legend-missing small{font-size:9px;white-space:normal;line-height:1.15}.annual-swatch{margin-bottom:1px}}.annual-legend-hours{color:#526b6c!important;font-weight:600}.annual-legend-note{margin:8px 0 0;font-size:10px;color:#7b8d91}.annual-legend-source{margin:4px 0 0;font-size:10px;color:#7b8d91;line-height:1.45}.analysis-navigation{width:100%;display:flex;align-items:stretch;gap:12px}.analysis-navigation>.button:first-child{flex:0 0 auto}.analysis-navigation>.button:last-child{flex:1;min-width:0;width:auto;white-space:normal}@media(min-width:761px)and (max-width:1100px){.stepper{gap:0}.step{gap:6px;font-size:12px;padding:4px}.step-line{margin:0 5px}}#analysis-map{position:absolute;inset:0;z-index:0;background:#e6edeb;font-family:inherit}.show-map .analysis-image-top{z-index:500;right:70px}.map-source-status{background:#fff;padding:5px 8px;max-width:240px;font-size:11px;color:#526b6c}.show-map .leaflet-control-attribution{font-size:10px}.show-map .leaflet-control-zoom a{font-size:20px;color:#17343b}.property-boundaries{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.property-boundaries path{vector-effect:non-scaling-stroke;stroke-width:3}.house-boundary{stroke:#b9f568;fill:#b9f56833}.parcel-boundary{stroke:#33a9ef;stroke-dasharray:7 5;fill:none}
