*{margin:0;padding:0}html,body,#root{height:100%}:root{--bg:#0f1117;--surface:#1a1d27;--surface-2:#252936;--border:#2e3345;--text:#e8eaef;--text-muted:#8b92a8;--accent:#6c5ce7;--accent-hover:#5b4cdb;--success:#00b894;--danger:#e17055;--own-bg:#2d3561;--radius:12px;--sidebar-width:220px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px)}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);min-height:100vh;margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif}#root{min-height:100vh}.login-screen{background:radial-gradient(ellipse at top, #1e2240 0%, var(--bg) 60%);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:20px;width:100%;max-width:400px;padding:2.5rem 2rem}.logo{width:min(100%,150px);height:auto;margin:0 auto .75rem;display:block}.subtitle{color:var(--text-muted);margin:0 0 2rem;font-size:.95rem}.login-card form{text-align:left;flex-direction:column;gap:1.25rem;display:flex}.field{flex-direction:column;gap:.45rem;display:flex}.field label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:.8rem;font-weight:600}.field-hint{color:var(--text-muted);opacity:.85;font-size:.75rem}.input-wrap{align-items:center;display:flex;position:relative}.input-icon{text-align:center;pointer-events:none;opacity:.75;z-index:1;width:1.35rem;font-size:.95rem;line-height:1;position:absolute;left:.85rem}.input-modern{border:1px solid var(--border);background:linear-gradient(180deg, #2a2f42 0%, var(--surface-2) 100%);width:100%;color:var(--text);letter-spacing:.02em;border-radius:14px;padding:.85rem 1rem .85rem 2.85rem;font-size:.95rem;transition:border-color .2s,box-shadow .2s,background .2s}.input-modern-key{padding-right:2.75rem}.input-modern::placeholder{color:#6b7289}.input-modern:hover{border-color:#3d4560}.input-modern:focus{border-color:var(--accent);background:#2a3044;outline:none;box-shadow:0 0 0 3px #6c5ce738}.input-toggle{cursor:pointer;opacity:.65;background:0 0;border:none;padding:.25rem;font-size:.95rem;line-height:1;position:absolute;right:.65rem}.input-toggle:hover{opacity:1}.form-error{color:#ff9f85;background:#e170551f;border:1px solid #e1705559;border-radius:10px;margin:0;padding:.65rem .85rem;font-size:.85rem}.login-card label{color:var(--text-muted);flex-direction:column;gap:.4rem;font-size:.85rem;display:flex}.btn-primary{background:linear-gradient(135deg, var(--accent) 0%, #5a4bd4 100%);color:#fff;cursor:pointer;border:none;border-radius:14px;margin-top:.25rem;padding:.85rem;font-size:1rem;font-weight:600;transition:filter .2s,transform .1s;box-shadow:0 4px 20px #6c5ce759}.btn-primary:hover:not(:disabled){filter:brightness(1.08)}.btn-primary:active:not(:disabled){transform:scale(.98)}.btn-primary:disabled{opacity:.65;cursor:not-allowed}.btn-unlock{letter-spacing:.04em}.chat-app{border-left:1px solid var(--border);border-right:1px solid var(--border);flex-direction:column;max-width:1200px;height:100vh;margin:0 auto;display:flex}.chat-header{border-bottom:1px solid var(--border);background:var(--surface);align-items:center;padding:.75rem 1.25rem .75rem 0;display:flex}.mobile-lock-bar{display:none}.header-logo{width:var(--sidebar-width);flex-shrink:0;justify-content:center;align-items:center;display:flex}.header-logo .logo-bg{display:inline-block}.header-logo-img{width:36px;height:auto;display:block}.logo-bg{background:radial-gradient(ellipse at center, #252b45 0%, var(--surface-2) 70%);border:1px solid var(--border);border-radius:12px;padding:.4rem .55rem;box-shadow:inset 0 1px #ffffff0f,0 2px 10px #0003}.header-actions{flex:1;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.btn-users-toggle{background:var(--surface-2);border:1px solid var(--border);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:8px;padding:.5rem .85rem;font-size:.85rem}.btn-users-toggle:hover{border-color:var(--accent);color:var(--accent)}.status{color:var(--text-muted);font-size:.8rem}.status.online{color:var(--success)}.btn-leave{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:8px;padding:.5rem 1rem}.btn-leave:hover{border-color:var(--danger);color:var(--danger)}.chat-body{flex:1;display:flex;overflow:hidden}.user-list{width:var(--sidebar-width);border-right:1px solid var(--border);background:var(--surface);flex-shrink:0;padding:1rem;overflow-y:auto}.user-list-top{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;margin-bottom:1rem;padding-bottom:1rem;display:flex}.user-list-lock{flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.user-list-lock-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:1rem;font-weight:700;overflow:hidden}.user-list-lock .status{text-align:right;flex-shrink:0;margin-left:auto;font-size:.7rem;font-weight:500}.user-list h3{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:0;font-size:.85rem}.user-list-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.25rem;font-size:1.1rem;display:none}.user-list ul{margin:0;padding:0;list-style:none}.user-list li{align-items:center;gap:.5rem;padding:.5rem 0;font-size:.9rem;display:flex}.user-list li.self .user-name{color:var(--accent)}.user-dot{background:var(--success);border-radius:50%;flex-shrink:0;width:8px;height:8px}.user-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.user-call-actions{flex-shrink:0;align-items:center;gap:.15rem;margin-left:auto;display:flex}.btn-call-icon{cursor:pointer;width:28px;height:28px;color:var(--text-muted);background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:color .2s,background .2s;display:inline-flex}.icon-call{width:16px;height:16px}.btn-call-audio:hover:not(:disabled){color:#74b9ff;background:#74b9ff1f}.btn-call-video:hover:not(:disabled){color:var(--success);background:#00b8941f}.btn-call-icon:disabled{opacity:.4;cursor:not-allowed}.user-hint{color:var(--text-muted);margin-top:1rem;font-size:.75rem;line-height:1.4}.chat-main{flex-direction:column;flex:1;min-width:0;display:flex}.message-list{flex-direction:column;flex:1;gap:.75rem;padding:1rem 1.25rem;display:flex;overflow-y:auto}.message{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);max-width:75%;padding:.65rem 1rem}.message.own{background:var(--own-bg);border-color:#3d4a7a;align-self:flex-end}.message.system{max-width:100%;color:var(--text-muted);background:0 0;border:none;align-self:center;padding:.25rem;font-size:.8rem}.message-meta{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.25rem;display:flex}.message-author{color:var(--accent);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.75rem;font-weight:600;overflow:hidden}.message.own .message-author{color:#a29bfe}.message-text{word-break:break-word;margin:0;line-height:1.45}.message-media{border-radius:8px;max-width:100%;max-height:280px;margin-top:.5rem;display:block}.message-time{color:var(--text-muted);text-align:right;flex-shrink:0;font-size:.65rem}.typing-indicator{color:var(--text-muted);margin:0;padding:0 1.25rem .25rem;font-size:.8rem;font-style:italic}.message-input{border-top:1px solid var(--border);background:var(--surface);gap:.5rem;padding:1rem 1.25rem;display:flex}.message-input input[type=text]{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);color:var(--text);flex:1;padding:.75rem 1rem;font-size:.95rem}.message-input input:focus{outline:2px solid var(--accent)}.btn-icon{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;width:44px;font-size:1.1rem}.btn-send{background:var(--accent);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:0 1.25rem;font-weight:600;display:inline-flex}.btn-send-icon{font-size:1.1rem;line-height:1;display:none}.btn-send:disabled{opacity:.5;cursor:not-allowed}.video-call-overlay{z-index:100;background:#000000d9;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.video-call-overlay.video-call-fullscreen{background:#000;padding:0}.video-call-panel{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:100%;max-width:900px;overflow:hidden}.video-call-panel.video-call-panel-fullscreen{background:#000;border:none;border-radius:0;width:100%;max-width:none;height:100%;position:fixed;inset:0}.audio-call-panel{text-align:center;max-width:360px}.audio-call-active{padding:2.5rem 1.5rem 1rem}.audio-call-avatar{margin-bottom:1rem;font-size:3rem}.audio-call-active p{color:var(--text-muted);margin:0}.audio-call-active strong{color:var(--text)}.audio-call-stream{display:none}.call-banner{text-align:center;background:var(--surface-2);padding:1.25rem}.call-banner.incoming{border-bottom:1px solid var(--border)}.call-banner-overlay{z-index:10;background:linear-gradient(#000000bf,#0000);border:none;padding:1.5rem 1rem 2.5rem;position:absolute;top:0;left:0;right:0}.call-banner-overlay p{color:#fff;margin-bottom:.75rem}.call-banner p{margin:0 0 1rem}.call-actions{justify-content:center;gap:1rem;display:flex}.btn-accept{background:var(--success);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.65rem 1.5rem;font-weight:600}.btn-accept:disabled{opacity:.5;cursor:not-allowed}.btn-reject,.btn-end{background:var(--danger);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.65rem 1.5rem;font-weight:600}.video-grid{background:#000;width:100%;height:100%;position:absolute;inset:0}.video-remote{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.video-remote.video-placeholder{width:100%;height:100%;position:absolute;inset:0}.video-local{object-fit:cover;z-index:5;background:#000;border:2px solid #ffffff59;border-radius:12px;width:min(140px,28vw);height:min(186px,37vw);max-height:28vh;position:absolute;bottom:5.5rem;right:1rem;box-shadow:0 4px 24px #0009}.video-placeholder{color:var(--text-muted);background:#111;justify-content:center;align-items:center;font-size:.85rem;display:flex}.video-local.video-placeholder{z-index:5;border-radius:12px;width:min(140px,28vw);height:min(186px,37vw);max-height:28vh;bottom:5.5rem;right:1rem}.video-hidden{opacity:0;pointer-events:none}.call-controls{background:var(--surface-2);justify-content:center;gap:1rem;padding:1rem;display:flex}.call-controls-overlay{z-index:10;padding:1.25rem 1rem max(1.25rem, env(safe-area-inset-bottom));background:linear-gradient(#0000,#000000d9);border:none;position:absolute;bottom:0;left:0;right:0}.call-controls button{color:#fff;cursor:pointer;background:#1e1e28e6;border:1px solid #fff3;border-radius:50%;width:52px;height:52px;font-size:1.25rem}.call-controls-overlay button:hover{background:#323241f2}.call-controls .btn-end{background:var(--danger);border-color:#0000;border-radius:26px;width:auto;padding:0 1.5rem;font-size:.9rem;font-weight:600}@media (width<=768px){.login-screen{padding:max(2rem, var(--safe-top)) 1rem max(1rem, var(--safe-bottom));align-items:flex-start}.login-card{border-radius:16px;margin:auto 0;padding:1.75rem 1.25rem}.input-modern{font-size:16px}.btn-primary,.input-toggle{min-width:44px;min-height:44px}.chat-app{border-left:none;border-right:none;height:100dvh;max-height:100dvh}.chat-header{padding:.5rem .75rem;padding-top:max(.5rem, var(--safe-top));padding-left:max(.75rem, var(--safe-left));padding-right:max(.75rem, var(--safe-right));gap:.5rem}.header-logo{flex:none;justify-content:flex-start;width:auto;padding-left:.25rem}.header-actions{flex:1;gap:.35rem;min-width:0}.btn-users-toggle{min-height:44px;padding:.5rem .65rem;font-size:.8rem}.btn-leave{min-height:44px;padding:.5rem .75rem;font-size:.85rem}.mobile-lock-bar{padding:.5rem .75rem;padding-left:max(.75rem, var(--safe-left));padding-right:max(.75rem, var(--safe-right));background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.5rem;display:flex}.mobile-lock-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.9rem;font-weight:700;overflow:hidden}.mobile-lock-bar .status{flex-shrink:0;font-size:.7rem}.user-list{z-index:50;width:min(300px,88vw);padding-top:max(1rem, var(--safe-top));padding-bottom:max(1rem, var(--safe-bottom));padding-left:max(1rem, var(--safe-left));transition:transform .25s;position:fixed;top:0;bottom:0;left:0;transform:translate(-110%);box-shadow:4px 0 24px #0006}.user-list.open{transform:translate(0)}.user-list-close{min-width:44px;min-height:44px;display:block}.sidebar-backdrop{z-index:40;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#00000080;border:none;position:fixed;inset:0}.user-list li{min-height:44px;padding:.65rem 0}.btn-call-icon{width:36px;height:36px}.message-list{-webkit-overflow-scrolling:touch;padding:.75rem}.message{max-width:88%}.message-media{max-height:220px}.typing-indicator{padding:0 .75rem .25rem}.message-input{padding:.65rem .75rem;padding-bottom:max(.65rem, var(--safe-bottom));padding-left:max(.75rem, var(--safe-left));padding-right:max(.75rem, var(--safe-right));gap:.4rem}.message-input input[type=text]{min-height:44px;font-size:16px}.btn-icon{flex-shrink:0;width:44px;height:44px}.btn-send{padding:0 .85rem}.btn-send-label{display:none}.btn-send-icon{display:inline}.call-banner{padding:1rem;padding-top:max(1rem, var(--safe-top))}.call-actions{flex-wrap:wrap}.btn-accept,.btn-reject,.btn-end{min-width:44px;min-height:44px}.video-local,.video-local.video-placeholder{bottom:max(5.5rem, calc(5rem + var(--safe-bottom)));right:max(.75rem, var(--safe-right));width:min(120px,32vw);height:min(160px,42vw)}}@media (width<=380px){.btn-users-toggle{padding:.45rem .5rem;font-size:.75rem}.btn-users-toggle .users-label-long{display:none}}
