/* Meeting first: cameras and essential controls fit the viewport. */
body.meeting-view{height:100dvh;overflow:hidden;font:14px system-ui,sans-serif;color:#f5edff;background:#0b0813}.meeting-view main{height:100dvh;max-width:1400px;padding:0 24px;background:#0e0a16aa;border:0}.meeting-legacy{display:none}.meeting{height:100%;display:flex;flex-direction:column;gap:10px;padding:14px 0 max(14px,env(safe-area-inset-bottom));}.meeting button{font:600 13px system-ui;min-height:42px;background:#271e38;color:#f3ecff;border:1px solid #5d416f;border-radius:12px;box-shadow:none;padding:9px 14px;cursor:pointer}.meeting button:disabled{opacity:.4;cursor:default}.meeting button:hover:enabled{background:#413050}.meeting button:focus-visible,.meeting-dialog button:focus-visible{outline:3px solid #83f5df;outline-offset:2px}.meeting-head{padding:0;display:flex;align-items:center;justify-content:space-between;flex:none;gap:10px}.meeting-head a{font-size:13px;color:#ded2e7}.meeting-head div{text-align:center}.meeting-head strong{font:800 23px system-ui;letter-spacing:3px;color:#f7df9c}.meeting-head small{display:block;color:#b6a9c4;font-size:11px;margin-top:3px}.meeting-top{display:flex;align-items:center;gap:8px;flex:none;color:#b7a8c9;font-size:12px}.meeting-top button{margin-left:auto;min-height:30px;padding:5px 12px}.live-dot{width:7px;height:7px;background:#8bf1c9;border-radius:50%;box-shadow:0 0 10px #5adfa8}.meeting-stage{flex:1;min-height:0;position:relative;overflow:hidden;border-radius:16px;background:#100c1b;border:1px solid #69457b;box-shadow:0 0 45px #a32eff20}.meeting-stage #videoGrid{height:100%;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:8px;padding:8px;max-width:none}.meeting-stage #videoGrid:has(>.video-tile:only-child){grid-template-columns:1fr}.meeting-stage .video-tile{aspect-ratio:auto;height:100%;min-height:0;background-color:#130f20;background-image:radial-gradient(ellipse at 50% 30%,#55317380,transparent),url('/materials/dark-wood.webp');background-size:cover;border:1px solid #584068;border-radius:12px;min-width:0}.meeting-stage .video-tile video{height:100%;width:100%;object-fit:cover}.meeting-stage .video-tile:not(.live):before{content:'Camera off';font:500 14px system-ui;letter-spacing:0;inset:0;color:#c9b5d9}.meeting-stage .video-tile>span{font:600 11px system-ui;letter-spacing:.2px;position:absolute;left:10px;bottom:10px;right:auto;background:#100b20cf;border-radius:8px;padding:6px 10px;max-width:calc(100% - 20px)}.meeting-stage #videoGrid.has-spotlight{grid-template-columns:repeat(2,minmax(0,1fr));}.meeting-stage #videoGrid .on-stage{grid-column:auto;grid-row:auto;border-color:#98f1d8}.meeting-turn{position:absolute;top:12px;left:12px;right:12px;z-index:2;background:#120d20dc;padding:10px;border-radius:10px;display:flex;gap:12px;align-items:center;pointer-events:none}.meeting-turn button{pointer-events:auto}.meeting-turn[hidden]{display:none}.meeting-turn .stage-banner{margin:0;padding:0;background:transparent;flex:1;min-width:0}.meeting-turn .eyebrow,.meeting-turn #stageNote,.meeting-turn #nextMC{display:none}.meeting-turn h2{font:700 15px system-ui;margin:0}.meeting-turn #countIn,.meeting-turn #stageClock{font-size:22px}.meeting-beat{display:flex;align-items:center;gap:12px;min-width:0;flex:none;background:#181222;border:1px solid #4d365f;border-radius:12px;padding:5px}.meeting-beat>strong{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.beat-transport{display:flex;gap:5px}.beat-transport button{min-width:44px;padding:5px}.meeting-notice{min-height:24px;max-height:36px;overflow:auto;flex:none}.meeting-notice #status{padding:0;margin:0;min-height:0;font:12px/1.4 system-ui;color:#cebedc;background:transparent}.meeting-toolbar{display:flex;align-items:center;justify-content:center;gap:8px;flex:none}.camera-slot,.record-slot{display:contents}.meeting-toolbar #rec{background:#c73862;color:white;border-color:#f75986;min-width:110px}.meeting-toolbar #camera{font-size:12px;max-width:130px}.meeting-toolbar #saveMeeting:enabled{background:#9ce9ce;color:#132c26;border-color:#9ce9ce}.meeting-dialog{width:min(560px,calc(100vw - 24px));max-height:85dvh;overflow:auto;border:1px solid #815494;border-radius:20px;padding:22px;background:#191221;color:#f4eaff;box-shadow:0 20px 100px #000b;font:14px/1.5 system-ui}.meeting-dialog::backdrop{background:#06030caf;backdrop-filter:blur(7px)}.meeting-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 0 18px;position:sticky;top:-22px;background:#191221;z-index:3}.meeting-dialog h2{font:700 23px system-ui;margin:0}.meeting-dialog button{font:600 13px system-ui;min-height:42px;border:1px solid #7b5a8c;border-radius:10px;background:#382647;color:#f7edff;padding:9px 14px;box-shadow:none}.meeting-dialog button:disabled{opacity:.4}.meeting-dialog input:not([type=checkbox]):not([type=range]),.meeting-dialog select{width:100%;background:#0f0a17;color:#f3e7ff;border:1px solid #77518b;border-radius:10px;font:15px system-ui;min-height:46px;padding:10px}.meeting-dialog label{display:block;margin-top:12px;margin-bottom:6px;font-size:13px;letter-spacing:0;color:#ccbbda}.meeting-dialog input[type=range]{width:100%}.meeting-dialog small{color:#b9a6cb}.beat-categories{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:20px}.beat-categories button{font-size:12px;padding:8px 3px}.beat-categories [aria-pressed=true]{background:#a7f0d6;color:#152c23;border-color:#a7f0d6}.dialog-primary{display:block;width:100%;margin-top:18px;background:#9ce9ce!important;color:#102b21!important}.meeting-dialog .controls{display:block;border:0;background:transparent;padding:0;margin:0}.meeting-dialog .controls>div{padding:0}.meeting-dialog .controls>div>label[for=beats]{display:none}.meeting-dialog .controls>div>label[for=title]{display:none}.meeting-dialog .box{display:none}.meeting-dialog .room{border:0;padding:0;margin:0;background:transparent;display:block}.meeting-dialog .crew-room>.eyebrow,.meeting-dialog .crew-room>h2,.meeting-dialog #rapCircle,.meeting-dialog #roster,.meeting-dialog .crew-status,.meeting-dialog .join-step:first-child,.meeting-dialog .crew-check{display:none}.meeting-dialog .join-steps{display:block}.meeting-dialog .join-steps.has-room{display:none}.meeting-dialog .join-step{background:transparent;border:0;padding:0;box-shadow:none}.meeting-dialog .join-step h3{display:none}.meeting-dialog .join-actions{display:grid;grid-template-columns:1fr;gap:12px}.meeting-dialog #joinSetup.joined{opacity:1}.meeting-dialog .invite-bar{padding:0}.meeting-dialog .invite-bar strong{font:700 24px system-ui;display:block}.meeting-dialog #inviteFallback{width:100%}.meeting-dialog #inviteLink{font-size:12px}.meeting-dialog #leave{margin-top:15px;background:#6a2940}.meeting-dialog .rap-settings,.meeting-dialog .advanced-control{margin:18px 0;border:1px solid #5a3d6a;border-radius:10px;padding:10px}.meeting-dialog .stage-settings{display:block}.meeting-dialog .recording-drawer{border:0;margin:0;padding:0}.meeting-dialog .recording-drawer>summary,.meeting-dialog #tapes .eyebrow,.meeting-dialog #tapes h2{display:none}.meeting-dialog #wall{display:grid;grid-template-columns:1fr;gap:15px}.meeting-dialog .tape-card{min-width:0}.meeting-dialog #tapePlayer{width:100%;margin:16px 0}.save-actions{display:flex;gap:8px}.save-actions button{flex:1}.meeting-dialog .circle-chat{background:transparent;border:0;padding:0;margin:0}.meeting-dialog .chat-heading{display:none}.meeting-dialog .chat-log{height:45dvh;max-height:420px}.meeting-dialog .chat-log strong{color:#9ef0d5}.meeting-dialog #chatForm{display:flex;margin-top:12px;gap:6px}.meeting-dialog #chatForm input{flex:1;min-width:0}.meeting-dialog .mic-options p,.meeting-dialog .beat-help{font-size:12px;color:#b5a5c4}.meeting-view .poster,.meeting-view .lava{opacity:.6}
@media(max-width:650px){.meeting-view main{padding:0 10px}.meeting{gap:7px;padding-top:10px}.meeting-head strong{font-size:17px;letter-spacing:2px}.meeting-head small{font-size:10px}.meeting-toolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.meeting-toolbar button{font-size:12px;min-height:43px;width:100%;max-width:none!important;min-width:0!important;padding:8px 3px}.meeting-stage #videoGrid{gap:5px;padding:5px}.meeting-stage .video-tile>span{font-size:9px;left:5px;bottom:5px;padding:4px 6px}.meeting-beat{gap:6px}.meeting-beat strong{font-size:12px}.meeting-beat button{font-size:12px;padding:6px 9px}.meeting-dialog{padding:16px}.meeting-dialog>header{top:-16px}.meeting-notice{max-height:33px}.meeting-notice #status{font-size:11px}.meeting-turn{top:8px;left:8px;right:8px}.meeting-turn h2{font-size:12px}}@media(max-height:550px) and (min-width:651px){.meeting{gap:5px;padding-top:7px;padding-bottom:7px}.meeting-head small{display:none}.meeting-top{display:none}.meeting-toolbar button{min-height:34px}.meeting-notice{min-height:18px}.meeting-head strong{font-size:18px}}
.meeting-view .meeting-dialog .circle-chat{display:block}
.meeting-tool-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:8px;flex:none}.meeting-tool-shortcuts button{min-height:38px;background:#172b2a;border-color:#5aaf9e;color:#bff8e9;font-size:12px}.meeting-tool-shortcuts button:hover:enabled{background:#24423d}.meeting-tool-heading{margin:22px 0 10px;color:#a9f0d7;font:700 18px system-ui;letter-spacing:.02em}.meeting-dialog .beat-tool-section,.meeting-dialog .voice-tool-section{scroll-margin-top:70px}.meeting-dialog .voice-tool-section{border-top:1px solid #654775;margin-top:20px;padding-top:4px}@media(max-width:650px){.meeting-tool-shortcuts{gap:6px}.meeting-tool-shortcuts button{font-size:11px;padding:6px 5px;min-height:34px}}
.meeting-tool-shortcuts .enter-room{grid-column:1/-1;background:#9ce9ce;color:#102b21;border-color:#9ce9ce;font-weight:800}.meeting-tool-shortcuts .enter-room[hidden]{display:none}.meeting-dialog #code,.meeting-dialog label[for=code],.meeting-dialog .join-actions>div:nth-child(2)>p{display:none}.meeting-dialog .join-actions>div:nth-child(2){display:none}.meeting-invited .meeting-dialog .join-actions>div:first-child{display:none}.meeting-invited .meeting-dialog .join-actions>div:nth-child(2){display:block}.meeting-invited .meeting-dialog .join-actions>div:nth-child(2) button{width:100%;background:#9ce9ce;color:#102b21;border-color:#9ce9ce}
