.formal #room-screen{position:absolute;inset:0;z-index:11;display:grid;place-items:center;padding:12px;background:#031b2d58;backdrop-filter:blur(2px);overflow:auto}
.formal #room-screen[hidden]{display:none}
.room-open #home-screen,.room-open #field-hud,.room-open #formal-settings,.room-open .cannon-control{visibility:hidden}
.room-open #formal-paused,.room-open #rotate-prompt{display:none!important}
.room-card{width:min(640px,92%);padding:20px 24px;border:2px solid #d8d09a;border-radius:18px;background:linear-gradient(160deg,#176383ed,#082f50f5);box-shadow:0 8px 0 #05223988,0 18px 50px #00122066;color:#fff3ce}
.room-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.room-heading h2{font-size:26px;margin:0}.room-heading button{min-width:64px;padding:6px 12px}
.room-card label{display:grid;grid-template-columns:100px 1fr;align-items:center;gap:10px;margin:10px 0;font-size:17px}.room-card input,.room-card select{width:100%;min-height:36px;border:1px solid #9ec8c7;border-radius:7px;padding:6px 10px;background:#082b46;color:#fff5d2;font:inherit}.room-card input:focus,.room-card select:focus{outline:2px solid #ffe4a1;outline-offset:2px}
.room-card button{font-weight:700}.room-card #room-submit{width:100%;margin-top:10px}.room-card #room-error{margin:8px 0 0;min-height:20px;color:#ffdcb5;font-size:14px}
#room-rules{margin:2px 0 14px;text-align:center}.room-seats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.room-seat{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 7px;border:1px solid #82bbc0;border-radius:12px;background:#072b499c;min-width:0}.room-seat strong{font-size:21px}.room-seat span{width:100%;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-seat small{color:#a8e9df}.room-seat button{padding:6px;font-size:13px;width:100%}
#room-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:16px}#room-actions button{min-width:100px}#room-ranking p{margin:8px;text-align:center}
@media(max-height:480px){.room-card{padding:12px 18px}.room-heading{margin-bottom:6px}.room-heading h2{font-size:21px}.room-card label{margin:6px 0;font-size:15px}.room-seat{padding:8px 6px;gap:5px}.room-seat strong{font-size:18px}#room-actions{margin-top:10px}#room-rules{margin-bottom:8px}}
@media(max-width:560px){.room-card{padding:14px;width:96%}.room-seats{grid-template-columns:repeat(2,1fr)}.room-card label{grid-template-columns:80px 1fr}}
/* The keyboard moves this form, while mobile.mjs preserves the ocean's layout size. */
.mobile.formal #room-screen{position:fixed;inset:auto;left:var(--room-viewport-left,0px);top:var(--room-viewport-top,0px);width:var(--room-viewport-width,100vw);height:var(--room-viewport-height,100dvh);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:max(8px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}
.mobile #room-screen>.room-card{flex:none;margin:auto 0;max-width:100%}
.mobile .room-card input,.mobile .room-card select{font-size:16px;min-width:0;min-height:38px}
@media(min-width:560px) and (max-height:480px){
 .mobile #room-entry{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:14px;row-gap:4px}
 .mobile #room-create-options{display:contents}
 .mobile #room-entry label{grid-template-columns:72px minmax(0,1fr);font-size:16px;margin:3px 0;gap:6px}
 .mobile #room-submit{grid-column:1/-1;position:sticky;bottom:0;z-index:1;min-height:40px;margin-top:4px}
}
.mobile.keyboard-open #room-screen>.room-card{padding:10px 16px;margin-top:0;margin-bottom:auto}
.mobile.keyboard-open .room-heading{margin-bottom:4px}
.mobile.keyboard-open .room-heading h2{font-size:20px}
