.plan-studio-host{--bg:#ffffff0a;--paper:#ffffff0d;--panel:#161922f0;--line:#ffffff1f;--line-soft:#ffffff12;--ink:#f2f4f8;--muted:#a3abbd;--hover:#ffffff1a;--accent:#d5dee8;--accent-strong:#f4f7fb;--accent-soft:#ffffff1f;--green:#f4f7fb;--gold:#f4f7fb;--red:#e4b7b1;--blue:#d5dee8;--sel-bg:#fff;--sel-ink:#1a1e27;--olive:#f4f7fb;--honey:#f4f7fb;--radius:28px;--gta:var(--font-noto-sans-tc),-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang TC","Microsoft JhengHei",sans-serif;--outline:none;overscroll-behavior:none;touch-action:manipulation;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;width:100%;height:100%;font:16px/1.5 var(--font-noto-sans-tc),-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang TC","Microsoft JhengHei",sans-serif;color:var(--ink);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:0 0;overflow:hidden}.plan-studio-host,.plan-studio-host *{box-sizing:border-box}.plan-studio-host button,.plan-studio-host input,.plan-studio-host select{font:inherit;color:inherit}.plan-studio-host input{-webkit-user-select:text;user-select:text}.plan-studio-host [hidden]{display:none!important}.hps-shell{height:100%;padding:12px;padding-bottom:max(12px, env(safe-area-inset-bottom));-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;grid-template-rows:auto auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);gap:10px;display:grid}.hps-rail.lglass,.hps-chips.lglass,.hps-dial.lglass,#fab.lglass,.hps-radarmap.lglass,.hps-status.lglass{-webkit-backdrop-filter:none;backdrop-filter:none;background:#1c212cc7}.hps-top{z-index:30;border-radius:28px;flex-wrap:wrap;align-items:center;gap:10px 12px;padding:10px 14px;display:flex;position:relative}.hps-toptools{display:contents}.hps-brand{align-items:center;gap:10px;min-width:0;margin-right:4px;display:flex}.hps-logo{color:#0b0d12;background:#fff;border-radius:11px;flex:none;place-items:center;width:34px;height:34px;display:grid;box-shadow:inset 0 -2px 4px #0000002e,0 4px 12px #00000059}.hps-logo .hps-ico{width:19px;height:19px}.hps-brandtext{flex-direction:column;min-width:0;line-height:1.25;display:flex;overflow:hidden}.hps-brandtext b{text-overflow:ellipsis;white-space:nowrap;letter-spacing:0;font-size:18px;font-style:normal;font-weight:600;display:block;overflow:hidden}.hps-brandtext span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;overflow:hidden}.hps-actions{border-right:1px solid var(--line);align-items:center;gap:2px;margin-right:2px;padding-right:6px;display:flex}.hps-spacer{flex:1}.hps-ico{flex:none;width:18px;height:18px;display:block}.hps-btn{cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:6px 10px;transition:background .15s,color .15s,box-shadow .2s,transform .15s;display:inline-flex;position:relative}.hps-btn:hover{background:var(--hover)}.hps-btn:active{transform:scale(.97)}.hps-btn:focus-visible{outline-offset:1px;outline:2px solid #fff}.hps-btn:disabled{opacity:.4;cursor:not-allowed}.hps-btn.hps-primary{color:#0b0d12;background:#fff;font-weight:700;box-shadow:inset 0 -2px 4px #00000026,0 4px 14px #00000059}.hps-btn.hps-primary:hover{background:#e9edf3}.hps-btn.hps-danger{color:#ff8b97}.hps-btn.hps-ghost{background:#ffffff12;box-shadow:inset 0 1px #ffffff24}.hps-iconbtn{width:34px;height:34px;padding:0}.hps-grp{background:#00000052;border-radius:999px;align-items:center;gap:2px;padding:3px;display:flex;box-shadow:inset 0 1px 3px #0000008c,inset 0 -1px #ffffff14}.hps-railbtn.hps-active,.hps-btn.hps-chip.hps-active,.mat.hps-active,#roomList button.hps-active{font-weight:700;box-shadow:inset 0 -2px 4px #00000024,0 4px 14px #00000059;background:var(--sel-bg)!important;color:var(--sel-ink)!important}.mat.hps-active small,#roomList button.hps-active small{color:#4a5263!important}.hps-seg{position:relative}.hps-seg .hps-btn{z-index:1;width:88px;font-weight:600;transition:color .45s;position:relative}.hps-seg .hps-btn:hover{background:0 0}.hps-seg .hps-pill{background:#fff;border-radius:999px;width:88px;transition:transform .5s cubic-bezier(.65,0,.35,1);position:absolute;top:3px;bottom:3px;left:3px;box-shadow:inset 0 -2px 4px #00000024,0 4px 12px #0006}.hps-seg .hps-btn[data-view="2d"],body.m3d .plan-studio-host .hps-seg .hps-btn[data-view="3d"]{color:#0b0d12}body.m3d .plan-studio-host .hps-seg .hps-btn[data-view="2d"],.hps-seg .hps-btn[data-view="3d"]{color:var(--muted)}body.m3d .plan-studio-host .hps-seg .hps-pill{transform:translate(90px)}body.busy .plan-studio-host .hps-seg{pointer-events:none}.hps-menu{position:relative}.hps-menu summary{background:#ffffff12;border-radius:12px;padding:6px 12px;list-style:none;box-shadow:inset 0 1px #ffffff24}.hps-menu summary::-webkit-details-marker{display:none}.hps-menupop{z-index:40;min-width:190px;animation:.2s fadeIn;position:absolute;top:calc(100% + 8px);right:0}.hps-dock{scrollbar-width:none;align-items:center;gap:10px;min-width:0;display:flex;overflow-x:auto}.hps-rail{scrollbar-width:none;border-radius:999px;flex-direction:row;flex:none;align-items:center;gap:6px;padding:4px;display:flex;overflow:visible}.hps-rail .hps-spacer{display:none}.hps-railgrp{border-right:1px solid var(--line);flex-direction:row;align-items:center;gap:4px;padding:0 8px 0 0;display:flex}.hps-railgrp:last-child{border-right:0;padding-right:0}.hps-railbtn{color:var(--muted);border-radius:999px;flex-direction:row;gap:6px;padding:8px 12px;font-size:15px;font-weight:600}.hps-railbtn .hps-ico{width:18px;height:18px}.hps-railbtn:hover{color:var(--ink)}.hps-railzoom{gap:2px;display:flex}.hps-mini{color:var(--muted);font-variant-numeric:tabular-nums;border-radius:999px;padding:8px 10px;font-size:14px;font-weight:700}.hps-mini .hps-ico{width:16px;height:16px}.hps-mini:hover{color:var(--ink)}.hps-mini.hps-wide{grid-column:1/-1}.hps-stage{background:#141820;border-radius:30px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff14}#plan{touch-action:none;cursor:default;width:100%;height:100%;font-family:inherit;display:block}#plan.panning{cursor:grabbing}#plan.hps-tool-measure{cursor:crosshair}#plan .wall{pointer-events:none}#plan.hps-tool-demolish .wall{pointer-events:all;cursor:pointer}#plan.hps-tool-demolish .wall:hover{fill:#ff3d81}#plan.hps-tool-select .room:hover{opacity:.82}#plan .furn{cursor:move}@media (hover:hover){#plan .furn:hover{filter:drop-shadow(0 0 3px #fffc)}}[data-handle]{cursor:pointer}[data-handle=size]{cursor:nwse-resize}.hps-viewbar{z-index:4;flex-wrap:nowrap;flex:none;gap:8px;display:flex;position:static}.hps-chips{pointer-events:auto;--lg-tint:.06;border-radius:999px;align-items:center;gap:2px;padding:3px;display:flex}.hps-chiplabel{color:var(--muted);letter-spacing:.5px;white-space:nowrap;flex:none;padding:0 6px 0 10px;font-size:13px}.hps-btn.hps-chip{min-height:26px;color:var(--muted);border-radius:999px;padding:3px 9px;font-size:13px;font-weight:500}.hps-btn.hps-chip:hover{color:var(--ink)}.hps-sr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.hps-scalebar{z-index:3;color:#fff;font:12px/1 var(--gta);letter-spacing:.06em;pointer-events:none;background:#0a0c1299;border-radius:10px;padding:6px 10px;transition:opacity .3s;position:absolute;bottom:14px;left:14px;box-shadow:inset 0 1px #ffffff2e}.hps-scalebar .bar{border:1.5px solid #fff;border-top:0;height:6px;margin-top:4px}.hps-modehint,#hint3d{color:#fff;pointer-events:none;white-space:nowrap;z-index:3;background:#08090dc7;border-radius:8px;padding:6px 16px;font-size:14px;position:absolute;top:58px;left:50%;transform:translate(-50%);box-shadow:0 6px 18px #0006}.hps-modehint{opacity:0;transition:opacity .2s}.hps-modehint.show{opacity:.95}#hint3d{transition:opacity .4s}.hps-stage.animating #hint3d{opacity:0}.hps-dials{z-index:4;gap:12px;transition:bottom .25s;display:flex;position:absolute;bottom:16px;right:16px}.hps-dial{cursor:grab;touch-action:none;--lg-tint:.1;border-radius:50%;outline:none;width:108px;height:108px;position:relative}.hps-dial:focus-visible{outline-offset:3px;outline:2px solid #fff}.hps-dial.hps-dialdrag{cursor:grabbing}.hps-dialsvg{z-index:2;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.hps-dialsvg line{transition:stroke 80ms}.hps-dialmark{fill:#ffffff73}.hps-dialneedle{filter:drop-shadow(0 0 3px #000c)}.hps-dialface{z-index:2;pointer-events:none;background:radial-gradient(circle,#00000080,#0003);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:26px;box-shadow:inset 0 1px 2px #0009}.hps-dialface b{font:20px/1 var(--gta);color:#fff;letter-spacing:.04em;font-variant-numeric:tabular-nums;text-shadow:var(--outline)}.hps-dialface small{color:var(--muted);letter-spacing:.12em;margin-top:3px;font-size:12px}.hps-dialname{z-index:2;text-align:center;color:#fff;letter-spacing:.14em;pointer-events:none;text-shadow:var(--outline);font-size:12px;font-weight:700;position:absolute;bottom:5px;left:0;right:0}.hps-dial[data-zone=黃昏] .hps-dialface b{color:#ffc58a}.hps-dial[data-zone=夜晚] .hps-dialface b{color:#c9b3f0}.hps-card{border-radius:var(--radius);flex-direction:column;min-height:0;display:flex;overflow:hidden}.hps-scroll{z-index:2;scrollbar-width:thin;scrollbar-color:#ffffff40 transparent;flex:1;min-height:0;position:relative;overflow:auto}.hps-cardhead{z-index:2;flex:none;justify-content:space-between;align-items:baseline;gap:8px;padding:12px 14px 6px;display:flex;position:relative}.hps-cardhead b{letter-spacing:0;font-size:17px;font-style:normal;font-weight:600}.hps-cardhead small{color:var(--muted);font-size:13px}.hps-cats{z-index:2;scrollbar-width:none;flex:none;gap:6px;padding:4px 12px 10px;display:flex;position:relative;overflow-x:auto}.hps-cat{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:999px;flex:none;padding:5px 11px;font-size:14px;font-weight:700}.hps-cat:hover{color:var(--ink);background:var(--hover)}.hps-cat:focus{outline:none}.hps-cat:focus-visible{outline-offset:2px;outline:2px solid #fff}.hps-cat.on{color:#0b0d12;background:#fff;box-shadow:inset 0 -2px 3px #0000001f}.hps-catsec{display:none}.hps-catsec.on{display:block}.hps-lib:not(.show-rooms) #lib3d{display:none!important}.hps-lib.show-rooms #lib{display:none}.hps-lib h4{z-index:1;color:#ffffffb8;letter-spacing:0;background:#232833;margin:0;padding:10px 14px 8px;font-size:14px;font-style:normal;font-weight:600;position:sticky;top:0}.hps-libgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0 12px 12px;display:grid}.hps-item{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:pan-y;text-align:center;background:#ffffff0f;border-radius:14px;flex-direction:column;align-items:center;gap:4px;min-width:0;padding:10px 6px 8px;transition:transform .15s,background .15s,box-shadow .15s;display:flex;box-shadow:inset 0 1px #ffffff29,inset 0 0 0 1px #ffffff0d}.hps-item.hps-dragging{opacity:.45}@media (hover:hover){.hps-item:hover{background:#ffffff24;transform:translateY(-2px);box-shadow:inset 0 1px #fff6,0 8px 18px #00000059}}.hps-item svg{filter:drop-shadow(0 2px 4px #00000073);width:48px;height:38px}.hps-item b{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:13px;font-weight:600;line-height:1.3;overflow:hidden}.hps-item small{max-width:100%;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}#ghost{z-index:30;pointer-events:none;opacity:.85;filter:drop-shadow(0 6px 12px #0009);position:fixed;top:0;left:0;transform:translate(-50%,-50%)}#ghost svg{width:100%;height:100%;display:block;overflow:visible}.hint{color:var(--muted);padding:10px 14px 16px;font-size:14px}#roomList{grid-template-columns:1fr 1fr;gap:4px;padding:0 10px 8px;display:grid}#roomList button{cursor:pointer;text-align:left;background:#ffffff0f;border:0;border-radius:12px;flex-direction:column;width:100%;padding:6px 9px;line-height:1.3;display:flex;position:relative;box-shadow:inset 0 1px #ffffff1f}#roomList button:hover{background:var(--hover)}#roomList small{color:var(--muted);font-variant-numeric:tabular-nums}#panel section{border-bottom:1px solid var(--line-soft);padding:18px}#panel section:last-child{border-bottom:0}#panel h3{letter-spacing:0;margin:0 0 8px;font-size:16px;font-style:normal;font-weight:600}#panel h3 small{color:var(--muted);text-shadow:none;margin-left:6px;font-style:normal;font-weight:400}.plan-studio-host table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.plan-studio-host td{border-bottom:1px solid var(--line-soft);padding:5px 4px}.plan-studio-host td.r{text-align:right}.plan-studio-host tr.click{cursor:pointer}.plan-studio-host tr.click:hover td{color:#0b0d12;background:#fff}.plan-studio-host tr.click:hover td.muted{color:#4a5263}.sw{vertical-align:-2px;border:1px solid #ffffff40;border-radius:3px;width:12px;height:12px;margin-right:6px;display:inline-block}.total{justify-content:space-between;align-items:baseline;margin-top:8px;font-size:16px;display:flex}.total b{font:20px/1.2 var(--gta);letter-spacing:0;color:#fff;font-weight:500}.muted{color:var(--muted)}.form{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form label{color:var(--muted);flex-direction:column;gap:3px;font-size:14px;display:flex}.form label.full{grid-column:1/-1}.form input,.form select{width:100%;color:var(--ink);background:#00000052;border:0;border-radius:10px;padding:5px 8px;box-shadow:inset 0 1px 3px #00000080,inset 0 -1px #ffffff14}.form input:focus,.form select:focus{outline:2px solid #fff9}.form input[type=color]{height:30px;padding:2px}.actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.actions .hps-btn{background:#ffffff12;box-shadow:inset 0 1px #ffffff24}.mats{grid-template-columns:1fr 1fr;gap:6px;display:grid}.mat{cursor:pointer;text-align:left;color:var(--ink);background:#ffffff0f;border:0;border-radius:14px;align-items:center;gap:8px;padding:6px;display:flex;position:relative;box-shadow:inset 0 1px #ffffff1f}.mat:hover{background:var(--hover)}.mat i{border:1px solid #fff3;border-radius:8px;flex:none;width:26px;height:26px}.mat span{font-size:14px;line-height:1.3}.mat small{color:var(--muted);display:block}.kbd{color:var(--muted);grid-template-columns:auto 1fr;gap:4px 10px;font-size:14px;display:grid}.plan-studio-host kbd{border:1px solid var(--line);color:var(--ink);background:#ffffff14;border-bottom-width:2px;border-radius:5px;padding:0 5px;font:11px ui-monospace,Menlo,monospace}.big{font:22px/1.2 var(--gta);letter-spacing:0;color:#fff;font-weight:500}.stats{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:6px;display:grid}.stats div{background:#00000038;border-radius:12px;padding:8px 10px;box-shadow:inset 0 1px 2px #0006,inset 0 -1px #ffffff0f}.stats small{color:var(--muted);font-size:13px;display:block}.hps-status{white-space:nowrap;min-height:36px;color:var(--muted);font-variant-numeric:tabular-nums;--lg-tint:.08;border-radius:999px;align-items:center;gap:18px;padding:0 16px;font-size:14px;display:flex;overflow:hidden}.hps-status>*{z-index:2;position:relative}.hps-status b{color:#fff;font-weight:600}#tip{text-overflow:ellipsis;overflow:hidden}#toast{color:#fff;opacity:0;pointer-events:none;z-index:10;background:#06070adb;border-radius:6px;padding:10px 18px;font-size:15px;transition:all .25s;position:fixed;bottom:240px;left:50%;transform:translate(-50%)translateY(16px);box-shadow:0 10px 30px #00000080}#toast.show{opacity:1;transform:translate(-50%)}.hps-hud{z-index:4;pointer-events:none;text-align:right;flex-direction:column;align-items:flex-end;gap:2px;display:flex;position:absolute;top:16px;right:16px}.hps-hudstars{pointer-events:auto;gap:2px;font-size:22px;line-height:1;display:flex}.hps-hudstars i{color:#ffffff2e;-webkit-text-stroke:1px #000000b3;font-style:normal;transition:color .3s,transform .3s}.hps-hudstars i.on{color:#fff;text-shadow:0 0 8px #fff6}.hps-hudarea{color:#fff;align-items:baseline;gap:4px;display:flex}.hps-hudarea b{font:40px/1.1 var(--gta);letter-spacing:0;font-weight:500}.hps-hudarea small{font:18px/1 var(--gta);font-weight:500}.hps-hudsub{font:15px/1.2 var(--gta);letter-spacing:0;color:#fff;gap:12px;font-weight:500;display:flex}.hps-hudsub span span{font-family:var(--font-noto-sans-tc),sans-serif;font-size:14px;font-weight:900}.hps-radar{z-index:4;pointer-events:none;flex-direction:column;gap:6px;width:184px;display:flex;position:absolute;bottom:14px;left:14px}.hps-radarmap{--lg-tint:.16;--lg-blur:16px;border-radius:16px;height:140px;overflow:hidden}.hps-radarmap svg{width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.hps-radarmap #radarWorld{opacity:.92}body.m3d .plan-studio-host #radarView{display:none}.hps-radarme{z-index:3;clip-path:polygon(50% 0,100% 100%,50% 76%,0 100%);filter:drop-shadow(0 0 2px #000);background:#fff;width:14px;height:16px;margin:-8px 0 0 -7px;display:none;position:absolute;top:50%;left:50%}body.m3d .plan-studio-host .hps-radarme{display:block}.hps-radarn{z-index:3;color:#fff;width:18px;height:18px;font:11px/1 var(--gta);background:#0009;border-radius:50%;place-items:center;display:grid;position:absolute;top:6px;left:50%;transform:translate(-50%)}body.m3d .plan-studio-host .hps-radarn{display:none}.hps-radarbars{pointer-events:auto;grid-template-columns:1fr 1fr;gap:4px;display:grid}.hps-radarbars span{background:#0000008c;border-radius:2px;height:8px;overflow:hidden;box-shadow:0 0 0 1px #0006}.hps-radarbars i{height:100%;transition:width .3s;display:block}.hps-radarbars .g i{background:var(--green);width:87%}.hps-radarbars .b i{background:var(--blue);width:60%}.hps-mission{z-index:6;pointer-events:none;opacity:0;visibility:hidden;background:linear-gradient(90deg,#0000,#0000008c 25% 75%,#0000);flex-direction:column;align-items:center;gap:6px;padding:18px 0;display:flex;position:absolute;top:34%;left:0;right:0}.hps-mission b{letter-spacing:0;color:#fff;font-size:36px;font-style:normal;font-weight:600;line-height:1.15}.hps-mission span{color:#ffffffc7;letter-spacing:0;font-size:16px;font-weight:500}.hps-mission.show{visibility:visible;animation:2.4s cubic-bezier(.2,.8,.2,1) both hps-mission}@keyframes hps-mission{0%{opacity:0;transform:scale(1.35)}10%{opacity:1;transform:scale(1)}80%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1)}}body.m3d .plan-studio-host .hps-only2d,body:not(.m3d) .plan-studio-host .hps-only3d{display:none!important}.hps-only2d,.hps-only3d{animation:.45s both fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}#plan{transition:opacity .45s,transform .45s}.hps-stage.is3d #plan{opacity:0;pointer-events:none}.hps-stage.is3d .hps-scalebar{opacity:0}#view3d{opacity:0;visibility:hidden;transition:opacity .45s,visibility 0s linear .45s;position:absolute;inset:0}.hps-stage.is3d #view3d{opacity:1;visibility:visible;transition:opacity .45s}#view3d canvas{outline:none;display:block}#walkOverlay{z-index:5;cursor:pointer;background:#0405088c;justify-content:center;align-items:center;display:none;position:absolute;inset:0}#walkOverlay>div{text-align:center;background:#08090dd1;border-radius:10px;max-width:380px;padding:22px 30px;box-shadow:0 20px 50px #0009}#walkOverlay h3{color:#fff;letter-spacing:0;margin:0 0 8px;font-size:24px;font-style:normal;font-weight:600}#walkOverlay p{color:#d6dbe5;margin:4px 0}#cross{z-index:2;pointer-events:none;background:#fff;border-radius:50%;width:6px;height:6px;margin:-3px 0 0 -3px;display:none;position:absolute;top:50%;left:50%;box-shadow:0 0 0 1.5px #000000b3}.rlabel{color:#fff;white-space:nowrap;pointer-events:none;background:#08090dc7;border-radius:6px;padding:2px 10px;font-size:14px;font-weight:700;box-shadow:0 4px 12px #0006}.rlabel small{color:var(--muted);margin-left:4px;font-weight:400}#fab{--lg-tint:.12;z-index:5;opacity:0;visibility:hidden;border-radius:20px;align-items:center;gap:4px;max-width:calc(100% - 24px);padding:5px;transition:opacity .2s,transform .2s,visibility 0s linear .2s,bottom .25s;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%,12px)}#fab>*{z-index:2;position:relative}.hps-stage.drawer-panel #fab{opacity:0;visibility:hidden}#fab.show{opacity:1;visibility:visible;transition:opacity .2s,transform .2s,bottom .25s;transform:translate(-50%)}#fab .name{text-overflow:ellipsis;white-space:nowrap;max-width:9em;padding:0 8px 0 6px;font-weight:700;overflow:hidden}#fab .hps-btn{border:1px solid #0000}#fab .sep{background:var(--line);align-self:stretch;width:1px;margin:4px 2px}#joy{z-index:3;touch-action:none;background:#ffffff1f;border:1px solid #ffffff47;border-radius:50%;width:130px;height:130px;display:none;position:absolute;bottom:28px;left:28px;box-shadow:0 10px 30px #00000047}#joy i{pointer-events:none;background:#fff;border-radius:50%;width:56px;height:56px;margin:-28px 0 0 -28px;position:absolute;top:50%;left:50%;box-shadow:inset 0 -3px 6px #0003,0 6px 16px #0006}#walkExit{z-index:3;display:none;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}@keyframes hps-glitch-slice{0%{clip-path:inset(12% 0 58%);filter:hue-rotate(80deg)saturate(2.2);translate:-7px}18%{clip-path:inset(52% 0 22%);filter:drop-shadow(-3px 0 #ff2a6d)drop-shadow(3px 0 #00f2fe);translate:9px}36%{clip-path:inset(28% 0 48%);filter:invert(.15)hue-rotate(-60deg);translate:-4px}54%{clip-path:none;filter:drop-shadow(-2px 0 #ff2a6d)drop-shadow(2px 0 #00f2fe);translate:5px}72%{clip-path:inset(70% 0 6%);filter:saturate(3);translate:-6px}90%{clip-path:none;filter:none;translate:2px}to{clip-path:none;filter:none;translate:0}}@keyframes hps-glitch-ui{0%{filter:drop-shadow(-2px 0 #ff2a6dcc)drop-shadow(2px 0 #00f2fecc);translate:2px}25%{translate:-3px 1px}50%{filter:hue-rotate(40deg);translate:1px -1px}75%{filter:drop-shadow(-1px 0 #ff2a6dcc)drop-shadow(1px 0 #00f2fecc);translate:-1px}to{filter:none;translate:0}}@keyframes hps-glitch-bars{0%{opacity:1;background-position:0 0,0 0}33%{opacity:.8;background-position:0 3px,-40px 0}66%{opacity:1;background-position:0 -2px,60px 0}to{opacity:0}}.hps-shell.hps-glitch #plan,.hps-shell.hps-glitch #view3d canvas{animation:.22s step-end hps-glitch-slice}.hps-shell.hps-glitch .hps-top,.hps-shell.hps-glitch .hps-rail,.hps-shell.hps-glitch .hps-card{animation:.2s step-end hps-glitch-ui}.hps-shell.hps-glitch .hps-stage:after{content:"";z-index:7;pointer-events:none;mix-blend-mode:screen;background:repeating-linear-gradient(0deg,#ffffff1a 0 2px,#0000 2px 4px),linear-gradient(90deg,#0000 0 18%,#ff2a6d38 18% 21%,#0000 21% 62%,#00f2fe40 62% 66%,#0000 66% 84%,#f0c85040 84% 86%,#0000 86%);animation:.22s step-end forwards hps-glitch-bars;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.hps-shell.hps-glitch *,.hps-shell.hps-glitch .hps-stage:after{animation:none!important}.hps-mission.show{animation-duration:10ms}}@media (pointer:coarse){.plan-studio-host{font-size:16px}.hps-btn{min-height:38px}.hps-iconbtn{width:40px;height:40px}.hps-btn.hps-chip{min-height:34px;padding:6px 12px}.hps-seg .hps-btn,.hps-seg .hps-pill{width:96px}body.m3d .plan-studio-host .hps-seg .hps-pill{transform:translate(98px)}.hps-menu summary{padding:9px 14px}.hps-menupop .hps-btn{padding:11px 14px}.hps-item{padding:10px 2px 8px}.form input,.form select{padding:8px 9px;font-size:18px}.form input[type=color]{height:40px}.actions .hps-btn,#fab .hps-btn{min-height:42px;padding:9px 14px}.plan-studio-host td{padding:7px 4px}#roomList button{padding:8px 10px}.mat{padding:9px 8px}}.hps-narrow{display:none!important}@media (min-width:1101px){.hps-shell{--sx:18px;--sy:10px;--sb:16px;--g:16px;--topH:58px;--dockH:64px;--libW:280px;--sideW:300px;--radarH:132px;--row2:calc(var(--g)*2 + var(--topH));padding:0;display:block;position:relative}.hps-stage{inset:var(--sy) var(--sx) var(--sb);position:absolute}.hps-top{z-index:30;top:calc(var(--sy) + var(--g));left:calc(var(--sx) + var(--g));right:calc(var(--sx) + var(--g));height:var(--topH);border-radius:999px;flex-wrap:nowrap;padding:0 10px 0 12px;position:absolute}.hps-top>*,.hps-toptools>*{z-index:2;position:relative}.hps-dock{z-index:8;top:calc(var(--sy) + var(--row2));left:calc(var(--sx) + var(--g));right:calc(var(--sx) + var(--g)*2 + var(--sideW));position:absolute;overflow:visible}.hps-shell.hide-panel .hps-dock{right:calc(var(--sx) + var(--g))}.hps-viewbar{flex:1;min-width:0;overflow:visible}.plan-studio-host aside.hps-aside{z-index:6;right:calc(var(--sx) + var(--g));top:calc(var(--sy) + var(--row2));bottom:calc(var(--sb) + var(--g));width:var(--sideW);transition:bottom .3s;position:absolute}body.m3d .plan-studio-host aside.hps-aside{bottom:calc(var(--sb) + var(--g)*2 + 108px)}.plan-studio-host aside.hps-lib{z-index:6;left:calc(var(--sx) + var(--g));top:calc(var(--sy) + var(--row2) + var(--dockH) + 10px);bottom:calc(var(--sb) + var(--g)*2 + var(--radarH));width:var(--libW);border-radius:28px;flex-direction:column;height:auto;position:absolute}.hps-lib .hps-libgrid{grid-template-columns:1fr 1fr}.hps-lib .hint{display:none}.hps-hud{top:calc(var(--row2) + var(--dockH) + 10px);right:calc(var(--g)*2 + var(--sideW) + 8px)}.hps-radar{left:var(--g);bottom:var(--g);width:var(--libW)}.hps-radarmap{height:108px}.hps-dials{right:var(--g);bottom:var(--g)}.hps-scalebar{left:calc(var(--g)*2 + var(--libW));bottom:var(--g)}.hps-modehint,#hint3d{top:calc(var(--row2) + var(--dockH) + 8px)}#fab,#walkExit{bottom:calc(var(--g) + 8px)}.hps-status{z-index:5;min-height:0;left:calc(var(--sx) + var(--g)*3 + var(--libW));right:calc(var(--sx) + var(--g)*2 + var(--sideW));bottom:calc(var(--sb) + var(--g));box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none;color:#e6e9ef;text-shadow:var(--outline);background:0 0;justify-content:center;gap:16px;padding:0;font-size:14.5px;position:absolute}.hps-status:before,.hps-status:after,.hps-status .hps-spacer{display:none}.plan-studio-host aside.hps-lib.lglass,.plan-studio-host aside.hps-aside.lglass{-webkit-backdrop-filter:none;backdrop-filter:none;background:#232833;border:1px solid #ffffff24;box-shadow:0 12px 28px #00000047}.hps-shell.hide-lib aside.hps-lib,.hps-shell.hide-panel aside.hps-aside{display:none}.hps-shell.hide-lib .hps-radar,.hps-shell.hide-lib .hps-scalebar{left:var(--g)}.hps-shell.hide-lib .hps-status{left:calc(var(--sx) + var(--g)*2)}.hps-shell.hide-panel .hps-hud{right:var(--g)}.hps-shell.hide-panel .hps-status{right:calc(var(--sx) + var(--g))}body.m3d .plan-studio-host .hps-shell.hps-walking aside.hps-lib,body.m3d .plan-studio-host .hps-shell.hps-walking aside.hps-aside,body.m3d .plan-studio-host .hps-shell.hps-walking .hps-status,body.m3d .plan-studio-host .hps-shell.hps-walking .hps-viewbar{display:none}body.m3d .plan-studio-host .hps-shell.hps-walking .hps-hud{right:var(--g)}body.m3d .plan-studio-host .hps-shell.hps-walking .hps-dock{right:auto}}@media (max-width:1100px){.hps-btn.hps-narrow,#fab .hps-btn.hps-narrow{display:inline-flex!important}.hps-top{grid-area:1/1}.hps-top>*,.hps-toptools>*{z-index:2;position:relative}.hps-dock{grid-area:2/1}.hps-stage{border-radius:24px;grid-area:3/1}.hps-modehint,#hint3d{top:14px}.hps-chips{flex:none}.hps-dials{gap:8px;bottom:12px;right:12px}.hps-stage:has(#fab.show) .hps-dials{bottom:68px}.hps-dial{width:92px;height:92px}.hps-dialface{inset:22px}.hps-dialface b{font-size:18px}.hps-hud,.hps-radar{display:none}.hps-mission b{font-size:30px}.plan-studio-host aside.hps-lib,.plan-studio-host aside.hps-aside,.hps-shell.hide-lib aside.hps-lib,.hps-shell.hide-lib aside.hps-aside,.hps-shell.hide-panel aside.hps-lib,.hps-shell.hide-panel aside.hps-aside{z-index:6;-webkit-backdrop-filter:none;backdrop-filter:none;background:#232833;grid-area:3/1;width:min(340px,88vw);margin:0;transition:transform .3s cubic-bezier(.3,.7,.3,1),box-shadow .3s;display:flex;position:relative}.plan-studio-host aside.hps-lib{justify-self:start;transform:translate(-110%)}.plan-studio-host aside.hps-aside{justify-self:end;transform:translate(110%)}.plan-studio-host aside.hps-drawer-open{transform:none}.hps-status{grid-area:4/1}.hps-brandtext span,.hps-status .hps-only2d{display:none!important}#toast{bottom:120px}}@media (max-width:720px){.hps-top{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;display:grid}.hps-spacer{display:none}.hps-brand{grid-area:1/1;margin:0}.hps-toptools{grid-area:1/2;align-items:center;gap:4px;display:flex}.hps-actions{border:0;margin:0;padding:0}.hps-top .hps-seg{grid-area:2/1/auto/-1;grid-template-columns:1fr 1fr;justify-content:stretch;width:100%;display:grid}.hps-top .hps-seg .hps-btn{width:auto;min-width:0}.hps-top .hps-seg .hps-pill{width:calc(50% - 4px);left:3px}body.m3d .plan-studio-host .hps-top .hps-seg .hps-pill{transform:translate(calc(100% + 2px))}#fullscreen{display:none}.hps-dial{width:80px;height:80px}.hps-dialface{inset:19px}.hps-dialface b{font-size:16px}.hps-dialname{font-size:11px;bottom:3px}.hps-mission b{font-size:26px}}.hps-modal{z-index:80;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.hps-modal[hidden]{display:none!important}.hps-modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#02030699;position:absolute;inset:0}.hps-modal-card{z-index:1;width:min(920px,96vw);max-height:92vh;color:var(--ink);background:#242a36d1;border:1px solid #ffffff47;border-radius:28px;padding:20px 22px 22px;position:relative;overflow:auto;box-shadow:0 24px 48px #00000047}.hps-modal-head{align-items:center;gap:10px;margin-bottom:12px;display:flex}.hps-modal-head h2{letter-spacing:0;flex:1;margin:0;font-size:19px;font-style:normal;font-weight:600}.hps-modal-status{color:var(--muted);margin:0 0 10px;font-size:15px}.hps-modal-actions{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.hps-modal-actions .hps-btn:not(.hps-primary){background:#ffffff12;box-shadow:inset 0 1px #ffffff24}.hps-modal-preview{height:min(48vh,420px);box-shadow:inset 0 0 0 1px var(--line);background:#0c0f18;border-radius:14px;overflow:hidden}.hps-modal-preview canvas{width:100%;height:100%;display:block}.hps-modal-notes{color:var(--muted);max-height:120px;margin:10px 0 0;padding-left:18px;font-size:14px;overflow:auto}.hps-modal-legend{color:var(--muted);flex-wrap:wrap;gap:12px;margin:10px 0 0;font-size:14px;display:flex}.hps-modal-legend .lg-wall{color:#dbe4f5;font-weight:600}.hps-modal-legend .lg-door{color:#ff8b97;font-weight:600}.hps-modal-legend .lg-win{color:#5da9e9;font-weight:600}.hps-modal-legend .lg-exc{color:#a3abbd;font-weight:600}.hps-mode-badge{border:1px solid var(--line);color:var(--muted);background:#ffffff0d;border-radius:999px;align-items:center;margin-right:4px;padding:2px 8px;font-size:13px;font-weight:600;display:inline-flex}.hps-mode-badge[data-mode=ai\+rules],.hps-mode-badge[data-mode=heuristic],.hps-mode-badge[data-mode=backend-mock],.hps-mode-badge[data-mode=backend-yolo]{color:#f4f7fb;border-color:#ffffff47}
