@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&display=swap";:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#f8fafc;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--bg-gradient:linear-gradient(135deg, #090a0f 0%, #11131e 50%, #07080c 100%);--panel-bg:#111827a6;--panel-border:#ffffff14;--panel-glow:0 8px 32px 0 #0000005e;--primary:#6366f1;--primary-hover:#4f46e5;--primary-glow:#6366f14d;--success:#10b981;--success-glow:#10b98133;--danger:#ef4444;--danger-hover:#dc2626;--danger-glow:#ef44444d;--secondary:#475569;--secondary-hover:#334155;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;background-color:#030712;font-family:Outfit,Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-gradient);place-content:center;min-width:320px;min-height:100vh;margin:0;display:flex;overflow-x:hidden}#root{flex-direction:column;justify-content:center;align-items:center;width:100vw;min-height:100vh;display:flex}.app-container{z-index:1;flex-direction:column;width:100%;max-width:1280px;min-height:100vh;padding:2rem;display:flex}.bg-glow-1,.bg-glow-2{filter:blur(120px);z-index:0;opacity:.15;pointer-events:none;border-radius:50%;width:500px;height:500px;position:absolute}.bg-glow-1{background:var(--primary);animation:20s ease-in-out infinite float;top:-10%;left:-10%}.bg-glow-2{background:#a855f7;animation:20s ease-in-out infinite reverse float;bottom:-10%;right:-10%}@keyframes float{0%,to{transform:translate(0)scale(1)}50%{transform:translate(50px,30px)scale(1.1)}}.glass-panel{background:var(--panel-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--panel-border);box-shadow:var(--panel-glow);border-radius:1.25rem}.lobby-wrapper{flex-direction:column;flex-grow:1;justify-content:center;align-items:center;width:100%;display:flex}.brand-header{text-align:center;margin-bottom:2rem;animation:.8s ease-out fadeInDown}.brand-header h1{background:linear-gradient(135deg,#fff 0%,#a5b4fc 100%);-webkit-text-fill-color:transparent;letter-spacing:-.05em;-webkit-background-clip:text;margin-bottom:.5rem;font-size:3rem;font-weight:700}.brand-header p{color:var(--text-secondary);font-size:1.1rem}.setup-card{width:100%;max-width:540px;padding:2.5rem;animation:.5s cubic-bezier(.16,1,.3,1) scaleUp}.setup-card h2{color:var(--text-primary);text-align:center;margin-bottom:1.5rem;font-size:1.5rem;font-weight:600}.form-group{margin-bottom:1.5rem}.form-group label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem;font-size:.875rem;font-weight:500;display:block}.input-wrapper{align-items:center;display:flex;position:relative}.input-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:1rem}.form-input{color:#fff;background:#0f172a99;border:1px solid #ffffff1a;border-radius:.75rem;width:100%;padding:.875rem 1rem .875rem 2.75rem;font-family:inherit;font-size:1rem;transition:all .3s}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);background:#0f172acc;outline:none}.divider{text-align:center;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;align-items:center;margin:1.5rem 0;font-size:.875rem;display:flex}.divider:before,.divider:after{content:"";border-bottom:1px solid #ffffff14;flex:1}.divider:not(:empty):before{margin-right:.75em}.divider:not(:empty):after{margin-left:.75em}.btn{cursor:pointer;border:none;border-radius:.75rem;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:.875rem 1.5rem;font-size:1rem;font-weight:500;transition:all .25s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 4px 14px 0 var(--primary-glow)}.btn-primary:hover{background:var(--primary-hover);box-shadow:0 6px 20px 0 var(--primary-glow);transform:translateY(-1px)}.btn-primary:active{transform:translateY(1px)}.btn-secondary{background:var(--secondary);color:#fff}.btn-secondary:hover{background:var(--secondary-hover);transform:translateY(-1px)}.btn-danger{background:var(--danger);color:#fff;box-shadow:0 4px 14px 0 var(--danger-glow)}.btn-danger:hover{background:var(--danger-hover);transform:translateY(-1px)}.btn-outline{color:var(--text-primary);background:0 0;border:1px solid #ffffff26}.btn-outline:hover{background:#ffffff0d;border-color:#ffffff4d}.btn-action-round{width:3.5rem;height:3.5rem;color:var(--text-primary);cursor:pointer;background:#0f172abf;border:1px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;transition:all .25s;display:flex;box-shadow:0 4px 10px #0003}.btn-action-round:hover{background:var(--primary);border-color:var(--primary);transform:scale(1.08)}.btn-action-round.active-off{background:var(--danger);border-color:var(--danger);box-shadow:0 0 15px var(--danger-glow)}.btn-action-round.active-off:hover{background:var(--danger-hover);border-color:var(--danger-hover)}.btn-action-round.active-share{background:var(--success);border-color:var(--success);box-shadow:0 0 15px var(--success-glow)}.btn-action-round.active-share:hover{background:#059669;border-color:#059669}.btn-endcall{background:var(--danger);border-color:var(--danger)}.btn-endcall:hover{background:var(--danger-hover);box-shadow:0 0 20px var(--danger-glow);transform:scale(1.08)rotate(135deg)}.media-setup-box{flex-direction:column;align-items:center;gap:1.5rem;margin-top:1.5rem;display:flex}.preview-video-container{aspect-ratio:16/9;background:#090a0f;border:1px solid #ffffff1a;border-radius:.75rem;width:100%;position:relative;overflow:hidden}.preview-video{object-fit:cover;width:100%;height:100%;transform:scaleX(-1)}.preview-fallback{width:100%;height:100%;color:var(--text-secondary);background:#07080c;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;display:flex;position:absolute;top:0;left:0}.avatar-placeholder{background:var(--primary-glow);border:2px solid var(--primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:4rem;height:4rem;font-size:1.5rem;font-weight:600;display:flex}.media-status-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;border-radius:.5rem;gap:.5rem;padding:.25rem .5rem;display:flex;position:absolute;bottom:.75rem;left:.75rem}.media-status-badge{color:#fff;align-items:center;font-size:.75rem;display:flex}.setup-controls{justify-content:center;gap:1rem;margin-bottom:.5rem;display:flex}.call-container{flex-direction:column;flex-grow:1;gap:1rem;width:100%;height:calc(100vh - 4rem);animation:.5s ease-out fadeIn;display:flex}.call-header{border-radius:1rem;justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.room-info-group{align-items:center;gap:.75rem;display:flex}.room-badge{color:#a5b4fc;background:#6366f126;border:1px solid #6366f140;border-radius:.75rem;align-items:center;gap:.5rem;padding:.5rem 1rem;font-weight:500;display:flex}.btn-copy-id{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:.25rem;align-items:center;padding:.25rem;transition:all .2s;display:flex}.btn-copy-id:hover{color:#fff;background:#ffffff1a}.connection-status{background:#ffffff0d;border-radius:.75rem;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;display:flex}.status-dot{background:var(--text-muted);border-radius:50%;width:8px;height:8px;display:inline-block}.status-dot.connected{background:var(--success);box-shadow:0 0 8px var(--success);animation:2s infinite pulse}.status-dot.connecting{background:#f59e0b;animation:1.5s infinite pulse;box-shadow:0 0 8px #f59e0b}.status-dot.disconnected{background:var(--danger);box-shadow:0 0 8px var(--danger)}@keyframes pulse{0%{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}to{opacity:1;transform:scale(1)}}.video-grid-container{flex-grow:1;grid-template-rows:1fr;grid-template-columns:1fr;gap:1rem;min-height:0;display:grid;position:relative}.video-grid-container.two-feeds{grid-template-columns:1fr 1fr}@media (width<=768px){.video-grid-container.two-feeds{grid-template-rows:1fr 1fr;grid-template-columns:1fr}}.video-card{border:1px solid var(--panel-border);box-shadow:var(--panel-glow);background:#07080c;border-radius:1.25rem;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.video-element{object-fit:cover;width:100%;height:100%}.video-element.mirrored{transform:scaleX(-1)}.video-avatar-overlay{width:100%;height:100%;color:var(--text-secondary);z-index:2;background:#0d0f17;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;display:flex;position:absolute;top:0;left:0}.video-avatar-overlay .avatar-placeholder{width:6rem;height:6rem;font-size:2rem}.user-tag{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:3;background:#0f172abf;border:1px solid #ffffff1a;border-radius:.5rem;align-items:center;gap:.5rem;padding:.35rem .75rem;font-size:.875rem;font-weight:500;display:flex;position:absolute;top:1rem;left:1rem}.waiting-card{width:100%;height:100%;color:var(--text-secondary);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1.25rem;padding:2rem;display:flex}.loader-spinner{border:4px solid #6366f11a;border-left:4px solid var(--primary);border-radius:50%;width:3rem;height:3rem;animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.control-bar{border-radius:1.25rem;justify-content:center;align-self:center;align-items:center;gap:1.25rem;width:auto;min-width:280px;padding:1.25rem;display:flex}.error-banner{color:#fca5a5;background:#ef444426;border:1px solid #ef44444d;border-radius:.75rem;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:1rem;font-size:.9rem;animation:.5s ease-in-out shake;display:flex}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleUp{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media (width<=640px){.app-container{padding:1rem}.setup-card{padding:1.5rem}.brand-header h1{font-size:2.25rem}.call-header{flex-direction:column;align-items:stretch;gap:.75rem;padding:.75rem}.connection-status{justify-content:center}}
