/* Вывожу демонстрацию перед остальными карточками и сохраняю формат 16:9. */
.tile.screen {
  grid-column: 1/-1;
  aspect-ratio: 16/9;
  min-height: 180px;
  background: #0d0d11;
  order: -1;
}

/* Показываю изображение целиком через contain, без обрезки краёв. */
.tile.screen video {
  object-fit: contain !important;
}

.screen-expand {
  position: absolute;
  right: 10px;
  top: 10px;
  z-index: 3;
  min-height: 44px;
  padding: 8px 14px;
  background: #19151fe8;
  color: #fff;
  border: 1px solid #735064;
}

/* Разворачиваю выбранную демонстрацию поверх интерфейса на всю область окна. */
.screen-focused {
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100dvh !important;
  z-index: 100 !important;
  border: 0 !important;
  border-radius: 0 !important;
  aspect-ratio: auto !important;
  background: #070709 !important;
}

.screen-focused video {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}

.screen-focused .screen-expand {
  display: none;
}

.screen-focused .tile-label {
  bottom: max(16px, env(safe-area-inset-bottom));
  max-width: calc(100% - 30px);
}

/* Учитываю безопасные отступы устройства, чтобы кнопка закрытия оставалась доступной. */
#close-screen {
  position: fixed;
  right: max(16px, env(safe-area-inset-right));
  top: max(16px, env(safe-area-inset-top));
  z-index: 110;
  min-height: 44px;
  padding: 10px 16px;
  background: #342432ed;
  border: 1px solid #95536a;
  color: white;
}

/* Здесь оставляю дополнительные стили сообщений подтверждения регистрации. */
#registration-message {
  line-height: 1.7;
  overflow-wrap: anywhere;
}

#registration-complete {
  margin-top: 18px;
}

#registration-error {
  color: #ffb2c7;
  line-height: 1.5;
}

/* Выделяю включённое отключение звука по состоянию aria-pressed. */
#deafen[aria-pressed='true'] {
  background: #bd3455;
  color: white;
}

/* Подстраиваю расположение и размеры элементов под указанную ширину экрана. */
@media (max-width: 760px) {
  .call-controls {
    gap: 5px;
    width: 100%;
    flex-wrap: wrap;
    padding: 9px 3px;
  }

  .call-controls .control-item button {
    width: 44px;
    height: 44px;
  }

  .control-item > span {
    font-size: 0.55rem;
  }

  .tile.screen {
    min-height: 140px;
  }

  .room-view {
    padding: 16px 8px;
  }

  .screen-expand {
    font-size: 0.7rem;
    padding: 8px;
  }

  .stage-top {
    flex-wrap: wrap;
  }
}

/* В горизонтальном режиме с небольшой высотой освобождаю место для демонстрации. */
@media (max-height: 500px) and (orientation: landscape) {
  .room-view {
    padding: 8px;
  }

  .stage-top {
    display: none;
  }

  .tile.screen {
    min-height: 160px;
  }

  .call-controls {
    bottom: 4px;
    margin-top: 8px;
  }

  .control-item > span {
    display: none;
  }

  .room-header {
    height: 44px;
    min-height: 44px;
  }

  .viewing-screen .call-controls {
    display: none;
  }
}

/* Оформляю выбор качества демонстрации в окне её запуска. */
.screen-quality {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: 0.75rem;
  color: #bba7ba;
  margin: 10px 0 16px;
}

.screen-quality select {
  max-width: 100%;
  padding: 9px;
  border: 1px solid #674158;
  border-radius: 7px;
  background: #211b26;
  color: #f5dce7;
  min-height: 40px;
}

/* Выравниваю флажок передачи звука и пояснение к нему. */
.screen-audio-option {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 0.8rem;
}

.screen-audio-option input {
  width: 18px;
  height: 18px;
  accent-color: #e6325d;
}

.screen-hint {
  font-size: 0.74rem;
  line-height: 1.5;
  color: #bba7ba;
  max-width: 760px;
}

.screen-hint:empty {
  display: none;
}

/* Выделяю уведомление о переносе приложения на новый адрес. */
.domain-migration {
  position: fixed;
  bottom: 12px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 20;
  width: min(760px, 94vw);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  padding: 14px;
  background: #402236;
  border: 1px solid #ed4575;
  border-radius: 12px;
  box-shadow: 0 8px 32px #0008;
  font-size: 0.8rem;
}

.domain-migration span {
  flex: 1;
  min-width: 200px;
}

.domain-migration button {
  background: #c42d55;
  color: white;
  padding: 12px;
  border-radius: 8px;
}
