.timers-hidden .seat .timer{display:none!important}.speech-bubble{position:absolute;z-index:15;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);width:max-content;max-width:180px;max-height:100px;overflow:hidden;white-space:normal;overflow-wrap:anywhere;background:#fff7e8f5;border:1px solid #b49560;color:#302416;padding:8px 12px;border-radius:12px 12px 12px 2px;font-size:12px;font-weight:400;line-height:1.5;box-shadow:0 4px 18px #0002;pointer-events:none}.seat:has(.speech-bubble){z-index:10}
#hallStudyStatus{font-size:10px;color:#c5ae88;white-space:nowrap}#sceneryShop{width:min(840px,94vw)}.scenery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.scenery-grid article{border:1px solid #ad8b5444;border-radius:12px;overflow:hidden;padding:10px}.scenery-grid img{width:100%;aspect-ratio:2;object-fit:cover;border-radius:7px}.scenery-grid h3{font-size:15px}.scenery-grid p{font-size:12px;margin:6px 0}.scenery-grid button{width:100%}
@media(max-width:700px){.speech-bubble{font-size:10px;padding:5px 8px;max-width:125px;max-height:72px}.in-room .controls{bottom:76px}.in-room header>.actions{max-width:53%;gap:3px}.in-room header>.actions button{padding:5px 7px;font-size:10px}#hallStudyStatus{font-size:9px}.scenery-grid{grid-template-columns:1fr}.in-room #private{bottom:210px;height:min(340px,calc(100dvh - 330px))}}

/* 期中自习室 (event-room.js, focus-tools.js) */
#lobby .welcome .sa-event-join{margin-top:10px;background:linear-gradient(100deg,#2b2f63,#5a3a78);color:#fff3df;border-color:#ffd27a80;box-shadow:0 8px 20px rgba(43,47,99,.35)}
#lobby .welcome .sa-event-join small{color:#ffe08a;font-size:12px}
.sa-focus-bar.is-scheduled{border-color:#ffd27a80;background:linear-gradient(100deg,#2b2f63e6,#5a3a78e6);color:#fff3df}

/* 同一账号开了两个大厅窗口（room.js：snapshot.here=false）：这个窗口只能看，中间提示 +「在这里继续」 */
.elsewhere{position:absolute;z-index:12;top:50%;left:50%;transform:translate(-50%,-50%);width:min(440px,calc(100% - 32px));display:grid;gap:10px;justify-items:center;text-align:center;padding:22px 24px 20px;border-radius:18px;border:1px solid rgba(240,197,124,.55);background:linear-gradient(165deg,rgba(46,35,25,.96),rgba(24,18,13,.95));box-shadow:0 18px 50px rgba(0,0,0,.55);color:#f3e6cf}
.elsewhere b{font:600 17px/1.45 "Songti SC",serif;text-wrap:balance;letter-spacing:.04em;color:#ffe4b4}
.elsewhere p{margin:0;font-size:13px;line-height:1.7;color:#d9c4a3}
.elsewhere .primary{margin-top:4px;min-height:40px;padding:9px 26px;font-size:14px;border-radius:999px}
body.elsewhere #room::after{content:"";position:absolute;inset:0;z-index:8;background:rgba(18,13,8,.5);pointer-events:none}
body.elsewhere .controls,body.elsewhere .room-voice{opacity:.6}
@media(max-width:700px){.elsewhere{padding:16px 16px 14px;gap:8px}.elsewhere b{font-size:15px}.elsewhere p{font-size:12px}}
