/* Browser-only layer. Native app meeting layout and media controller stay unchanged. */
.ghost-meetings .meeting-site{max-width:1440px}.ghost-meetings #meeting_root{position:relative;inset:auto;z-index:auto;overflow:visible;min-width:0;width:100%;padding:32px;border:1px solid #9bc2dd24;border-radius:24px;background:linear-gradient(145deg,#152633dd,#0d1825ef 65%);box-shadow:0 25px 90px #0004,inset 0 1px 0 #e2ffff0b;display:flex;gap:0;align-self:center}.ghost-meetings #meeting_root::before{content:'';position:absolute;top:-1px;left:24%;right:24%;height:1px;background:linear-gradient(90deg,transparent,#a1f3e7b0,transparent)}.meeting-browser-caption{font:600 9px/1.6 system-ui,sans-serif;letter-spacing:.24em;color:#8ba4b7;margin-bottom:24px}.ghost-meetings .meeting-browser-steps{order:1;margin:22px 0 0}.ghost-meetings #meeting_root>.meeting-head{position:static;background:none;padding:0 0 18px;backdrop-filter:none;justify-content:flex-end}.ghost-meetings #meeting_root>.meeting-head h1{display:none}.ghost-meetings #meeting_root>.meeting-head button{font-size:12px;min-height:36px;background:transparent;border-color:#9bc2dd24;padding:6px 12px}.ghost-meetings .meeting-body{display:grid;gap:16px}.ghost-meetings .meeting-entry{max-width:none;margin:0;gap:20px}.ghost-meetings .meeting-entry h2{font-size:28px;font-weight:550;letter-spacing:-.035em}.ghost-meetings .meeting-entry>.meeting-muted{font-size:12px;color:#91a7b9;line-height:1.7;margin-top:-10px}.ghost-meetings .meeting-entry label{font-size:12px;color:#afc4d3;gap:8px}.ghost-meetings .meeting-entry textarea,.ghost-meetings .meeting-entry input{background:#06111b99;border-color:#9bc2dd24;border-radius:12px;padding:12px 14px;font-size:14px;resize:vertical;max-height:190px}.ghost-meetings .meeting-entry textarea{font:12px/1.7 ui-monospace,monospace;min-height:84px}.ghost-meetings .meeting-entry>button,.ghost-meetings .meeting-body>button{background:linear-gradient(115deg,#c3ece9,#acd0ea);color:#10242e;min-height:52px;border:0;border-radius:12px;font-size:14px;font-weight:600;box-shadow:0 6px 24px #77cfd80d}.ghost-meetings .meeting-entry>button:hover:not(:disabled),.ghost-meetings .meeting-body>button:hover:not(:disabled){background:#d0f3ef;box-shadow:0 0 25px #90e7dc20}.ghost-meetings .meeting-entry>button:disabled{opacity:.5}.ghost-meetings .meeting-hero h1{font-size:clamp(38px,4.3vw,61px)}.ghost-meetings #meeting_root>.error{margin-top:14px;font-size:13px}.ghost-meetings #meeting_root>.error:empty{display:none}.ghost-meetings .meeting-status{font-size:16px;font-weight:450;line-height:1.6;background:#071722;border:1px solid #6fa4b53b;border-radius:14px;color:#c1dde4}.ghost-meetings .meeting-code{font:500 clamp(32px,3.2vw,46px)/1.5 ui-monospace,monospace;text-align:center;background:#06111bc9;padding:16px 8px;border:1px solid #87c6da35;border-radius:14px;letter-spacing:.13em;color:#d3f3ef;user-select:all}.ghost-meetings .meeting-body>h2{font-size:27px;color:#d4e9ed;font-weight:500;overflow-wrap:anywhere}.ghost-meetings .meeting-body>.meeting-muted{font-size:12px;color:#91a9ba;line-height:1.8}.ghost-meetings .meeting-body>.meeting-roster{font-size:12px;color:#9ab3c4;padding:0 2px;line-height:1.8}.ghost-meetings .meeting-roster:empty{display:none}
.ghost-meetings[data-meeting-stage=entry] #meeting_root>.meeting-head,.ghost-meetings[data-meeting-stage=ended] #meeting_root>.meeting-head{display:none}.ghost-meetings[data-meeting-stage=waiting] .ring-a{animation-duration:9s}.ghost-meetings[data-meeting-stage=waiting] .meeting-status::before{background:#e2c68f;box-shadow:0 0 12px #e2c68f40}.ghost-meetings[data-meeting-stage=admitted] .web-core{border-color:#7ce8e070;box-shadow:0 0 50px #24b4b330}.ghost-meetings[data-meeting-stage=ended] .web-orbit,.ghost-meetings[data-meeting-stage=ended] .web-orbit-halo{animation-play-state:paused;opacity:.35}.ghost-meetings[data-meeting-stage=ended] .meeting-status::before{animation:none;background:#8597a3}.ghost-meetings[data-meeting-stage=ended] .web-core{filter:saturate(.3)}
/* Live room: video takes the stage, with an independent chat column. */
.ghost-meetings:is([data-meeting-stage=active],[data-meeting-stage=connecting]) .meeting-hero{display:none}.ghost-meetings:is([data-meeting-stage=active],[data-meeting-stage=connecting]) .meeting-onboarding{display:block;max-width:none;padding:32px 0;flex:1}.ghost-meetings:is([data-meeting-stage=active],[data-meeting-stage=connecting]) #meeting_root{padding:24px}.ghost-meetings:is([data-meeting-stage=active],[data-meeting-stage=connecting]) .meeting-browser-caption{margin:0;position:absolute;top:32px;left:24px}.ghost-meetings:is([data-meeting-stage=active],[data-meeting-stage=connecting]) .meeting-browser-steps{display:none}.ghost-meetings .meeting-body>section:has(.meeting-grid){display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:16px;align-items:start;min-width:0}.ghost-meetings .meeting-body>section>.meeting-status{grid-column:1/-1;margin:0;font-size:12px;border-color:#9bc2dd20;background:#091925}.ghost-meetings .meeting-body>section>.meeting-grid{grid-column:1;grid-row:2;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:12px}.ghost-meetings .meeting-person{border:1px solid #91bdd529;border-radius:16px;background:#0b1c28}.ghost-meetings .meeting-picture{min-height:180px;background:radial-gradient(ellipse at 50% 35%,#244758,#0c1b28 80%)}.ghost-meetings .meeting-picture:empty::after{content:'';width:58px;height:58px;border:1px solid #87d5d360;border-top-color:transparent;border-radius:50%;box-shadow:0 0 35px #54baba0d}.ghost-meetings .meeting-person video{max-height:42vh;background:#050c12}.ghost-meetings .meeting-person strong{font-size:12px;padding:12px 16px;color:#c7e0e6}.ghost-meetings .meeting-person.speaking{border-color:#7ce8e08f;box-shadow:0 0 20px #5ecbba20}.ghost-meetings .meeting-controls{grid-column:1;grid-row:3;position:sticky;bottom:12px;padding:10px;background:#0a1622f5;border:1px solid #9bc2dd1f;border-radius:16px;backdrop-filter:blur(14px);gap:8px}.ghost-meetings .meeting-controls>button{min-width:110px;flex:1;background:#1b3040;color:#bdd6e2;font-size:11px;border-radius:10px;padding:10px 12px}.ghost-meetings .meeting-controls>button:hover{background:#274353}.ghost-meetings .meeting-chat{grid-column:2;grid-row:2/4;margin:0;border:1px solid #9bc2dd20;border-radius:16px;background:#0a1722;display:flex;flex-direction:column;min-height:320px;align-self:stretch;padding:16px;min-width:0}.ghost-meetings .meeting-chat-title{color:#bed8e1;font-size:13px;letter-spacing:.01em;font-weight:550;padding-bottom:16px;border-bottom:1px solid #9bc2dd15}.ghost-meetings .meeting-log{flex:1;min-height:150px;max-height:55vh;scrollbar-width:thin;scrollbar-color:#345768 transparent;display:flex;flex-direction:column;gap:12px;padding:16px 0}.ghost-meetings .meeting-log p{background:#192e3a;border-radius:4px 12px 12px;padding:10px 12px;font-size:13px;gap:5px}.ghost-meetings .meeting-log strong{font-size:10px;color:#85bfc2;font-weight:550}.ghost-meetings .meeting-chat form{flex-wrap:wrap;gap:8px}.ghost-meetings .meeting-chat textarea{flex-basis:100%;border-color:#9bc2dd25;background:#07111a;border-radius:12px;font-size:12px;resize:vertical;max-height:140px}.ghost-meetings .meeting-chat button{width:100%;font-size:12px;min-height:40px;border-radius:10px;background:#b6dfdf}.ghost-meetings .meeting-body>section>.error{grid-column:1/-1;font-size:12px}.ghost-meetings .meeting-body>section>.error:empty{display:none}.ghost-meetings.web-paused .meeting-status::before{animation-play-state:paused}
@media(max-width:1000px){.ghost-meetings #meeting_root{padding:24px}.ghost-meetings .meeting-hero h1{font-size:44px}.ghost-meetings .meeting-body>section:has(.meeting-grid){grid-template-columns:minmax(0,1fr) 240px}}
@media(max-width:760px){.ghost-meetings .meeting-hero h1{font-size:40px}.ghost-meetings .meeting-onboarding{max-width:480px}.ghost-meetings #meeting_root{padding:24px}.ghost-meetings .meeting-entry h2{font-size:25px}.ghost-meetings .meeting-entry{gap:18px}.ghost-meetings .meeting-code{font-size:32px}.ghost-meetings .meeting-status{font-size:14px}.ghost-meetings .meeting-body>section:has(.meeting-grid){display:flex;flex-direction:column;gap:12px}.ghost-meetings .meeting-body>section>*{width:100%;min-width:0}.ghost-meetings .meeting-person video{max-height:38vh}.ghost-meetings .meeting-picture{min-height:150px}.ghost-meetings .meeting-controls{position:static;padding:8px}.ghost-meetings .meeting-controls>button{min-width:100px}.ghost-meetings .meeting-chat{min-height:260px}.ghost-meetings .meeting-log{max-height:250px}.ghost-meetings:is([data-meeting-stage=active],[data-meeting-stage=connecting]) #meeting_root{padding:18px}.ghost-meetings:is([data-meeting-stage=active],[data-meeting-stage=connecting]) .meeting-browser-caption{left:18px;top:26px}}
@media(max-width:370px){.ghost-meetings .meeting-hero h1{font-size:34px}.ghost-meetings #meeting_root{padding:20px}.ghost-meetings .meeting-code{font-size:29px;letter-spacing:.1em}.ghost-meetings .meeting-body>h2{font-size:23px}}
@media(prefers-reduced-motion:reduce){.ghost-meetings .meeting-status::before{animation:none}.ghost-meetings .meeting-person{transition:none}}

.ghost-meetings[data-meeting-stage=connecting] .meeting-status::before,.ghost-meetings #meeting_root[data-reconnecting=true] .meeting-status::before{background:#e2c68f;animation:none;box-shadow:none}
