/* The stage always fits the viewport; only long chat/history lists scroll. */
#room .board-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:7px 9px;flex:0 0 auto}
#room .board-toolbar .segments{flex:0 0 auto;margin:0}
#room .board-toolbar button{padding:6px 9px;font-size:11px;min-height:30px}
#room .board-toolbar #board-color{width:84px;flex:0 0 84px;min-height:30px;padding:5px 7px;margin:0;font-size:11px}
#room .board-toolbar #board-text{width:170px;flex:0 1 170px;min-height:30px;margin:0;padding:6px 8px;font-size:11px}
#room .participants-panel{min-height:100%;display:flex;flex-direction:column}
#room .room-invitation{margin-top:auto;padding-top:20px;border-top:1px solid #e5ecf6}
#room .room-invitation button{width:100%}#room .room-invitation p{font-size:11px;color:#7c8ba7;line-height:1.5}
.guest-page{display:grid;place-items:center;min-height:100dvh;padding:24px;background:radial-gradient(circle at top,#e8f1ff,#f7f9fd)}
.guest-card{width:min(100%,460px);background:white;border:1px solid #dce6f4;border-radius:20px;padding:32px;box-shadow:0 20px 70px #17345f12;color:#17345f}
.guest-brand{font-size:12px;font-weight:700;letter-spacing:2px;color:#2878ff}
.guest-card h1{margin:22px 0 12px;font-size:27px}.guest-card p{line-height:1.6}.guest-card .field{display:block;margin:24px 0 12px}.guest-card input{width:100%;margin-top:8px}.guest-card form>button{width:100%}
.guest-schedule,.guest-notice{font-size:12px;color:#7188a8}#guest-error{color:#b82e46}
.invite-dialog{width:min(520px,calc(100vw - 24px));padding:0;border:1px solid #dce6f4;border-radius:14px;color:#314e73}.invite-dialog::backdrop{background:#07152599}.invite-dialog input{width:100%;margin:10px 0}.invite-dialog p{line-height:1.6}
#room .guest-waiting{flex-shrink:0;background:#edf5ff;color:#17345f;border-radius:8px;padding:10px;font-size:12px;max-height:150px;overflow:auto}.guest-request{display:flex;align-items:center;gap:8px;margin-top:8px}.guest-request>span:nth-child(2){flex:1;overflow-wrap:anywhere}.guest-request button{padding:7px 10px;font-size:11px}.guest-request .avatar{width:28px;height:28px;flex:0 0 28px}
.availability{margin:18px 0;padding:12px;border:1px solid #e5ecf6;border-radius:10px}
.availability-week{display:grid;grid-template-columns:repeat(7,minmax(100px,1fr));gap:6px;overflow-x:auto}
.availability-week>div{min-height:140px;padding:8px;background:#f5f8fd;border-radius:6px;font-size:11px}
.availability-week small{display:block;margin-top:6px;color:#7c8ba7}
.busy-slot{padding:6px;background:#ffe8d5;border-radius:5px;margin-top:8px;color:#804b17}
#availability-error{color:#a54c18}
#meeting-quote[hidden],#meeting-project[hidden],#repeat-frequency[hidden],#repeat-end[hidden]{display:none}
#repeat-weekdays[hidden],#repeat-monthly[hidden]{display:none}
#repeat-weekdays{grid-column:1/-1}
#repeat-monthly>label{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:6px 0}
#repeat-monthly input[type=number]{width:75px}
#repeat-monthly input[type=radio]{width:auto}
#repeat-monthly select{width:auto}
#room #presentation-tabs[hidden],#room #presentation-screen[hidden],#room .video-tile[hidden],#room #video-pages[hidden]{display:none!important}
#room #presentation-tabs{display:flex;gap:6px;flex-shrink:0;overflow-x:auto;max-width:100%;min-height:32px}
#room #presentation-tabs button{flex-shrink:0;padding:6px 12px;border-radius:6px;background:#213b52;color:#bfd2e6;font-size:12px}
#room #presentation-tabs button[aria-selected=true]{background:#2878ff;color:white}
#room #presentation-screen{flex:1;min-height:0;overflow:hidden;background:#0a1825;border-radius:8px;display:flex}
#room #presentation-screen video{width:100%;height:100%;min-height:0;object-fit:contain}
#room.presenting #video-grid{flex:0 0 clamp(70px,14vh,120px);grid-template-rows:minmax(0,1fr)!important;justify-content:center}
#room.presenting .person-initials{width:36px;height:36px;font-size:16px}
#room.presenting #whiteboard-panel{flex:1}
#room.minimized.presenting #video-grid{display:none!important}
#room.minimized.presenting #whiteboard-panel:not([hidden]){display:flex!important}
#room.minimized.presenting .board-toolbar,#room.minimized.presenting .board-caption{display:none}
#room.minimized #presentation-tabs button{font-size:10px;padding:3px 7px}
body.meeting-expanded{overflow:hidden}
#room{position:fixed;inset:12px;margin:auto;padding:0;width:calc(100vw - 24px);height:calc(100dvh - 24px);max-width:none;max-height:none;z-index:90;display:flex;flex-direction:column;box-shadow:0 0 0 100vmax #071525bd;box-sizing:border-box}
#room[hidden]{display:none!important}
#room .room-header{height:64px;min-height:0;flex-shrink:0;padding:10px 18px}
#room .room-header>div:first-child{min-width:0;flex-wrap:nowrap}
#room .room-header h2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:45vw}
#room .room-header-right{flex-shrink:0;gap:12px}
#room .room-body{flex:1;height:auto;min-height:0;overflow:hidden;grid-template-rows:minmax(0,1fr)}
#room .room-stage{min-width:0;min-height:0;overflow:hidden;padding:12px;gap:8px}
#room .stage-top{flex-shrink:0;margin:0;min-height:28px}
#room .video-grid{flex:1;min-height:0;min-width:0;overflow:hidden;gap:8px;grid-auto-rows:minmax(0,1fr)}
#room .video-tile,#room .video-placeholder{min-height:0;min-width:0;aspect-ratio:auto;height:100%;grid-column:auto;overflow:hidden}
#room .video-placeholder{grid-column:1/-1}
#room .video-tile video{object-fit:contain}
#room .video-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
#room .call-controls{margin:0;padding:8px 0 0;gap:6px;flex-wrap:nowrap;min-height:0}
#room .call-controls button{min-width:0;flex:0 1 95px;padding:8px 6px;font-size:10px;gap:5px;min-height:44px}
#room .call-controls button small{font-size:9px}
#room .call-controls .hangup{align-self:stretch;min-width:0}
#room .call-controls .recording{background:#a3283d;border-color:#f06d83}
#room #room-error{min-height:0;margin:0;flex-shrink:0;max-height:38px;overflow:auto}
#room #room-error:empty{display:none}
#room #whiteboard-panel{min-height:0;flex:1;overflow:hidden}
#room #board{flex:1;min-height:0;width:100%;height:0;aspect-ratio:auto;object-fit:fill}
#room .board-toolbar,#room .board-caption{flex-shrink:0}
#room #video-pages{display:flex;gap:15px;justify-content:center;align-items:center;font-size:11px;flex-shrink:0}
#room #video-pages button{color:white;background:#28455f;border-radius:5px;padding:2px 12px}
#room #restore-room{display:none}
#room .room-sidebar{min-width:0;overflow:hidden}
#room #room-side-content{min-height:0;overflow:hidden}
#room .participants-panel,#room .recordings-panel,#room .device-options{overflow:auto}
#room .chat-empty{margin-top:30px}
#room .room-tabs button{font-size:11px}
#room.minimized{inset:auto 18px 18px auto;width:360px;height:260px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);box-shadow:0 12px 45px #07152570;border:1px solid #51789a;border-radius:12px}
#room.minimized .room-header{height:46px;padding:8px 12px}
#room.minimized .room-header h2{font-size:12px;max-width:160px}
#room.minimized .room-brand,#room.minimized .room-header small,#room.minimized .room-mode,#room.minimized #minimize-room{display:none}
#room.minimized #restore-room{display:block}
#room.minimized .room-body{grid-template-columns:minmax(0,1fr)}
#room.minimized .room-sidebar,#room.minimized #whiteboard-panel,#room.minimized #room-error,#room.minimized #video-pages,#room.minimized .stage-top{display:none!important}
#room.minimized #video-grid{display:grid!important}
#room.minimized .room-stage{padding:7px;gap:6px}
#room.minimized .call-controls{padding-top:5px;gap:5px}
#room.minimized .call-controls button{min-height:34px;padding:4px}
#room.minimized .call-controls button span,#room.minimized .call-controls button small{display:none}
#room.minimized #share-screen,#room.minimized #toggle-board,#room.minimized #toggle-room-panel,#room.minimized #devices{display:none}
#room.minimized #recording-indicator{font-size:0;width:8px;height:8px;background:#ee566b;border-radius:50%}
#room.minimized #recording-indicator:empty{display:none}
#room.minimized .video-placeholder>span{width:36px;height:36px;font-size:18px;margin:0}
#room.minimized .video-placeholder h3,#room.minimized .video-placeholder p{display:none}
@media(max-width:900px){
 #room{inset:0;width:100vw;height:100dvh;border-radius:0}
 #room .room-header{height:58px;padding:8px 12px}
 #room .room-header small,#room .room-mode{display:none}
 #room .room-header>div:first-child{display:block}
 #room .room-header h2{font-size:12px;margin:3px 0 0;max-width:55vw}
 #room .room-body{position:relative;grid-template-columns:minmax(0,1fr)}
 #room .room-sidebar{display:none;position:absolute;inset:0 0 76px auto;width:min(330px,100%);z-index:3;box-shadow:-8px 0 30px #0004}
 #room.panel-open .room-sidebar{display:flex}
 #room .room-stage{padding:8px}
 #room .call-controls{gap:3px}
 #room .call-controls button{font-size:8px;padding:6px 2px;gap:3px}
 #room .call-controls button svg{width:17px;height:17px}
 #room .call-controls button small{display:none}
 #room .board-toolbar{padding:4px;gap:4px}
 #room .board-caption span{display:none}
 #room .video-placeholder>span{width:50px;height:50px;font-size:22px;margin-bottom:8px}
 #room.minimized{inset:auto 12px 12px auto;width:300px;height:225px}
}
@media(max-height:480px){#room .room-header{height:42px}#room .room-brand,#room .call-controls small{display:none}#room .call-controls button{min-height:30px;padding:4px}#room .call-controls button svg{width:15px;height:15px}#room .video-placeholder p{display:none}}

@media(min-width:901px){#room.panel-collapsed .room-body{grid-template-columns:minmax(0,1fr)}#room.panel-collapsed .room-sidebar{display:none}}

#room .board-surface{position:relative;flex:1;min-height:0;overflow:hidden}
#room .board-surface #board{position:absolute;inset:0;display:block;width:100%;height:100%;padding:0;border:0;object-fit:fill;cursor:crosshair}
#board-cursor{position:absolute;width:10px;height:10px;border:1px solid #2878ff;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;background:#2878ff22}
#devices-dialog{width:min(480px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;border:1px solid #dce6f4;border-radius:12px;box-shadow:0 20px 80px #07152580;color:#314e73}
#devices-dialog::backdrop{background:#07152599}
#devices-dialog .modal-heading h2{font-size:18px;margin:0}
#devices-dialog .modal-heading button{font-size:24px}
#devices-dialog .modal-body p{font-size:12px;line-height:1.6}
#devices-dialog .field{margin-top:18px}
#devices-dialog .field select{width:100%;font-size:14px;padding:12px}
#devices-dialog .modal-footer{justify-content:flex-end}
#device-status{min-height:18px;color:#2878ff}
.delete-recording{margin-top:10px;padding:7px 9px;border:1px solid #f0bfc6;color:#b82e46;border-radius:6px;font-size:11px}

.device-camera-test{display:flex;flex-direction:column;gap:9px;margin:12px 0}
.device-camera-test video{width:100%;max-height:170px;object-fit:contain;background:#102030;border-radius:8px;transform:scaleX(-1)}
.device-camera-test small{font-size:11px;color:#7b93b0}
.preflight-preview p{max-width:430px}

