:root{--bg: #0f1418;--panel: rgba(18, 24, 28, .86);--line: rgba(255, 255, 255, .12);--text: #eef1f2;--muted: #a3aeb3;--accent: #e0a458;--accent2: #7fb3a6;--tap: 44px;--sat: env(safe-area-inset-top, 0px);--sab: env(safe-area-inset-bottom, 0px);--sal: env(safe-area-inset-left, 0px);--sar: env(safe-area-inset-right, 0px);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;height:100dvh;overflow:hidden;background:var(--bg);color:var(--text);overscroll-behavior:none}canvas#c{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}button{font:inherit;cursor:pointer;color:var(--text)}.labels{position:fixed;inset:0;pointer-events:none;overflow:hidden}.rlabel{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:center;gap:1px;padding:3px 8px;background:#ffffffe6;color:#1c2226;border-radius:8px;font-size:12px;line-height:1.2;white-space:nowrap;box-shadow:0 1px 4px #00000040;will-change:transform}.rlabel b{font-weight:650}.rlabel span{font-size:11px;color:#4b555b}.rlabel.focus{background:var(--accent);color:#1a1205;font-size:13px;z-index:2}.rlabel.focus span{color:#2d2009}.top{position:fixed;top:calc(12px + var(--sat));left:calc(16px + var(--sal));pointer-events:none}.brand{background:var(--panel);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:12px;padding:8px 14px;pointer-events:auto}.t1{font-weight:650;font-size:15px}.t2{font-size:12px;color:var(--muted);margin-top:2px}.iconbtn{min-width:var(--tap);min-height:var(--tap);display:inline-flex;align-items:center;justify-content:center;gap:6px;background:#ffffff0f;border:1px solid var(--line);border-radius:12px;padding:0 12px;font-weight:600}.iconbtn .arrow{font-size:18px}.primary{width:100%;min-height:48px;background:var(--accent);color:#1a1205;border:0;border-radius:12px;font-weight:700;font-size:16px}.primary.small{width:auto;padding:0 18px}.primary:disabled{opacity:.45}.sheet{position:fixed;top:calc(12px + var(--sat));right:calc(16px + var(--sar));width:340px;max-height:calc(100dvh - 48px);display:flex;flex-direction:column;background:var(--panel);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:16px;overflow:hidden}.sh-head{display:flex;align-items:center;gap:10px;padding:10px 10px 8px 12px}.sh-title{flex:1;min-width:0;display:flex;flex-direction:column}.sh-title b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sh-title span{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grip{display:none}.sh-body{overflow-y:auto;overscroll-behavior:contain;padding:0 12px 12px;flex:1;min-height:0}.sh-cta{padding:10px 12px calc(12px + var(--sab));border-top:1px solid var(--line)}.type-list{display:flex;flex-direction:column;gap:4px}.type{display:grid;grid-template-columns:10px 1fr auto;gap:12px;align-items:center;min-height:56px;padding:8px 10px;border-radius:12px;border:1px solid transparent;background:transparent;text-align:left;width:100%}.type:hover,.type.on{background:#ffffff0f;border-color:var(--line)}.type .sw{width:10px;height:34px;border-radius:3px}.type .nm{font-weight:650;font-size:15px}.type .ds{font-size:12px;color:var(--muted)}.type .ct{font-size:12px;color:var(--muted);text-align:right}.floors{display:flex;gap:6px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:none;scroll-snap-type:x proximity}.floors::-webkit-scrollbar{display:none}.floors button{flex:0 0 auto;min-width:var(--tap);min-height:var(--tap);padding:0 12px;background:transparent;border:1px solid var(--line);border-radius:12px;font-weight:600;scroll-snap-align:start}.floors button.on{background:var(--accent2);color:#08201b;border-color:transparent}.units{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.unit{min-height:56px;border:1px solid var(--line);border-radius:12px;padding:8px 10px;background:transparent;text-align:left}.unit:hover,.unit.on{border-color:var(--accent);background:#e0a4581a}.unit b{font-size:15px}.unit span{display:block;font-size:12px;color:var(--muted)}.hint{font-size:13px;color:var(--muted);grid-column:1 / -1;padding:4px 2px}#unit-detail{margin-top:12px;border-top:1px solid var(--line);padding-top:12px}.ud-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}.ud-no{font-weight:700;font-size:16px}.ud-area{color:var(--muted);font-size:13px}.rooms{list-style:none;padding:0;margin:8px 0 0;font-size:14px}.rooms li{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:var(--tap);padding:0 10px;border-radius:10px;cursor:pointer}.rooms li:nth-child(odd){background:#ffffff08}.rooms li.on{background:#e0a4582e}.rooms li .sw{width:12px;height:12px;border-radius:3px;flex:0 0 auto}.rooms li .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rooms li .ar{color:var(--muted);font-variant-numeric:tabular-nums}.note{font-size:11px;color:var(--muted);margin:10px 2px 0}.room-badge{position:fixed;top:calc(12px + var(--sat));left:50%;transform:translate(-50%);background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-size:14px;font-weight:600;white-space:nowrap;max-width:calc(100vw - 32px);overflow:hidden;text-overflow:ellipsis}.walk-hud{position:fixed;right:calc(16px + var(--sar));bottom:calc(16px + var(--sab));display:flex;gap:10px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:8px 8px 8px 14px;font-size:13px;max-width:calc(100vw - 32px)}.wh-text{color:var(--muted)}.joy{position:fixed;left:calc(24px + var(--sal));bottom:calc(28px + var(--sab));width:132px;height:132px;border-radius:50%;border:2px solid rgba(255,255,255,.4);background:#00000040;touch-action:none}.joy .knob{position:absolute;left:39px;top:39px;width:54px;height:54px;border-radius:50%;background:#fff9}.pause{position:fixed;inset:0;display:grid;place-items:center;background:#00000073;font-size:18px;cursor:pointer}.loader{position:fixed;inset:0;display:grid;place-content:center;gap:10px;text-align:center;background:var(--bg);color:var(--muted);font-size:13px;transition:opacity .4s}.loader .bar{width:220px;height:4px;background:#ffffff1a;border-radius:2px;overflow:hidden}.loader i{display:block;height:100%;width:0;background:var(--accent);transition:width .2s}.foot{position:fixed;bottom:6px;left:16px;font-size:11px;color:#fff9;pointer-events:none;text-shadow:0 1px 2px #000}.tip{position:fixed;pointer-events:none;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:5px 8px;font-size:12px;transform:translate(12px,12px);white-space:nowrap}[hidden]{display:none!important}@media (max-width: 720px){.top{left:calc(12px + var(--sal));top:calc(8px + var(--sat))}.brand{padding:6px 12px}.t1{font-size:14px}.sheet{inset:auto 0 0;width:auto;max-height:none;border-radius:18px 18px 0 0;border-bottom:0;transition:height .25s ease;height:var(--h)}.sheet[data-state=peek]{--h: calc(64px + var(--sab))}.sheet[data-state=half]{--h: min(46dvh, 420px)}.sheet[data-state=full]{--h: 86dvh}.sheet[data-state=peek] .sh-body,.sheet[data-state=peek] .sh-cta{display:none}.sh-head{padding:10px 10px 8px}.grip{display:inline-flex}.grip span{width:22px;height:4px;border-radius:2px;background:var(--muted)}.sheet[data-state=full] .grip span{transform:rotate(180deg)}.foot,.walk-hud .wh-text{display:none}.walk-hud{padding:6px}.rlabel{font-size:11px;padding:2px 6px}}@media (max-width: 720px) and (orientation: landscape){.sheet{left:auto;width:min(380px,50vw);top:calc(8px + var(--sat));bottom:0;border-radius:16px 0 0}.sheet[data-state=half],.sheet[data-state=full]{--h: calc(100dvh - 8px - var(--sat))}}.ulabel{position:absolute;left:0;top:0;display:grid;grid-template-columns:auto auto;column-gap:6px;align-items:center;padding:5px 10px 5px 8px;background:#12181ce0;color:#fff;border-radius:10px;font-size:13px;line-height:1.15;white-space:nowrap;box-shadow:0 2px 8px #00000059;will-change:transform}.ulabel i{grid-row:span 2;width:12px;height:12px;border-radius:50%;border:2px solid rgba(255,255,255,.85)}.ulabel b{font-weight:700}.ulabel span{font-size:11px;color:#c5ced2}.unit .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:1px}.minimap{position:fixed;top:calc(12px + var(--sat));left:calc(16px + var(--sal));width:200px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:6px;z-index:3}.minimap canvas{display:block;width:188px;height:188px;border-radius:10px}.mm-title{font-size:12px;font-weight:650;padding:2px 4px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body:not(.walking) .minimap{top:calc(76px + var(--sat))}.toast{position:fixed;left:50%;top:38%;transform:translate(-50%,-50%);background:#12181ce6;border:1px solid var(--line);padding:12px 20px;border-radius:14px;font-size:17px;font-weight:650;pointer-events:none}body.walking .room-badge{top:calc(12px + var(--sat))}@media (max-width: 720px){.minimap{width:142px;padding:5px}.minimap canvas{width:132px;height:132px}body:not(.walking) .minimap{top:calc(58px + var(--sat));left:auto;right:calc(10px + var(--sar))}body.walking .minimap{top:calc(56px + var(--sat));left:auto;right:calc(10px + var(--sar))}.ulabel{font-size:12px;padding:4px 8px 4px 6px}}body.walking .top{display:none}
