.meeting-shell{position:fixed;inset:0;z-index:1100;overflow:auto;background:radial-gradient(ellipse at 50% 0%,#193541 0%,#0a1821 65%);color:#edf7fa;padding:calc(18px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:16px}.meeting-shell[hidden]{display:none}.meeting-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.meeting-head h1,.meeting-head h2{font-size:24px;margin:0}.meeting-body{width:100%;max-width:1100px;margin:0 auto;display:grid;gap:16px}.meeting-shell input,.meeting-shell textarea{max-width:100%;min-width:0}.meeting-shell button{min-height:44px}.meeting-actions,.meeting-controls{display:flex;gap:8px;flex-wrap:wrap}.meeting-actions>*{flex:1;min-width:120px}.meeting-status{border:1px solid #537080;border-radius:16px;padding:12px 16px;font-size:15px}.meeting-status::before{content:'';display:inline-block;width:8px;height:8px;background:#a4ddce;border-radius:50%;margin-right:10px;animation:meetingPulse 2.3s ease-in-out infinite}.meeting-people{display:grid;gap:12px}.meeting-request{border:1px solid #4e6675;border-radius:18px;padding:16px;display:grid;gap:10px}.meeting-request strong{overflow-wrap:anywhere}.meeting-code{font:600 30px ui-monospace,monospace;letter-spacing:.15em;color:#bbdff5}.meeting-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:12px}.meeting-person{border:1px solid #425b6a;border-radius:20px;overflow:hidden;background:#132530;transition:border-color .3s,box-shadow .3s}.meeting-person.speaking{border-color:#a4ddce;box-shadow:0 0 22px #91ddc82b}.meeting-picture{min-height:110px;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle,#264958,#10212d)}.meeting-picture:empty::after{content:'◉';color:#9cbaca;font-size:42px}.meeting-person video{width:100%;max-height:42vh;object-fit:contain;display:block}.meeting-person strong{display:block;padding:10px 14px;font-size:15px;overflow-wrap:anywhere}.meeting-chat{margin-top:18px}.meeting-log{max-height:200px;overflow:auto;overflow-wrap:anywhere}.meeting-log p{display:grid;gap:4px;font-size:15px}.meeting-log span{white-space:pre-wrap}.meeting-chat form{display:flex;gap:8px;align-items:center}.meeting-chat textarea{flex:1}.meeting-muted{color:#b5c6d0;font-size:14px;line-height:1.5}.meeting-shell .error{color:#ffc3b9}.meeting-entry{display:grid;gap:16px;max-width:520px;margin:8vh auto;width:100%}.meeting-entry label{display:grid;gap:8px}.meeting-link{font-family:ui-monospace,monospace;font-size:13px}.meeting-roster{white-space:pre-line}.meeting-warning{color:#e8c995}.meeting-consent{display:flex;gap:12px;align-items:flex-start;font-size:14px}.meeting-consent input{width:22px;height:22px;flex-shrink:0}@keyframes meetingPulse{50%{opacity:.35;box-shadow:0 0 15px #a4ddce}}@media(prefers-reduced-motion:reduce){.meeting-status::before{animation:none}.meeting-person{transition:none}}@media(min-width:800px){.meeting-shell{padding:28px 40px}.meeting-head{max-width:1100px;width:100%;margin:0 auto}.meeting-body{grid-template-columns:1fr}.meeting-controls>*{flex:1}} 

.meeting-head{position:sticky;top:0;z-index:2;background:#0b1b25eF;backdrop-filter:blur(14px);padding:10px 0}.meeting-controls{padding:10px 0;position:sticky;bottom:0;background:#0b1b25f5;z-index:1}.meeting-picture{flex-direction:column}.meeting-shell:has(.meeting-grid) .meeting-actions{scroll-margin-top:80px}
