:root{font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;color:#26372f;background:#f5f6f3;font-synthesis:none;--green:#32624d;--border:#dee4de;--muted:#7a867f}*{box-sizing:border-box;letter-spacing:0}body{margin:0}button,input{font:inherit}button{cursor:pointer;color:inherit;background:none;border:0}button:focus-visible,input:focus-visible{outline:2px solid #538563;outline-offset:3px}button:hover{color:var(--green)}svg{width:18px;height:18px;stroke-width:1.65;flex-shrink:0}[hidden]{display:none!important}.header{height:76px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 28px;background:#fff;border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:12px}.brand-icon{display:grid;place-items:center;width:39px;height:39px;background:#eaf0e9;border-radius:8px;color:var(--green)}.brand-icon svg{width:23px;height:23px}.brand h1{font-size:18px;margin:0 0 4px;font-weight:650}.brand div>span{font-size:10px;color:var(--muted)}.header-meta{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:12px}.status-dot,.small-dot{width:6px;height:6px;background:#5f8a62;border-radius:50%;display:inline-block}.divider{height:14px;width:1px;background:var(--border);margin:0 10px}.header-actions{display:flex;gap:8px;align-items:center}.icon-button{display:grid;place-items:center;flex-shrink:0;width:38px;height:38px;border:1px solid var(--border);border-radius:6px;background:#fff;transition:background .15s}.icon-button:hover,.icon-button[aria-pressed=true]{background:#eaf1e9;color:var(--green);border-color:#a7b9a8}.text-button{display:flex;align-items:center;gap:8px;padding:9px 13px;font-size:12px}.workspace{height:calc(100dvh - 140px);min-height:440px;display:grid;grid-template-columns:236px minmax(0,1fr)}.sidebar{background:#fff;border-right:1px solid var(--border);padding:25px 18px 16px;display:flex;flex-direction:column;overflow-y:auto;gap:16px}.sidebar-title{display:flex;justify-content:space-between;align-items:center;padding:0 8px}.eyebrow{font-size:12px;font-weight:600}.count{font:11px monospace;color:#8d9a90}#zone-list{display:grid;gap:4px}.zone-button{display:flex;align-items:center;gap:12px;width:100%;padding:12px 10px;border-radius:5px;text-align:left;border:1px solid transparent;min-height:54px}.zone-button:hover{background:#f4f7f2}.zone-button.active{background:#eef4ec;border-color:#dce7d7;color:#2a5942}.zone-number{font:11px monospace;color:#8f9b91}.zone-button.active .zone-number{color:#4d8159}.zone-button b{font-size:12px;font-weight:500;display:block}.zone-button small{display:block;font-size:10px;color:var(--muted);margin-top:4px}.zone-button svg{width:13px;margin-left:auto;color:#8b9e91}.settings{border-top:1px solid var(--border);padding:16px 8px 0}.settings h2{font-size:12px;font-weight:600;margin:0 0 12px}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:10px;height:34px;cursor:pointer;position:relative}.toggle-row>span:first-child{display:flex;align-items:center;gap:9px;font-size:11px;color:#69776d}.toggle-row svg{width:14px;height:14px}.toggle-row input{position:absolute;right:0;width:30px;height:18px;opacity:0}.switch{width:29px;height:16px;border-radius:20px;background:#dce2dc;position:relative;pointer-events:none}.switch:after{content:"";position:absolute;width:12px;height:12px;top:2px;left:2px;border-radius:50%;background:white;transition:transform .15s}.toggle-row input:checked+.switch{background:#537c5e}.toggle-row input:checked+.switch:after{transform:translateX(13px)}.toggle-row input:focus-visible+.switch{outline:2px solid #386b4b;outline-offset:3px}.finish-row{display:flex;align-items:center;justify-content:space-between;margin-top:14px;font-size:11px;color:#69776d}.swatches{display:flex;gap:9px}.swatch{width:22px;height:22px;border-radius:50%;border:3px solid #fff;outline:1px solid #d4dbd3}.swatch.active{outline:2px solid #61826b}.stone{background:#c6cdc4}.wood{background:#bca37c}.dark{background:#555e57}.source-preview{margin-top:auto;padding:14px 8px 0}.source-preview button{display:flex;align-items:center;gap:12px;text-align:left;width:100%;padding:10px 0;border-top:1px solid var(--border)}.source-preview img{width:39px;height:48px;object-fit:cover;object-position:top;border:1px solid #e5e8e3}.source-preview span{font-size:11px;display:flex;align-items:center;gap:22px;color:#68776d}.source-preview svg{width:14px}.stage{position:relative;min-width:0;overflow:hidden;background:#f0f2ee}#scene{position:absolute;inset:0;touch-action:none}#scene canvas{display:block;touch-action:none;width:100%;height:100%}.scene-title{position:absolute;left:28px;top:26px;pointer-events:none}.scene-kicker{font:10px monospace;color:#84928a}.scene-title h2{font-size:22px;font-weight:500;margin:9px 0;color:#334b3d}.scene-tools{position:absolute;right:20px;top:24px;display:grid;gap:7px}.scene-tools .icon-button{background:#ffffffee}.compass{position:absolute;right:26px;bottom:55px;display:grid;gap:7px;justify-items:center;color:#9aa49b;font-size:9px;pointer-events:none}.compass svg{color:#667b6c;width:27px;height:27px}.stage-bottom{position:absolute;bottom:19px;left:28px;right:25px;display:flex;justify-content:space-between;font-size:10px;color:#77887a;pointer-events:none}.caption-dot{margin:0 10px}.viewbar{height:64px;background:#fff;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 28px 0 254px;gap:20px}.view-tabs{display:flex;gap:6px}.view-tabs button{height:40px;min-width:85px;padding:0 18px;display:flex;align-items:center;justify-content:center;gap:9px;font-size:12px;border-radius:5px;color:#718174}.view-tabs button.active{background:#eaf1e6;color:#325c40}.view-tabs button:hover{background:#f3f6f0}.viewbar-right{display:flex;align-items:center;gap:8px;font-size:10px;color:#7a8b7c;white-space:nowrap}#labels-layer{position:absolute;inset:0;pointer-events:none}.zone-label,.dimension-label{position:absolute;left:0;top:0;white-space:nowrap;transform:translate(-50%,-100%);font-size:10px;padding:7px 10px;background:#ffffffeb;border:1px solid #d8e2d5;box-shadow:0 2px 8px #334f3410;border-radius:4px;color:#3e5e49;pointer-events:auto}.zone-label:after{content:"";position:absolute;bottom:-13px;left:50%;width:1px;height:12px;background:#8daa92}.zone-label.active{background:#3d6a4d;color:#fff;border-color:#3d6a4d}.dimension-label{font:11px monospace;color:#8a7256;pointer-events:none;background:#f8faf3dd;border:0;box-shadow:none}#loading{position:absolute;inset:0;display:grid;place-items:center;background:#f0f2ee;color:#63796a;font-size:13px}dialog{padding:0;border:1px solid var(--border);border-radius:8px;width:min(880px,94vw);height:90dvh;max-height:1000px;background:#fff;color:#334738}dialog::backdrop{background:#17291a7d;backdrop-filter:blur(4px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border);height:65px}.dialog-head h2{font-size:16px;font-weight:500}.plan-scroll{height:calc(100% - 65px);overflow:auto;text-align:center;padding:20px}.plan-scroll img{max-width:100%;height:auto}.plan-scroll img{width:700px}#toast{position:fixed;left:50%;bottom:80px;transform:translateX(-50%);background:#284e39;color:white;padding:12px 20px;border-radius:6px;font-size:12px;z-index:20}
@media(max-height:800px) and (min-width:761px){.sidebar{padding-top:18px;gap:12px}.zone-button{padding:8px 10px;min-height:40px}.zone-button small{display:none}.settings{padding-top:12px}.toggle-row{height:31px}.source-preview{display:none}}
@media(max-width:1100px){.header-meta{display:none}.viewbar-right{display:none}.workspace{grid-template-columns:208px minmax(0,1fr)}.sidebar{padding-left:12px;padding-right:12px}.viewbar{padding-left:222px}.view-tabs button{padding:0 13px;min-width:73px}}
@media(max-width:760px){.header{height:66px;padding:0 13px;gap:8px}.brand{gap:8px}.brand h1{font-size:16px}.brand div>span{font-size:9px}.brand-icon{width:33px;height:33px}.header-actions{gap:5px}.header-actions .icon-button{width:33px;height:33px}.text-button{padding:7px}.text-button span{display:none}.workspace{height:auto;min-height:0;display:flex;flex-direction:column}.stage{order:-1;height:calc(100dvh - 124px);min-height:390px;max-height:820px}.sidebar{padding:18px 18px 82px;border:0;display:grid;grid-template-columns:1fr 1fr;gap:12px 18px}.sidebar-title{grid-column:1/-1}.zone-button{min-height:43px;padding:8px}.zone-button small{display:none}.settings{border-top:0;border-left:1px solid var(--border);padding:0 0 0 15px}.settings h2{margin-bottom:6px}.toggle-row{height:34px}.toggle-row>span:first-child{gap:5px;font-size:10px}.source-preview{display:none}.scene-title{left:17px;top:20px}.scene-title h2{font-size:19px}.scene-kicker{font-size:9px}.scene-tools{right:12px;top:18px;gap:6px}.scene-tools .icon-button{width:33px;height:33px}.stage-bottom{left:17px;right:14px;font-size:9px}.stage-bottom>span:last-child{display:none}.compass{right:20px;bottom:45px}.viewbar{position:fixed;bottom:0;left:0;right:0;height:58px;padding:0 6px;z-index:5}.view-tabs{width:100%;gap:2px}.view-tabs button{flex:1;min-width:0;padding:0 4px;gap:5px;font-size:11px}.view-tabs svg{width:16px;height:16px}.zone-label{font-size:9px;padding:5px 7px}}
button:disabled{cursor:default;opacity:.38}.toggle-row:has(input:disabled){opacity:.48;cursor:default}
#walk-crosshair{position:absolute;left:50%;top:50%;width:7px;height:7px;border:1px solid #fff;border-radius:50%;background:#395b4380;box-shadow:0 0 2px #263b30;transform:translate(-50%,-50%);pointer-events:none}
#walk-status{position:absolute;left:50%;top:22px;transform:translateX(-50%);display:flex;align-items:center;gap:12px;padding:5px 6px 5px 14px;background:#ffffffed;border:1px solid var(--border);border-radius:6px;font-size:11px;color:#3c6248;white-space:nowrap}
#walk-status .icon-button{width:30px;height:30px}#walk-status .text-button{font-size:11px;padding:4px}#walk-status svg{width:15px;height:15px}
.walking .scene-title{background:#ffffffdb;padding:10px 12px;border-radius:5px}.walking .stage-bottom,.walking .compass{display:none}
#walk-pad{position:absolute;left:18px;bottom:48px;display:none;grid-template-columns:repeat(3,42px);grid-template-rows:repeat(2,42px);gap:5px;touch-action:none;user-select:none}
#walk-pad button{width:42px;height:42px;touch-action:none;background:#fffffff0}#walk-pad button:first-child{grid-column:2}#walk-pad button:nth-child(2){grid-column:1;grid-row:2}#walk-pad button:nth-child(3){grid-column:2;grid-row:2}#walk-pad button:nth-child(4){grid-column:3;grid-row:2}#walk-pad button.held{background:#dcebdd;border-color:#648366}
@media(pointer:coarse){#walk-pad{display:grid}}
@media(max-width:760px){#walk-status{top:auto;bottom:18px;left:auto;right:12px;transform:none}.view-tabs{gap:0}.view-tabs button{font-size:10px;gap:3px;padding:0 3px}.view-tabs svg{width:14px;height:14px}.walking .scene-title{left:12px;top:18px}.walking .scene-kicker{display:none}.walking .scene-title h2{margin:0;font-size:16px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
