*{margin:0;padding:0;box-sizing:border-box;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}:root{--primary: #0078d4;--primary-dark: #005a9e;--bg-dark: #1a1a2e;--bg-medium: #16213e;--bg-light: #0f3460;--text-primary: #ffffff;--text-secondary: #a0a0a0;--accent: #e94560;--online: #4caf50;--away: #ffc107;--busy: #f44336;--offline: #9e9e9e}body{background:var(--bg-dark);color:var(--text-primary);height:100vh;overflow:hidden}#root{height:100vh}.app{display:flex;min-height:100vh}.auth-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;width:100%;background:linear-gradient(135deg,var(--bg-dark),var(--bg-medium));padding:24px}.auth-logo{width:72px;height:72px;background:linear-gradient(135deg,var(--primary),var(--accent));border-radius:18px;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;margin-bottom:20px;box-shadow:0 8px 32px #0078d44d}.auth-title{font-size:24px;font-weight:600;margin-bottom:6px}.auth-subtitle{color:var(--text-secondary);margin-bottom:28px}.auth-form{width:100%;max-width:320px}.form-group{margin-bottom:14px}.form-group label{display:block;font-size:12px;color:var(--text-secondary);margin-bottom:5px}.form-group input{width:100%;padding:11px 14px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--text-primary);font-size:14px;transition:all .2s}.form-group input:focus{outline:none;border-color:var(--primary);background:#ffffff14}.btn-primary{width:100%;padding:11px;background:var(--primary);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.btn-primary:hover{background:var(--primary-dark)}.auth-switch{margin-top:14px;text-align:center;color:var(--text-secondary);font-size:13px}.auth-switch a{color:var(--primary);text-decoration:none;cursor:pointer}.auth-switch a:hover{text-decoration:underline}.auth-forgot{text-align:right;margin-bottom:14px;font-size:12px}.auth-forgot a{color:var(--primary);text-decoration:none;cursor:pointer;font-size:12px}.auth-forgot a:hover{text-decoration:underline}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.main-layout{display:flex;width:100%;height:100vh}.sidebar{width:320px;min-width:320px;background:var(--bg-medium);border-right:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;height:100vh;position:sticky;top:0;flex-shrink:0}.user-profile{padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;gap:10px}.user-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--accent));display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;position:relative;flex-shrink:0}.status-dot{position:absolute;bottom:0;right:0;width:11px;height:11px;border-radius:50%;border:2px solid var(--bg-medium)}.status-online{background:var(--online)}.status-away{background:var(--away)}.status-busy{background:var(--busy)}.status-offline{background:var(--offline)}.user-info{flex:1;min-width:0}.user-info h3{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-info .status-text{font-size:11px;color:var(--text-secondary)}.status-selector{position:relative}.status-toggle-btn{background:none;border:1px solid rgba(255,255,255,.15);color:var(--text-secondary);border-radius:6px;padding:4px 8px;cursor:pointer;font-size:12px}.status-toggle-btn:hover{background:#ffffff14}.status-menu{position:absolute;top:100%;right:0;background:var(--bg-medium);border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:8px;z-index:100;min-width:155px;box-shadow:0 8px 24px #0006}.status-option{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:4px;cursor:pointer;font-size:13px}.status-option:hover{background:#ffffff14}.status-option .dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.logout-btn{background:none;border:1px solid rgba(255,255,255,.15);color:var(--text-secondary);border-radius:6px;padding:4px 8px;font-size:11px;cursor:pointer;flex-shrink:0}.logout-btn:hover{background:#ffffff14;color:var(--text-primary)}.download-banner{display:flex;align-items:center;gap:10px;padding:10px 14px;background:linear-gradient(135deg,#0078d426,#e945601a);border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1);text-decoration:none;color:var(--text-primary);cursor:pointer;transition:background .2s;flex-shrink:0}.download-banner:hover{background:linear-gradient(135deg,#0078d440,#e9456026)}.download-icon{font-size:24px;flex-shrink:0}.download-text{display:flex;flex-direction:column;gap:1px;min-width:0}.download-text strong{font-size:12px;font-weight:600}.download-text span{font-size:10px;color:var(--text-secondary)}.sidebar-tabs{display:flex;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-tab{flex:1;padding:10px 4px;text-align:center;font-size:11px;color:var(--text-secondary);cursor:pointer;transition:all .2s;border-bottom:2px solid transparent;background:none;border-top:none;border-left:none;border-right:none}.sidebar-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.sidebar-tab:hover{color:var(--text-primary)}.sidebar-content{flex:1;overflow-y:auto;padding:4px 6px}.sidebar-content::-webkit-scrollbar{width:5px}.sidebar-content::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.search-box{padding:6px;border-bottom:1px solid rgba(255,255,255,.1)}.search-box input{width:100%;padding:8px 12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:var(--text-primary);font-size:13px}.search-box input:focus{outline:none;border-color:var(--primary)}.contact-group{margin-bottom:4px}.group-header{display:flex;align-items:center;gap:8px;padding:6px 8px;font-size:11px;color:var(--text-secondary);-webkit-user-select:none;user-select:none}.contact-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;cursor:pointer;transition:background .15s}.contact-item:hover{background:#ffffff0d}.contact-item.active{background:var(--bg-light)}.contact-avatar{width:34px;height:34px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,var(--primary),var(--accent));display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;position:relative}.contact-avatar .status-dot{width:9px;height:9px;bottom:-1px;right:-1px}.contact-info{flex:1;min-width:0}.contact-info h4{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-info .last-message{font-size:11px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.empty-msg{padding:20px;text-align:center;color:var(--text-secondary);font-size:13px}.chat-area{flex:1;display:flex;flex-direction:column;background:var(--bg-dark);min-width:0;overflow:hidden}.chat-header{padding:10px 14px;background:var(--bg-medium);border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;gap:10px}.back-btn{background:none;border:none;color:var(--primary);font-size:18px;cursor:pointer;padding:4px;display:none}.chat-header-info{flex:1;min-width:0}.chat-header-info h2{font-size:14px;font-weight:500}.typing-indicator{font-size:12px;color:var(--primary);display:none}.typing-indicator.show{display:block}.chat-messages{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:5px}.chat-messages::-webkit-scrollbar{width:5px}.chat-messages::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.message{max-width:70%;display:flex;flex-direction:column;gap:2px;animation:slideIn .2s ease-out}.message.sent{align-self:flex-end}.message.received{align-self:flex-start}.message-bubble{padding:8px 13px;border-radius:15px;font-size:14px;line-height:1.4;word-wrap:break-word}.message.sent .message-bubble{background:var(--primary);border-bottom-right-radius:4px}.message.received .message-bubble{background:var(--bg-medium);border-bottom-left-radius:4px}.message-time{font-size:10px;color:var(--text-secondary)}.message.sent .message-time{text-align:right}.chat-input-area{padding:10px 14px;background:var(--bg-medium);border-top:1px solid rgba(255,255,255,.1);display:flex;gap:8px}.chat-input-area input{flex:1;padding:9px 14px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:20px;color:var(--text-primary);font-size:14px}.chat-input-area input:focus{outline:none;border-color:var(--primary)}.chat-input-area button{width:38px;height:38px;border-radius:50%;background:var(--primary);border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;font-size:15px;flex-shrink:0}.chat-input-area button:hover{background:var(--primary-dark)}.nudge-btn{background:none;border:1px solid rgba(255,255,255,.15);color:var(--text-secondary);border-radius:6px;padding:4px 10px;cursor:pointer;font-size:14px;flex-shrink:0;transition:all .2s}.nudge-btn:hover:not(:disabled){background:#ffffff14;color:var(--text-primary)}.nudge-btn:disabled{opacity:.4;cursor:not-allowed}.nudge-shake{animation:nudgeShake .5s ease-in-out}@keyframes nudgeShake{0%,to{transform:translate(0)}10%,50%,90%{transform:translate(-6px)}30%,70%{transform:translate(6px)}}.empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-secondary)}.empty-state .icon{width:56px;height:56px;background:#ffffff0d;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;margin-bottom:14px;color:var(--primary)}.empty-state h3{font-size:15px;margin-bottom:6px}.empty-state p{font-size:13px}.friend-request-item{display:flex;align-items:center;gap:10px;padding:10px;background:#ffffff08;border-radius:8px;margin-bottom:6px}.friend-request-actions{display:flex;gap:6px;flex-shrink:0}.btn-accept{padding:5px 10px;background:var(--online);color:#fff;border:none;border-radius:4px;font-size:12px;cursor:pointer}.btn-reject{padding:5px 10px;background:var(--busy);color:#fff;border:none;border-radius:4px;font-size:12px;cursor:pointer}.notification{position:fixed;top:16px;right:16px;background:var(--bg-medium);border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:10px 14px;display:flex;align-items:center;gap:10px;z-index:1000;animation:slideIn .3s ease-out;box-shadow:0 4px 16px #0000004d}.notification .close{cursor:pointer;color:var(--text-secondary);font-size:14px}@keyframes slideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 900px){.sidebar{width:260px;min-width:260px}}@media (max-width: 640px){.main-layout{position:relative}.sidebar{width:100%;min-width:100%;position:fixed;top:0;left:0;bottom:0;z-index:10;height:auto}.sidebar.closed{display:none!important}.chat-area{position:fixed;top:0;left:0;right:0;bottom:0;z-index:20}.chat-area.closed{display:none!important}.back-btn{display:flex!important}.message{max-width:85%}.user-profile{padding:10px 12px}.sidebar-tabs{flex-shrink:0}input,textarea,select{font-size:16px!important}.chat-messages,.sidebar-content{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}}@media (max-width: 380px){.user-info h3{font-size:12px}.sidebar-tab{font-size:10px;padding:8px 2px}.contact-item{padding:6px 8px}.contact-avatar{width:30px;height:30px;font-size:12px}}.call-btn{background:none;border:none;cursor:pointer;font-size:16px;padding:5px 7px;border-radius:6px;transition:all .2s;color:var(--text-secondary);flex-shrink:0}.call-btn:hover:not(:disabled){background:#ffffff1a;color:var(--primary)}.call-btn:disabled{opacity:.3;cursor:not-allowed}.call-video-btn:hover:not(:disabled){color:var(--accent)}.contact-actions{display:flex;gap:2px;flex-shrink:0;opacity:0;transition:opacity .15s}.contact-item:hover .contact-actions{opacity:1}.chat-header-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.chat-header-actions .call-btn{font-size:18px;padding:5px 8px}.chat-header-actions .nudge-btn{margin-left:2px}.call-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;display:flex;align-items:center;justify-content:center}.incoming-call{background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fadeIn .3s ease-out}.call-modal{text-align:center;padding:40px;background:var(--bg-medium);border-radius:24px;border:1px solid rgba(255,255,255,.1);box-shadow:0 20px 60px #00000080;animation:callBounce 1.5s ease-in-out infinite;max-width:300px;width:90%}.call-avatar-large{width:90px;height:90px;border-radius:50%;margin:0 auto 16px;background:linear-gradient(135deg,var(--primary),var(--accent));display:flex;align-items:center;justify-content:center;font-size:36px;font-weight:700;position:relative}.call-avatar-large:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%;border:3px solid var(--primary);animation:callPulseRing 1.5s ease-in-out infinite}.call-caller-name{font-size:22px;font-weight:600;margin-bottom:6px}.call-type-label{color:var(--text-secondary);font-size:14px;margin-bottom:30px}.call-actions-incoming{display:flex;gap:20px;justify-content:center}.call-action-btn{display:flex;flex-direction:column;align-items:center;gap:6px;border:none;cursor:pointer;padding:14px 24px;border-radius:16px;transition:all .2s;color:#fff;min-width:80px}.call-action-icon{font-size:28px}.call-action-label{font-size:12px;font-weight:500}.call-accept{background:var(--online)}.call-accept:hover{background:#43a047;transform:scale(1.05)}.call-reject{background:var(--busy)}.call-reject:hover{background:#e53935;transform:scale(1.05)}@keyframes callBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes callPulseRing{0%,to{opacity:.4;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}.active-call{background:#000;flex-direction:column}.call-video-container{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.remote-video{width:100%;height:100%;object-fit:cover}.local-video{position:absolute;bottom:100px;right:20px;width:140px;height:105px;border-radius:12px;object-fit:cover;border:2px solid rgba(255,255,255,.2);z-index:10;background:#111}.call-info{position:absolute;top:30px;left:50%;transform:translate(-50%);text-align:center;z-index:10;background:#00000080;padding:10px 24px;border-radius:16px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.call-info h2{font-size:18px;font-weight:500}.call-timer{font-size:14px;color:var(--text-secondary);margin-top:2px}.call-controls{position:absolute;bottom:30px;left:50%;transform:translate(-50%);display:flex;gap:14px;z-index:10;background:#00000080;padding:12px 24px;border-radius:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.call-control-btn{width:50px;height:50px;border-radius:50%;border:none;cursor:pointer;font-size:20px;display:flex;align-items:center;justify-content:center;transition:all .2s;background:#ffffff26;color:#fff}.call-control-btn:hover{background:#ffffff40}.call-control-btn.active{background:var(--primary)}.call-end-btn{background:var(--busy)!important;width:56px;height:56px;font-size:22px}.call-end-btn:hover{background:#e53935!important;transform:scale(1.05)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.call-video-container:empty,.call-video-container video:not([src]){display:none}.active-call:not(:has(.remote-video[src])){background:linear-gradient(135deg,var(--bg-dark),var(--bg-medium))}@media (max-width: 640px){.call-modal{padding:30px 20px}.call-avatar-large{width:72px;height:72px;font-size:30px}.call-caller-name{font-size:18px}.call-actions-incoming{gap:16px}.call-action-btn{padding:12px 20px;min-width:70px}.call-action-icon{font-size:24px}.local-video{width:100px;height:75px;bottom:120px;right:12px}.call-controls{gap:10px;padding:10px 18px}.call-control-btn{width:44px;height:44px;font-size:18px}.call-end-btn{width:50px;height:50px;font-size:20px}}
