.planner-shell{--planner-green:#173f33;--planner-lime:#c9e568;--planner-cream:#f4f1e8;--planner-ink:#1d2d27;max-width:1460px;margin:-50px -40px;background:#f7f5ef;color:var(--planner-ink);min-height:900px}.planner-topbar{display:flex;justify-content:space-between;align-items:end;padding:28px 38px 22px;border-bottom:1px solid #d6dbd2;background:#fff}.planner-kicker{text-transform:uppercase;letter-spacing:.17em;color:#7d5a3b;font-weight:700;font-size:.72rem;margin:0 0 5px}.planner-topbar h1{font-size:clamp(2rem,3vw,3rem);margin:0}.save-state{font-size:.8rem;color:#5e6c65}.save-state span{display:inline-block;width:8px;height:8px;border-radius:50%;background:#638750;margin-right:7px}.safety-banner{background:#f3e9ce;border-left:4px solid #946344;padding:13px 36px;font-size:.9rem;line-height:1.55}.planner-layout{display:grid;grid-template-columns:220px minmax(480px,1fr) 360px;min-height:760px}.planner-steps{padding:36px 25px;border-right:1px solid #d6dbd2;background:#f1efe7}.progress-track{height:3px;background:#d6dbd2;margin-bottom:24px}.progress-track span{display:block;height:100%;width:10%;background:var(--planner-green);transition:width .3s}.planner-steps ol{list-style:none;padding:0;margin:0}.planner-steps li button{width:100%;display:flex;align-items:center;gap:14px;border:0;background:none;color:#66716b;text-align:left;padding:13px 4px;cursor:pointer;font-weight:600;font-size:.9rem}.planner-steps li button span{font-family:Georgia,serif;color:#939d96}.planner-steps li.active button{color:var(--planner-green)}.planner-steps li.active button span{color:#fff;background:var(--planner-green);width:30px;height:30px;display:grid;place-items:center;border-radius:50%}.scope-note{margin-top:38px;padding-top:22px;border-top:1px solid #cdd3ca;font-size:.76rem;color:#68746d;line-height:1.55}.scope-note p{font-size:inherit}.planner-workspace{background:#fff;padding:38px clamp(28px,4vw,62px)}.planner-workspace form{max-width:none;margin:0}.planner-panel{display:none}.planner-panel.active{display:block;animation:panel-in .24s ease}@keyframes panel-in{from{opacity:.2;transform:translateY(5px)}}.panel-heading{margin-bottom:28px}.panel-heading>span{font-size:.72rem;text-transform:uppercase;letter-spacing:.13em;color:#7c8d83;font-weight:700}.panel-heading h2{font-size:clamp(2rem,3vw,2.8rem);margin:6px 0 12px}.panel-heading p{color:#69736e;max-width:680px;line-height:1.65;margin:0}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:3px 22px}.field-grid.compact{margin-top:20px}.field.wide{grid-column:1/-1}.field,fieldset.field{display:block;margin:0 0 16px;border:0;padding:0;min-width:0}.field legend,.field>label,.field{font-size:.82rem;font-weight:700}.field input:not([type=radio]):not([type=checkbox]),.field select{margin-top:7px;background:#fbfaf6;border-color:#aeb8b0;min-height:48px;font-size:.95rem}.field small{font-size:.72rem;color:#718078;font-weight:400;display:block;margin-top:4px}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}.choice input,.shape-picker input{position:absolute;opacity:0}.choice span{display:block;border:1px solid #aeb8b0;padding:16px 18px;background:#fbfaf6;border-radius:4px;font-weight:400;cursor:pointer}.choice span b{display:block;color:var(--planner-ink);margin-bottom:2px}.choice input:checked+span{border-color:var(--planner-green);box-shadow:inset 0 0 0 1px var(--planner-green);background:#edf2e8}.shape-picker{display:flex;gap:12px;margin:8px 0 24px}.shape-picker label{width:150px;border:1px solid #aeb8b0;padding:16px;cursor:pointer;border-radius:4px;background:#fbfaf6}.shape-picker label:has(input:checked){border-color:var(--planner-green);box-shadow:inset 0 0 0 1px var(--planner-green);background:#edf2e8}.shape-picker b{display:block;margin-top:8px}.shape-icon{display:block;width:52px;height:36px;background:var(--planner-green)}.shape-icon.l-shape{clip-path:polygon(0 0,100% 0,100% 45%,55% 45%,55% 100%,0 100%)}.section-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.section-card{border:1px solid #d3d9d1;background:#f8f7f2;padding:17px;border-radius:4px}.section-card h3{font:700 .75rem 'Segoe UI',sans-serif;text-transform:uppercase;letter-spacing:.1em;margin:0 0 10px}.section-measures{display:grid;grid-template-columns:1fr 1fr;gap:10px}.section-measures label{font-size:.75rem}.section-measures input{margin-top:5px!important}.check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.check-grid label,.acknowledgements label{display:flex;gap:9px;align-items:flex-start;border:1px solid #d7ddd5;background:#faf9f5;padding:12px;border-radius:3px;font-size:.85rem;font-weight:500;margin:0}.check-grid input,.acknowledgements input{width:auto;margin:4px 0 0;accent-color:var(--planner-green)}.review-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:#d9ddd7;border:1px solid #d9ddd7;margin-bottom:22px}.review-summary div{background:#faf9f5;padding:15px}.review-summary span{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.11em;color:#718078}.review-summary strong{font-size:.95rem}.acknowledgements{display:grid;gap:8px}.calculate-button{width:100%;margin-top:20px!important;background:var(--planner-green)!important;display:flex!important;flex-direction:column;padding:15px!important}.calculate-button small{font-weight:400;opacity:.8}.form-actions{display:flex;justify-content:space-between;margin-top:28px;padding-top:20px;border-top:1px solid #e1e4de}.back-button,.next-button{min-height:46px;padding:11px 22px;border:1px solid var(--planner-green);border-radius:3px;font-weight:700;cursor:pointer}.back-button{background:#fff;color:var(--planner-green)}.back-button:disabled{opacity:.35}.next-button{background:var(--planner-green);color:#fff}.plan-preview{padding:34px 26px;background:var(--planner-green);color:#eef4eb}.preview-heading{display:flex;justify-content:space-between;align-items:center}.preview-heading span{text-transform:uppercase;letter-spacing:.13em;font-size:.7rem}.preview-heading strong{font-family:Georgia,serif;font-size:1.4rem}.plan-preview svg{width:100%;margin:22px 0 10px;background:#214a3e;border:1px solid #4e6d63;border-radius:3px}.plan-preview p{font-size:.72rem;color:#b9c9c2}.plan-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:.7rem;color:#d4dfda}.plan-legend i{display:inline-block;width:14px;height:3px;background:#c9e568;margin-right:6px;vertical-align:middle}.plan-legend .legend-house{background:#f2dfb0}.plan-legend .legend-post{width:7px;height:7px;border-radius:50%}.status-card{border:1px solid #d5dbd3;padding:20px;margin-bottom:20px;background:#f8f7f2}.status-card h3{font-size:1.6rem;margin:6px 0}.status-card.unsupported{border-left:5px solid #a06743}.result-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.result-metrics div{background:#173f33;color:#fff;padding:16px}.result-metrics span{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:#bcd1c8}.result-metrics strong{font-family:Georgia,serif;font-size:1.25rem}.warnings{padding:0;list-style:none}.warnings li{padding:12px 14px;background:#f3e9ce;border-left:3px solid #946344;margin:7px 0;font-size:.85rem}.option-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.option-card{border:1px solid #d5dbd3;padding:15px;background:#fff}.option-card h4{font-family:Georgia,serif;font-size:1.25rem;margin:5px 0}.option-card p{font-size:.78rem;line-height:1.5}.option-card button{width:100%;border:1px solid #81968c;background:#fff;padding:9px;cursor:pointer}.option-card.selected{border-color:var(--planner-green);box-shadow:inset 0 0 0 1px var(--planner-green)}.materials-table{width:100%;border-collapse:collapse;font-size:.78rem}.materials-table th,.materials-table td{text-align:left;border-bottom:1px solid #d9ddd7;padding:10px 7px}.download-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.download-row a{display:inline-flex;padding:12px 18px;background:var(--planner-green);color:#fff;text-decoration:none;border-radius:3px;font-weight:700;font-size:.84rem}.download-row a.secondary{background:#fff;color:var(--planner-green);border:1px solid var(--planner-green)}.admin-deck{max-width:1100px;margin:0 auto}.admin-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.admin-cards article{background:#173f33;color:#fff;padding:22px}.admin-cards span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em}.admin-cards strong{font:1.5rem Georgia,serif}.admin-deck section{margin-top:34px}.table-wrap{overflow:auto}.admin-deck table{width:100%;border-collapse:collapse}.admin-deck th,.admin-deck td{padding:12px;border-bottom:1px solid #d5dbd3;text-align:left}
@media(max-width:1150px){.planner-layout{grid-template-columns:190px 1fr}.plan-preview{grid-column:1/-1}.plan-preview svg{max-width:520px;display:block;margin-inline:auto}.planner-shell{margin:-50px -40px}.option-grid{grid-template-columns:1fr}}
@media(max-width:760px){.planner-shell{margin:-28px -20px}.planner-topbar{padding:22px 20px;align-items:flex-start;gap:15px}.save-state{display:none}.safety-banner{padding:12px 20px}.planner-layout{display:block}.planner-steps{padding:14px 20px;border-right:0;border-bottom:1px solid #d6dbd2}.planner-steps ol{display:flex;overflow:auto}.planner-steps li{flex:1}.planner-steps li button{font-size:0;justify-content:center}.planner-steps li button span{font-size:.75rem}.scope-note{display:none}.planner-workspace{padding:27px 20px}.field-grid,.choice-grid,.section-fields,.review-summary,.result-metrics,.admin-cards{grid-template-columns:1fr}.check-grid{grid-template-columns:1fr 1fr}.field.wide{grid-column:auto}.plan-preview{padding:25px 20px}.panel-heading h2{font-size:2rem}.materials-table{min-width:600px}.results-panel{overflow:auto}}
.choice input,.shape-picker input{width:1px!important;height:1px!important}
.help-tip{position:relative;display:inline-grid!important;place-items:center;width:1.35rem!important;height:1.35rem!important;min-height:0!important;margin:0 0 0 .25rem!important;padding:0!important;border:1px solid #75867d!important;border-radius:50%!important;background:#fff!important;color:var(--planner-green)!important;font:700 .76rem/1 'Segoe UI',sans-serif!important;vertical-align:middle;cursor:help;transform:none!important}.help-tip:hover,.help-tip:focus-visible,.help-tip[aria-expanded="true"]{background:var(--planner-green)!important;color:#fff!important;outline:2px solid #c9e568;outline-offset:2px}.help-popover{position:absolute;z-index:40;width:min(280px,calc(100vw - 48px));padding:12px 14px;background:#173f33;color:#fff;border-radius:4px;box-shadow:0 12px 28px rgba(20,40,32,.25);font-size:.8rem;font-weight:400;line-height:1.5;text-align:left}.help-popover::before{content:"";position:absolute;top:-6px;left:16px;width:12px;height:12px;background:#173f33;transform:rotate(45deg)}
.field-guidance{margin:7px 0 13px;color:#68746d;font-size:.8rem;font-weight:400}.ledger-picker{display:grid;grid-template-columns:repeat(5,minmax(112px,1fr));gap:9px}.ledger-picker>label{position:relative;margin:0;padding:10px;border:1px solid #c6cec7;background:#fbfaf6;border-radius:4px;cursor:pointer;font-weight:400}.ledger-picker input{position:absolute;opacity:0;width:1px!important;height:1px!important}.ledger-picker>label:has(input:checked){border-color:var(--planner-green);box-shadow:inset 0 0 0 1px var(--planner-green);background:#edf2e8}.ledger-picker>label:has(input:focus-visible){outline:2px solid #c9e568;outline-offset:2px}.ledger-picker strong,.ledger-picker small{display:block}.ledger-picker strong{font-size:.78rem;margin-top:9px;color:var(--planner-ink)}.ledger-picker small{font-size:.68rem;line-height:1.35;color:#68746d;margin-top:3px}.ledger-plan{position:relative;display:grid;place-items:center;height:76px;background:#e4eadf;border:1px solid #a6b4aa;overflow:hidden}.ledger-plan b{font-size:.72rem;color:#40554b}.ledger-plan i{position:absolute;background:#173f33;color:#fff;font:600 .59rem/1 'Segoe UI',sans-serif;text-align:center;text-transform:uppercase;letter-spacing:.05em}.ledger-north i{left:0;right:0;top:0;padding:7px 2px}.ledger-north b{padding-top:20px}.ledger-south i{left:0;right:0;bottom:0;padding:7px 2px}.ledger-south b{padding-bottom:20px}.ledger-west i{top:0;bottom:0;left:0;width:27px;writing-mode:vertical-rl;transform:rotate(180deg);padding:4px 0}.ledger-west b{padding-left:25px}.ledger-east i{top:0;bottom:0;right:0;width:27px;writing-mode:vertical-rl;padding:4px 0}.ledger-east b{padding-right:25px}.ledger-none{border-style:dashed}.ledger-none i{top:5px;left:5px;right:5px;padding:5px;background:#68746d}.ledger-none b{padding-top:22px}
@media(max-width:1000px){.ledger-picker{grid-template-columns:repeat(2,minmax(130px,1fr))}}
@media(max-width:500px){.ledger-picker{grid-template-columns:1fr 1fr}.ledger-picker>label:last-child{grid-column:1/-1}}
.placement-field{margin-top:12px!important}.placement-picker{display:grid;grid-template-columns:repeat(5,minmax(100px,1fr));gap:9px;margin-top:9px}.door-picker{grid-template-columns:repeat(4,minmax(110px,1fr))}.placement-picker>label{position:relative;margin:0;padding:10px;border:1px solid #c6cec7;background:#fbfaf6;border-radius:4px;cursor:pointer;font-weight:400}.placement-picker input{position:absolute;opacity:0;width:1px!important;height:1px!important}.placement-picker>label:has(input:checked){border-color:var(--planner-green);box-shadow:inset 0 0 0 1px var(--planner-green);background:#edf2e8}.placement-picker>label:has(input:focus-visible){outline:2px solid #c9e568;outline-offset:2px}.placement-picker strong{display:block;font-size:.75rem;margin-top:7px;color:var(--planner-ink)}.mini-plan{position:relative;display:grid;place-items:center;height:64px;background:#e4eadf;border:4px solid #173f33;border-bottom-color:#a6b4aa;overflow:hidden}.mini-plan b{font-size:.65rem;color:#52645b}.mini-plan i{position:absolute;background:#c78a54;color:#fff;font:700 .52rem/1 'Segoe UI',sans-serif;padding:5px 4px;top:-4px}.door-back-left i{left:8px}.door-back-centre i{left:50%;transform:translateX(-50%)}.door-back-right i{right:8px}.mini-none{border:1px dashed #9daaa1}.opening-picker .mini-plan{border:1px solid #a6b4aa}.opening-picker .mini-plan i{width:27px;height:20px;padding:0;background:#fff;border:2px dashed #946344;top:auto}.opening-front-left i{left:-2px;bottom:-2px}.opening-front-centre i{left:50%;bottom:-2px;transform:translateX(-50%)}.opening-front-right i{right:-2px;bottom:-2px}.opening-inside i{left:50%;top:50%;transform:translate(-50%,-50%)}.detail-input{display:block;margin:12px 0 0;font-size:.76rem!important;font-weight:600!important}.detail-input input{max-width:240px;margin-top:5px!important}.opening-size{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:500px}.opening-size[hidden]{display:none}
@media(max-width:1000px){.placement-picker,.door-picker{grid-template-columns:repeat(2,minmax(130px,1fr))}}
@media(max-width:500px){.placement-picker,.door-picker{grid-template-columns:1fr 1fr}.opening-size{grid-template-columns:1fr}}
.opening-rear-left i{left:-2px;top:-2px}.opening-rear-right i{right:-2px;top:-2px}
.stair-details{margin-top:15px;padding:15px;border-left:3px solid var(--planner-green);background:#f5f6f0}.stair-details[hidden],.parallel-details[hidden]{display:none}.parallel-details{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.support-warning{grid-column:1/-1;padding:12px 14px;background:#f3e9ce;border-left:3px solid #946344;font-size:.8rem;line-height:1.5}.support-warning strong{display:block}.other-opening{padding-top:17px!important;border-top:1px solid #d8ddd6!important}
@media(max-width:600px){.parallel-details{grid-template-columns:1fr}}
.planner-top-actions{display:flex;align-items:center;gap:14px}.planner-link{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;box-sizing:border-box;background:var(--planner-green);color:#fff;border:2px solid var(--planner-green);padding:11px 18px;border-radius:7px;text-decoration:none;font-weight:800;font-size:.94rem;letter-spacing:.01em;box-shadow:0 5px 14px rgba(23,63,51,.22);transition:background .16s,color .16s,transform .16s,box-shadow .16s}.planner-link b{font-size:1.2rem;line-height:1}.planner-link:hover{background:#245542;color:#fff;transform:translateY(-1px);box-shadow:0 7px 18px rgba(23,63,51,.28)}.planner-link:focus-visible{outline:3px solid var(--planner-lime);outline-offset:3px}
@media(max-width:760px){.planner-top-actions{align-items:flex-end}.planner-link{padding:10px 14px;font-size:.88rem}}
.stair-type-picker{display:grid;grid-template-columns:repeat(5,minmax(112px,1fr));gap:9px;margin-top:9px}.stair-type-picker>label{position:relative;margin:0;padding:10px;border:1px solid #c6cec7;background:#fbfaf6;border-radius:4px;cursor:pointer;font-weight:400}.stair-type-picker input{position:absolute;opacity:0;width:1px!important;height:1px!important}.stair-type-picker>label:has(input:checked){border-color:var(--planner-green);box-shadow:inset 0 0 0 1px var(--planner-green);background:#edf2e8}.stair-type-picker>label:has(input:focus-visible){outline:2px solid #c9e568;outline-offset:2px}.stair-type-picker strong,.stair-type-picker small{display:block}.stair-type-picker strong{font-size:.75rem;line-height:1.3;margin-top:8px}.stair-type-picker small{font-size:.66rem;color:#68746d;margin-top:3px}.stair-type-plan{position:relative;display:grid;place-items:center;height:76px;background:#e4eadf;border:1px solid #a6b4aa}.stair-type-plan b{font-size:.68rem;color:#52645b}.stair-type-plan i,.stair-type-plan em{position:absolute;display:block;background:repeating-linear-gradient(90deg,#e7d2ad 0 8px,#946344 9px 10px);border:1px solid #946344}.stair-left i{width:48px;height:25px;left:-18px;bottom:8px}.stair-right i{width:48px;height:25px;right:-18px;bottom:8px}.stair-front i{width:25px;height:48px;bottom:-18px;left:50%;transform:translateX(-50%);background:repeating-linear-gradient(0deg,#e7d2ad 0 8px,#946344 9px 10px)}.stair-parallel i{width:32px;height:28px;bottom:-2px;left:18px;background:#e7d2ad}.stair-parallel em{width:55px;height:25px;bottom:-18px;left:44px}.stair-none{border-style:dashed}.subquestion-title{font-weight:700;font-size:.82rem;margin:2px 0 9px}.choice-grid.three{grid-template-columns:repeat(3,1fr)}.stair-measures{display:grid;grid-template-columns:1fr 1fr;gap:12px}.front-position{margin-bottom:12px}.front-position[hidden]{display:none}
@media(max-width:1050px){.stair-type-picker{grid-template-columns:repeat(2,minmax(130px,1fr))}}
@media(max-width:600px){.stair-type-picker,.stair-measures,.choice-grid.three{grid-template-columns:1fr 1fr}.stair-type-picker>label:last-child{grid-column:1/-1}}
.material-calculations{display:grid;gap:8px;margin:16px 0 24px}.material-calculations details{border:1px solid #d5dbd3;background:#faf9f5;border-radius:4px}.material-calculations summary{display:flex;justify-content:space-between;gap:16px;padding:13px 15px;cursor:pointer;font-size:.83rem}.material-calculations summary span{font-weight:700}.material-calculations summary strong{color:var(--planner-green);text-align:right}.material-calculations details>div{padding:0 15px 15px;border-top:1px solid #d5dbd3}.material-calculations p{font-size:.82rem}.material-calculations dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}.material-calculations dl div{background:#fff;padding:9px}.material-calculations dt{font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;color:#718078}.material-calculations dd{margin:3px 0 0;font-size:.78rem}@media(max-width:600px){.material-calculations summary{display:block}.material-calculations summary strong{display:block;text-align:left;margin-top:4px}.material-calculations dl{grid-template-columns:1fr}}
/* Stair diagrams: the green deck is inset; every tan stair/landing stays outside it. */
.stair-type-plan{height:108px;background:#fff;overflow:hidden}.stair-type-plan b{position:absolute;left:28px;right:28px;top:10px;bottom:28px;display:grid;place-items:center;background:#e4eadf;border:1px solid #8fa096;color:#52645b}.stair-type-plan i,.stair-type-plan em{z-index:2}.stair-left i{left:2px;top:52px;width:26px;height:24px}.stair-right i{right:2px;top:52px;width:26px;height:24px}.stair-front i{left:50%;bottom:2px;width:24px;height:26px;transform:translateX(-50%)}.stair-parallel i{left:calc(50% - 28px);bottom:6px;width:28px;height:22px}.stair-parallel em{left:50%;bottom:6px;width:48px;height:22px}.stair-left-parallel i{left:4px;top:54px;width:24px;height:24px;background:#e7d2ad}.stair-left-parallel em{left:4px;top:9px;width:22px;height:45px;background:repeating-linear-gradient(0deg,#e7d2ad 0 8px,#946344 9px 10px)}.stair-right-parallel i{right:4px;top:54px;width:24px;height:24px;background:#e7d2ad}.stair-right-parallel em{right:4px;top:9px;width:22px;height:45px;background:repeating-linear-gradient(0deg,#e7d2ad 0 8px,#946344 9px 10px)}.stair-none b{left:18px;right:18px;bottom:10px}.stair-none{border-style:dashed}
.planner-seo-copy{max-width:1180px;margin:28px auto 64px;padding:34px clamp(20px,4vw,48px);background:#f4f1e8;border:1px solid #d8d2c2;border-radius:18px;color:#173f33}.planner-seo-copy h2{font-size:clamp(1.7rem,3vw,2.5rem);margin:.25rem 0 1rem}.planner-seo-copy h3{font-size:1.05rem;margin:0 0 .5rem}.planner-seo-copy p{line-height:1.65}.planner-seo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:24px}.planner-seo-grid>div{background:#fff;padding:20px;border-radius:12px;border:1px solid #ded8c9}@media(max-width:760px){.planner-seo-grid{grid-template-columns:1fr}}
.quote-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:stretch;margin-top:16px}.quote-actions .calculate-button,.quote-actions .planner-link{width:auto;min-width:240px;margin:0}.secondary-quote-link{background:#fff;color:var(--planner-green)}.secondary-quote-link:hover{background:#edf2e8;color:var(--planner-green)}@media(max-width:600px){.quote-actions .calculate-button,.quote-actions .planner-link{width:100%}}
