:root{--color-navy-950: #0c1d33;--color-navy-800: #17385f;--color-blue-600: #1765b5;--color-warm-500: #d47a3a;--color-ink: #172033;--color-muted: #617086;--color-line: #d9e1eb;--color-surface: #ffffff;--color-focus: #1765b5;--color-canvas: #f5f7fa;--color-accent-stone: #c9a477;--color-card-hover-border: #8da8c5;--color-card-hover-shadow: rgba(12, 29, 51, .09);--color-card-selected-shadow: rgba(23, 101, 181, .13);--color-sketch-surface: #f2f5f8;--color-control-border: #9aabba;--color-disabled-ink: #677485;--color-disabled-surface: #e4e9ef;--color-disabled-border: #d5dce5;--color-danger-700: #b42318;--color-danger-800: #912018;--color-danger-surface: #fff1f0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-8: 3rem;--touch-target-min: 44px;--content-max-width: 44rem}*{box-sizing:border-box}html{min-width:320px;background:var(--color-canvas)}body{min-width:320px;min-height:100vh;margin:0;color:var(--color-ink);background:var(--color-canvas);font-family:Georgia,Times New Roman,serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit}:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.estimator-shell{min-height:100vh;background:var(--color-canvas)}.topbar{display:grid;gap:var(--space-3);min-height:4.5rem;padding:var(--space-4) clamp(var(--space-5),5vw,var(--space-8));color:var(--color-surface);background:var(--color-navy-950);border-bottom:3px solid var(--color-accent-stone)}.topbar-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3)}.brand{font-size:1.125rem;font-weight:700;letter-spacing:.025em}.estimator-shell main{width:min(100%,76rem);margin:0 auto;padding:var(--space-6) var(--space-4) var(--space-8)}.wizard-progress{display:grid;gap:var(--space-2);max-width:22rem;margin-bottom:var(--space-8);color:var(--color-navy-800);font-family:ui-sans-serif,system-ui,sans-serif;font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.wizard-progress progress{width:100%;height:.375rem;overflow:hidden;border:0;border-radius:999px;color:var(--color-blue-600);background:var(--color-line)}.wizard-progress progress::-webkit-progress-bar{background:var(--color-line)}.wizard-progress progress::-webkit-progress-value{background:var(--color-blue-600)}.wizard-progress progress::-moz-progress-bar{background:var(--color-blue-600)}.step-panel{display:grid;gap:var(--space-8)}.step-heading-group{display:grid;gap:var(--space-3);max-width:46rem}.step-heading-group h1{max-width:18ch;margin:0;color:var(--color-navy-800);font-size:clamp(2rem,7vw,3.5rem);line-height:1.05;letter-spacing:-.035em;text-wrap:balance}.step-heading-group p{max-width:66ch;margin:0;color:var(--color-muted);font-family:ui-sans-serif,system-ui,sans-serif;font-size:1rem;line-height:1.65}.project-type-grid,.method-grid{display:grid;gap:var(--space-4);max-width:54rem}.project-type-card,.method-card,.layout-card{min-width:0;color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-line);border-radius:14px;cursor:pointer;text-align:left;transition:border-color .16s ease-out,box-shadow .16s ease-out,transform .16s ease-out}.project-type-card:hover,.method-card:hover,.layout-card:hover{border-color:var(--color-card-hover-border);box-shadow:0 10px 24px var(--color-card-hover-shadow);transform:translateY(-2px)}.project-type-card,.method-card{display:grid;gap:var(--space-3);min-height:12rem;padding:var(--space-5)}.project-type-name,.method-card-name,.layout-card-name{color:var(--color-navy-800);font-weight:700;line-height:1.2}.project-type-name,.method-card-name{font-size:1.35rem}.project-type-copy,.method-card-copy,.layout-card-copy,.card-action,.selection-status{font-family:ui-sans-serif,system-ui,sans-serif}.project-type-copy,.method-card-copy,.layout-card-copy{color:var(--color-muted);font-size:.9375rem;line-height:1.5}.card-action{align-self:end;color:var(--color-blue-600);font-size:.875rem;font-weight:750}.layout-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);width:100%}.layout-card{display:grid;grid-template-rows:auto auto 1fr auto;gap:var(--space-2);padding:var(--space-3)}.layout-card[aria-pressed=true]{border-color:var(--color-blue-600);box-shadow:inset 0 0 0 1px var(--color-blue-600),0 8px 22px var(--color-card-selected-shadow)}.layout-card-sketch{display:grid;aspect-ratio:1;place-items:center;width:100%;overflow:hidden;background:var(--color-sketch-surface);border-radius:10px}.layout-card-sketch svg{display:block}.layout-card-name{font-size:1rem}.layout-card-copy{font-size:.8125rem}.selection-status{display:flex;align-items:center;min-height:1.5rem;color:var(--color-blue-600);font-size:.8125rem;font-weight:750}.selection-status svg{margin-right:var(--space-1)}.step-actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-line)}.step-actions--back-only{justify-content:flex-start}.button{min-width:7.5rem;min-height:var(--touch-target-min);padding:.75rem var(--space-5);border-radius:12px;cursor:pointer;font-family:ui-sans-serif,system-ui,sans-serif;font-weight:750}.button--primary{color:var(--color-surface);background:var(--color-navy-800);border:1px solid var(--color-navy-800)}.button--primary:hover:not(:disabled){background:var(--color-navy-950);border-color:var(--color-navy-950)}.button--primary:disabled{color:var(--color-disabled-ink);background:var(--color-disabled-surface);border:1px solid var(--color-disabled-border);cursor:not-allowed}.button--secondary{color:var(--color-navy-800);background:var(--color-surface);border:1px solid var(--color-control-border)}.button--secondary:hover{color:var(--color-navy-950);border-color:var(--color-navy-800)}.button--secondary:disabled{color:var(--color-disabled-ink);background:var(--color-disabled-surface);border-color:var(--color-disabled-border);cursor:not-allowed}.button--danger-outline{color:var(--color-danger-700);background:var(--color-surface);border:1px solid var(--color-danger-700)}.button--danger-outline:hover:not(:disabled){color:var(--color-danger-800);background:var(--color-danger-surface);border-color:var(--color-danger-800)}.button--danger{color:var(--color-surface);background:var(--color-danger-700);border:1px solid var(--color-danger-700)}.button--danger:hover:not(:disabled){background:var(--color-danger-800);border-color:var(--color-danger-800)}.button--danger-outline:disabled,.button--danger:disabled{color:var(--color-disabled-ink);background:var(--color-disabled-surface);border-color:var(--color-disabled-border);cursor:not-allowed}.button--danger-outline:focus-visible,.button--danger:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.button--topbar{min-width:auto;color:var(--color-surface);background:transparent;border:1px solid currentColor}.button--topbar:hover:not(:disabled){background:var(--color-navy-800)}.start-over-confirmation{display:grid;gap:var(--space-3);width:min(100%,40rem);padding:var(--space-4);color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-line);border-radius:12px;font-family:ui-sans-serif,system-ui,sans-serif}.start-over-confirmation p{margin:0;font-weight:750;line-height:1.45}.start-over-confirmation-actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}.start-over-confirmation-actions .button{flex:1 1 10rem}.measurement-workspace{display:grid;gap:var(--space-4)}.measurement-sketch,.measurement-controls{min-width:0;background:var(--color-surface);border:1px solid var(--color-line)}.measurement-sketch{display:grid;align-content:start;padding:var(--space-4);background:var(--color-sketch-surface)}.measurement-sketch svg{display:block;width:100%}.workspace-label,.measurement-label,.measurement-helper,.measurement-notice,.measurement-input-group,.edge-control,.field-error,.material-card{font-family:ui-sans-serif,system-ui,sans-serif}.workspace-label{color:var(--color-navy-800);font-size:.75rem;font-weight:750;letter-spacing:.07em;text-transform:uppercase}.measurement-controls{padding:0 var(--space-4)}.measurement-helper{margin:0;padding:var(--space-4) 0;color:var(--color-muted);font-size:.875rem;line-height:1.5;border-bottom:1px solid var(--color-line)}.measurement-row{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3) var(--space-4);padding:var(--space-4) 0;border-bottom:1px solid var(--color-line)}.measurement-row:last-child{border-bottom:0}.measurement-label{grid-column:1 / -1;color:var(--color-navy-800);font-size:.9375rem;font-weight:750}.measurement-input-group{display:grid;grid-template-columns:minmax(0,1fr) 2.75rem}.measurement-input-group input{min-width:0;min-height:var(--touch-target-min);padding:.625rem var(--space-3);color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-control-border);border-right:0;border-radius:0}.measurement-input-group input[aria-invalid=true]{border-color:var(--color-warm-500);border-width:2px 0 2px 2px}.measurement-suffix{display:grid;min-height:var(--touch-target-min);place-items:center;color:var(--color-navy-800);background:var(--color-disabled-surface);border:1px solid var(--color-control-border);font-weight:750}.edge-control{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.edge-control button{min-height:var(--touch-target-min);padding:.625rem var(--space-2);color:var(--color-navy-800);background:var(--color-surface);border:1px solid var(--color-control-border);border-radius:0;cursor:pointer;font-weight:750}.edge-control button+button{border-left:0}.edge-control button[aria-pressed=true]{color:var(--color-surface);background:var(--color-navy-800);border-color:var(--color-navy-800)}.edge-control button[aria-pressed=false]:hover{background:var(--color-sketch-surface);border-color:var(--color-navy-800)}.field-error{grid-column:1 / -1;margin:0;padding:var(--space-3);color:var(--color-navy-950);background:var(--color-disabled-surface);border:1px solid var(--color-warm-500);font-size:.875rem;font-weight:700;line-height:1.45}.measurement-notice{max-width:76ch;margin:0;padding:var(--space-4);color:var(--color-navy-950);background:var(--color-disabled-surface);border:1px solid var(--color-line);font-size:.875rem;line-height:1.6}.material-grid{display:grid;gap:var(--space-3);max-width:58rem}.material-card{min-height:5.5rem;padding:var(--space-4) var(--space-5);color:var(--color-navy-800);background:var(--color-surface);border:1px solid var(--color-control-border);border-radius:0;cursor:pointer;font-size:1rem;font-weight:750;text-align:left;transition:border-color .16s ease-out,box-shadow .16s ease-out,transform .16s ease-out}.material-card:hover{border-color:var(--color-navy-800);box-shadow:0 8px 18px var(--color-card-hover-shadow);transform:translateY(-1px)}.material-card[aria-pressed=true]{color:var(--color-surface);background:var(--color-navy-800);border:2px solid var(--color-navy-800);box-shadow:0 8px 22px var(--color-card-selected-shadow)}.material-error{max-width:58rem}.spaces-list,.review-spaces{display:grid;gap:var(--space-4);width:100%;max-width:64rem}.space-summary-card{display:grid;min-width:0;overflow:hidden;background:var(--color-surface);border:1px solid var(--color-line);border-radius:14px}.space-summary-sketch,.review-space-sketch{display:grid;aspect-ratio:1;min-width:0;place-items:center;overflow:hidden;background:var(--color-sketch-surface)}.space-summary-sketch svg,.review-space-sketch svg{display:block;width:100%}.space-summary-content,.space-summary-heading,.review-space-copy{display:grid;gap:var(--space-3)}.space-summary-content{align-content:start;min-width:0;padding:var(--space-5)}.space-summary-heading h2,.space-summary-heading p,.space-material,.review-section h2,.review-space h3,.review-list,.review-request-details p,.receipt-id span,.receipt-id strong{margin:0}.space-summary-heading h2,.review-section h2,.review-space h3{color:var(--color-navy-800);line-height:1.2}.space-summary-heading h2{font-size:1.35rem}.space-summary-heading p,.space-measurements,.space-material,.space-card-actions,.add-space-actions,.budget-card,.contact-form,.review-section,.review-list,.review-request-details,.notice-acknowledgement,.receipt-id{font-family:ui-sans-serif,system-ui,sans-serif}.space-summary-heading p,.review-list dt{color:var(--color-muted);font-size:.875rem;font-weight:700}.space-measurements{display:grid;gap:var(--space-2);margin:0;padding:var(--space-3) 0 var(--space-3) var(--space-5);color:var(--color-ink);font-size:.9375rem;line-height:1.45;border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line)}.space-material{display:grid;gap:var(--space-1);color:var(--color-navy-800);font-weight:750;line-height:1.4}.space-material span{color:var(--color-muted);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase}.space-card-actions,.add-space-actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}.space-card-actions{margin-top:var(--space-2)}.remove-confirmation{display:grid;gap:var(--space-3);margin-top:var(--space-2);padding-top:var(--space-4);color:var(--color-navy-950);font-family:ui-sans-serif,system-ui,sans-serif;border-top:1px solid var(--color-line)}.remove-confirmation p{margin:0;font-weight:750;line-height:1.45}.remove-confirmation-actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}.remove-confirmation-actions .button,.space-card-actions .button,.add-space-actions .button{flex:1 1 10rem}.step-actions--forward-only{justify-content:flex-end}.budget-fieldset{min-width:0;margin:0;padding:0;border:0}.budget-legend{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.budget-grid{display:grid;gap:var(--space-3);width:100%;max-width:58rem}.budget-card{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:5.5rem;padding:var(--space-4) var(--space-5);color:var(--color-navy-800);background:var(--color-surface);border:1px solid var(--color-control-border);border-radius:12px;cursor:pointer;font-size:1rem;font-weight:750;text-align:left;transition:border-color .16s ease-out,box-shadow .16s ease-out,transform .16s ease-out}.budget-card:hover{border-color:var(--color-navy-800);box-shadow:0 8px 18px var(--color-card-hover-shadow);transform:translateY(-1px)}.budget-card--selected{color:var(--color-surface);background:var(--color-navy-800);border:2px solid var(--color-navy-800);box-shadow:0 8px 22px var(--color-card-selected-shadow)}.budget-card input{width:1.25rem;height:1.25rem;flex:0 0 auto;margin:0;accent-color:var(--color-navy-800)}.budget-card--selected input{accent-color:var(--color-surface)}.request-field-error{max-width:58rem}.contact-form,.contact-fields{display:grid;gap:var(--space-6)}.contact-form{width:100%;max-width:48rem}.contact-field{display:grid;gap:var(--space-2);min-width:0}.contact-field label{color:var(--color-navy-800);font-size:.9375rem;font-weight:750}.contact-field input{width:100%;min-height:var(--touch-target-min);padding:.75rem var(--space-3);color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-control-border);border-radius:0}.contact-field input:hover{border-color:var(--color-navy-800)}.contact-field input[aria-invalid=true]{border:2px solid var(--color-warm-500)}.phone-input-group{display:flex;min-width:0}.phone-country-code{display:flex;flex:0 0 auto;align-items:center;min-height:var(--touch-target-min);padding:.75rem var(--space-3);color:var(--color-navy-800);background:var(--color-canvas);border:1px solid var(--color-control-border);border-inline-end:0;border-radius:0;font-family:ui-sans-serif,system-ui,sans-serif;font-weight:750}.phone-input-group input{min-width:0;border-inline-start:0}.phone-input-group input[aria-invalid=true]{border-inline-start:0}.phone-input-group:focus-within .phone-country-code{border-color:var(--color-navy-800)}.phone-input-group:has(input[aria-invalid=true]) .phone-country-code{border:2px solid var(--color-warm-500);border-inline-end:0}.review-section{display:grid;gap:var(--space-4);max-width:64rem}.review-section>h2,.review-request-details h2{font-size:1.25rem}.review-space{display:grid;gap:var(--space-4);min-width:0;padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-line);border-radius:14px}.review-space-copy{align-content:start}.review-space h3{font-size:1.125rem}.review-list{display:grid;gap:var(--space-3)}.review-list>div{display:grid;gap:var(--space-1)}.review-list dd{margin:0;color:var(--color-ink);line-height:1.45}.review-request-details{display:grid;gap:var(--space-5);width:100%;padding-block:var(--space-5);border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line)}.review-request-details>div{display:grid;align-content:start;gap:var(--space-3);min-width:0}.review-request-details p{color:var(--color-ink);font-weight:750}.review-contact-values{display:grid;gap:var(--space-2);min-width:0;color:var(--color-ink);font-style:normal;line-height:1.45;overflow-wrap:anywhere}.review-contact-values span{min-width:0}.notice-acknowledgement{display:grid;grid-template-columns:var(--touch-target-min) minmax(0,1fr);gap:var(--space-3);align-items:start;max-width:64rem;padding:var(--space-4);color:var(--color-navy-950);background:var(--color-disabled-surface);border:1px solid var(--color-line);line-height:1.6;cursor:pointer}.notice-acknowledgement input{width:1.25rem;height:1.25rem;margin:.15rem auto 0;accent-color:var(--color-navy-800)}.submission-verification,.submission-error,.submission-status{width:min(100%,64rem);font-family:ui-sans-serif,system-ui,sans-serif}.submission-verification{display:grid;gap:var(--space-4);align-items:center;padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-line);border-radius:14px}.submission-verification>div:first-child{display:grid;gap:var(--space-2)}.submission-verification h2,.submission-verification p,.submission-error p,.submission-status{margin:0}.submission-verification h2{color:var(--color-navy-800);font-size:1.125rem}.submission-verification p{color:var(--color-muted);font-size:.875rem;line-height:1.5}.turnstile-widget{min-height:65px;min-width:0}.turnstile-control,.turnstile-load-error{display:grid;gap:var(--space-3);min-width:0}.turnstile-load-error{max-width:28rem;padding:var(--space-4);color:var(--color-navy-950);background:var(--color-disabled-surface);border:1px solid var(--color-warm-500);border-left-width:4px}.turnstile-load-error p{margin:0;line-height:1.5}.turnstile-load-error .button{justify-self:start}.submission-status{color:var(--color-navy-800);font-weight:750}.submission-error{display:grid;gap:var(--space-2);padding:var(--space-4) var(--space-5);color:var(--color-navy-950);background:var(--color-disabled-surface);border:1px solid var(--color-warm-500);border-left-width:4px}.submission-error strong{font-size:1rem}.submission-error p{line-height:1.5}.receipt-id{display:grid;gap:var(--space-2);width:min(100%,34rem);padding-block:var(--space-5);border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line)}.receipt-id span{color:var(--color-muted);font-size:.8125rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase}.receipt-id strong{overflow-wrap:anywhere;color:var(--color-navy-800);font-size:clamp(1.1rem,4vw,1.5rem)}@media (min-width: 40rem){.estimator-shell main{padding:var(--space-8) var(--space-6) 4rem}.project-type-grid,.method-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.layout-grid--kitchen,.layout-grid--bathroom{grid-template-columns:repeat(3,minmax(0,1fr))}.layout-card{padding:var(--space-4)}.material-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.space-summary-card{grid-template-columns:minmax(14rem,.72fr) minmax(0,1.28fr)}.review-space{grid-template-columns:minmax(0,1.4fr) minmax(12rem,.6fr)}.review-request-details{grid-template-columns:repeat(2,minmax(0,1fr))}.submission-verification{grid-template-columns:minmax(0,1fr) auto}.budget-grid,.contact-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 30rem){.measurement-row{grid-template-columns:minmax(0,1fr) minmax(9rem,.9fr)}}@media (min-width: 56rem){.measurement-workspace{grid-template-columns:minmax(0,1.05fr) minmax(22rem,.95fr);align-items:start}.measurement-sketch{position:sticky;top:var(--space-4)}}@media (prefers-reduced-motion: reduce){.project-type-card,.method-card,.layout-card,.material-card,.budget-card{transition:none}}
