.estimate{padding:20px;top:16px;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#bec8b8 transparent}
.door-preview{margin:-20px -20px 18px;padding:18px 18px 12px;background:#f0f3ea;border-bottom:1px solid var(--line)}
.door-preview-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}
.door-preview-heading h2{font-size:17px;letter-spacing:0;margin:0;display:flex;gap:8px;align-items:center}
.door-preview-heading h2:before{content:'';width:7px;height:7px;display:block;border-radius:50%;background:#758b36}
.diagram-expand{border:1px solid #aeb9a5;background:transparent;border-radius:4px;padding:5px 8px;color:var(--ink);font:12px Arial;cursor:pointer}
.door-visual{margin:4px auto 0;max-width:320px}
.door-visual svg{display:block;width:100%;height:clamp(215px,32vh,290px);overflow:visible}
.door-core{margin:7px 0 0;text-align:center;color:#4b5b3d;font-size:12px;font-weight:600}
.door-size{margin:0;text-align:center;font-size:12px;font-weight:600;line-height:1.5}
.door-view-note{margin:4px 0 10px;text-align:center;font-size:11px;color:var(--muted);line-height:1.45}
.door-components-details{border-top:1px solid #d4ddcc;padding-top:7px;margin-top:10px}
.door-components-details summary{font-size:12px;cursor:pointer;font-weight:600}
.door-components{list-style:none;padding:0;margin:10px 0 5px;display:flex;flex-wrap:wrap;gap:5px}
.door-components li{display:flex;align-items:center;gap:5px;padding:4px 7px;border:1px solid #d4ddcc;border-radius:3px;background:#fafbf6;font-size:11px;line-height:1.4}
.door-components li>span{width:6px;height:6px;background:#758b36;flex-shrink:0;border-radius:1px}
.diagram-note{font-size:11px;color:var(--muted);line-height:1.5;margin:8px 0 0}
.estimate h2#summary-title{font-size:21px}.estimate .eyebrow{margin-bottom:7px}.estimate #scope-label{margin-top:4px;font-size:12px}
.estimate-total{padding:12px 16px;margin:14px 0 10px}.estimate-total strong{font-size:34px;margin:0}.estimate-total p{font-size:12px;margin-top:4px}
.estimate .exclusions{font-size:12px;margin-top:8px}.estimate .notice{font-size:12px;padding:8px 10px;margin:10px 0}
.estimate .full{font-size:13px;padding:12px}.estimate .reset{font-size:12px;padding-top:12px}
.diagram-dialog{border:1px solid var(--line);border-radius:8px;padding:22px;background:var(--paper);color:var(--ink);width:min(560px,calc(100% - 28px));max-height:calc(100dvh - 28px);overflow:auto}
.diagram-dialog::backdrop{background:rgb(24 36 39 / 65%)}.diagram-dialog h2{font-size:23px;margin:0}
.diagram-dialog .door-visual{max-width:390px}.diagram-dialog .door-visual svg{height:min(48vh,450px)}
.diagram-dialog .door-components{justify-content:center}.diagram-dialog .diagram-note{text-align:center}
.diagram-dialog .door-preview-heading{margin-bottom:10px}.diagram-dialog .diagram-expand{padding:8px 12px;font-size:14px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@keyframes door-part-appear{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.door-part-enter{animation:door-part-appear .28s ease-out}
@media(prefers-reduced-motion:reduce){.door-part-enter{animation:none}}
@media(max-width:760px){
 .estimate{max-height:none;overflow:visible;position:static}.door-visual svg{height:240px}
 .estimate .breakdown,.estimate #reset-button{display:block}.estimate #review-button{display:none}
 .mobile-total{gap:8px;flex-wrap:wrap;padding:10px 4%;padding-bottom:max(10px,env(safe-area-inset-bottom))}
 .mobile-total>span{flex:1;min-width:125px}.mobile-total button{font-size:12px;padding:10px}
 .mobile-total .mobile-door-button{background:transparent;border:1px solid #aeba9c;color:white}
 .step{scroll-margin-top:12px}.config-page{padding-bottom:8px}
}
@media print{.diagram-dialog,.door-preview,.sr-only{display:none!important}}
