/* Roger video calls: full screen call view used by the Roger app (host) and the guest page (join.html).
   Colors and glossy round buttons come from styles.css. */

body.vc-open { overflow: hidden; }

.vc {
  position: fixed; inset: 0; z-index: 40; display: flex; flex-direction: column;
  background: #06151f; color: #fff;
}
.vc-stage {
  position: relative; flex: 1 1 0; min-height: 0; overflow: hidden;
  background: radial-gradient(circle at 50% 38%, #12405f, #06151f 72%);
}
.vc-remote { position: absolute; inset: 0; }
.vc-remote video { width: 100%; height: 100%; object-fit: cover; background: #000; }
.vc-audio { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; }

.vc-local {
  position: absolute; right: 12px; bottom: 12px; z-index: 2; width: min(30vw, 128px); aspect-ratio: 3 / 4;
  border-radius: 18px; overflow: hidden; border: 2px solid rgba(255, 255, 255, 0.85);
  background: #0b2a43; box-shadow: 0 8px 22px rgba(0, 0, 0, 0.45);
}
.vc-local video { width: 100%; height: 100%; object-fit: cover; }
.vc.alone .vc-local { inset: 0; right: auto; bottom: auto; width: 100%; aspect-ratio: auto; border: 0; border-radius: 0; box-shadow: none; z-index: 0; }
.vc.alone .vc-local video { opacity: 0.4; }
.vc-local[data-face="user"] video { transform: scaleX(-1); }
.vc-local.off video { visibility: hidden; }
.vc-local.off::after {
  content: 'Camera off'; position: absolute; inset: 0; display: grid; place-items: center;
  font-size: 12px; color: #cfe5f8;
}
.vc-local[hidden] { display: none; }

.vc-top {
  position: absolute; z-index: 3; left: 12px; right: 12px; top: calc(env(safe-area-inset-top, 0px) + 10px);
  display: flex; justify-content: space-between; align-items: center; gap: 8px; pointer-events: none;
}
.vc-status, .vc-timer {
  padding: 6px 12px; border-radius: 999px; font-size: 13px; background: rgba(6, 21, 31, 0.62);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.vc-timer { font-variant-numeric: tabular-nums; font-weight: 700; color: #7be0b0; }

.vc-wait {
  position: absolute; inset: 0; z-index: 1; display: grid; align-content: center; justify-items: center; gap: 10px;
  text-align: center; padding: 56px 20px 24px; overflow-y: auto;
}
.vc-wait[hidden] { display: none; }
.vc-wait b { font-size: 21px; }
.vc-wait .vc-ws { color: #b9dcf7; font-size: 14px; max-width: 320px; }
.vc-ring {
  width: 54px; height: 54px; border-radius: 50%; border: 4px solid rgba(255, 255, 255, 0.18); border-top-color: #55c0fb;
  animation: vcspin 1s linear infinite;
}
@keyframes vcspin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .vc-ring { animation-duration: 3s; } }

.vc-card {
  width: min(100%, 360px); text-align: left; display: grid; gap: 10px; margin-top: 8px; padding: 14px;
  border-radius: 22px; background: #fff; color: var(--text, #0b2a43); box-shadow: 0 12px 30px rgba(0, 0, 0, 0.35);
}
.vc-card .label { margin: 0; }
.vc-card .vc-row { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 8px; }
.vc-card .btn { min-height: 44px; padding: 8px 10px; font-size: 14px; }
.vc-card .vc-link {
  font-size: 12px; color: var(--muted, #587691); overflow-wrap: anywhere; user-select: all; -webkit-user-select: all;
}

.vc-ctl {
  display: flex; justify-content: center; align-items: center; gap: 14px;
  padding: 12px 12px calc(14px + env(safe-area-inset-bottom, 0px)); background: #06151f;
}
.vc-b {
  appearance: none; width: 58px; height: 58px; border-radius: 50%; border: 1px solid #b9dcf7; cursor: pointer;
  display: grid; place-items: center; color: #0b6fb8; padding: 0;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.35) 50%, rgba(255, 255, 255, 0) 51%), linear-gradient(180deg, #e9f6ff, #bfe1fa);
  box-shadow: inset 0 1px 0 #fff, inset 0 -3px 6px rgba(11, 111, 184, 0.14), 0 5px 12px rgba(0, 0, 0, 0.3);
}
.vc-b:active { transform: scale(0.95); }
.vc-b[disabled] { opacity: 0.4; }
.vc-b[hidden] { display: none; }
.vc-b.off { color: #a8183a; background: linear-gradient(180deg, #fff, #ffe3e9); }
.vc-b.vc-end {
  width: 66px; height: 66px; border-color: #b01a3c; color: #fff;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.5) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0) 51%), linear-gradient(180deg, #ff7d98, #d9304f);
  box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.65), inset 0 -6px 10px rgba(120, 0, 30, 0.28), 0 8px 18px rgba(217, 48, 79, 0.45);
}

@media (orientation: landscape) and (max-height: 520px) {
  .vc { flex-direction: row; }
  .vc-ctl { flex-direction: column; padding: 12px 14px; padding-right: calc(14px + env(safe-area-inset-right, 0px)); }
  .vc-local { width: min(22vw, 120px); }
}

/* guest page (join.html) */
.jn { min-height: 100vh; min-height: 100dvh; display: grid; align-content: center; justify-items: center; gap: 10px; text-align: center; padding: 24px; max-width: 420px; margin: 0 auto; }
.jn h1 { font-size: 24px; line-height: 1.25; }
.jn .btn { width: 100%; }
.jn .acts { display: grid; gap: 10px; width: 100%; margin: 10px 0 4px; }
