/* Visualizador de midia dentro do modal padrao: so a midia, os controles dela e
   o X do cabecalho. O corpo nunca rola: quem se ajusta e a midia. */
.admin-media-viewer-modal {
  /* Altura util do corpo: a tela menos o recuo do modal, o cabecalho e o padding. */
  --admin-media-viewer-height: calc(100dvh - 180px);
  /* Faixa reservada para os controles do video, sempre visiveis. */
  --admin-media-viewer-controls: 76px;
}

.admin-media-viewer-modal .modal-body {
  max-height: none;
  overflow: hidden;
}

/* Sem rodape de acoes: o cabecalho fica com o tipo da midia e o X. */
.admin-media-viewer-modal .modal-actions:empty {
  display: none;
}

.admin-media-viewer {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 0;
  max-height: var(--admin-media-viewer-height);
}

/* Imagem: proporcao preservada, centralizada e sem ampliar a que ja e pequena. */
.admin-media-viewer-image {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: var(--admin-media-viewer-height);
  border-radius: var(--admin-radius-sm);
  object-fit: contain;
}

/* Video: o palco ocupa o que sobra e os controles nunca saem da tela. */
.admin-media-viewer--video {
  display: flex;
  flex-direction: column;
}

.admin-media-viewer--video .admin-media-player {
  width: 100%;
  min-height: 0;
}

.admin-media-viewer--video .admin-media-player-stage {
  min-height: 0;
  max-height: calc(var(--admin-media-viewer-height) - var(--admin-media-viewer-controls));
}

.admin-media-viewer--video .admin-media-player-media {
  width: auto;
  max-width: 100%;
  max-height: calc(var(--admin-media-viewer-height) - var(--admin-media-viewer-controls));
}

.admin-media-viewer--video .admin-media-player-controls {
  flex: 0 0 auto;
}
