/* 独立导览页样式：不进入大屏样式树。 */
:root{color-scheme:dark;--ink:#eef4e8;--muted:#a8bab0;--line:rgba(174,199,175,.23);--gold:#d6bd83}
*{box-sizing:border-box}body{margin:0;background:#122822;color:var(--ink);font-family:'Noto Sans SC',sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,#scene:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.tour-header{height:92px;display:flex;align-items:center;justify-content:space-between;padding:0 40px;border-bottom:1px solid var(--line);background:#11251f}.brand{display:flex;gap:14px;align-items:center;font-family:'Noto Serif SC',serif;font-size:22px;letter-spacing:3px}.brand img{width:44px;height:44px;border-radius:50%;object-fit:cover}.brand small{display:block;font:10px/2 sans-serif;letter-spacing:2px;color:var(--muted)}.back-link{font-size:14px;min-height:44px;display:flex;align-items:center;gap:28px}.back-link:hover{color:var(--gold)}
#viewer{position:relative;height:calc(100dvh - 92px);min-height:500px;overflow:hidden;background:radial-gradient(ellipse at 50% 48%,#385346 0,#203a30 50%,#142b24 100%)}#scene{position:absolute;inset:0;touch-action:none}#scene canvas{display:block;width:100%;height:100%}.tour-heading{position:absolute;left:40px;top:34px;z-index:1;pointer-events:none}.tour-heading>p:first-child{font-size:10px;letter-spacing:2px;color:var(--gold)}.tour-heading p span{margin-left:25px;color:var(--muted)}h1{font:36px/1.6 'Noto Serif SC',serif;letter-spacing:4px;margin:12px 0}h1 span{display:block;font-size:15px;color:var(--muted);letter-spacing:5px}.title-rule{width:44px;height:1px;background:var(--gold);margin:20px 0}.intro{font-size:12px;color:var(--muted)}.model-status{position:absolute;right:40px;top:44px;display:flex;align-items:center;gap:9px;font-size:12px;color:var(--muted);pointer-events:none}.model-status i{width:6px;height:6px;border-radius:50%;background:#bfd2a3}
.loading-card{position:absolute;top:45%;left:50%;transform:translate(-50%,-50%);width:min(410px,calc(100% - 40px));padding:32px;background:rgba(15,34,27,.95);border:1px solid var(--line);border-radius:12px;box-shadow:0 25px 90px #081b1a55;text-align:center}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--gold)}h2{font:24px 'Noto Serif SC',serif}.loading-card>p:not(.eyebrow){font-size:13px;color:var(--muted);line-height:1.8}progress{width:100%;height:6px;accent-color:var(--gold)}#loadPercent{display:block;margin-top:12px;font-size:12px;color:var(--gold)}#retry{margin:16px auto 0;padding:10px 24px;color:var(--ink);background:#314e3e;border:1px solid var(--line);border-radius:6px}
.view-tools{position:absolute;bottom:90px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:6px;background:rgba(14,33,26,.95);padding:8px;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 36px #0003;white-space:nowrap}.view-tools button{min-height:44px;min-width:44px;padding:0 16px;color:var(--ink);border:1px solid transparent;border-radius:6px;background:transparent;font-size:13px;transition:background .2s,color .2s}.view-tools button:hover:not(:disabled),.view-tools button[aria-pressed=true]{background:#36513e;color:#f1dba8}.view-tools button:disabled{opacity:.4;cursor:wait}.divider{height:20px;width:1px;background:var(--line);margin:0 6px}.tour-footer{position:absolute;bottom:28px;left:40px;right:40px;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px;pointer-events:none}.tour-footer small{display:block;margin-top:7px;font-size:11px}.footer-mark{font-family:'Noto Serif SC',serif;letter-spacing:4px}
[hidden]{display:none!important}@media(max-width:700px){.tour-header{height:76px;padding:0 20px}.brand{font-size:17px;letter-spacing:1px}.brand small{font-size:8px}.brand img{width:36px;height:36px}.back-link{font-size:12px;gap:6px}#viewer{height:calc(100dvh - 76px);min-height:580px}.tour-heading{left:22px;top:20px}h1{font-size:28px;margin-top:8px}.intro,.title-rule,.footer-mark{display:none}.model-status{right:22px;top:168px;font-size:11px}.view-tools{width:calc(100% - 32px);max-width:400px;justify-content:center;flex-wrap:wrap;bottom:85px;gap:4px}.view-tools button{padding:0 12px}.divider{display:none}.tour-footer{left:22px;right:22px;bottom:22px;font-size:11px}.loading-card{top:46%;padding:24px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* 室内模式收起装饰标题，用深色控制面板保证浅色室内背景上的对比度。 */
.is-walking .tour-heading{display:none}.model-status{padding:9px 12px;border-radius:6px;background:#102a22dd}.is-walking .tour-footer>span:first-child{padding:10px;background:#102a22e8;border-radius:6px}.walk-panel{position:absolute;right:24px;bottom:178px;width:238px;padding:18px;background:#102a22f5;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 36px #0003}.walk-panel-title{font-size:16px}.walk-panel-title span{font-size:11px;color:var(--muted);margin-left:10px}.walk-panel p,.walk-panel small{color:var(--muted);font-size:12px;line-height:1.7}.walk-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.walk-pad button{min-height:44px;border:1px solid var(--line);border-radius:6px;background:#294a3a;color:var(--ink);touch-action:none;user-select:none}.walk-pad button:active{background:#62734b}.walk-speed{display:flex;align-items:center;justify-content:space-between;font-size:13px;margin:14px 0}.walk-speed select{min-height:44px;padding:0 12px;background:#294a3a;color:var(--ink);border:1px solid var(--line);border-radius:6px}.walk-panel small{display:block}.view-tools{max-width:calc(100% - 32px)}
@media(max-width:700px){.walk-panel{right:16px;bottom:245px;width:204px;padding:12px}.walk-panel p{margin:8px 0}.walk-panel small{font-size:10px}.walk-panel-title span{display:none}.is-walking .model-status{top:18px}.is-walking .tour-footer small{display:none}.is-walking .tour-footer{font-size:10px}.walk-speed{margin:8px 0}.view-tools button{padding:0 10px}}
@media(max-height:650px) and (min-width:701px){.walk-panel{top:16px;bottom:auto}.tour-footer{bottom:12px}.view-tools{bottom:65px}}

.walk-bookmark{display:flex;gap:6px}.walk-bookmark button{flex:1;min-height:44px;padding:4px;font-size:11px;color:var(--ink);background:#294a3a;border:1px solid var(--line);border-radius:6px}.walk-bookmark button:disabled{opacity:.4;cursor:default}#walkNotice:empty{display:none}@media(max-width:700px){.walk-panel{bottom:215px}.walk-panel>p{font-size:11px}.walk-panel>small{display:none}}

/* 入口动作优先显示，始终可以再次点击回到门内。 */
.view-tools #enterIndoor{background:#c8b37f;color:#172d23;font-weight:600}.view-tools #enterIndoor:hover:not(:disabled){background:#dfc992;color:#172d23}@media(min-width:701px) and (max-width:1000px){.view-tools{flex-wrap:wrap;justify-content:center;width:calc(100% - 48px)}}

/* 步行时只保留必要操作；说明收起后仍可随时展开。 */
.help-toggle{position:absolute;right:24px;top:90px;min-height:44px;padding:0 16px;background:#102a22f5;border:1px solid var(--line);border-radius:8px;color:var(--ink);z-index:3;font-size:13px}.walk-panel{top:144px;bottom:auto;max-height:calc(100% - 240px);overflow:auto;z-index:3;width:270px}.walk-panel-title{display:flex;align-items:center;justify-content:space-between}.walk-panel-title button{width:44px;height:44px;background:transparent;color:var(--ink);border:1px solid var(--line);border-radius:6px}.help-collapsed .tour-footer>span:first-child{display:none}.is-walking #walkMode,.is-walking #rotate,.is-walking #zoomIn,.is-walking #zoomOut,.is-walking [data-view=top],.is-walking .divider{display:none}.is-walking .view-tools{bottom:24px}.view-tools #floorGuide{background:#36513e;color:#f1dba8}.joystick{position:absolute;left:32px;bottom:112px;width:112px;height:112px;border:1px solid #cfdecc80;border-radius:50%;background:#102a229e;touch-action:none;user-select:none;display:grid;place-items:center}.joystick>span:first-child{width:46px;height:46px;border-radius:50%;background:#d6bd83;border:2px solid #f6e3b5;pointer-events:none}.joystick-label{position:absolute;bottom:-25px;font-size:12px;color:white;text-shadow:0 1px 4px #000;pointer-events:none}.is-walking .tour-footer{display:none}.help-collapsed .tour-heading .intro{display:none}
@media(max-width:700px){#viewer{min-height:420px}.help-toggle{right:16px;top:60px}.walk-panel{right:16px;top:112px;bottom:auto;width:min(270px,calc(100% - 32px));max-height:calc(100% - 220px)}.walk-panel>small{display:block}.is-walking .view-tools{bottom:16px;gap:4px}.is-walking .view-tools button{padding:0 10px;font-size:12px}.joystick{left:20px;bottom:150px;width:100px;height:100px}.model-status{top:16px;right:16px}.tour-heading{top:72px}.help-collapsed .tour-heading{display:none}}
@media(max-height:550px){.walk-panel{top:70px;max-height:calc(100% - 150px);right:16px}.help-toggle{top:12px;right:16px}.model-status{left:16px;right:auto;top:12px}.joystick{width:90px;height:90px;bottom:92px}.tour-header{height:64px}#viewer{height:calc(100dvh - 64px);min-height:280px}}
/* 靠近门时显示明确的进入动作，避免用户只能反复撞门。 */
.door-action{position:absolute;left:50%;bottom:108px;transform:translateX(-50%);min-height:48px;padding:0 24px;border:1px solid #ead6a5;border-radius:24px;background:#d6bd83;color:#172d23;font:600 14px 'Noto Sans SC',sans-serif;box-shadow:0 4px 20px #0004}.door-action:hover{background:#eed7a5}@media(max-width:700px){.door-action{bottom:112px;max-width:calc(100% - 48px)}}
