@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700&display=swap');
:root{--ink:#263d36;--muted:#7a857d;--green:#245749;--cream:#f6f5ef;--line:#e1e5dd;--orange:#db9f58}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--cream);font:13px 'Noto Sans TC',system-ui,sans-serif}button,input,select{font:inherit}button{cursor:pointer;background:white;border:1px solid var(--line);border-radius:8px;padding:9px 12px;color:var(--ink);transition:background .15s,transform .15s}button:hover{background:#eef2e9;border-color:#b0c2b6}button:disabled{opacity:.4;cursor:default}button.active,.primary{background:var(--green);color:#fff;border-color:var(--green)}button.danger{color:#b74f3d}input,select{min-width:0;width:100%;border:1px solid var(--line);padding:9px;border-radius:7px;background:#fff;color:var(--ink)}input[type=checkbox]{width:auto;accent-color:var(--green)}input[type=color]{height:36px;padding:3px}input[type=range]{padding:0}label{display:block;color:#66766c;font-size:12px;margin:12px 0}label>input,label>select{margin-top:6px}header{height:80px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:28px;padding:0 26px}.brand{text-decoration:none;display:flex;gap:12px;align-items:center;color:var(--ink);font-weight:700;font-size:19px;letter-spacing:1px;min-width:235px}.brand-icon{background:var(--green);color:#f3dcac;font-size:31px;padding:0 9px;border-radius:10px}.brand small{display:block;font-size:9px;letter-spacing:3px;margin-top:3px;color:#8b9387}.project-head{flex:1}.project-head input{font-weight:600;border:0;padding:0;background:transparent;max-width:360px}.project-head>span{display:block;color:var(--muted);font-size:10px;margin-top:5px}.header-actions{display:flex;gap:8px}.header-actions .primary{padding:11px 18px}.header-actions .primary span{margin-left:20px}.workspace{height:calc(100dvh - 80px);display:grid;grid-template-columns:260px minmax(0,1fr) 272px}.panel{background:#fff;overflow-y:auto;padding:22px 20px}.left{border-right:1px solid var(--line)}.right{border-left:1px solid var(--line);display:flex;flex-direction:column}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:700;color:#8c9c8d}.side-heading h2{font-size:18px;margin:7px 0 24px}.segmented{display:flex;gap:3px;background:#f0f2ed;padding:4px;border-radius:9px}.segmented button{flex:1;border:0;background:transparent;padding:8px 6px;font-size:12px;white-space:nowrap}.segmented button.active{background:white;color:var(--green);box-shadow:0 2px 5px #243c3610}.wide{width:100%}.dashed{border-style:dashed;font-size:11px;margin-top:7px}.section-title{display:flex;align-items:center;justify-content:space-between;margin:24px 0 10px}.section-title h3{font-size:13px;margin:0}.section-title span{font-size:9px;color:var(--muted)}.catalog{display:grid;grid-template-columns:1fr 1fr;gap:8px}.catalog button{text-align:left;padding:10px;background:#f8f9f5;min-height:84px}.catalog svg{display:block;width:47px;height:35px;margin-bottom:8px;stroke:#55786a;stroke-width:1.7;fill:#d9e3d6}.catalog small{display:block;font-size:9px;color:var(--muted);margin-top:4px}.primitives{display:flex;gap:5px}.primitives button{flex:1;padding:9px 3px;font-size:11px}.primitives b{display:block;font-size:24px;color:#a78c64;margin-bottom:4px}.hint{font-size:10px;line-height:1.8;color:var(--muted)}.side-footer{border-top:1px solid var(--line);margin-top:25px;padding-top:15px;font-size:10px;color:var(--muted)}.side-footer button{border:0;padding:10px 0;font-size:10px;display:block}.dot{display:inline-block;width:6px;height:6px;background:#79a58b;border-radius:50%;margin-right:5px}main{min-width:0;display:flex;flex-direction:column;padding:24px 24px 0;overflow:hidden}.canvas-top{display:flex;align-items:center;gap:7px;margin-bottom:20px}.canvas-top>div{flex:1}.canvas-top h1{font-size:19px;letter-spacing:.5px;margin:7px 0 0}.icon-button{font-size:20px;padding:3px 10px}.viewport{position:relative;min-height:260px;flex:1;border:1px solid #dce2d7;border-radius:16px;background:#e9ede4;overflow:hidden}.viewport canvas{display:block;touch-action:none;width:100%;height:100%}#plan,#three{position:absolute;inset:0}#plan{display:none}#three canvas{outline:none}.viewbar{position:absolute;left:16px;top:16px;display:flex;gap:6px}.viewbar .segmented{background:#ffffffde;box-shadow:0 3px 10px #263d3610}.viewbar .segmented button.active{background:var(--green);color:white}.scene-chips{position:absolute;top:72px;left:20px;display:flex;gap:6px;pointer-events:none}.scene-chips span{background:#ffffffbd;padding:5px 9px;border-radius:20px;font-size:10px;color:#617664}.view-bottom{position:absolute;bottom:16px;left:16px;right:16px;display:flex;align-items:center;justify-content:space-between;gap:6px}.view-bottom>span{font-size:10px;color:#77867b;background:#f7f8f0bb;border-radius:5px;padding:5px}.view-bottom button{font-size:11px}.scene-footer{display:flex;gap:14px;align-items:center;min-height:56px;font-size:10px;color:var(--muted);flex-wrap:wrap}.scene-footer label{font-size:10px;margin:0;display:flex;gap:3px;align-items:center}.scene-footer label input{margin:0}.scene-footer button{margin-left:auto;background:transparent;border:0;padding:8px 0;font-size:11px;color:var(--green)}.inspector-tabs{display:flex;border-bottom:1px solid var(--line);margin:-6px -4px 18px}.inspector-tabs button{border:0;border-radius:0;background:transparent;flex:1;padding:12px 0;color:var(--muted)}.inspector-tabs button.active{color:var(--green);border-bottom:2px solid var(--green)}#properties{flex:1}.empty{text-align:center;padding:35px 8px;color:var(--muted);line-height:1.8}.empty .empty-icon{font-size:40px;color:#b9cabb;margin-bottom:15px}.empty h3{color:var(--ink);font-size:14px}.empty p{font-size:11px}.info-card{padding:14px;background:#f4f6ef;border:1px solid var(--line);border-radius:10px;font-size:11px;line-height:1.8;margin-top:24px;text-align:left}.info-card strong{display:block;color:var(--green);margin-bottom:5px}.field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.field-grid.two{grid-template-columns:1fr 1fr}.field-grid label{margin:5px 0}.field-grid input{padding:8px 5px}.property-title{font-size:15px;margin:0 0 4px}.badge{font-size:10px;background:#edf1e8;border-radius:4px;padding:3px 6px;display:inline-block}.button-row{display:flex;gap:5px;flex-wrap:wrap;margin:12px 0}.button-row button{font-size:11px;flex:1}.capacity{padding-top:18px;margin-top:24px;border-top:1px solid var(--line)}.capacity>div:first-child{display:flex;justify-content:space-between;font-size:10px}.capacity strong{font-weight:500}.meter{height:5px;background:#eef1ea;margin-top:9px;border-radius:4px;overflow:hidden}.meter span{display:block;height:100%;background:#76a38b;width:0}.capacity p{font-size:9px;color:var(--muted)}.object-row{display:flex;align-items:center;gap:7px;border-bottom:1px solid #edf0e9;padding:9px 0}.object-row button{flex:1;text-align:left;border:0;font-size:11px;padding:6px}.object-row input{width:14px}.warning{color:#9e6623;background:#fff4dc;padding:10px;border-radius:7px;font-size:11px;line-height:1.7}.mobile-nav{display:none}dialog{width:min(560px,calc(100vw - 30px));max-height:85dvh;overflow:auto;border:0;border-radius:18px;padding:30px;color:var(--ink);box-shadow:0 20px 100px #1c302640}dialog::backdrop{background:#18362e65;backdrop-filter:blur(3px)}dialog h2{font-size:23px;margin:10px 0}dialog p,dialog li{font-size:13px;line-height:1.9;color:#6c7c70}dialog ul{padding-left:20px}dialog .dialog-actions{display:flex;gap:9px;margin-top:22px;justify-content:flex-end}dialog .dialog-actions button{flex:1}#toast{position:absolute;left:50%;bottom:75px;transform:translateX(-50%);max-width:90%;width:max-content;background:#264d43;color:white;font-size:12px;padding:11px 17px;border-radius:9px;box-shadow:0 5px 20px #0002;display:none;z-index:10}#dimensionList{max-height:220px;overflow:auto;background:#fff;border-top:1px solid var(--line)}table{border-collapse:collapse;width:100%;font-size:11px}th,td{padding:8px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}th{color:#6c7c70;background:#f3f6ef;position:sticky;top:0}.poster-row{display:flex;gap:6px;margin:8px 0;align-items:center}.poster-row button{font-size:10px;padding:7px;flex:1}.poster-row span{font-size:10px}.image-preview{max-width:100%;max-height:100px;object-fit:contain;background:#e8eadd;border-radius:6px}.part-row{border:1px solid var(--line);padding:7px;border-radius:7px;margin:8px 0}.part-row summary{cursor:pointer;font-size:11px}.detail-link{font-size:11px;color:var(--green)}[hidden]{display:none!important}@media(min-width:1600px){.workspace{grid-template-columns:280px minmax(0,1fr) 300px}main{padding:30px 36px 0}.canvas-top h1{font-size:23px}}@media(max-width:1150px){.workspace{grid-template-columns:220px minmax(0,1fr) 230px}.panel{padding:18px 13px}main{padding:20px 12px 0}.brand{min-width:200px}.canvas-top h1{font-size:16px}.scene-footer{gap:7px}.view-bottom>span{max-width:170px}.header-actions .primary span{display:none}}@media(max-width:850px){header{height:68px;padding:0 14px;gap:10px}.brand{min-width:0;font-size:15px}.brand-icon{font-size:25px}.brand small{font-size:7px;letter-spacing:1px}.project-head{display:none}.header-actions{margin-left:auto}.header-actions button{font-size:11px;padding:9px!important}.workspace{height:calc(100dvh - 124px);display:block;position:relative}main{height:100%;padding:16px 12px 0}.canvas-top{margin-bottom:13px}.canvas-top h1{font-size:16px}.left,.right{display:none;position:absolute;inset:0;z-index:15;padding:22px 24px;overflow:auto}.workspace.show-left .left{display:block}.workspace.show-right .right{display:flex}.catalog{grid-template-columns:repeat(3,1fr)}.mobile-nav{display:flex;height:56px;background:#fff;border-top:1px solid var(--line);padding:6px 10px;gap:8px}.mobile-nav button{flex:1;font-size:12px;border:0}.viewbar{left:9px;top:10px;right:9px}.viewbar .segmented{flex:1}.viewbar .segmented button{font-size:11px}.scene-chips{left:13px;top:62px}.scene-footer{min-height:56px;gap:8px}.scene-footer>span{font-size:9px}.view-bottom{left:10px;right:10px;bottom:10px}.view-bottom>span{font-size:9px;max-width:170px}.view-bottom button{padding:8px}.capacity{margin-top:auto;padding-top:18px}.side-footer{margin-bottom:20px}#dimensionList{max-height:150px}.inspector-tabs{flex-shrink:0}.field-grid input{padding:10px}.eyebrow{font-size:8px}}@media print{body{background:white}}
.position-choice{width:100%;display:block;text-align:left;margin:12px 0;padding:17px;border:1px solid #cad8ca;background:#f6f8f0}.position-choice strong{display:block;font-size:14px;margin-bottom:7px}.position-choice span{display:block;font-size:12px;line-height:1.8;color:#6c7c70}.position-choice:hover{border-color:#245749;background:#edf4e8}
.site-credit{position:fixed;right:17px;bottom:10px;z-index:20;font-size:11px;color:#537461;text-decoration:none;background:#fffef2ed;border:1px solid #d9e2d3;border-radius:20px;padding:5px 10px;box-shadow:0 2px 9px #243c3610}.site-credit:hover{background:#e7efe1;color:#214f46}.right{padding-bottom:45px}@media(max-width:850px){.site-credit{bottom:63px;right:15px;font-size:10px;padding:4px 8px}.scene-footer{padding-bottom:24px}.right{padding-bottom:42px}}
.coffee-card{margin-top:25px;padding:17px 13px;border-radius:14px;background:linear-gradient(145deg,#fff2d9,#f3e6ce);border:1px solid #e3d4b9;color:#5b4730}.coffee-cup{font-size:32px;float:left;margin-right:9px;color:#9c703f}.coffee-card strong{font-size:12px;display:block;margin-top:2px}.coffee-card span{display:block;font-size:10px;line-height:1.8;color:#927653}.coffee-card button{width:100%;margin-top:13px;background:#6b5137;color:#fff7e9;border:0;font-size:11px}.coffee-admin-link{display:block;color:#52765d;margin:12px 0;font-size:10px}#coffeeMobile{display:none}#coffeeDialog{width:min(530px,calc(100vw - 24px))}.coffee-price{display:flex;align-items:center;justify-content:space-between;padding:13px 17px;background:#f6eedf;border-radius:10px;margin:20px 0}.coffee-price strong{font-size:24px;color:#805731}.coffee-price span{color:#8c785b;font-size:12px}#coffeeDialog small{display:block;font-size:10px;margin-top:5px;color:#89917e}#coffeeDialog textarea{width:100%;font:inherit;resize:vertical;padding:10px;border:1px solid #d9dfd3;border-radius:7px;margin-top:6px}.coffee-check{display:flex;align-items:flex-start;gap:8px;line-height:1.7}.coffee-check input{flex-shrink:0;margin-top:4px}.coffee-gentle{font-size:12px;line-height:1.9;padding:14px 16px;border-radius:10px;background:#f5f1e8;color:#807058}.coffee-privacy{font-size:10px!important;line-height:1.8!important;color:#8a9386!important}.coffee-honeypot{position:absolute;left:-10000px;opacity:0}.coffee-pay{display:block;text-align:center;background:#06a653;color:white;padding:14px;border-radius:9px;text-decoration:none;font-weight:600;margin:18px 0}.coffee-qr{display:block;width:220px;max-width:90%;height:auto;margin:20px auto;border:15px solid white;image-rendering:pixelated;box-shadow:0 0 0 1px #e1e5da;border-radius:4px}.coffee-saved{font-size:13px;color:#3b7d59;font-weight:600}.coffee-reference{font-size:10px!important;overflow-wrap:anywhere}.required{font-size:9px;color:#b3885c;margin-left:5px}@media(max-width:850px){#coffeeMobile{display:block;position:fixed;right:15px;bottom:91px;z-index:20;font-size:10px;padding:6px 10px;background:#f5e7ce;color:#74522b;border:1px solid #e4d2b1;box-shadow:0 2px 10px #573d1510}.view-bottom{bottom:39px}#coffeeDialog{padding:22px}}

#coffeeFloat{position:fixed;z-index:45;left:50%;top:76px;transform:translateX(-50%);width:78px;height:88px;border:1px solid #e7d2b2;border-radius:25px;background:#fff0d8;box-shadow:0 5px 20px #63492b26;display:flex;flex-direction:column;align-items:center;justify-content:center;touch-action:none;user-select:none;cursor:grab;padding:5px}#coffeeFloat:active{cursor:grabbing}#coffeeFloat svg{width:52px;height:55px}#coffeeFloat span{font-size:10px;color:#765334;white-space:nowrap}#coffeeFloat:focus-visible{outline:3px solid #30856a}

#coffeeFloat{width:136px;height:110px;text-decoration:none;gap:2px}#coffeeFloat svg{width:32px;height:32px}#coffeeFloat strong{font-size:15px;color:#664f70}#coffeeFloat span{font-size:10px}

#wishlistSupport{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;text-decoration:none;border-radius:11px;padding:3px;color:#fff;box-shadow:0 0 13px #ce64f577;transition:transform .18s,box-shadow .18s}#wishlistSupport::before,#wishlistSupport::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(110deg,#ff558c,#ffb24c,#fff66b,#58e6aa,#55ccff,#9b83ff,#ff65d0,#ff558c);background-size:300% 100%;animation:wishlistNeon 5s linear infinite;z-index:-1;pointer-events:none}#wishlistSupport::after{inset:-3px;filter:blur(7px);opacity:.6;z-index:-2}.wishlist-copy{display:flex;flex-direction:column;align-items:center;gap:1px;padding:5px 10px;border-radius:8px;background:#252138;white-space:nowrap;font-size:10px;line-height:1.4}.wishlist-copy strong{font-size:13px;color:#fff6d9}.wishlist-copy small{font-size:9px;font-weight:400}#wishlistSupport:hover{transform:translateY(-1px);box-shadow:0 0 20px #ab72ff99}#wishlistSupport:focus-visible{outline:3px solid #5e41c4;outline-offset:5px}@keyframes wishlistNeon{from{background-position:0% 50%}to{background-position:150% 50%}}@media(prefers-reduced-motion:reduce){#wishlistSupport::before,#wishlistSupport::after{animation:none}#wishlistSupport{transition:none}}@media(max-width:1150px){header{gap:14px}.project-head{min-width:0}.brand{min-width:190px}}@media(max-width:850px){.wishlist-copy{padding:4px 6px;font-size:9px}.wishlist-copy strong{font-size:11px}.wishlist-copy small{font-size:8px}.header-actions{gap:6px}}@media(max-width:520px){header .brand{min-width:0;font-size:0;gap:0}header .brand small{display:none}header .brand-icon{font-size:24px;padding:0 6px}header{gap:6px;padding:0 8px}.header-actions{gap:5px}.header-actions button{font-size:10px;padding:7px!important}.wishlist-copy{padding:4px}.wishlist-copy strong{font-size:10px}.wishlist-copy small{font-size:7px}}@media print{#wishlistSupport{display:none}}

.furniture-template{min-width:0}.furniture-template button{width:100%;overflow-wrap:anywhere}.furniture-template [data-remove-template]{font-size:10px;padding:4px;background:transparent;border:0;color:#8c7064}.header-actions{flex:1;align-items:center}.project-head{flex:0 1 200px}#wishlistSupport{flex:1;min-width:0}.wishlist-copy{display:block;width:100%;text-align:center;white-space:nowrap;font-size:clamp(12px,1.45vw,21px);font-weight:700;padding:10px 12px}@media(max-width:1150px){.project-head{flex-basis:130px}}@media(max-width:850px){.wishlist-copy{font-size:clamp(10px,1.6vw,14px);padding:9px 6px}}@media(max-width:520px){.wishlist-copy{font-size:10px;padding:9px 3px}}

#wishlistSupport .wishlist-emphasis{display:inline-block;margin-inline:.18em;font-size:1.22em;font-weight:900;letter-spacing:.06em;color:#ffb7e8;animation:wishlistTextColor 6s linear infinite;text-shadow:0 0 8px currentColor}@keyframes wishlistTextColor{0%,100%{color:#ffb7e8}20%{color:#ffd78a}40%{color:#e3ff98}60%{color:#86ffe4}80%{color:#b8c4ff}}@media(prefers-reduced-motion:reduce){#wishlistSupport .wishlist-emphasis{animation:none}}
.price-input{width:110px;min-width:90px}.cost-total{font-size:18px;font-weight:800;color:var(--green,#245749);padding:12px;background:#eef4e7;border-radius:8px}#dimensionList input[type=number]{width:105px;min-width:85px}#dimensionList th{white-space:nowrap}
