:root{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#eef4ff;background:#09111f;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}.hidden{display:none!important}
.startup-splash{position:fixed;inset:0;z-index:3000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;background:radial-gradient(circle at top,#18375e,#09111f 65%);color:#eef4ff;text-align:center}.startup-splash .mark{width:64px;height:64px;border-radius:21px;font-size:32px;margin-bottom:4px;box-shadow:0 12px 36px #0005}.startup-splash strong{font-size:24px}.startup-splash small{color:#aab9cf;font-size:14px}
.auth{min-height:100dvh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at top,#18375e,#09111f 65%)}.auth-card{width:min(420px,100%);background:#111f34;border:1px solid #293d58;border-radius:24px;padding:26px}.brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}.mark{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:#2b86fa;font-size:25px;font-weight:800}.profile-avatar{width:48px;height:48px;border:0;padding:0;border-radius:16px;display:grid;place-items:center;background:#2b86fa;color:#fff;font-size:20px;font-weight:800;overflow:hidden;flex-shrink:0;cursor:pointer}.profile-avatar img,.avatar img{width:100%!important;height:100%!important;max-width:100%;max-height:100%;object-fit:cover;object-position:center;display:block}.avatar img{position:absolute;inset:0}.avatar.has-photo,.profile-avatar.has-photo{background:#132238}.auth h1{margin:0}.muted{color:#aab9cf}.tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0}.tabs button,.auth button{border:0;border-radius:12px;padding:12px;background:#203552;color:#eef4ff}.tabs .active,.primary{background:#2b86fa!important}.auth-link{width:100%;margin-top:8px;background:transparent!important;color:#9fc9ff!important;padding:8px!important}.recovery-code-box{margin:14px 0;padding:14px;border:1px dashed #4d78a9;background:#0c1728;border-radius:14px;font:700 17px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.06em;text-align:center;overflow-wrap:anywhere}.recovery-note{font-size:13px;color:#aab9cf;line-height:1.45;margin:8px 0 14px}.field{margin:12px 0}.field label{display:block;font-size:13px;color:#b7c5d9;margin-bottom:6px}.field input{width:100%;border:1px solid #354b68;background:#0c1728;color:#fff;border-radius:12px;padding:12px}.error{color:#ffb4b4;min-height:22px}
.app{height:100dvh;display:grid;grid-template-columns:330px 1fr;background:#0d1829}.sidebar{border-right:1px solid #26364d;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.side-head{padding:18px;border-bottom:1px solid #26364d;display:flex;align-items:center;gap:10px}.side-head .me{min-width:0;flex:1}.side-head strong,.side-head small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logout{border:1px solid #334965;background:#17283f;color:#fff;border-radius:10px;padding:8px 10px}.scroll{overflow-x:hidden;overflow-y:auto;flex:1 1 auto;min-height:0;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;touch-action:pan-y;padding-bottom:calc(12px + var(--safe-bottom))}.install-box{padding:12px 14px 2px}.install-app{width:100%;border:1px solid #31527a;background:#173153;color:#fff;border-radius:13px;padding:11px 12px;font-weight:650}.calls-nav{padding:10px 14px 2px}.calls-nav-btn{width:100%;border:1px solid #31527a;background:#142a46;color:#fff;border-radius:13px;padding:12px 14px;font-weight:700;display:flex;align-items:center;justify-content:space-between;gap:10px}.calls-nav-btn span:last-child{color:#91a9c6;font-size:18px}.section-head{padding:14px 14px 8px;display:flex;align-items:center;justify-content:space-between}.section-head span{font-size:12px;color:#8fa3be;text-transform:uppercase;letter-spacing:.08em}.new-group{border:0;background:#244f7e;color:#fff;border-radius:10px;padding:7px 10px}.user-search{padding:0 14px 10px}.user-search-form{display:flex;gap:8px}.user-search-form input{min-width:0;flex:1;border:1px solid #354b68;background:#0f1d30;color:#fff;border-radius:11px;padding:10px 11px}.user-search-form button{border:0;background:#244f7e;color:#fff;border-radius:11px;padding:9px 12px;font-weight:650}.user-search-result{margin-top:8px}.search-card{display:flex;align-items:center;gap:9px;border:1px solid #2a405d;background:#12243a;border-radius:13px;padding:8px}.search-main{min-width:0;flex:1;border:0;background:transparent;color:#fff;text-align:left;display:flex;align-items:center;gap:9px;padding:0}.search-main .txt{min-width:0;flex:1}.search-main strong,.search-main small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-add{border:0;background:#2b86fa;color:#fff;border-radius:10px;padding:8px 10px;white-space:nowrap}.search-add:disabled{background:#2c405b;color:#9eb0c8}.search-note{font-size:12px;color:#aab9cf;padding:4px 2px}.search-note.error{color:#ffaaaa}.list{padding:0 8px 8px}.call-list{padding:0 8px 4px}.call-log{display:flex;align-items:center;gap:8px;padding:7px 6px;border-radius:14px}.call-log:hover{background:#152a44}.call-log-main{min-width:0;flex:1;border:0;background:transparent;color:#fff;text-align:left;display:flex;align-items:center;gap:10px;padding:5px}.call-log-icon{width:40px;height:40px;border-radius:13px;background:#1b3658;display:grid;place-items:center;flex-shrink:0;font-size:18px}.call-log-icon.missed{background:#522934}.call-log-txt{min-width:0;flex:1}.call-log-txt strong,.call-log-txt small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.call-log-txt small{color:#8fa3be;margin-top:2px}.call-log-txt small.missed{color:#ff9999}.call-again{width:38px;height:38px;border:0;border-radius:12px;background:#203b5c;color:#fff;font-size:17px;flex-shrink:0}.item{width:100%;border:0;background:transparent;color:#fff;text-align:left;display:flex;gap:12px;align-items:center;padding:12px;border-radius:14px}.item:hover,.item.active{background:#1a304d}.avatar{width:44px;height:44px;min-width:44px;min-height:44px;max-width:44px;max-height:44px;aspect-ratio:1/1;border-radius:15px;background:#244f7e;display:grid;place-items:center;font-weight:700;flex:0 0 44px;overflow:hidden;position:relative}.group-avatar{background:#5a3d85}.item .txt{min-width:0;flex:1}.item strong,.item small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dot{width:9px;height:9px;border-radius:50%;background:#54647b}.dot.on{background:#45d78e}.chat-badges{display:flex;align-items:center;gap:6px;flex:0 0 auto}.chat-mute-icon{font-size:14px;opacity:.75}.unread-badge{min-width:21px;height:21px;padding:0 6px;border-radius:999px;background:#2b86fa;color:#fff;display:grid;place-items:center;font-size:11px;font-weight:800;line-height:1}.item.active .unread-badge{background:#61a8ff}.mute-dialog{width:min(92vw,390px)}.mute-options{display:grid;gap:9px;margin-top:14px}.mute-options button{border:0;border-radius:13px;padding:13px 14px;background:#1d3553;color:#fff;text-align:left;font-weight:700}.mute-options button.active{background:#285f9f}.mute-options button.unmute{background:#4d3340}
.chat{display:flex;flex-direction:column;min-width:0;min-height:0}.chat-head{height:74px;padding:14px 20px;display:flex;align-items:center;gap:12px;border-bottom:1px solid #26364d}.back{display:none;border:0;background:#1b2e49;color:white;border-radius:11px;width:42px;height:42px}.chat-title{min-width:0;flex:1}.chat-title strong,.chat-title small{display:block}.call-actions{display:flex;gap:8px}.call-btn{width:42px;height:42px;border:0;border-radius:13px;background:#1b3658;color:#fff;font-size:20px}.call-btn:disabled{opacity:.4}.messages{flex:1;overflow:auto;padding:20px;display:flex;flex-direction:column;gap:10px;background:radial-gradient(ellipse at top,#132944,transparent 72%);background-position:center;background-repeat:no-repeat}.messages.chat-photo-bg{background-image:linear-gradient(#07101e88,#07101e88),var(--chat-bg-image);background-size:cover;background-position:center;background-repeat:no-repeat}.chat-background-dialog{width:min(92vw,430px)}.chat-background-preview{height:180px;border-radius:16px;background:#0f1d30 center/cover no-repeat;border:1px solid #334965;margin:12px 0;display:grid;place-items:center;color:#8fa3be;overflow:hidden}.chat-background-actions{display:flex;gap:9px;flex-wrap:wrap}.chat-background-actions button{flex:1;min-width:120px;border:0;border-radius:12px;padding:11px 12px;background:#244f7e;color:#fff;font-weight:700}.chat-background-actions .remove{background:#70404a}.empty{margin:auto;text-align:center;color:#9fb0c8;max-width:320px}.bubble{max-width:min(78%,560px);padding:10px 13px;border-radius:17px 17px 17px 5px;background:#1c2d45;align-self:flex-start;white-space:pre-wrap;overflow-wrap:anywhere}.bubble.mine{align-self:flex-end;background:#2565b5;border-radius:17px 17px 5px 17px}.bubble.media-only{padding:0;background:transparent!important;border-radius:0;max-width:min(82%,560px);overflow:visible}.bubble.media-only .meta{margin-top:5px;padding:0 4px;color:#8fa4c1}.bubble.media-only.mine .meta{justify-content:flex-end}.bubble.media-only:not(.mine) .meta{justify-content:flex-start}.bubble.media-only .sender{margin:0 4px 5px}.bubble.circle-only{max-width:min(72vw,270px)}.bubble.voice-only{max-width:min(82vw,340px)}.sender{font-size:12px;font-weight:700;color:#8ec4ff;margin-bottom:4px}.meta{display:flex;justify-content:flex-end;align-items:center;gap:5px;margin-top:4px;font-size:11px;color:#c1d1e7}.message-action{border:0;background:transparent;color:#c9d7ea;font-size:14px;padding:2px 4px;border-radius:7px}.forwarded-label{display:block;margin-bottom:4px;color:#8ec4ff;font-size:12px;font-weight:700}.reply-preview{display:flex;align-items:center;gap:10px;padding:8px 18px;background:#101e31;border-top:1px solid #26364d}.reply-preview-copy{min-width:0;flex:1;border-left:3px solid #2b86fa;padding-left:10px}.reply-preview-copy strong,.reply-preview-copy span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reply-preview-copy strong{font-size:12px;color:#8ec4ff}.reply-preview-copy span{font-size:13px;color:#cbd8ea;margin-top:2px}.reply-preview button{border:0;background:#263a56;color:#fff;border-radius:10px;width:32px;height:32px;flex:0 0 32px}.reply-quote{display:block;width:100%;border:0;border-left:3px solid #66aaff;border-radius:8px;background:#ffffff0e;color:#dbeaff;text-align:left;padding:7px 9px;margin:0 0 7px;cursor:pointer}.reply-quote strong,.reply-quote span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reply-quote strong{font-size:11px;color:#9fd0ff}.reply-quote span{font-size:12px;opacity:.9;margin-top:2px}.forward-dialog{width:min(92vw,460px)}.forward-list{display:grid;gap:8px;max-height:58dvh;overflow:auto;margin-top:12px}.forward-target{display:flex;align-items:center;gap:10px;width:100%;border:0;border-radius:13px;padding:10px 12px;background:#17283f;color:#fff;text-align:left}.forward-target .avatar{flex:0 0 auto}.forward-target .txt{min-width:0;display:flex;flex-direction:column}.forward-target small{color:#8fa3be}.message-action:hover{background:#ffffff14}.message-action.danger{color:#ffb4bc}.deleted-note{font-style:italic;color:#9aaac0}.bubble.deleted-message{background:#162439}.bubble.deleted-message.mine{background:#1d385f}.restore-action{border:0;border-radius:9px;padding:5px 8px;background:#244f7e;color:#fff;font-size:11px}.receipt.read{color:#8ec4ff;font-weight:700}.receipt.waiting{opacity:.82}.receipt.sending{opacity:.9}.receipt.failed{font-weight:700}.bubble.outbox-pending{opacity:.9}.bubble.outbox-pending .message-action{display:none}.mention{display:inline-block;padding:0 3px;border:0;border-radius:5px;background:#2b86fa33;color:#9fd0ff;font:inherit;font-weight:700;line-height:inherit;cursor:pointer;vertical-align:baseline}.mention:hover,.mention:active{background:#2b86fa55;color:#c6e3ff}.mention:disabled{opacity:.65;cursor:wait}.bubble.mentioned-me{outline:2px solid #4a9cff;outline-offset:2px;box-shadow:0 0 0 3px #4a9cff22}.mentioned-me-label{display:block;margin-bottom:5px;color:#9fd0ff;font-size:12px;font-weight:800}.message-search-dialog{width:min(92vw,520px)}.message-search-form{display:flex;gap:8px;margin:12px 0}.message-search-form input{min-width:0;flex:1;border:1px solid #354b68;background:#0f1d30;color:#fff;border-radius:11px;padding:11px 12px}.message-search-form button{border:0;border-radius:11px;padding:0 14px;background:#244f7e;color:#fff;font-weight:700}.message-search-results{max-height:52dvh;overflow:auto;display:grid;gap:8px}.message-search-result{border:0;border-radius:12px;padding:10px 12px;background:#17283f;color:#fff;text-align:left}.message-search-result small{display:block;color:#8fa3be;margin-top:4px}.bubble.search-hit{outline:2px solid #4a9cff;outline-offset:2px}.bubble time{font-size:11px;color:inherit}.pending-file{display:flex;align-items:center;gap:10px;padding:8px 18px;background:#101e31;border-top:1px solid #26364d;color:#cbd8ea}.pending-file span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pending-file button{border:0;background:#263a56;color:#fff;border-radius:10px;width:32px;height:32px}.composer{display:flex;gap:10px;align-items:flex-end;padding:12px 18px calc(12px + var(--safe-bottom));border-top:1px solid #26364d}.composer textarea{flex:1;min-width:0;resize:none;max-height:120px;min-height:48px;overflow-y:hidden;box-sizing:border-box;border:1px solid #354b68;background:#15263d;color:#fff;border-radius:18px;padding:12px 14px;font-size:16px;line-height:1.35}.composer.has-text .record-btn{display:none}.attach,.send,.record-btn{width:48px;height:48px;border:0;border-radius:15px;color:white;font-size:22px;flex-shrink:0}@media(max-width:600px){.composer{gap:8px;padding:10px 10px calc(10px + var(--safe-bottom))}.composer textarea{padding:11px 13px}.attach,.send,.record-btn{width:46px;height:46px;border-radius:14px}}.attach,.record-btn{background:#203552}.record-btn.active{background:#8a3845}.send{background:#2b86fa}.send:disabled,.attach:disabled,.record-btn:disabled{opacity:.4}.recording-panel{display:flex;align-items:center;gap:12px;padding:12px 18px;border-top:1px solid #26364d;background:#0f1c2e}.recording-panel.video-recording{flex-direction:column;padding:18px}.recording-panel.video-recording .recording-preview-wrap{width:min(62vw,240px);height:min(62vw,240px);flex:0 0 auto;border:4px solid #2b86fa55;box-shadow:0 10px 34px #0008}.recording-panel.video-recording .recording-info{text-align:center}.recording-panel.video-recording .recording-actions{justify-content:center;width:100%}.recording-preview-wrap{position:relative;width:76px;height:76px;flex:0 0 76px;display:grid;place-items:center;border-radius:50%;background:#17283f;overflow:hidden}.recording-preview{width:100%;height:100%;object-fit:cover;border-radius:50%;background:#050b14;transform:scaleX(-1)}.record-switch-action{background:#29486d!important}.record-switch-action:disabled{opacity:.45}.recording-audio-icon{font-size:32px;animation:recordPulse 1.2s ease-in-out infinite}.recording-waveform{width:min(34vw,180px);height:52px;flex:0 0 auto;border-radius:12px;background:#15263d}.recording-panel.video-recording .recording-waveform{display:none}.recording-info{min-width:0;flex:1}@keyframes recordPulse{0%,100%{transform:scale(1);opacity:.75}50%{transform:scale(1.16);opacity:1}}.recording-info strong,.recording-info small{display:block}.recording-info small{margin-top:4px;color:#aab9cf}.recording-actions{display:flex;gap:8px}.recording-actions button{border:0;border-radius:12px;padding:10px 12px;color:#fff;background:#203552;font-weight:700}.recording-actions .record-send{background:#2b86fa}.recording-actions .record-cancel{background:#70404a}.attachment-img{display:block;max-width:min(100%,360px);max-height:360px;border-radius:12px;margin-top:6px;object-fit:cover}.voice-message{display:flex;align-items:center;gap:9px;width:min(330px,78vw);max-width:100%;min-height:54px;padding:8px 10px;border:1px solid #304967;border-radius:16px;background:#13243a;white-space:normal}.voice-play{width:38px;height:38px;flex:0 0 38px;border:0;border-radius:50%;display:grid;place-items:center;background:#2b86fa;color:#fff;font-size:17px;padding:0 0 0 2px}.voice-message.playing .voice-play{padding-left:0}.voice-main{min-width:0;flex:1;display:grid;gap:5px}.voice-wave{height:28px;display:flex;align-items:center;gap:2px;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none}.voice-bar{width:3px;min-width:2px;flex:1;max-width:4px;border-radius:999px;background:#7890ad;opacity:.58;transition:background .1s,opacity .1s}.voice-bar.played{background:#56a5ff;opacity:1}.voice-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.voice-time{font-size:11px;color:#9fb0c8;font-variant-numeric:tabular-nums;white-space:nowrap}.voice-speed{border:0;border-radius:999px;padding:4px 7px;background:#203b5c;color:#dcecff;font-size:11px;font-weight:800;line-height:1;min-width:38px}.bubble.mine .voice-message{background:#194b83;border-color:#3c79bb}.bubble.mine .voice-bar{background:#a9c8e8;opacity:.62}.bubble.mine .voice-bar.played{background:#fff;opacity:1}.bubble.mine .voice-time{color:#d4e7fb}.bubble.mine .voice-speed{background:#ffffff20;color:#fff}.circle-message-wrap{display:flex;align-items:flex-end;gap:8px}.circle-player{position:relative;width:min(250px,64vw);height:min(250px,64vw);max-width:250px;max-height:250px;aspect-ratio:1/1;border-radius:50%;overflow:hidden;background:#050b14;cursor:pointer;user-select:none;-webkit-user-select:none;flex:0 0 auto}.video-circle-message{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%;background:#050b14;margin:0;box-shadow:none;outline:0}.circle-play{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:72px;height:72px;border:0;border-radius:50%;background:#f2f2f2e8;color:#6b6b6b;font-size:34px;display:grid;place-items:center;padding-left:5px;box-shadow:0 4px 18px #0005}.circle-player.playing .circle-play{opacity:0;pointer-events:none}.circle-duration{padding:0 0 7px;color:#9fb0c8;font-size:13px;font-weight:700;line-height:1;white-space:nowrap}.attachment-file{display:flex;gap:8px;align-items:center;margin-top:6px;padding:10px 12px;border-radius:12px;background:#101d2f;color:#dcecff;text-decoration:none}.attachment-file small{opacity:.75}.welcome{margin:auto;text-align:center;color:#9fb0c8}.welcome .mark{margin:0 auto 16px}.call-overlay{position:fixed;inset:0;z-index:1000;background:#07101eeF;display:flex;align-items:center;justify-content:center;padding:18px}.call-shell{position:relative;width:min(100%,760px);height:min(88dvh,760px);border:1px solid #2b405c;border-radius:26px;background:#0b1728;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 70px #0008}.call-stage{position:relative;flex:1;min-height:0;background:#050b14;display:grid;place-items:center;overflow:hidden}.call-backdrop{position:absolute;inset:-5%;width:110%;height:110%;object-fit:cover;filter:blur(24px) brightness(.48);transform:scale(1.04);opacity:.9;pointer-events:none}.call-backdrop.fallback{inset:0;width:100%;height:100%;object-fit:contain;padding:18%;filter:none;transform:none;opacity:.22;background:#0b1728}.remote-video{position:relative;z-index:2;width:100%;height:100%;object-fit:cover;background:transparent;transition:transform .18s ease,border-radius .18s ease}.local-video{position:absolute;right:14px;top:14px;width:min(30%,180px);aspect-ratio:3/4;object-fit:cover;border-radius:16px;border:2px solid #ffffff55;background:#101a29;box-shadow:0 8px 25px #0008;transition:width .18s ease,max-width .18s ease}.local-video.mirrored{transform:scaleX(-1)}.video-size-btn{font-weight:800}.call-avatar{position:absolute;z-index:4;width:112px;height:112px;border-radius:36px;background:#244f7e;display:grid;place-items:center;font-size:40px;font-weight:700;overflow:hidden;box-shadow:0 8px 28px #0008}.call-avatar img{width:100%;height:100%;object-fit:cover;display:block}.local-video{z-index:5}.call-info{position:absolute;z-index:6;left:0;right:0;bottom:24px;text-align:center;text-shadow:0 2px 8px #000}.call-info strong{display:block;font-size:24px}.call-info .call-meta{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:5px}.call-info span{display:block;color:#c8d6e8}.call-ping{font-size:11px!important;line-height:1;padding:4px 7px;border-radius:999px;background:#07101e99;border:1px solid #ffffff24;color:#dce9f8!important;font-variant-numeric:tabular-nums;text-shadow:none;white-space:nowrap}.call-ping.good{background:#163d2bcc;border-color:#49d98b66;color:#8ff0b9!important}.call-ping.medium{background:#4a3a16cc;border-color:#efc35f66;color:#ffe08a!important}.call-ping.poor{background:#54252dcc;border-color:#ff7b8866;color:#ffadb5!important}.call-ping.checking{background:#1c314dcc;border-color:#6f91ba55;color:#bed1e8!important}.call-controls{display:flex;justify-content:center;gap:12px;padding:16px;background:#0e1b2d;flex-wrap:wrap}.round-call{width:56px;height:56px;border:0;border-radius:50%;background:#223955;color:#fff;font-size:23px}.round-call.off{background:#844047}.round-call.sharing{background:#247d5a;box-shadow:0 0 0 3px #45d78e33}.round-call.end{background:#d7424b}.ear-lock{position:fixed;inset:0;z-index:1400;background:#000;display:flex;align-items:center;justify-content:center;padding:28px;touch-action:none;user-select:none;-webkit-user-select:none}.ear-lock-box{text-align:center;color:#8a8a8a;max-width:300px}.ear-lock-box .ear-icon{font-size:42px;display:block;margin-bottom:14px;opacity:.55}.ear-lock-box strong{display:block;color:#bcbcbc;font-size:18px;margin-bottom:8px}.ear-lock-box small{display:block;line-height:1.45;color:#777}.ear-lock.holding .ear-lock-box strong{color:#fff}.incoming-actions{display:flex;justify-content:center;gap:28px;padding:18px;background:#0e1b2d}.incoming-actions button{width:68px;height:68px;border:0;border-radius:50%;color:#fff;font-size:27px}.accept-call{background:#2da96a}.reject-call{background:#d7424b}.media-permission{padding:12px 16px 16px;background:#0e1b2d;text-align:center}.media-permission button{border:0;border-radius:12px;padding:12px 16px;background:#244f7e;color:#fff}.media-permission small{display:block;margin-top:8px;color:#9fb0c8}
.call-invite-action-wrap{
  display:flex;
  justify-content:center;
  padding:10px 16px 0;
  background:#0e1b2d
}
.call-invite-action{
  width:min(100%,320px);
  min-height:46px;
  border:1px solid #4f82bd;
  border-radius:14px;
  background:#1d4f7f;
  color:#fff;
  font-size:15px;
  font-weight:800;
  box-shadow:0 5px 18px #0004
}
.call-invite-action:active{transform:scale(.99)}
.call-invite-action:disabled{opacity:.55}
.group-call-invite-wrap{
  display:flex;
  justify-content:center;
  padding:8px 14px 0;
  background:#0d1a2c;
  border-top:1px solid #26364d
}
.group-call-invite-action{
  width:min(100%,340px);
  min-height:44px;
  border:1px solid #4f82bd;
  border-radius:14px;
  background:#1d4f7f;
  color:#fff;
  font-size:14px;
  font-weight:800
}
.group-call-overlay{position:fixed;inset:0;z-index:1100;background:#07101e;display:flex;flex-direction:column}.group-call-head{display:flex;align-items:center;gap:12px;padding:calc(14px + var(--safe-top)) 18px 14px;border-bottom:1px solid #26364d;background:#0d1a2c}.group-call-head div{min-width:0;flex:1}.group-call-head strong,.group-call-head small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-size-controls{display:flex!important;flex:0 0 auto!important;gap:7px;align-items:center}.group-size-controls button{width:38px;height:38px;border:0;border-radius:11px;background:#203552;color:#fff;font-size:22px;font-weight:800}.group-size-controls button:disabled{opacity:.35}.group-call-grid{--tile-min:170px;--tile-height:190px;flex:1;min-height:0;overflow:auto;padding:12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--tile-min)),1fr));grid-auto-rows:var(--tile-height);align-content:start;gap:10px}.group-tile{position:relative;min-height:0;height:100%;border-radius:18px;overflow:hidden;background:#13243a;border:1px solid #2a3e59;display:grid;place-items:center;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease,height .18s ease}.group-call-grid.has-focus{display:flex;align-items:stretch;justify-content:center;overflow:hidden;padding:10px 10px 6px}.group-call-grid.has-focus .group-tile{display:none}.group-call-grid.has-focus .group-tile.focused{display:grid;width:100%;height:100%!important;min-height:260px!important;max-width:100%;border-radius:20px!important;box-shadow:0 12px 34px #0007}.group-call-strip{flex:0 0 auto;display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;padding:7px 10px 9px;background:#0a1626;border-top:1px solid #20324a;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.group-call-strip.hidden{display:none!important}.group-call-strip .group-tile{flex:0 0 112px;width:112px;height:86px;min-height:86px;border-radius:14px;scroll-snap-align:start}.group-call-strip .group-tile .tile-avatar{width:48px;height:48px;border-radius:16px;font-size:18px}.group-call-strip .group-tile .tile-name{font-size:10px;bottom:4px;left:5px;right:5px;padding:3px 5px}.group-call-strip .group-tile video{width:100%;height:100%;object-fit:cover}.group-tile.focused{border-color:#5e9fff}.group-tile.speaking{border-color:#49d98b;box-shadow:0 0 0 3px #49d98b55,0 0 26px #49d98b33;transform:scale(1.01)}.group-tile video{width:100%;height:100%;object-fit:cover;background:#050b14}.group-tile video.local-mirrored{transform:scaleX(-1)}.group-tile .tile-avatar{width:76px;height:76px;border-radius:25px;background:#244f7e;display:grid;place-items:center;font-size:26px;font-weight:700}.group-tile .tile-name{position:absolute;left:10px;right:10px;bottom:8px;padding:5px 8px;border-radius:9px;background:#0008;color:#fff;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-tile .tile-muted{position:absolute;right:9px;top:9px;border-radius:50%;background:#0009;padding:6px;font-size:13px}.group-call-controls{display:flex;justify-content:center;gap:14px;padding:14px 16px calc(14px + var(--safe-bottom));border-top:1px solid #26364d;background:#0d1a2c}.group-call-controls button{width:56px;height:56px;border:0;border-radius:50%;background:#223955;color:#fff;font-size:23px}.group-call-controls button.off{background:#844047}.group-call-controls button.sharing{background:#247d5a;box-shadow:0 0 0 3px #45d78e33}.group-call-controls button.end{background:#d7424b}dialog{width:min(92vw,460px);border:1px solid #334965;border-radius:20px;background:#111f34;color:#fff;padding:20px}.chat-menu-dialog{width:min(92vw,420px)}.chat-menu-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}.chat-menu-head h2{margin:0;font-size:21px}.chat-menu-close{width:40px;height:40px;border:0;border-radius:12px;background:#203552;color:#fff;font-size:22px}.chat-menu-actions{display:grid;gap:9px;margin-top:16px}.chat-menu-actions button{border:0;border-radius:13px;padding:13px 14px;background:#1d3553;color:#fff;text-align:left;font-size:15px;font-weight:700}.chat-menu-actions button.danger{background:#6f2f3c}.blacklist-dialog{width:min(92vw,460px)}.blacklist-list{display:grid;gap:8px;max-height:58dvh;overflow:auto;margin-top:12px}.blacklist-entry{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:13px;background:#17283f}.blacklist-entry .avatar{flex:0 0 auto}.blacklist-entry .txt{min-width:0;flex:1;display:flex;flex-direction:column}.blacklist-entry small{color:#8fa3be}.blacklist-entry button{border:0;border-radius:10px;padding:9px 11px;background:#244f7e;color:#fff;font-weight:700}.chat-menu-actions button:active{transform:scale(.99)}.calls-dialog{width:min(94vw,620px);max-height:min(88dvh,820px);padding:0;overflow:hidden}.calls-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 18px 12px;border-bottom:1px solid #2a3e59}.calls-dialog-head h2{margin:0;font-size:20px}.calls-dialog-close{width:40px;height:40px;border:0;border-radius:12px;background:#203552;color:#fff;font-size:22px}.calls-dialog-body{max-height:calc(88dvh - 72px);overflow:auto;padding:8px 10px 14px}dialog::backdrop{background:#000a}.member-list{max-height:300px;overflow:auto;margin:14px 0}.member-row{display:flex;align-items:center;gap:10px;padding:10px;border-radius:10px;background:#17283f;margin-bottom:8px}.member-row input{width:20px;height:20px}.group-members-dialog{width:min(94vw,560px);max-height:min(88dvh,780px);padding:0;overflow:hidden}.group-members-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px;border-bottom:1px solid #2a3e59}.group-members-head h2{margin:0;font-size:20px}.group-members-close{width:40px;height:40px;border:0;border-radius:12px;background:#203552;color:#fff;font-size:22px}.group-members-body{max-height:calc(88dvh - 78px);overflow:auto;padding:10px}.group-add-member{display:flex;gap:8px;padding:10px;border-bottom:1px solid #2a3e59;background:#101f33}.group-add-member input{min-width:0;flex:1;border:1px solid #354b68;background:#0f1d30;color:#fff;border-radius:11px;padding:10px 11px}.group-add-member button{border:0;background:#244f7e;color:#fff;border-radius:11px;padding:9px 12px;font-weight:700;white-space:nowrap}.group-add-member button:disabled{opacity:.5}.group-add-error{padding:0 12px 10px;color:#ffaaaa;background:#101f33;font-size:12px;min-height:0}.group-member-entry{display:flex;align-items:center;gap:10px;padding:10px;border-radius:14px;background:#14263d;margin-bottom:8px}.group-member-info{min-width:0;flex:1}.group-member-info strong,.group-member-info small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-member-meta{display:flex;gap:6px;align-items:center;margin-top:4px;flex-wrap:wrap}.role-badge{font-size:11px;padding:3px 7px;border-radius:999px;background:#294b73;color:#dcecff}.role-badge.owner{background:#6a4b1f;color:#ffe0a3}.role-badge.admin{background:#365a3d;color:#bcf1c4}.member-online{font-size:11px;color:#8fa3be}.member-online.on{color:#45d78e}.admin-action{border:0;border-radius:10px;padding:8px 10px;background:#244f7e;color:#fff;font-size:12px;white-space:nowrap}.admin-action.remove{background:#70404a}.admin-action:disabled{opacity:.5}.member-actions{display:flex;gap:8px;align-items:center;flex:0 0 auto}.admin-action,.kick-action{width:48px;height:48px;min-width:48px;padding:0;border:0;border-radius:14px;display:grid;place-items:center;color:#fff;font-size:23px;line-height:1;font-weight:700}.admin-action{background:#244f7e}.admin-action.remove{background:#6b4a1f}.kick-action{background:#8a2f3d}.admin-action:disabled,.kick-action:disabled{opacity:.45}.kick-action:disabled{opacity:.5}.dialog-actions{display:flex;gap:10px}.dialog-actions button{flex:1;border:0;border-radius:12px;padding:12px;color:#fff;background:#203552}.dialog-actions .primary{background:#2b86fa}.dialog-title{margin:0 0 8px}.group-name{width:100%;border:1px solid #354b68;background:#0c1728;color:#fff;border-radius:12px;padding:12px}
@media(max-width:720px){
.app{display:block;height:100dvh;overflow:hidden}.sidebar{height:100dvh;max-height:100dvh;min-height:0;overflow:hidden}.chat{height:100dvh;display:none}.app.chat-open .sidebar{display:none}.app.chat-open .chat{display:flex}.back{display:block}.side-head{padding-top:calc(18px + var(--safe-top))}.chat-head{height:auto;min-height:calc(74px + var(--safe-top));padding:calc(14px + var(--safe-top)) 20px 14px}
.call-overlay{padding:0;align-items:stretch;justify-content:stretch;overflow:hidden}
.call-shell{position:fixed;inset:0;width:100%;height:auto;max-height:none;border-radius:0;border:0;overflow:hidden;display:block}
.call-stage{position:absolute;inset:0;display:grid;place-items:center;padding-bottom:calc(156px + max(var(--safe-bottom),18px))}
.call-info{bottom:calc(170px + max(var(--safe-bottom),18px));padding:0 18px}
.call-info strong{font-size:22px}
.call-info span{font-size:15px}
.call-avatar{width:104px;height:104px;border-radius:32px;font-size:36px}
.incoming-actions{position:absolute;z-index:30;left:0;right:0;bottom:0;display:flex;justify-content:center;align-items:center;gap:64px;padding:18px 20px calc(24px + max(var(--safe-bottom),18px));background:linear-gradient(180deg,transparent,#0e1b2ddd 24%,#0e1b2d 58%)}
.incoming-actions button{width:72px;height:72px;flex:0 0 72px;font-size:30px;box-shadow:0 8px 24px #0007}
.call-controls{position:absolute;z-index:30;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,56px);justify-content:center;align-items:center;gap:10px 16px;padding:18px 14px calc(22px + max(var(--safe-bottom),18px));background:linear-gradient(180deg,transparent,#0e1b2ddd 18%,#0e1b2d 48%)}
.call-controls .round-call{width:56px;height:56px}
.media-permission{position:absolute;z-index:35;left:12px;right:12px;bottom:calc(112px + max(var(--safe-bottom),18px));border-radius:16px;background:#0e1b2df2}
.local-video{max-width:38vw;right:12px;top:calc(12px + var(--safe-top))}
}

.call-overlay.call-minimized,.group-call-overlay.call-minimized{transform:translateY(112vh);opacity:0;pointer-events:none}
.call-minimize{position:absolute;z-index:45;left:14px;top:calc(14px + var(--safe-top));width:48px;height:48px;border:0;border-radius:16px;background:#09111fcc;color:#fff;font-size:30px;line-height:1;display:grid;place-items:center;box-shadow:0 6px 24px #0007}
.call-mini{position:fixed;z-index:980;left:10px;right:10px;top:auto;bottom:calc(82px + var(--safe-bottom));min-height:62px;display:flex;align-items:center;gap:8px;padding:7px;border:1px solid #31527a;border-radius:18px;background:#10233bea;box-shadow:0 10px 30px #0009;backdrop-filter:blur(14px)}
.call-mini-main{min-width:0;flex:1;border:0;background:transparent;color:#fff;display:flex;align-items:center;gap:10px;text-align:left;padding:5px 7px}
.call-mini-icon{width:42px;height:42px;flex:0 0 42px;border-radius:14px;background:#247d5a;display:grid;place-items:center;font-size:20px}
.call-mini-copy{min-width:0;flex:1}.call-mini-copy strong,.call-mini-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.call-mini-copy strong{font-size:15px}.call-mini-copy small{color:#aac0d9;font-size:12px;margin-top:2px}
.call-mini-end{width:46px;height:46px;flex:0 0 46px;border:0;border-radius:50%;background:#d7424b;color:#fff;font-size:21px}
@media(max-width:720px){.call-mini{left:8px;right:8px}.group-call-head #groupCallBack{font-size:22px}}

.admin-dialog{width:min(96vw,820px);max-height:min(92dvh,900px);padding:0;overflow:hidden}
.admin-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px;border-bottom:1px solid #2a3e59}
.admin-head h2{margin:0;font-size:21px}.admin-head-actions{display:flex;gap:8px}.admin-head-actions button{width:40px;height:40px;border:0;border-radius:12px;background:#203552;color:#fff;font-size:20px}
.admin-body{max-height:calc(92dvh - 77px);overflow:auto;padding:14px}
.admin-status{font-size:12px;color:#8fa3be;margin:0 2px 12px}.admin-status.error{color:#ffaaaa}
.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.admin-card{min-width:0;border:1px solid #29415f;background:#14263d;border-radius:15px;padding:12px}
.admin-card small{display:block;color:#8fa3be;font-size:12px}.admin-card strong{display:block;font-size:21px;margin-top:5px;overflow-wrap:anywhere}.admin-card span{display:block;color:#aebfd4;font-size:11px;margin-top:4px}
.admin-section{margin-top:16px}.admin-section h3{margin:0 0 9px;font-size:15px;color:#dce8f8}
.admin-mask-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}
.admin-mask-choice{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:68px;border:1px solid #29415f;border-radius:12px;background:#14263d;color:#dce8f8;font:inherit;cursor:pointer}
.admin-mask-choice span{font-size:26px}.admin-mask-choice.active{border-color:#5db9ff;background:#1c4063;box-shadow:0 0 0 1px #5db9ff inset}
.admin-mask-choice:focus-visible{outline:2px solid #8bd1ff;outline-offset:2px}
.admin-services,.admin-users{display:grid;gap:7px}
.admin-service,.admin-user{display:flex;align-items:center;gap:10px;border-radius:13px;background:#17283f;padding:10px 12px}
.admin-service strong,.admin-user-copy{min-width:0;flex:1}.admin-user-copy strong,.admin-user-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-user-copy small{color:#8fa3be;margin-top:2px}
.admin-service-state{font-size:11px;font-weight:800;padding:4px 8px;border-radius:999px;background:#35445a;color:#d5deeb}.admin-service-state.active{background:#214f39;color:#aef0c8}.admin-service-state.bad{background:#65313a;color:#ffd1d6}
.admin-user-online{width:9px;height:9px;border-radius:50%;background:#55667e;flex:0 0 9px}.admin-user-online.on{background:#45d78e}.admin-user-edit{flex:0 0 auto;border:1px solid #31527a;background:#142a46;color:#dce8f8;border-radius:10px;width:36px;height:36px;padding:0;font-size:16px}.admin-user-edit:active{background:#21456f}
.admin-stats-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.admin-stats-head h3{margin:0}.admin-period-tabs{display:flex;gap:6px}.admin-period-tabs button{border:1px solid #31527a;background:#142a46;color:#aebfd4;border-radius:9px;padding:7px 10px;font-size:12px;font-weight:750}.admin-period-tabs button.active{background:#2b86fa;color:#fff;border-color:#2b86fa}
.admin-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.admin-chart-card{min-width:0;border:1px solid #29415f;background:#122238;border-radius:15px;padding:11px}.admin-chart-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:5px}.admin-chart-title strong{font-size:14px}.admin-chart-title span{font-size:12px;color:#9fb2ca;white-space:nowrap}.admin-chart-card svg{display:block;width:100%;height:165px;overflow:visible}.admin-chart-grid-line{stroke:#2a405c;stroke-width:1}.admin-chart-line{fill:none;stroke:#5da8ff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.admin-chart-area{fill:#5da8ff18}.admin-chart-dot{fill:#8bc1ff;stroke:#122238;stroke-width:2}.admin-chart-axis{fill:#8599b4;font-size:10px}.admin-chart-empty{display:grid;place-items:center;height:165px;color:#8196b2;font-size:12px}.admin-stats-note{display:block;color:#8196b2;font-size:11px;margin:9px 2px 0}
.admin-call-quality-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:9px}.admin-quality-card{border:1px solid #29415f;background:#122238;border-radius:13px;padding:10px;min-width:0}.admin-quality-card small{display:block;color:#8fa3be;font-size:11px}.admin-quality-card strong{display:block;margin-top:4px;font-size:17px;overflow-wrap:anywhere}.admin-call-quality-list{display:grid;gap:8px}.admin-call-quality-row{border:1px solid #29415f;background:#14263d;border-radius:14px;padding:11px}.admin-call-quality-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.admin-call-quality-head strong{min-width:0;overflow-wrap:anywhere}.admin-call-quality-head small{color:#8fa3be;white-space:nowrap}.admin-call-quality-meta{color:#9fb2ca;font-size:11px;margin-top:4px;overflow-wrap:anywhere}.admin-call-quality-metrics{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.admin-call-quality-metrics span{border-radius:999px;background:#1c3554;padding:5px 8px;font-size:11px;color:#dce8f8}.admin-call-quality-reason{margin-top:8px;font-size:11px;color:#d7b9c0}.admin-call-quality-empty{padding:14px;color:#8fa3be;text-align:center;border:1px dashed #29415f;border-radius:13px}.admin-client-error-list{display:grid;gap:8px}.admin-client-error-row{border:1px solid #3b4052;background:#151f31;border-radius:14px;padding:11px}.admin-client-error-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.admin-client-error-head strong{min-width:0;overflow-wrap:anywhere}.admin-client-error-head small{color:#8fa3be;white-space:nowrap}.admin-client-error-kind{display:inline-flex;margin-left:6px;border-radius:999px;padding:3px 6px;background:#6b3440;color:#ffd3d7;font-size:9px;font-weight:800;vertical-align:middle}.admin-client-error-message{margin-top:7px;color:#f0d7da;font-size:12px;line-height:1.4;overflow-wrap:anywhere}.admin-client-error-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.admin-client-error-meta span{border-radius:999px;background:#1c3554;padding:5px 8px;font-size:10px;color:#dce8f8}.admin-client-error-source{margin-top:7px;color:#aebfd3;font-size:10px;overflow-wrap:anywhere}.admin-client-error-stack{margin-top:8px}.admin-client-error-stack summary{cursor:pointer;color:#93bce8;font-size:11px}.admin-client-error-stack pre{max-height:180px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;background:#0c1523;border-radius:10px;padding:9px;color:#bbc9db;font-size:9px;line-height:1.35}.admin-client-error-context{margin-top:6px;color:#8297b1;font-size:10px;overflow-wrap:anywhere}
.edit-message-dialog{width:min(92vw,520px)}
.edit-message-dialog textarea{width:100%;min-height:130px;max-height:48dvh;resize:vertical;border:1px solid #354b68;background:#0f1d30;color:#fff;border-radius:14px;padding:12px 13px;margin:12px 0;line-height:1.4}
.edit-message-dialog .edit-hint{font-size:12px;color:#8fa3be;margin-top:4px}
.edited-label{font-size:10px;color:#9db1ca;white-space:nowrap}
.message-actions-dialog{width:min(92vw,430px);padding:0;overflow:hidden;border-radius:20px}.message-actions-head{padding:16px 16px 12px;border-bottom:1px solid #2a3e59}.message-actions-head strong{display:block;font-size:15px}.message-actions-head small{display:block;color:#91a5bf;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.message-actions-list{display:grid;padding:8px}.message-actions-list button{border:0;background:transparent;color:#fff;border-radius:12px;padding:13px 12px;text-align:left;font-size:15px;font-weight:700;display:flex;align-items:center;gap:10px}.message-actions-list button:hover,.message-actions-list button:active{background:#1d334f}.message-actions-list button.danger{color:#ffb8bd}.message-actions-list button.hidden{display:none}.message-actions-close{margin:0 8px 8px;border:1px solid #304866;background:#172a42;color:#dce8f8;border-radius:12px;padding:11px;font-weight:750}
.seen-dialog{width:min(92vw,460px);padding:0;overflow:hidden;border-radius:20px}.seen-list{display:grid;gap:7px;padding:12px;max-height:62dvh;overflow:auto}.seen-entry{display:flex;align-items:center;gap:10px;background:#17283f;border-radius:13px;padding:10px 12px}.seen-copy{min-width:0;flex:1}.seen-copy strong,.seen-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.seen-copy small{color:#8fa3be;margin-top:2px}.seen-empty{padding:24px;text-align:center;color:#8fa3be}.receipt-details{border:0;background:transparent;color:inherit;font:inherit;padding:0;cursor:pointer;text-decoration:none}.receipt-details:hover,.receipt-details:active{text-decoration:underline}.seen-entry.read .seen-copy small{color:#8ec4ff}.seen-entry.delivered .seen-copy small{color:#9fc8a9}.seen-entry.waiting .seen-copy small{color:#8fa3be}
.phone-contacts-dialog{width:min(94vw,520px)}
.phone-status{padding:12px 14px;border:1px solid #304866;background:#101f33;border-radius:13px;margin:10px 0 14px}
.phone-status strong,.phone-status small{display:block}
.phone-status small{margin-top:4px;color:#95a9c4;line-height:1.4}
.phone-link-grid{display:grid;gap:9px}
.phone-link-grid input{width:100%;border:1px solid #354b68;background:#0f1d30;color:#fff;border-radius:12px;padding:12px}
.phone-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.phone-actions button{border:0;border-radius:12px;padding:11px 13px;background:#244f7e;color:#fff;font-weight:700;flex:1;min-width:150px}
.phone-actions button.danger{background:#70404a}
.phone-actions button:disabled{opacity:.5}
.phone-sync-note{font-size:12px;color:#91a5bf;line-height:1.45;margin:10px 2px}
.phone-match-list{display:grid;gap:8px;max-height:38dvh;overflow:auto;margin-top:12px}
.phone-match{display:flex;align-items:center;gap:10px;width:100%;border:0;border-radius:13px;padding:10px 12px;background:#17283f;color:#fff;text-align:left}
.phone-match .txt{min-width:0;flex:1}
.phone-match strong,.phone-match small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.phone-match small{color:#91a5bf;margin-top:2px}
.bubble{cursor:pointer}
.menu-toggle{width:44px;height:44px;border:0;border-radius:13px;background:#17283f;color:#fff;font-size:24px;display:grid;place-items:center;flex:0 0 44px}
.drawer-backdrop{position:fixed;inset:0;z-index:1600;background:#0008;opacity:0;pointer-events:none;transition:opacity .2s ease}
.drawer-backdrop.open{opacity:1;pointer-events:auto}
.side-drawer{position:absolute;left:0;top:0;bottom:0;width:min(86vw,340px);background:#0e1b2d;border-right:1px solid #2b405c;box-shadow:16px 0 45px #0008;transform:translateX(-105%);transition:transform .22s ease;display:flex;flex-direction:column;padding:calc(14px + var(--safe-top)) 14px calc(14px + var(--safe-bottom))}
.drawer-backdrop.open .side-drawer{transform:translateX(0)}
.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 2px 14px;border-bottom:1px solid #26364d}.drawer-head strong{font-size:20px}.drawer-close{width:42px;height:42px;border:0;border-radius:12px;background:#203552;color:#fff;font-size:22px}
.drawer-menu{overflow:auto;display:grid;gap:9px;padding-top:14px}.drawer-menu button{width:100%;border:1px solid #31527a;background:#142a46;color:#fff;border-radius:13px;padding:13px 14px;font-weight:700;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:12px}.drawer-menu button.danger{background:#5f2c38;border-color:#77404c}.drawer-menu .install-box,.drawer-menu .calls-nav{padding:0}.drawer-menu .install-app,.drawer-menu .calls-nav-btn{margin:0}
.drawer-section{font-size:11px;color:#8196b2;text-transform:uppercase;letter-spacing:.08em;margin:8px 4px 0}.drawer-spacer{height:2px;background:#26364d;margin:4px 0}
body.drawer-open{overflow:hidden}
@media(max-width:650px){.admin-chart-grid{grid-template-columns:1fr}}
@media(max-width:560px){.admin-grid{grid-template-columns:1fr 1fr}.admin-card strong{font-size:18px}.admin-body{padding:10px}}

.group-tile{position:relative}
.tile-mic-status{
  position:absolute;
  z-index:8;
  top:8px;
  right:8px;
  min-width:30px;
  height:30px;
  padding:0 8px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  background:#8c2f3ccc;
  border:1px solid #ff9ba655;
  color:#fff;
  font-size:14px;
  font-weight:800;
  box-shadow:0 4px 14px #0007;
  pointer-events:none
}
.tile-mic-status.hidden{display:none!important}

.private-remote-mute{
  font-size:11px!important;
  line-height:1;
  padding:5px 8px;
  border-radius:999px;
  background:#8c2f3ccc;
  border:1px solid #ff9ba655;
  color:#fff!important;
  font-weight:800;
  text-shadow:none;
  white-space:nowrap
}

.bubble.swipe-reply-ready{touch-action:pan-y;position:relative;will-change:transform}
.swipe-reply-indicator{
  position:absolute;
  z-index:4;
  left:-42px;
  top:50%;
  width:32px;
  height:32px;
  margin-top:-16px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#2b86fa;
  color:#fff;
  font-size:17px;
  font-weight:900;
  box-shadow:0 5px 16px #0006;
  opacity:0;
  transform:scale(.72);
  transition:opacity .08s linear,transform .08s linear;
  pointer-events:none
}
.bubble.swipe-reply-threshold .swipe-reply-indicator{
  background:#3c9bff;
  box-shadow:0 5px 18px #2387ff66
}

.chat-gallery-dialog{
  width:min(96vw,820px);
  max-height:90dvh;
  padding:0;
  overflow:hidden
}
.chat-gallery-tabs{
  display:flex;
  gap:7px;
  padding:10px 12px;
  overflow-x:auto;
  border-bottom:1px solid #26364d
}
.chat-gallery-tabs button{
  flex:0 0 auto;
  border:1px solid #31527a;
  background:#142a46;
  color:#b8c9de;
  border-radius:999px;
  padding:8px 12px;
  font-size:13px;
  font-weight:750
}
.chat-gallery-tabs button.active{
  background:#2b86fa;
  color:#fff;
  border-color:#2b86fa
}
.chat-gallery-content{
  min-height:180px;
  max-height:calc(90dvh - 165px);
  overflow:auto;
  padding:12px
}
.chat-gallery-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(120px,1fr));
  gap:8px
}
.chat-gallery-media{
  position:relative;
  min-width:0;
  border-radius:14px;
  overflow:hidden;
  background:#101e31;
  border:1px solid #29415f
}
.chat-gallery-media img,
.chat-gallery-media video{
  display:block;
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  background:#050b14
}
.chat-gallery-media video{object-fit:contain}
.chat-gallery-meta{
  display:flex;
  justify-content:space-between;
  gap:8px;
  padding:7px 8px;
  color:#91a5bf;
  font-size:10px
}
.chat-gallery-list{display:grid;gap:8px}
.chat-gallery-row{
  min-width:0;
  padding:11px 12px;
  border:1px solid #29415f;
  border-radius:13px;
  background:#14263d
}
.chat-gallery-row strong,
.chat-gallery-row small{
  display:block;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis
}
.chat-gallery-row small{
  color:#91a5bf;
  margin-top:4px
}
.chat-gallery-row a{
  color:#9fd0ff;
  text-decoration:none;
  overflow-wrap:anywhere
}
.chat-gallery-row audio{
  width:100%;
  margin-top:8px
}
.chat-gallery-empty,
.chat-gallery-loading{
  padding:34px 12px;
  text-align:center;
  color:#91a5bf
}
.chat-gallery-more{
  width:calc(100% - 24px);
  margin:0 12px 12px;
  border:0;
  border-radius:12px;
  padding:11px 12px;
  background:#244f7e;
  color:#fff;
  font-weight:750
}

.group-call-meta-row{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  margin-top:3px
}
.group-call-meta-row #groupCallStatus{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis
}
.group-connection-quality{
  flex:0 0 auto;
  display:inline-flex!important;
  align-items:center;
  border-radius:999px;
  padding:4px 8px;
  font-size:10px!important;
  font-weight:800;
  line-height:1;
  border:1px solid transparent;
  text-shadow:none;
  white-space:nowrap
}
.group-connection-quality.good{
  background:#163d2bcc;
  border-color:#49d98b66;
  color:#8ff0b9!important
}
.group-connection-quality.medium{
  background:#4a3a16cc;
  border-color:#efc35f66;
  color:#ffe08a!important
}
.group-connection-quality.poor{
  background:#54252dcc;
  border-color:#ff7b8866;
  color:#ffadb5!important
}
.group-connection-quality.checking{
  background:#1c314dcc;
  border-color:#6f91ba55;
  color:#bed1e8!important
}
.tile-speaking-status{
  position:absolute;
  z-index:9;
  left:8px;
  top:8px;
  display:flex;
  align-items:center;
  gap:4px;
  border-radius:999px;
  padding:5px 8px;
  background:#17683fcc;
  border:1px solid #70ecaa77;
  color:#fff;
  font-size:11px;
  font-weight:850;
  line-height:1;
  box-shadow:0 4px 14px #0007;
  pointer-events:none
}
.group-tile.speaking{
  border-color:#49e593!important;
  box-shadow:0 0 0 3px #49e59388,0 0 30px #49e59355!important
}
.group-call-strip .tile-speaking-status{
  left:5px;
  top:5px;
  padding:4px 6px;
  font-size:9px
}
@media(max-width:600px){
  .group-call-meta-row{gap:5px}
  .group-connection-quality{padding:4px 6px;font-size:9px!important}
}

.tile-ping-status{
  position:absolute;
  z-index:8;
  right:8px;
  bottom:36px;
  padding:4px 7px;
  border-radius:999px;
  background:#07101eb8;
  border:1px solid #ffffff24;
  color:#dce9f8;
  font-size:10px;
  font-weight:750;
  line-height:1;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
  pointer-events:none;
  text-shadow:0 1px 4px #000
}
.tile-ping-status.good{background:#163d2bd9;border-color:#49d98b77;color:#9af2bf}.tile-ping-status.medium{background:#4a3a16d9;border-color:#efc35f77;color:#ffe08a}.tile-ping-status.poor{background:#54252dd9;border-color:#ff7b8877;color:#ffadb5}.tile-ping-status.checking{background:#1c314dd9;border-color:#6f91ba66;color:#bed1e8}
.group-call-strip .tile-ping-status{
  right:5px;
  bottom:28px;
  padding:3px 5px;
  font-size:8px
}

.live-call-duration{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  min-width:48px;
  padding:4px 7px;
  border-radius:999px;
  background:#07101e99;
  border:1px solid #ffffff24;
  color:#dce9f8!important;
  font-size:11px!important;
  font-weight:800;
  line-height:1;
  font-variant-numeric:tabular-nums;
  text-shadow:none;
  white-space:nowrap
}

/* Square participant tiles in group calls. */
.group-call-grid:not(.has-focus){
  grid-auto-rows:auto!important
}
.group-call-grid:not(.has-focus) .group-tile{
  aspect-ratio:1/1;
  height:auto!important;
  min-height:0!important
}
.group-call-strip .group-tile{
  flex:0 0 96px!important;
  width:96px!important;
  height:96px!important;
  min-height:96px!important;
  aspect-ratio:1/1
}
.group-call-grid.has-focus .group-tile.focused{
  width:min(100%,calc(100dvh - 205px),720px)!important;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:1/1;
  align-self:center
}

/* Movable self-preview in a private video call. */
.local-video{
  right:auto!important;
  touch-action:none;
  user-select:none;
  -webkit-user-select:none;
  cursor:grab
}
.local-video.dragging{
  cursor:grabbing;
  transition:none!important;
  box-shadow:0 10px 32px #000b
}

.item .draft-preview{
  color:#ffb65c!important;
  font-weight:700
}
.item.active .draft-preview{
  color:#ffd08a!important
}

.tile-network-quality{
  position:absolute;
  z-index:8;
  left:8px;
  bottom:36px;
  min-width:24px;
  height:24px;
  padding:0 5px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:#07101eb8;
  border:1px solid #ffffff24;
  font-size:11px;
  line-height:1;
  pointer-events:none;
  text-shadow:0 1px 4px #000
}
.group-call-strip .tile-network-quality{
  left:5px;
  bottom:28px;
  min-width:19px;
  height:19px;
  padding:0 3px;
  font-size:8px
}

.tile-admin-mute{
  position:absolute;
  z-index:10;
  right:8px;
  top:44px;
  width:30px;
  height:30px;
  border:1px solid #ff9ba655;
  border-radius:999px;
  display:grid;
  place-items:center;
  padding:0;
  background:#8c2f3ccc;
  color:#fff;
  font-size:14px;
  box-shadow:0 4px 14px #0007
}
.tile-admin-mute:disabled{opacity:.5}
.group-call-strip .tile-admin-mute{
  right:5px;
  top:31px;
  width:24px;
  height:24px;
  font-size:11px
}

/* Automatic VK/Meet-style layout for group calls. */
.group-size-controls{display:none!important}

.group-call-grid:not(.has-focus){
  --auto-cols:2;
  grid-template-columns:repeat(var(--auto-cols),minmax(0,1fr))!important;
  grid-auto-rows:auto!important;
  align-content:center!important;
  justify-content:center;
  overflow:auto
}
.group-call-grid:not(.has-focus) .group-tile{
  width:100%;
  max-width:100%;
  aspect-ratio:1/1;
  height:auto!important;
  min-height:0!important
}
.group-call-grid.layout-1:not(.has-focus){
  --auto-cols:1;
  padding-inline:max(12px,calc((100vw - min(68vw,68dvh,720px))/2))
}
.group-call-grid.layout-2:not(.has-focus){
  --auto-cols:2;
  padding-inline:max(10px,calc((100vw - min(94vw,900px))/2))
}
.group-call-grid.layout-3-4:not(.has-focus){
  --auto-cols:2
}
.group-call-grid.layout-5-6:not(.has-focus){
  --auto-cols:3
}
.group-call-grid.layout-7-9:not(.has-focus){
  --auto-cols:3
}
.group-call-grid.layout-10:not(.has-focus){
  --auto-cols:4
}

@media(max-width:900px){
  .group-call-grid.layout-5-6:not(.has-focus),
  .group-call-grid.layout-7-9:not(.has-focus),
  .group-call-grid.layout-10:not(.has-focus){
    --auto-cols:3
  }
}
@media(max-width:620px){
  .group-call-grid:not(.has-focus){
    gap:7px!important;
    padding:8px!important
  }
  .group-call-grid.layout-1:not(.has-focus){
    --auto-cols:1;
    padding-inline:max(10px,calc((100vw - min(86vw,58dvh))/2))!important
  }
  .group-call-grid.layout-2:not(.has-focus),
  .group-call-grid.layout-3-4:not(.has-focus),
  .group-call-grid.layout-5-6:not(.has-focus){
    --auto-cols:2
  }
  .group-call-grid.layout-7-9:not(.has-focus),
  .group-call-grid.layout-10:not(.has-focus){
    --auto-cols:3
  }
}
@media(orientation:landscape) and (max-height:620px){
  .group-call-grid.layout-5-6:not(.has-focus),
  .group-call-grid.layout-7-9:not(.has-focus){
    --auto-cols:3
  }
  .group-call-grid.layout-10:not(.has-focus){
    --auto-cols:5
  }
}

.group-call-grid.has-focus .group-tile.focused{
  animation:group-focus-in .22s ease-out
}
.group-call-strip:not(.hidden){
  animation:group-strip-in .2s ease-out
}
@keyframes group-focus-in{
  from{opacity:.72;transform:scale(.965)}
  to{opacity:1;transform:scale(1)}
}
@keyframes group-strip-in{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:translateY(0)}
}
@media(prefers-reduced-motion:reduce){
  .group-call-grid.has-focus .group-tile.focused,
  .group-call-strip:not(.hidden){
    animation:none
  }
}

.group-tile .tile-name{cursor:pointer}
.group-call-profile-dialog{
  width:min(92vw,390px);
  padding:22px;
  text-align:center;
  overflow:visible
}
.group-call-profile-close{
  position:absolute;
  right:12px;
  top:12px;
  width:38px;
  height:38px;
  border:0;
  border-radius:12px;
  background:#203552;
  color:#fff;
  font-size:22px
}
.group-call-profile-avatar{
  width:84px;
  height:84px;
  margin:4px auto 12px;
  border-radius:28px;
  overflow:hidden;
  background:#244f7e;
  display:grid;
  place-items:center;
  color:#fff;
  font-size:30px;
  font-weight:800
}
.group-call-profile-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block
}
.group-call-profile-dialog h2{
  margin:0;
  font-size:22px
}
.group-call-profile-tag{
  margin-top:4px;
  color:#9fc9ff;
  font-size:14px
}
.group-call-profile-status{
  margin-top:5px;
  color:#aab9cf;
  font-size:13px
}
.group-call-profile-stats{
  display:flex;
  justify-content:center;
  gap:7px;
  flex-wrap:wrap;
  margin:16px 0
}
.group-call-profile-stats span{
  border:1px solid #304967;
  background:#14263d;
  color:#dce9f8;
  border-radius:999px;
  padding:7px 9px;
  font-size:11px;
  font-weight:750
}
.group-call-profile-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px
}
.group-call-profile-actions button{
  border:0;
  border-radius:12px;
  padding:11px 10px;
  background:#244f7e;
  color:#fff;
  font-weight:750
}
.group-call-profile-actions button.danger{
  background:#7d3440
}
.group-call-profile-actions button.active{
  background:#2f7556;
  box-shadow:0 0 0 2px #62d99a44 inset
}
.tile-pin-status{
  position:absolute;
  z-index:11;
  left:8px;
  top:44px;
  width:30px;
  height:30px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:#245b45dd;
  border:1px solid #76e2ad66;
  color:#fff;
  font-size:14px;
  line-height:1;
  box-shadow:0 4px 14px #0007;
  pointer-events:none
}
.group-call-strip .tile-pin-status{
  left:5px;
  top:31px;
  width:24px;
  height:24px;
  font-size:11px
}

.call-tools{padding:12px 12px 4px}.call-tools button{width:100%;border:1px solid #31527a;background:#173153;color:#fff;border-radius:13px;padding:11px 12px;font-weight:750}
.call-preflight-dialog{width:min(92vw,520px)}.call-preflight-list{display:grid;gap:8px;margin:14px 0}.call-preflight-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:#14243a}.call-preflight-row strong{flex:1}.call-preflight-row small{color:#9fb0c8;text-align:right}.call-preflight-icon{width:24px;text-align:center}.call-preflight-summary{padding:11px 12px;border-radius:12px;background:#101e31;color:#d6e4f7}.call-preflight-actions{display:flex;gap:8px;justify-content:flex-end}.call-preflight-actions button{border:0;border-radius:11px;padding:10px 13px;background:#244f7e;color:#fff;font-weight:700}.call-preflight-actions button:disabled{opacity:.5}

.sessions-dialog{width:min(92vw,520px)}.sessions-list{display:grid;gap:9px;margin:14px 0;max-height:58dvh;overflow:auto}.session-row{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:13px;background:#14243a}.session-row .session-main{min-width:0;flex:1}.session-row strong,.session-row small{display:block}.session-row small{color:#9fb0c8;margin-top:3px}.session-current{font-size:11px;padding:4px 7px;border-radius:999px;background:#1f6b4b;color:#bdf4d4}.session-end{border:0;border-radius:10px;padding:8px 10px;background:#6f3340;color:#fff;font-weight:700}.sessions-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.sessions-actions button{border:0;border-radius:11px;padding:10px 12px;background:#244f7e;color:#fff;font-weight:700}.sessions-actions .danger{background:#6f3340}

/* Keep people fully visible in the main group-call area. */
.group-call-grid .group-tile video{
  width:100%;
  height:100%;
  object-fit:contain!important;
  object-position:center center;
  background:#050b14
}

/* Compact participant strip can stay edge-to-edge. */
.group-call-strip .group-tile video{
  object-fit:cover!important;
  object-position:center center
}


/* v99: focused group-call participant uses the available portrait area instead of a square crop. */
.group-call-grid.has-focus .group-tile.focused{
  width:100%!important;
  max-width:100%!important;
  height:100%!important;
  min-height:0!important;
  aspect-ratio:auto!important;
  align-self:stretch!important;
  background:#050b14
}
.group-call-grid.has-focus .group-tile.focused video,
.group-call-grid:not(.has-focus) .group-tile video,
.group-call-strip .group-tile video{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center center!important;
  background:#050b14!important
}


/* v100: focused group participant behaves like the 1-to-1 call stage. */
.group-call-overlay.group-focused-mode{
  overflow:hidden
}
.group-call-overlay.group-focused-mode .group-call-grid.has-focus{
  position:absolute;
  inset:0;
  z-index:1;
  width:100%;
  height:100%;
  padding:0!important;
  margin:0;
  overflow:hidden;
  background:#050b14
}
.group-call-overlay.group-focused-mode .group-call-grid.has-focus .group-tile.focused{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-width:none!important;
  aspect-ratio:auto!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  transform:none!important;
  background:#050b14
}
.group-call-overlay.group-focused-mode .group-call-grid.has-focus .group-tile.focused video{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
  background:#050b14!important
}
.group-call-overlay.group-focused-mode .group-call-head{
  position:relative;
  z-index:20;
  border-bottom:0;
  background:linear-gradient(180deg,#07101ef2 0%,#07101eb8 62%,transparent 100%)
}
.group-call-overlay.group-focused-mode .group-call-controls{
  position:relative;
  z-index:20;
  margin-top:auto;
  border-top:0;
  background:linear-gradient(180deg,transparent 0%,#0d1a2cdd 24%,#0d1a2c 58%)
}
.group-call-overlay.group-focused-mode .group-call-strip:not(.hidden){
  position:absolute;
  z-index:25;
  left:10px;
  right:10px;
  bottom:calc(94px + max(var(--safe-bottom),18px));
  padding:0;
  border:0;
  background:transparent;
  max-height:82px
}
.group-call-overlay.group-focused-mode .group-call-strip .group-tile{
  flex:0 0 88px!important;
  width:88px!important;
  height:76px!important;
  min-height:76px!important;
  border-radius:15px;
  border:1px solid #ffffff55;
  box-shadow:0 7px 22px #0009
}
.group-call-overlay.group-focused-mode .group-call-strip .group-tile video{
  object-fit:cover!important
}
.group-call-overlay.group-focused-mode .group-call-invite-wrap{
  position:relative;
  z-index:20;
  margin-top:auto
}

/* Invitation occupies its own row inside the bottom toolbar. */
.call-controls,.group-call-controls{flex-shrink:0}
.group-call-controls{flex-wrap:wrap;gap:10px 12px}
.call-controls > .call-invite-action-wrap,
.group-call-controls > .group-call-invite-wrap{
  position:static;
  flex:0 0 100%;
  grid-column:1 / -1;
  min-width:0;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  display:flex;
  justify-content:center
}
.call-controls .call-invite-action,
.group-call-controls .group-call-invite-action{
  width:min(100%,260px);
  height:auto;
  min-height:44px;
  border:1px solid #4f82bd;
  border-radius:999px;
  font-size:13px;
  line-height:1.25;
  padding:8px 12px
}
.group-call-controls > button{
  width:clamp(44px,11vw,56px);
  height:clamp(44px,11vw,56px);
  flex-shrink:0
}
.group-call-overlay.group-focused-mode .group-call-controls > .group-call-invite-wrap{
  position:static;
  margin:0
}
.group-call-overlay.group-focused-mode .group-call-strip:not(.hidden){
  bottom:calc(var(--call-toolbar-height,94px) + 10px)
}
@media(max-width:720px){
  .call-overlay.active-call-state .call-info{
    bottom:calc(var(--call-toolbar-height,210px) + 20px)
  }
  .call-overlay.active-call-state .call-stage{
    padding-bottom:calc(var(--call-toolbar-height,210px) + 12px)
  }
}

.call-invite-dialog{width:min(94vw,440px);max-height:88dvh;overflow:auto;padding:18px}
.call-invite-dialog h2{font-size:20px;margin:0 0 5px}
.call-invite-dialog .chat-menu-head{align-items:flex-start;gap:12px}
.call-invite-dialog .chat-menu-close{flex-shrink:0}
.call-invite-search{box-sizing:border-box;width:100%;margin:14px 0 10px;border:1px solid #354b68;background:#0f1d30;color:#fff;border-radius:12px;padding:12px;font-size:16px}
.call-invite-contacts{display:grid;gap:8px;max-height:50dvh;overflow:auto}
.call-invite-contact{display:flex;align-items:center;gap:11px;width:100%;border:0;border-radius:14px;background:#17283f;color:#fff;padding:11px;text-align:left}
.call-invite-contact .avatar{flex-shrink:0}
.call-invite-contact-copy{min-width:0;flex:1}
.call-invite-contact-copy strong,.call-invite-contact-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.call-invite-contact-copy small{color:#9fb0c8;font-size:12px;margin-top:4px}
.call-invite-contact-action{flex-shrink:0;font-size:22px;padding:5px}
.call-invite-contact:disabled{opacity:.6}
.call-invite-empty{padding:22px 10px;text-align:center;color:#9fb0c8}
.call-invite-status{min-height:22px;padding-top:12px;font-size:13px;overflow-wrap:anywhere}

/* iOS/PWA: explicitly show when a user tap is required to play call audio. */
#groupSpeakerBtn.audio-blocked{background:#835018;outline:2px solid #ffc26a;outline-offset:2px}
