:root{--font-sans: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", monospace;--brand-primary: #6366f1;--brand-primary-hover: #4f46e5;--brand-secondary: #a855f7;--brand-gradient: linear-gradient(135deg, #6366f1 0%, #a855f7 100%);--brand-gradient-glow: linear-gradient(135deg, rgba(99, 102, 241, .3) 0%, rgba(168, 85, 247, .3) 100%);--color-success: #10b981;--color-success-bg: rgba(16, 185, 129, .15);--color-danger: #ef4444;--color-danger-hover: #dc2626;--color-danger-bg: rgba(239, 68, 68, .15);--color-warning: #f59e0b;--color-warning-bg: rgba(245, 158, 11, .15);--color-info: #3b82f6;--radius-xs: 4px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .35s cubic-bezier(.4, 0, .2, 1);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .2), 0 4px 6px -2px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .3), 0 10px 10px -5px rgba(0, 0, 0, .2);--shadow-glow: 0 0 25px rgba(99, 102, 241, .35)}body.theme-dark{--bg-app: #080c14;--bg-surface: #0f172a;--bg-surface-elevated: #1e293b;--bg-surface-glass: rgba(15, 23, 42, .75);--bg-control: rgba(30, 41, 59, .8);--bg-control-hover: rgba(51, 65, 85, .9);--border-subtle: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .15);--border-active: #6366f1;--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-muted: #64748b;--text-inverse: #0f172a;--video-bg: #030712}body.theme-light{--bg-app: #f1f5f9;--bg-surface: #ffffff;--bg-surface-elevated: #f8fafc;--bg-surface-glass: rgba(255, 255, 255, .85);--bg-control: rgba(241, 245, 249, .9);--bg-control-hover: rgba(226, 232, 240, .95);--border-subtle: rgba(0, 0, 0, .08);--border-strong: rgba(0, 0, 0, .15);--border-active: #6366f1;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--text-inverse: #ffffff;--video-bg: #1e293b}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{width:100%;height:100%;display:flex;flex-direction:column}h1,h2,h3,h4{font-weight:700;letter-spacing:-.025em;color:var(--text-primary)}.text-gradient{background:var(--brand-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.badge-host{background:#f59e0b33;color:#fbbf24;border:1px solid rgba(245,158,11,.3)}.badge-moderator{background:#a855f733;color:#c084fc;border:1px solid rgba(168,85,247,.3)}.landing-container{width:100%;height:100%;overflow-y:auto;display:flex;flex-direction:column;background:radial-gradient(circle at 50% 20%,rgba(99,102,241,.12) 0%,transparent 60%),var(--bg-app)}.landing-nav{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 3rem;border-bottom:1px solid var(--border-subtle);backdrop-filter:blur(12px)}.brand-logo{display:flex;align-items:center;gap:10px;font-size:1.5rem;font-weight:800;letter-spacing:-.03em;cursor:pointer;text-decoration:none;color:var(--text-primary)}.brand-icon{width:36px;height:36px;background:var(--brand-gradient);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-glow)}.landing-hero{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem 1.5rem;max-width:900px;margin:0 auto}.hero-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 16px;background:#6366f11a;border:1px solid rgba(99,102,241,.25);border-radius:var(--radius-full);font-size:.875rem;color:#818cf8;margin-bottom:1.5rem}.hero-title{font-size:3.5rem;line-height:1.15;margin-bottom:1.25rem}.hero-subtitle{font-size:1.25rem;color:var(--text-secondary);line-height:1.6;max-width:650px;margin-bottom:2.5rem}.hero-card{width:100%;max-width:580px;background:var(--bg-surface-glass);backdrop-filter:blur(20px);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:2rem;box-shadow:var(--shadow-xl)}.card-tabs{display:flex;background:var(--bg-surface-elevated);border-radius:var(--radius-lg);padding:4px;margin-bottom:1.5rem}.card-tab{flex:1;padding:10px;border:none;background:transparent;color:var(--text-secondary);font-weight:600;font-size:.95rem;border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-fast)}.card-tab.active{background:var(--brand-primary);color:#fff;box-shadow:var(--shadow-md)}.form-group{display:flex;flex-direction:column;gap:6px;text-align:left;margin-bottom:1.25rem}.form-label{font-size:.875rem;font-weight:600;color:var(--text-secondary)}.form-input{padding:12px 16px;background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:1rem;outline:none;transition:var(--transition-fast)}.form-input:focus{border-color:var(--brand-primary);box-shadow:0 0 0 3px #6366f133}.form-checkbox{display:flex;align-items:center;gap:10px;font-size:.9rem;color:var(--text-secondary);cursor:pointer}.btn-primary{width:100%;padding:14px 24px;background:var(--brand-gradient);border:none;border-radius:var(--radius-md);color:#fff;font-size:1.05rem;font-weight:700;cursor:pointer;box-shadow:var(--shadow-glow);transition:var(--transition-normal);display:flex;align-items:center;justify-content:center;gap:8px}.btn-primary:hover{transform:translateY(-1px);filter:brightness(1.1)}.btn-secondary{padding:10px 18px;background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:.95rem;font-weight:600;cursor:pointer;transition:var(--transition-fast);display:flex;align-items:center;gap:8px}.btn-secondary:hover{background:var(--border-strong)}.landing-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;padding:4rem 3rem;max-width:1200px;margin:0 auto}.feature-box{background:var(--bg-surface-glass);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:1.75rem;backdrop-filter:blur(10px)}.feature-icon{width:44px;height:44px;background:var(--brand-gradient-glow);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--brand-primary);margin-bottom:1rem}.lobby-container{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:2rem}.lobby-card{display:grid;grid-template-columns:1.2fr 1fr;gap:2rem;width:100%;max-width:960px;background:var(--bg-surface-glass);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:2.5rem;backdrop-filter:blur(20px);box-shadow:var(--shadow-xl)}.lobby-preview-wrapper{position:relative;width:100%;aspect-ratio:16 / 9;background:var(--video-bg);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg)}.lobby-video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.lobby-video-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-muted)}.lobby-controls-overlay{position:absolute;bottom:16px;left:50%;transform:translate(-50%);display:flex;gap:12px;z-index:10}.meter-container{margin-top:1rem;display:flex;flex-direction:column;gap:4px}.meter-bar{width:100%;height:6px;background:var(--bg-surface-elevated);border-radius:var(--radius-full);overflow:hidden}.meter-fill{height:100%;width:0%;background:var(--color-success);transition:width .1s ease}.meeting-wrapper{display:flex;flex-direction:column;width:100%;height:100%;position:relative;background:var(--bg-app)}.meeting-header{height:56px;padding:0 1.25rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-subtle);background:var(--bg-surface-glass);backdrop-filter:blur(12px);z-index:20;min-width:0;gap:12px;flex-shrink:0}.meeting-meta{display:flex;align-items:center;gap:10px;min-width:0;overflow:hidden}.room-code-badge{background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);padding:4px 10px;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.85rem;cursor:pointer;display:flex;align-items:center;gap:6px;transition:var(--transition-fast);max-width:200px;overflow:hidden}.room-code-badge .room-code-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-code-badge:hover{background:var(--border-strong)}.meeting-timer{font-family:var(--font-mono);font-size:.875rem;font-weight:600;color:var(--text-primary);background:var(--bg-surface-elevated);padding:3px 8px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);white-space:nowrap}.badge-recording{background:#ef444433;color:#ef4444;border:1px solid rgba(239,68,68,.4);font-weight:700;white-space:nowrap}.recording-dot{width:8px;height:8px;border-radius:50%;background:#ef4444;animation:recordingBlink 1s infinite alternate}@keyframes recordingBlink{0%{opacity:1;transform:scale(1)}to{opacity:.25;transform:scale(.75)}}.control-btn.recording-pulse{animation:recBtnPulse 1.5s infinite}@keyframes recBtnPulse{0%{box-shadow:0 0 #ef4444b3}70%{box-shadow:0 0 0 10px #ef444400}to{box-shadow:0 0 #ef444400}}.meeting-stage{flex:1;display:flex;flex-direction:row;position:relative;min-width:0;min-height:0;overflow:hidden}.video-grid-container{flex:1;height:100%;padding:1rem;display:grid;gap:12px;align-content:center;justify-content:center;transition:var(--transition-normal)}.grid-cols-1{grid-template-columns:1fr;max-width:900px;margin:auto}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.video-tile{position:relative;width:100%;height:100%;min-height:180px;background:var(--video-bg);border-radius:var(--radius-lg);overflow:hidden;border:2px solid transparent;box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:center;transition:border-color var(--transition-fast)}.video-tile.speaking{border-color:#10b981;box-shadow:0 0 24px #10b981a6,inset 0 0 12px #10b9814d;animation:speakingGlow 1.5s infinite alternate ease-in-out}@keyframes speakingGlow{0%{box-shadow:0 0 14px #10b98166}to{box-shadow:0 0 28px #10b981cc,0 0 8px #06b6d499}}.active-speaker-banner{display:inline-flex;align-items:center;gap:8px;background:#10b98126;border:1px solid rgba(16,185,129,.5);color:#34d399;padding:4px 12px;border-radius:var(--radius-full);font-size:.825rem;font-weight:500;backdrop-filter:blur(8px);animation:fadeIn .25s ease-out}.speaking-pulse-dot{width:8px;height:8px;border-radius:50%;background:#10b981;box-shadow:0 0 10px #10b981;animation:ping 1.2s infinite}.voice-wave{display:inline-flex;align-items:center;gap:2px;height:14px}.voice-wave .wave-bar{width:3px;height:3px;border-radius:2px;background:#10b981;transition:height .15s ease-in-out}.voice-wave.active .wave-bar:nth-child(1){animation:voiceWaveBounce .6s infinite ease-in-out}.voice-wave.active .wave-bar:nth-child(2){animation:voiceWaveBounce .8s infinite ease-in-out .12s}.voice-wave.active .wave-bar:nth-child(3){animation:voiceWaveBounce .5s infinite ease-in-out .24s}.voice-wave.active .wave-bar:nth-child(4){animation:voiceWaveBounce .75s infinite ease-in-out .18s}@keyframes voiceWaveBounce{0%,to{height:3px}50%{height:14px}}.tile-speaking-badge{display:inline-flex;align-items:center;gap:5px;background:#10b98140;border:1px solid rgba(16,185,129,.6);color:#34d399;font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:var(--radius-full);backdrop-filter:blur(8px)}.badge-speaking-roster{background:#10b98133;color:#34d399;border:1px solid rgba(16,185,129,.4);font-size:.7rem;padding:2px 8px;border-radius:var(--radius-full);display:inline-flex;align-items:center;gap:5px;font-weight:600}.badge-recording-roster{background:#ef444433;color:#f87171;border:1px solid rgba(239,68,68,.4);font-size:.7rem;padding:2px 6px;border-radius:var(--radius-full);display:inline-flex;align-items:center;gap:4px;animation:pulse 1.2s infinite}.badge-screenshare-roster{background:#a855f733;color:#c084fc;border:1px solid rgba(168,85,247,.4);font-size:.7rem;padding:2px 6px;border-radius:var(--radius-full);display:inline-flex;align-items:center;gap:4px}.video-tile video{width:100%;height:100%;object-fit:cover}.video-tile.screen-tile video,.video-tile[data-screen=true] video{object-fit:contain!important;background:#000!important}.video-tile.mirrored video{transform:scaleX(-1)}.video-tile.screen-tile.mirrored video,.video-tile[data-screen=true].mirrored video{transform:none!important}.tile-avatar-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.avatar-circle{width:80px;height:80px;border-radius:50%;background:var(--brand-gradient);display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;color:#fff;box-shadow:var(--shadow-lg);overflow:hidden}.tile-avatar-img{width:100%;height:100%;object-fit:cover;border-radius:50%}.tile-overlay-info{position:absolute;bottom:10px;left:10px;display:flex;align-items:center;gap:8px;background:#000000a6;backdrop-filter:blur(8px);padding:4px 10px;border-radius:var(--radius-sm);font-size:.85rem;color:#fff;z-index:5}.tile-hand-raised{position:absolute;top:10px;right:10px;background:#f59e0be6;padding:6px 10px;border-radius:var(--radius-full);font-size:.85rem;font-weight:700;color:#fff;box-shadow:var(--shadow-md);animation:pulse 1.5s infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.spotlight-container{display:flex;flex-direction:column;width:100%;height:100%;gap:12px}.spotlight-main{flex:1;position:relative;border-radius:var(--radius-lg);overflow:hidden;background:var(--video-bg);min-height:0}.spotlight-main .video-tile{width:100%!important;height:100%!important;min-height:0!important;border-radius:inherit}.spotlight-strip{height:140px;display:flex;gap:12px;overflow-x:auto;padding-bottom:4px}.spotlight-strip .video-tile{width:220px;flex-shrink:0;height:100%;min-height:0!important}.meeting-controls-bar{height:72px;display:flex;align-items:center;justify-content:center;gap:12px;background:var(--bg-surface-glass);backdrop-filter:blur(16px);border-top:1px solid var(--border-subtle);padding:0 1.5rem;z-index:20}.control-btn{width:48px;height:48px;border-radius:var(--radius-full);border:1px solid var(--border-subtle);background:var(--bg-control);color:var(--text-primary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition-fast);position:relative}.control-btn:hover{background:var(--bg-control-hover);transform:translateY(-2px)}.control-btn.active-danger{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.control-btn.active-brand{background:var(--brand-primary);border-color:var(--brand-primary);color:#fff}.btn-leave{background:var(--color-danger);color:#fff;border:none;padding:0 20px;width:auto;font-weight:700;gap:8px}.btn-leave:hover{background:var(--color-danger-hover)}.reaction-container{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:100}.floating-reaction{position:absolute;bottom:80px;font-size:2.5rem;animation:floatUp 3s ease-out forwards}@keyframes floatUp{0%{transform:translateY(0) scale(.6);opacity:0}15%{opacity:1;transform:translateY(-30px) scale(1.2)}80%{opacity:.8}to{transform:translateY(-500px) scale(1);opacity:0}}.reaction-picker{position:absolute;bottom:80px;background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-full);padding:8px 16px;display:flex;gap:12px;box-shadow:var(--shadow-xl);backdrop-filter:blur(12px);z-index:30}.reaction-btn{font-size:1.5rem;background:transparent;border:none;cursor:pointer;transition:transform var(--transition-fast)}.reaction-btn:hover{transform:scale(1.3)}.side-drawer{width:360px;max-width:100vw;height:100%;background:var(--bg-surface-glass);border-left:1px solid var(--border-subtle);backdrop-filter:blur(20px);display:flex;flex-direction:column;z-index:25;transition:transform var(--transition-normal);overflow-x:hidden;box-sizing:border-box}.drawer-header{height:56px;padding:0 1.25rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.drawer-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:1.25rem;display:flex;flex-direction:column;gap:12px;box-sizing:border-box}.chat-msg{display:flex;flex-direction:column;gap:2px}.chat-msg-header{display:flex;align-items:center;justify-content:space-between;font-size:.75rem;color:var(--text-muted)}.chat-msg-sender{font-weight:700;color:var(--text-secondary)}.chat-msg-bubble{background:var(--bg-surface-elevated);padding:8px 12px;border-radius:var(--radius-md);font-size:.9rem;word-break:break-word;color:var(--text-primary)}.chat-msg.self .chat-msg-bubble{background:var(--brand-primary);color:#fff;align-self:flex-end}.chat-msg.private .chat-msg-bubble{background:#a855f733;border:1px dashed #c084fc}.chat-input-bar{padding:1rem;border-top:1px solid var(--border-subtle);display:flex;gap:8px}.participant-item{display:flex;flex-direction:column;padding:10px 12px;border-radius:var(--radius-md);background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);gap:8px;width:100%;box-sizing:border-box;transition:background var(--transition-fast)}.participant-item:hover{background:var(--border-strong)}.participant-item-header{display:flex;align-items:center;justify-content:space-between;width:100%;min-width:0;gap:8px}.participant-info{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.participant-name-container{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.participant-name{font-size:.9rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}.participant-badges{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.participant-media-status{display:flex;align-items:center;gap:6px;flex-shrink:0}.participant-mod-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.07);width:100%}.participant-mod-actions .control-btn{height:28px;padding:0 8px;width:auto;border-radius:var(--radius-sm);font-size:.75rem;display:inline-flex;align-items:center;gap:4px;font-weight:600}.btn-pin-tile{position:absolute;top:10px;right:10px;background:#000000a6;backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:var(--radius-full);padding:4px 10px;font-size:.72rem;font-weight:600;display:inline-flex;align-items:center;gap:4px;cursor:pointer;z-index:8;transition:all var(--transition-fast)}.btn-pin-tile:hover{background:#3b82f6cc;border-color:#3b82f6;transform:scale(1.05)}.btn-pin-tile.pinned{background:#3b82f6;border-color:#60a5fa;box-shadow:0 0 12px #3b82f680}.poll-card{background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:1.25rem;display:flex;flex-direction:column;gap:12px}.poll-option-btn{width:100%;padding:10px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-primary);font-weight:600;cursor:pointer;display:flex;justify-content:space-between;position:relative;overflow:hidden;z-index:1}.poll-option-fill{position:absolute;top:0;left:0;bottom:0;background:var(--brand-gradient-glow);z-index:-1;transition:width .3s ease}.modal-backdrop{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);width:100%;max-width:520px;padding:2rem;box-shadow:var(--shadow-xl);display:flex;flex-direction:column;gap:1.5rem}.modal-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:1.75rem;box-shadow:var(--shadow-xl)}@media(max-width:768px){.landing-nav{padding:1rem 1.5rem}.hero-title{font-size:2.25rem}.lobby-card{grid-template-columns:1fr;padding:1.5rem}.side-drawer{position:absolute;inset:0;width:100%;z-index:50}.meeting-controls-bar{padding:0 .5rem;gap:8px;height:64px;justify-content:center;max-width:100%}.control-btn{width:42px;height:42px}}@media(max-width:600px){.meeting-header{padding:0 .75rem;gap:6px}.meeting-meta{gap:6px}.room-code-badge{max-width:130px;padding:3px 6px;font-size:.78rem}.meeting-controls-bar{padding:0 4px;gap:4px;height:58px;justify-content:flex-start;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.control-btn{width:36px;height:36px;flex-shrink:0}.control-btn svg{width:18px;height:18px}.btn-leave{padding:0 10px;height:36px}.btn-leave span{display:none}.reaction-picker{bottom:64px;padding:6px 10px;gap:8px}.reaction-btn{font-size:1.25rem}}.btn-tool{background:transparent;border:1px solid transparent;color:var(--text-secondary);padding:4px 10px;font-size:.8rem;border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:var(--transition-fast)}.btn-tool:hover{background:#ffffff14;color:#fff}.btn-tool.active{background:var(--brand-primary);color:#fff;font-weight:600;box-shadow:0 0 10px #3b82f666}.reconnect-banner{animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translate(-50%,-20px)}to{opacity:1;transform:translate(-50%)}}.live-captions-overlay{animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}.waiting-room-toast{position:fixed;top:72px;right:24px;z-index:9999;background:var(--bg-surface-elevated);border:1.5px solid var(--color-warning);border-radius:var(--radius-lg);box-shadow:0 12px 36px #00000073,0 0 20px #f59e0b40;padding:12px 16px;max-width:420px;animation:slideInRight .3s cubic-bezier(.16,1,.3,1);backdrop-filter:blur(16px)}@keyframes slideInRight{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}.waiting-toast-content{display:flex;align-items:center;gap:12px}.waiting-toast-icon{font-size:1.6rem;animation:pulse 2s infinite;flex-shrink:0}.waiting-toast-info{flex:1;min-width:0}.waiting-toast-title{font-size:.9rem;color:var(--text-primary);line-height:1.3}.waiting-toast-subtitle{font-size:.75rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}.waiting-toast-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.btn-toast-admit{background:var(--color-success);border:1px solid var(--color-success);color:#fff;padding:6px 12px;border-radius:var(--radius-md);font-size:.8rem;font-weight:700;cursor:pointer;transition:transform var(--transition-fast),background var(--transition-fast)}.btn-toast-admit:hover{background:#16a34a;transform:translateY(-1px)}.btn-toast-view{background:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-secondary);padding:6px 10px;border-radius:var(--radius-md);font-size:.8rem;cursor:pointer}.btn-toast-view:hover{color:#fff;background:var(--bg-control-hover)}.btn-toast-close{background:transparent;border:none;color:var(--text-muted);font-size:1.2rem;cursor:pointer;padding:0 4px}.btn-toast-close:hover{color:var(--text-primary)}.wb-subject-bar{display:flex;align-items:center;gap:4px;background:#ffffff0a;padding:3px 6px;border-radius:var(--radius-lg);border:1px solid var(--border-subtle);overflow-x:auto}.wb-subject-tab{background:transparent;border:none;color:var(--text-secondary);padding:5px 10px;border-radius:var(--radius-md);font-size:.8rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:5px;white-space:nowrap;transition:all var(--transition-fast)}.wb-subject-tab:hover{color:var(--text-primary);background:#ffffff14}.wb-subject-tab.active{color:#38bdf8;background:#38bdf826;box-shadow:0 0 10px #38bdf833}.wb-pagination-bar{display:flex;align-items:center;gap:8px;background:#0f172abf;backdrop-filter:blur(10px);padding:4px 12px;border-radius:var(--radius-full);border:1px solid var(--border-subtle)}.wb-page-btn{background:transparent;border:1px solid transparent;color:var(--text-secondary);font-size:.8rem;font-weight:600;padding:4px 8px;border-radius:var(--radius-md);cursor:pointer;display:flex;align-items:center;gap:4px;transition:all var(--transition-fast)}.wb-page-btn:hover:not(:disabled){color:#fff;background:#ffffff1a;border-color:var(--border-subtle)}.wb-page-btn:disabled{opacity:.35;cursor:not-allowed}.wb-page-counter{font-size:.825rem;font-weight:700;color:var(--text-primary);padding:0 4px;min-width:90px;text-align:center}.wb-zoom-controls{display:flex;align-items:center;gap:4px;background:#ffffff0d;padding:2px 6px;border-radius:var(--radius-md)}.wb-zoom-btn{background:transparent;border:none;color:var(--text-secondary);font-size:.8rem;font-weight:700;padding:3px 6px;border-radius:4px;cursor:pointer}.wb-zoom-btn:hover{color:#fff;background:#ffffff1a}.wb-export-dialog{background:#18191e;border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:1.5rem;width:90vw;max-width:480px;box-shadow:var(--shadow-2xl);display:flex;flex-direction:column;gap:1.25rem;color:var(--text-primary);animation:modalIn .2s cubic-bezier(.16,1,.3,1)}.wb-export-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.wb-export-option-card{background:#ffffff0a;border:1.5px solid var(--border-subtle);border-radius:var(--radius-lg);padding:10px;cursor:pointer;transition:all var(--transition-fast);text-align:left}.wb-export-option-card:hover{border-color:var(--brand-primary);background:#6366f114}.wb-export-option-card.selected{border-color:#38bdf8;background:#38bdf81f;box-shadow:0 0 12px #38bdf833}.unsaved-work-modal{background:#18191e;border:1px solid rgba(239,68,68,.4);border-radius:var(--radius-xl);padding:1.75rem;width:90vw;max-width:460px;box-shadow:0 20px 50px #0009;display:flex;flex-direction:column;gap:1.25rem;color:var(--text-primary);animation:modalIn .2s cubic-bezier(.16,1,.3,1)}.app-footer{width:100%;border-top:1px solid var(--border-subtle);background:#0a0e17cc;backdrop-filter:blur(12px);padding:2rem 2rem 2.5rem;margin-top:auto}.footer-inner{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1.5rem}.footer-brand-col{display:flex;flex-direction:column;gap:6px}.footer-logo{display:flex;align-items:center;gap:8px;font-size:1.15rem;font-weight:800;color:var(--text-primary)}.footer-logo-icon{color:#6366f1}.footer-tagline{font-size:.85rem;color:var(--text-muted)}.footer-meta-col{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.footer-copyright{font-size:.875rem;color:var(--text-secondary)}.footer-attribution{font-size:.875rem;color:var(--text-secondary);display:inline-flex;align-items:center;gap:4px}.developer-link{color:#38bdf8;text-decoration:none;font-weight:600;display:inline-flex;align-items:center;transition:all var(--transition-fast)}.developer-link:hover{color:#818cf8;text-decoration:underline;text-underline-offset:3px}.drawer-footer-attribution{margin-top:auto;padding:1rem 1.25rem;border-top:1px solid var(--border-subtle);text-align:center;font-size:.78rem;color:var(--text-secondary);background:#00000026}.drawer-footer-attribution p{margin:0 0 4px}.drawer-footer-attribution p:last-child{margin-bottom:0}@media(max-width:768px){.footer-inner{flex-direction:column;align-items:center;text-align:center;gap:1rem}.footer-brand-col,.footer-meta-col{align-items:center;text-align:center}.landing-hero{padding:2rem 1rem 1.5rem}.hero-title{font-size:clamp(1.75rem,6vw,2.25rem)}.hero-subtitle{font-size:.95rem;padding:0 .5rem}.hero-card{width:100%;max-width:440px;padding:1.25rem 1rem}.landing-features{grid-template-columns:1fr;padding:1.5rem 1rem 2.5rem;gap:1rem}.lobby-card{grid-template-columns:1fr!important;padding:1.25rem 1rem;gap:1.25rem;max-width:100%;margin:.5rem}.meeting-stage{padding-bottom:66px!important}.meeting-controls-bar{position:fixed!important;bottom:0!important;left:0!important;right:0!important;width:100vw!important;height:60px!important;background:#0a0e17f2!important;backdrop-filter:blur(16px)!important;border-top:1px solid var(--border-subtle)!important;z-index:1000!important;justify-content:flex-start!important;overflow-x:auto!important;overflow-y:hidden!important;-webkit-overflow-scrolling:touch!important;padding:0 8px!important;gap:6px!important}.meeting-controls-bar::-webkit-scrollbar{display:none}.control-btn{width:40px!important;height:40px!important;flex-shrink:0!important}.side-drawer{position:fixed!important;inset:0!important;width:100vw!important;max-width:100vw!important;height:100vh!important;z-index:10000!important;border-radius:0!important;border:none!important;animation:drawerSlideUp .25s ease-out!important}.spotlight-container{flex-direction:column!important;padding:6px!important;gap:6px!important}.spotlight-main{flex:1 1 65%!important;min-height:0!important;width:100%!important}.spotlight-strip{flex:0 0 95px!important;flex-direction:row!important;overflow-x:auto!important;overflow-y:hidden!important;width:100%!important;gap:6px!important}.spotlight-strip .video-tile{width:130px!important;height:90px!important;flex-shrink:0!important;min-height:0!important}.meeting-stage-watermark{bottom:68px!important;left:50%!important;transform:translate(-50%)!important;max-width:92vw!important;font-size:.68rem!important;padding:3px 10px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}}@media(max-width:480px){.landing-nav{padding:.75rem .85rem}.brand-logo{font-size:1.15rem}.hero-title{font-size:1.6rem;line-height:1.25}.card-tabs{gap:6px}.card-tab{padding:8px 10px;font-size:.82rem}.meeting-header{padding:0 .5rem!important;height:52px!important}.meeting-meta{gap:6px!important}.room-code-badge{max-width:110px!important;font-size:.75rem!important;padding:3px 6px!important}.meeting-timer{font-size:.78rem!important}.meeting-controls-bar{height:56px!important;padding:0 6px!important;gap:4px!important}.control-btn{width:36px!important;height:36px!important}.control-btn svg{width:18px!important;height:18px!important}.video-grid-container{gap:6px!important;padding:6px!important}.video-tile{border-radius:var(--radius-md)!important}.tile-overlay-info{font-size:.72rem!important;padding:3px 6px!important}.modal-content{max-width:95vw!important;padding:1.25rem 1rem!important}}@keyframes drawerSlideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}
