:root{--bg: #000;--bg-secondary: #0a0a0a;--bg-card: rgba(255,255,255,.06);--text: #fff;--text-secondary: rgba(255,255,255,.5);--text-tertiary: rgba(255,255,255,.3);--glass-bg: rgba(255,255,255,.08);--glass-border: rgba(255,255,255,.12);--glass-dark-bg: rgba(0,0,0,.7);--glass-dark-border: rgba(255,255,255,.08);--input-bg: rgba(255,255,255,.08);--input-border: rgba(255,255,255,.16);--input-focus: rgba(0,122,255,.4);--skeleton-from: rgba(255,255,255,.06);--skeleton-to: rgba(255,255,255,.12);--scrollbar-thumb: rgba(255,255,255,.15);--hover-bg: rgba(255,255,255,.1);--divider: rgba(255,255,255,.06);--nav-bg: rgba(0,0,0,.85);--shadow: rgba(0,0,0,.4);--online-dot-border: #000;--call-bg: #000;--badge-bg: #ff9f0a;--badge-text: #000;--toggle-bg: rgba(255,255,255,.12);--reaction-bg: rgba(255,255,255,.1)}[data-theme=light]{--bg: #f5f5f7;--bg-secondary: #e8e8ed;--bg-card: rgba(255,255,255,.8);--text: #1d1d1f;--text-secondary: rgba(0,0,0,.45);--text-tertiary: rgba(0,0,0,.25);--glass-bg: rgba(255,255,255,.7);--glass-border: rgba(0,0,0,.08);--glass-dark-bg: rgba(255,255,255,.8);--glass-dark-border: rgba(0,0,0,.06);--input-bg: rgba(255,255,255,.9);--input-border: rgba(0,0,0,.12);--input-focus: rgba(0,122,255,.3);--skeleton-from: rgba(0,0,0,.06);--skeleton-to: rgba(0,0,0,.1);--scrollbar-thumb: rgba(0,0,0,.15);--hover-bg: rgba(0,0,0,.05);--divider: rgba(0,0,0,.08);--nav-bg: rgba(255,255,255,.85);--shadow: rgba(0,0,0,.1);--online-dot-border: #f5f5f7;--call-bg: #1c1c1e;--badge-bg: #ff9f0a;--badge-text: #fff;--toggle-bg: rgba(0,0,0,.1);--reaction-bg: rgba(0,0,0,.06)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,SF Pro Display,Roboto,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;transition:background .3s,color .3s}input,button,textarea{font-family:inherit}a{text-decoration:none;color:inherit}.glass{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);transition:background .3s,border .3s}.glass-dark{background:var(--glass-dark-bg);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);border:1px solid var(--glass-dark-border);transition:background .3s,border .3s}.facetime-gradient{background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460)}.call-gradient{background:radial-gradient(ellipse at center,#1a1a2e 0%,var(--call-bg) 100%)}.btn-primary{background:#007aff;color:#fff;border:none;padding:12px 32px;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary:hover{background:#0066d6;transform:scale(1.02)}.btn-primary:active{transform:scale(.98)}.btn-danger{background:#ff3b30;color:#fff;border:none;padding:12px 32px;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.btn-danger:hover{background:#d62d20}.btn-success{background:#34c759;color:#fff;border:none;border-radius:50%;width:64px;height:64px;font-size:24px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.btn-success:hover{background:#28a745;transform:scale(1.05)}input[type=text],input[type=email],input[type=password],textarea{background:var(--input-bg);border:1px solid var(--input-border);border-radius:12px;padding:14px 16px;color:var(--text);font-size:16px;width:100%;outline:none;transition:all .2s}input:focus,textarea:focus{border-color:#007aff;background:var(--glass-bg)}input::placeholder,textarea::placeholder{color:var(--text-tertiary)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}.avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#007aff,#5856d6);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:18px;color:#fff;overflow:hidden;flex-shrink:0}.avatar img{width:100%;height:100%;object-fit:cover}.avatar-lg{width:80px;height:80px;font-size:32px}.avatar-xl{width:120px;height:120px;font-size:48px}.online-dot{width:12px;height:12px;background:#34c759;border-radius:50%;border:2px solid var(--online-dot-border);position:absolute;bottom:2px;right:2px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.pulse{animation:pulse 2s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.slide-up{animation:slideUp .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-in{animation:fadeIn .2s ease-out}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.scale-in{animation:scaleIn .2s ease-out}.skeleton{background:linear-gradient(90deg,var(--skeleton-from) 25%,var(--skeleton-to) 50%,var(--skeleton-from) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:12px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-circle{width:80px;height:80px;border-radius:50%;margin:0 auto 16px}.skeleton-text{height:14px;margin-bottom:8px;width:60%;margin-inline:auto}.skeleton-text-short{height:12px;width:40%;margin-inline:auto}.skeleton-btn{height:52px;width:52px;border-radius:50%;display:inline-block}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000f2;display:flex;align-items:center;justify-content:center;z-index:2000;cursor:pointer}.lightbox-overlay img{max-width:90%;max-height:90%;object-fit:contain;border-radius:12px}.profile-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--bg)}.profile-card{max-width:480px;width:100%}.emoji-picker{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:8px;max-height:200px;overflow-y:auto}.emoji-picker button{background:none;border:none;font-size:24px;cursor:pointer;padding:4px;border-radius:8px;transition:background .15s}.emoji-picker button:hover{background:var(--hover-bg)}.call-control-btn{width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;color:#fff;font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.call-control-btn:hover{background:#fff3}.call-control-btn.active{background:#007aff4d;border-color:#007aff}.date-separator{text-align:center;margin:16px 0;font-size:12px;color:var(--text-tertiary);position:relative}.date-separator:before,.date-separator:after{content:"";position:absolute;top:50%;width:30%;height:1px;background:var(--divider)}.date-separator:before{left:0}.date-separator:after{right:0}.read-receipt{display:inline-flex;align-items:center;margin-left:4px}.read-receipt svg{width:14px;height:14px}.typing-indicator{display:flex;align-items:center;gap:4px;padding:8px 16px;font-size:13px;color:var(--text-secondary)}.typing-indicator span{width:6px;height:6px;background:var(--text-tertiary);border-radius:50%;animation:typingBounce 1.4s ease-in-out infinite}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-6px)}}.message-reactions{display:flex;gap:4px;margin-top:6px;flex-wrap:wrap}.reaction-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:10px;background:var(--reaction-bg);font-size:13px;cursor:pointer;transition:all .15s;border:1px solid transparent}.reaction-badge:hover{border-color:var(--glass-border);transform:scale(1.1)}.reaction-badge.active{background:#007aff26;border-color:#007aff4d}.reaction-picker{position:absolute;bottom:100%;left:0;margin-bottom:8px;display:flex;gap:4px;padding:6px 10px;background:var(--nav-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:20px;box-shadow:0 4px 20px var(--shadow);z-index:10}.reaction-picker button{background:none;border:none;font-size:20px;cursor:pointer;padding:4px;border-radius:50%;transition:all .15s}.reaction-picker button:hover{transform:scale(1.3)}.mobile-bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;align-items:center;padding:8px 0;padding-bottom:max(8px,env(safe-area-inset-bottom));background:var(--nav-bg);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);border-top:1px solid var(--divider);z-index:999}.nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 16px;background:none;border:none;color:var(--text-secondary);font-size:10px;cursor:pointer;transition:all .2s;position:relative}.nav-item svg{width:24px;height:24px}.nav-item.active{color:#007aff}.nav-item .badge{position:absolute;top:0;right:6px;background:#ff3b30;color:#fff;font-size:10px;font-weight:700;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center}.toggle-switch{position:relative;width:48px;height:28px;cursor:pointer}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--toggle-bg);border-radius:14px;transition:.25s}.toggle-slider:before{content:"";position:absolute;width:22px;height:22px;border-radius:50%;background:#fff;top:3px;left:3px;transition:.25s;box-shadow:0 1px 3px #0003}.toggle-switch input:checked+.toggle-slider{background:#34c759}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}@media (max-width: 768px){.contacts-grid{grid-template-columns:1fr!important}.profile-card,.auth-card{padding:32px 24px!important}.desktop-only{display:none!important}}@media (min-width: 769px){.mobile-only,.mobile-bottom-nav{display:none!important}}.page-enter{animation:fadeIn .25s ease-out}.toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:10px;pointer-events:none}.toast-container>*{pointer-events:auto}
