:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#26332d;background:#f6f5f0;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #86aa93;outline-offset:4px}[hidden]{display:none!important}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;border-bottom:1px solid #dedfd7;background:#fafaf6}.brand{display:flex;gap:12px;align-items:center;font-size:17px;font-weight:650;letter-spacing:2px}.brand svg{width:32px;fill:none;stroke:#365b47;stroke-width:1.4}.brand-en{display:block;font-size:8px;letter-spacing:3px;margin-top:5px;font-weight:500;color:#798379}.header-right{display:flex;align-items:center;gap:8px;font-size:11px;color:#737b71}.header-right b{color:#365b47;font-weight:550}.status-dot{width:5px;height:5px;background:#739278;border-radius:50%}.render-link{margin-left:24px;padding:10px 13px;border:1px solid #d9ddd1;border-radius:5px;color:#435143}.workspace{display:grid;grid-template-columns:300px 1fr;min-height:610px;height:calc(100svh - 78px)}.sidebar{background:#fafaf6;border-right:1px solid #dedfd7;padding:28px 26px;overflow:auto}.eyebrow{font-size:9px;letter-spacing:2.2px;color:#768777}.intro h1{font-size:23px;letter-spacing:-.6px;font-weight:550;margin:14px 0 10px}.intro p{font-size:12px;color:#8a8e83;margin:0 0 30px}h2{font-size:11px;font-weight:600;margin:0 0 13px;display:flex;align-items:center;justify-content:space-between}h2>span{font-size:8px;color:#999e92;font-weight:400;letter-spacing:1.4px}.view-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.view-button{position:relative;text-align:left;border:1px solid #e1e4da;background:transparent;border-radius:6px;color:#666f63;padding:13px 12px 11px;font-size:12px;transition:background .2s,border-color .2s}.view-button.active{background:#e9eee3;border-color:#a2b39a;color:#34513b}.view-button:hover{background:#eff1e9}.view-icon{font-size:15px;margin-right:7px}.view-sub{display:block;font-size:9px;margin-top:6px;margin-left:22px;color:#8b9484}.display-options{border-top:1px solid #e2e4dc;border-bottom:1px solid #e2e4dc;margin:23px 0;padding:16px 0}.switch-row{display:flex;align-items:center;justify-content:space-between;position:relative;cursor:pointer;padding:7px 0;font-size:11px}.switch-row small{display:block;font-size:9px;color:#949b8d;margin-top:4px}.switch-row input{position:absolute;right:0;width:32px;height:20px;opacity:0;cursor:pointer}.switch-row i{width:30px;height:17px;background:#daddd3;border-radius:20px;pointer-events:none;position:relative}.switch-row i:after{content:"";position:absolute;width:11px;height:11px;background:white;border-radius:50%;left:3px;top:3px;transition:transform .2s}.switch-row input:checked+i{background:#55745b}.switch-row input:checked+i:after{transform:translateX(13px)}.switch-row input:focus-visible+i{outline:3px solid #86aa93;outline-offset:3px}.specs dl{margin:0}.specs dl>div{display:flex;justify-content:space-between;align-items:center;margin:15px 0;font-size:10px}.specs dt{color:#929887}.specs dd{margin:0;color:#485541;font-size:11px}.specs small{font-size:9px;color:#929887}.side-note{margin-top:27px;padding-top:19px;border-top:1px solid #e2e4dc;color:#919889;font-size:10px;line-height:1.8}.side-note>span{color:#687561}.side-note p{margin:7px 0 10px}.side-note a{font-size:10px;color:#557052}.stage{position:relative;overflow:hidden;min-width:0;background:#eeeee7;isolation:isolate}#scene{position:absolute;inset:0;display:block;width:100%;height:100%;touch-action:none}.stage-heading{position:absolute;top:27px;left:29px;display:flex;align-items:center;gap:10px;font-size:11px;pointer-events:none}.tiny-line{width:18px;height:1px;background:#768471}.stage-small{font-size:8px;letter-spacing:1.8px;color:#99a08f}.stage-actions{position:absolute;top:20px;right:23px;display:flex;gap:6px}.stage-actions button{border:1px solid #dfe3d7;border-radius:5px;width:34px;height:34px;background:#fafbf7c9;color:#65785d;display:grid;place-items:center}.stage-actions svg{width:17px;fill:none;stroke:currentColor;stroke-width:1.4}.stage-actions button:hover{background:white}.stage-footer{position:absolute;bottom:23px;left:29px;right:29px;display:flex;justify-content:space-between;color:#919887;font-size:9px;letter-spacing:.4px;pointer-events:none}.loading,.error-panel{position:absolute;inset:0;display:grid;place-items:center;background:#eeeee7;z-index:5}.loading-card{text-align:center;color:#6c7a61}.loading-card h2{display:block;margin:20px 0 8px;font-weight:500;font-size:15px}.loading-card p{font-size:11px;color:#919987}.loader{display:inline-block;width:30px;height:30px;border:1px solid #ced6c8;border-top-color:#537147;border-radius:50%;animation:spin 1.2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-panel{padding:50px;display:flex;flex-direction:column;justify-content:center;gap:20px}.error-panel img{max-width:100%;max-height:55%;object-fit:contain;border-radius:8px}.error-panel h2{justify-content:center;font-size:18px}.error-panel p{font-size:12px;color:#7f8975}.error-panel button{padding:8px 16px;border:1px solid #8ba37e;border-radius:5px;background:#f6f8f0;color:#405837}.error-panel a{margin-left:14px;font-size:12px}.selection{position:absolute;bottom:58px;left:28px;display:flex;gap:24px;max-width:330px;background:#fafbf7ed;border:1px solid #e0e5d8;border-radius:7px;padding:16px 18px;box-shadow:0 8px 30px #5061470c}.selection span{font-size:8px;color:#849677;letter-spacing:1px}.selection strong{font-size:14px;display:block;margin:7px 0}.selection p{font-size:10px;line-height:1.7;margin:0;color:#89947f}.selection button{align-self:flex-start;background:none;border:0;color:#839279;font-size:19px;padding:0}#wall-labels{position:absolute;inset:0;pointer-events:none}.wall-label{position:absolute;font-size:10px;background:#f7f9efed;border:1px solid #a5b397;color:#48603e;padding:4px 7px;border-radius:4px;transform:translate(-50%,-50%);box-shadow:0 2px 8px #344c3112}.noscript{position:absolute;inset:0;display:grid;place-content:center;background:#eeeee7;gap:20px;font-size:14px}.noscript a{text-decoration:underline}
@media(min-width:1300px){.sidebar{padding:35px 29px}.workspace{grid-template-columns:320px 1fr}.intro p{margin-bottom:38px}.side-note{margin-top:35px}}@media(max-height:760px) and (min-width:801px){.sidebar{padding-top:20px}.intro p{margin-bottom:22px}.display-options{margin:17px 0;padding:10px 0}.side-note{margin-top:20px}.specs dl>div{margin:11px 0}}
@media(max-width:800px){.topbar{height:64px;padding:0 18px}.brand{font-size:14px;gap:9px}.brand svg{width:27px}.brand-en{font-size:7px}.header-right{font-size:10px}.render-link{display:none}.workspace{display:flex;flex-direction:column;height:auto;min-height:0}.stage{order:0;height:65svh;min-height:430px}.sidebar{order:1;border-right:0;border-top:1px solid #dedfd7;display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:25px 22px}.intro{grid-column:1/-1}.intro h1{font-size:22px;margin-top:10px}.intro p{margin-bottom:0}.views{grid-column:1/-1}.view-grid{grid-template-columns:repeat(4,1fr)}.view-button{padding:11px 9px}.view-sub{margin-left:0;font-size:8px}.display-options{border:0;margin:0;padding:0}.side-note{grid-column:1/-1;margin:0;padding-top:15px}.specs dl>div{margin:12px 0;gap:9px}.stage-heading{left:20px;top:25px}.stage-small{display:none}.stage-actions{right:17px;top:17px}.stage-footer{left:20px;right:20px;bottom:17px;font-size:8px;gap:10px}.selection{left:19px;bottom:46px;max-width:calc(100% - 38px)}.error-panel{padding:25px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

.components{border-bottom:1px solid #e2e4dc;padding-bottom:20px;margin-bottom:22px}.components select{width:100%;font:inherit;font-size:11px;background:#f1f3eb;border:1px solid #ced7c5;border-radius:5px;padding:10px;color:#44563b}.components p{font-size:10px;line-height:1.7;color:#849279;margin:9px 0}.move-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px}.components button{font-size:10px;color:#526846;border:1px solid #d8e0cf;background:#f3f5ee;border-radius:4px;padding:7px}.components button:disabled{opacity:.4;cursor:default}.component-actions{display:flex;gap:6px;margin-top:6px}.components .component-hint{font-size:9px;color:#929e88}.components .text-button{border:0;background:none;padding:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(max-width:800px){.components{grid-column:1/-1}.specs{grid-column:1/-1}.sidebar{row-gap:20px}}

.layout-editor{margin-top:20px;padding:10px 12px 12px;background:#eaf0e2;border:1px solid #cedac2;border-radius:6px}.edit-switch{font-weight:600}.layout-editor p{font-size:9px;line-height:1.5;color:#6d805f;margin:7px 0}.editor-toolbar{display:flex;gap:5px}.editor-toolbar button{flex:1;background:#f7f9f2;border:1px solid #d0dcc4;color:#5b734b;border-radius:4px;font-size:10px;padding:6px 3px;cursor:pointer}.editor-toolbar button:disabled{opacity:.4;cursor:default}.rotation-label{display:flex;justify-content:space-between;font-size:10px;color:#617a51;margin:12px 0 5px}#rotation-range{width:100%;accent-color:#66865a;margin:4px 0 12px}#scene.editing{cursor:grab}#scene.dragging{cursor:grabbing}@media(max-width:800px){.layout-editor{grid-column:1/-1;margin-top:0}}

.components #placement-warning{color:#a45a39}#component-measure{font-variant-numeric:tabular-nums}#snap-status{color:#397557}

.placement-feedback{position:absolute;left:29px;bottom:52px;padding:12px 16px;background:#fbfcf7ed;border:1px solid #d1ddc7;border-radius:7px;pointer-events:none;font-size:11px;color:#496341;box-shadow:0 5px 22px #344c310d}.placement-feedback strong{display:block;margin-bottom:6px}.placement-feedback span{display:block;line-height:1.8}#feedback-warning{color:#a45a39}
.mobile-tabs{display:none}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid #66865a;outline-offset:3px}button:active{transform:translateY(1px)}#scene.press-pending{box-shadow:inset 0 0 0 3px #72906555}
@media(max-width:800px){
 html,body{height:100%;overflow:hidden}body{--panel-height:43dvh}.topbar{height:56px;padding:0 16px;box-sizing:border-box}.brand{font-size:15px}.brand-en{font-size:6px}.header-right{font-size:10px}.workspace{height:calc(100dvh - 56px);display:grid;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) var(--panel-height);overflow:hidden;min-height:0}.stage{grid-row:1;height:auto;min-height:0;order:0}.sidebar{grid-row:2;display:block;height:100%;min-height:0;box-sizing:border-box;padding:0 18px calc(18px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;background:#fafaf5;border-top:1px solid #d8dfd0;box-shadow:0 -5px 22px #4054310a;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;z-index:2}.mobile-tabs{display:flex;position:sticky;top:0;background:#fafaf5;z-index:3;gap:6px;align-items:center;height:58px;margin:0 -2px 8px;border-bottom:1px solid #e1e5d9}.mobile-tabs button{border:0;background:transparent;border-radius:9px;padding:11px 17px;min-height:44px;color:#7b8471;font-size:14px}.mobile-tabs button[aria-pressed=true]{background:#e7eedf;color:#3f5c32;font-weight:600}.mobile-tabs #collapse-panel{margin-left:auto;font-size:22px;padding:8px 14px}.sidebar>.intro{display:none}.sidebar>.views,.sidebar>.display-options,.sidebar>.specs,.sidebar>.side-note{display:none}.sidebar[data-mobile-panel=view]>.views,.sidebar[data-mobile-panel=view]>.display-options{display:block}.sidebar[data-mobile-panel=more]>.specs,.sidebar[data-mobile-panel=more]>.side-note{display:block}.sidebar:not([data-mobile-panel=place])>.components,.sidebar:not([data-mobile-panel=place])>.layout-editor{display:none}.sidebar .layout-editor{margin:0 0 18px;padding:0;background:transparent;border:0}.switch-row{min-height:48px;gap:10px}.switch-row>span{font-size:14px}.switch-row small{font-size:11px;line-height:1.5}.switch-row i{width:42px;height:24px;flex-shrink:0}.switch-row i:after{width:18px;height:18px;top:3px;left:3px}.switch-row input:checked+i:after{transform:translateX(18px)}.editor-toolbar{gap:8px;margin:12px 0}.editor-toolbar button{min-height:44px;font-size:13px}.layout-editor p{font-size:11px}.components{margin:0;padding:0 0 18px}.components h2{font-size:12px;margin:0 0 12px}.components select{font-size:16px;min-height:46px;background:#f0f3ea;border-radius:9px}.components p{font-size:12px}.rotation-label{font-size:13px}.components button{min-height:44px;font-size:13px;border-radius:8px}.move-grid{gap:8px}.component-actions{gap:8px}.component-actions button{flex:1}.components .text-button{min-height:44px}.components .component-hint{font-size:11px}#rotation-range{height:32px;margin:0 0 10px}.view-grid{grid-template-columns:repeat(4,1fr);gap:6px}.view-button{min-height:68px;font-size:13px;padding:10px 8px}.view-sub{font-size:9px;margin-top:6px}.display-options{margin-top:16px!important}.specs dl>div{font-size:12px;min-height:30px}.specs dd{font-size:13px}.side-note{font-size:12px;margin-top:16px!important}.side-note a{font-size:12px;display:inline-block;padding:12px 0}.stage-heading{top:14px;left:16px;font-size:11px}.stage-actions{top:7px;right:9px}.stage-actions button{width:44px;height:44px}.stage-footer{bottom:12px;left:16px;right:16px;font-size:10px}.stage-footer #wall-status{display:none}.selection{bottom:38px;left:14px;max-width:calc(100% - 64px);padding:12px 15px}.selection p{font-size:11px}.placement-feedback{left:14px;bottom:36px;max-width:calc(100% - 60px);font-size:10px;padding:8px 12px}.placement-feedback strong{margin-bottom:2px}.placement-feedback #feedback-measure{font-size:10px}.panel-collapsed{--panel-height:calc(66px + env(safe-area-inset-bottom))}.sidebar.collapsed{overflow:hidden}.sidebar.collapsed>:not(.mobile-tabs){display:none}
}

/* 布帘连续开合，触屏与键盘共用原生滑条。 */
.curtain-control{padding:12px 0 4px}.curtain-control label{display:flex;justify-content:space-between;font-size:11px}.curtain-control output{color:#55745b;font-variant-numeric:tabular-nums}.curtain-control input{display:block;width:100%;height:44px;margin:0;accent-color:#55745b;cursor:ew-resize}.curtain-ends{display:flex;justify-content:space-between;font-size:9px;color:#7c8975}.curtain-control p{font-size:9px;line-height:1.6;color:#849279;margin:7px 0 0}@media(max-width:800px){.curtain-control label{font-size:14px}.curtain-ends,.curtain-control p{font-size:11px}}
