@font-face{font-family:Studio;src:local('Aptos'),local('Inter'),local('Arial')}*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:Studio,Arial,sans-serif;color:#372f29;background:#f6f3ed}button,input,select{font:inherit}button{border:1px solid #ddd7cc;border-radius:10px;background:#fffdf9;padding:10px 13px;cursor:pointer;color:inherit;transition:background .16s,transform .16s}button:hover{background:#eee8df}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #bf6d47;outline-offset:3px}button:disabled{opacity:.4;cursor:not-allowed}.primary{background:#465947;color:white;border-color:#465947}.primary:hover{background:#344634}header{height:76px;display:flex;align-items:center;gap:36px;padding:0 30px;border-bottom:1px solid #ddd7cc;background:#fffdf9}.brand{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;white-space:nowrap}.brand b{display:grid;place-items:center;width:37px;height:37px;border-radius:50%;background:#d77750;font-size:24px}.brand strong{font-size:23px;letter-spacing:-1.3px}.project-title{font-size:16px;border-left:1px solid #d5cfc3;padding-left:32px}.project-title span{display:block;font-size:9px;letter-spacing:2px;margin-top:5px;color:#918373}.header-actions{margin-left:auto;display:flex;gap:8px}.header-actions button{font-size:12px}.steps{display:flex;justify-content:center;gap:35px;height:91px;align-items:center;border-bottom:1px solid #ddd7cc;background:#fdfbf7}.steps button{display:flex;text-align:left;align-items:center;gap:12px;background:none;border:0;padding:12px 20px;border-radius:0;position:relative}.steps i{font-style:normal;width:33px;height:33px;display:grid;place-items:center;border:1px solid #d8d0c4;border-radius:50%;font-size:12px}.steps span{font-size:13px;font-weight:600}.steps small{display:block;font-weight:400;font-size:11px;color:#8b8175;margin-top:4px}.steps .active{color:#536346}.steps .active i{background:#536346;color:white;border-color:#536346}.steps .active:after{content:'';position:absolute;bottom:-12px;left:20px;right:20px;height:3px;background:#536346}main{display:grid;grid-template-columns:minmax(0,1fr) 340px;height:calc(100dvh - 167px);min-height:530px}.workspace{min-width:0;display:flex;flex-direction:column;padding:28px 28px 12px}.canvas-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.eyebrow{font-size:9px;letter-spacing:2px;color:#8c7d6d;font-weight:600}h1{font-family:Georgia,serif;font-size:clamp(21px,2.25vw,32px);font-weight:400;letter-spacing:-.8px;margin:8px 0 0}h2{font-family:Georgia,serif;font-weight:400;font-size:27px;line-height:1.15;margin:10px 0 14px}h3{font-size:14px;font-weight:600;margin:18px 0 12px}p{font-size:13px;line-height:1.6;color:#817467}.view-toggle{display:flex;border:1px solid #ded8ce;border-radius:11px;padding:3px;background:#e9e5dc;flex-shrink:0}.view-toggle button{border:0;background:none;font-size:12px;padding:9px 13px}.view-toggle .active{background:#fffdf9;box-shadow:0 2px 6px #49372a10}.stage{position:relative;flex:1;min-height:330px;border-radius:18px;overflow:hidden;border:1px solid #ddd7cc;background:#f0ede6;isolation:isolate}#plan{width:100%;height:100%;display:block;touch-action:none;user-select:none}#plan[hidden],#three[hidden],[hidden]{display:none!important}#three{position:absolute;inset:0}#three canvas{width:100%;height:100%;display:block}.scene-badge{position:absolute;top:17px;left:20px;font-size:9px;letter-spacing:1.2px;pointer-events:none;color:#817566}.scene-badge span{display:block;font-size:10px;letter-spacing:0;margin-top:5px;color:#aaa093}.plan-tools,.camera-controls{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);display:flex;gap:5px;background:#fffdf9dd;backdrop-filter:blur(10px);padding:5px;border:1px solid #d9d1c3;border-radius:12px;white-space:nowrap}.plan-tools button,.camera-controls button{border:0;background:none;font-size:11px;padding:8px 10px}.camera-controls span{align-self:center;font-size:11px}.canvas-bottom{display:flex;justify-content:space-between;gap:15px;padding:14px 3px 0;font-size:11px;color:#8a7c6e;line-height:1.5}#area{color:#47533f;white-space:nowrap;font-weight:600}aside{border-left:1px solid #ddd7cc;background:#fffdf9;display:flex;flex-direction:column;min-height:0}.aside-scroll{overflow-y:auto;padding:25px 23px;flex:1;scrollbar-width:thin}.step-footer{padding:15px 20px;border-top:1px solid #e4ded3;display:flex;gap:8px}.step-footer button{font-size:12px}.step-footer .primary{flex:1}.intro{margin-top:0;font-size:12px}.shape-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.shape-grid button{display:flex;align-items:center;flex-direction:column;gap:9px;font-size:12px;padding:18px 4px}.shape-grid svg{width:60px;height:46px;stroke:#69775c;stroke-width:3;fill:#edf0e5}.wide{width:100%;margin-top:10px}.row{display:flex;gap:8px;align-items:center}.row>*{min-width:0;flex:1}.field{margin:13px 0}.field label{font-size:11px;font-weight:600;display:block;margin-bottom:7px;color:#776856}.field input[type=number],.field select,input[type=search]{width:100%;padding:11px;background:#fff;border:1px solid #dbd3c7;border-radius:9px;color:#3b322a}.field input[type=range]{width:100%;accent-color:#69775c}.note{font-size:10px;color:#968674;line-height:1.6;padding:11px 12px;background:#f5f1e9;border-radius:9px}.catalog{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.product{padding:0;overflow:hidden;text-align:left;background:#f5f1e9;border-color:#e9e3d9;border-radius:12px}.product img{width:100%;height:104px;object-fit:cover;display:block}.product .accessory-icon{height:85px;display:grid;place-items:center;font-family:Georgia;font-size:36px;color:#8b9778;background:#efeee3}.product strong{display:block;font-size:11px;line-height:1.4;padding:9px 10px 3px}.product small{display:block;padding:0 10px 10px;font-size:9px;color:#9b8d7c}.product.selected{outline:2px solid #667558}.chip-row{display:flex;gap:5px;overflow-x:auto;padding:10px 0}.chip-row button{border-radius:20px;font-size:10px;padding:6px 10px;white-space:nowrap}.chip-row .active{background:#e2e7d5;border-color:#adbaa0}.inspector{margin-top:22px;padding-top:18px;border-top:1px solid #e1d9ce}.inspector-head{display:flex;align-items:center;justify-content:space-between;gap:5px}.inspector-head h3{margin:0}.inspector-head button{padding:4px 9px}.swatches{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.swatch{width:29px;height:29px;border:3px solid white;border-radius:50%;padding:0;box-shadow:0 0 0 1px #d9d1c7}.swatch.chosen{box-shadow:0 0 0 2px #465947}.swatches input{width:31px;height:30px;padding:0;border:0;background:none;cursor:pointer}.fabric-row{display:flex;gap:6px}.fabric-row button{flex:1;font-size:11px;padding:10px 4px}.fabric-row .chosen{border-color:#677957;background:#edf0e4}.danger{color:#9e4c38}.item-list{margin:12px 0;display:grid;gap:5px}.item-list button{font-size:11px;text-align:left}.item-list button.active{background:#eaf0e2}.instruction-banner{background:#e8eddc;padding:12px;font-size:12px;border-radius:10px;color:#4f6044;margin:14px 0}.count{font-size:10px;color:#9d8e7c;margin-top:8px}#warnings{font-size:11px;color:#a05937;max-height:48px;overflow:auto;padding-top:5px}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);padding:13px 20px;background:#384b3c;color:white;border-radius:12px;box-shadow:0 5px 30px #0002;font-size:13px;z-index:30;pointer-events:none;opacity:0;transition:opacity .2s;max-width:90vw}#toast.visible{opacity:1}dialog{border:0;border-radius:20px;padding:32px;max-width:520px;width:92vw;color:#372f29;box-shadow:0 20px 90px #0003}dialog::backdrop{background:#312c2466;backdrop-filter:blur(4px)}dialog .close{float:right}.room-wall{cursor:pointer}.room-wall:hover{stroke:#c77a57}.wall-measure{cursor:pointer}.plan-object{cursor:grab}.plan-object:active{cursor:grabbing}
@media(max-width:1000px){main{grid-template-columns:minmax(0,1fr) 300px}.steps{gap:3px}.workspace{padding:20px 16px 10px}.canvas-top{align-items:flex-start;flex-direction:column}.aside-scroll{padding:20px 17px}}
@media(max-width:700px){header{height:61px;padding:0 14px;gap:12px}.brand strong{font-size:20px}.brand b{width:31px;height:31px;font-size:21px}.project-title{display:none}.header-actions{gap:5px}.header-actions button{font-size:10px;padding:8px}.steps{height:69px;gap:0;justify-content:space-around}.steps button{gap:5px;padding:9px 5px;flex-direction:column}.steps i{width:23px;height:23px;font-size:9px}.steps span{font-size:10px}.steps small{display:none}.steps .active:after{bottom:-5px;left:5px;right:5px}main{display:flex;flex-direction:column;height:auto;min-height:calc(100dvh - 130px)}.workspace{padding:15px 12px 8px}.canvas-top{flex-direction:row;align-items:center;gap:8px;margin-bottom:14px}h1{font-size:19px;max-width:220px;margin-top:5px}.eyebrow{font-size:7px;letter-spacing:1.2px}.view-toggle button{font-size:10px;padding:8px}.stage{height:43dvh;min-height:290px;flex:none}.canvas-bottom{font-size:10px}aside{border-left:0;border-top:1px solid #ddd7cc;min-height:270px}.aside-scroll{padding:18px;overflow:visible}.step-footer{position:sticky;bottom:0;background:#fffdf9f5;z-index:5;padding:12px 18px}.catalog{grid-template-columns:repeat(3,minmax(0,1fr))}.product img{height:90px}.camera-controls{gap:0;bottom:12px}.camera-controls button{padding:7px}.scene-badge{top:12px;left:14px;font-size:8px}.shape-grid{grid-template-columns:repeat(3,1fr)}.shape-grid button{padding:9px}.shape-grid svg{height:33px}.plan-tools{bottom:12px}.inspector{scroll-margin-top:12px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.inspector{margin:0 0 24px;padding:0 0 20px;border-top:0;border-bottom:1px solid #e1d9ce}

.opening-distances{padding:12px;background:#eee9db;border-radius:12px;font-weight:650;font-variant-numeric:tabular-nums;color:#63482f} #plan [data-opening]{touch-action:none}

.placed-items:empty{display:none}.placed-items{display:grid;gap:8px;padding:14px 0 18px}.placed-items label{font-weight:650;font-size:13px}.placed-items small{font-size:11px;line-height:1.5;color:#776f60}.placed-items select{width:100%;min-height:42px;border:1px solid #ddd5c8;border-radius:10px;background:#fffdf7;padding:8px}#three canvas{touch-action:none}

#curtain-type{width:100%;padding:12px;border:1px solid #d6cebf;border-radius:10px;background:#fffdf8}#curtain-color{width:100%;height:40px}

.model-loading{font-size:12px;line-height:1.5;color:#78664f;padding:0 8px}.model-loading button{margin:8px}button:disabled{opacity:.5;cursor:wait}

/* V14: prevent canvas minimum sizes from pushing controls below the viewport. */
@media(min-width:701px){html,body{overflow:hidden}main{min-height:0;height:calc(100dvh - 167px)}.workspace{min-height:0;overflow:hidden}.stage{min-height:0}#plan{position:absolute;inset:0}.canvas-top{flex-shrink:0;margin-bottom:12px}.canvas-bottom{flex-shrink:0}aside{overflow:hidden}.aside-scroll{min-height:0}.step-footer{flex-shrink:0}.model-loading{max-height:44px;overflow:auto}}
@media(min-width:701px) and (max-height:760px){header{height:60px}.steps{height:65px}.steps .active:after{bottom:-4px}main{height:calc(100dvh - 125px)}.workspace{padding:12px}.canvas-top{flex-direction:row;align-items:center}h1{font-size:22px}.eyebrow{display:none}.canvas-bottom{padding-top:7px}}
.plan-tools{max-width:calc(100% - 16px);flex-wrap:wrap;justify-content:center;bottom:10px;gap:2px}.plan-tools button{font-size:12px;padding:9px 10px}.plan-tools #fit{background:#465947;color:#fff;border-radius:8px}#plan-zoom{align-self:center;padding:0 7px;font-size:11px;font-variant-numeric:tabular-nums}.camera-controls{max-width:calc(100% - 16px);flex-wrap:wrap;justify-content:center}#plan{cursor:grab}.canvas-bottom #hint{min-width:0}
@media(max-width:700px){.plan-tools button{font-size:10px;padding:8px}.stage{min-height:260px}.canvas-bottom{flex-wrap:wrap;gap:4px}}

#plan{position:absolute;top:0;left:0;bottom:auto;height:calc(100% - 78px)}
