/* ============================================================
   ARCADECLOUD DRIVE
   RESPONSIVE CANONICO
   Este archivo se carga DESPUES de styles.css.
   ============================================================ */


/* ---------- BASE ---------- */

html,
body {
  width: 100%;
  max-width: 100%;
}

.drive-container,
.drive-layout,
.drive-main,
#pane-archivos,
#bloque-archivos,
#archivosWrap {
  min-width: 0;
}

.drive-main,
#bloque-archivos,
#archivosWrap {
  width: 100%;
  max-width: none;
}


/* ============================================================
   ESCRITORIO
   ============================================================ */

@media (min-width: 992px) and (pointer: fine) {

  .drive-sidebar-toggle {
    display: none !important;
  }

}


/* ============================================================
   TABLET / MOVIL
   Detectamos ancho O dispositivo tactil.
   Esto ayuda incluso con "Sitio de escritorio" en Chrome.
   ============================================================ */

@media (max-width: 991.98px), (pointer: coarse) {

  html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  body {
    overflow-x: hidden;
  }


  /* ---------- NAVBAR ---------- */

  body.ui-theme .drive-navbar {
    width: 100%;

    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;

    gap: .3rem;

    padding: .45rem .55rem !important;
  }

  .drive-sidebar-toggle {
    display: inline-flex !important;

    flex: 0 0 42px;

    width: 42px !important;
    height: 42px !important;

    margin: 0 !important;

    align-items: center;
    justify-content: center;
  }

  .drive-navbar .navbar-brand {
    display: flex !important;
    align-items: center;

    min-width: 0;

    flex: 1 1 auto;

    margin: 0 !important;
    padding: 0 !important;

    white-space: nowrap;
  }

  .drive-navbar .navbar-brand img {
    width: 30px !important;
    height: 30px !important;
  }

  .drive-navbar-actions {
    display: flex !important;

    flex: 0 0 auto;

    align-items: center;

    gap: .3rem !important;

    margin: 0 !important;
  }

  .drive-navbar-actions .btn {
    width: 42px !important;
    height: 42px !important;

    min-width: 42px;

    padding: 0 !important;

    display: inline-flex !important;
    align-items: center;
    justify-content: center;
  }

  .drive-navbar-menus {
    display: flex !important;

    flex: 0 1 auto;

    width: auto !important;

    min-width: 0;

    flex-direction: row !important;
    flex-wrap: nowrap !important;

    align-items: center;

    gap: .15rem !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;
  }

  #temaMenu,
  #usuarioMenu {
    height: 42px !important;

    display: flex !important;
    align-items: center !important;

    margin: 0 !important;

    padding: .35rem .45rem !important;

    white-space: nowrap;
  }

  #usuarioMenu {
    max-width: 175px;

    min-width: 0;
  }

  #usuarioMenu img,
  #usuarioMenu .drive-user-avatar {
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;

    flex: 0 0 28px;
  }

  .drive-user-label {
    display: block;

    min-width: 0;
    max-width: 120px;

    overflow: hidden;

    text-overflow: ellipsis;

    white-space: nowrap;
  }


  /* ---------- MAIN ---------- */

  .drive-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .drive-layout {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  body.ui-theme .drive-main {
    flex: 0 0 100% !important;

    width: 100% !important;
    max-width: 100% !important;

    padding: .75rem !important;
  }


  /* ---------- TABS ---------- */

  #mainTabs {
    width: 100%;

    margin-bottom: .65rem;

    overflow-x: auto;

    white-space: nowrap;
  }


  /* ---------- ACCIONES / FILTROS ---------- */

  .bulk-mobile-tools {
    position: sticky;

    top: 0;

    z-index: 30;

    width: 100%;

    display: flex !important;

    gap: .5rem;

    padding: .45rem 0;

    background: var(--bg);
  }

  .bulk-mobile-tools .btn {
    min-height: 44px;

    padding: .45rem .75rem !important;
  }


  /* ---------- TARJETAS ---------- */

  body.ui-theme #archivosWrap {
    width: 100% !important;

    max-width: none !important;

    padding: .75rem !important;

    font-size: 16px !important;
  }

  body.ui-theme #archivosWrap .list-group {
    width: 100%;
  }

  body.ui-theme #archivosWrap .file-row {
    width: 100%;

    display: flex !important;

    flex-direction: column !important;

    align-items: stretch !important;

    gap: .65rem !important;

    padding: .9rem !important;
  }

  body.ui-theme #archivosWrap .file-main-block {
    width: 100%;

    min-width: 0;

    align-items: flex-start !important;
  }

  body.ui-theme #archivosWrap
  .file-main-block > div:last-child {

    flex: 1 1 auto;

    min-width: 0;
  }

  body.ui-theme #archivosWrap
  .file-main-block .font-weight-bold {

    font-size: 1rem !important;

    line-height: 1.4;
  }


  /* ---------- METADATA ---------- */

  body.ui-theme #archivosWrap .file-meta-line {
    display: flex !important;

    align-items: center;

    flex-wrap: wrap;

    gap: .15rem;

    margin-top: .3rem;

    font-size: .82rem !important;

    line-height: 1.5;
  }

  body.ui-theme #archivosWrap .file-physical-key {
    display: none !important;
  }

  body.ui-theme #archivosWrap .file-route {
    max-width: 160px;

    overflow: hidden;

    text-overflow: ellipsis;

    white-space: nowrap;
  }


  /* ---------- ACCIONES POR ARCHIVO ---------- */

  body.ui-theme #archivosWrap .file-actions-block {
    width: 100%;

    display: flex !important;

    flex-wrap: wrap !important;

    align-items: center !important;

    justify-content: flex-start !important;

    gap: .45rem !important;

    margin: 0 !important;

    padding-top: .65rem;

    border-top: 1px solid var(--border);
  }

  body.ui-theme #archivosWrap
  .file-actions-block .btn {

    min-width: 42px;
    min-height: 42px;

    display: inline-flex;

    align-items: center;
    justify-content: center;
  }

  body.ui-theme #archivosWrap
  .file-actions-break-after-security {

    display: block;

    flex: 0 0 100%;

    width: 100%;

    height: 0;
  }


  /* ---------- PAGINACION ---------- */

  body.ui-theme #archivosWrap .pagination {
    display: flex;

    flex-wrap: wrap;

    gap: .5rem;

    margin-top: 1rem;

    justify-content: flex-start;
  }

  body.ui-theme #archivosWrap
  .pagination .page-link {

    width: 58px !important;
    height: 58px !important;

    min-width: 58px !important;
    min-height: 58px !important;

    display: inline-flex !important;

    align-items: center;
    justify-content: center;

    padding: 0 !important;

    font-size: 1.1rem !important;

    font-weight: 700;

    border-radius: 10px !important;
  }


  /* ---------- RESUMEN ---------- */

  body.ui-theme .resumen-carpeta-bottom {
    width: 100%;

    margin-top: .8rem !important;

    padding: .75rem !important;

    line-height: 1.6;
  }

}


/* ============================================================
   TELEFONO ANGOSTO
   ============================================================ */

@media (max-width: 575.98px) {

  body.ui-theme .drive-main {
    padding:
      .65rem .45rem 1rem !important;
  }

  .drive-navbar .navbar-brand {
    flex: 0 0 30px;

    width: 30px;

    font-size: 0 !important;
  }

  .drive-design-label {
    display: none;
  }

  #temaMenu {
    width: 38px;

    justify-content: center;
  }

  #usuarioMenu {
    max-width: 105px;
  }

  .drive-user-label {
    max-width: 55px;

    font-size: .75rem;
  }

  body.ui-theme #archivosWrap {
    padding: .65rem !important;
  }

  body.ui-theme #archivosWrap .file-row {
    padding: .8rem .7rem !important;
  }

  body.ui-theme #archivosWrap .file-route {
    max-width: 125px;
  }

}


/* ============================================================
   TABLET REAL / MOBILE EN MODO ESCRITORIO
   ============================================================ */

@media (pointer: coarse) and (min-width: 768px) {

  body.ui-theme .drive-main {
    font-size: 18px !important;
  }

  body.ui-theme #archivosWrap {
    font-size: 18px !important;
  }

  body.ui-theme #archivosWrap
  .file-main-block .font-weight-bold {

    font-size: 1.08rem !important;
  }

}

/* ============================================================
   RESPONSIVE CANONICO - SIDEBAR / DROPDOWNS / FOLDERS
   ============================================================ */

@media (max-width: 991.98px), (pointer: coarse) {

  body.drive-sidebar-open {
    overflow: hidden !important;
  }


  /* ---------- SIDEBAR OFF-CANVAS ---------- */

  body.ui-theme .drive-sidebar {
    position: fixed !important;

    top: 0;
    left: 0;

    z-index: 1070;

    width: min(90vw, 390px) !important;
    max-width: 390px !important;

    height: 100vh;
    height: 100dvh;

    min-height: 100vh !important;
    min-height: 100dvh !important;

    overflow-y: auto;
    overflow-x: hidden;

    padding: .8rem !important;

    transform: translateX(-105%);

    transition: transform .22s ease;

    border-radius: 0 12px 12px 0 !important;

    box-shadow:
      14px 0 35px rgba(0,0,0,.38) !important;
  }


  body.ui-theme .drive-sidebar.is-open {
    transform: translateX(0);
  }


  .drive-sidebar-mobile-head {
    position: sticky;

    top: 0;

    z-index: 10;

    display: flex !important;

    align-items: center;
    justify-content: space-between;

    min-height: 48px;

    margin: -.3rem -.3rem .7rem;

    padding: .45rem .55rem;

    background: var(--bg) !important;

    border-bottom: 1px solid var(--border);
  }


  /* ---------- BACKDROP ---------- */

  .drive-sidebar-backdrop {
    position: fixed;

    inset: 0;

    z-index: 1065;

    display: block !important;

    background: rgba(0,0,0,.5);

    opacity: 0;

    visibility: hidden;

    transition:
      opacity .2s ease,
      visibility .2s ease;
  }


  .drive-sidebar-backdrop.is-visible {
    opacity: 1;

    visibility: visible;
  }


  /* ---------- CARPETAS ---------- */

  #arbolCarpetas {
    width: 100%;

    min-width: 0;
  }


  #arbolCarpetas .folder-row {
    width: 100%;

    min-width: 0;

    display: flex !important;

    flex-wrap: wrap;

    align-items: center !important;

    gap: .3rem;
  }


  #arbolCarpetas .folder-row > a.folder {
    flex: 1 1 140px;

    min-width: 0;

    white-space: normal;

    overflow-wrap: anywhere;
  }


  #arbolCarpetas .folder-actions,
  #arbolCarpetas .folder-row > .btn-group {
    display: flex !important;

    flex-wrap: wrap;

    gap: .2rem;

    max-width: 100%;

    margin-left: auto !important;

    opacity: 1 !important;
  }


  /* ---------- DROPDOWNS NAVBAR ---------- */

  .drive-navbar-menus .dropdown {
    position: relative !important;
  }


  body.ui-theme .drive-navbar-menus .dropdown-menu {
    position: absolute !important;

    top: calc(100% + 5px) !important;

    right: 0 !important;
    left: auto !important;

    width: min(300px, calc(100vw - 1rem));

    min-width: 230px !important;

    max-width: calc(100vw - 1rem);

    max-height: 75vh;

    overflow-y: auto;
    overflow-x: hidden;

    margin: 0 !important;

    z-index: 1095 !important;
  }

}


/* Logo/nombre también es control del sidebar */
#btnToggleSidebarBrand {
  cursor: pointer;
}

/* ============================================================
   FOOTER RESPONSIVE
   ============================================================ */

.drive-footer {
  width: 100%;

  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    auto
    auto;

  align-items: center;

  gap: .75rem;

  padding: .65rem .75rem;
}

.drive-footer-route {
  min-width: 0;

  display: flex;

  align-items: center;

  overflow: hidden;
}

#footerRutaActual {
  min-width: 0;

  overflow: hidden;

  text-overflow: ellipsis;

  white-space: nowrap;
}

.drive-footer-storage,
.drive-footer-clock {
  white-space: nowrap;
}


/* ---------- móvil / tablet ---------- */

@media (max-width: 767.98px) {

  .drive-footer {
    grid-template-columns:
      minmax(0, 1fr)
      auto;

    gap:
      .4rem .7rem;

    padding:
      .65rem .7rem;

    overflow: hidden;
  }

  /*
   * Ruta ocupa una fila completa.
   */
  .drive-footer-route {
    grid-column: 1 / -1;

    width: 100%;

    margin: 0 !important;

    font-size: .82rem;
  }

  .drive-footer-storage {
    grid-column: 1;

    margin: 0 !important;

    font-size: .78rem;

    white-space: normal;
  }

  .drive-footer-clock {
    grid-column: 2;

    margin: 0 !important;

    text-align: right;

    font-size: .76rem;

    white-space: normal;
  }

}


/* ---------- teléfonos pequeños ---------- */

@media (max-width: 420px) {

  .drive-footer {
    grid-template-columns: 1fr;

    gap: .3rem;
  }

  .drive-footer-route,
  .drive-footer-storage,
  .drive-footer-clock {
    grid-column: 1;

    width: 100%;

    text-align: left;
  }

}

/* ============================================================
   ACCIONES DE ARCHIVO - FILAS DEFINITIVAS
   ============================================================ */

/*
 * Escritorio conserva el comportamiento normal.
 */
.file-actions-primary,
.file-actions-secondary {
  display: contents;
}


/* ============================================================
   MOVIL / TABLET
   ============================================================ */

@media (max-width: 991.98px), (pointer: coarse) {

  /*
   * El contenedor exterior ya no decide los saltos.
   * Cada grupo controla su propia fila.
   */
  body.ui-theme #archivosWrap .file-actions-block {
    display: block !important;

    width: 100%;

    margin: 0 !important;

    padding-top: .65rem;

    border-top: 1px solid var(--border);
  }


  /*
   * ACCIONES PRINCIPALES:
   * una sola línea SIEMPRE.
   *
   * Si el teléfono es demasiado estrecho,
   * la fila se desplaza horizontalmente.
   */
  body.ui-theme #archivosWrap .file-actions-primary {
    width: 100%;

    display: flex !important;

    flex-direction: row !important;
    flex-wrap: nowrap !important;

    align-items: center;

    gap: .45rem;

    overflow-x: auto;
    overflow-y: hidden;

    padding:
      .05rem .05rem .35rem;

    -webkit-overflow-scrolling: touch;

    scrollbar-width: none;
  }


  body.ui-theme #archivosWrap
  .file-actions-primary::-webkit-scrollbar {
    display: none;
  }


  body.ui-theme #archivosWrap
  .file-actions-primary > .btn,
  body.ui-theme #archivosWrap
  .file-actions-primary > a.btn {

    flex: 0 0 44px;

    width: 44px;
    height: 44px;

    min-width: 44px !important;
    min-height: 44px !important;

    margin: 0 !important;

    display: inline-flex !important;

    align-items: center;
    justify-content: center;
  }


  /*
   * ACCIONES AWS:
   * debajo y sí pueden acomodarse en varias filas.
   */
  body.ui-theme #archivosWrap .file-actions-secondary {
    width: 100%;

    display: flex !important;

    flex-wrap: wrap !important;

    align-items: center;

    gap: .45rem;

    margin-top: .45rem;
  }


  body.ui-theme #archivosWrap
  .file-actions-secondary:empty {
    display: none !important;
  }


  /*
   * Ya no usamos el viejo salto artificial.
   */
  body.ui-theme #archivosWrap
  .file-actions-break-after-security {
    display: none !important;
  }

}

/* ============================================================
   FILE CARDS V2
   Nombre seguro + ruta S3 + todas las acciones en una fila
   ============================================================ */

body.ui-theme #archivosWrap .file-main-block {
  min-width: 0;
  max-width: 100%;
}

body.ui-theme #archivosWrap
.file-main-block > div:last-child {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}


/* ---------- Nombre visible ---------- */

body.ui-theme #archivosWrap .file-title-line {
  max-width: 100%;

  white-space: normal !important;

  overflow-wrap: anywhere;
  word-break: break-word;
}

body.ui-theme #archivosWrap .file-visible-name {
  max-width: 100%;

  white-space: normal !important;

  overflow-wrap: anywhere;
  word-break: break-word;
}


/* ---------- Ubicación física en S3 ---------- */

body.ui-theme #archivosWrap .file-s3-location {
  width: 100%;
  max-width: 100%;

  display: flex;

  align-items: flex-start;

  gap: .35rem;

  margin-top: .35rem;

  padding: .35rem .45rem;

  border-radius: 6px;

  background: rgba(127,127,127,.06);

  font-size: .72rem;

  line-height: 1.45;

  overflow: hidden;
}

body.ui-theme #archivosWrap .file-s3-label {
  flex: 0 0 auto;

  font-weight: 600;

  white-space: nowrap;
}

body.ui-theme #archivosWrap .file-s3-location code {
  flex: 1 1 auto;

  min-width: 0;

  white-space: normal !important;

  overflow-wrap: anywhere;
  word-break: break-all;
}


/* ============================================================
   MOVIL / TABLET
   ============================================================ */

@media (max-width: 991.98px), (pointer: coarse) {

  /*
   * La key anterior dentro del metadata sigue oculta.
   * Ahora usamos la línea S3 independiente.
   */
  body.ui-theme #archivosWrap .file-physical-key {
    display: none !important;
  }


  /*
   * Nombre largo SIEMPRE dentro de la tarjeta.
   */
  body.ui-theme #archivosWrap .file-title-line {
    width: 100%;

    font-size: 1rem !important;

    line-height: 1.35 !important;
  }

  body.ui-theme #archivosWrap .file-visible-name {
    display: inline;

    max-width: 100%;
  }


  /*
   * S3 completo dentro del contenedor.
   */
  body.ui-theme #archivosWrap .file-s3-location {
    font-size: .70rem;

    margin-top: .4rem;
  }


  /*
   * IMPORTANTE:
   * anulamos la división anterior de acciones.
   */
  body.ui-theme #archivosWrap .file-actions-primary,
  body.ui-theme #archivosWrap .file-actions-secondary {
    display: contents !important;
  }


  /*
   * TODAS las acciones, incluidas AWS,
   * quedan en una sola línea.
   */
  body.ui-theme #archivosWrap .file-actions-block {
    width: 100%;

    display: flex !important;

    flex-direction: row !important;
    flex-wrap: nowrap !important;

    align-items: center !important;

    gap: .45rem !important;

    margin: 0 !important;

    padding:
      .65rem .05rem .25rem !important;

    overflow-x: auto !important;
    overflow-y: hidden !important;

    -webkit-overflow-scrolling: touch;

    scrollbar-width: none;

    border-top: 1px solid var(--border);
  }


  body.ui-theme #archivosWrap
  .file-actions-block::-webkit-scrollbar {
    display: none;
  }


  /*
   * Ningún botón se encoge ni baja.
   */
  body.ui-theme #archivosWrap
  .file-actions-block .btn,
  body.ui-theme #archivosWrap
  .file-actions-block a.btn {

    flex: 0 0 auto !important;

    margin: 0 !important;
  }


  /*
   * Iconos normales.
   */
  body.ui-theme #archivosWrap
  .file-actions-block .btn:not(.aws-file-action) {

    width: 44px !important;
    height: 44px !important;

    min-width: 44px !important;
    min-height: 44px !important;

    display: inline-flex !important;

    align-items: center;
    justify-content: center;

    padding: 0 !important;
  }


  /*
   * Acciones AWS mantienen su texto.
   */
  body.ui-theme #archivosWrap
  .file-actions-block .aws-file-action {

    width: auto !important;

    min-width: max-content !important;
    min-height: 44px !important;

    padding:
      .45rem .65rem !important;

    white-space: nowrap !important;
  }


  /*
   * El viejo separador ya no hace nada.
   */
  body.ui-theme #archivosWrap
  .file-actions-break-after-security {

    display: none !important;
  }

}


/* ============================================================
   MODALES RESPONSIVE
   ============================================================ */

@media (max-width: 991.98px), (pointer: coarse) {

  /*
   * No ocupan toda la pantalla.
   * Dejamos margen visible alrededor.
   */
  body.ui-theme .modal-dialog {
    width: calc(100vw - 24px) !important;

    max-width: 720px !important;

    margin:
      16px auto !important;
  }


  body.ui-theme .modal-dialog.modal-sm {
    max-width: 420px !important;
  }


  body.ui-theme .modal-dialog.modal-lg {
    width: calc(100vw - 20px) !important;

    max-width: 940px !important;
  }


  body.ui-theme .modal-content {
    width: 100% !important;

    max-width: 100% !important;

    max-height:
      calc(100dvh - 32px) !important;

    overflow: hidden;

    border-radius: 12px;
  }


  body.ui-theme .modal-header,
  body.ui-theme .modal-footer {
    flex: 0 0 auto;
  }


  body.ui-theme .modal-body {
    max-width: 100%;

    overflow-x: hidden;
    overflow-y: auto;

    -webkit-overflow-scrolling: touch;
  }


  /*
   * Contenido multimedia nunca rebasa modal.
   */
  body.ui-theme .modal-body img,
  body.ui-theme .modal-body video,
  body.ui-theme .modal-body iframe,
  body.ui-theme .modal-body canvas {

    max-width: 100% !important;
  }


  body.ui-theme .modal-body table {
    max-width: 100%;
  }

}


/* ---------- móvil pequeño ---------- */

@media (max-width: 575.98px) {

  body.ui-theme .modal-dialog,
  body.ui-theme .modal-dialog.modal-lg {

    width: calc(100vw - 20px) !important;

    margin:
      10px auto !important;
  }


  body.ui-theme .modal-content {
    max-height:
      calc(100dvh - 20px) !important;
  }

}

/* ============================================================
   LOGO PRINCIPAL
   25% más ancho
   ============================================================ */

.drive-brand-logo {
  width: 48px !important;
  height: 38px !important;

  min-width: 48px;

  object-fit: contain;
  object-position: center;

  border-radius: 8px;
}


/* El viejo dock izquierdo deja de utilizarse */
#videoDock {
  display: none !important;
}


/* ============================================================
   REPRODUCTOR FLOTANTE AUDIO / VIDEO
   ============================================================ */

.floating-media-player {
  position: fixed;

  right: 22px;
  bottom: 22px;

  z-index: 1200;

  width: min(390px, calc(100vw - 28px));

  background: var(--panel-bg, #fff);

  border:
    1px solid var(--border);

  border-radius: 13px;

  overflow: hidden;

  box-shadow:
    0 15px 45px rgba(0,0,0,.35);
}


.floating-media-player[hidden] {
  display: none !important;
}


.floating-media-handle {
  min-height: 46px;

  display: flex;

  align-items: center;
  justify-content: space-between;

  gap: .5rem;

  padding:
    .55rem .65rem;

  cursor: grab;

  user-select: none;

  touch-action: none;

  background: var(--panel-bg2);
}


.floating-media-handle:active {
  cursor: grabbing;
}


.floating-media-title-wrap {
  min-width: 0;

  display: flex;

  align-items: center;

  gap: .45rem;
}


#floatingMediaTitle {
  min-width: 0;

  overflow: hidden;

  text-overflow: ellipsis;

  white-space: nowrap;

  font-weight: 600;
}


.floating-media-close {
  flex: 0 0 34px;

  width: 34px;
  height: 34px;

  border: 0;

  border-radius: 8px;

  background: transparent;

  color: inherit;
}


.floating-media-video {
  display: block;

  width: 100%;

  max-height: 250px;

  background: #000;
}


.floating-media-audio {
  display: block;

  width: calc(100% - 16px);

  margin: 8px;
}


.floating-media-video[hidden],
.floating-media-audio[hidden] {
  display: none !important;
}


.floating-media-controls {
  display: flex;

  align-items: center;

  gap: .45rem;

  padding:
    .55rem .65rem .65rem;
}


.floating-media-controls .btn {
  width: 42px;
  height: 42px;

  display: inline-flex;

  align-items: center;
  justify-content: center;

  padding: 0;
}


.floating-media-counter {
  margin-left: auto;

  font-size: .78rem;

  opacity: .75;

  white-space: nowrap;
}


/* ============================================================
   MOVIL
   ============================================================ */

@media (max-width: 575.98px) {

  .drive-navbar .navbar-brand {
    width: 48px !important;

    flex:
      0 0 48px !important;
  }


  .floating-media-player {
    right: 10px;
    bottom: 12px;

    width:
      calc(100vw - 20px);

    max-width: 420px;
  }


  .floating-media-video {
    max-height: 34vh;
  }

}


/* ============================================================
   LOGO NAVBAR - mostrar imagen completa dentro del marco
   ============================================================ */
.drive-brand-logo {
  width: 48px !important;
  height: 38px !important;
  object-fit: contain !important;
  object-position: center !important;
  padding: 1px !important;
}

@media (max-width: 991.98px), (pointer: coarse) {
  .drive-navbar .navbar-brand img.drive-brand-logo {
    width: 48px !important;
    height: 38px !important;
    object-fit: contain !important;
    object-position: center !important;
    padding: 1px !important;
  }
}

/* ===== UX ROUND 2: NAVBAR + DROPZONE MOVIL ===== */
.drive-navbar {
  min-height: 66px !important;
  align-items: center !important;
}

.drive-navbar .navbar-brand {
  min-width: 160px;
  display: inline-flex !important;
  align-items: center !important;
  white-space: nowrap !important;
}

@media (max-width: 991.98px), (pointer: coarse) {
  .drive-navbar {
    min-height: 62px !important;
  }

  .drive-navbar .navbar-brand {
    min-width: 58px !important;
    width: 58px !important;
    flex: 0 0 58px !important;
    overflow: hidden !important;
    font-size: 0 !important;
    margin-right: .35rem !important;
  }

  .drive-navbar .navbar-brand img.drive-brand-logo {
    width: 50px !important;
    height: 40px !important;
    max-width: 50px !important;
    object-fit: contain !important;
    margin-right: 0 !important;
  }

  #temaMenuPanel {
    position: fixed !important;
    top: 64px !important;
    right: 8px !important;
    left: auto !important;
    width: min(310px, calc(100vw - 16px)) !important;
    min-width: 0 !important;
    max-height: calc(100dvh - 76px) !important;
    overflow-y: auto !important;
    transform: none !important;
    z-index: 1205 !important;
  }

  #dropzonePublico.dropzone-drive {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    padding: 12px !important;
    overflow: hidden !important;
  }

  #dropzonePublico.dropzone-drive .dz-message {
    grid-column: 1 / -1 !important;
    width: 100% !important;
  }

  #dropzonePublico.dropzone-drive .dz-preview {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }

  #dropzonePublico.dropzone-drive .dz-preview .dz-image,
  #dropzonePublico.dropzone-drive .dz-preview .dz-details,
  #dropzonePublico.dropzone-drive .dz-preview .dz-progress,
  #dropzonePublico.dropzone-drive .dz-preview .dz-error-message,
  #dropzonePublico.dropzone-drive .dz-preview .dz-success-mark,
  #dropzonePublico.dropzone-drive .dz-preview .dz-error-mark {
    max-width: 100% !important;
  }
}

@media (max-width: 420px) {
  #dropzonePublico.dropzone-drive {
    grid-template-columns: 1fr !important;
  }
}
