/* In-room UI kit v19. The existing white tile entrance remains independent. */
body.sauna-ui{--ui-ink:#111;--ui-muted:#71747a;--ui-line:#d9dadd;--ui-paper:#fff;--ui-soft:#f1f1f3}
.sauna-ui #app{color:var(--ui-ink)}
.sauna-ui #app .topbar{inset:0 0 auto;min-height:68px;height:calc(68px + var(--safe-top));padding:var(--safe-top) max(18px,var(--safe-right)) 0 max(18px,var(--safe-left));background:#fff;border-bottom:1px solid var(--ui-line);gap:12px;z-index:28;opacity:1;visibility:visible;pointer-events:auto}
.sauna-ui #app .brand{padding:0;background:none;border:0;box-shadow:none;border-radius:0;min-width:0;backdrop-filter:none;max-width:210px;width:42%;height:52px}
.sauna-ui #app .brand img{display:block;width:100%;height:auto;max-height:62px;object-fit:contain;filter:brightness(0)}
.sauna-ui #app .top-tools{gap:8px}.sauna-ui #help-open,.sauna-ui #mobile-view{display:none!important}
.sauna-ui #app #locker-open{display:block;background:#fff;color:#111;border:1px solid var(--ui-line);min-height:44px;padding:8px 14px;font:600 14px/1.3 var(--font-body);border-radius:18px;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sauna-ui #app #settings-open{background:#fff;color:#111;border:1px solid var(--ui-line);width:44px;height:44px;min-width:44px;box-shadow:none}
.sauna-ui #app svg{width:24px;height:24px;flex:none}
.sauna-ui #app .room-heading{position:absolute;top:calc(68px + var(--safe-top));inset-inline:0;width:100%;max-width:none;height:36px;min-height:0;margin:0;padding:0 18px;background:#fff;border:0;border-bottom:1px solid var(--ui-line);border-radius:0;text-shadow:none;backdrop-filter:none;z-index:27;display:block!important}
.sauna-ui .room-heading>.eyebrow,.sauna-ui #room-title,.sauna-ui #room-desc{display:none!important}
.room-strip{display:flex;justify-content:space-between;align-items:center;height:100%;gap:12px;font-size:13px;color:#111}.room-strip button{border:0;background:none;font:700 13px var(--font-body);color:#111;padding:0;min-height:36px;text-align:left}.room-strip>span{font-size:12px;white-space:nowrap;color:#777;display:flex;gap:6px;align-items:center}.room-strip>span.online{color:#111}.room-strip>span.online:before{content:'';width:7px;height:7px;border-radius:50%;background:#88b65c}
.sauna-ui #app .room-status{top:calc(119px + var(--safe-top))!important;right:max(16px,var(--safe-right))!important;display:flex;flex-direction:row;flex-wrap:nowrap;width:auto;max-width:none;gap:8px!important;z-index:20}
.sauna-ui #app #climate{display:none!important}
.sauna-ui #app .room-status .pill,.sauna-ui #app .camera-tools button{display:grid;place-items:center;width:46px!important;height:46px!important;min-height:46px;padding:0!important;background:#fff;color:#111;border:1px solid #ddd;border-radius:13px;box-shadow:0 2px 8px #0000000a;font-size:0!important}
.sauna-ui #app #sound-label{display:none}.sauna-ui #camera-controls{position:absolute;right:0;top:54px;display:flex;gap:5px}.sauna-ui #camera-controls[hidden]{display:none}
.sauna-ui #app .bottom-ui{width:min(680px,100%);max-width:calc(100% - var(--safe-left) - var(--safe-right));bottom:var(--control-bottom-inset,0px);gap:14px;overflow:visible;max-height:none;padding:0;pointer-events:none;z-index:24}
.sauna-ui #app .bottom-ui>*{pointer-events:auto}
.sauna-ui #app .room-nav{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:2px;width:100%;padding:8px 10px calc(8px + var(--safe-bottom));border:0;border-top:1px solid #ddd;border-radius:16px 16px 0 0;background:#fff;box-shadow:none;overflow:visible;backdrop-filter:none}
.sauna-ui #app .room-nav button{background:transparent;color:#606269;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:58px;height:auto;border:0;border-radius:12px;padding:7px 1px}
.sauna-ui #app .room-nav button.selected{background:var(--ui-soft);color:#111}.sauna-ui #app .room-nav button.selected>b,.sauna-ui #app .room-nav button.selected>span{color:#111}.sauna-ui #app .room-nav button b{font-size:11px;font-weight:500;line-height:1.2;letter-spacing:-.035em}.sauna-ui #app .room-nav button.selected b{font-weight:700}.sauna-ui #app .room-nav button small,.sauna-ui .talk-dot,.sauna-ui .bottom-caption,.sauna-ui #gesture-hint,.sauna-ui #my-status{display:none!important}
.sauna-ui #app .actions{display:grid;grid-template-columns:52px 52px minmax(0,1fr) 52px;gap:6px;padding:0 14px;min-height:50px}.sauna-ui #app.talking .actions{grid-template-columns:44px 44px minmax(0,1fr) 44px 48px}
.sauna-ui #app .small-actions{display:contents}.sauna-ui #app .actions button{min-width:0;width:auto;height:auto;min-height:50px;margin:0;padding:8px 6px;border:1px solid #dedee0;border-radius:12px;box-shadow:none;backdrop-filter:none;font:500 13px/1.4 var(--font-body);background:#fff;color:#111;white-space:normal}
.sauna-ui #app .actions #sit-btn{grid-column:1;grid-row:1}.sauna-ui #app .actions #lie-btn{grid-column:2;grid-row:1}.sauna-ui #app .actions #motion-toggle{grid-column:4;grid-row:1}.sauna-ui #app .actions #primary-action{grid-column:3;grid-row:1;display:flex;justify-content:center;align-items:center;gap:10px;background:#111;color:#fff;border-color:#111;padding:8px 12px}
.sauna-ui #app .actions #social-menu-toggle{grid-column:5;grid-row:1}.sauna-ui #app #primary-text{font-size:14px;line-height:1.4;color:inherit;word-break:keep-all}.sauna-ui #app #primary-action .action-icon,.sauna-ui #app #action-key{display:none}.sauna-ui #app #primary-action:after{content:'→';font-size:24px;line-height:1;color:inherit}
.sauna-ui #app .actions #sit-btn.active,.sauna-ui #app .actions #lie-btn.active,.sauna-ui #app .actions #motion-toggle[aria-expanded=true],.sauna-ui #app .actions #social-menu-toggle[aria-expanded=true]{background:#111;color:#fff;border-color:#111}
.sauna-ui #app .actions button:disabled{background:#eee!important;color:#97999e!important;border-color:#eee!important;cursor:not-allowed}
.sauna-ui #app .bottom-ui>:is(#motion-row,#snack-fun,#private-fun,#emote-tray){position:absolute;inset:auto 0 calc(74px + var(--safe-bottom));width:100%;max-width:100%;max-height:min(530px,calc(var(--control-visible-height,100dvh) - 190px));overflow:auto;overscroll-behavior:contain;padding:14px 18px 22px;border:1px solid #ddd;border-radius:23px 23px 0 0;background:#fff;color:#111;box-shadow:0 -8px 30px #00000016;z-index:40;margin:0;display:flex;flex-wrap:wrap;gap:8px;align-items:stretch;justify-content:flex-start}
.sauna-ui #app .bottom-ui>:is(#motion-row,#snack-fun,#private-fun,#emote-tray)[hidden]{display:none!important}
.sauna-ui #app :is(#motion-row,#snack-fun,#private-fun,#emote-tray) button{min-height:46px;min-width:44px;max-width:100%;border:1px solid var(--ui-line);border-radius:10px;background:#fff;color:#111;box-shadow:none;padding:10px 12px;margin:0;font:500 13px/1.4 var(--font-body);white-space:normal;word-break:keep-all;backdrop-filter:none}
.sauna-ui #app :is(#motion-row,#snack-fun,#private-fun) button.active,.sauna-ui #app #motion-row button[aria-pressed=true]{background:#111;color:#fff;border-color:#111}
.sheet-head{flex:0 0 100%;display:flex;justify-content:space-between;align-items:center;padding:3px 0 0;position:relative}.sheet-head:before{content:'';position:absolute;top:-5px;left:calc(50% - 22px);width:44px;height:4px;border-radius:10px;background:#cacbd0}.sauna-ui #app .sheet-head h2{font:400 23px/1.4 SaunaDisplay,var(--font-body);letter-spacing:-.045em;color:#111;margin:12px 0}.sauna-ui #app .sheet-head button{width:44px;padding:8px;border:0;background:none}
.sheet-tabs{flex:0 0 100%;display:grid;grid-template-columns:1fr 1fr;margin:0 0 8px;border-bottom:1px solid #ddd}.sauna-ui #app .sheet-tabs button{border:0;border-radius:0;background:#fff;color:#777;padding:10px;font-weight:700;position:relative}.sauna-ui #app .sheet-tabs button[aria-selected=true]{color:#111}.sheet-tabs button[aria-selected=true]:after{content:'';position:absolute;height:4px;background:#111;bottom:-1px;left:8%;right:8%;border-radius:5px}
.basic-actions{flex:0 0 100%;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 0 16px;border-bottom:1px solid #e8e8e8}.sauna-ui #app .basic-actions button{display:flex;align-items:center;justify-content:flex-start;gap:16px;min-height:64px;font-size:16px;padding:12px 20px}.sauna-ui #app .basic-actions svg{width:29px;height:29px}.sauna-ui #app #motion-row>#greet-btn,.sauna-ui #app #motion-row>[data-motion=stretch]{display:none}
.sauna-ui #app #emote-tray>button{flex:1 0 28%;display:flex;flex-direction:column;gap:6px;align-items:center}.sauna-ui #app #emote-tray small{color:#555}.sauna-ui #app #snack-fun>button,.sauna-ui #app #private-fun>button{flex:1 1 42%;font-size:14px;min-height:58px}
.sauna-ui #app #quick-chat{grid-template-columns:minmax(0,1fr) auto;background:#fff;border:1px solid #ddd;border-radius:16px;box-shadow:0 3px 16px #0000000e;gap:5px;padding:8px;z-index:43}
.sauna-ui #app #chat-form{position:relative;display:flex;align-items:center;gap:7px;width:100%}.sauna-ui #app #chat-input{border:1px solid #d3d4d7;background:#fff;color:#111;-webkit-text-fill-color:#111;caret-color:#111;font:16px/1.4 var(--font-body);border-radius:12px;padding:10px 10px 10px 39px;height:46px;min-width:0;flex:1}.sauna-ui #app #chat-input::placeholder{color:#a0a2a8;-webkit-text-fill-color:#a0a2a8}
.composer-smile{position:absolute;left:10px;top:11px;width:24px;height:24px;color:#111;pointer-events:none}.sauna-ui #app #quick-chat #chat-form>button{display:grid;place-items:center;border:0;background:#111;color:#fff;border-radius:50%;width:46px;min-width:46px;max-width:46px;flex:0 0 46px;min-height:46px}.sauna-ui #app #quick-chat #chat-toggle{background:#fff;color:#666;padding:5px 6px;border:0;min-height:44px;max-width:54px;white-space:normal;line-height:1.4;font-size:11px}.sauna-ui #app #chat-feedback{color:#8b3737}
.sauna-ui #app #chat-panel{border:1px solid #ddd;border-bottom:0;border-radius:22px 22px 0 0;padding:14px 16px 0;background:#fff;color:#111;box-shadow:0 -8px 25px #0000000a}
.sauna-ui #app #chat-panel .chat-meta{font:400 20px/1.4 SaunaDisplay,var(--font-body);color:#111;gap:0;min-height:44px}.sauna-ui #chat-panel .live-dot,.sauna-ui #chat-info{display:none!important}.sauna-ui #app #chat-close{margin-left:auto;background:none;border:0;color:#111}.sauna-ui #app #chat-title{color:#111;font:inherit}.sauna-ui #app #chat-messages{border:0;padding:10px 0 12px}.sauna-ui #app #chat-messages:empty:before{content:'먼저 한마디 건네볼까요?';font-size:14px;color:#888}
.sauna-ui #app #chat-panel .chat-line{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:0;margin:0 0 14px;background:none;border:0;border-radius:0;color:#111}.sauna-ui #app #chat-panel .chat-line b{color:#555;font:500 12px/1.4 var(--font-body);margin:0 0 0 8px}.chat-message{display:block;max-width:88%;background:#f0f0f2;padding:10px 14px;border-radius:14px;color:#111;white-space:pre-wrap;overflow-wrap:anywhere}.sauna-ui #app #chat-panel .chat-line.mine{align-items:flex-end}.chat-line.mine .chat-message{background:#111;color:#fff}.sauna-ui #app #chat-panel .chat-line.mine b{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}
.sauna-ui #app.chat-open #quick-chat{border-top:0;border-radius:0 0 14px 14px;box-shadow:none}.sauna-ui #app.chat-open .bottom-ui{display:flex!important;gap:0}.sauna-ui #app.chat-open .actions{display:none!important}.sauna-ui #app.chat-open .topbar{opacity:1;pointer-events:auto}.sauna-ui #app.chat-open #quick-chat #chat-toggle{display:none}.sauna-ui #app.chat-open #quick-chat{grid-template-columns:1fr}.sauna-ui #app.history-compact #quick-chat{grid-template-columns:minmax(0,1fr) auto}.sauna-ui #app.keyboard-open .bottom-ui,.sauna-ui #app.keyboard-open .room-heading,.sauna-ui #app.keyboard-open .topbar{display:none!important}
.sauna-ui #app #world-bubble,.sauna-ui #app .peer-speech,.sauna-ui #app .peer-emote{background:#fff;color:#111;border:1px solid #e2e2e5;box-shadow:0 3px 14px #00000012;text-shadow:none;border-radius:17px;padding:11px 15px;font:600 14px/1.5 var(--font-body);word-break:keep-all;white-space:pre-line}.sauna-ui #app .peer-speech b{color:#666}.sauna-ui #app .peer-speech span{color:#111}.sauna-ui #app #world-bubble:after,.sauna-ui #app .peer-speech:after{background:#fff;border-color:#e2e2e5}.sauna-ui #app #world-bubble.emote,.sauna-ui #app .peer-emote{font-size:28px}
.sauna-ui #app #toast,.sauna-ui #app #first-tip{background:#f5f5f5f0;border:1px solid #ddd;color:#333;box-shadow:none;font-size:13px;border-radius:12px}.sauna-ui #first-tip button{color:#111;background:transparent}.sauna-ui #app :is(button,input):focus-visible{outline:2px solid #111;outline-offset:3px}
.sauna-ui dialog:not(#welcome):not(#entry-branches){background:#fff;color:#111;border:1px solid #ddd;border-radius:22px;box-shadow:0 12px 60px #0003;max-height:calc(100dvh - 32px)}
.sauna-ui dialog:not(#welcome):not(#entry-branches)::backdrop{background:#0003;backdrop-filter:blur(3px)}
.sauna-ui dialog:not(#welcome) :is(h2,h3,label){color:#111}.sauna-ui dialog:not(#welcome) h2{font:400 27px/1.35 SaunaDisplay,var(--font-body);letter-spacing:-.04em}.sauna-ui dialog:not(#welcome) :is(p,.dialog-kicker,.prototype-note){color:#72757b}.sauna-ui dialog:not(#welcome) .close{color:#111}.sauna-ui dialog:not(#welcome) .dialog-action{background:#111;color:#fff;border:0}.sauna-ui dialog:not(#welcome) :is(input,select,textarea){color:#111;background:#fff;border-color:#d6d6d9;accent-color:#111}.sauna-ui dialog:not(#welcome) button:not(.dialog-action):not(.close){color:#111;background:#fff;border-color:#d7d7db}.sauna-ui dialog:not(#welcome) button.selected,.sauna-ui dialog:not(#welcome) button.active{color:#fff;background:#111}
.sauna-ui #about{padding:26px 20px 20px;width:min(520px,calc(100vw - 20px))}.sauna-ui #about>.dialog-kicker,.sauna-ui #about>p{display:none}.sauna-ui #about h2{margin:0 0 10px}.sauna-ui #room-branch{border:1px solid #ddd;border-radius:20px;padding:7px 13px;min-height:38px;margin-bottom:13px;font:600 13px var(--font-body)}
.sauna-ui #about .visit-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.sauna-ui #about .visit-options button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-width:0;min-height:77px;padding:10px 4px;border:1px solid #d5d5d9;border-radius:10px}.sauna-ui #about .visit-options i{display:grid;place-items:center;margin:0;font-size:0}.sauna-ui #about .visit-options svg{width:27px;height:27px}.sauna-ui #about .visit-options b{color:inherit;font:600 13px/1.3 var(--font-body)}.sauna-ui #about .visit-options span{display:none}
.sauna-ui #settings{width:min(480px,calc(100vw - 24px));padding:30px 24px}.sauna-ui #settings>.dialog-kicker,.sauna-ui #settings>p{display:none}.sauna-ui #settings label{font-size:14px;border-color:#ddd}.sauna-ui #settings .sound-switch{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e2e2e2;padding:12px 0}.sauna-ui #settings input[type=checkbox]{appearance:none;width:44px;height:26px;border:0;border-radius:20px;background:#d7d7da;position:relative;flex:none;cursor:pointer}.sauna-ui #settings input[type=checkbox]:after{content:'';position:absolute;width:20px;height:20px;left:3px;top:3px;background:#fff;border-radius:50%;box-shadow:0 1px 4px #0002}.sauna-ui #settings input[type=checkbox]:checked{background:#111}.sauna-ui #settings input[type=checkbox]:checked:after{left:21px}.sauna-ui #settings input[type=range]{accent-color:#111}.sauna-ui #settings .quiet-note{color:#777;background:#f4f4f5;border-color:#ddd}
@media(min-width:760px){.sauna-ui #app .topbar{padding-inline:30px}.sauna-ui #app .room-heading{padding-inline:30px}.sauna-ui #app .room-nav{border:1px solid #ddd;border-radius:18px;padding:9px}.sauna-ui #app .bottom-ui{bottom:16px;width:660px}.sauna-ui #app .room-nav button{min-height:62px}.sauna-ui #app .actions{grid-template-columns:64px 64px minmax(0,1fr) 64px;padding-inline:0}.sauna-ui #app.talking .actions{grid-template-columns:60px 60px minmax(0,1fr) 60px 70px}.sauna-ui #app .bottom-ui>:is(#motion-row,#snack-fun,#private-fun,#emote-tray){border-radius:22px;bottom:86px}.sauna-ui #app .room-nav button b{font-size:12px}}
@media(max-width:360px){.sauna-ui #app .topbar{padding-inline:12px;gap:5px}.sauna-ui #app #locker-open{padding-inline:8px;font-size:12px}.sauna-ui #app .actions{padding-inline:8px;gap:4px}.sauna-ui #app #primary-text{font-size:11px}.sauna-ui #app #primary-action:after{display:none}.sauna-ui #app .basic-actions button{padding:10px;gap:10px;font-size:14px}.sauna-ui #app .room-nav{padding-inline:4px}}
@media(max-height:500px){.sauna-ui #app .topbar{height:54px;min-height:54px;padding-top:0}.sauna-ui #app .room-heading{top:54px;height:30px}.sauna-ui #app .room-status{top:92px!important}.sauna-ui #app .room-nav button{min-height:44px;flex-direction:row;gap:6px}.sauna-ui #app .room-nav{padding:4px}.sauna-ui #app .bottom-ui{gap:7px}.sauna-ui #app .bottom-ui>:is(#motion-row,#snack-fun,#private-fun,#emote-tray){max-height:calc(100dvh - 140px);bottom:54px}}
.sauna-ui #app.calm-mode :is(.topbar,.room-heading,.room-status,.bottom-ui),.sauna-ui #app.wide-view :is(.topbar,.room-heading,.room-status){display:none!important}
/* Menu descendants need to win over legacy ID-based button rules. */
.sauna-ui #app #motion-row .basic-actions button{min-height:64px;padding:12px 20px;justify-content:flex-start;font-size:16px;gap:16px}
.sauna-ui #app :is(#motion-row,#emote-tray) .sheet-tabs button{border:0;border-radius:0;background:#fff;color:#777;font-size:15px;font-weight:700;padding:10px}
.sauna-ui #app :is(#motion-row,#emote-tray) .sheet-tabs button[aria-selected=true]{color:#111}
.sauna-ui #app :is(#motion-row,#emote-tray,#snack-fun,#private-fun) .sheet-head button{border:0;background:none;padding:8px}
.sauna-ui #app #motion-row :is(#greet-btn,[data-motion=stretch]){display:none}
.extra-actions{flex:0 0 100%;font-size:13px;color:#666}.extra-actions summary{min-height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;list-style:none}.extra-actions summary:after{content:'⌄';margin-left:8px}.extra-actions[open] summary:after{content:'⌃'}.extra-actions>div{display:flex;flex-wrap:wrap;gap:7px}
@media(max-width:680px){.sauna-ui #about{position:fixed;inset:auto 0 calc(74px + env(safe-area-inset-bottom));margin:0 auto;width:100%;max-width:100%;max-height:calc(100dvh - 190px);border-radius:22px 22px 0 0;box-shadow:0 -8px 30px #0001}.sauna-ui #about::backdrop{background:#0001;backdrop-filter:none}}
.sauna-ui #app.chat-typing:not(.keyboard-open) .bottom-ui{display:flex!important}
.sauna-ui #app .bottom-ui:has(>#motion-row:not([hidden]),>#emote-tray:not([hidden]),>#snack-fun:not([hidden]),>#private-fun:not([hidden])) .actions{visibility:hidden;pointer-events:none}
.sauna-ui #app .bottom-ui:has(>#motion-row:not([hidden]),>#emote-tray:not([hidden]),>#snack-fun:not([hidden]),>#private-fun:not([hidden])) .actions button{pointer-events:none}
.sauna-ui #app #chat-panel .chat-line:has(.chat-avatar){position:relative;padding-left:48px;min-height:42px}.chat-avatar{position:absolute;left:0;top:1px;width:40px;height:40px;border-radius:50%;background:#f2f2f2}.sauna-ui #app #chat-panel .chat-line:has(.chat-avatar) .chat-message{max-width:100%}
.sauna-ui .room-strip button{pointer-events:auto}
body.sauna-ui #app #about .visit-options i{color:inherit}
body.sauna-ui #app #about .visit-options button.selected{background:#111;color:#fff;border-color:#111}
body.sauna-ui #app #settings input[type=checkbox]{background:#d7d7da}
body.sauna-ui #app #settings input[type=checkbox]:checked{background:#111}
@media(max-width:680px){body.sauna-ui #app #about::backdrop{background:#0001;backdrop-filter:none}}
body.sauna-ui #sleep-screen[open]{background:#101714;color:#b2b6a4}
body.sauna-ui #sleep-screen[open] h2{color:#b2b6a4}

/* Compact controls leave the room and wall displays in view. */
.view-shortcuts{position:absolute;top:calc(119px + var(--safe-top));left:max(14px,var(--safe-left));display:flex;gap:6px;z-index:21}
.sauna-ui #app .view-shortcuts button{border:1px solid #ddd;background:#fffffff2;color:#111;border-radius:12px;min-height:44px;min-width:44px;padding:8px 12px;font:600 12px/1.2 var(--font-body)}
.sauna-ui #app.calm-mode .view-shortcuts,.sauna-ui #app.wide-view .view-shortcuts,.sauna-ui #app.keyboard-open .view-shortcuts{display:none}
.sauna-ui #app #quick-chat #chat-toggle{min-width:48px;max-width:none;white-space:nowrap;word-break:keep-all;margin:0;padding:6px;font-size:12px}
.sauna-ui #app #chat-panel{max-height:none;max-width:none;overflow:hidden}
.sauna-ui #app #chat-messages{min-height:0;max-height:none;overflow-y:auto;scrollbar-gutter:stable}
.sauna-ui #app #chat-panel .chat-meta{font:600 16px/1.4 var(--font-body)}
.sauna-ui #app #chat-panel .chat-message{font-size:14px;line-height:1.55}
.sauna-ui #locker{padding:24px 18px;overflow-y:auto;overscroll-behavior:contain;scroll-padding-top:20px}
.sauna-ui #locker h2{font-size:24px;margin:0 40px 18px 0}
.sauna-ui #locker>.close{position:sticky;top:0;float:right;z-index:3;background:#fff;border:1px solid #ddd;border-radius:50%}
@media(max-width:680px){
 .sauna-ui #app .topbar{height:calc(56px + var(--safe-top));min-height:56px;padding-inline:14px}
 .sauna-ui #app .brand{height:44px;max-width:170px}
 .sauna-ui #app #locker-open{font-size:12px;min-height:40px;padding:7px 10px}
 .sauna-ui #app .room-heading{top:calc(56px + var(--safe-top));height:32px;padding-inline:14px}
 .sauna-ui #app .room-strip button{min-height:32px;font-size:12px}
 .sauna-ui #app .room-status,.view-shortcuts{top:calc(98px + var(--safe-top))!important}
 .sauna-ui #app .room-status .pill,.sauna-ui #app .camera-tools button{width:42px!important;height:42px!important;min-height:42px}
 .sauna-ui #app .room-status{right:12px!important;gap:6px!important}
 .sauna-ui #app .bottom-ui{gap:8px}
 .sauna-ui #app .actions{padding-inline:10px;min-height:44px;gap:5px}
 .sauna-ui #app .actions button{min-height:44px;font-size:12px;padding:6px 4px}
 .sauna-ui #app #primary-text{font-size:12px}
 .sauna-ui #app #primary-action:after{font-size:18px}
 .sauna-ui #app .room-nav{padding:5px 7px calc(5px + var(--safe-bottom))}
 .sauna-ui #app .room-nav button{min-height:50px;padding:5px 1px;gap:4px}
 .sauna-ui #app .room-nav svg{width:21px;height:21px}
 .sauna-ui #app .room-nav button b{font-size:10px;white-space:nowrap}
 .sauna-ui #app #quick-chat{padding:6px;gap:3px}
 .sauna-ui #app #chat-input{height:44px;font-size:16px}
 .sauna-ui #app #quick-chat #chat-form>button{width:44px;min-width:44px;max-width:44px;min-height:44px;flex-basis:44px}
 .sauna-ui #locker{width:calc(100vw - 20px);max-height:calc(100dvh - 24px);margin:auto;padding:18px 14px}
}

.sauna-ui #locker>form{position:sticky;top:0;height:0;z-index:3}.sauna-ui #locker>form .close{right:0;top:0;background:#fff;border:1px solid #ddd;border-radius:50%}

/* The bath's signature service stays visible without opening a menu. */
.sauna-ui #app #scrub-quick{display:flex;align-items:center;gap:10px;align-self:center;max-width:calc(100% - 28px);min-height:44px;padding:8px 14px;border:1px solid #b8c6b9;border-radius:14px;background:#f3f7ef;color:#294b3b;box-shadow:0 3px 12px #1f392317;font:700 13px/1.3 var(--font-body)}
.sauna-ui #app #scrub-quick[hidden]{display:none}
.sauna-ui #app #scrub-quick small{margin-left:8px;font-size:11px;font-weight:400;color:#597261}
.sauna-ui #app #scrub-quick svg{width:20px;height:20px}
.sauna-ui #app .bottom-ui:has(>#motion-row:not([hidden]),>#emote-tray:not([hidden])) #scrub-quick{visibility:hidden;pointer-events:none}
@media(max-width:360px){.sauna-ui #app #scrub-quick{font-size:12px;gap:7px;padding:7px 11px}.sauna-ui #app #scrub-quick small{margin-left:5px;font-size:10px}}

/* Food artwork has its own scale; 24px UI icons must never size this SVG. */
.sauna-ui #app #snack-game{width:min(440px,calc(100vw - 24px));padding:28px 22px 22px;max-height:calc(100dvh - 24px);overflow-y:auto}
.sauna-ui #app #snack-game h2{font-size:clamp(23px,6vw,31px);margin:12px 0 6px;word-break:keep-all}
.sauna-ui #app #snack-tap{display:block;width:min(300px,100%);height:clamp(180px,38dvh,310px);margin:8px auto 16px;padding:0;background:transparent;border:0;box-shadow:none}
.sauna-ui #app #snack-tap>svg{display:block;width:100%;height:100%;max-width:none;max-height:none;flex:none}
.sauna-ui #app #snack-progress{margin:12px 0;font-size:15px}
.sauna-ui #app #snack-done{width:100%;min-height:48px;margin-top:8px}
@media(max-height:600px){.sauna-ui #app #snack-game{padding:22px 18px 16px}.sauna-ui #app #snack-tap{height:clamp(150px,34dvh,210px);margin:4px auto 10px}.sauna-ui #app #snack-game h2{font-size:23px}}

/* Game illustrations are not toolbar icons. Keep SVG geometry at board size. */
.sauna-ui #app #ladder-board{display:block;width:100%;height:326px;max-width:none;max-height:none;background:#fafbf9;border:1px solid #e0e7e2;border-radius:14px}
.sauna-ui #app #ladder-board .ladder-rail,.sauna-ui #app #ladder-board .ladder-rung{stroke:#a7b7ad;stroke-width:3;vector-effect:non-scaling-stroke}
.sauna-ui #app #ladder-board .ladder-trace{stroke-width:4;vector-effect:non-scaling-stroke}
.sauna-ui #app #ladder-board .ladder-dot{stroke:#fff;stroke-width:2;filter:drop-shadow(0 2px 3px #0003)}
#ladder-names span{font-weight:700}#ladder-result:empty{display:none}
