:root{--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-elevated: #1a1a24;--accent: #00d4aa;--accent-glow: rgba(0, 212, 170, .3);--text-primary: #ffffff;--text-secondary: #8888a0;--danger: #ff4757;--danger-glow: rgba(255, 71, 87, .3)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%}body{font-family:Sora,sans-serif;background:var(--bg-primary);color:var(--text-primary);overflow:hidden}.bg-pattern{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(ellipse 80% 50% at 50% -20%,rgba(0,212,170,.15),transparent),radial-gradient(ellipse 60% 40% at 100% 100%,rgba(120,80,255,.1),transparent),var(--bg-primary)}.bg-pattern:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);background-size:60px 60px}.landing{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3rem;padding:2rem;animation:fadeIn .6s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.logo{display:flex;flex-direction:column;align-items:center;gap:1rem}.logo-icon{width:80px;height:80px;border-radius:24px;background:linear-gradient(135deg,var(--accent),#7850ff);display:flex;align-items:center;justify-content:center;font-size:2.5rem;box-shadow:0 10px 40px #00d4aa4d,0 0 0 1px #ffffff1a}.logo h1{font-size:2.5rem;font-weight:600;letter-spacing:-.02em;background:linear-gradient(135deg,#fff 30%,var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.logo p{color:var(--text-secondary);font-size:1.1rem;font-weight:300}.room-input-group{display:flex;flex-direction:column;gap:1rem;align-items:center}.room-input{width:300px;padding:1rem 1.5rem;font-size:1rem;font-family:inherit;background:var(--bg-elevated);border:1px solid rgba(255,255,255,.1);border-radius:16px;color:var(--text-primary);text-align:center;transition:all .3s ease}.room-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-glow)}.room-input::placeholder{color:var(--text-secondary)}.join-btn{padding:1rem 3rem;font-size:1.1rem;font-family:inherit;font-weight:500;background:linear-gradient(135deg,var(--accent),#00b894);border:none;border-radius:16px;color:var(--bg-primary);cursor:pointer;transition:all .3s ease;box-shadow:0 4px 20px var(--accent-glow)}.join-btn:hover{transform:translateY(-2px);box-shadow:0 8px 30px var(--accent-glow)}.join-btn:active{transform:translateY(0)}.call-room{height:100%;display:flex;flex-direction:column;animation:fadeIn .4s ease-out}.room-header{padding:1rem 2rem;display:flex;align-items:center;justify-content:space-between;background:var(--bg-secondary);border-bottom:1px solid rgba(255,255,255,.05)}.room-info{display:flex;align-items:center;gap:.75rem}.room-badge{padding:.5rem 1rem;background:var(--bg-elevated);border-radius:8px;font-size:.875rem;color:var(--text-secondary);border:1px solid rgba(255,255,255,.1)}.room-badge span{color:var(--accent);font-weight:500}.participants-count{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary);font-size:.875rem}.participants-count:before{content:"";width:8px;height:8px;background:var(--accent);border-radius:50%;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.video-grid{flex:1;display:grid;gap:1rem;padding:1rem;min-height:0}.video-grid.grid-1{grid-template-columns:1fr}.video-grid.grid-2{grid-template-columns:repeat(2,1fr)}.video-grid.grid-3,.video-grid.grid-4{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr)}.video-container{position:relative;background:var(--bg-secondary);border-radius:20px;overflow:hidden;border:1px solid rgba(255,255,255,.05);display:flex;align-items:center;justify-content:center}.video-container video{width:100%;height:100%;object-fit:cover}.video-container.local video{transform:scaleX(-1)}.video-label{position:absolute;bottom:1rem;left:1rem;padding:.5rem 1rem;background:#0009;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:8px;font-size:.875rem;font-weight:500;display:flex;align-items:center;gap:.5rem}.video-label.speaking:before{content:"";width:8px;height:8px;background:var(--accent);border-radius:50%;animation:pulse 1s infinite}.controls{padding:1.5rem;display:flex;justify-content:center;gap:1rem;background:var(--bg-secondary);border-top:1px solid rgba(255,255,255,.05)}.control-btn{width:56px;height:56px;border-radius:16px;border:none;background:var(--bg-elevated);color:var(--text-primary);font-size:1.25rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.control-btn:hover{background:#ffffff26;transform:scale(1.05)}.control-btn.active{background:var(--accent);color:var(--bg-primary)}.control-btn.muted{background:#ff475733;color:var(--danger)}.control-btn.end-call{background:var(--danger);color:#fff;width:72px}.control-btn.end-call:hover{background:#ff6b7a;box-shadow:0 4px 20px var(--danger-glow)}.connection-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0a0a0fe6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;z-index:10}.spinner{width:48px;height:48px;border:3px solid var(--bg-elevated);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:var(--text-secondary)}.empty-state-icon{font-size:4rem;opacity:.3}.media-indicator{margin-left:.25rem;font-size:.75rem;opacity:.9}.video-off-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg-secondary);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;color:var(--text-secondary)}.video-off-icon{font-size:3rem;opacity:.5}.mobile-layout{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;display:flex;flex-direction:column}.mobile-header{position:absolute;top:0;left:0;right:0;z-index:20;background:linear-gradient(to bottom,rgba(0,0,0,.7),transparent);padding:1rem;padding-top:max(1rem,env(safe-area-inset-top))}.mobile-header .room-badge{background:#00000080;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.mobile-header .participants-count{color:#fff}.fullscreen-remote{position:absolute;top:0;right:0;bottom:0;left:0;background:#000}.fullscreen-remote video{width:100%;height:100%;object-fit:cover}.fullscreen-remote .empty-state{height:100%}.remote-muted-indicator{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:3rem;background:#00000080;padding:1rem;border-radius:50%;animation:pulse 2s infinite}.floating-local{position:absolute;bottom:120px;right:16px;width:120px;height:160px;border-radius:16px;overflow:hidden;box-shadow:0 4px 20px #00000080;border:2px solid rgba(255,255,255,.2);z-index:15;background:var(--bg-secondary)}.floating-local video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.pip-indicators{position:absolute;bottom:4px;left:4px;display:flex;gap:2px;font-size:.75rem;background:#0009;padding:2px 6px;border-radius:4px}.mobile-controls{position:absolute;bottom:0;left:0;right:0;z-index:20;background:linear-gradient(to top,rgba(0,0,0,.8),transparent);padding:1.5rem;padding-bottom:max(1.5rem,env(safe-area-inset-bottom));border-top:none}.mobile-controls .control-btn{width:52px;height:52px;background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.mobile-controls .control-btn:hover{background:#ffffff40}.mobile-controls .control-btn.muted{background:#ff475766}.mobile-controls .control-btn.end-call{width:64px;background:var(--danger)}@media (max-width: 768px){.video-grid.grid-2{grid-template-columns:1fr;grid-template-rows:repeat(2,1fr)}.controls{gap:.75rem}.control-btn{width:48px;height:48px;border-radius:12px}.landing{padding:1rem}.logo h1{font-size:2rem}.room-input{width:100%;max-width:300px}}@media (max-height: 500px) and (orientation: landscape){.floating-local{width:100px;height:75px;bottom:80px}.mobile-controls{padding:.75rem}.mobile-controls .control-btn{width:44px;height:44px}}
