*{box-sizing:border-box}:root{background:#f4f5f7;color:#1b1d28;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink: #1b1d28;--muted: #6e7484;--line: #dde1e8;--panel: #ffffff;--meeting: #1d2030;--meeting-soft: #262a3a;--meeting-line: rgba(255, 255, 255, .08);--accent: #df6848;--blue: #3368d7;--red: #c84d4d}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f4f5f7;color:var(--ink)}button,input,select{font:inherit}button{align-items:center;border:0;border-radius:7px;cursor:pointer;display:inline-flex;font-weight:700;gap:.5rem;justify-content:center;min-height:2.5rem}button:disabled{cursor:not-allowed;opacity:.55}input,select{border:1px solid var(--line);border-radius:7px;color:var(--ink);background:#fff;min-height:2.75rem;padding:0 .9rem;width:100%}input:focus,select:focus,button:focus-visible{outline:3px solid rgba(51,104,215,.25);outline-offset:2px}.entry-shell{align-items:center;display:grid;min-height:100vh;padding:1.5rem}.entry-panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 24px 70px #1b1d281a;margin:0 auto;max-width:560px;padding:clamp(1.25rem,4vw,2.5rem);width:100%}.brand-row{align-items:center;color:var(--blue);display:flex;font-weight:800;gap:.75rem}.brand-row.compact{font-size:.9rem}.brand-mark{align-items:center;background:var(--blue);border-radius:7px;color:#fff;display:inline-flex;height:2.25rem;justify-content:center;width:2.25rem}.entry-panel h1,.lobby-header h1,.host-panel h2{letter-spacing:0;margin:0}.entry-panel h1{font-size:clamp(2rem,6vw,3.25rem);line-height:1.02;margin-top:2.25rem}.entry-copy{color:var(--muted);line-height:1.6;margin:1rem 0 2rem}.join-form{display:grid;gap:.5rem}.join-row{display:grid;gap:.75rem;grid-template-columns:minmax(0,1fr) auto}.join-form>button,.device-setup button,.join-row button{background:var(--blue);color:#fff;padding:0 1rem}.device-setup{border:1px solid var(--line);border-radius:8px;display:grid;gap:.85rem;margin:.5rem 0;padding:1rem}.device-setup>button{justify-self:start}.device-select-grid{display:grid;gap:.5rem}.preflight-checks{border-top:1px solid var(--line);display:grid;gap:.6rem;padding-top:.85rem}.preflight-preview{aspect-ratio:16 / 9;background:#191b20;border-radius:7px;overflow:hidden}.preflight-preview video,.preflight-placeholder{height:100%;width:100%}.preflight-preview video{display:block;object-fit:cover}.preflight-placeholder{align-items:center;color:#c9ced8;display:flex;font-weight:700;justify-content:center}.preflight-checks progress{accent-color:var(--blue);height:.7rem;width:100%}.preflight-actions{display:grid;gap:.5rem;grid-template-columns:repeat(2,minmax(0,1fr))}.preflight-status{color:var(--muted);font-size:.9rem;font-weight:700;margin:0}.entry-warning{background:#fff8e8;border:1px solid #efd99c;border-radius:7px;color:#8d6416;font-weight:700;margin:0;padding:.75rem}.error-banner,.meeting-error,.meeting-warning{background:#fff0f0;border:1px solid #f0c4c4;border-radius:7px;color:var(--red);font-weight:700;margin:0;padding:.75rem 1rem}.meeting-warning{background:#fff8e8;border-color:#efd99c;color:#8d6416}.lobby-shell{display:grid;gap:1rem;margin:0 auto;max-width:1180px;min-height:100vh;padding:1.5rem}.lobby-header{align-items:center;display:flex;gap:1rem;justify-content:space-between}.lobby-header h1{font-size:clamp(2rem,5vw,3.25rem);margin-top:1rem}.identity-chip{align-items:flex-end;background:#fff;border:1px solid var(--line);border-radius:8px;display:grid;min-width:12rem;padding:.9rem 1rem;text-align:right}.identity-chip span,.empty-state,.message p,.lobby-room-card small,.rail-room small,.host-note{color:var(--muted)}.lobby-grid{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.lobby-room-card{align-items:flex-start;background:#fff;border:1px solid var(--line);color:var(--ink);display:grid;justify-content:stretch;min-height:7rem;padding:1rem;text-align:left}.message p{margin:.25rem 0 0}.meeting-shell{background:var(--meeting);color:#fff;display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100vh;min-height:620px;padding:1rem;position:relative}.meeting-topbar{align-items:center;display:flex;justify-content:space-between;padding:0 .25rem .75rem}.meeting-brand{font-size:1rem;font-weight:900;letter-spacing:0}.meeting-room-title{align-items:flex-end;display:grid;gap:.2rem;justify-items:end}.meeting-room-title span{color:#aeb5c8;font-size:.85rem}.meeting-error,.meeting-warning{left:50%;position:absolute;top:3.7rem;transform:translate(-50%);z-index:5}.meeting-warning{top:6.5rem}.meeting-content{display:grid;gap:.75rem;grid-template-columns:13rem minmax(0,1fr) 18rem;min-height:0}.room-rail,.member-panel{background:var(--meeting-soft);border:1px solid var(--meeting-line);border-radius:8px;min-height:0;padding:.75rem}.room-rail{align-content:start;display:grid;gap:.5rem}.rail-room{align-items:flex-start;background:#ffffff0a;color:#fff;display:grid;justify-content:stretch;min-height:4rem;padding:.65rem;text-align:left}.rail-room.active{background:#ffffff21}.meeting-stage{background:#242838;border:1px solid var(--meeting-line);border-radius:8px;min-height:0;overflow:hidden;padding:.6rem}.tile-grid{display:grid;gap:.6rem;height:100%;min-height:0}.tile-grid.focused{grid-template-columns:minmax(0,1fr)}.participant-tile{background:#2a2e3e;border-radius:7px;min-height:9rem;overflow:hidden;position:relative}.participant-tile.featured{min-height:24rem}.camera-placeholder{align-items:center;background:linear-gradient(135deg,#30465f,#262a3a 55%,#3a324a);display:flex;justify-content:center}.camera-placeholder span{align-items:center;background:#ffffff14;border-radius:999px;color:#65e275;display:inline-flex;font-size:clamp(2.2rem,7vw,4rem);font-weight:900;height:7rem;justify-content:center;width:7rem}.name-badge{align-items:center;background:#181b26c2;border-radius:6px;bottom:.55rem;display:inline-flex;font-size:.9rem;font-weight:800;gap:.3rem;max-width:calc(100% - 1.1rem);padding:.35rem .5rem;position:absolute;right:.55rem}.member-panel{align-content:start;display:grid;gap:.75rem;overflow:auto}.member-panel header{align-items:center;border-bottom:1px solid var(--meeting-line);display:flex;justify-content:space-between;padding-bottom:.75rem}.member-row{align-items:center;display:grid;gap:.6rem;grid-template-columns:2rem minmax(0,1fr)}.member-avatar{align-items:center;background:#ffffff14;border-radius:50%;color:#6fe27e;display:inline-flex;font-weight:900;height:2rem;justify-content:center;width:2rem}.member-devices{color:#b9c0d1;display:inline-flex;gap:.35rem}.host-panel{border-top:1px solid var(--meeting-line);display:grid;gap:.55rem;margin-top:.5rem;padding-top:.75rem}.eyebrow{color:#aeb5c8;font-size:.75rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.host-panel h2{font-size:1rem}.host-panel button{background:#ffffff0f;color:#fff;justify-content:flex-start;padding:0 .75rem}.host-note{align-items:flex-start;display:flex;font-size:.85rem;gap:.5rem;line-height:1.4;margin:.35rem 0 0}.meeting-toolbar{align-items:center;display:flex;gap:.55rem;justify-content:center;padding-top:.75rem}.meeting-toolbar button{background:#34394b;color:#fff;height:2.5rem;min-width:2.5rem;padding:0 .75rem}.meeting-toolbar .leave-button{background:var(--accent);min-width:4.25rem}@media(max-width:1060px){.meeting-content{grid-template-columns:minmax(0,1fr) 17rem}.room-rail{display:none}}@media(max-width:760px){.meeting-shell{min-height:100vh;padding:.6rem}.meeting-content{grid-template-columns:1fr}.member-panel{display:none}.meeting-toolbar{flex-wrap:wrap}.meeting-toolbar button{font-size:.86rem}.lobby-header,.join-row,.message-row{align-items:stretch;flex-direction:column;grid-template-columns:1fr}}.meeting-shell{background:#101114;color:#f7f8fb;display:grid;gap:.75rem;grid-template-rows:3.25rem minmax(0,1fr) 4.25rem;height:100vh;min-height:620px;padding:.75rem;position:relative}.meeting-topbar{align-items:center;background:#1a1c22e6;border:1px solid rgba(255,255,255,.08);border-radius:8px;display:grid;gap:1rem;grid-template-columns:12rem minmax(0,1fr) auto 12rem;min-height:0;padding:0 .9rem}.meeting-brand{color:#7ddf83;font-size:.95rem;font-weight:900;letter-spacing:0}.meeting-room-title{align-items:center;display:flex;gap:.75rem;justify-content:center;min-width:0}.meeting-room-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meeting-room-title span,.meeting-identity span{color:#aeb4c2;font-size:.84rem}.meeting-identity{align-items:end;display:grid;gap:.1rem;justify-items:end;min-width:0}.meeting-identity strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.view-mode-switch{align-items:center;background:#ffffff0f;border:1px solid rgba(255,255,255,.08);border-radius:7px;display:inline-flex;gap:.2rem;padding:.2rem}.view-mode-switch button{background:transparent;border:0;border-radius:5px;color:#c9ced8;font-size:.82rem;height:2rem;padding:0 .65rem}.view-mode-switch button[aria-pressed=true]{background:#7ddf832e;color:#f7f8fb}.meeting-error,.meeting-warning{left:50%;max-width:min(44rem,calc(100vw - 2rem));position:absolute;top:4.45rem;transform:translate(-50%);width:max-content;z-index:8}.meeting-warning{top:7.2rem}.meeting-content{display:grid;gap:.75rem;grid-template-columns:12rem minmax(0,1fr) 21rem;min-height:0}.room-rail,.meeting-side-panels{min-height:0}.room-rail{align-content:start;background:#1a1c22db;border:1px solid rgba(255,255,255,.08);border-radius:8px;display:grid;gap:.55rem;overflow:auto;padding:.7rem}.room-rail header{color:#c9ced8;font-size:.88rem;padding:.15rem .2rem .35rem}.rail-room{align-items:start;background:transparent;border:1px solid transparent;border-radius:7px;color:#eef1f6;display:grid;gap:.15rem;justify-content:stretch;min-height:3.55rem;padding:.55rem .65rem;text-align:left}.rail-room:hover{background:#ffffff0f}.rail-room.active{background:#7ddf8324;border-color:#7ddf8359}.rail-room small{color:#aeb4c2;font-size:.78rem}.meeting-stage{background:#191b20;border:1px solid rgba(255,255,255,.08);border-radius:8px;display:grid;min-height:0;overflow:hidden;padding:.75rem}.meeting-stage.has-presentation{gap:.7rem;grid-template-rows:minmax(0,1fr) 8.5rem}.presentation-stage{min-height:0}.tile-grid{display:grid;gap:.7rem;height:100%;min-height:0}.tile-grid.solo{grid-template-columns:minmax(0,1fr)}.tile-grid.gallery{grid-template-columns:repeat(var(--gallery-columns, 2),minmax(0,1fr));grid-template-rows:repeat(var(--gallery-rows, 1),minmax(0,1fr))}.filmstrip{display:grid;gap:.55rem;grid-auto-columns:minmax(10.5rem,13rem);grid-auto-flow:column;min-height:0;overflow-x:auto;overflow-y:hidden;padding-bottom:.1rem}.participant-tile{background:#24262d;border:1px solid rgba(255,255,255,.08);border-radius:8px;min-height:10rem;overflow:hidden;position:relative}.participant-tile.featured{height:100%;min-height:24rem}.tile-grid.gallery .participant-tile{min-height:0}.participant-tile.compact{min-height:7.5rem}.participant-tile.screen-tile{background:#111217}.participant-tile.speaking{border-color:#7ddf83eb;box-shadow:0 0 0 1px #7ddf8347,0 0 1.2rem #7ddf832e}.participant-tile video,.camera-placeholder{display:block;height:100%;object-fit:cover;width:100%}.screen-tile video{object-fit:contain}.camera-placeholder{align-items:center;background:radial-gradient(circle at 30% 20%,rgba(125,223,131,.22),transparent 28%),linear-gradient(135deg,#222936,#16181e 60%,#2a2635);display:flex;justify-content:center}.camera-placeholder span{align-items:center;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:999px;color:#7ddf83;display:inline-flex;font-size:clamp(1.5rem,4vw,3.5rem);font-weight:900;height:clamp(4rem,12vw,7rem);justify-content:center;width:clamp(4rem,12vw,7rem)}.participant-tile.compact .camera-placeholder span{font-size:1.35rem;height:3.2rem;width:3.2rem}.name-badge{align-items:center;background:#0c0d10c7;border-radius:6px;bottom:.55rem;display:inline-flex;font-size:.85rem;font-weight:800;gap:.35rem;left:.55rem;max-width:calc(100% - 1.1rem);overflow:hidden;padding:.35rem .5rem;position:absolute;text-overflow:ellipsis;white-space:nowrap}.speaking-bars{align-items:end;display:inline-flex;gap:.12rem;height:.85rem}.speaking-bars span{animation:speaking-bar .78s ease-in-out infinite;background:#7ddf83;border-radius:999px;display:block;height:.35rem;width:.18rem}.speaking-bars span:nth-child(2){animation-delay:.11s}.speaking-bars span:nth-child(3){animation-delay:.22s}.meeting-side-panels{display:grid;gap:.75rem;grid-template-rows:minmax(0,1fr);overflow:hidden}.member-panel{background:#1a1c22e6;border:1px solid rgba(255,255,255,.08);border-radius:8px;min-height:0}.member-panel{align-content:start;display:grid;gap:.75rem;overflow:auto;padding:.85rem}.member-panel header{align-items:center;border-bottom:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;padding-bottom:.75rem}.member-row{align-items:center;display:grid;gap:.6rem;grid-template-columns:2rem minmax(0,1fr) auto}.member-row.speaking .member-avatar{box-shadow:0 0 0 2px #7ddf8359}.member-avatar{align-items:center;background:#7ddf8324;border-radius:50%;color:#7ddf83;display:inline-flex;font-weight:900;height:2rem;justify-content:center;width:2rem}.member-main{display:grid;gap:.28rem;min-width:0}.member-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-badges{display:flex;flex-wrap:wrap;gap:.25rem}.member-badges span,.member-devices span{background:#ffffff12;border-radius:6px;color:#c5ccda;font-size:.72rem;line-height:1;padding:.22rem .35rem}.member-devices{align-items:center;color:#b9c0d1;display:inline-flex;flex-wrap:wrap;gap:.35rem;grid-column:2}.speaking-dot{animation:speaking-dot .9s ease-in-out infinite;background:#7ddf83;border-radius:999px;display:inline-block;height:.45rem;width:.45rem}.host-panel{border-top:1px solid rgba(255,255,255,.08);display:grid;gap:.55rem;margin-top:.5rem;padding-top:.75rem}.eyebrow{color:#aeb4c2;font-size:.72rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.host-panel h2{font-size:.98rem}.host-panel button{background:#ffffff0f;color:#f7f8fb;justify-content:flex-start;padding:0 .75rem}.host-panel button:hover:not(:disabled){background:#ffffff1a}.host-note{align-items:flex-start;color:#aeb4c2;display:flex;font-size:.82rem;gap:.5rem;line-height:1.4;margin:.35rem 0 0}.meeting-toolbar{align-items:center;background:#1a1c22eb;border:1px solid rgba(255,255,255,.08);border-radius:8px;display:flex;gap:.55rem;justify-content:center;min-height:0;padding:.55rem}.meeting-toolbar button{background:#2e323c;color:#f7f8fb;height:2.65rem;min-width:5.5rem;padding:0 .85rem}.meeting-toolbar button[aria-pressed=false]{background:#3a2d31;color:#ffd4d4}.meeting-toolbar button:hover{background:#3b404c}.toolbar-select{align-items:center;background:#2e323c;border-radius:8px;color:#f7f8fb;display:flex;font-size:.86rem;gap:.45rem;height:2.65rem;padding:0 .75rem;white-space:nowrap}.toolbar-select select{background:#191c22;border:1px solid rgba(255,255,255,.14);border-radius:6px;color:#f7f8fb;height:2rem;max-width:10rem;min-width:7rem}.toolbar-hint{color:#c5ccda;font-size:.78rem}.meeting-toolbar .leave-button{background:#d65353;color:#fff;min-width:5rem}.meeting-toolbar .leave-button:hover{background:#bd4545}@media(max-width:1180px){.meeting-content{grid-template-columns:10.5rem minmax(0,1fr) 18rem}.meeting-toolbar button{min-width:4.8rem}}@media(max-width:920px){.meeting-shell{grid-template-rows:auto minmax(0,1fr) auto;min-height:100vh}.meeting-topbar{grid-template-columns:1fr;justify-items:center;padding:.65rem}.meeting-identity{display:none}.meeting-content{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.room-rail{grid-auto-columns:minmax(9rem,1fr);grid-auto-flow:column;overflow-x:auto;overflow-y:hidden}.room-rail header{display:none}.meeting-side-panels{display:none}.meeting-stage.has-presentation{grid-template-rows:minmax(0,1fr) 7.5rem}}@media(max-width:640px){.meeting-shell{padding:.5rem}.tile-grid.gallery{grid-template-columns:1fr;grid-auto-rows:minmax(8.5rem,1fr);grid-template-rows:none}.filmstrip{grid-auto-columns:minmax(8rem,9.5rem)}.meeting-toolbar{flex-wrap:wrap}.meeting-toolbar button{flex:1 1 30%;font-size:.86rem;min-width:0}.toolbar-select{flex:1 1 100%;justify-content:center}}@keyframes speaking-bar{0%,to{height:.3rem}50%{height:.82rem}}@keyframes speaking-dot{0%,to{opacity:.45;transform:scale(.82)}50%{opacity:1;transform:scale(1.12)}}
