:root{--planner-ink:#252522;--planner-paper:#f5f2ec;--planner-gold:#b49361;--planner-line:#d9d3ca;--planner-white:#fff}
.planner-page{background:var(--planner-paper);color:var(--planner-ink)}
.planner-shell{max-width:1440px;margin:0 auto;padding:42px 34px 86px}
.planner-intro{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:30px}
.planner-intro h1{font-size:clamp(2.2rem,4.2vw,4.7rem);line-height:.96;letter-spacing:-.045em;max-width:820px;margin:.25rem 0 0}
.planner-intro__note{max-width:390px;font-size:1rem;line-height:1.6;margin:0;color:#5d5a55}
.planner-kicker{display:flex;align-items:center;gap:10px;text-transform:uppercase;letter-spacing:.16em;font-size:.78rem;font-weight:700;color:#6b5a42;margin:0}
.planner-kicker:before{content:"";width:34px;height:1px;background:var(--planner-gold)}
.planner-grid{display:grid;grid-template-columns:minmax(320px,440px) minmax(0,1fr);background:#fff;min-height:680px;box-shadow:0 18px 60px rgba(34,31,27,.09)}
.planner-controls{padding:34px;border-right:1px solid var(--planner-line)}
.planner-step{padding-bottom:28px;margin-bottom:27px;border-bottom:1px solid var(--planner-line)}
.planner-step:last-of-type{border:0;margin-bottom:12px}
.planner-step__title{display:flex;align-items:center;gap:12px;margin:0 0 16px;font-size:1.15rem}
.planner-step__number{display:grid;place-items:center;width:29px;height:29px;border:1px solid var(--planner-ink);border-radius:50%;font-size:.78rem;font-weight:700}
.upload-drop{position:relative;display:grid;place-items:center;text-align:center;min-height:154px;border:1px dashed #a9a298;background:#faf9f6;padding:22px;cursor:pointer;transition:.2s ease}
.upload-drop:hover,.upload-drop:focus-within,.upload-drop.is-filled{border-color:var(--planner-gold);background:#fbf7ef}
.upload-drop--compact{min-height:86px;margin-top:12px;padding:16px 20px}
.upload-drop--compact strong{font-size:.92rem}
.upload-drop input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.upload-icon{width:42px;height:42px;margin-bottom:9px;color:#5b5144}
.upload-drop strong,.upload-drop small{display:block}.upload-drop small{margin-top:5px;color:#736e67}
.finish-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.finish-choice{border:0;background:transparent;padding:0;cursor:pointer;text-align:center;color:inherit;font:inherit}
.finish-choice img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border:2px solid transparent;outline:1px solid var(--planner-line);outline-offset:1px;transition:.18s}
.finish-choice span{display:block;font-size:.72rem;line-height:1.2;margin-top:7px;color:#5f5b55}
.finish-choice:hover img,.finish-choice[aria-pressed="true"] img{border-color:#fff;outline:3px solid var(--planner-ink)}
.finish-choice[aria-pressed="true"] span{font-weight:700;color:var(--planner-ink)}
.selected-finish{display:flex;gap:15px;align-items:center;background:#f5f2ec;padding:13px;margin-top:16px}
.selected-finish img{width:53px;height:70px;object-fit:cover;background:#ddd}
.selected-finish strong,.selected-finish span{display:block}.selected-finish span{color:#6c675f;font-size:.86rem;margin-top:2px}
.planner-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.planner-fields label,.planner-fields__wide{display:block;min-width:0;grid-column:auto}
.planner-fields label>span{display:block;margin:0 0 7px;font-size:.8rem;line-height:1.35;font-weight:700;color:#55514b}
.planner-fields input,.planner-fields select,.planner-fields textarea{display:block;width:100%;min-height:46px;border:1px solid #cbc5bc;background:#fff;color:var(--planner-ink);padding:11px 12px;font:inherit;font-size:.88rem;line-height:1.4;border-radius:0;box-sizing:border-box}
.planner-fields textarea{resize:vertical;line-height:1.45}.planner-fields input:focus,.planner-fields select:focus,.planner-fields textarea:focus{outline:2px solid var(--planner-gold);outline-offset:1px;border-color:var(--planner-gold)}
.planner-generate{width:100%;border:0;background:#262622;color:#fff;padding:17px 22px;min-height:57px;font:inherit;font-weight:700;letter-spacing:.02em;cursor:pointer;transition:.2s}
.planner-generate:hover{background:#a98552}.planner-generate:disabled{cursor:not-allowed;opacity:.55}
.planner-consent{display:flex;align-items:flex-start;gap:10px;margin:0 0 14px;font-size:.82rem;line-height:1.45;color:#5f5b55;cursor:pointer}.planner-consent input{width:18px;height:18px;margin:1px 0 0;flex:0 0 auto;accent-color:#262622}
.planner-fineprint{font-size:.75rem;line-height:1.5;color:#77716a;margin:13px 0 0}
.planner-stage{position:relative;min-width:0;background:#dad6ce;overflow:hidden}
.stage-empty,.stage-loading{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:45px;z-index:2;background:linear-gradient(135deg,#ddd8cf,#cfc9be)}
.stage-empty__inner{max-width:430px}.stage-empty svg{width:64px;height:64px;margin-bottom:18px;color:#645e55}
.stage-empty h2{font-size:1.9rem;margin:0 0 10px}.stage-empty p{line-height:1.6;color:#625e57;margin:0}
.stage-photo,.stage-result{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.stage-photo{filter:saturate(.88)}
.stage-plan{object-fit:contain;background:#eeeae3;padding:34px;box-sizing:border-box}
.stage-result{clip-path:inset(0 0 0 var(--reveal,50%));transition:clip-path .05s linear}
.compare-control{position:absolute;inset:0;z-index:3;display:none;pointer-events:none}
.compare-control.is-visible{display:block}.compare-control input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;pointer-events:auto}
.compare-line{position:absolute;top:0;bottom:0;left:var(--reveal,50%);width:2px;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.15);transform:translateX(-1px)}
.compare-handle{position:absolute;left:var(--reveal,50%);top:50%;width:48px;height:48px;border-radius:50%;background:#fff;transform:translate(-50%,-50%);display:grid;place-items:center;box-shadow:0 3px 16px rgba(0,0,0,.24);font-weight:800;letter-spacing:-.25em;padding-right:.25em}
.stage-label{position:absolute;top:20px;z-index:4;background:rgba(31,31,28,.86);color:#fff;padding:8px 12px;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.stage-label.before{left:20px}.stage-label.after{right:20px;display:none}.stage-label.after.is-visible{display:block}
.stage-loading{display:none;background:rgba(245,242,236,.94)}.stage-loading.is-visible{display:grid}.stage-loading__inner{max-width:420px}.stage-loading h2{font-size:1.8rem;margin:20px 0 8px}.stage-loading p{margin:0;color:#666159}.planner-spinner{width:54px;height:54px;margin:auto;border:3px solid #d6cfc4;border-top-color:#272724;border-radius:50%;animation:planner-spin .9s linear infinite}@keyframes planner-spin{to{transform:rotate(360deg)}}
.result-actions{position:absolute;right:22px;bottom:22px;z-index:5;display:none;gap:8px}.result-actions.is-visible{display:flex}.result-actions button,.result-actions a{border:0;background:#fff;color:#252522;padding:11px 14px;text-decoration:none;font:inherit;font-size:.82rem;font-weight:700;cursor:pointer;box-shadow:0 3px 14px rgba(0,0,0,.16)}
.planner-toast{display:none;margin-top:14px;padding:12px 14px;background:#f7e8e4;color:#7d3023;font-size:.86rem}.planner-toast.is-visible{display:block}
.trial-note{max-width:1440px;margin:0 auto;padding:0 34px 70px;display:grid;grid-template-columns:1fr 1fr;gap:34px}.trial-note article{border-top:1px solid #beb7ad;padding-top:24px}.trial-note h2{font-size:1.45rem;margin:0 0 9px}.trial-note p{line-height:1.65;color:#5f5b55;margin:0}
@media(max-width:980px){.planner-intro{display:block}.planner-intro__note{margin-top:18px}.planner-grid{grid-template-columns:1fr}.planner-controls{border-right:0}.planner-stage{min-height:620px}.trial-note{grid-template-columns:1fr}}
@media(max-width:600px){.planner-shell{padding:28px 16px 60px}.planner-controls{padding:23px 18px}.finish-grid{grid-template-columns:repeat(3,1fr)}.planner-fields{grid-template-columns:1fr}.planner-fields__wide{grid-column:auto}.planner-stage{min-height:510px}.stage-plan{padding:20px}.trial-note{padding:0 16px 55px}.result-actions{left:14px;right:14px;bottom:14px}.result-actions button,.result-actions a{flex:1;text-align:center}.stage-label{top:12px}.stage-label.before{left:12px}.stage-label.after{right:12px}}
