.planner-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px 24px;padding:14px 0 18px}.planner-head h1{font-size:clamp(40px,4.4vw,64px)}.planner-head .lead{max-width:38em;font-size:17px}.planner{--planner-h:clamp(520px,calc(100dvh - 110px),1000px);display:grid;grid-template-columns:minmax(0,1fr) 460px;border-block:1px solid var(--color-charcoal);background:var(--color-bone)}.planner .stage{position:relative;height:var(--planner-h);overflow:hidden;background:#eae4d8}.planner .stage canvas:focus-visible{outline:2px solid var(--color-charcoal);outline-offset:-4px}.planner .stage.real{background:#e4ddd0}.planner .stage.real:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 58%,rgba(38,36,32,.16) 100%)}.planner .stage-loading{inset:0;justify-content:center;margin:0;color:var(--color-ink-2)}.planner .stage-loading,.planner .stage-tools{position:absolute;display:flex;align-items:center}.planner .stage-tools{top:14px;left:14px;right:14px;flex-wrap:wrap;gap:10px;pointer-events:none}.planner .stage-tools>*{pointer-events:auto}.planner .tool-seg{display:inline-flex;overflow:hidden;border:1px solid var(--color-line);border-radius:4px;background:rgba(245,241,232,.92)}.planner .tool-seg button{min-height:44px;padding:0 13px;border:0;background:transparent;color:var(--color-ink-2);font-size:14px;font-weight:500}.planner .tool-seg button[aria-pressed=true]{background:var(--color-charcoal);color:var(--color-bone)}.planner .tool-toggle{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:0 12px;border:1px solid var(--color-line);border-radius:4px;background:rgba(245,241,232,.92);font-size:14px;font-weight:500;cursor:pointer;user-select:none}.planner .tool-toggle input{appearance:none;-webkit-appearance:none;position:relative;flex:none;width:30px;height:18px;margin:0;border-radius:9px;background:var(--color-ink-3);cursor:pointer;transition:background .2s}.planner .tool-toggle input:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--color-bone);transition:transform .2s}.planner .tool-toggle input:checked{background:var(--color-charcoal)}.planner .tool-toggle input:checked:after{transform:translateX(12px)}.planner .stage-badge,.planner .stage-hint{position:absolute;bottom:12px;margin:0;padding:4px 8px;border-radius:3px;background:rgba(245,241,232,.86);color:var(--color-ink-2);font-size:13px;pointer-events:none}.planner .stage-hint{left:14px}.planner.full{grid-template-columns:minmax(0,1fr)}.planner .panel[hidden]{display:none}.planner .tool-panel{min-height:44px;margin-left:auto;padding:0 14px;border:1px solid var(--color-charcoal);border-radius:4px;background:rgba(245,241,232,.92);color:var(--color-charcoal);font-size:14px;font-weight:500}.planner .tool-panel:hover{background:var(--color-bone)}.planner .stage-price{position:absolute;right:14px;bottom:12px;display:flex;align-items:center;gap:14px;padding:6px 6px 6px 14px;border:1px solid var(--color-line);border-radius:4px;background:rgba(245,241,232,.95);font-size:17px;font-weight:600}.planner .stage-price button{min-height:40px;padding:0 14px;border:0;border-radius:3px;background:var(--color-charcoal);color:var(--color-bone);font-size:14px;font-weight:500}.planner .scroll-hint{position:relative;z-index:1;height:44px;margin:-44px 0 0;padding:18px 20px 0;background:linear-gradient(to bottom,rgba(245,241,232,0),var(--color-bone) 70%);color:var(--color-ink-2);font-size:13px;font-weight:500;text-align:center;pointer-events:none}.planner .panel-other{margin-top:28px;padding-top:14px;border-top:1px solid var(--color-line);color:var(--color-ink-3);font-size:13px}.planner .panel-other a{color:inherit;text-decoration:underline;text-decoration-color:var(--color-line);text-underline-offset:3px}.planner .est-details>p{margin:4px 0 2px}.planner .est-details tr.extra td{color:var(--color-ink-2);border-bottom:0}.planner .stage-badge{right:14px}.planner .panel{display:flex;flex-direction:column;min-height:0;height:var(--planner-h);border-left:1px solid var(--color-charcoal)}.planner .panel-scroll{flex:1;min-height:0;overflow:auto;padding:18px 24px 24px}.planner .start{padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--color-line)}.planner .presets{display:flex;align-items:center;gap:10px;margin-top:14px}.planner .check.detail{align-items:flex-start;padding:6px 0;font-weight:500}.planner .check.detail input{margin-top:2px}.planner .check.detail .help{display:inline-block;margin-top:2px;font-weight:400}.planner .presets p{flex:none;margin:0;color:var(--color-ink-3);font-size:13.5px}.planner .presets .row{min-width:0;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}.planner .presets .row::-webkit-scrollbar{display:none}.planner .presets .chip{flex:none}.planner .chip{min-height:44px;padding:0 14px;border:1px solid var(--color-line);border-radius:4px;background:transparent;font-size:15px}.planner .chip:hover{border-color:var(--color-charcoal)}.planner .steps{position:sticky;top:-18px;z-index:2;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);margin-top:0;background:var(--color-bone);border-bottom:1px solid var(--color-line)}.planner .steps button{display:flex;align-items:baseline;justify-content:center;gap:5px;width:100%;min-height:48px;padding:8px 2px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--color-ink-3);font-size:15px;font-weight:500;line-height:1.2;white-space:nowrap}.planner .steps button b{font-family:var(--font-serif);font-size:18px;font-weight:600;line-height:1;color:inherit}.planner .steps button[aria-selected=true]{border-bottom-color:var(--color-charcoal);color:var(--color-charcoal)}.planner .step-body{padding-top:18px}.planner .ctl{margin-bottom:20px}.planner .ctl-label{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;font-size:15.5px;font-weight:500}.planner .ctl-label output{font-weight:600;font-variant-numeric:tabular-nums}.planner .help{margin-top:6px;color:var(--color-ink-3);font-size:13.5px}.planner .seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;overflow:hidden;border:1px solid var(--color-line);border-radius:4px}.planner .seg button{min-height:48px;padding:6px 8px;border:0;border-right:1px solid var(--color-line);background:transparent;color:var(--color-ink-2);font-size:15px;font-weight:500}.planner .seg button:last-child{border-right:0}.planner .seg button[aria-pressed=true]{background:var(--color-charcoal);color:var(--color-bone)}.planner .seg.icons button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px 8px}.planner .seg.icons svg{width:40px;height:30px}.planner input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:28px;margin:0;background:transparent;cursor:pointer}.planner input[type=range]::-webkit-slider-runnable-track{height:2px;background:var(--color-charcoal)}.planner input[type=range]::-moz-range-track{height:2px;background:var(--color-charcoal)}.planner input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;margin-top:-9px;border:2px solid var(--color-charcoal);border-radius:50%;background:var(--color-bone)}.planner input[type=range]::-moz-range-thumb{width:16px;height:16px;border:2px solid var(--color-charcoal);border-radius:50%;background:var(--color-bone)}.planner .swatches{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.planner .swatches.three{grid-template-columns:repeat(3,1fr)}.planner .type-pick{margin:0}.planner .type-pick .seg.icons button{flex-direction:row;gap:10px;padding:8px}.planner .type-pick .seg.icons svg{width:30px;height:22px}.planner .link-btn,.planner .type-pick .help a{color:inherit;text-decoration:underline;text-decoration-color:var(--color-line);text-underline-offset:3px}.planner .link-btn{padding:0;border:0;background:none;font:inherit;cursor:pointer}.planner .swatch{padding:0;border:0;background:transparent;color:var(--color-ink-2);font-size:13.5px;line-height:1.25;text-align:left}.planner .swatch i{display:block;aspect-ratio:1/1;margin-bottom:6px;border-radius:3px;background-size:cover;background-position:50%;box-shadow:inset 0 0 0 1px rgba(38,36,32,.1)}.planner .swatch[aria-pressed=true]{color:var(--color-charcoal);font-weight:500}.planner .swatch[aria-pressed=true] i{outline:2px solid var(--color-charcoal);outline-offset:2px}.planner .paints{display:flex;flex-wrap:wrap;gap:10px}.planner .paint{width:44px;height:44px;border:0;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(38,36,32,.15)}.planner .paint[aria-pressed=true]{outline:2px solid var(--color-charcoal);outline-offset:3px}.planner .stepper{display:inline-flex;align-items:center;border:1px solid var(--color-line);border-radius:4px}.planner .stepper button{width:44px;height:44px;border:0;background:transparent;font-size:20px}.planner .stepper button:disabled{opacity:.35;cursor:not-allowed}.planner .stepper output{min-width:34px;text-align:center;font-weight:600;font-variant-numeric:tabular-nums}.planner .check{display:flex;align-items:center;gap:10px;min-height:44px;font-size:14.5px;font-weight:500;cursor:pointer}.planner .check input{width:20px;height:20px;accent-color:var(--color-charcoal)}.planner .note-inline{margin-top:8px;padding:8px 10px;border-radius:3px;background:var(--color-bone-2);color:var(--color-ink-2);font-size:13px}.planner .step-nav{position:sticky;bottom:-24px;z-index:3;display:flex;justify-content:space-between;align-items:center;gap:10px;margin:20px -24px -24px;padding:12px 24px 16px;border-top:1px solid var(--color-line);background:var(--color-bone)}.planner .step-nav>.btn:last-child{flex:1;min-height:50px;font-size:15.5px}.planner .nav-hint{position:absolute;left:0;right:0;bottom:100%;padding:18px 24px 6px;background:linear-gradient(to bottom,rgba(245,241,232,0),var(--color-bone) 70%);color:var(--color-ink-2);font-size:13px;font-weight:500;text-align:center;pointer-events:none}.planner .estimate{padding:12px 24px;border-top:1px solid var(--color-charcoal);background:var(--color-bone)}.planner .est-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.planner .est-row .btn{flex:none;min-height:44px;padding:0 16px}.planner .est-label{color:var(--color-ink-3);font-size:13.5px}.planner .est-range{margin-top:1px;font-size:23px;font-weight:600;line-height:1.2;letter-spacing:-.01em}.planner .est-note{margin-top:4px;color:var(--color-ink-3);font-size:12.5px;line-height:1.45}.planner .est-details{margin-top:2px;font-size:13.5px}.planner .est-details[open]{max-height:36vh;overflow:auto}.planner .est-details summary{display:flex;align-items:center;min-height:44px;font-weight:500;cursor:pointer;text-decoration:underline;text-decoration-color:var(--color-line);text-underline-offset:3px}.planner .est-details table{width:100%;margin-top:6px;border-collapse:collapse}.planner .est-details td{padding:5px 0;border-bottom:1px solid var(--color-line);vertical-align:top}.planner .est-details td.r{padding-left:10px;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.planner .est-details tr.total td{border-bottom:0;font-weight:600}.planner .est-foot{margin-top:8px;color:var(--color-ink-3);font-size:12.5px;text-align:center}@media (max-width:520px){.planner .stage-tools{top:10px;left:10px;right:10px;gap:6px}.planner .tool-seg button{padding:0 10px;font-size:13px}.planner .tool-toggle{gap:6px;padding:0 8px;font-size:13px}.planner .tool-toggle input{width:26px;height:16px}.planner .tool-toggle input:after{width:12px;height:12px}.planner .tool-toggle input:checked:after{transform:translateX(10px)}.planner .hide-sm{display:none}.planner .steps button{gap:3px;font-size:13.5px}.planner .steps button b{font-size:15px}}@media (max-width:980px){.planner{grid-template-columns:minmax(0,1fr)}.planner .stage{height:56vh;min-height:340px}.planner .panel{height:auto;border-left:0;border-top:1px solid var(--color-charcoal)}.planner .panel-scroll{overflow:visible}.planner .scroll-hint{display:none}.planner .steps{position:static}.planner .step-nav{position:static;margin:20px 0 0;padding:12px 0 0}.planner.full .stage{height:80vh}.planner .tool-panel{margin-left:0}.planner .estimate{position:sticky;bottom:0;z-index:5;padding-bottom:calc(16px + env(safe-area-inset-bottom, 0px));box-shadow:0 -8px 24px rgba(38,36,32,.08)}.planner .est-details{display:none}}@media (min-width:1600px){.planner{grid-template-columns:minmax(0,1fr) 520px}}