@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";@import"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@24,400,1,0";:root{--bg-dark: #0f0c29;--bg-mid: #1a1640;--bg-gradient: linear-gradient(160deg, #0f0c29 0%, #1a1640 40%, #302b63 70%, #24243e 100%);--primary: #7b2cbf;--primary-light: #9d4edd;--primary-glow: rgba(123, 44, 191, .5);--accent: #e0aaff;--accent-soft: rgba(224, 170, 255, .15);--text-main: #ffffff;--text-secondary: #c4b5d0;--text-muted: #8b7fa0;--glass: rgba(255, 255, 255, .04);--glass-strong: rgba(255, 255, 255, .08);--glass-border: rgba(255, 255, 255, .08);--glass-border-hover: rgba(255, 255, 255, .15);--success: #00ff88;--success-bg: rgba(0, 255, 136, .12);--error: #ff4d4d;--error-bg: rgba(255, 77, 77, .12);--oyo-red: #ff4757;--oyo-gradient: linear-gradient(135deg, rgba(255, 71, 87, .15), rgba(255, 107, 129, .08));--gaali-dark: #1a1a2e;--space-2xs: .25rem;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.25rem;--space-xl: 1.5rem;--space-2xl: 2rem;--space-3xl: 3rem;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 24px;--radius-full: 9999px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .2);--shadow-md: 0 4px 16px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .4);--shadow-glow: 0 0 20px var(--primary-glow);--shadow-btn: 0 4px 15px rgba(123, 44, 191, .4)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-gradient);color:var(--text-main);min-height:100vh;min-height:100dvh;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}body:before{content:"";position:fixed;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 30% 20%,rgba(123,44,191,.12) 0%,transparent 50%),radial-gradient(circle at 70% 80%,rgba(224,170,255,.06) 0%,transparent 40%);animation:bgDrift 30s infinite linear;z-index:-1;pointer-events:none}@keyframes bgDrift{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#app{width:100%;max-width:480px;margin:0 auto;padding:var(--space-md);padding-bottom:env(safe-area-inset-bottom,0);min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;position:relative}.glass-card{background:var(--glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--space-xl);box-shadow:var(--shadow-md);transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}.glass-card:hover{border-color:var(--glass-border-hover)}h1,h2,h3,h4{font-weight:700;line-height:1.2;letter-spacing:-.02em}h1{font-size:2rem;font-weight:800;background:linear-gradient(135deg,#fff 0%,var(--accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}h2{font-size:1.25rem}h3{font-size:1.1rem}h4{font-size:1rem}p{color:var(--text-secondary);line-height:1.6}.btn{background:linear-gradient(135deg,var(--primary),var(--primary-light));color:#fff;border:none;padding:14px 28px;border-radius:var(--radius-full);font-family:inherit;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .25s ease;display:inline-flex;align-items:center;justify-content:center;gap:8px;box-shadow:var(--shadow-btn);min-height:48px;touch-action:manipulation;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.btn:after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(255,255,255,.1),transparent);opacity:0;transition:opacity .25s}.btn:hover:after{opacity:1}.btn:active{transform:scale(.97)}.btn.secondary{background:var(--glass-strong);border:1px solid var(--glass-border);box-shadow:none;color:var(--text-secondary)}.btn.secondary:hover{background:#ffffff1f;border-color:var(--glass-border-hover);color:var(--text-main)}.btn.danger{background:var(--error);box-shadow:0 4px 15px #ff4d4d4d}.btn.small{padding:10px 20px;font-size:.85rem;min-height:40px}.btn-icon{font-size:1.1rem}input[type=text],input[type=password]{width:100%;padding:14px 16px;background:#0000004d;border:1px solid var(--glass-border);border-radius:var(--radius-md);color:#fff;font-family:inherit;font-size:1rem;transition:all .3s ease;min-height:48px;-webkit-appearance:none;appearance:none}input[type=text]:focus,input[type=password]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:#0006}input::placeholder{color:var(--text-muted)}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;letter-spacing:.02em}.status-badge.connecting{background:#ffc10726;color:#ffc107}.status-badge.connected{background:var(--success-bg);color:var(--success)}.status-badge.error{background:var(--error-bg);color:var(--error)}.status-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;animation:statusPulse 2s infinite}@keyframes statusPulse{0%,to{opacity:1}50%{opacity:.4}}.landing-container{display:flex;justify-content:center;align-items:center;flex:1;padding:var(--space-md)}.auth-box{max-width:380px;width:100%;text-align:center;padding:var(--space-2xl) var(--space-xl)}.logo-icon{width:80px;height:80px;margin:0 auto var(--space-lg);background:linear-gradient(135deg,var(--primary),var(--primary-light));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2.5rem;box-shadow:0 0 30px var(--primary-glow);animation:logoFloat 3s ease-in-out infinite}@keyframes logoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.auth-box h1{margin-bottom:var(--space-xs)}.auth-box p{font-size:.9rem;margin-bottom:var(--space-2xl)}.auth-box form{display:flex;flex-direction:column;gap:var(--space-md)}.input-wrapper{position:relative}.input-wrapper .input-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:1.1rem;opacity:.5}.input-wrapper input{padding-left:40px}.auth-box .btn{width:100%;font-size:1rem;padding:16px}#error-msg{color:var(--error);font-size:.85rem;font-weight:500;min-height:1.2em}.lobby-container{flex:1;display:flex;flex-direction:column;gap:var(--space-md);padding-bottom:80px}.lobby-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-lg);position:sticky;top:0;z-index:10;background:#0f0c29d9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.lobby-header h2{font-size:1.2rem;display:flex;align-items:center;gap:8px}.header-actions{display:flex;gap:8px;align-items:center}.header-actions .btn{padding:8px 16px;font-size:.8rem;min-height:36px}.section-label{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:var(--space-sm) 0 var(--space-xs);display:flex;align-items:center;gap:8px}.rooms-grid{display:flex;flex-direction:column;gap:var(--space-md)}.room-card{background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-lg);transition:all .3s ease;display:flex;flex-direction:column;gap:var(--space-sm)}.room-card:active{transform:scale(.98)}.room-card h3{font-size:1.1rem;margin:0;display:flex;align-items:center;gap:8px}.room-card .room-subtitle{font-size:.8rem;color:var(--text-muted);margin:0}.room-card .room-meta{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-xs)}.participant-count{font-size:.8rem;color:var(--text-secondary);display:flex;align-items:center;gap:6px}.room-card .join-btn{padding:10px 20px;font-size:.85rem;min-height:40px;border-radius:var(--radius-full);white-space:nowrap}.room-card.oyo-room{background:var(--oyo-gradient);border-color:#ff475733}.room-card.oyo-room .join-btn{background:linear-gradient(135deg,#ff4757,#ff6b81);box-shadow:0 4px 15px #ff47574d}.room-card.gaali-room{background:linear-gradient(135deg,#1a1a2ecc,#0006);border-color:#ffffff0f}.room-card.gaali-room .join-btn{background:#ffffff1a;box-shadow:none;border:1px solid rgba(255,255,255,.1)}.room-card.gaali-room .join-btn:hover{background:#ffffff26}.empty-state{text-align:center;padding:var(--space-3xl) var(--space-md);color:var(--text-muted)}.empty-state .empty-icon{font-size:3rem;margin-bottom:var(--space-md);opacity:.5}dialog{background:transparent;border:none;padding:0;max-width:90vw;width:380px}dialog::backdrop{background:#000000b3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}dialog .glass-card{padding:var(--space-2xl)}dialog h3{text-align:center;margin-bottom:var(--space-xs);font-size:1.2rem}dialog .modal-subtitle{text-align:center;font-size:.85rem;color:var(--text-muted);margin-bottom:var(--space-xl)}dialog .modal-icon{text-align:center;margin-bottom:var(--space-md)}dialog .modal-icon span{display:inline-flex;width:56px;height:56px;border-radius:50%;background:var(--accent-soft);align-items:center;justify-content:center;font-size:1.5rem}dialog form{display:flex;flex-direction:column;gap:var(--space-md)}dialog .modal-actions{display:flex;gap:var(--space-sm);justify-content:stretch}dialog .modal-actions .btn{flex:1;min-height:48px}.room-layout{display:flex;flex-direction:column;flex:1;gap:var(--space-md);padding-bottom:100px}.room-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-lg);position:sticky;top:0;z-index:10;background:#0f0c29d9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.room-header h3{font-size:1.1rem;margin:0;display:flex;align-items:center;gap:8px}.room-header .room-subtitle-text{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.participants-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md);padding:var(--space-md) 0;flex:1}.participant-tile{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-md) var(--space-xs);position:relative}.participant-tile .avatar{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-light));display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:700;position:relative;border:3px solid transparent;transition:all .3s ease}.participant-tile.speaking .avatar{border-color:var(--success);box-shadow:0 0 20px #0f86;animation:speakPulse 1.5s ease-in-out infinite}@keyframes speakPulse{0%,to{box-shadow:0 0 15px #00ff884d}50%{box-shadow:0 0 25px #00ff8880}}.participant-tile .participant-name{font-size:.75rem;font-weight:600;text-align:center;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.participant-tile .mic-status{position:absolute;top:8px;right:8px;background:#0009;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.65rem}.online-count{text-align:center;padding:var(--space-sm) var(--space-md);background:var(--glass);border-radius:var(--radius-full);font-size:.8rem;color:var(--text-secondary);display:inline-flex;align-items:center;gap:6px;margin:0 auto}.online-count .dot{width:6px;height:6px;border-radius:50%;background:var(--success);animation:statusPulse 2s infinite}.controls-bar{position:fixed;bottom:0;left:50%;transform:translate(-50%);background:#0f0c29e6;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:var(--space-md) var(--space-xl);border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;display:flex;justify-content:center;align-items:center;gap:var(--space-xl);width:100%;max-width:480px;border-top:1px solid var(--glass-border);padding-bottom:max(var(--space-md),env(safe-area-inset-bottom));z-index:100}.control-btn{width:56px;height:56px;border-radius:50%;border:none;background:var(--glass-strong);color:#fff;font-size:1.3rem;cursor:pointer;transition:all .2s ease;display:flex;justify-content:center;align-items:center;touch-action:manipulation;-webkit-user-select:none;user-select:none;position:relative}.control-btn:active{transform:scale(.9)}.control-btn.muted{background:var(--error-bg);color:var(--error)}.control-btn.end-call{background:var(--error);box-shadow:0 4px 15px #ff4d4d66}.control-btn.end-call:active{background:#e04343}.fade-in{animation:fadeIn .4s ease-out forwards;opacity:0}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.room-card:nth-child(1){animation-delay:0s}.room-card:nth-child(2){animation-delay:.05s}.room-card:nth-child(3){animation-delay:.1s}.room-card:nth-child(4){animation-delay:.15s}.room-card:nth-child(5){animation-delay:.2s}.prank-overlay{position:fixed;inset:0;background:#000000eb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:9999;display:flex;justify-content:center;align-items:center;text-align:center;animation:fadeIn .3s ease-out}.prank-content{animation:prankShake .5s cubic-bezier(.36,.07,.19,.97) both infinite;padding:var(--space-2xl)}.prank-emoji{font-size:5rem;margin-bottom:var(--space-lg)}.prank-content h1{font-size:2.5rem;color:var(--error);margin-bottom:var(--space-xs);text-transform:uppercase;letter-spacing:2px;-webkit-text-fill-color:var(--error)}.prank-content h2{font-size:1.8rem;color:#fff;margin-bottom:var(--space-md);-webkit-text-fill-color:#fff}.prank-content p{font-size:1.2rem;color:var(--text-muted)}.fade-out{opacity:0;transition:opacity .5s ease-out}@keyframes prankShake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-3px,0,0)}40%,60%{transform:translate3d(3px,0,0)}}@media(min-width:768px){#app{max-width:600px}.participants-grid{grid-template-columns:repeat(4,1fr)}.rooms-grid{display:grid;grid-template-columns:repeat(2,1fr)}.controls-bar{max-width:600px}}@media(min-width:1024px){#app{max-width:800px}.rooms-grid{grid-template-columns:repeat(3,1fr)}.participants-grid{grid-template-columns:repeat(5,1fr)}.controls-bar{max-width:400px;border-radius:var(--radius-full);bottom:var(--space-xl)}}@media(max-width:360px){:root{font-size:14px}.participant-tile .avatar{width:52px;height:52px;font-size:1rem}.control-btn{width:48px;height:48px;font-size:1.1rem}.controls-bar{gap:var(--space-lg)}}
