.logo{display:flex;align-items:center;gap:var(--sp-3);-webkit-user-select:none;user-select:none}.logo-icon{display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);overflow:hidden}.logo-icon img{width:100%;height:100%;object-fit:cover;display:block}.logo-sm .logo-icon{width:28px;height:28px}.logo-md .logo-icon{width:40px;height:40px}.logo-lg .logo-icon{width:56px;height:56px}.logo-text{font-weight:var(--fw-bold);background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.logo-sm .logo-text{font-size:var(--fs-md)}.logo-md .logo-text{font-size:var(--fs-xl)}.logo-lg .logo-text{font-size:var(--fs-2xl)}.strength{display:flex;flex-direction:column;gap:var(--sp-1);margin-top:var(--sp-2)}.strength-bar{height:4px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.strength-fill{height:100%;border-radius:var(--radius-full);transition:width .3s var(--ease-default)}.strength-weak{width:25%;background:var(--accent-red)}.strength-fair{width:50%;background:var(--accent-orange)}.strength-strong{width:75%;background:var(--accent-blue)}.strength-excellent{width:100%;background:var(--accent-green)}.strength-label{font-size:var(--fs-xs);font-weight:var(--fw-medium)}.strength-label-weak{color:var(--accent-red)}.strength-label-fair{color:var(--accent-orange)}.strength-label-strong{color:var(--accent-blue)}.strength-label-excellent{color:var(--accent-green)}.theme-toggle{color:var(--text-secondary);transition:var(--transition-default)}.theme-toggle:hover{color:var(--text-primary);background:var(--bg-tertiary)}.join-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;padding:var(--sp-6);gap:var(--sp-8)}.join-card{display:flex;flex-direction:column;align-items:center;gap:var(--sp-6);width:100%;max-width:380px;padding:var(--sp-8) var(--sp-6);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow)}.join-tagline{color:var(--text-secondary);font-size:var(--fs-sm);text-align:center;margin-top:calc(-1 * var(--sp-2))}.join-form{display:flex;flex-direction:column;gap:var(--sp-4);width:100%}.join-input-group{display:flex;flex-direction:column;gap:var(--sp-1)}.join-input-wrapper{position:relative;display:flex;align-items:center}.join-input{padding-left:var(--sp-4);padding-right:48px;width:100%}.join-input::-ms-reveal,.join-input::-ms-clear{display:none}.join-eye-btn{position:absolute;right:6px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-full);color:var(--text-tertiary);transition:var(--transition-fast)}.join-eye-btn:hover{color:var(--text-primary);background:var(--bg-elevated)}.join-generate{font-size:var(--fs-sm);color:var(--accent-blue)}.join-generate:hover{color:var(--accent-blue-hover);background:transparent}.join-features{display:flex;gap:var(--sp-4);flex-wrap:wrap;justify-content:center}.join-feature{display:flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-xs);color:var(--text-tertiary)}.join-footer{max-width:320px;line-height:var(--lh-relaxed)}.status-indicator{display:inline-flex;align-items:center;gap:var(--sp-2)}.status-dot{position:relative;width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0}.status-online .status-dot{background:var(--accent-green)}.status-connecting .status-dot{background:var(--accent-orange)}.status-offline .status-dot{background:var(--text-tertiary)}.status-ring{position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:var(--radius-full);border:2px solid var(--accent-orange);animation:pulseRing 1.5s ease-out infinite}.status-label{font-size:var(--fs-xs);color:var(--text-secondary);font-weight:var(--fw-medium)}.status-fair .status-dot{background:var(--accent-orange)}.status-poor .status-dot{background:var(--accent-red)}.room-header{display:flex;align-items:center;justify-content:space-between;height:var(--header-height);padding:0 var(--sp-4);border-bottom:1px solid rgba(255,255,255,.1);background:#0006;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);flex-shrink:0}.room-header-logo{position:relative;display:flex;align-items:center}.room-header-logo .status-indicator{position:absolute;bottom:-1px;right:-2px}.room-header-logo .status-dot{width:9px;height:9px;border:2px solid var(--bg-primary);border-radius:50%}.room-header-info{display:flex;align-items:center;gap:var(--sp-4)}.room-header-peers{display:flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-sm);color:var(--text-secondary);font-weight:var(--fw-medium)}.room-header-actions{display:flex;align-items:center;gap:var(--sp-2)}.room-call-btn{color:var(--text-primary);font-size:var(--fs-sm);padding:var(--sp-2);min-height:36px;border-radius:var(--radius-full)}.room-call-btn:hover{background:#ffffff14;color:var(--accent-green)}.room-leave-btn{color:var(--accent-red);font-size:var(--fs-sm);padding:var(--sp-2) var(--sp-3);min-height:36px}.room-leave-btn:hover{background:#ed49561a;color:var(--accent-red)}.room-leave-text{display:none}@media(min-width:480px){.room-leave-text{display:inline}}.call-event-bubble{align-self:center;display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);margin:var(--sp-2) 0;background:#ffffff0f;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:var(--bubble-radius, 16px);border:1px solid rgba(255,255,255,.08);max-width:85%;animation:callEventFadeIn .3s ease forwards}@keyframes callEventFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.call-event-icon-wrap{width:36px;height:36px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;flex-shrink:0}.call-event-bubble--completed .call-event-icon-wrap{background:#00c85326}.call-event-bubble--missed .call-event-icon-wrap{background:#ed495626}.call-event-bubble--declined .call-event-icon-wrap{background:#ffab4026}.call-event-icon--completed{color:#00c853}.call-event-icon--missed{color:var(--accent-red, #ED4956)}.call-event-icon--declined{color:#ffab40}.call-event-content{display:flex;flex-direction:column;gap:2px;min-width:0}.call-event-title{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.call-event-detail{font-size:var(--fs-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.message-list{flex:1;overflow-y:auto;padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2)}.message-list-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);color:var(--text-tertiary);text-align:center;padding:var(--sp-8)}.message-list-empty p{font-size:var(--fs-md);font-weight:var(--fw-medium);color:var(--text-secondary)}.message-list-empty span{font-size:var(--fs-sm);max-width:260px;line-height:var(--lh-relaxed)}.bubble-wrap{display:flex;flex-direction:column;max-width:var(--bubble-max-width);gap:2px}.bubble-self{align-self:flex-end;align-items:flex-end}.bubble-other{align-self:flex-start;align-items:flex-start}.bubble{padding:var(--sp-2) var(--sp-3);border-radius:var(--bubble-radius);word-break:break-word}.bubble-blue{background:linear-gradient(135deg,#0095f6,#8b5cf6);color:#fff;border-bottom-right-radius:4px}.bubble-gray{background:var(--bg-elevated);color:var(--text-primary);border-bottom-left-radius:4px}.bubble-text{font-size:var(--fs-base);line-height:var(--lh-normal)}.bubble-name{font-size:var(--fs-xs);color:var(--accent-blue);font-weight:var(--fw-medium);padding-left:var(--sp-1)}.bubble-time{font-size:10px;color:var(--text-tertiary);padding:0 var(--sp-1)}.system-message{align-self:center;font-size:var(--fs-xs);color:var(--text-tertiary);margin:var(--sp-2) 0;text-align:center;max-width:80%}.chat-input-bar{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-top:1px solid rgba(255,255,255,.1);background:#0006;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.chat-input{flex:1;height:40px;padding:0 var(--sp-4);background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-full);color:var(--text-primary);font-size:var(--fs-base);transition:var(--transition-fast)}.chat-input::placeholder{color:var(--text-tertiary)}.chat-input:focus{border-color:var(--border-active)}.chat-send-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-full);color:var(--text-tertiary);transition:var(--transition-fast);flex-shrink:0}.chat-send-btn:disabled{opacity:.4;cursor:default}.chat-send-active{color:var(--accent-blue)}.chat-send-active:hover{color:var(--accent-blue-hover);background:#0095f61a}.audio-call-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:space-between;background:linear-gradient(180deg,#1a0533,#0d0017 40%,#0a0a0a);animation:audioCallSlideUp .4s var(--ease-default) forwards;padding:var(--sp-8) var(--sp-4);padding-bottom:env(safe-area-inset-bottom,var(--sp-8))}@keyframes audioCallSlideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.audio-call-top{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);padding-top:var(--sp-6)}.audio-call-label{font-size:var(--fs-sm);color:var(--text-secondary);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:1.5px}.audio-call-encrypt{font-size:var(--fs-xs);color:var(--text-tertiary);display:flex;align-items:center;gap:var(--sp-1)}.audio-call-center{display:flex;flex-direction:column;align-items:center;gap:var(--sp-6);flex:1;justify-content:center}.audio-call-avatar-wrap{position:relative;width:140px;height:140px}.audio-call-avatar{width:140px;height:140px;border-radius:var(--radius-full);background:linear-gradient(135deg,#833ab4,#fd1d1d,#f77737);display:flex;align-items:center;justify-content:center;position:relative;z-index:3;box-shadow:0 0 60px #833ab44d}.audio-call-avatar-inner{width:132px;height:132px;border-radius:var(--radius-full);background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center}.audio-call-avatar-icon{color:var(--text-primary);opacity:.9}.audio-call-ring{position:absolute;top:50%;left:50%;border-radius:var(--radius-full);border:1.5px solid rgba(131,58,180,.5);transform:translate(-50%,-50%);pointer-events:none}.audio-call-ring--1{width:180px;height:180px;animation:audioRingPulse 2.4s ease-out infinite}.audio-call-ring--2{width:220px;height:220px;animation:audioRingPulse 2.4s ease-out .6s infinite}.audio-call-ring--3{width:260px;height:260px;animation:audioRingPulse 2.4s ease-out 1.2s infinite}.audio-call-status-wrap{display:flex;align-items:center;gap:2px;color:var(--text-secondary)}.audio-call-status-dots span{animation:audioDots 1.4s infinite;opacity:0}.audio-call-status-dots span:nth-child(2){animation-delay:.2s}.audio-call-status-dots span:nth-child(3){animation-delay:.4s}@keyframes audioDots{0%{opacity:0}50%{opacity:1}to{opacity:0}}@keyframes audioRingPulse{0%{opacity:.6;transform:translate(-50%,-50%) scale(.85)}to{opacity:0;transform:translate(-50%,-50%) scale(1.15)}}.audio-call-avatar.is-calling{animation:audioAvatarCalling 2s ease-in-out infinite}.audio-call-avatar.is-connected{box-shadow:0 0 40px #833ab466}@keyframes audioAvatarCalling{0%,to{transform:scale(1);box-shadow:0 0 20px #833ab433}50%{transform:scale(1.05);box-shadow:0 0 40px #833ab466}}.audio-call-interaction{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;cursor:pointer;text-align:center;padding:var(--sp-6)}.audio-call-interaction-content{display:flex;flex-direction:column;align-items:center;gap:var(--sp-4);color:var(--text-primary)}.audio-call-interaction-content h2{font-size:var(--fs-lg);font-weight:var(--fw-semibold)}.audio-call-interaction-content p{font-size:var(--fs-sm);color:var(--text-secondary)}.audio-call-info{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3)}.audio-call-name{font-size:var(--fs-xl);font-weight:var(--fw-semibold);color:var(--text-primary)}.audio-call-status{font-size:var(--fs-base);color:var(--text-secondary);font-weight:var(--fw-regular)}.audio-call-timer-wrap{display:flex;align-items:center;gap:var(--sp-2)}.audio-call-timer{font-size:var(--fs-lg);font-weight:var(--fw-medium);color:var(--text-primary);font-variant-numeric:tabular-nums;letter-spacing:1px}.audio-call-count{font-size:var(--fs-sm);color:var(--text-tertiary)}.animate-pulse-slow{animation:pulseScale 2s ease-in-out infinite}@keyframes pulseScale{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.audio-call-controls{display:flex;align-items:center;justify-content:center;gap:var(--sp-8);padding:var(--sp-6) var(--sp-4);width:100%;max-width:320px;z-index:5}.audio-call-btn{width:56px;height:56px;border-radius:var(--radius-full);display:flex;flex-direction:column;align-items:center;justify-content:center;border:none;cursor:pointer;transition:var(--transition-default);position:relative;background:#ffffff1f;color:var(--text-primary);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.audio-call-btn:active{transform:scale(.9)}.audio-call-btn--mute.is-muted,.audio-call-btn--speaker.is-active{background:#ffffff40;color:#fff}.audio-call-btn--end{width:64px;height:64px;background:var(--accent-red);color:#fff;box-shadow:0 4px 20px #ed495666;flex-direction:row}.audio-call-btn--end:hover{background:#d6384a}.audio-call-btn-label{position:absolute;bottom:-24px;left:50%;transform:translate(-50%);font-size:var(--fs-xs);color:var(--text-secondary);white-space:nowrap;font-weight:var(--fw-medium)}@media(max-width:480px){.audio-call-avatar-wrap,.audio-call-avatar{width:120px;height:120px}.audio-call-avatar-inner{width:112px;height:112px}.audio-call-ring--1{width:160px;height:160px}.audio-call-ring--2{width:196px;height:196px}.audio-call-ring--3{width:232px;height:232px}.audio-call-controls{gap:var(--sp-6)}.audio-call-btn{width:52px;height:52px}.audio-call-btn--end{width:60px;height:60px}}.video-call-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000;z-index:100;display:flex;flex-direction:column;overflow:hidden;color:#fff}.video-el{width:100%;height:100%;object-fit:cover;background:#1a1a1a;transform:scaleX(-1)}.video-grid-1{width:100%;height:100%;position:relative}.video-grid{flex:1;display:grid;padding:2px;gap:2px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-content:center}.video-cell{position:relative;width:100%;height:100%;min-height:200px;background:#222;border-radius:12px;overflow:hidden}.video-cell-name{position:absolute;bottom:8px;left:8px;background:#00000080;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500;text-shadow:0 1px 2px rgba(0,0,0,.5)}.video-pip{position:absolute;top:60px;right:16px;width:100px;height:150px;background:#333;border-radius:12px;overflow:hidden;box-shadow:0 4px 12px #0000004d;z-index:10;transition:all .3s ease;border:1px solid rgba(255,255,255,.1)}.video-pip video{width:100%;height:100%;object-fit:cover}.video-call-top{position:absolute;top:0;left:0;right:0;min-height:60px;padding-top:max(20px,env(safe-area-inset-top));padding-bottom:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:20;background:linear-gradient(to bottom,rgba(0,0,0,.6),transparent)}.video-call-label{font-size:16px;font-weight:600;opacity:.9}.video-call-encrypt{font-size:11px;opacity:.6;display:flex;align-items:center;gap:4px;margin-top:2px}.video-call-timer{font-size:13px;opacity:.8;margin-top:4px;background:#0000004d;padding:2px 8px;border-radius:10px}.video-call-controls{position:absolute;bottom:0;left:0;right:0;height:100px;display:flex;align-items:center;justify-content:center;gap:24px;background:linear-gradient(to top,rgba(0,0,0,.8),transparent);z-index:20;padding-bottom:20px}.video-call-btn{width:56px;height:56px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;background:#ffffff26;color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:relative}.video-call-btn:active{transform:scale(.95)}.video-call-btn--end{background:#ff3b30;width:64px;height:64px}.video-call-btn.is-active{background:#fff;color:#000}.video-call-btn-icon-off{position:relative}.video-call-btn-icon-off:after{content:"";position:absolute;top:50%;left:50%;width:120%;height:2px;background:currentColor;transform:translate(-50%,-50%) rotate(-45deg);border-radius:2px}.video-off-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#1a1a1a;color:#555}.video-call-waiting{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding-bottom:100px;background:linear-gradient(180deg,#1a0533,#0d0017 40%,#0a0a0a);gap:var(--sp-6, 24px)}.vcall-avatar-wrap{position:relative;width:140px;height:140px}.vcall-avatar{width:140px;height:140px;border-radius:50%;background:linear-gradient(135deg,#833ab4,#fd1d1d,#f77737);display:flex;align-items:center;justify-content:center;position:relative;z-index:3;box-shadow:0 0 60px #833ab44d}.vcall-avatar-inner{width:132px;height:132px;border-radius:50%;background:#1e1e1e;display:flex;align-items:center;justify-content:center}.vcall-avatar-icon{color:#fff;opacity:.9}.vcall-avatar.is-calling{animation:vcallAvatarPulse 2s ease-in-out infinite}@keyframes vcallAvatarPulse{0%,to{transform:scale(1);box-shadow:0 0 20px #833ab433}50%{transform:scale(1.05);box-shadow:0 0 40px #833ab466}}.vcall-ring{position:absolute;top:50%;left:50%;border-radius:50%;border:1.5px solid rgba(131,58,180,.5);transform:translate(-50%,-50%);pointer-events:none}.vcall-ring--1{width:180px;height:180px;animation:vcallRingPulse 2.4s ease-out infinite}.vcall-ring--2{width:220px;height:220px;animation:vcallRingPulse 2.4s ease-out .6s infinite}.vcall-ring--3{width:260px;height:260px;animation:vcallRingPulse 2.4s ease-out 1.2s infinite}@keyframes vcallRingPulse{0%{opacity:.6;transform:translate(-50%,-50%) scale(.85)}to{opacity:0;transform:translate(-50%,-50%) scale(1.15)}}.vcall-info{display:flex;flex-direction:column;align-items:center;gap:12px}.vcall-name{font-size:22px;font-weight:600;color:#fff}.vcall-status-wrap{display:flex;align-items:center;gap:2px;color:#fff9}.vcall-status{font-size:15px;font-weight:400}.vcall-status-dots span{animation:vcallDots 1.4s infinite;opacity:0;font-size:20px}.vcall-status-dots span:nth-child(2){animation-delay:.2s}.vcall-status-dots span:nth-child(3){animation-delay:.4s}@keyframes vcallDots{0%{opacity:0}50%{opacity:1}to{opacity:0}}.animate-pulse-slow{animation:vcallPhonePulse 2s ease-in-out infinite}@keyframes vcallPhonePulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.animate-pulse{animation:vcallPulse 1.5s ease-in-out infinite}@keyframes vcallPulse{0%,to{opacity:1}50%{opacity:.4}}@media(max-width:768px){.video-grid{grid-template-columns:repeat(auto-fit,minmax(45%,1fr));align-content:start;padding-bottom:100px;overflow-y:auto}.video-cell{min-height:180px}}@media(max-width:480px){.vcall-avatar-wrap,.vcall-avatar{width:120px;height:120px}.vcall-avatar-inner{width:112px;height:112px}.vcall-ring--1{width:160px;height:160px}.vcall-ring--2{width:196px;height:196px}.vcall-ring--3{width:232px;height:232px}}.video-fallback-avatar{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:10;pointer-events:none}.video-fallback-name{margin-top:8px;font-size:14px;opacity:.7;text-shadow:0 1px 2px black}.video-el-container{position:relative;width:100%;height:100%;background:#111;border-radius:inherit;overflow:hidden}.video-el.is-visible{opacity:1;visibility:visible}.video-el.is-hidden{opacity:0;visibility:hidden;position:absolute;top:0;left:0}.video-call-chat{position:absolute;top:0;right:0;width:320px;height:100%;background:#1e1e1ef2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:30;display:flex;flex-direction:column;border-left:1px solid rgba(255,255,255,.1);animation:slideInChat .2s ease-out}@keyframes slideInChat{0%{transform:translate(100%)}to{transform:translate(0)}}.video-call-chat-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid rgba(255,255,255,.1);font-weight:600;font-size:14px}.video-call-chat-close{background:none;border:none;color:#fff;cursor:pointer;padding:4px;opacity:.7;display:flex;align-items:center;justify-content:center}.video-call-chat-close:hover{opacity:1}.video-call-chat-messages{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px}.video-call-chat-message{display:flex;flex-direction:column;max-width:85%;padding:8px 12px;border-radius:12px;background:#ffffff1a}.video-call-chat-message.is-own{align-self:flex-end;background:#833ab4}.chat-sender{font-size:11px;opacity:.7;margin-bottom:2px}.chat-text{font-size:13px;word-break:break-word}.video-call-chat-input{display:flex;gap:8px;padding:12px;border-top:1px solid rgba(255,255,255,.1)}.video-call-chat-input input{flex:1;background:#ffffff1a;border:none;border-radius:20px;padding:8px 16px;color:#fff;font-size:13px;outline:none}.video-call-chat-input input::placeholder{color:#ffffff80}.video-call-chat-input input:focus{background:#ffffff26}.video-call-chat-input button{background:#833ab4;border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:all .2s ease}.video-call-chat-input button:hover:not(:disabled){background:#9b4dca;transform:scale(1.05)}.video-call-chat-input button:disabled{opacity:.5;cursor:not-allowed}.incoming-call-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:110;display:flex;flex-direction:column;align-items:center;justify-content:space-between;background:linear-gradient(180deg,#0a1628,#0d0017 40%,#0a0a0a);animation:incomingCallSlideUp .4s var(--ease-default) forwards;padding:var(--sp-8) var(--sp-4);padding-bottom:env(safe-area-inset-bottom,var(--sp-8))}@keyframes incomingCallSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.incoming-call-top{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);padding-top:var(--sp-6)}.incoming-call-label{font-size:var(--fs-sm);color:var(--text-secondary);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:1.5px}.incoming-call-encrypt{font-size:var(--fs-xs);color:var(--text-tertiary);display:flex;align-items:center;gap:var(--sp-1)}.incoming-call-center{display:flex;flex-direction:column;align-items:center;gap:var(--sp-6);flex:1;justify-content:center}.incoming-call-avatar-wrap{position:relative;width:140px;height:140px}.incoming-call-avatar{width:140px;height:140px;border-radius:var(--radius-full);background:linear-gradient(135deg,#00c853,#00e676,#69f0ae);display:flex;align-items:center;justify-content:center;position:relative;z-index:3;box-shadow:0 0 60px #00c8534d;animation:incomingAvatarPulse 1.5s ease-in-out infinite}.incoming-call-avatar-inner{width:132px;height:132px;border-radius:var(--radius-full);background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center}.incoming-call-avatar-icon{color:#00e676;animation:incomingPhoneShake .5s ease-in-out infinite}@keyframes incomingPhoneShake{0%,to{transform:rotate(0)}20%{transform:rotate(15deg)}40%{transform:rotate(-15deg)}60%{transform:rotate(10deg)}80%{transform:rotate(-10deg)}}@keyframes incomingAvatarPulse{0%,to{transform:scale(1);box-shadow:0 0 30px #00c85333}50%{transform:scale(1.05);box-shadow:0 0 50px #00c85366}}.incoming-call-ring{position:absolute;top:50%;left:50%;border-radius:var(--radius-full);border:1.5px solid rgba(0,200,83,.5);transform:translate(-50%,-50%);pointer-events:none}.incoming-call-ring--1{width:180px;height:180px;animation:incomingRingPulse 2s ease-out infinite}.incoming-call-ring--2{width:220px;height:220px;animation:incomingRingPulse 2s ease-out .5s infinite}.incoming-call-ring--3{width:260px;height:260px;animation:incomingRingPulse 2s ease-out 1s infinite}@keyframes incomingRingPulse{0%{opacity:.6;transform:translate(-50%,-50%) scale(.85)}to{opacity:0;transform:translate(-50%,-50%) scale(1.2)}}.incoming-call-info{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3)}.incoming-call-name{font-size:var(--fs-xl);font-weight:var(--fw-semibold);color:var(--text-primary)}.incoming-call-status-wrap{display:flex;align-items:center;gap:4px;color:var(--text-secondary)}.incoming-call-phone-icon{animation:incomingPhoneShake .5s ease-in-out infinite;color:#00e676}.incoming-call-status{font-size:var(--fs-base);color:var(--text-secondary)}.incoming-call-dots span{animation:incomingDots 1.4s infinite;opacity:0;font-size:var(--fs-lg);font-weight:var(--fw-bold)}.incoming-call-dots span:nth-child(2){animation-delay:.2s}.incoming-call-dots span:nth-child(3){animation-delay:.4s}@keyframes incomingDots{0%{opacity:0}50%{opacity:1}to{opacity:0}}.incoming-call-actions{display:flex;align-items:center;justify-content:center;gap:120px;padding:var(--sp-8) var(--sp-4);width:100%;max-width:320px}.incoming-call-btn{width:64px;height:64px;border-radius:var(--radius-full);display:flex;flex-direction:column;align-items:center;justify-content:center;border:none;cursor:pointer;transition:var(--transition-default);position:relative;color:#fff}.incoming-call-btn:active{transform:scale(.9)}.incoming-call-btn--decline{background:var(--accent-red, #ED4956);box-shadow:0 4px 20px #ed495666}.incoming-call-btn--decline:hover{background:#d6384a}.incoming-call-btn--accept{background:#00c853;box-shadow:0 4px 20px #00c85366;animation:acceptBtnPulse 2s ease-in-out infinite}.incoming-call-btn--accept:hover{background:#00a844}@keyframes acceptBtnPulse{0%,to{box-shadow:0 4px 20px #00c85366}50%{box-shadow:0 4px 30px #00c853b3}}.incoming-call-btn-label{position:absolute;bottom:-24px;left:50%;transform:translate(-50%);font-size:var(--fs-xs);color:var(--text-secondary);white-space:nowrap;font-weight:var(--fw-medium)}@media(max-width:480px){.incoming-call-avatar-wrap,.incoming-call-avatar{width:120px;height:120px}.incoming-call-avatar-inner{width:112px;height:112px}.incoming-call-ring--1{width:160px;height:160px}.incoming-call-ring--2{width:196px;height:196px}.incoming-call-ring--3{width:232px;height:232px}.incoming-call-btn{width:60px;height:60px}}.room-screen{display:flex;flex-direction:column;height:100dvh;width:100%;border-left:1px solid var(--border);border-right:1px solid var(--border)}@media(max-width:480px){.room-screen{border-left:none;border-right:none}}.permission-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .2s ease-out}.permission-modal{background:var(--glass-bg);background:var(--bg-secondary);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:20px;padding:32px;width:90%;max-width:400px;text-align:center;box-shadow:var(--shadow-lg);animation:slideUp .3s cubic-bezier(.16,1,.3,1)}.permission-icon-wrapper{width:64px;height:64px;background:#ff3b301a;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;color:var(--accent-red)}.permission-icon-wrapper svg{width:32px;height:32px}.permission-title{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin-bottom:12px}.permission-description{font-size:.95rem;color:var(--text-secondary);line-height:1.5;margin-bottom:24px}.permission-actions{display:flex;gap:12px;flex-direction:column}.permission-btn{padding:12px;border-radius:12px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s;border:none;width:100%}.permission-btn.primary{background:var(--accent-blue);color:#fff}.permission-btn.primary:hover{background:var(--accent-blue-hover)}.permission-btn.secondary{background:var(--bg-tertiary);color:var(--text-primary)}.permission-btn.secondary:hover{background:var(--bg-elevated)}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.ad-layout-container{display:flex;justify-content:center;align-items:stretch;min-height:100vh;width:100%;position:relative;background:var(--bg-gradient-scene);overflow-x:hidden}.ad-sidebar{display:none;flex:0 0 160px;width:160px;margin:0 20px;position:sticky;top:0;height:100vh;padding-top:40px;z-index:10}.ad-main-content{flex:1;max-width:100%;width:100%}.ad-unit-sidebar{width:160px;min-height:600px}@media(min-width:960px){.ad-sidebar{display:block}.ad-main-content{max-width:480px;flex:0 0 480px}}@media(min-width:1280px){.ad-sidebar{flex:0 0 300px;width:300px}.ad-unit-sidebar{width:300px}}:root{--bg-primary: #000000;--bg-secondary: #121212;--bg-tertiary: #1C1C1E;--bg-elevated: #262626;--border: #363636;--border-active: #545454;--text-primary: #F5F5F5;--text-secondary: #A8A8A8;--text-tertiary: #737373;--accent-blue: #0095F6;--accent-blue-hover: #1877F2;--accent-green: #58C322;--accent-red: #ED4956;--accent-orange: #FCA326;--gradient-primary: linear-gradient(135deg, #8B5CF6 0%, #D946EF 100%);--gradient-surface: linear-gradient(135deg, #1C1C1E, #262626);--bg-gradient-scene: radial-gradient(circle at 50% 0%, #2d1b4e 0%, #0a0a0a 60%, #000000 100%);--glass-bg: rgba(255, 255, 255, .03);--glass-border: rgba(255, 255, 255, .08);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .4);--glass-blur: 20px;--toast-bg: rgba(38, 38, 38, .8);--toast-text: #fff;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--fw-light: 300;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--fs-xs: .6875rem;--fs-sm: .8125rem;--fs-base: .875rem;--fs-md: 1rem;--fs-lg: 1.25rem;--fs-xl: 1.5rem;--fs-2xl: 1.75rem;--lh-tight: 1.2;--lh-normal: 1.5;--lh-relaxed: 1.75;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--sp-16: 64px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 9999px;--bubble-radius: 18px;--bubble-max-width: 65%;--max-content: 480px;--header-height: 56px;--input-height: 52px;--controls-height: 64px;--ease-default: cubic-bezier(.4, 0, .2, 1);--transition-fast: all .15s var(--ease-default);--transition-default: all .2s var(--ease-default);--transition-slow: all .3s var(--ease-default);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5)}:root[data-theme=light]{--bg-primary: #FFFFFF;--bg-secondary: #F2F2F7;--bg-tertiary: #FFFFFF;--bg-elevated: #FFFFFF;--border: #E5E5EA;--border-active: #C7C7CC;--text-primary: #000000;--text-secondary: #3C3C43;--text-tertiary: #8E8E93;--gradient-surface: linear-gradient(135deg, #F2F2F7, #FFFFFF);--bg-gradient-scene: radial-gradient(circle at 50% 0%, #E0E7FF 0%, #F5F5F7 60%, #FFFFFF 100%);--glass-bg: rgba(255, 255, 255, .6);--glass-border: rgba(0, 0, 0, .05);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .1);--toast-bg: rgba(255, 255, 255, .8);--toast-text: #000;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12)}@media(prefers-color-scheme:light){:root:not([data-theme=dark]){--bg-primary: #FFFFFF;--bg-secondary: #F2F2F7;--bg-tertiary: #FFFFFF;--bg-elevated: #FFFFFF;--border: #E5E5EA;--border-active: #C7C7CC;--text-primary: #000000;--text-secondary: #3C3C43;--text-tertiary: #8E8E93;--gradient-surface: linear-gradient(135deg, #F2F2F7, #FFFFFF);--bg-gradient-scene: radial-gradient(circle at 50% 0%, #E0E7FF 0%, #F5F5F7 60%, #FFFFFF 100%);--glass-bg: rgba(255, 255, 255, .6);--glass-border: rgba(0, 0, 0, .05);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .1);--toast-bg: rgba(255, 255, 255, .8);--toast-text: #000;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes pulseRing{0%{transform:scale(1);opacity:.6}to{transform:scale(2);opacity:0}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fade-in-up{animation:fadeInUp .2s ease-out both}.animate-scale-in{animation:scaleIn .2s var(--ease-default) both}.animate-slide-up{animation:slideUp .3s var(--ease-default) both}.animate-pulse{animation:pulse 2s ease-in-out infinite}.animate-shimmer{background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--bg-elevated) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}.animate-spin{animation:spin 1s linear infinite}.animate-fade-in{animation:fadeIn .2s ease-out both}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-sm);font-weight:var(--fw-semibold);font-size:var(--fs-base);line-height:1;transition:var(--transition-default);-webkit-user-select:none;user-select:none;white-space:nowrap;min-height:44px}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--accent-blue);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-blue-hover)}.btn-danger{background:var(--accent-red);color:#fff}.btn-danger:hover:not(:disabled){background:#d6384a}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary)}.btn-outline{background:transparent;color:var(--text-primary);border:1px solid var(--border)}.btn-outline:hover:not(:disabled){border-color:var(--border-active);background:var(--bg-tertiary)}.btn-icon{width:44px;height:44px;padding:0;border-radius:var(--radius-full);background:var(--bg-tertiary);color:var(--text-primary)}.btn-icon:hover:not(:disabled){background:var(--bg-elevated)}.btn-icon.active{background:var(--accent-red);color:#fff}.btn-lg{min-height:48px;padding:var(--sp-4) var(--sp-6);font-size:var(--fs-md);border-radius:var(--radius-md)}.btn-full{width:100%}.btn-gradient{background:var(--gradient-primary);color:#fff;font-weight:var(--fw-bold)}.btn-gradient:hover:not(:disabled){opacity:.9}.input{width:100%;padding:var(--sp-3) var(--sp-4);background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--fs-md);min-height:44px;transition:var(--transition-default)}.input::placeholder{color:var(--text-tertiary)}.input:focus{border-color:var(--border-active);background:var(--bg-secondary)}.input-lg{min-height:48px;font-size:var(--fs-md);padding:var(--sp-4);border-radius:var(--radius-md)}.card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-6)}.card-elevated{background:var(--gradient-surface);box-shadow:var(--shadow-md)}.badge{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-full);font-size:var(--fs-xs);font-weight:var(--fw-medium);line-height:1}.badge-green{background:#58c32226;color:var(--accent-green)}.badge-red{background:#ed495626;color:var(--accent-red)}.badge-orange{background:#fca32626;color:var(--accent-orange)}.divider{height:1px;background:var(--border);border:none;margin:var(--sp-4) 0}.screen{display:flex;flex-direction:column;min-height:100dvh;max-width:var(--max-content);margin:0 auto;width:100%}.screen-centered{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;padding:var(--sp-6)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-accent{color:var(--accent-blue)}.text-sm{font-size:var(--fs-sm)}.text-xs{font-size:var(--fs-xs)}.text-center{text-align:center}.text-gradient{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.toast-glass{background:#0006!important;backdrop-filter:blur(12px)!important;-webkit-backdrop-filter:blur(12px)!important;color:#fff!important;border:1px solid rgba(255,255,255,.1)!important;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f!important;font-size:14px!important;border-radius:12px!important}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}body{font-family:var(--font-family);font-size:var(--fs-base);font-weight:var(--fw-regular);line-height:var(--lh-normal);color:var(--text-primary);background-color:var(--bg-primary);min-height:100dvh;overflow-x:hidden}#root{min-height:100dvh;display:flex;flex-direction:column}a{color:var(--accent-blue);text-decoration:none}a:hover{color:var(--accent-blue-hover)}img,video{display:block;max-width:100%}input,button,textarea{font-family:inherit;font-size:inherit;color:inherit;border:none;outline:none;background:none}button{cursor:pointer;-webkit-tap-highlight-color:transparent}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--border-active)}::selection{background:var(--accent-blue);color:#fff}:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}
