@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap";:root{--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-display:"Outfit", system-ui, -apple-system, sans-serif;--bg-primary:#0b0c10;--bg-secondary:#13141f;--bg-tertiary:#1b1c2e;--primary:#6366f1;--primary-hover:#4f46e5;--primary-glow:#6366f12e;--secondary:#a855f7;--secondary-glow:#a855f72e;--accent:#14b8a6;--accent-glow:#14b8a62e;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--danger:#ef4444;--danger-hover:#dc2626;--success:#10b981;--success-hover:#059669;--warning:#f59e0b;--border:#ffffff14;--border-focus:#6366f166;--glass-bg:#14152199;--glass-border:#ffffff12;--glass-shadow:0 8px 32px 0 #0006;--glass-blur:16px;font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-primary);background-image:radial-gradient(at 0 0,#6366f11f 0,#0000 50%),radial-gradient(at 100% 100%,#a855f71f 0,#0000 50%);background-attachment:fixed;min-height:100vh;margin:0;overflow-x:hidden}*{box-sizing:border-box}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:16px}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 10px var(--primary-glow)}50%{box-shadow:0 0 20px #6366f159}}@keyframes pulse-border{0%,to{border-color:var(--glass-border)}50%{border-color:#6366f166}}@keyframes pulse-online{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.4)}}.fade-in{animation:.4s cubic-bezier(.16,1,.3,1) forwards fadeIn}h1,h2,h3,h4{font-family:var(--font-display);margin-top:0;font-weight:700}button{cursor:pointer;font-family:var(--font-sans);border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--primary), var(--secondary));color:#fff;box-shadow:0 4px 14px #6366f14d}.btn-primary:hover{background:linear-gradient(135deg,#7174ff,#b566ff);transform:translateY(-1px);box-shadow:0 6px 20px #6366f173}.btn-primary:active{transform:translateY(0)}.btn-secondary{border:1px solid var(--border);color:var(--text-primary);background:#ffffff0f}.btn-secondary:hover{border-color:var(--text-secondary);background:#ffffff1f}.btn-danger{background:var(--danger);color:#fff;box-shadow:0 4px 14px #ef44444d}.btn-danger:hover{background:var(--danger-hover);transform:translateY(-1px);box-shadow:0 6px 20px #ef444473}.btn-success{background:var(--success);color:#fff;box-shadow:0 4px 14px #10b9814d}.btn-success:hover{background:var(--success-hover);transform:translateY(-1px);box-shadow:0 6px 20px #10b98173}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none!important;transform:none!important}input{font-family:var(--font-sans);border:1px solid var(--border);color:var(--text-primary);background:#ffffff0a;border-radius:8px;outline:none;padding:12px 16px;font-size:16px;transition:all .2s}input:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow);background:#ffffff14}.app-container{flex-direction:column;min-height:100vh;display:flex}.auth-page{flex:1;justify-content:center;align-items:center;padding:24px;display:flex}.auth-card{border:1px solid var(--glass-border);border-radius:20px;width:100%;max-width:440px;padding:40px}.auth-title{background:linear-gradient(135deg, #fff 30%, var(--text-secondary));-webkit-text-fill-color:transparent;text-align:center;-webkit-background-clip:text;margin-bottom:8px;font-size:2.2rem}.auth-subtitle{color:var(--text-secondary);text-align:center;margin-bottom:32px;font-size:.95rem}.auth-form{flex-direction:column;gap:20px;display:flex}.form-group{flex-direction:column;gap:8px;display:flex}.form-group label{color:var(--text-secondary);font-size:.85rem;font-weight:600}.auth-error{color:#ff8a8a;background:#ef44441a;border:1px solid #ef444433;border-radius:8px;margin-top:8px;padding:12px 16px;font-size:.9rem}.auth-toggle{text-align:center;color:var(--text-secondary);margin-top:24px;font-size:.9rem}.auth-toggle span{color:var(--primary);cursor:pointer;font-weight:600;text-decoration:underline}.app-header{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:100;background:#0b0c1080;justify-content:space-between;align-items:center;padding:18px 32px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;display:flex}.brand h1{background:linear-gradient(135deg, #fff 60%, var(--primary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin:0;font-size:1.4rem}.brand-dot{background:var(--primary);width:10px;height:10px;box-shadow:0 0 10px var(--primary);border-radius:50%}.user-profile{align-items:center;gap:16px;display:flex}.status-badge{color:#c7d2fe;background:#6366f11a;border:1px solid #6366f133;border-radius:20px;align-items:center;gap:8px;padding:6px 12px;font-size:.85rem;font-weight:550;display:flex}.pulse-indicator{background:var(--accent);border-radius:50%;width:8px;height:8px;position:relative}.pulse-indicator:after{content:"";background:var(--accent);border-radius:50%;width:100%;height:100%;animation:2s ease-in-out infinite pulse-online;position:absolute;top:0;left:0}.dashboard{flex:1;grid-template-columns:320px 1fr;gap:24px;width:100%;max-width:1600px;height:calc(100vh - 80px);margin:0 auto;padding:24px;display:grid;overflow:hidden}.sidebar{flex-direction:column;gap:20px;height:100%;display:flex;overflow-y:auto}.sidebar-panel{flex-direction:column;padding:20px;display:flex}.sidebar-panel h3{color:var(--text-secondary);border-bottom:1px solid #ffffff0d;margin-bottom:16px;padding-bottom:8px;font-size:1.1rem}.user-list{flex-direction:column;flex:1;gap:10px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.user-item{background:#ffffff05;border:1px solid #ffffff0a;border-radius:10px;justify-content:space-between;align-items:center;padding:12px 16px;transition:all .2s;display:flex}.user-item:hover{background:#ffffff0d;border-color:#6366f133}.user-name-container{align-items:center;gap:10px;display:flex}.user-avatar{background:linear-gradient(135deg, var(--primary), var(--secondary));color:#fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:.85rem;font-weight:700;display:flex}.user-info{flex-direction:column;display:flex}.user-username{font-size:.95rem;font-weight:550}.user-self{color:var(--text-muted);font-size:.75rem}.user-list-empty{text-align:center;color:var(--text-muted);padding:32px 16px;font-size:.9rem}.call-overlay{border:1px solid var(--glass-border);animation:3s infinite pulse-border}.call-overlay.active{background:#6366f112}.call-status-info{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.call-status-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);font-size:.8rem}.call-peer-name{font-family:var(--font-display);font-size:1.3rem;font-weight:700}.call-status-badge{border-radius:12px;padding:4px 10px;font-size:.85rem;font-weight:600}.call-status-badge.calling{color:#fbbf24;background:#f59e0b26}.call-status-badge.incoming{color:#c084fc;background:#a855f726}.call-status-badge.connecting{color:#818cf8;background:#6366f126}.call-status-badge.connected{color:#34d399;background:#10b98126}.call-actions{gap:12px;width:100%;margin-top:8px;display:flex}.call-actions button{flex:1}.chat-panel{flex-direction:column;height:100%;display:flex}.chat-empty-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;padding:40px;display:flex}.chat-empty-icon{opacity:.5;margin-bottom:16px;font-size:3rem}.chat-empty-state p{max-width:400px;margin:0 auto;font-size:.95rem;line-height:1.5}.chat-active-container{flex-direction:column;height:100%;display:flex}.chat-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.chat-peer-profile{align-items:center;gap:12px;display:flex}.chat-peer-details{flex-direction:column;display:flex}.chat-peer-title{font-size:1.05rem;font-weight:600}.chat-peer-status{color:var(--accent);align-items:center;gap:6px;font-size:.8rem;display:flex}.messages-container{flex-direction:column;flex:1;gap:16px;padding:24px;display:flex;overflow-y:auto}.message-bubble{word-break:break-word;border-radius:16px;flex-direction:column;gap:4px;max-width:65%;padding:12px 18px;font-size:.95rem;line-height:1.45;display:flex}.message-bubble.me{background:linear-gradient(135deg, var(--primary), #5142d1);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.message-bubble.them{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);border-bottom-left-radius:4px;align-self:flex-start}.message-time{opacity:.7;align-self:flex-end;font-size:.7rem}.chat-input-bar{border-top:1px solid var(--border);background:#13141f66;padding:20px 24px}.chat-form{gap:12px;display:flex}.chat-input{flex:1}.diagnostics-panel{border:1px solid var(--border);background:#0b0c1099;border-radius:12px;padding:16px}.diagnostics-panel h4{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:12px;font-size:.9rem}.diagnostics-grid{grid-template-columns:repeat(2,1fr);gap:8px 16px;font-family:monospace;font-size:.8rem;display:grid}.diag-label{color:var(--text-muted)}.diag-val{text-align:right;color:var(--text-secondary)}.diag-val.active{color:var(--accent);font-weight:700}.diag-val.connected{color:var(--success);font-weight:700}.diagnostics-wrapper{margin-top:16px}.diagnostics-toggle{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:#ffffff08;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 14px;font-size:.85rem;font-weight:550;transition:all .2s;display:flex}.diagnostics-toggle:hover{color:var(--text-primary);background:#ffffff0f;border-color:#6366f14d}.diagnostics-toggle.active{background:#ffffff0d;border-bottom-right-radius:0;border-bottom-left-radius:0}.diagnostics-wrapper .diagnostics-panel{border-top:none;border-top-left-radius:0;border-top-right-radius:0;margin-top:0}.chat-connecting-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;padding:40px;display:flex;position:relative}.connecting-radar{justify-content:center;align-items:center;width:120px;height:120px;margin-bottom:32px;display:flex;position:relative}.radar-circle{border:2px solid var(--primary);opacity:0;border-radius:50%;width:100%;height:100%;animation:3s linear infinite radarGlow;position:absolute}.circle-1{animation-delay:0s}.circle-2{animation-delay:1s}.circle-3{animation-delay:2s}.connecting-avatar{background:linear-gradient(135deg, var(--accent), var(--primary));color:#fff;width:64px;height:64px;box-shadow:0 0 20px var(--primary-glow);z-index:2;border-radius:50%;justify-content:center;align-items:center;font-size:1.4rem;font-weight:800;display:flex}@keyframes radarGlow{0%{opacity:.8;transform:scale(.5)}to{opacity:0;border-color:var(--secondary);transform:scale(1.8)}}.connecting-title{color:var(--text-primary);background:linear-gradient(135deg, #fff 50%, var(--primary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:8px;font-size:1.6rem}.connecting-subtitle{color:var(--text-secondary);max-width:380px;margin:0;font-size:.95rem;line-height:1.5}.global-call-banner{z-index:1100;-webkit-backdrop-filter:blur(12px);background:#141521d9;border:1px solid #6366f14d;border-radius:16px;width:90%;max-width:480px;padding:16px 20px;animation:.4s cubic-bezier(.16,1,.3,1) forwards slideDown;position:fixed;top:24px;left:50%;transform:translate(-50%);box-shadow:0 12px 40px #0009,0 0 20px #6366f126}@keyframes slideDown{0%{opacity:0;transform:translate(-50%,-40px)}to{opacity:1;transform:translate(-50%)}}.call-banner-content{justify-content:space-between;align-items:center;gap:16px;width:100%;display:flex}.call-banner-info{align-items:center;gap:12px;display:flex}.call-pulse{background:var(--warning);width:10px;height:10px}.call-pulse:after{background:var(--warning)}.call-banner-details{flex-direction:column;display:flex}.call-banner-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.75rem;font-weight:600}.call-banner-user{color:var(--text-primary);font-size:1.1rem;font-weight:700;font-family:var(--font-display)}.call-banner-actions{gap:8px;display:flex}.call-banner-actions button{padding:8px 14px;font-size:.85rem}.btn-back{border:1px solid var(--border);color:var(--text-secondary);background:#ffffff0d;border-radius:8px;justify-content:center;align-items:center;margin-right:8px;padding:6px 12px;font-size:1.1rem;display:inline-flex}.btn-back:hover{color:var(--text-primary);border-color:var(--text-secondary);background:#ffffff1a}.btn-hangup{background:var(--danger);color:#fff;border-radius:8px;padding:8px 14px;font-size:.85rem;box-shadow:0 4px 10px #ef444433}.btn-hangup:hover{background:var(--danger-hover);box-shadow:0 6px 14px #ef444459}.btn-logout{padding:6px 12px;font-size:.85rem}@media (width<=768px){.app-header{padding:12px 16px}.brand h1{font-size:1.15rem}.brand-dot{width:8px;height:8px}.user-profile{gap:8px}.status-badge,.btn-logout{padding:4px 8px;font-size:.8rem}.dashboard{flex-direction:column;gap:0;height:calc(100vh - 61px);padding:12px;display:flex}.sidebar{width:100%;height:100%;display:none;overflow-y:auto}.sidebar.mobile-active{display:flex}.chat-panel{border-radius:12px;width:100%;height:100%;display:none}.chat-panel.mobile-active{display:flex}.chat-header{padding:12px 16px}.chat-peer-title{font-size:.95rem}.chat-peer-status{font-size:.75rem}.messages-container{gap:12px;padding:16px 12px}.message-bubble{max-width:85%;padding:10px 14px;font-size:.9rem}.chat-input-bar{padding:12px 16px}.global-call-banner{padding:12px 16px;top:12px}.call-banner-user{font-size:.95rem}.call-banner-actions button{padding:6px 10px;font-size:.8rem}.chat-connecting-state{padding:24px 16px}.connecting-radar{width:90px;height:90px;margin-bottom:24px}.connecting-avatar{width:52px;height:52px;font-size:1.2rem}.connecting-title{font-size:1.35rem}.connecting-subtitle{max-width:300px;font-size:.85rem}}@media (width<=480px){.auth-card{border-radius:16px;padding:24px}.auth-title{font-size:1.8rem}.auth-subtitle{margin-bottom:24px;font-size:.85rem}.auth-toggle{margin-top:16px;font-size:.85rem}}.soundwave-container{align-items:center;gap:3px;height:14px;margin-left:8px;display:inline-flex}.soundwave-bar{background-color:var(--accent);transform-origin:bottom;border-radius:2px;width:2px;height:100%;animation:.8s ease-in-out infinite alternate bounce-soundwave}.soundwave-bar.bar-1{height:30%;animation-delay:.1s}.soundwave-bar.bar-2{height:100%;animation-delay:.3s}.soundwave-bar.bar-3{height:50%;animation-delay:.5s}.soundwave-bar.bar-4{height:80%;animation-delay:.2s}@keyframes bounce-soundwave{0%{transform:scaleY(.3)}to{transform:scaleY(1.1)}}.btn-audio-control{border:1px solid var(--border);color:var(--text-primary);cursor:pointer;background:#ffffff0a;border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;transition:all .2s;display:inline-flex}.btn-audio-control.active{color:#2dd4bf;background:#14b8a61f;border-color:#14b8a64d;box-shadow:0 0 10px #14b8a626}.btn-audio-control.muted{color:#fca5a5;background:#ef44441f;border-color:#ef44444d;box-shadow:0 0 10px #ef444426}.btn-audio-control:hover{transform:translateY(-1px)}.btn-audio-control:active{transform:translateY(0)}
