/* Private-message voice calls. Isolated from the message composer for a stable mobile viewport. */
#zaxsecurity-app [data-private-call-start] { color: #b8fff3; }
#zaxsecurity-app [data-private-call-start]:disabled { opacity: .38; cursor: not-allowed; }
#zaxsecurity-app [data-private-call-start].is-ready { background: linear-gradient(135deg, rgba(51,232,199,.19), rgba(66,137,255,.18)); box-shadow: inset 0 0 0 1px rgba(87,247,216,.24); }

.zax-private-call-layer,.zax-private-call-history-layer { position: fixed; inset: 0; z-index: 2147483647; display: grid; padding: 24px; place-items: center; isolation: isolate; color-scheme: dark; }
.zax-private-call-history-layer { z-index: 2147482010; }
.zax-private-call-layer[hidden],.zax-private-call-history-layer[hidden] { display: none; }
.zax-private-call-backdrop,.zax-private-call-history-backdrop { position: absolute; inset: 0; background: rgba(1,8,12,.78); backdrop-filter: blur(16px) saturate(1.08); -webkit-backdrop-filter: blur(16px) saturate(1.08); }

.zax-private-call-card { position: relative; z-index: 1; display: flex; width: min(100%,428px); min-height: 550px; flex-direction: column; overflow: hidden; padding: 19px 25px 25px; border: 1px solid rgba(118,249,222,.28); border-radius: 32px; color: #f4fffd; text-align: center; background: radial-gradient(circle at 50% 25%,rgba(41,214,185,.29),transparent 33%),radial-gradient(circle at 82% 85%,rgba(55,108,230,.18),transparent 43%),linear-gradient(160deg,#102a2d 0%,#071417 49%,#050b0e 100%); box-shadow: 0 34px 94px rgba(0,0,0,.58),inset 0 1px 0 rgba(255,255,255,.08); }
.zax-private-call-card::before { position: absolute; inset: 0; z-index: -1; padding: 1px; border-radius: inherit; content: ''; pointer-events: none; background: linear-gradient(140deg,rgba(141,255,236,.72),rgba(50,129,255,.42) 44%,transparent 75%); -webkit-mask: linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; }
.zax-private-call-card > header,.zax-private-call-history-card > header { display: flex; min-height: 38px; align-items: center; justify-content: space-between; }
.zax-private-call-header-actions { display: inline-flex; gap: 8px; }
.zax-private-call-card > header button,.zax-private-call-history-card > header button { display: grid; width: 36px; height: 36px; padding: 0; border: 1px solid rgba(220,255,248,.11); border-radius: 50%; color: #ecfffc; background: rgba(2,17,21,.52); box-shadow: inset 0 1px 0 rgba(255,255,255,.08); place-items: center; transition: transform .18s ease,background .18s ease,color .18s ease; }
.zax-private-call-card > header button:hover,.zax-private-call-history-card > header button:hover { transform: translateY(-1px); background: rgba(86,224,204,.18); }
.zax-private-call-card > header [data-private-call-end] { color: #ffccd6; background: rgba(209,46,84,.21); }
.zax-private-call-card > header [data-private-call-tone-toggle].is-muted { color: #ffe89c; background: rgba(255,189,65,.16); }
.zax-private-call-secure { display: inline-flex; align-items: center; gap: 8px; color: #c5eee7; font-size: 10px; font-weight: 850; letter-spacing: .105em; text-transform: uppercase; }
.zax-private-call-secure i { display: block; width: 7px; height: 7px; border-radius: 50%; background: #50ed9a; box-shadow: 0 0 0 5px rgba(80,237,154,.12); }

.zax-private-call-stage { position: relative; display: grid; min-height: 260px; margin-top: 16px; place-items: center; }
.zax-private-call-stage::before { position: absolute; width: 250px; height: 250px; border: 1px solid rgba(91,255,223,.08); border-radius: 50%; content: ''; background: radial-gradient(circle,rgba(85,247,216,.09),transparent 63%); }
.zax-private-call-orbit { position: relative; display: grid; width: 176px; height: 176px; place-items: center; }
.zax-private-call-orbit::before,.zax-private-call-orbit::after,.zax-private-call-orbit i { position: absolute; border: 1px solid rgba(123,255,231,.26); border-radius: 50%; content: ''; animation: zax-private-call-pulse 2.35s ease-in-out infinite; }
.zax-private-call-orbit::before { inset: 0; }.zax-private-call-orbit::after { inset: 20px; animation-delay: .35s; }.zax-private-call-orbit i { inset: 42px; animation-delay: .7s; }.zax-private-call-orbit i:nth-child(2) { display: none; }
.zax-private-call-avatar { position: absolute; top: 50%; left: 50%; display: grid; width: 104px; height: 104px; overflow: hidden; border: 3px solid rgba(196,255,245,.8); border-radius: 50%; color: #062426; font-size: 34px; font-weight: 900; background: linear-gradient(135deg,#77ffe5,#3dc6ba 66%,#4d77f3); box-shadow: 0 16px 36px rgba(0,0,0,.35),0 0 0 8px rgba(90,255,225,.06); place-items: center; transform: translate(-50%,-50%); }
.zax-private-call-avatar img,.zax-private-call-history-avatar img { width: 100%; height: 100%; object-fit: cover; }
.zax-private-call-card h2 { margin: 0; color: #f9ffff; font-size: clamp(24px,5vw,29px); line-height: 1.16; letter-spacing: -.025em; }
.zax-private-call-card p { min-height: 22px; margin: 9px 0 0; color: #9bf1df; font-size: 14px; font-weight: 800; }
.zax-private-call-duration { min-width: 69px; margin: 10px auto 0; padding: 5px 10px; border: 1px solid rgba(132,255,231,.18); border-radius: 999px; color: #edfffb; font-size: 12px; font-variant-numeric: tabular-nums; background: rgba(16,79,76,.4); }
.zax-private-call-card > small { display: block; max-width: 286px; min-height: 34px; margin: 10px auto 0; color: #9fc0bb; font-size: 12px; line-height: 1.48; }
.zax-private-call-recording-notice { display: inline-flex; width: fit-content; max-width: min(100%,310px); align-items: center; justify-self: center; gap: 7px; margin: 10px auto -1px; padding: 6px 10px; border: 1px solid rgba(255,131,151,.3); border-radius: 999px; color: #ffe7ec; font-size: 10px; font-weight: 850; letter-spacing: .035em; background: rgba(144,24,53,.28); box-shadow: inset 0 1px 0 rgba(255,255,255,.08); }.zax-private-call-recording-notice i { width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: #ff5876; box-shadow: 0 0 0 4px rgba(255,88,118,.15); animation: zax-private-call-recording-dot 1s ease-in-out infinite; }
.zax-private-call-card audio { display: none; }
.zax-private-call-actions { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; width: min(100%,360px); margin: auto auto 0; padding-top: 26px; }
.zax-private-call-actions button { display: inline-flex; min-height: 58px; flex-direction: column; align-items: center; justify-content: center; gap: 4px; padding: 8px 12px; border: 1px solid rgba(228,255,250,.1); border-radius: 20px; color: #f9fffe; font-size: 11px; font-weight: 850; letter-spacing: .015em; background: rgba(255,255,255,.09); box-shadow: inset 0 1px 0 rgba(255,255,255,.08); transition: transform .18s ease,filter .18s ease,background .18s ease; }
.zax-private-call-actions button[hidden],.zax-private-call-duration[hidden] { display: none !important; }
.zax-private-call-actions button .dashicons { width: 19px; height: 19px; font-size: 19px; }.zax-private-call-actions button:active { transform: scale(.95); }.zax-private-call-actions button:hover { filter: brightness(1.12); }
.zax-private-call-actions .zax-private-call-accept { background: linear-gradient(135deg,#21be8d,#258fe7); box-shadow: 0 12px 26px rgba(32,185,139,.25); }
.zax-private-call-actions .zax-private-call-decline,.zax-private-call-actions .zax-private-call-hangup { background: linear-gradient(135deg,#df4b68,#a62350); box-shadow: 0 12px 26px rgba(173,29,72,.22); }
.zax-private-call-actions .zax-private-call-hangup { grid-column: 1 / -1; min-height: 64px; flex-direction: row; gap: 10px; border-radius: 999px; color: #fff; font-size: 13px; letter-spacing: .02em; background: linear-gradient(135deg,#f25270,#b91643); box-shadow: 0 15px 30px rgba(188,21,66,.36),inset 0 1px 0 rgba(255,255,255,.22); }
.zax-private-call-actions .zax-private-call-hangup .dashicons { width: 22px; height: 22px; font-size: 22px; transform: rotate(135deg); }
.zax-private-call-actions .zax-private-call-mute.is-muted { color: #102020; background: linear-gradient(135deg,#f8dc78,#ffa16e); }
.zax-private-call-actions .zax-private-call-speaker.is-on { color: #072426; background: linear-gradient(135deg,#6cf6d4,#52a6f8); box-shadow: 0 10px 22px rgba(75,210,213,.18); }.zax-private-call-actions .zax-private-call-speaker.is-off { color: #d8e5e3; background: rgba(255,255,255,.06); }.zax-private-call-actions .zax-private-call-record.is-recording { color: #fff3f5; border-color: rgba(255,132,150,.56); background: linear-gradient(135deg,#e84364,#a91645); box-shadow: 0 10px 22px rgba(219,44,85,.25); }.zax-private-call-actions .zax-private-call-record.is-recording .dashicons { animation: zax-private-call-recording-dot .9s ease-in-out infinite; }
.zax-private-call-actions button:disabled { opacity: .46; cursor: default; filter: saturate(.55); box-shadow: none; }
.zax-private-call-actions button:disabled:active { transform: none; }
.zax-private-call-layer.is-connected .zax-private-call-orbit::before,.zax-private-call-layer.is-connected .zax-private-call-orbit::after,.zax-private-call-layer.is-connected .zax-private-call-orbit i { border-color: rgba(76,234,165,.44); animation-duration: 1.48s; }

.zax-private-call-history-card { position: relative; z-index: 1; display: flex; width: min(100%,510px); max-height: min(720px,78dvh); flex-direction: column; overflow: hidden; border: 1px solid rgba(118,249,222,.26); border-radius: 28px; color: #effffc; background: linear-gradient(155deg,#103033,#071417 64%,#061012); box-shadow: 0 30px 86px rgba(0,0,0,.55); }
.zax-private-call-history-card > header { min-height: 78px; padding: 16px 19px; border-bottom: 1px solid rgba(157,255,237,.1); }.zax-private-call-history-card header small { display: block; margin-bottom: 2px; color: #8fc7be; font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.zax-private-call-history-card h2 { margin: 0; color: #fbffff; font-size: 21px; letter-spacing: -.02em; }
.zax-private-call-history-list { overflow: auto; min-height: 180px; padding: 8px; overscroll-behavior: contain; }.zax-private-call-history-row { display: grid; grid-template-columns: 48px minmax(0,1fr) auto; align-items: center; gap: 12px; min-height: 67px; padding: 9px 10px; border-radius: 17px; }.zax-private-call-history-row:hover { background: rgba(126,255,231,.06); }
.zax-private-call-history-avatar { display: grid; width: 45px; height: 45px; overflow: hidden; border: 1px solid rgba(139,255,235,.3); border-radius: 50%; color: #063234; font-size: 16px; font-weight: 900; background: linear-gradient(135deg,#77ffe5,#3dc6ba); place-items: center; }.zax-private-call-history-copy { display: grid; min-width: 0; gap: 3px; text-align: left; }.zax-private-call-history-copy strong { overflow: hidden; color: #f2fffc; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }.zax-private-call-history-copy small { overflow: hidden; color: #9abbb6; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }.zax-private-call-history-row.is-missed .zax-private-call-history-copy small,.zax-private-call-history-row.is-declined .zax-private-call-history-copy small { color: #ffb2c0; }
.zax-private-call-history-meta { display: grid; justify-items: end; gap: 4px; color: #a8cac5; text-align: right; }.zax-private-call-history-meta i { width: 15px; height: 15px; color: #6ce8d4; font-size: 15px; }.zax-private-call-history-row.is-missed .zax-private-call-history-meta i,.zax-private-call-history-row.is-declined .zax-private-call-history-meta i { color: #ff728d; }.zax-private-call-history-meta small { color: #8ca9a5; font-size: 10px; white-space: nowrap; }.zax-private-call-history-empty { max-width: 310px; margin: 48px auto; color: #a1c2bd; font-size: 13px; line-height: 1.55; text-align: center; }.zax-private-call-history-empty.is-error { color: #ffb2c0; }

@keyframes zax-private-call-pulse { 0%,100% { transform: scale(.92); opacity: .35; } 50% { transform: scale(1.04); opacity: 1; } }
@keyframes zax-private-call-recording-dot { 0%,100% { opacity: .5; transform: scale(.85); } 50% { opacity: 1; transform: scale(1.08); } }
/* A private call is a dedicated screen. This deliberately includes the
   iOS composer when app.js has portaled it outside #zaxsecurity-app. */
html.zax-private-call-active,body.zax-private-call-active,
html.zax-private-call-history-open,body.zax-private-call-history-open { overflow: hidden !important; overscroll-behavior: none !important; }
body.zax-private-call-active #zaxsecurity-app [data-private-message-form],
body.zax-private-call-active #zaxsecurity-app .zax-chat-composer,
body.zax-private-call-history-open #zaxsecurity-app [data-private-message-form],
body.zax-private-call-history-open #zaxsecurity-app .zax-chat-composer,
body.zax-private-call-active > [data-private-message-form],
body.zax-private-call-active > .zax-chat-composer,
body.zax-private-call-history-open > [data-private-message-form],
body.zax-private-call-history-open > .zax-chat-composer,
body.zax-private-call-active .zax-chat-composer.is-viewport-portaled,
body.zax-private-call-history-open .zax-chat-composer.is-viewport-portaled,
body.zax-private-call-active .zax-chat-composer.is-private-call-hidden,
body.zax-private-call-history-open .zax-chat-composer.is-private-call-history-hidden { display: none !important; visibility: hidden !important; pointer-events: none !important; }
@media (max-width:760px) { .zax-private-call-layer { width: 100vw; height: 100dvh; min-height: 100dvh; padding: 0; overflow: hidden; place-items: stretch; }.zax-private-call-backdrop { display: none; }.zax-private-call-card { width: 100%; height: 100dvh; min-height: 100dvh; max-height: 100dvh; box-sizing: border-box; padding: max(17px,env(safe-area-inset-top)) 24px calc(22px + env(safe-area-inset-bottom)); border: 0; border-radius: 0; }.zax-private-call-stage { min-height: min(42dvh,318px); margin-top: 7px; }.zax-private-call-actions { width: min(100%,390px); margin-bottom: 2px; padding-top: 20px; }.zax-private-call-actions .zax-private-call-hangup { min-height: 62px; margin-top: 2px; }.zax-private-call-history-layer { align-items: end; padding: 0; }.zax-private-call-history-card { width: 100%; max-height: min(76dvh,670px); border-right: 0; border-bottom: 0; border-left: 0; border-radius: 26px 26px 0 0; }.zax-private-call-history-card > header { padding-top: 18px; } }
@media (prefers-reduced-motion:reduce) { .zax-private-call-orbit::before,.zax-private-call-orbit::after,.zax-private-call-orbit i,.zax-private-call-recording-notice i,.zax-private-call-actions .zax-private-call-record.is-recording .dashicons { animation: none; }.zax-private-call-actions button,.zax-private-call-card > header button,.zax-private-call-history-card > header button { transition: none; } }
