.connection-banner{position:fixed;z-index:200;left:50%;bottom:12px;transform:translateX(-50%);background:#443369;color:#fff5d6;padding:10px 20px;border-radius:16px;box-shadow:0 4px 18px #32264744;font-weight:700;max-width:90vw;text-align:center;pointer-events:none}
.connection-banner[hidden]{display:none}
body[data-pending="true"] #app button,body[data-pending="true"] #modal button{pointer-events:none;opacity:.65}
body[data-disconnected="true"] [data-action="game-action"],body[data-disconnected="true"] [data-action="answer"],body[data-disconnected="true"] [data-action="target"],body[data-disconnected="true"] [data-action="next"]{pointer-events:none;opacity:.55}
.entry-qr{display:block;width:156px;height:156px;margin:8px auto;border:7px solid white;border-radius:10px;image-rendering:pixelated}
.online-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:12px 0}
.recovery-secret{display:block;overflow-wrap:anywhere;user-select:all;background:#eee7fb;padding:14px;border-radius:12px;font-family:monospace}
.session-help{max-width:520px;margin:20px auto;padding:18px;background:#fff4d9;border:2px dashed #b9a171;border-radius:20px;text-align:center}
.player-name .presence{font-size:11px;color:#706383;display:block}
.player-card [data-action="student-recovery"],.player-card [data-action="remove-player"]{min-height:44px;white-space:nowrap;font-size:11px}
.local-tag.online{background:#e3f3e8;color:#28664a}
@media(max-height:750px) and (orientation:landscape){.entry-qr{width:115px;height:115px}.entry-code{padding:12px 20px}}
