:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#1c282b;background:#edf0ed;font-size:16px;font-synthesis:none;--ink:#172024;--muted:#65716f;--accent:#c7ec9d;--line:#dde3df}*{box-sizing:border-box}body{margin:0}button,a,input,summary{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:0}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,canvas:focus-visible{outline:3px solid #648d2d;outline-offset:3px}button:disabled{opacity:.4;cursor:default}button{min-height:44px}a{color:inherit}header{height:86px;background:#fafbf8;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;gap:24px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:22px;font-weight:650;letter-spacing:-.7px}.brand-icon{background:var(--ink);color:var(--accent);width:43px;height:43px;border-radius:9px;display:grid;place-items:center;font-size:16px;letter-spacing:-1px}.brand small{display:block;font-size:10px;letter-spacing:2px;font-weight:550;color:var(--muted);margin-top:3px}nav{display:flex;background:#e9eeea;border-radius:8px;padding:4px;gap:3px}.mode{border-radius:6px;padding:0 23px;background:transparent;font-size:14px;font-weight:600}.mode.active{background:var(--ink);color:#fff}.header-note{font-size:14px;color:var(--muted)}main{display:grid;grid-template-columns:minmax(0,1fr) 370px;align-items:start}.viewport{height:calc(100dvh - 86px);min-height:570px;position:sticky;top:0;overflow:hidden;background:radial-gradient(ellipse at 50% 38%,#f0f2ee 0%,#d6ded8 100%)}#canvas-wrap{position:absolute;inset:0}canvas{display:block;width:100%;height:100%;touch-action:none}.scene-title{position:absolute;left:32px;top:30px;z-index:1;pointer-events:none}.eyebrow{display:block;font-size:12px;font-weight:650;letter-spacing:1.7px;color:#687773}.scene-title h1{font-size:clamp(23px,2.5vw,38px);line-height:1.1;letter-spacing:-1.4px;margin:10px 0}.scene-title p{font-size:14px;color:#65716f;margin:0}.view-tools{position:absolute;left:50%;bottom:58px;transform:translateX(-50%);display:flex;gap:3px;padding:4px;background:#fbfcf8e8;border:1px solid #ffffff90;border-radius:9px;backdrop-filter:blur(8px);box-shadow:0 6px 25px #1720240b}.view-tools button{background:transparent;border-radius:5px;padding:0 16px;font-size:14px;min-height:38px}.view-tools button.selected{background:#e1e9dd}.scene-footer{position:absolute;bottom:23px;left:30px;right:30px;display:flex;justify-content:space-between;font-size:12px;color:#65716f;pointer-events:none}#loading{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:14px 22px;border-radius:9px;background:#fff}#webgl-error{position:absolute;top:45%;left:15%;right:15%;padding:22px;background:white;border-radius:10px}.controls{background:#fafbf8;min-height:calc(100dvh - 86px);border-left:1px solid var(--line);padding:29px 25px 10px}.control-section{margin-bottom:28px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.section-heading>span:last-child:not(.eyebrow){font-size:12px;color:var(--muted)}.segments{display:grid;grid-template-columns:1fr 1fr;gap:9px}.segments button{border:1px solid #dbe1da;border-radius:8px;display:flex;flex-direction:column;align-items:flex-start;padding:16px;background:transparent}.segments button.active{border-color:#263b2b;background:#eaf3df}.segments strong{font-size:25px;font-weight:550;letter-spacing:-1px}.segments span{margin-top:7px;font-size:12px;color:var(--muted)}output{font-size:27px;letter-spacing:-1px;font-variant-numeric:tabular-nums}input[type=range]{width:100%;height:28px;accent-color:#273e2e;cursor:pointer;margin:0}.range-labels{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.presets{display:flex;gap:8px;margin-top:14px}.presets button{flex:1;border:1px solid var(--line);background:transparent;border-radius:6px;font-size:14px;min-height:38px}.presets button.active{background:#e1e9db;border-color:#adba9f}.hint{font-size:13px;line-height:1.5;color:var(--muted);margin:12px 0 0}.floor-options{display:grid;gap:9px;margin-top:14px}.floor-card{display:flex;align-items:center;gap:13px;padding:12px;text-align:left;background:transparent;border:1px solid var(--line);border-radius:9px}.floor-card.active{border-color:#53684d;background:#f0f5ea}.swatch{width:47px;height:47px;border-radius:5px;flex-shrink:0}.wood{background:#b69062 url('assets/oak-floor.webp') center/150%}.charcoal{background:#373a3c}.floor-card strong{font-size:15px;font-weight:600;display:block}.floor-card small{font-size:12px;color:var(--muted);display:block;margin-top:4px}.check{margin-left:auto;visibility:hidden}.active>.check{visibility:visible}.dot{display:block;width:15px;height:15px;background:#373a3c;border-radius:50%;flex-shrink:0;margin-top:3px}details{border-top:1px solid var(--line)}summary{list-style:none;cursor:pointer;min-height:53px;display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:550;gap:12px}summary::-webkit-details-marker{display:none}summary span{font-size:21px;font-weight:400}details[open] summary span{transform:rotate(45deg)}.detail-body{padding:0 0 20px;font-size:14px;line-height:1.55;color:#51605b}.detail-body p{margin:6px 0 13px}.detail-body a{display:inline-block;color:#38542c;text-underline-offset:3px;margin:6px 0}.step-count{display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:1px;color:var(--muted)}#restart{font-size:12px;letter-spacing:0;background:transparent;text-decoration:underline;color:var(--muted);min-height:35px}progress{width:100%;height:5px;border:0;accent-color:#6d943e;display:block;margin:8px 0 24px}progress::-webkit-progress-bar{background:#e1e7dd;border-radius:5px}progress::-webkit-progress-value{background:#719749;border-radius:5px}#guide-controls h2{font-size:26px;line-height:1.15;letter-spacing:-.7px;margin:0 0 16px}#step-description{font-size:15px;line-height:1.6;color:#5c6962}#step-spec{font-size:14px;line-height:1.6;background:#ecf1e6;border-radius:7px;padding:13px 15px;margin:18px 0;color:#354831}#step-spec:empty{display:none}.step-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0 27px}.step-buttons button{border:1px solid #cfd8ca;border-radius:7px;background:transparent;padding:13px}.step-buttons .primary{background:var(--ink);color:white;border-color:var(--ink)}#step-overlay{position:absolute;bottom:130px;left:30px;max-width:260px;background:#fafcf1ed;backdrop-filter:blur(8px);padding:15px 18px;border:1px solid #cadcb8;border-radius:8px;pointer-events:none}#step-overlay strong{display:block;font-size:16px;margin:8px 0}#step-overlay>span:last-child{font-size:12px;color:var(--muted)}table{width:100%;border-collapse:collapse;font-size:13px}td,th{padding:10px 4px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{font-size:11px;text-transform:uppercase;letter-spacing:.8px}td:first-child{width:28px}td small{display:block;font-size:11px;color:var(--muted)}.material-title{color:var(--ink);font-size:17px;font-weight:600;margin:15px 0 4px}.price{font-size:20px;letter-spacing:-.6px;color:var(--ink)}[hidden]{display:none!important}@media(min-width:1500px){main{grid-template-columns:1fr 400px}.controls{padding:34px 32px}.scene-title{left:45px;top:38px}}
@media(max-width:850px){header{height:73px;padding:0 17px;gap:12px}.brand{font-size:18px}.brand-icon{width:35px;height:35px;font-size:14px}.brand small{font-size:8px;letter-spacing:1.5px}.header-note{display:none}.mode{padding:0 13px;font-size:13px;min-height:39px}main{display:flex;flex-direction:column}.viewport{position:relative;top:auto;width:100%;height:52dvh;min-height:350px;max-height:620px}.scene-title{left:20px;top:20px}.scene-title h1{font-size:24px;letter-spacing:-.8px;margin:8px 0}.scene-title p{font-size:12px;max-width:270px}.eyebrow{font-size:11px;letter-spacing:1.3px}.controls{width:100%;border-left:0;border-top:1px solid var(--line);min-height:0;padding:22px 20px 24px}.scene-footer{left:20px;right:20px;bottom:14px;font-size:10px}.view-tools{bottom:37px}.view-tools button{font-size:12px;min-height:33px;padding:0 13px}.control-section{margin-bottom:25px}.segments button{padding:14px}.segments strong{font-size:23px}.segments span{font-size:13px}.section-heading>span:last-child:not(.eyebrow){font-size:12px}.floor-options{grid-template-columns:1fr 1fr}.floor-card{padding:10px;gap:9px}.swatch{width:37px;height:42px}.floor-card strong{font-size:14px}.floor-card small{font-size:11px}.floor-card .check{display:none}#step-overlay{left:15px;bottom:90px;max-width:205px;padding:10px 12px}#step-overlay strong{font-size:14px;margin:5px 0}#step-overlay>span:last-child{font-size:11px}#guide-controls h2{font-size:25px}.step-buttons{position:sticky;bottom:0;padding:10px 0;background:#fafbf8;z-index:2}.step-buttons button{min-height:48px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}


.shopping-options{display:grid;gap:10px;margin:15px 0}.shopping-options label{display:flex;gap:9px;align-items:center;font-size:13px}.shopping-options input[type=number]{width:65px;padding:8px;border:1px solid var(--line);border-radius:5px;font:inherit}.shopping-table-wrap{overflow-x:auto}#shop-rows td:first-child{width:32px}#shop-rows td:last-child{white-space:nowrap}#shop-rows a{margin:0;font-size:12px}#shop-rows small{line-height:1.4;margin-top:5px}#shop-cuts{padding-left:18px;font-size:12px}#shop-status{font-size:12px;background:#ecf1e6;padding:10px;border-radius:6px}
@media(max-width:850px){.viewport{position:sticky;top:0;z-index:3;height:45dvh;min-height:300px}.scene-title h1{font-size:21px}.scene-title p{font-size:12px}.controls{position:relative;z-index:2}.building #step-overlay{left:auto;right:12px;bottom:88px;max-width:165px}.building .viewport{height:42dvh;min-height:300px}}
@media(max-width:850px){.building #step-overlay{display:none!important}.building .scene-title h1{font-size:18px}.building .scene-title p{font-size:11px}}


#comment-toggle{position:fixed;right:20px;bottom:max(20px,env(safe-area-inset-bottom));z-index:20;background:var(--ink);color:var(--accent);border-radius:28px;box-shadow:0 5px 22px #17202433;display:flex;align-items:center;gap:9px;padding:12px 18px;font-size:14px;font-weight:600}#comment-panel{position:fixed;right:20px;bottom:82px;width:380px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 110px);overflow:auto;overscroll-behavior:contain;z-index:21;background:#fafbf8;border:1px solid #b8c8ad;border-radius:14px;padding:18px;box-shadow:0 12px 55px #17202433}.comments-heading,.comment-list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.comments-heading h2{font-size:21px;margin:0}.comments-heading button{background:transparent;font-size:28px;min-width:44px}#comment-form label{display:block;font-size:14px;font-weight:600;margin:12px 0 6px}#comment-form input,#comment-form textarea{width:100%;font:inherit;font-size:16px;color:var(--ink);background:white;border:1px solid #bac5bb;border-radius:7px;padding:10px;resize:vertical}#comment-form textarea:focus-visible{outline:3px solid #648d2d;outline-offset:2px}.comment-attachment{margin:12px 0;padding:10px 12px;background:#edf3e6;border-radius:7px;font-size:14px}.comment-attachment>span{display:block;overflow-wrap:anywhere}.comment-attachment>div{display:flex;gap:14px}.comment-attachment button,.comment-list-heading button,#comment-more{background:transparent;color:#38542c;font-size:14px;text-decoration:underline;text-underline-offset:3px;padding:0}#comment-pick-hint{font-size:14px;line-height:1.45;color:#38542c}#comment-submit{width:100%;background:var(--ink);color:white;border-radius:7px;padding:11px;font-size:14px;font-weight:600}#comment-status{font-size:14px;line-height:1.45;margin:10px 0;min-height:20px}#comment-status[data-error=true]{color:#a22f20}.comment-list-heading{border-top:1px solid var(--line);margin-top:15px;padding-top:8px}.comment-list-heading h3{font-size:16px}.comment-card{border-top:1px solid var(--line);padding:13px 0;font-size:14px}.comment-card header{height:auto;background:transparent;border:0;padding:0;gap:8px;align-items:baseline;flex-wrap:wrap}.comment-card time{font-size:12px;color:var(--muted)}.comment-card p{margin:9px 0;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.comment-card .element-link{background:#eaf3df;border:1px solid #cfddc3;text-align:left;padding:7px 10px;border-radius:6px;color:#38542c;font-size:14px;line-height:1.4}.comment-card small{display:block;font-size:12px;color:var(--muted);margin-top:8px}#comment-list>p{font-size:14px;line-height:1.5;color:var(--muted)}.picking-comment #scene{cursor:crosshair}.picking-comment #comment-panel{pointer-events:none}.picking-comment #comment-pick{pointer-events:auto}.picking-comment #comment-form input,.picking-comment #comment-form textarea{opacity:.6}
@media(max-width:850px){#comment-toggle{right:14px;bottom:max(14px,env(safe-area-inset-bottom))}#comment-panel{right:12px;bottom:76px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 96px)}.controls{padding-bottom:90px}.building .step-buttons{bottom:66px}.picking-comment #comment-panel{visibility:hidden}.picking-comment #comment-toggle{background:#38542c;color:#fff}.picking-comment #comment-toggle:after{content:' · Cancel'}}


/* Keep element picking open until the visitor confirms a selection. */
.picking-comment #comment-panel{visibility:hidden}

#comment-picker{position:fixed;right:20px;bottom:82px;z-index:22;width:380px;max-width:calc(100vw - 32px);padding:16px;background:#fafbf8;border:1px solid #b8c8ad;border-radius:12px;box-shadow:0 8px 30px #17202433}

#comment-picker-label{font-size:16px;font-weight:600;line-height:1.4;margin:0;overflow-wrap:anywhere}

#comment-picker .picker-hint{font-size:14px;line-height:1.4;color:var(--muted);margin:8px 0 12px}

#comment-picker>div{display:flex;gap:10px}

#comment-picker button{font-size:14px;border-radius:7px;padding:10px 12px;background:#e1e9db;color:var(--ink)}

#comment-picker-use{flex:1;background:var(--ink)!important;color:white!important}
@media(max-width:850px){#comment-picker{right:12px;bottom:76px;max-width:calc(100vw - 24px)}}


/* Pricing guide */
nav{flex-shrink:0}.price-scopes{display:flex;gap:5px;margin:16px 0}.price-scopes button{flex:1;border:1px solid var(--line);border-radius:6px;background:transparent;font-size:12px;padding:8px}.price-scopes button[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}#pricing-controls h2{font-size:25px;letter-spacing:-.8px;margin:10px 0}.price-summary{display:grid;gap:7px;padding:17px;background:#eaf3df;border-radius:9px;margin:18px 0}.price-summary strong{font-size:24px;letter-spacing:-.7px}.price-summary span{font-size:12px;line-height:1.5}#price-selection{font-size:12px;line-height:1.5;min-height:36px}#price-clear{background:#e1e9db;border-radius:6px;padding:7px 14px;margin:0 0 10px;font-size:13px}.price-item{border:1px solid var(--line);border-radius:8px;padding:11px;margin-bottom:9px}.price-item.selected{border-color:#557a36;background:#edf5e4}.price-item>button{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;width:100%;text-align:left;background:transparent;min-height:40px;padding:0;color:var(--ink)}.price-item strong{font-size:13px;line-height:1.4;font-weight:600}.price-item button span{font-size:14px;white-space:nowrap}.price-item p{font-size:12px;margin:6px 0;color:var(--muted)}.price-item small{display:block;font-size:11px;line-height:1.45;color:var(--muted)}.price-item>a{display:inline-block;margin-top:8px;font-size:12px;color:#38542c}.price-export{display:grid;gap:8px;margin:20px 0}.price-export button{background:var(--ink);color:white;border-radius:6px;padding:10px;font-size:13px}.price-export a{font-size:13px;color:#38542c;padding:8px 0}#price-cart-link{width:100%;padding:11px;margin:10px 0;border:1px solid var(--line);border-radius:6px}#price-save-cart{padding:10px;background:#e1e9db;border-radius:6px}#price-open-cart{display:block;margin:12px 0}#price-cart-status{font-size:12px}.pricing #cut-details,.pricing #materials-details,.pricing #shopping-details{display:none}@media(max-width:850px){header{flex-wrap:wrap;height:auto;min-height:73px;padding-top:12px;padding-bottom:12px}header nav{margin-left:auto}.mode{padding:0 10px;font-size:12px}}
@media(max-width:520px){header nav{width:100%;margin:0}header nav .mode{flex:1}.pricing .viewport{height:48dvh;min-height:310px}}


#wall-color-name{font-size:14px;letter-spacing:0;color:var(--muted)}.wheel-wrap{width:164px;height:164px;flex-shrink:0;position:relative}#wall-wheel{width:100%;height:100%;cursor:crosshair;touch-action:none}.color-fields{flex:1;min-width:0;display:grid;gap:7px}.color-fields label{font-size:12px}.color-fields output{font-size:12px;letter-spacing:0}#wall-hex{font:inherit;font-size:14px;width:100%;padding:9px 7px;border:1px solid #bfcab9;border-radius:5px;background:white}#wall-hex[aria-invalid=true]{border-color:#a33d2f}#wall-color-error{font-size:12px;color:#9a362c}#wall-color-error:empty{display:none}.native-color-label{display:flex;align-items:center;gap:6px;justify-content:space-between}#wall-native-color{width:36px;height:34px;border:1px solid var(--line);padding:2px;background:white;border-radius:5px}@media(max-width:380px){.wheel-wrap{width:148px;height:148px}}
.controls{padding-bottom:85px}


/* The guide keeps the work, instructions and next action together. */
#guide-scene-tools{position:absolute;inset:14px 16px auto;z-index:4;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;pointer-events:none}

#guide-orientation{max-width:60%;padding:9px 12px;border-radius:8px;background:#fafbf8ed;color:#354831;font-size:13px;line-height:1.4;font-weight:600;box-shadow:0 2px 12px #17202408}

#guide-scene-tools>div{display:flex;gap:6px;pointer-events:auto}

#guide-scene-tools button{background:#fafbf8ed;border:1px solid #cbd6c4;border-radius:8px;color:#354831;padding:8px 11px;font-size:12px;min-height:44px}

#guide-scene-tools button[aria-pressed=true]{background:#d7eac3}

#guide-controls{padding-top:0}#guide-controls .step-count{color:#435940;font-size:13px;letter-spacing:0;font-weight:600}

#guide-sections{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 0 18px}

#guide-sections button{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:9px 11px;border:1px solid #dbe1da;border-radius:8px;background:transparent;text-align:left;color:var(--ink)}

#guide-sections button strong{font-size:14px;font-weight:600}#guide-sections button span{font-size:11px;color:var(--muted);line-height:1.3}

#guide-sections button[aria-pressed=true]{border-color:#263b2b;background:#eaf3df}

#guide-jump{background:#edf2e8;border-radius:7px;color:#354831;font-size:13px;padding:0 12px}

#guide-controls progress{margin:8px 0 20px;height:4px}

#step-phase{font-size:11px;color:#587942;letter-spacing:1px;margin-bottom:9px}

#guide-controls h2{font-size:29px;line-height:1.12;letter-spacing:-.8px;margin:0 0 12px;text-wrap:balance}

#step-content:focus{outline:none}#step-description{color:#293a30;font-size:16px;line-height:1.55;margin:0 0 10px}

#step-actions{counter-reset:instruction;list-style:none;margin:0 0 16px;padding:0;display:grid;gap:9px}

#step-actions li{counter-increment:instruction;position:relative;padding-left:28px;font-size:15px;line-height:1.5;color:#51605b}

#step-actions li:before{content:counter(instruction);position:absolute;left:0;top:2px;width:20px;height:20px;display:grid;place-items:center;background:#e9eee3;color:#496333;border-radius:50%;font-size:11px;font-weight:600}

#step-actions:empty{display:none}#step-check{padding:13px 15px;margin:16px 0;background:#edf4e6;border-left:3px solid #79a34d;border-radius:0 8px 8px 0}

#step-check strong{display:block;font-size:12px;color:#3f5c2c}#step-check p{margin:5px 0 0;font-size:14px;line-height:1.45;color:#405039}

#step-detail summary{font-size:13px}#step-spec{background:transparent;padding:0;margin:0 0 10px;color:#354831;font-size:14px;line-height:1.55}#step-tools{font-size:13px}

#guide-next-label{font-size:12px;line-height:1.5;color:#687773;margin:-12px 0 20px}#guide-index label{display:block;font-size:13px;font-weight:600;margin:12px 0 8px}#guide-step-select{font:inherit;font-size:16px;width:100%;min-height:46px;border:1px solid #c4d1bb;border-radius:7px;padding:10px;background:white;color:#293a30}

#guide-index{padding:0 0 16px}#guide-index label{margin-top:0}#guide-index #restart{margin-top:6px;min-height:44px}#guide-angle-value{font-size:16px;float:right;letter-spacing:0}

.building .scene-footer{bottom:14px;left:18px;right:18px}.building .step-buttons button{font-size:15px;font-weight:600;min-height:54px}.building .step-buttons{grid-template-columns:1fr 1.7fr}

.building #comment-panel,.building #comment-picker{bottom:90px}
@media(min-width:851px){.building .controls{padding-top:22px}.building .viewport{min-height:440px}.building #guide-scene-tools{inset:20px 24px auto}.building #guide-orientation{font-size:14px}}
@media(max-width:850px){
 body.building{height:100dvh;overflow:hidden}
 .building>header{height:60px;min-height:60px;padding:8px 12px;flex-wrap:wrap;gap:8px}
 .building .brand{gap:0}.building .brand>span:last-child{display:none}.building .brand-icon{width:32px;height:32px;font-size:12px}
 .building>header nav{width:100%;flex:1 1 100%;margin:0;min-width:0}.building>header .mode{min-width:0;padding:6px 3px;min-height:44px;font-size:12px;white-space:normal}
 /* Same 3D height as Explore set on phones (45% of the screen, at least 300px). */
 .building main{height:calc(100dvh - 60px);display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(300px,45dvh) minmax(0,1fr)}
 .building .viewport{position:relative;top:auto;height:100%;width:100%;min-height:0;max-height:none;z-index:1}
 .building #canvas-wrap{top:0;bottom:0}
 .building .controls{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px 18px calc(108px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;margin-top:-8px;z-index:2;scrollbar-width:thin}
 .building #guide-scene-tools{inset:8px 12px auto;align-items:center}
 .building #guide-orientation{background:transparent;box-shadow:none;border-radius:0;padding:0;max-width:54%;font-size:11px;line-height:1.3}
 .building #guide-scene-tools>div{gap:5px}.building #guide-scene-tools button{font-size:11px;padding:6px 8px;min-height:40px}
 .building .scene-footer{left:14px;right:14px;bottom:15px;font-size:10px;gap:10px}.building #dimensions{white-space:nowrap}.building #view-hint{max-width:64%}
 .building #guide-controls progress{margin:6px 0 14px}.building #guide-controls h2{font-size:25px;margin-bottom:10px}
 .building #step-description{font-size:15px;line-height:1.5}.building #step-actions li{font-size:14px;line-height:1.5}.building #step-actions{gap:8px;margin-bottom:12px}
 .building #step-check{padding:10px 12px;margin:12px 0}.building #step-check p{font-size:13px}
 .building .step-buttons{position:fixed;left:0;right:0;bottom:0;z-index:18;margin:0;padding:12px 18px calc(12px + env(safe-area-inset-bottom));border-top:1px solid #d8e1d1;background:#fafbf8f5;backdrop-filter:blur(12px);gap:10px}
 .building #guide-next-label{margin:12px 0 20px}
 .building .scene-footer{right:66px}
 .building #comment-panel,.building #comment-picker{bottom:90px;max-height:calc(100dvh - 110px)}}
@media(max-width:850px) and (max-height:580px) and (orientation:landscape){
 .building main{grid-template-columns:minmax(0,1fr) minmax(280px,1fr);grid-template-rows:minmax(0,1fr)}
 .building .viewport{min-height:0}.building .controls{margin-top:0;border-radius:0;padding-bottom:100px}
 .building .step-buttons{left:50%;padding:8px 14px calc(8px + env(safe-area-inset-bottom))}.building #guide-controls h2{font-size:22px}
 .building #guide-orientation{font-size:10px}
 .building #guide-focus{display:none}.building #guide-scene-tools button{font-size:10px}}
@media(min-width:851px) and (max-width:1100px){.building #guide-scene-tools{inset:14px 16px auto}.building #guide-orientation{font-size:12px;max-width:48%}}

.step-part-card{padding:12px 14px;background:#f0f2ec;border-radius:8px;margin:12px 0}.step-part-card .eyebrow{font-size:10px;letter-spacing:1px;color:#6a7663;margin-bottom:6px}.step-part-card #step-spec{margin:0;font-size:14px;line-height:1.45;color:#354831}

#guide-cut-link{background:#eaf3df;color:#38542c;text-align:left;border:1px solid #cbdabc;border-radius:7px;padding:10px 12px;font-size:14px;margin:0 0 12px;min-height:44px}
@media(max-width:850px){.building .step-part-card{padding:10px 12px}.building .step-part-card #step-spec{font-size:13px}.building #guide-cut-link{font-size:13px}}

/* Editable pricing and saved configurations */
#price-add-form,#price-configs{font-size:13px}#price-add-form label,#price-configs label{display:block;margin:12px 0 5px}#price-add-form input,#price-add-form textarea,#price-configs input,#price-configs select{width:100%;font:inherit;padding:10px;border:1px solid var(--line);border-radius:6px;background:white}#price-add-form textarea{min-height:80px;resize:vertical}.price-form-pair{display:grid;grid-template-columns:1fr 90px;gap:10px}#price-add-form button,#price-configs button{border-radius:6px;padding:10px 13px;background:var(--ink);color:white;margin:10px 5px 12px 0}#price-config-default{background:#e1e9db!important;color:var(--ink)!important}.price-item>button.price-remove{width:auto;display:inline-block;min-height:34px;margin:6px 0 0 12px;padding:6px 10px;border-radius:5px;background:#f1e8e4;color:#814635;font-size:12px}#price-removed-items>div{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:9px 0;font-size:12px}#price-removed-items button{padding:7px 11px;background:#e1e9db;border-radius:5px;font-size:12px}#price-config-status,#price-add-status{font-size:12px;line-height:1.5}

/* Swipe actions and the add button at the end of the price list. */
.price-item{position:relative;overflow:hidden;padding:0;background:#be4034;--price-offset:0px}.price-item-inner{position:relative;z-index:1;background:#fafbf8;padding:12px;transform:translateX(var(--price-offset));transition:transform .18s ease;touch-action:pan-y}.price-item.selected .price-item-inner{background:#edf5e4}.price-item.swiping .price-item-inner{transition:none}.price-item-inner>button:not(.price-row-actions){display:flex;justify-content:space-between;align-items:flex-start;gap:10px;width:calc(100% - 30px);text-align:left;background:transparent;min-height:40px;padding:0;color:var(--ink)}.price-item-inner>a{display:inline-block;margin-top:8px;font-size:12px;color:#38542c}.price-item-inner .price-row-actions{position:absolute;right:4px;top:5px;background:transparent;width:36px;min-height:40px;font-size:24px;color:#56655c}.price-item>button.price-delete{position:absolute;right:0;top:0;bottom:0;width:88px;min-height:44px;margin:0;border-radius:0;display:flex;justify-content:center;align-items:center;padding:10px;background:#be4034;color:#fff;font-size:13px;font-weight:600;visibility:hidden}.price-item[data-reveal=true]>button.price-delete{visibility:visible}#price-add-open{display:flex;width:100%;align-items:center;justify-content:center;gap:10px;min-height:50px;border-radius:8px;margin:12px 0 20px;background:var(--ink);color:white;font-size:14px;font-weight:600}#price-add-open span{font-size:28px;font-weight:400;line-height:1}.price-add-heading{display:flex;align-items:center;justify-content:space-between}.price-add-heading h3{font-size:18px;margin:8px 0}#price-add-close{font-size:26px;background:transparent;padding:4px 12px}#price-add{padding:15px;border:1px solid var(--line);border-radius:8px;margin:12px 0 20px}@media(prefers-reduced-motion:reduce){.price-item-inner{transition:none}}


/* Compact comments control anchored inside the 3D viewer. */
.viewport #comment-toggle{position:absolute;right:16px;bottom:16px;width:44px;height:44px;min-height:44px;padding:0;display:grid;place-items:center;border-radius:50%;gap:0;font-size:12px}

#comment-count{position:absolute;top:-3px;right:-4px;min-width:18px;padding:2px 4px;border-radius:10px;background:var(--accent);color:var(--ink);font-size:11px;line-height:14px}

#comment-count:empty{display:none}

.picking-comment #comment-toggle:after{content:none}
@media(max-width:850px){.viewport #comment-toggle{right:12px;bottom:12px}}
#guide-config-label{font-size:14px;font-weight:600}#guide-config-action{font-size:13px;text-decoration:underline;text-underline-offset:3px}
/* Persistent estimate total and a compact review layout. */
.pricing .controls{padding-bottom:155px}.price-summary{scroll-margin-top:16px}#price-review{margin-bottom:18px}#price-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:10px 0 18px}#price-metrics>div{padding:10px 6px;border:1px solid var(--line);border-radius:6px}#price-metrics strong{display:block;font-size:16px;font-variant-numeric:tabular-nums;letter-spacing:-.3px}#price-metrics small{display:block;font-size:10px;line-height:1.45;color:var(--muted);margin-top:5px}.price-category{display:grid;grid-template-columns:1fr auto;gap:5px;padding:11px 0;border-bottom:1px solid var(--line);font-size:12px}.price-category strong{font-variant-numeric:tabular-nums}.price-category small{grid-column:1/-1;color:var(--muted);font-size:10px}.price-category-bar{grid-column:1/-1;height:4px;min-width:0;background:#719749;border-radius:3px;margin-top:3px}.price-list-tools{padding:12px;background:#edf1ea;border-radius:8px;margin:12px 0}.price-list-tools label{display:block;font-size:12px;color:#445440}.price-list-tools input[type=search],.price-list-tools select{width:100%;min-height:44px;font:inherit;font-size:13px;border:1px solid #cbd6c4;background:#fafbf8;border-radius:5px;padding:8px;margin-top:5px}.price-tool-pair{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:10px}#price-visible-count{font-size:11px;line-height:1.4;color:#65716f;margin:0}.price-item-inner>button.price-line-details{display:inline-block;width:auto;min-height:44px;background:transparent;padding:5px 8px 5px 0;font-size:12px;color:#38542c}.price-item-inner>a{padding:10px 2px;min-height:44px;margin:0;font-size:12px}.compact-pricing .price-row-note{display:none}.compact-pricing .show-details .price-row-note{display:block}.price-line-math{font-variant-numeric:tabular-nums;font-size:12px!important;color:#3d4d41!important;line-height:1.5}.price-item-inner>button[data-price-item]{gap:12px;min-height:44px}.price-item-inner>button[data-price-item]>strong{flex:1;min-width:0;overflow-wrap:anywhere}.price-item-inner>button[data-price-item]>span{font-variant-numeric:tabular-nums;white-space:nowrap}.price-item-inner .price-row-actions{width:44px;min-height:44px;right:0;top:0}.price-item-inner>button[data-price-item]{width:calc(100% - 34px)}#price-print-report{display:none}

@media(max-width:850px){.pricing .viewport{height:30dvh;min-height:200px;max-height:280px}.pricing .controls{padding:20px 16px calc(155px + env(safe-area-inset-bottom))}.pricing .segments button{padding:11px}.pricing .control-section{margin-bottom:16px}#pricing-controls input:not([type=checkbox]):not([type=range]),#pricing-controls textarea,#pricing-controls select{font-size:16px}.price-scopes{gap:6px}.price-scopes button{font-size:13px;min-height:44px}.price-summary{padding:14px;margin:14px 0}.price-item-inner{padding:11px 12px}.price-item strong{font-size:13px}.price-item button span{font-size:14px}.price-category{font-size:13px}.price-list-tools{padding:12px}.price-list-tools select{padding:8px 4px}.price-item{scroll-margin-bottom:110px}}
@media(max-width:380px){#price-metrics strong{font-size:14px}}
@media print{body.pricing{background:white!important;color:black!important}body.pricing>*{display:none!important}body.pricing>#price-print-report{display:block!important;padding:0;font:11pt Arial,sans-serif}#price-print-report h1{font-size:22pt}#price-print-report h2{font-size:16pt}#price-print-report p{font-size:10pt;line-height:1.5}#price-print-report table{width:100%;border-collapse:collapse;font-size:9pt}#price-print-report th,#price-print-report td{padding:7px;border-bottom:1px solid #ccc;text-align:left}#price-print-report td:first-child{width:55%}#price-print-report tr{break-inside:avoid}#price-print-report thead{display:table-header-group}@page{margin:15mm}}

#price-preview-toggle{display:none}
@media(max-width:850px){.pricing #price-preview-toggle{display:block;position:absolute;left:12px;top:10px;z-index:5;min-height:34px;padding:7px 11px;font-size:12px;border:1px solid #c1cdbb;border-radius:6px;color:#253b26;background:#fafbf8ed}.pricing.price-preview-hidden .viewport{height:54px;min-height:54px;max-height:54px}.pricing.price-preview-hidden .viewport #canvas-wrap,.pricing.price-preview-hidden .viewport .scene-footer,.pricing.price-preview-hidden .viewport #comment-toggle{visibility:hidden}.pricing .price-summary,.pricing .price-item,.pricing #price-add{scroll-margin-top:calc(30dvh + 16px)}.pricing.price-preview-hidden .price-summary,.pricing.price-preview-hidden .price-item,.pricing.price-preview-hidden #price-add{scroll-margin-top:70px}}


#agent-prompt-dialog{width:min(560px,calc(100vw - 32px));border:0;border-radius:12px;padding:22px;color:var(--ink);box-shadow:0 20px 60px #17202440}

#agent-prompt-dialog::backdrop{background:#1720248c}

#agent-prompt-dialog h2{font-size:22px;letter-spacing:-.5px;margin:0 0 8px}

#agent-prompt-dialog p{font-size:14px;line-height:1.5;color:#51605b;margin:0 0 12px}

#agent-prompt-dialog textarea{width:100%;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;padding:12px;border:1px solid var(--line);border-radius:8px;resize:vertical}

#agent-prompt-dialog .primary{margin-top:12px;padding:0 20px;border-radius:7px;background:var(--ink);color:#fff}

.agent-copy{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin:4px 0 8px;padding:0 16px;min-height:46px;border-radius:8px;background:var(--ink);color:#fff;font-size:14px;font-weight:600}

.agent-copy:hover{background:#2a383d}.agent-copy.copied{background:var(--accent);color:var(--ink)}


/* Platform gap sliders (explore, build guide{display:flex;justify-content:space-between;align-items:baseline;margin-top:10px;font-size:14px;font-weight:600}
#figure-scenes strong{font-size:21px}


/* Design panel: the one editor for walls, platform and floor, shared by every mode */
.design{margin:0 0 26px}
.design-head{display:flex;align-items:flex-end;gap:12px;margin-bottom:16px}
.design-head>div{flex:1;min-width:0}
.design-head h2{margin:4px 0 0;font-size:24px;letter-spacing:-.6px;line-height:1.1}
.design-meta{font-size:12px;color:var(--muted);padding-bottom:3px;text-align:right}
.edit-button{min-height:40px;padding:0 18px;border-radius:8px;background:var(--ink);color:#fff;font-size:14px;font-weight:600}
.design-summary{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:10px;background:#fff}
.design-summary li{display:grid;grid-template-columns:16px 70px minmax(0,1fr);align-items:center;gap:10px;padding:11px 14px;font-size:14px;line-height:1.35}
.design-summary li+li{border-top:1px solid var(--line)}
.design-summary strong{font-weight:650}
.design-summary li>span:last-child{color:#3b4a47}
.design-line{display:none;margin:-8px 0 0;font-size:13px;color:#3b4a47}
.dot{width:16px;height:16px;border-radius:50%;border:1px solid #0000002a;background:#fff}
.dot.oak{background:#b69062 url('assets/oak-floor.webp') center/300%}
.dot.empty{border-style:dashed;border-color:#9aa6a2}
#design-summary:not([hidden])+#design-editor:not([hidden]){margin-top:18px}
.design-group{padding:22px 0;border-top:1px solid var(--line)}
.design-group:first-child{border-top:0;padding-top:4px}
.group-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}
.group-head h3{margin:0;font-size:18px;letter-spacing:-.3px}
.group-head>span{font-size:12px;color:var(--muted);text-align:right}
.field{margin-top:18px}
.group-head+.field{margin-top:0}
.field-label{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:14px;font-weight:600;margin-bottom:9px}
.field-label output{font-size:15px;letter-spacing:0;font-weight:650;color:var(--ink)}
.field .presets{margin-top:10px}
.choice{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:8px}
.choice button{border:1px solid #dbe1da;border-radius:8px;background:#fff;padding:10px 12px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:left;min-height:54px;color:var(--ink)}
.choice button strong{font-size:15px;font-weight:650}
.choice button span{font-size:12px;color:var(--muted);margin-top:2px}
.choice button[aria-pressed=true]{border-color:#263b2b;background:#eaf3df;box-shadow:0 0 0 1px #263b2b}
.swatches{display:grid;grid-template-columns:repeat(7,minmax(0,40px));gap:10px}
.swatch{aspect-ratio:1;width:100%;min-height:0;border-radius:50%;background:var(--c);border:1px solid #0000002a;padding:0}
.swatch[aria-pressed=true],.swatch.custom.picked{box-shadow:0 0 0 2px #fafbf8,0 0 0 4px #263b2b}
.swatch.custom{background:conic-gradient(#e05252,#e0c152,#6cc352,#52c1e0,#5266e0,#c152e0,#e05252)}
.swatch.custom.picked{background:var(--c)}
.custom-panel{display:flex;align-items:center;gap:14px;margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:10px;background:#fff}
.custom-panel[hidden]{display:none}
.custom-panel .wheel-wrap{width:150px;height:150px}
.custom-panel canvas{width:100%;height:100%;border-radius:50%;touch-action:none}
.wheel-cursor{position:absolute;width:12px;height:12px;border:2px solid #fff;box-shadow:0 0 0 1px #27302b;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}
.color-fields label{display:grid;gap:5px;font-size:12px;font-weight:600}
.color-fields input[type=text]{font:inherit;font-size:16px;padding:8px 10px;border:1px solid #c4d1bb;border-radius:6px;width:100%;text-transform:uppercase}
.color-error{font-size:12px;color:#9b2c2c}
.figure-section{border-top:1px solid var(--line);padding-top:22px}
#figure-scenes strong{font-size:15px}
@media(max-width:850px){
 .design{margin-bottom:22px}
 .design-head h2{font-size:21px}
 .choice{gap:6px}
 .choice button{padding:9px 10px;min-height:52px}
 .choice button strong{font-size:14px}
 .choice button span{font-size:11px}
 .swatches{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;max-width:360px}
 .design-summary li{grid-template-columns:14px 62px minmax(0,1fr);gap:8px;padding:10px 12px;font-size:13px}
 .dot{width:14px;height:14px}
 .custom-panel .wheel-wrap{width:132px;height:132px}
 .building .design{margin-bottom:14px}
 .building .design-summary{display:none}
 .building .design-line:not([hidden]){display:block}
 .building .design-summary+#design-editor:not([hidden]){margin-top:12px}
}
.scene-footer{gap:16px}
#dimensions{text-align:right}
@media(max-width:1100px){#view-hint{display:none}.scene-footer{justify-content:flex-end}}
.building .design-meta{display:none}

/* Camera overlay (Explore only): framing rectangle, crosshair and lens readout */
#cam-overlay{position:absolute;inset:0;z-index:2;pointer-events:none;display:grid;place-items:center}#cam-overlay[hidden]{display:none}.cam-frame{position:relative;box-shadow:0 0 0 100vmax #0b1214a6;border:1.5px solid #ffffffd9}.cam-frame::before,.cam-frame::after{content:"";position:absolute;left:50%;top:50%;background:#ffffffe6;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #0006}.cam-frame::before{width:34px;height:1.5px}.cam-frame::after{width:1.5px;height:34px}.cam-readout{position:absolute;left:10px;top:8px;font-size:12px;font-weight:600;letter-spacing:.5px;color:#fff;text-shadow:0 1px 3px #000a}
#cam-toggle{position:absolute;left:16px;bottom:16px;z-index:3;width:44px;height:44px;min-height:44px;padding:0;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:var(--accent);box-shadow:0 5px 22px #17202433}#cam-toggle[hidden]{display:none}#cam-toggle[aria-pressed="true"]{background:var(--accent);color:var(--ink)}
#camera-controls[hidden]{display:none}
@media(max-width:850px){.cam-live .controls{display:flex;flex-direction:column}.cam-live #explore-controls{display:contents}.cam-live #camera-controls{order:-1;display:flex;flex-direction:column;margin-bottom:22px;padding-bottom:20px;border-bottom:1px solid var(--line)}.cam-live #camera-controls .group-head{order:0;margin-bottom:12px}.cam-live #camera-controls .group-head h3{font-size:16px}#camera-controls #cam-focal-field{order:1;margin-bottom:16px}#camera-controls #cam-frame-field{order:2;margin-bottom:0}#camera-controls .hint{display:none}#camera-controls .field-label output{font-size:22px;font-weight:700}#camera-controls input[type=range]{height:44px}#camera-controls .presets{gap:6px;margin-top:6px}#camera-controls .presets button{min-height:50px;font-size:16px;font-weight:600;padding:0}#camera-controls .presets button.active{background:var(--ink);border-color:var(--ink);color:var(--accent)}#camera-controls .choice button{min-height:46px;flex-direction:row;align-items:center;gap:8px}#camera-controls .choice button span{margin:0}}

/* Approvals: the Approve button, the approved-designs list and the name dialog */
.design-approve{margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}
.approve-button{width:100%;min-height:50px;border-radius:9px;background:var(--ink);color:#fff;font-size:15px;font-weight:650}
.approve-button:disabled{opacity:1;background:#e5e5e5;color:#929292;border:1px solid #d5d5d5;box-shadow:none;cursor:not-allowed}
.design-approve #approve-status{margin-top:10px}
#approvals{margin-top:14px}
/* The approval block already draws one divider; the list sits right under it without its own. */
.design-approve{padding-top:6px}
.design-approve>#approvals{margin-top:0;border-top:0}
#approvals>summary{font-size:14px;font-weight:600;min-height:40px}
#approvals-list{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:8px}
.approval{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:10px;row-gap:3px;align-items:center;text-align:left;padding:10px 12px;border:1px solid #dbe1da;border-radius:8px;background:#fff;color:var(--ink);font-size:14px}
.approval small{grid-column:2;font-size:12px;line-height:1.4;color:var(--muted)}
.approval[aria-current=true]{border-color:#263b2b;background:#eaf3df;box-shadow:0 0 0 1px #263b2b}
.approval-dots{display:flex;gap:3px;grid-row:span 2}
.approval-dots .dot{width:12px;height:12px}
.badge{font-style:normal;font-size:11px;font-weight:650;letter-spacing:.3px;padding:2px 7px;border-radius:99px;background:var(--ink);color:var(--accent)}
#approve-dialog{width:min(460px,calc(100vw - 32px));border:0;border-radius:12px;padding:22px;color:var(--ink);box-shadow:0 20px 60px #17202440}
#approve-dialog::backdrop{background:#1720248c}
#approve-dialog h2{font-size:22px;letter-spacing:-.5px;margin:0 0 8px}
#approve-dialog p{font-size:14px;line-height:1.5;color:#51605b;margin:0 0 14px}
#approve-dialog .design-summary{margin:0 0 16px}
#approve-dialog .design-summary li{grid-template-columns:0 70px minmax(0,1fr)}
#approve-name-field{display:grid;gap:6px;font-size:14px;font-weight:600;margin-bottom:6px}
#approve-name-field[hidden]{display:none}
#approve-name{font:inherit;font-size:16px;padding:10px 12px;border:1px solid #c4d1bb;border-radius:7px}
#approve-error{min-height:20px;color:#9b2c2c!important}
.link-button{min-height:0;padding:0;background:none;color:inherit;text-decoration:underline;font-size:14px}
.dialog-actions{display:flex;justify-content:flex-end;gap:10px}
.dialog-actions button{padding:0 20px;border-radius:7px;border:1px solid var(--line);background:#fff}
.dialog-actions .primary{background:var(--ink);color:#fff;border-color:var(--ink)}
@media(max-width:850px){.building .design-approve{display:none}.dialog-actions button{flex:1}}
#approvals-count{font-size:13px;font-weight:500;color:var(--muted);margin:0 auto 0 -6px}

/* Labor: crew, hours and rate, in the Pricing guide and the approval gate (public/labor.js) */
#labor-estimate{margin:18px 0;padding:16px;border:1px solid var(--line);border-radius:9px;background:#fff}
#labor-estimate .group-head{margin-bottom:10px}
.labor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.labor-grid label{display:grid;gap:6px;font-size:12px;font-weight:600;color:#3b4a47}
.labor-stepper,.labor-input{display:flex;align-items:center;border:1px solid #c4d1bb;border-radius:7px;background:#fff;overflow:hidden;min-height:42px}
.labor-stepper button{min-height:40px;width:34px;padding:0;border:0;background:#f1f4ef;font-size:18px;color:var(--ink)}
.labor-stepper input,.labor-input input{flex:1;min-width:0;width:100%;border:0;font:inherit;font-size:16px;font-weight:600;padding:8px 6px;text-align:center;background:transparent;color:var(--ink);-moz-appearance:textfield}
.labor input::-webkit-inner-spin-button,.labor input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.labor-input>span{padding:0 7px;font-size:13px;color:var(--muted);font-weight:500}
.labor.adjusted .labor-grid label:nth-child(2)>.labor-input{border-color:#263b2b;box-shadow:0 0 0 1px #263b2b;background:#eaf3df}
.labor-default{font-size:12px;line-height:1.45;color:var(--muted);margin:9px 0 0}
.labor-default .link-button{font-size:12px;color:var(--ink);font-weight:600;margin-left:4px}
.labor-cost{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin:12px 0 0;padding-top:12px;border-top:1px solid var(--line);font-size:14px}
.labor-cost strong{font-size:15px;text-align:right}
.labor-tasks{margin-top:10px}
.labor-tasks>summary{font-size:13px;font-weight:600;min-height:36px}
.labor-tasks ol{list-style:none;margin:4px 0 8px;padding:0;display:grid;gap:7px}
.labor-tasks li{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;font-size:13px}
.labor-tasks li small{grid-column:1/-1;font-size:11px;color:var(--muted)}
.labor-tasks .hint{font-size:11px}
#approve-dialog{max-height:calc(100dvh - 32px);overflow:auto}
#approve-cost{margin:0 0 16px;padding:14px;border-radius:9px;background:#f4f7f1}
#approve-cost h3{font-size:14px;margin:0 0 8px}
#approve-cost dl{margin:0 0 12px;display:grid;gap:6px}
#approve-cost dl div{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
#approve-cost dt{font-size:14px;font-weight:600}
#approve-cost dt small{display:block;font-weight:500;font-size:12px;color:var(--muted)}
#approve-cost dd{margin:0;font-size:15px;font-weight:600;text-align:right;white-space:nowrap}
#approve-cost .approve-total{padding-top:8px;margin-top:2px;border-top:1px solid #d3dccd}
#approve-cost .approve-total dd{font-size:22px;letter-spacing:-.4px}
#approve-labor .labor-cost{display:none}
.labor-rates{border:0;margin:12px 0 0;padding:0;min-width:0}
.labor-rates legend{padding:0;font-size:12px;font-weight:600;color:#3b4a47;margin-bottom:6px}
.labor-rates legend small{font-weight:500;color:var(--muted);margin-left:4px}
.labor-rates ol{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.labor-rates li{display:grid;grid-template-columns:72px minmax(0,1fr) 76px;align-items:center;gap:8px}
.labor-rates li label{font-size:13px;font-weight:600}
.labor-rates li small{font-size:12px;color:var(--muted);text-align:right}
.labor-rates .labor-input{min-height:38px}
.labor-rates .link-button{font-size:12px;margin-top:8px;font-weight:600}
#price-estimate{margin:14px 0 0;padding:12px 14px;border-radius:8px;background:#f4f7f1;display:grid;gap:6px}
#price-estimate:empty{display:none}
#price-estimate .hint{margin:0}
#price-estimate div,#approve-cost dl div{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
#price-estimate dt{font-size:14px;font-weight:600}
#price-estimate dt small{display:block;font-weight:500;font-size:12px;color:var(--muted)}
#price-estimate dd{margin:0;font-size:15px;font-weight:600;white-space:nowrap}
#price-estimate .estimate-total{padding-top:8px;border-top:1px solid #d3dccd}
#price-estimate .estimate-total dd{font-size:22px;letter-spacing:-.4px}
#labor-estimate.has-estimate .labor-cost{display:none}
.rate-reminder{position:relative;display:flex;align-items:flex-start;gap:8px;margin:2px 0 10px;padding:9px 10px 9px 12px;border-radius:8px;background:var(--ink);color:#fff;box-shadow:0 6px 18px #17202430;animation:rate-reminder .25s ease-out}
.rate-reminder[hidden]{display:none}
.rate-reminder::after{content:"";position:absolute;left:calc(50% - 12px);bottom:-6px;width:12px;height:12px;background:var(--ink);transform:rotate(45deg)}
#approve-dialog .rate-reminder p{margin:0;font-size:12.5px;line-height:1.4;color:#fff}
.rate-reminder button{flex:none;min-height:0;width:22px;height:22px;padding:0;border:0;border-radius:50%;background:#ffffff1f;color:var(--accent);font-size:15px;line-height:1}
@keyframes rate-reminder{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.rate-reminder{animation:none}}
/* Phones: the whole approval gate fits on one screen (summary line, costs, crew, rates, Approve) */
#approve-line{display:none}
@media(max-width:600px){
 #approve-dialog{width:calc(100vw - 16px);max-width:none;max-height:calc(100dvh - 16px);padding:16px 16px 0;border-radius:14px}
 #approve-dialog h2{font-size:19px;margin:0 0 4px}
 #approve-dialog form>p:first-of-type,#approve-summary,#approve-cost h3,#approve-labor .labor-tasks,#approve-labor [data-default]{display:none}
 #approve-dialog #approve-line{display:block;font-size:13px;line-height:1.35;margin:0 0 10px;color:var(--muted)}
 #approve-cost{padding:10px 12px;margin:0 0 10px}
 #approve-cost dl{grid-template-columns:1fr 1fr;column-gap:14px;row-gap:6px;margin:0 0 10px}
 #approve-cost dl div:not(.approve-total){display:block}
 #approve-cost dl div:not(.approve-total) dd{text-align:left;font-size:16px}
 #approve-cost dt{font-size:12px;color:var(--muted)}
 #approve-cost dt small{font-size:11px}
 #approve-cost .approve-total{grid-column:1/-1;flex-wrap:wrap;row-gap:0;padding-top:6px}
 #approve-cost .approve-total dt{color:var(--ink);font-size:14px}
 #approve-cost .approve-total dt small{display:none}
 #approve-cost .approve-total dd{font-size:21px}
 #approve-cost .approve-total::after{content:attr(data-note);flex-basis:100%;font-size:11px;line-height:1.3;color:var(--muted)}
 #approve-labor .labor-grid{gap:8px}
 #approve-labor .labor-grid label{gap:4px;font-size:11px}
 #approve-labor .labor-stepper,#approve-labor .labor-input{min-height:38px}
 #approve-labor .labor-stepper button{min-height:36px}
 #approve-labor .labor-default{margin:4px 0 0}
 #approve-labor .labor-default:has([data-reset][hidden]){display:none}
 #approve-labor .labor-rates{margin-top:8px}
 #approve-labor .labor-rates legend{margin-bottom:4px;font-size:11px}
 #approve-labor .labor-rates ol{gap:5px}
 #approve-labor .labor-rates li{grid-template-columns:64px minmax(0,1fr) 70px}
 #approve-labor .labor-rates .labor-input{min-height:36px}
 #approve-labor .labor-rates .link-button{margin-top:5px}
 .rate-reminder{margin:0 0 9px;padding:7px 8px 7px 10px}
 #approve-dialog .rate-reminder p{font-size:12px;line-height:1.3}
 #approve-as{margin:0 0 6px!important;font-size:13px!important}
 #approve-name-field{margin-bottom:4px}
 #approve-error{min-height:0;margin:0!important}
 #approve-error:not(:empty){margin:0 0 6px!important}
 #approve-dialog .dialog-actions{position:sticky;bottom:0;margin:0 -16px;padding:10px 16px calc(12px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line)}
 #approve-dialog .dialog-actions button{min-height:46px}
}
@media(max-width:600px){
 #approve-labor .labor-rates ol:has(li:nth-child(3)){grid-template-columns:1fr 1fr;column-gap:8px}
 #approve-labor .labor-rates ol:has(li:nth-child(3)) li{grid-template-columns:minmax(0,1fr);gap:2px}
 #approve-labor .labor-rates ol:has(li:nth-child(3)) li label{font-size:11px;font-weight:600;color:#3b4a47}
 #approve-labor .labor-rates ol:has(li:nth-child(3)) li small{display:none}
}
@media(max-width:600px){#approve-labor .rate-reminder::after{left:calc(50% - 13px)}#approve-labor .labor-rates:has(ol li:nth-child(3)) .rate-reminder::after{left:calc(25% - 12px)}}
@media(max-width:360px){#approve-labor .labor-rates li{grid-template-columns:58px minmax(0,1fr) 62px;gap:6px}#approve-labor .labor-rates .labor-input>span{padding:0 5px}}
/* Scale-figure clothing: one collapsible card per person; the summary shows a tinted silhouette and the outfit. */
.wear{margin-top:18px}
.wear>.field-label{margin-bottom:0;padding-bottom:9px;border-bottom:1px solid var(--line)}
.wear-card{border-top:0;border-bottom:1px solid var(--line)}
.wear-card summary{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:14px;min-height:64px;padding:8px 0}
.wear-card summary .wear-figure{width:28px;height:48px}
.wear-figure .wear-shirt,.wear-figure .wear-arm,.wear-figure .wear-pants{stroke:#0000002e;stroke-width:.6;transition:fill .15s}
.wear-title strong{display:block;font-size:15px;font-weight:650}
.wear-title small{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:2px}
.wear-title .wear-outfit{color:#3d4b47;font-weight:550}
.wear-card summary .wear-toggle{font-size:21px;font-weight:400;transition:transform .15s}
.wear-card[open] summary .wear-toggle{transform:rotate(45deg)}
.wear-body{padding:2px 0 16px 42px}
.wear-row+.wear-row{margin-top:12px}
.wear-row .field-label{margin-bottom:7px;font-size:13px}
.wear-row .field-label output{font-size:13px;font-weight:600;color:var(--muted)}
.wear-reset{margin-top:14px;min-height:34px;padding:0 12px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:12px;color:var(--ink)}
.wear-swatches{grid-template-columns:repeat(auto-fill,minmax(28px,1fr));gap:9px;max-width:none}
label.swatch.custom{display:block;position:relative;cursor:pointer;overflow:hidden}
label.swatch.custom input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:0;padding:0}
label.swatch.custom:focus-within{outline:3px solid #648d2d;outline-offset:3px}
.wear-swatches .swatch{width:100%;height:auto;min-height:0;aspect-ratio:1;align-self:start}
@media(max-width:850px){.wear-swatches{grid-template-columns:repeat(auto-fill,minmax(36px,1fr));gap:10px}.wear-body{padding-left:0}}

.approval-estimate{font-size:13px;line-height:1.45;margin:8px 0;color:var(--muted)}
.approval-edit,#approve-cancel-edit{font-size:14px;background:#e1e9db;border-radius:6px;padding:8px 12px;margin:0 0 12px;color:var(--ink)}
#approve-cancel-edit{margin-top:8px}
#approvals-list>li{padding-bottom:14px;border-bottom:1px solid var(--line)}
.cut-part-button{display:block;width:100%;text-align:left;font:inherit;color:inherit;background:transparent;border:0;padding:5px;min-height:44px;border-radius:5px}.cut-part-button:hover{background:#eaf1e0}.cut-selected{background:#e5f1d4;box-shadow:inset 3px 0 #6b9438}.cut-selected .cut-part-button strong{color:#34551b}#cut-list tr[data-cut-part]{cursor:pointer}

/* Named camera shots share the existing lens controls and the full set view. */
body>header nav .mode{padding-left:15px;padding-right:15px}
.camera-positions #design,.camera-positions .controls>details{display:none}
.camera-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}
.camera-heading h2{font-size:26px;letter-spacing:-.7px;margin:6px 0}
#camera-refresh{padding:8px 12px;border:1px solid var(--line);border-radius:7px;background:transparent;font-size:13px}
#camera-shot-list{display:grid;gap:8px;margin:20px 0;max-height:260px;overflow:auto}
.camera-shot{display:flex;flex-direction:column;gap:5px;width:100%;padding:14px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:9px;color:var(--ink);overflow-wrap:anywhere}
.camera-shot[aria-pressed=true]{border-color:#344e32;background:#eaf3df;box-shadow:inset 3px 0 #668f39}
.camera-shot span,.camera-empty{font-size:13px;color:var(--muted);line-height:1.5}
#camera-save-form label{display:block;font-size:14px;font-weight:650;margin-bottom:9px}
#camera-name{width:100%;padding:12px;font:inherit;font-size:16px;border:1px solid #bdc9bd;border-radius:7px;background:#fff;color:var(--ink)}
.camera-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.camera-actions button{padding:10px;border:1px solid var(--line);border-radius:7px;font-size:13px;background:transparent;color:var(--ink)}
#camera-save{background:var(--ink);color:#fff}
#camera-status{font-size:13px;line-height:1.5;min-height:40px;overflow-wrap:anywhere}
.camera-positions #camera-controls{padding:18px 0;border-block:1px solid var(--line)}
.camera-positions #camera-controls .hint{display:none}
@media(max-width:850px){
 body>header{height:auto;min-height:112px;flex-wrap:wrap;gap:10px;padding:12px 16px}
 body>header nav{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px}
 body>header nav .mode{padding:6px 3px;font-size:12px;line-height:1.2;min-height:44px}
 .camera-positions .viewport{height:40dvh;min-height:240px}
 .camera-positions .controls{display:block;padding-top:18px}
 .camera-positions #camera-shot-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:180px;margin:14px 0}
 .camera-shot{padding:11px}.camera-shot strong{font-size:14px}
 .camera-positions #camera-controls{margin-bottom:16px}
}

/* The camera workflow uses the same order at every viewport size. */
#camera-controls{display:flex;flex-direction:column}
#camera-controls #cam-focal-field{order:1;margin-bottom:18px}
#camera-controls #cam-frame-field{order:2;margin-bottom:0}
#camera-controls #cam-save-positions{order:3;margin-top:16px;padding:12px;border-radius:7px;background:var(--ink);color:#fff}
#camera-controls>.hint{order:4}
.cam-live:not(.camera-positions) .controls{display:flex;flex-direction:column}
.cam-live:not(.camera-positions) #explore-controls{display:contents}
.cam-live:not(.camera-positions) #camera-controls{order:-1}
.camera-positions #camera-controls{padding:0 0 20px;border-top:0;margin-bottom:20px}
.camera-positions #camera-controls .group-head,.camera-positions #cam-save-positions{display:none}
#camera-save-form h2{font-size:20px;letter-spacing:-.4px;margin:0 0 16px}
.camera-actions{grid-template-columns:1fr}
.camera-actions:has(#camera-cancel:not([hidden])){grid-template-columns:1fr 1fr}
.camera-heading{border-top:1px solid var(--line);padding-top:18px}
.camera-heading h2{font-size:20px}
#camera-shot-list{max-height:none}
.camera-shot-row{border:1px solid var(--line);border-radius:9px;overflow:hidden;background:white}
.camera-shot-row .camera-shot{border:0;border-radius:0}
.camera-row-actions{display:flex;border-top:1px solid var(--line)}
.camera-row-actions button{flex:1;min-height:44px;font-size:13px;background:transparent;color:var(--ink)}
.camera-row-actions button+button{border-left:1px solid var(--line);color:#90392e}
#camera-deleted{margin-top:22px}
#camera-deleted-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:14px}
#camera-deleted-list span{overflow-wrap:anywhere;min-width:0}
#camera-deleted-list button{background:transparent;color:#38542c;padding:8px 12px}
@media(max-width:850px){.camera-positions #camera-shot-list{max-height:none}}

#step-fasteners{background:#eaf3df;border:1px solid #cbd9bd;border-radius:8px;padding:13px 15px;margin:14px 0 18px}
#step-fasteners h3{font-size:12px;letter-spacing:1px;text-transform:uppercase;margin:0 0 10px;color:#506846}
#step-fasteners-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
#step-fasteners-list strong{display:block;font-size:15px;line-height:1.35;color:#243925}
#step-fasteners-list span{display:block;font-size:13px;line-height:1.5;margin-top:4px;color:#435342}
/* All four tabs stay inside the phone viewport, including the compact build header. */
@media(max-width:850px){.building>header{height:auto;min-height:112px}.building>header nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.building>header .mode{overflow-wrap:anywhere}}
#camera-update{background:var(--ink);color:#fff}
#camera-update:disabled{background:#e4e8e3;color:#7b857d;border-color:#d8ded7;opacity:1;cursor:default}
#camera-save{background:transparent;color:var(--ink)}
.camera-actions{grid-template-columns:1fr 1fr}
#camera-selection{margin:0 0 14px;overflow-wrap:anywhere}
.camera-row-status{padding:8px 12px;margin:0;font-size:13px;line-height:1.5;background:#f3f5ef;overflow-wrap:anywhere}


@media(max-width:850px){.building main{height:calc(100dvh - 112px)}}

#camera-delete-dialog{width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:24px;border:1px solid var(--line);border-radius:14px;background:#fafbf8;color:var(--ink);box-shadow:0 16px 70px #17202440}
#camera-delete-dialog::backdrop{background:#17202480}
#camera-delete-dialog h2{font-size:22px;margin:0 0 14px;letter-spacing:-.4px}
#camera-delete-description{font-size:16px;line-height:1.5;overflow-wrap:anywhere;margin:0}
#camera-delete-dialog .dialog-actions{margin-top:22px;gap:10px}
#camera-delete-confirm{background:#91382e;color:#fff;border-color:#91382e}

/* The scene is a gesture surface, not selectable document text. */
.viewport,.viewport *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.viewport{touch-action:none}
.viewport button{touch-action:manipulation}
/* Stable scene heights avoid zoom/framing jumps as mobile browser chrome opens or closes. */
@media(max-width:850px){
 .viewport{height:45svh}
 .building .viewport{height:100%}
 .pricing .viewport{height:30svh}
 .camera-positions .viewport{height:40svh}
 body.building{height:100svh}
 .building main{height:calc(100svh - 112px)}
 .pricing .price-summary,.pricing .price-item,.pricing #price-add{scroll-margin-top:calc(30svh + 16px)}
}
/* iOS auto-zooms small focused fields. Preserve page pinch zoom for accessibility. */
@media(max-width:850px),(pointer:coarse){
 body input:not([type=range]):not([type=checkbox]):not([type=radio]),body textarea,body select{font-size:16px!important}
 button{touch-action:manipulation}
}
#construction-view-toggle{position:absolute;right:18px;top:18px;z-index:7;width:44px;height:44px;min-height:44px;display:grid;place-items:center;border:1px solid #8c9f8a66;border-radius:50%;color:#37543e;background:#fafcf2ee;box-shadow:0 3px 14px #162a2112;backdrop-filter:blur(7px)}
#construction-view-toggle[aria-pressed=true]{background:#1d3028;color:#c7ec9d;border-color:#1d3028}
#construction-view-status{position:absolute;right:70px;top:33px;z-index:6;font-size:10px;line-height:1.3;letter-spacing:.3px;color:#5d7561;pointer-events:none;background:#f3f6edcc;padding:3px 7px;border-radius:4px}
.building #guide-scene-tools{padding-right:65px}.building #construction-view-toggle{top:10px}.building #construction-view-status{top:65px;right:15px}
@media(max-width:850px){#construction-view-toggle{right:12px;top:12px}#construction-view-status{right:62px;top:25px;font-size:9px}.building #construction-view-status{top:64px;right:12px}}
#guide-completion{margin:18px 0 8px;padding:12px 14px;border:1px solid #d5e0cb;border-radius:9px;background:#edf4e5}
#guide-completion label{display:flex;align-items:center;gap:11px;min-height:28px;cursor:pointer;font-size:14px;font-weight:600;color:#395334}
#guide-step-done{width:20px;height:20px;accent-color:#476b35;flex-shrink:0}
#guide-save-status{display:block;font-size:11px;line-height:1.4;color:#6b7e60;margin-top:5px}
#guide-save-status:empty{display:none}
/* Desktop guide navigation stays in one place, independent of instruction length. */
@media(min-width:851px){
 .building .controls{padding-bottom:112px}
 .building .step-buttons{position:fixed;left:auto;right:0;bottom:0;width:370px;z-index:18;margin:0;padding:12px 25px calc(12px + env(safe-area-inset-bottom));border-top:1px solid #d8e1d1;background:#fafbf8f5;backdrop-filter:blur(12px);box-shadow:0 -6px 20px #17202408}
}
@media(min-width:1500px){.building .step-buttons{width:400px;padding-left:32px;padding-right:32px}}
/* Completion and navigation share one fixed dock, with space reserved in the scrolling guide. */
.building .step-buttons{row-gap:6px;padding-top:6px}
.building .step-buttons #guide-completion{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0;padding:0 2px;border:0;border-radius:0;background:transparent;min-width:0}
.building .step-buttons #guide-completion label{min-height:44px;flex-shrink:0;font-size:13px;gap:9px}
.building .step-buttons #guide-save-status{margin:0;max-width:45%;font-size:10px;text-align:right;overflow-wrap:anywhere}
.building .controls{padding-bottom:calc(var(--guide-dock-height,132px) + 24px)}
@media(max-width:850px){
 .building .step-buttons{padding-top:4px;padding-bottom:calc(8px + env(safe-area-inset-bottom));row-gap:4px}
 .building .step-buttons button{min-height:48px;padding-top:10px;padding-bottom:10px}
}
@media(max-width:850px) and (orientation:portrait){.building main{grid-template-rows:minmax(300px,45dvh) minmax(0,1fr)}}
/* Keep design editing and approvals in the design/pricing views, not the Build guide. */
.building #design{display:none}
.building .step-buttons #guide-completion.guide-auto-mark label{background:#e4f1d7;box-shadow:0 0 0 2px #668e42;border-radius:6px;padding:0 8px;margin-left:-8px;color:#345a27}

#construction-view-status{opacity:0;transform:translateX(6px);transition:opacity .3s ease,transform .3s ease}
#construction-view-status.view-notice-visible{opacity:1;transform:translateX(0)}
#viewport-project-progress{position:absolute;top:14px;left:14px;z-index:6;width:64px;height:64px;padding:0;min-height:44px;border-radius:50%;background:#20382fec;color:#f4f8ee;box-shadow:0 3px 16px #14251c18;display:grid;place-items:center;cursor:pointer}
#viewport-project-progress svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke-width:3}
#viewport-project-progress .progress-track{stroke:#78907855}
#viewport-project-progress .progress-value{stroke:#c7ec9d;stroke-linecap:round;transform:rotate(-90deg);transform-origin:center;transition:stroke-dasharray .4s ease}
#viewport-project-progress span{font-size:19px;letter-spacing:-.6px;font-weight:600}
#viewport-project-progress small{font-size:10px;margin-left:1px}
#viewport-project-progress:focus-visible{outline:3px solid #779c52;outline-offset:3px}
.building #guide-scene-tools{padding-left:72px}
.camera-positions #viewport-project-progress{display:none}
@media(max-width:850px){#viewport-project-progress{top:10px;left:12px;width:54px;height:54px}.building #guide-scene-tools{padding-left:62px}.pricing #price-preview-toggle{left:78px}}
@media(prefers-reduced-motion:reduce){#construction-view-status,#viewport-project-progress .progress-value{transition:none}}

@media(max-width:850px){#cam-toggle{left:12px;bottom:12px}}

/* Touch-friendly partial completion next to the existing done checkbox. */
.building .step-buttons #guide-completion{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}



#guide-step-percent{width:56px;min-height:44px;padding:4px;font:inherit;font-size:16px;text-align:center;border:1px solid #c9d6c0;border-radius:6px;background:white;color:var(--ink);appearance:textfield}
#guide-step-percent::-webkit-inner-spin-button{appearance:none}

#guide-completion #guide-save-status{grid-column:1/-1}
@media(max-width:380px){.building .step-buttons #guide-completion{column-gap:5px}.building .step-buttons #guide-completion>label{font-size:12px;gap:5px}}

/* Keep instructions primary; detailed tracking is an on-demand panel. */
#guide-scene-tools{display:none!important}
#guide-project-open{margin:0 0 16px;padding:8px 14px;min-height:44px;background:#edf3e7;color:#395334;border:1px solid #cfddc3;border-radius:7px;font-size:14px;font-weight:600}
#guide-tracker-dialog{width:min(640px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0 18px 18px;border:1px solid #cfdbcc;border-radius:14px;background:#fafbf8;overflow:auto}
#guide-tracker-dialog::backdrop{background:#17202488}
.guide-tracker-head{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:5;background:#fafbf8;padding:14px 0;border-bottom:1px solid #dce3dc}
.guide-tracker-head h2{font-size:23px;margin:0}
.guide-tracker-head button{min-width:44px;font-size:26px;background:transparent}
.guide-tracker-context{font-size:14px;color:#63736a;margin:14px 0}
#guide-tracker-dialog .pj-progress-hero{display:none}
.pj-count-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid #dce3d6;font-size:14px;font-weight:600}
.pj-count-row small{display:block;font-size:11px;font-weight:400;color:#617267}
.pj-count-input{display:flex;gap:4px;align-items:center;flex-shrink:0}
.pj-count-input button{width:44px;min-height:44px;font-size:22px;border:1px solid #c9d6c0;border-radius:7px;background:white;color:#293e31}
.pj-count-input input{width:52px;min-height:44px;font:inherit;font-size:16px;text-align:center;border:1px solid #c9d6c0;border-radius:6px;background:white;appearance:textfield}
.pj-count-input input::-webkit-inner-spin-button{appearance:none}
@media(max-width:380px){.pj-count-row{font-size:12px}.pj-count-input{gap:2px}.pj-count-input input{width:42px}.pj-count-input button{width:40px}}

/* One disclosure keeps section and step navigation out of the instructions. */
.guide-navigation{margin-bottom:10px;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.guide-navigation #guide-jump{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:48px;padding:12px;text-align:left;border-radius:0;background:#eef3e9;font-size:13px;font-weight:600}
.guide-navigation-action{display:flex;gap:7px;align-items:center;flex-shrink:0;color:#52674b;font-size:12px}
.guide-navigation-action>span{display:inline-block;transition:transform .15s}
#guide-jump[aria-expanded=true] .guide-navigation-action>span{transform:rotate(180deg)}
.guide-navigation #guide-index{padding:12px;border-top:1px solid var(--line)}
.guide-navigation #guide-sections{margin:0 0 12px}
.guide-navigation #restart{margin-bottom:0}

#guide-batch{margin:22px 0;padding:16px;border:1px solid #c9d9bc;border-radius:10px;background:#eef4e6}
#guide-batch h3{margin:0 0 10px;font-size:19px;line-height:1.3}
#guide-batch p{font-size:14px;line-height:1.55}
#guide-batch label{display:block;font-size:14px;font-weight:600;margin:14px 0 8px}
.guide-batch-entry{display:flex;gap:10px;align-items:center}
#guide-batch-count{width:70px;min-height:46px;font:inherit;font-size:18px;text-align:center;border:1px solid #b7c9a9;border-radius:6px}
.guide-batch-entry button{margin-left:auto;padding:10px 14px;border-radius:7px;background:#263e30;color:white;font-size:14px}
#guide-batch [role=status]:empty{display:none}

.batch-checkpoint #step-needs,.batch-checkpoint .step-do-title,.batch-checkpoint #step-actions,.batch-checkpoint #guide-completion{display:none!important}
.batch-checkpoint #guide-batch{margin:12px 0 18px}
.batch-checkpoint #guide-batch h3{display:none}
.batch-checkpoint #guide-batch p{margin:0 0 14px}

/* Count checkpoints prioritize a reachable form on phones, including short screens. */
@media(max-width:850px){

 .batch-checkpoint #step-phase{display:none}
 .batch-checkpoint #step-title{font-size:24px;line-height:1.15;margin:12px 0}
 .batch-checkpoint #progress{margin-bottom:12px}
 .batch-checkpoint #guide-batch{padding:12px;margin:10px 0 12px}
 .batch-checkpoint #guide-batch p{font-size:14px;line-height:1.4;margin-bottom:10px}
 .batch-checkpoint #guide-batch label{margin:10px 0 8px}
 .guide-batch-entry{display:grid;grid-template-columns:76px auto minmax(100px,1fr);gap:8px}
 #guide-batch-count{width:100%;min-height:52px;font-size:20px;scroll-margin-block:16px}
 .guide-batch-entry button{width:100%;min-height:52px;margin:0;font-size:16px;font-weight:600}
 .guide-batch-entry>span{white-space:nowrap;font-size:14px}
}

@media(max-width:850px) and (orientation:portrait){.building:has(.batch-checkpoint) main{grid-template-rows:minmax(300px,45dvh) minmax(0,1fr)}}
.guide-batch-entry button:disabled{background:#dce2d6;color:#7a8474;opacity:1;cursor:default}
@media(max-width:850px){.building:has(.batch-checkpoint) #canvas-wrap{top:0;bottom:0}}

#floor-assembly-replay{min-height:44px;margin:0 0 16px;padding:10px 14px;background:#eaf2e2;border:1px solid #c9d8bc;border-radius:7px;color:#34502b;font-size:14px}

[data-load-percent]{font-style:normal;font-variant-numeric:tabular-nums}
[data-load-arc]{transition:none!important}

.pj-spend-hero{position:relative}
.pj-spend-hero .pj-spend-lock{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:44px;height:44px;min-height:44px;color:#d4e4cd;background:transparent;border:1px solid #ffffff30;border-radius:50%;padding:0}
.pj-spend-hero .pj-spend-lock:hover{background:#ffffff12}
.pj-spend-hero .pj-overline{display:block;padding-right:48px}

.labor-shopping{font-size:13px;line-height:1.5;color:#52644e;margin:12px 0}

#approval-dock{position:fixed;bottom:0;z-index:24;display:flex;gap:10px;align-items:center;padding:12px 22px calc(12px + env(safe-area-inset-bottom));background:#fafbf8f5;border-top:1px solid var(--line);backdrop-filter:blur(12px)}
#approval-dock #approve-cancel-edit{margin:0;flex-shrink:0}
.approval-dock-visible .controls{padding-bottom:100px}
@media(max-width:850px){#approval-dock{padding-left:16px;padding-right:16px}.approval-dock-visible .controls{padding-bottom:calc(100px + env(safe-area-inset-bottom))}}

#approval-dock{flex-direction:column;align-items:stretch;gap:8px}
#approval-dock #approvals{margin:0;border-top:0;max-height:45dvh;overflow-y:auto;overscroll-behavior:contain}
#approval-dock #approvals>summary{position:sticky;top:0;background:#fafbf8;min-height:44px;z-index:1}
.approval-dock-actions{display:flex;gap:10px;align-items:center}
.approval-dock-actions .approve-button{min-width:0;flex:1}
.approval-dock-visible .controls{padding-bottom:calc(var(--approval-dock-height,132px) + 24px)}
@media(min-width:851px){body:not(.building) .viewport{height:calc(100dvh - var(--visible-header-height,86px));min-height:0}}

#approvals-list>li{padding:0;border:1px solid #dbe1da;border-radius:8px;background:#fff;overflow:hidden}
.approval-row{display:flex;align-items:center;gap:8px;padding:6px 8px}
.approval-toggle{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;background:transparent;padding:6px;min-height:50px;color:var(--ink)}
.approval-toggle strong{font-size:14px;overflow-wrap:anywhere}.approval-toggle small{font-size:12px;color:var(--muted)}
.approval-toggle[aria-expanded=true]{color:#34592c}
.approval-row .approval-edit{flex-shrink:0;margin:0;min-width:48px;min-height:44px;padding:8px 12px;font-size:13px}
.approval-breakdown{padding:0 14px 14px;border-top:1px solid var(--line)}
.approval-breakdown h4{font-size:13px;margin:16px 0 8px}
.approval-breakdown dl{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:9px 14px;font-size:12px;line-height:1.45;margin:0}
.approval-breakdown dt{color:var(--muted)}.approval-breakdown dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.approval-breakdown .approval-updated{font-size:11px;color:var(--muted);margin:14px 0}
.approval-load{width:100%;min-height:44px;margin-top:16px;border-radius:6px;background:#eaf2e2;color:#34502b;font-size:13px;font-weight:600}

/* Cost projection in the Pricing guide: actual spending plus the estimate for what is still to come. */
#price-projection{margin:14px 0 0;padding:14px;border:1px solid #cfdcc8;border-radius:9px;background:#f4f7f1}
#price-projection:empty{display:none}
#price-projection .group-head{margin-bottom:8px}
#price-projection .hint{margin:0}
#price-projection dl{display:grid;gap:7px;margin:0}
#price-projection dl div{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
#price-projection dt{font-size:14px;font-weight:600}
#price-projection dt small{display:block;font-weight:500;font-size:12px;color:var(--muted)}
#price-projection dd{margin:0;font-size:15px;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}
.projection-variance{margin:8px 0 0;font-size:12px;font-weight:600;color:#4f7a3f}
.projection-variance.over{color:#9c5341}
.projection-warning{margin:10px 0 0;padding:9px 11px;border-radius:7px;background:#f5eedd;border:1px solid #e8dbb9;color:#7b5f22;font-size:12px;line-height:1.45}
.price-purchase{display:block;font-size:12px;font-weight:600;color:#4f7a3f;margin:2px 0 4px}
.price-purchase[data-status=partial]{color:#8a6a24}
.price-item[data-purchase=bought] .price-line-math{text-decoration:line-through;text-decoration-color:#9aaa94}

/* Assembly counters sit under the tracker step they measure. */

.pj-step-counts .pj-count-row{border-bottom:0;padding:4px 0;font-size:13px}


/* Steps that follow a count without their own counters: a check that fills in on its own. */
.pj-auto-check{display:grid;place-items:center;flex-shrink:0;width:18px;height:18px;border-radius:4px;border:1.5px solid #b9c8b0;background:#fff;color:#fff}
.pj-auto-check.done{background:#4f7a3f;border-color:#4f7a3f}
.pj-auto-check svg{width:13px;height:13px;stroke-width:2.6}

/* The counters under a counted step sit in their own tinted card. */
.pj-step-counts{margin:8px 0 4px;padding:6px 12px;background:#f1f5ec;border:1px solid #dbe5d3;border-radius:10px}

/* Pricing guide: the plan. One-line design, an estimate box, materials by group, labor. */
body.pricing #design{display:none}
.price-design{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px;margin:0 0 16px;font-size:13px;color:#43524c}
.price-design .link-button{margin:0;font-size:12px}
#price-estimate-card{padding:16px;border:1px solid #cfdcc8;border-radius:10px;background:#f4f7f1;margin:0 0 22px}
#price-estimate-card h3{margin:0 0 10px;font-size:16px}
#price-estimate-rows{display:grid;gap:8px;margin:0}
#price-estimate-rows div{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
#price-estimate-rows dt{font-size:14px;font-weight:600}
#price-estimate-rows dt small{display:block;font-weight:500;font-size:12px;color:var(--muted)}
#price-estimate-rows dd{margin:0;font-size:15px;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}
#price-estimate-rows .estimate-total{padding-top:8px;border-top:1px solid #d3dccd}
#price-estimate-rows .estimate-total dd{font-size:22px;letter-spacing:-.4px}
#price-materials,#price-labor{margin:0 0 22px}
#price-materials .group-head,#price-labor .group-head{margin-bottom:8px}
#price-materials-total,#price-labor-total{font-weight:600;font-variant-numeric:tabular-nums}
.price-group{border:1px solid var(--line);border-radius:9px;background:#fff;margin:0 0 8px;padding:0 12px}
.price-group>summary{min-height:48px;font-size:14px;font-weight:600}
.price-group>summary>span:first-child{display:flex;flex-direction:column;font-size:14px;font-weight:600}
.price-group>summary small{font-size:11px;font-weight:400;color:var(--muted)}
.price-group>summary .price-group-total{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}
.price-group[open]>summary span{transform:none}
.price-group .price-item{border-left:0;border-right:0;border-radius:0;margin:0;border-top:1px solid #eef1ec}
.price-labor-crew,.price-labor-hours{margin:0 0 6px;font-size:13px;color:#43524c}
.price-labor-tasks{list-style:none;margin:0;padding:0 0 8px}
.price-labor-tasks li{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-top:1px solid #eef1ec;font-size:13px}
.price-labor-tasks strong{font-variant-numeric:tabular-nums}
.price-more{margin:0 0 20px}
.price-remove-custom{background:transparent;color:#9c5341;font-size:12px;padding:0;min-height:32px}

.price-group .price-item{padding:0;background:transparent;overflow:visible}
.price-group .price-item-inner{padding:10px 0;transform:none!important;background:transparent}
.price-group .price-item-inner>button{display:flex;justify-content:space-between;align-items:baseline;gap:12px;width:100%;padding:0;min-height:0;background:transparent;text-align:left;font-size:13px}
.price-group .price-item-inner>button strong{font-size:13px;font-weight:600;line-height:1.35}
.price-group .price-item-inner>button span{font-size:13px;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}
.price-item-meta{display:flex;align-items:center;gap:8px;margin-top:3px}
.price-group .price-line-math{margin:0;font-size:12px;color:var(--muted);text-decoration:none!important}
.price-group .price-purchase{margin:0;font-size:11px;padding:1px 7px;border-radius:999px;background:#e5efdc;color:#3f6b45}
.price-group .price-purchase[data-status=partial]{background:#f5eedd;color:#8a6a24}
.price-group .price-purchase[data-status=notNeeded]{background:#f0f1ed;color:#687267}
.price-item[data-purchase=notNeeded] [data-price-item] span{text-decoration:line-through;color:#8a918a}
.price-need-toggle{border:0;background:none;padding:0;font:inherit;font-size:12px;color:#687267;text-decoration:underline;cursor:pointer}
.price-need-toggle:disabled{opacity:.5;cursor:default}
.price-group .price-return-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:13px}
.price-group .price-return-head strong{font-weight:600;line-height:1.35}.price-group .price-return-head span{font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}
.price-group .price-return.returned .price-return-head{color:var(--muted)}
.price-subhead:focus{outline:none}
.price-group .price-order-needed{margin:0;font-size:11px;font-weight:500;padding:1px 7px;border-radius:999px;background:#f0f1ed;color:#687267;white-space:nowrap}
.price-fulfillment{display:grid;gap:2px;margin-top:3px;font-size:11px;line-height:1.4;color:#687267}
.price-fulfillment small{font-size:inherit}
.price-group .price-line-details{margin-left:auto;padding:0;min-height:24px;background:transparent;font-size:12px;color:#456449}
.price-item-more{display:none;margin-top:6px;font-size:12px;line-height:1.5;color:#52635b}
.price-item.show-details .price-item-more{display:grid;gap:4px}
.price-item-more .price-row-note{display:block}
.price-group .price-item.selected{background:#eef4e9}
#price-materials #price-add-open{background:transparent;color:#2f4637;border:1px dashed #b8c8b0;min-height:44px;margin:4px 0 0;width:100%;font-size:13px;font-weight:600}

.price-subhead{margin:14px 0 8px;font-size:12px;font-weight:600;color:#52635b;letter-spacing:.2px}
.price-labor-tasks li span small{display:block;font-size:11px;color:var(--muted);font-weight:400}

/* The cost summary on Pricing breakdown and Cost projection stays at the top while the lists scroll under it. On a phone
   it sits just below the pinned 3D view (--pj-sticky-top, set from the view's height). */
/* A page-coloured holder is what pins, so nothing shows past the boxes' rounded corners. */
.pj-sticky{position:sticky;top:var(--pj-sticky-top,0px);z-index:4;background:#fafbf8;padding-top:10px;margin-top:-10px}
#price-estimate-card{box-shadow:0 10px 18px -12px #1720243d}

/* Phones: once the 3D view has collapsed to its strip, shade the strip and keep the progress ring readable in it. */
@media(max-width:850px){
 body.viewport-collapsed .viewport::after{content:'';position:absolute;left:0;right:0;bottom:0;height:56px;background:#e9ede8f2;border-bottom:1px solid #d5ddd6;pointer-events:none;z-index:5}
 body.viewport-collapsed #viewport-project-progress{top:auto;bottom:6px;left:12px;width:44px;height:44px;min-height:44px;z-index:7}
 body.viewport-collapsed #viewport-project-progress span{font-size:14px;letter-spacing:-.4px}
 body.viewport-collapsed #viewport-project-progress small{font-size:8px}
 body.viewport-collapsed .viewport #comment-toggle{bottom:6px;z-index:7}
}
@media(max-width:850px){body.viewport-collapsed[data-project-tab=tracking] #viewport-project-progress{visibility:hidden}}

/* Phones: a slimmer approval bar. */
@media(max-width:850px){
 #approval-dock{padding:6px 14px calc(6px + env(safe-area-inset-bottom));gap:4px}
 #approval-dock .approve-button{min-height:42px;font-size:14px;border-radius:8px}
 #approval-dock #approvals>summary{min-height:34px;font-size:13px}
 .approval-dock-visible .controls{padding-bottom:calc(92px + env(safe-area-inset-bottom))}
}

/* Save bars stay pinned to the bottom of their panel, like the Build guide's Back/Next dock. */
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.save-dock{position:fixed;right:0;bottom:0;width:370px;z-index:18;margin:0;padding:10px 25px calc(12px + env(safe-area-inset-bottom));background:#fafbf8;border-top:1px solid #d8e1d1;box-shadow:0 -6px 20px #17202408}
body.camera-positions main .controls{padding-bottom:180px}
@media(min-width:1500px){.save-dock{width:400px;padding-left:32px;padding-right:32px}}
.save-dock label{display:block;font-size:14px;font-weight:650;margin-bottom:7px;overflow-wrap:anywhere}.save-dock label span{font-weight:500;color:var(--muted)}
.save-dock input{width:100%;padding:11px 12px;font:inherit;font-size:16px;border:1px solid #bdc9bd;border-radius:7px;background:#fff;color:var(--ink)}
.save-dock .camera-actions{grid-template-columns:1fr 1fr;margin-top:8px}.save-dock .camera-actions button{min-height:44px}
#camera-save-form button[type=submit],#shot-lighting-panel .save-dock button[type=submit]{background:var(--ink);color:#fff;border-color:var(--ink)}#camera-save-form button[type=submit]:disabled,#shot-lighting-panel .save-dock button[type=submit]:disabled{opacity:.5}
.save-dock [role=status]{min-height:0;margin:0 0 8px;font-size:13px;line-height:1.45;overflow-wrap:anywhere}.save-dock [role=status]:empty{display:none}
#lighting-setups{margin-top:22px}#lighting-refresh{padding:8px 12px;border:1px solid var(--line);border-radius:7px;background:transparent;font-size:13px}
#lighting-setup-list{display:grid;gap:8px;margin:14px 0}
#lighting-deleted{margin-top:16px}#lighting-deleted-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:14px}
.camera-row-actions button:only-child{color:#90392e}
#lighting-setup-list .camera-row-actions .lighting-default{color:var(--ink)}#lighting-setup-list .camera-row-actions .lighting-default[aria-pressed=true]{color:#38542c;font-weight:650;background:#eef5e6}
@media(max-width:850px){
 /* One compact row on phones so the bar does not crowd the controls: name, then Update (only when it applies) and Save. */
 .save-dock{left:0;width:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 16px calc(8px + env(safe-area-inset-bottom))}
 .save-dock label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
 .save-dock [role=status]{grid-column:1/-1;margin:0}
 .save-dock .camera-actions{display:flex;gap:6px;margin:0}.save-dock .camera-actions button{padding:0 12px;font-size:13px;white-space:nowrap}
 .save-dock .camera-actions button:disabled:not([type=submit]){display:none}
 body.camera-positions main .controls{padding-bottom:96px}
}
@media(max-width:850px) and (orientation:landscape){.save-dock{left:auto;width:max(280px,42%)}}

/* Build step layout: what you need in one compact card, then every instruction numbered in order. */
#step-needs{margin:4px 0 20px;padding:12px 14px;border:1px solid #dbe3d6;border-radius:10px;background:#f6f8f3}
#step-needs h3,.step-do-title{font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:#5f7457;margin:0 0 8px;font-weight:700}
#step-needs dl{margin:0;display:grid;gap:8px}
.need-row{display:grid;grid-template-columns:76px minmax(0,1fr);gap:10px;align-items:start}.need-row[hidden]{display:none}
.need-row dt{font-size:12px;font-weight:650;color:#5f6d66;padding-top:1px}.need-row dd{margin:0;font-size:14px;line-height:1.45;color:#22322b;overflow-wrap:anywhere}
#step-needs #step-spec{margin:0;padding:0;background:none;font-size:14px;color:#22322b}
#step-needs #step-fasteners{background:none;border:0;padding:0;margin:0}
#step-needs #step-fasteners-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
#step-needs #step-fasteners-list strong{display:block;font-size:14px;font-weight:650;color:#22322b}
#step-needs #step-fasteners-list span{display:block;font-size:13px;line-height:1.45;color:#56655e;margin-top:2px}
#step-needs #step-tools{font-size:14px}
#step-needs #guide-cut-link{margin-top:10px}
.step-do-title{margin-top:14px}
#step-actions{counter-reset:instruction;list-style:none;margin:0 0 18px;padding:0;display:grid;gap:12px}
#step-actions li{counter-increment:instruction;position:relative;padding-left:36px;font-size:16px;line-height:1.5;color:#1f2e27}
#step-actions li:before{content:counter(instruction);position:absolute;left:0;top:0;width:24px;height:24px;display:grid;place-items:center;background:#2f4a2b;color:#fff;border-radius:50%;font-size:12px;font-weight:700}
@media(max-width:850px){.building #step-actions li{font-size:15px}.need-row{grid-template-columns:68px minmax(0,1fr)}}

#price-add-form .price-tax-choice{display:flex;align-items:center;gap:8px}#price-add-form #price-taxable{width:18px;height:18px;padding:0;flex:none}

.price-pickup-unknown{font-size:11px;color:#687267}

/* Design panel, Oct 15 redesign: an accordion whose closed headers are the design summary. */
.design-head{align-items:center;margin-bottom:12px}
.design-head h2{margin:0;font-size:22px}
.acc{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
#figure-controls.acc{margin-top:12px;padding:0;border-top:1px solid var(--line)}
.acc-item+.acc-item{border-top:1px solid var(--line)}
.acc-heading{margin:0;font:inherit}
.acc-head{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto 16px;align-items:center;gap:10px;min-height:58px;padding:0 16px;background:none;text-align:left;color:var(--ink)}
.acc-head:hover{background:#f6f8f4}
.acc-title{font-size:16px;font-weight:650;letter-spacing:-.2px}
.acc-value{font-size:14px;color:#4a5856;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acc-dot{width:14px;height:14px;border-radius:50%;border:1px solid #0000002a}
.acc-dot[hidden]{display:block;visibility:hidden}
.acc-dot.oak{background:linear-gradient(135deg,#c9a173,#9a7148)}
.acc-chevron{width:16px;height:16px;color:#6b7774;transition:transform .18s}
.acc-item.open>.acc-heading .acc-chevron{transform:rotate(180deg)}
.acc-item.open>.acc-heading .acc-head{background:#f6f8f4}
.acc-body{padding:4px 16px 20px;background:#fff}
.acc-body>.field:first-child,.acc-body>div>.field:first-child{margin-top:12px}
#figure-controls .acc-head{grid-template-columns:auto minmax(0,1fr) 16px}
.figure-section{border-top:0;padding-top:0}
.choice button.has-icon{align-items:center;text-align:center;gap:4px;padding:8px 6px}
.choice-icon{width:40px;height:28px;color:#5c6966}
.choice button[aria-pressed=true] .choice-icon{color:var(--ink)}
.choice button{min-height:46px}
.slider-field input[type=range]{width:100%}
.ticks{position:relative;height:30px;margin-top:4px}
.ticks button{position:absolute;top:0;transform:translateX(-50%);min-height:28px;padding:0 10px;border-radius:14px;background:#eef1ec;color:#3b4a47;font-size:13px;font-weight:600}
.ticks button:nth-child(1){left:9px;transform:none;left:0}
.ticks button:nth-child(2){left:50%}
.ticks button:nth-child(3){left:auto;right:0;transform:none}
.ticks button[aria-pressed=true]{background:var(--ink);color:#fff}
.plan-wrap{margin:14px 0 4px;padding:10px;border-radius:10px;background:#f4f6f2}
.plan{display:block;width:100%;height:auto;max-height:280px;overflow:hidden}
.plan-floor{fill:#e1e5de;stroke:#b9c2b6;stroke-width:1}
.plan-floor.bare{fill:none;stroke-dasharray:4 4}
.plan-lip{fill:#e1e5de;opacity:.55;stroke:#b9c2b6;stroke-dasharray:4 3}
.plan-wall{fill:none;stroke:var(--ink);stroke-width:5;stroke-linejoin:round;stroke-linecap:round}
.plan-platform{fill:var(--c);fill-opacity:.8;stroke:var(--ink);stroke-width:1.5}
.plan-dim{stroke:#4f8a24;stroke-width:2.5;stroke-dasharray:5 3}
.plan-label{fill:#244a0c;font-weight:700;paint-order:stroke;stroke:#ffffffe6;stroke-width:.32em;stroke-linejoin:round}
body:not(.building):not(.pricing):not(.camera-positions) #view-hint{display:none}
@media(max-width:850px){.acc-head{min-height:54px;padding:0 14px}.acc-body{padding:2px 14px 18px}.acc-value{font-size:13px}}
#view-switch{position:absolute;right:16px;top:16px;z-index:7;display:flex;padding:3px;gap:2px;border-radius:999px;background:#ffffffd9;border:1px solid #c9d3c6;box-shadow:0 2px 10px #17202414;backdrop-filter:blur(6px)}
#view-switch[hidden]{display:none}
#view-switch button{min-height:34px;padding:0 14px;border-radius:999px;background:none;color:#3b4a47;font-size:13px;font-weight:600}
#view-switch button[aria-pressed=true]{background:var(--ink);color:#fff}
body:not(.building):not(.pricing):not(.camera-positions) #construction-view-status{top:62px;right:18px}
@media(max-width:850px){#view-switch{right:10px;top:10px}#view-switch button{min-height:32px;padding:0 11px;font-size:12px}}
