:root{--ink:#28352f;--muted:#727971;--paper:#f7f7f3;--line:#dddeda;--accent:#866340}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.5 Arial,sans-serif}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #af8754;outline-offset:3px}[hidden]{display:none!important}header{height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;border-bottom:1px solid var(--line);font-size:14px}header>span:nth-child(2){letter-spacing:.15em;font-size:12px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;font:30px Georgia}.brand>span{font:600 23px Arial}main{max-width:1640px;margin:auto;padding:36px 4vw 0}.intro{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:30px}.eyebrow{font-size:12px;letter-spacing:.15em;color:var(--accent);margin:0 0 10px}h1{font:400 clamp(28px,3vw,44px)/1.12 Georgia;margin:0}.intro>p{color:var(--muted);font-size:14px}.workspace{display:grid;grid-template-columns:340px minmax(0,1fr);gap:28px;align-items:start}.settings{background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden}.settings section{padding:23px;border-bottom:1px solid var(--line)}.settings section:last-child{border:0}h2{font-size:16px;margin:0 0 18px;display:flex;align-items:center;gap:10px;font-weight:600}h2 b{font:12px Arial;color:var(--accent)}h2>span{margin-left:auto;font:12px Arial;color:var(--muted)}.dimension{display:grid;grid-template-columns:1fr 78px;gap:5px;margin:12px 0;font-size:14px;align-items:center}.dimension input[type=number]{width:78px;border:1px solid var(--line);border-radius:5px;padding:5px 7px}.dimension input[type=range]{grid-column:1/-1;width:100%;accent-color:var(--ink);height:14px;margin:8px 0}input[type=range]{cursor:pointer}.swatches{display:flex;gap:12px}.swatch{width:49px;height:49px;border-radius:50%;border:4px solid white;box-shadow:0 0 0 1px #deded8}.swatch[aria-pressed=true]{box-shadow:0 0 0 2px var(--ink)}.swatch.oak{background:#c0a378 url('./assets/oak.jpg') center/150px}.swatch.walnut{background:linear-gradient(#65412a99,#65412a99),url('./assets/oak.jpg') center/150px}.swatch.graphite{background:#414645}.swatch.white{background:#eae8df}.hint{font-size:13px;color:var(--muted);line-height:1.6;margin:12px 0 0}.row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:13px 0;font-size:14px}select{min-width:0;max-width:190px;padding:8px 6px;border:1px solid var(--line);border-radius:5px;background:white;font-size:14px}.choices{display:flex;gap:5px}.choices button,.leaf-tabs button{border:1px solid var(--line);background:white;border-radius:5px;padding:8px;font-size:13px;flex:1}.choices button[aria-pressed=true],.leaf-tabs button[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}#doorConfig{padding-top:12px}.leaf-tabs{display:flex;gap:4px;margin:17px 0}.segment{background:#f5f5f1;border-radius:7px;padding:10px;margin:10px 0}.segment .row{margin:5px 0}.text-button{background:none;border:none;color:var(--accent);text-decoration:underline;font-size:13px;padding:8px 0}.visual-column{position:sticky;top:18px}.scene-card{border:1px solid var(--line);border-radius:12px;background:#eeede8;overflow:hidden}.scene-heading,.scene-bottom{display:flex;justify-content:space-between;gap:10px;padding:18px 22px;font-size:12px;color:#697167}.scene-heading{letter-spacing:.08em}.scene-heading span:last-child{letter-spacing:0}#stage{height:clamp(390px,54vh,640px);width:100%;position:relative;touch-action:none;cursor:grab}#stage:active{cursor:grabbing}#stage canvas{display:block;width:100%;height:100%;position:absolute;inset:0}#loading{position:absolute;top:45%;width:100%;text-align:center;color:var(--muted)}.view-tools{display:flex;gap:8px;justify-content:center;padding:10px 10px 0}.view-tools button{background:#ffffffb3;border:1px solid #d6d8d1;border-radius:30px;padding:9px 16px;font-size:13px}.view-tools button[aria-pressed=true]{background:var(--ink);color:white}.scene-bottom{font-size:12px;align-items:center}.scene-bottom span:first-child{font-size:14px;color:var(--ink)}.estimate{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:24px 2px;gap:12px}.estimate span{font-size:13px;color:var(--muted)}.estimate strong{display:block;font:32px Georgia;margin-top:2px}.estimate button{background:var(--ink);border:0;color:#fff;border-radius:7px;padding:14px 24px}.estimate p{flex-basis:100%;font-size:12px;color:var(--muted);margin:0;max-width:620px}footer{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);padding:30px 0;border-top:1px solid var(--line);margin-top:35px}@media(min-width:1500px){.workspace{grid-template-columns:370px minmax(0,1fr)}}@media(max-width:850px){header{height:64px}header>span:nth-child(2){display:none}.intro{display:block}.intro>p{margin:12px 0}.workspace{display:flex;flex-direction:column}.visual-column{position:static;order:-1;width:100%}.settings{width:100%}#stage{height:440px}.scene-bottom span:last-child{display:none}main{padding-top:24px}.estimate{padding:15px 0}.scene-heading{padding:14px}.settings section{padding:20px}.row select{max-width:65%}footer{display:block}footer span{display:block}}@media(max-width:420px){#stage{height:355px}.view-tools{gap:4px;flex-wrap:wrap}.view-tools button{font-size:12px;padding:8px 10px}.scene-bottom{padding:14px}.intro h1{font-size:29px}}
.selected-decor{display:flex;gap:12px;align-items:center;padding:12px;background:#f5f3ee;border:1px solid var(--line);border-radius:8px;margin:16px 0}.selected-decor img{flex:none;width:56px;height:56px;object-fit:cover;border-radius:5px}.selected-decor>div{min-width:0}.selected-decor span{display:block;font-size:12px;color:var(--accent);margin-bottom:3px}.selected-decor strong{display:block;font-size:14px;line-height:1.35;font-weight:500}.decor-search-label{display:block;font-size:14px;margin:16px 0 6px}#decorSearch{width:100%;min-width:0;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:white;font-size:16px}.decor-category{margin-bottom:8px}.decor-category select{font-size:14px}.decor-count{font-size:13px;color:var(--muted);margin:12px 0 8px}.decor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:350px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b1b8ae transparent;padding:4px 7px 4px 4px;scroll-padding:5px}.decor-card{position:relative;min-width:0;padding:0 0 9px;display:flex;flex-direction:column;text-align:left;border:1px solid #dddeda;border-radius:7px;background:white;overflow:hidden;transition:border-color .15s,box-shadow .15s}.decor-card:hover{border-color:var(--accent)}.decor-card[aria-pressed=true]{border-color:var(--ink);box-shadow:0 0 0 2px var(--ink)}.decor-card[aria-pressed=true]:after{content:'✓';position:absolute;right:6px;top:6px;width:24px;height:24px;text-align:center;line-height:24px;border-radius:50%;background:var(--ink);color:white;font-size:16px}.decor-card img{display:block;width:100%;height:86px;object-fit:cover;border-bottom:1px solid #0000000b}.decor-card strong{font-size:13px;padding:8px 8px 3px;line-height:1.3;overflow-wrap:anywhere}.decor-card>span{display:block;padding:0 8px;font-size:14px;line-height:1.3;overflow-wrap:anywhere}.decor-status{font-size:13px;line-height:1.4;margin:10px 0 0;color:var(--accent)}.decor-status:empty{display:none}.decor-empty{grid-column:1/-1;font-size:14px;padding:15px 8px;margin:0;color:var(--muted)}.decor-note{font-size:12px}.decor-source{display:inline-block;color:var(--accent);font-size:13px;margin-top:8px;text-underline-offset:3px}@media(min-width:550px) and (max-width:850px){.decor-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:850px){.decor-grid{max-height:375px}.decor-card img{height:105px}}
.bay-tabs{display:flex;gap:7px;margin:16px 0 10px;flex-wrap:wrap}.bay-tabs button{border:1px solid var(--line);background:white;border-radius:6px;min-width:36px;padding:7px 10px;font-size:14px}.bay-tabs button[aria-pressed=true]{background:var(--ink);color:white}.bay-info{margin:0 0 15px;color:var(--accent);font-size:14px}.add-items{display:flex;flex-wrap:wrap;gap:6px}.add-items button{background:#f1f3ed;border:1px solid #d4dacc;border-radius:6px;padding:8px;font-size:14px;flex:1;white-space:nowrap}.add-items button:hover{background:#e4eadb}.filling-item{border:1px solid var(--line);border-radius:7px;margin:9px 0;padding:9px 11px;background:#fafbf7}.filling-item.selected{border-color:#ad9069;background:#f5f0e8}.item-heading{display:flex;align-items:center;justify-content:space-between}.select-item{padding:0;border:0;background:none;font-size:14px;font-weight:600;text-align:left}.remove-item{border:0;background:none;font-size:22px;line-height:1;padding:2px 5px;color:var(--muted)}.filling-item input{width:86px;min-width:0;padding:5px 7px;border:1px solid var(--line);border-radius:4px;background:white;font-size:14px}.filling-item .row{margin:8px 0 0}.empty-bay{padding:16px 10px;background:#f5f6f1;color:var(--muted);font-size:14px;border-radius:6px}.filling-message{font-size:13px;color:#8b5a2c;line-height:1.5;margin:12px 0 0}.filling-message:empty{display:none}

#download:disabled{opacity:.65;cursor:wait}#downloadStatus:empty{display:none}#downloadStatus{color:var(--accent);font-size:13px}

.estimate-total small{display:block;color:var(--muted);font-size:11px;margin-top:5px;max-width:360px}.estimate-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.estimate-actions button{margin:0}.order-button{background:var(--accent)!important}.production-summary{flex-basis:100%;margin-top:12px;padding:22px;background:#e9ebe4;border:1px solid #d5d9ce;border-radius:10px}.production-summary[hidden]{display:none}.production-summary__head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}.production-summary__head h3{font:400 22px Georgia;margin:6px 0 0}.production-summary__head span:last-child{color:var(--accent);font-size:12px;text-align:right}.eyebrow{font-size:10px;letter-spacing:.13em;color:var(--accent)}.production-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:#d7dbd1;margin-bottom:14px}.production-metrics>div{padding:13px;background:#f7f8f3}.production-metrics strong{display:block;font:400 20px Georgia;color:var(--ink)}.production-metrics span{display:block;color:var(--muted);font-size:11px;line-height:1.3;margin-top:4px}.production-rows{border-top:1px solid #d7dbd1}.production-rows>div{display:flex;justify-content:space-between;gap:15px;padding:8px 0;border-bottom:1px solid #d7dbd1;color:var(--muted);font-size:13px}.production-rows strong{color:var(--ink);font-weight:600}.production-warnings{color:#8b5a2c;font-size:11px;line-height:1.5;margin:14px 0 0}.order-dialog{width:min(680px,calc(100vw - 32px));border:0;border-radius:12px;padding:0;color:var(--ink);box-shadow:0 24px 70px #18221955}.order-dialog::backdrop{background:#1b251d99}.order-dialog form{padding:28px}.order-dialog__head{display:flex;justify-content:space-between;align-items:flex-start}.order-dialog h2{font:400 30px Georgia;margin:7px 0 16px}.dialog-close{border:0;background:none;font-size:30px;line-height:1;color:var(--muted)}.order-dialog form>p{color:var(--muted);line-height:1.6;font-size:14px}.order-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}.order-fields label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted)}.order-field-wide{grid-column:1/-1}.order-fields input{padding:11px;border:1px solid var(--line);border-radius:5px}.order-consent{display:flex;gap:8px;align-items:flex-start;color:var(--muted);font-size:12px;line-height:1.5;margin:15px 0}.order-submit{border:0;background:var(--ink);color:#fff;padding:13px 18px;border-radius:6px}.order-submit:disabled{opacity:.55}.order-status{color:var(--accent)!important;font-size:13px!important}.order-dialog[open]{animation:dialog-in .18s ease-out}@keyframes dialog-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(max-width:850px){.production-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.estimate-actions{justify-content:flex-start}.order-dialog form{padding:22px}}@media(max-width:480px){.production-summary{padding:16px}.production-summary__head{display:block}.production-summary__head span:last-child{display:block;text-align:left;margin-top:8px}.order-fields{grid-template-columns:1fr}.order-field-wide{grid-column:auto}}
