/* Connection measurements, shared by Desktop and Web. */
.latency-control [hidden] {display:none!important}
.call-header .latency-button {gap:8px;min-height:31px;border-color:var(--theme-border-strong,#626269);background:var(--theme-surface-elevated,#111114);transition:background .18s,border-color .18s,scale .16s}
.latency-button:active {scale:.97}
.latency-chevron {border-color:var(--theme-text-secondary,#aaa)}
.latency-quality {--signal-color:var(--theme-text-muted,#85858f);display:inline-flex;flex:none;color:var(--signal-color)}
.latency-quality.excellent,.latency-quality-label.excellent {--signal-color:#22c984}
.latency-quality.good,.latency-quality-label.good {--signal-color:#4cbc85}
.latency-quality.attention,.latency-quality-label.attention {--signal-color:#e9b14f}
.latency-quality.poor,.latency-quality-label.poor {--signal-color:#ee6578}
.latency-signal {display:flex;align-items:flex-end;gap:2px;height:17px}
.latency-signal i {width:3px;border-radius:2px;background:var(--signal-color);opacity:.24;transition:background-color .3s,opacity .3s}
.latency-signal i:nth-child(1) {height:5px}.latency-signal i:nth-child(2) {height:9px}.latency-signal i:nth-child(3) {height:13px}.latency-signal i:nth-child(4) {height:17px}
.latency-quality.excellent i,.latency-quality.good i:nth-child(-n+3),.latency-quality.attention i:nth-child(-n+2),.latency-quality.poor i:first-child {opacity:1}
.latency-popover {width:min(365px,calc(100vw - 28px));padding:20px;display:flex;flex-direction:column;overflow:hidden;border-radius:22px;border-color:var(--theme-border-subtle,#44444c);background:var(--theme-surface-elevated,#0b0b0d);font-size:13px;box-shadow:0 18px 42px rgba(0,0,0,.25)}
:root[data-theme=dark] .latency-popover {background:#0b0b0d;border-color:rgba(255,255,255,.23)}
.latency-popover:not([hidden]) {animation:latency-open .2s ease-out}
.latency-popover header {gap:12px;flex:none;align-items:flex-start;border:0;padding:0 0 18px}
.latency-popover h2 {font-size:19px;font-weight:750;letter-spacing:-.02em;line-height:1.3;margin:0}
.latency-popover header p {font-size:12px;line-height:1.5;color:var(--theme-text-secondary,#b5b5be);margin:5px 0 0}
.latency-popover header button {display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;padding:7px;border:1px solid var(--theme-border-subtle,#38383f);border-radius:50%;color:var(--theme-text-primary,#eee);background:transparent;cursor:pointer;transition:background .18s,border-color .18s,scale .16s}
.latency-popover header button svg {width:20px;height:20px}
.latency-popover header button:hover {background:var(--theme-surface-hover,#24242a);border-color:var(--theme-border-strong,#777780)}
.latency-popover header button:active {scale:.92}
.latency-popover :is(button,summary):focus-visible {outline:2px solid var(--theme-focus,#599dff);outline-offset:3px}
.latency-content {min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--theme-scrollbar,#555) transparent;padding:2px}
.latency-summary {display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px;border-radius:15px;background:var(--theme-surface-card,#151518);border:1px solid rgba(var(--theme-text-primary-rgb,244,244,246),.05)}
.latency-summary small {font-size:10px;font-weight:650;letter-spacing:.06em;color:var(--theme-text-secondary,#aaa)}
.latency-summary-value {display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:8px}
.latency-summary output {font-size:27px;font-weight:750;letter-spacing:-.025em;line-height:1.1;font-variant-numeric:tabular-nums}
.latency-quality-label {display:inline-flex;align-items:center;gap:5px;border-radius:18px;padding:5px 8px;color:var(--signal-color);background:color-mix(in srgb,var(--signal-color) 13%,transparent);font-size:11px;font-weight:650}
.latency-quality-label::before {content:'';width:5px;height:5px;background:currentColor;border-radius:50%}
.latency-summary>.latency-quality .latency-signal {height:31px;gap:3px}
.latency-summary>.latency-quality i {width:5px}
.latency-summary>.latency-quality i:nth-child(1) {height:9px}.latency-summary>.latency-quality i:nth-child(2) {height:16px}.latency-summary>.latency-quality i:nth-child(3) {height:23px}.latency-summary>.latency-quality i:nth-child(4) {height:31px}
.latency-unavailable {font-size:11px;line-height:1.6;margin:10px 0 0;color:var(--theme-text-secondary,#aaa)}
.latency-participants {margin-top:17px;padding-top:16px;border-top:1px solid var(--theme-border-subtle,#333338)}
.latency-participants h3 {font-size:13px;margin:0 0 10px;font-weight:700}
.latency-rows {gap:9px}
.latency-row {display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;min-height:38px}
.latency-person {gap:10px}
.latency-avatar {display:flex}
.latency-avatar .avatar {width:32px;height:32px;flex-basis:32px}
.latency-name-group {display:flex;min-width:0;flex-direction:column;gap:3px}
.latency-name {font-size:12px;font-weight:600}
.latency-name-group small {font-size:11px;color:var(--theme-text-secondary,#aaa)}
.latency-row output {min-width:45px;text-align:right;font-size:12px;font-weight:650}
.latency-details {margin-top:15px;padding-top:14px;border-top:1px solid var(--theme-border-subtle,#333338)}
.latency-details summary {display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;font-weight:650;cursor:pointer;list-style:none}
.latency-details summary::-webkit-details-marker {display:none}
.latency-details summary svg {width:17px;height:17px;transition:transform .2s}
.latency-details[open] summary svg {transform:rotate(180deg)}
.latency-details>div {margin-top:12px;animation:latency-open .18s ease-out}
.latency-details>div>div {display:flex;justify-content:space-between;gap:12px;padding:6px 0;font-size:11px;color:var(--theme-text-secondary,#aaa)}
.latency-details output {color:var(--theme-text-primary,#eee);font-variant-numeric:tabular-nums}
.latency-details p {margin:7px 0 0;font-size:10px;line-height:1.5;color:var(--theme-text-muted,#999)}
.latency-popover .latency-average {display:flex;flex:none;justify-content:space-between;gap:12px;min-height:0;margin:15px 2px 0;padding-top:13px;border-color:var(--theme-border-subtle,#333338);font-size:12px}
.latency-average output {color:var(--theme-text-primary,#eee);font-size:12px;font-variant-numeric:tabular-nums}
:root[data-theme=white] :is(.latency-quality,.latency-quality-label).excellent {--signal-color:#008755}
:root[data-theme=white] :is(.latency-quality,.latency-quality-label).good {--signal-color:#26855a}
:root[data-theme=white] :is(.latency-quality,.latency-quality-label).attention {--signal-color:#926600}
:root[data-theme=white] :is(.latency-quality,.latency-quality-label).poor {--signal-color:#c72d4a}
@keyframes latency-open {from {opacity:0;translate:0 5px}to {opacity:1;translate:0 0}}
@media(max-height:650px) {.latency-popover {padding:16px}.latency-popover header {padding-bottom:12px}.latency-summary {padding:12px}}
@media(prefers-reduced-motion:reduce) {.latency-control * {animation:none!important;transition:none!important}}
