*{box-sizing:border-box}body{margin:0;background:#eef2f5;color:#172e41;font:16px/1.45 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}header{height:88px;background:#102b43;color:white;display:flex;align-items:center;padding:0 32px;gap:36px}.brand{display:flex;align-items:center;gap:12px;font-weight:800;font-size:30px;letter-spacing:-1px}.brand span{font-size:10px;letter-spacing:1.5px;line-height:1.5;border-left:1px solid #506678;padding-left:12px}.title{font-size:18px;font-weight:600}.title span{display:block;font-size:13px;font-weight:400;color:#c4d5e0}.version{margin-left:auto;font-size:12px;letter-spacing:1.4px;border:1px solid #5b7387;padding:6px 10px;border-radius:4px}main{display:grid;grid-template-columns:minmax(0,1fr) 350px;max-width:1800px;margin:auto;min-height:calc(100dvh - 88px)}.stage{position:sticky;top:0;height:calc(100dvh - 88px);min-height:520px;display:flex;flex-direction:column;position:relative;overflow:hidden;background:radial-gradient(ellipse at 45% 40%,#f8fbfe,#dbe5ed)}.stagehead{display:flex;justify-content:space-between;padding:28px 32px 0;z-index:1;pointer-events:none}.eyebrow{font-size:12px;letter-spacing:1.5px;font-weight:700;color:#587084}h1{font-size:28px;letter-spacing:-.7px;margin:3px 0}h2{font-size:20px;margin:0}h3{font-size:14px;letter-spacing:.8px;text-transform:uppercase;margin:0 0 20px}.size{text-align:right}.size strong{font-size:24px;font-weight:600;display:block}.size span{font-size:14px;color:#587084}#viewport{position:absolute;inset:85px 0 90px;touch-action:none}#viewport canvas{display:block;width:100%;height:100%;touch-action:none}#fallback{padding:40px}.viewtools{margin:auto auto 0;display:flex;gap:4px;background:#fff;padding:5px;border:1px solid #d4dfe6;border-radius:9px;z-index:2;max-width:100%}button,select,input{font:inherit}button{cursor:pointer;border:none;background:transparent;color:inherit;min-height:44px;padding:8px 14px;border-radius:5px;font-size:14px;font-weight:600}button[aria-pressed=true]{background:#102b43;color:#fff}button:hover{background:#e1eaf1}button[aria-pressed=true]:hover{background:#24485f}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #2b8ed0;outline-offset:3px}.stagefoot{display:flex;align-items:center;justify-content:space-between;padding:12px 28px;z-index:1;font-size:13px;color:#587084}aside{background:#fff;border-left:1px solid #d7e0e6;padding:26px 26px 20px}.asidehead{margin-bottom:24px}.asidehead span{font-size:11px;letter-spacing:1.5px;color:#728899}.section{border-top:1px solid #e1e7ec;padding:22px 0}.dimension{margin-bottom:20px}.dimension:last-child{margin:0}label{font-size:14px;font-weight:600;display:block}label output{float:right;font-size:20px;line-height:1;font-weight:700}input[type=range]{width:100%;height:30px;margin:8px 0 0;accent-color:#1877ab;cursor:pointer}input[type=range]::-webkit-slider-thumb{width:24px;height:24px}.ends{display:flex;justify-content:space-between;font-size:12px;color:#738695}select{width:100%;height:46px;border:1px solid #c9d6df;border-radius:6px;background:#fbfcfd;padding:0 10px;margin-top:8px;color:#172e41;font-size:16px}.selectlabel{margin-top:18px}.hint{font-size:12px;color:#647988;margin:8px 0}.steprow{display:flex;align-items:center;justify-content:space-between;margin-top:14px}.stepper{display:flex;align-items:center;border:1px solid #c9d6df;border-radius:6px}.stepper button{font-size:20px;width:40px;padding:0}.stepper input{border:0;width:40px;text-align:center;font-size:16px;color:#172e41;background:none;-moz-appearance:textfield}.stepper input::-webkit-inner-spin-button{appearance:none}.note{background:#edf4f8;border-radius:7px;padding:14px;font-size:12px;color:#526b7c}.note strong{font-size:13px;color:#26485f}.note p{margin:5px 0 0}@media(min-width:801px){.stage{position:sticky}}@media(max-width:1050px){main{grid-template-columns:minmax(0,1fr) 300px}aside{padding:22px 20px}header{padding:0 22px;gap:22px}.stagehead{padding:22px 22px 0}}@media(max-width:800px){header{height:68px;padding:0 16px;gap:16px}.brand{font-size:25px}.brand span{display:none}.title{font-size:16px}.title span{font-size:12px}.version{font-size:10px;padding:4px 6px}main{display:block}.stage{height:52dvh;min-height:370px;max-height:650px}.stagehead{padding:18px 18px 0}h1{font-size:23px}.size strong{font-size:22px}.eyebrow{font-size:10px}#viewport{inset:65px 0 90px}.viewtools button{padding:7px 10px;font-size:13px}.stagefoot{padding:8px 16px;font-size:12px}aside{border-left:none;border-top:1px solid #cad7e1;padding:22px 22px 30px}.asidehead{display:flex;align-items:center;justify-content:space-between}.section{padding:22px 0}input[type=range]{height:38px}}

.checklabel{display:flex;gap:10px;align-items:center;margin-top:18px;min-height:44px}.checklabel input{width:22px;height:22px;accent-color:#1877ab}

details.section{padding:0}details.section summary{min-height:60px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;font-size:14px;font-weight:700;letter-spacing:.8px;text-transform:uppercase}details.section summary::-webkit-details-marker{display:none}details.section summary:focus-visible{outline:3px solid #2b8ed0;outline-offset:2px;border-radius:4px}.chevron{height:10px;width:10px;border-right:2px solid #587084;border-bottom:2px solid #587084;transform:rotate(-45deg);margin-right:5px}details[open]>.sectionbody{padding:2px 0 22px}details[open]>summary .chevron{transform:rotate(45deg)}.lighttoggle{display:block;width:100%;min-height:46px;margin-top:20px;background:#e8f1f6;border:1px solid #bdcfdb}.lighttoggle[aria-pressed=true]{background:#102b43;color:white}.lighttoggle:disabled{cursor:default;color:#647988;background:#f1f4f6;border-color:#d8e0e6}

.roofswitch{display:flex;gap:4px;padding:4px;margin:0 0 20px;background:#edf3f7;border:1px solid #d2dfe8;border-radius:7px}.roofswitch button{flex:1;min-height:46px;font-size:14px}

[hidden]{display:none!important}.roofswitch{flex-wrap:wrap}.roofswitch button{padding-left:8px;padding-right:8px}

.displaytools{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.stagefoot{flex-wrap:wrap;gap:4px}.displaytools button{font-size:13px;padding:6px 8px}

.postcalc{margin-top:16px;padding:14px;border:1px solid #c9d6df;background:#f3f7fa;border-radius:7px;font-size:14px;overflow-wrap:anywhere}.postcalc strong{display:block;margin-top:14px;font-size:14px}.postcalc dl{margin:12px 0}.postcalc dl div{padding:7px 0;border-bottom:1px solid #dce5eb}.postcalc dt{color:#526b7c}.postcalc dd{margin:2px 0 0;font-weight:600}.postcalc p{margin:10px 0 0;font-size:14px}#poststatus{font-weight:600}#poststatus[data-warning=true]{color:#8a390d}#postmode{font-size:14px}

.detailtoggle{width:100%;margin-top:8px;border:1px solid #c9d6df;background:#f3f7fa;text-align:left}.postalert{color:#8a390d;font-size:14px}

.brand{--logo-width:168px;position:relative;display:block;flex:0 0 var(--logo-width);width:var(--logo-width);height:calc(var(--logo-width)*.474);overflow:hidden;border-radius:4px;background:transparent}
.brand img{position:absolute;display:block;width:calc(var(--logo-width)*1.102);height:auto;max-width:none;left:calc(var(--logo-width)*-.05165);top:calc(var(--logo-width)*-.11405)}
.title{min-width:0}
@media(max-width:800px){.brand{--logo-width:106px}}
@media(max-width:420px){header{padding:0 12px;gap:10px}.brand{--logo-width:96px}.title{font-size:14px}.title span{display:none}.version{white-space:nowrap}}


#price-window{width:min(430px,calc(100vw - 32px));max-height:80dvh;overflow:auto;padding:22px;background:#fff;color:#172e41;border:1px solid #c9d6df;border-radius:12px;box-shadow:0 10px 40px #102b4333}#price-window::backdrop{background:#102b4355}.price-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.price-heading h2{font-size:18px}#price-box{flex:none;z-index:2;align-self:center;margin:8px auto 0;padding:8px 16px;background:#fff;border:1px solid #d4dfe6;border-radius:8px;max-width:calc(100% - 32px);text-align:center}#price-box>span{font-size:12px;color:#587084;margin-right:12px}.price-total{display:inline;font-size:24px;font-weight:700}#price-message:empty{display:none}#price-message{max-width:320px;margin:5px 0 0}.stage.price-visible #viewport{bottom:155px}.price-actions{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}.price-actions button{border:1px solid #5b7387;color:white;white-space:nowrap}.price-actions button:hover{background:#24485f}.price-actions button:disabled{opacity:.5;cursor:default}.stagefoot-left{display:flex;align-items:center;gap:8px;margin-right:auto;flex-wrap:wrap}.stagefoot-left button{font-size:12px;color:#647988;padding:6px 8px}.price-field{display:block;margin:12px 0}.price-field input,#price-key{display:block;width:100%;min-height:44px;margin-top:6px;padding:8px;border:1px solid #c9d6df;border-radius:6px;font:inherit}#price-owner{margin-top:12px}#price-owner details{margin:16px 0}#price-owner summary{cursor:pointer;font-weight:600}#price-login-status,#price-admin-status{font-size:14px;color:#8a390d}#price-cost-summary{font-size:14px}#price-print-document{display:none}
@media(max-width:800px){header{height:auto;min-height:68px;padding-top:6px;padding-bottom:6px;gap:10px}.price-actions{gap:4px}.price-actions button{font-size:12px;padding:6px 8px}.stage.price-visible{min-height:425px}.stage.price-visible #viewport{bottom:150px}}
@media(max-width:420px){header .title{display:none}.price-actions{flex-wrap:nowrap}#price-box{padding:6px 12px}.price-total{font-size:22px}}
@media print{body{background:white}body>*{display:none!important}body>#price-print-document{display:block!important;padding:24px;font:16px/1.5 system-ui,sans-serif;color:#172e41}#price-print-document table{border-collapse:collapse;width:100%;margin:28px 0}#price-print-document td,#price-print-document th{padding:12px;border-bottom:1px solid #ccd6dd;text-align:left}#price-print-document td:last-child,#price-print-document th:last-child{text-align:right}#price-print-document tfoot{font-size:22px}#price-print-document .quote-note{font-size:13px}}

#price-photo-status{text-align:center;z-index:2;align-self:center;margin:5px 8px 0;background:#eef2f5;border-radius:4px}#price-photo-status:empty{display:none}.price-actions svg{display:block}#price-print-document .quote-photo{display:block;width:100%;max-height:320px;object-fit:contain;break-inside:avoid}#price-print-document .quote-description{font-size:13px;color:#526b7c}#price-print-document tr{break-inside:avoid}#price-print-document td:last-child{white-space:nowrap}

#price-print-document .quote-company{display:flex;flex-direction:column;align-items:flex-start;gap:8px;break-inside:avoid}#price-print-document .quote-logo{width:190px;height:auto;display:block}#price-print-document .quote-company h1{font-size:22px;margin:0 0 6px}#price-print-document address{font-style:normal;font-size:13px;line-height:1.55}#price-print-document .quote-company a{color:inherit}

#price-clear-photos{align-self:center;z-index:2;font-size:12px;padding:2px 8px;min-height:28px}#price-clear-photos[hidden]{display:none}@media print{#price-print-document{padding:0!important}#price-print-document .quote-company{flex-direction:row;align-items:center;gap:18px}#price-print-document .quote-logo{width:140px}#price-print-document .quote-company h1{font-size:20px;margin:0}#price-print-document .quote-footer address{font-size:11px}#price-print-document .quote-photos .quote-photo{width:calc(50% - 6px);max-height:250px}#price-print-document .quote-photos .quote-photo:only-child{width:85%;max-width:640px;margin:0 auto}}

.combined-design-heading{margin:24px 0 8px;font-size:13px}
/* Saved projects is isolated from the existing builder layout. */
#projects-window{width:min(1180px,96vw);max-width:96vw;max-height:92vh;border:1px solid #cbd6df;border-radius:14px;padding:24px;color:#102b43;background:#fff;overflow:auto}#projects-window::backdrop{background:#102b4380}#projects-window label{display:grid;gap:6px;font-size:13px;font-weight:600}#projects-window input,#projects-window textarea,#projects-window select{width:100%;box-sizing:border-box;padding:9px;border:1px solid #b8c8d5;border-radius:6px;color:#102b43;background:white}#projects-login{max-width:420px;display:grid;gap:14px}#projects-window [hidden]{display:none!important}.projects-account,.projects-buttons{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.projects-account{justify-content:space-between}.projects-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}.projects-wide{grid-column:1/-1}#projects-editor{border-block:1px solid #dce4eb;padding:16px 0;margin:16px 0}.projects-search{max-width:420px;margin:16px 0}.projects-table{overflow:auto;margin-bottom:14px}.projects-table table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}.projects-table th,.projects-table td{padding:10px 8px;border-bottom:1px solid #dce4eb;vertical-align:top}.projects-table th{background:#f0f5f8;white-space:nowrap}.projects-table td:last-child{min-width:170px}.projects-table button{padding:5px 7px;margin:0 3px 4px 0}.project-current-price{font-weight:700;white-space:nowrap}#projects-status{min-height:20px}#projects-window button:disabled{opacity:.55;cursor:wait}@media(max-width:600px){#projects-window{padding:16px}.projects-fields{grid-template-columns:1fr}.projects-wide{grid-column:auto}.price-actions{flex-wrap:wrap;justify-content:flex-end}}@media print{#projects-window,#projects-open{display:none!important}}

#projects-status{position:sticky;top:0;z-index:2;background:#fff;padding:8px 0;margin:0 0 10px;border-bottom:1px solid #dce4eb}

#projects-window [aria-invalid=true]{border-color:#ae2939;box-shadow:0 0 0 2px #ae293922}#projects-library>.projects-buttons{margin-top:16px}

#projects-window.project-save-mode{width:min(760px,96vw)}
#quote-new{border-color:#9bb6ca;color:#fff}
#quote-confirm{box-sizing:border-box;width:min(460px,calc(100vw - 32px));max-height:90vh;padding:28px;border:1px solid #cbd6df;border-radius:18px;color:#102b43;background:#fff;box-shadow:0 20px 70px #102b4340;overflow:auto}#quote-confirm::backdrop{background:#102b4390}#quote-confirm h2{margin:14px 0 10px;font-size:22px;line-height:1.3;overflow-wrap:anywhere}#quote-confirm p{margin:0 0 24px;color:#526b7c;font-size:15px;line-height:1.6}.quote-confirm-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;color:#a42c35;background:#fff0f0;font-size:24px;font-weight:700}#quote-confirm-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}#quote-confirm-actions.stacked{display:grid;grid-template-columns:1fr}#quote-confirm button{border:1px solid #bdccd7;border-radius:8px;padding:12px 16px;font-size:14px;line-height:1.3;font-weight:700;cursor:pointer}#quote-confirm button.primary{background:#163e5c;color:#fff;border-color:#163e5c}#quote-confirm button.danger{background:#b32d3b;color:#fff;border-color:#b32d3b}#quote-confirm button.danger-outline{background:#fff6f5;color:#a12633;border-color:#d99aa1}#quote-confirm button.secondary{background:#f1f5f8;color:#24465f}#quote-confirm button:focus-visible{outline:3px solid #5f9fd1;outline-offset:3px}#projects-toast{position:fixed;z-index:20;bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 40px);box-sizing:border-box;background:#163e5c;color:white;padding:14px 22px;border-radius:10px;box-shadow:0 6px 25px #102b4330;font-size:14px}.quote-print-frame{position:fixed;left:-10000px;top:0;width:800px;height:1px;border:0}@media print{#quote-confirm,#quote-new,#projects-toast,.quote-print-frame{display:none!important}}
.projects-table td:last-child{min-width:280px;white-space:nowrap}

html.auth-locked body>header,html.auth-locked body>main,html.auth-locked #account-bar{display:none!important}#account-gate[hidden]{display:none}#account-gate{min-height:100dvh;display:grid;place-items:center;padding:28px;background:#edf3f7}.account-card{width:min(100%,420px);padding:36px;border:1px solid #d5e0e7;border-radius:16px;background:white;box-shadow:0 18px 48px #102b4312}.account-card h1{font-size:30px;margin:0 0 10px;color:#102b43}.account-card label{display:block;margin:20px 0 7px;font-weight:600}.account-card input{width:100%;padding:12px;border:1px solid #b7cbd8;border-radius:7px;font:inherit}.account-card button{width:100%;padding:12px;margin-top:20px;border:0;border-radius:7px;background:#102b43;color:white;font:inherit;cursor:pointer}.account-card .account-link,#account-gate-signout{background:transparent;color:#244e6c;margin-top:8px}.account-card [hidden]{display:none!important}#account-message{line-height:1.5;color:#35556b}#account-bar{display:flex;justify-content:space-between;gap:14px;align-items:center;background:#f5f8fa;color:#173d55;padding:10px 24px;border-bottom:1px solid #dce5eb;font-size:13px}#account-email{margin-left:12px;color:#597282}#account-signout{border:1px solid #b5cbd9;background:white;border-radius:6px;padding:7px 13px;color:#173d55}#private-pin-setup label{display:block;margin:14px 0 6px}#private-pin-setup input{width:100%;padding:10px;border:1px solid #bed0dc;border-radius:5px}#private-pin-change{margin-top:12px}#price-pin-status{line-height:1.5}.brand>strong{font-size:25px;color:white}@media(max-width:600px){#account-email{display:block;margin:3px 0 0}.account-card{padding:25px}}

.brand>strong{font-size:22px;white-space:nowrap}
