/* ============================================================================
   panel/assets/modulos/boveda-archivos.css — el explorador de la Bóveda (A3)
   ============================================================================
   Se apoya en los tokens de marca.css y panel.css y en los componentes
   comunes (.btn, .btn-icono, .pill, .caja, .acciones, .estado-centro). La
   lista es una REJILLA ABIERTA (muestrario «Componentes 4»): filetes de 1 px, sin caja ni
   bisel. Lo único con contorno biselado son los diálogos y el menú, que son
   `.caja` (capa doble): nada de aquí lleva `clip-path` con borde.
   Un solo corte, el del panel: 960 px (< estrecho, ≥ ancho).
   ========================================================================== */

.bva{position:relative}

/* ── LA BARRA: migas a la izquierda, herramientas a la derecha ───────────── */
.bva-barra{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--esp-3);margin:0 0 var(--esp-4)}
.bva-herr{display:flex;align-items:center;gap:var(--esp-2);flex:0 1 auto;min-width:0}
.bva-herr [hidden],.bva-herr[hidden]{display:none}
.bva-herr > .btn{flex:none}
.bva-buscar{position:relative;display:flex;align-items:center;flex:1 1 auto;min-width:0;max-inline-size:var(--campo-m)}
.bva-buscar .icono{position:absolute;left:var(--esp-3);width:1rem;height:1rem;color:var(--texto-3);pointer-events:none}
.bva-buscar input{width:100%;min-height:var(--btn-sm-alto);padding-left:calc(var(--esp-3) * 2 + 1rem);padding-right:var(--btn-sm-alto)}
/* Sin la X nativa (cada navegador la dibuja a su manera): va la de la marca. */
.bva-buscar input::-webkit-search-cancel-button,.bva-buscar input::-webkit-search-decoration{-webkit-appearance:none;appearance:none;display:none}
.bva-buscar .bva-buscar-x{position:absolute;right:0;top:0;bottom:0;inline-size:var(--btn-sm-alto);min-block-size:0;min-height:0;
  background:transparent;--filo-color:transparent;color:var(--texto-3)}
.bva-buscar .bva-buscar-x .icono{position:static;width:1rem;height:1rem;color:inherit}
.bva-buscar .bva-buscar-x:hover{color:var(--texto-1)}
.bva-buscar .bva-buscar-x[hidden]{display:none}
.bva-subir .icono{width:1rem;height:1rem}

.bva-migas{display:flex;flex-wrap:wrap;align-items:center;gap:var(--esp-2);min-width:0;flex:1 1 auto}
.bva-migas ol{display:flex;flex-wrap:wrap;align-items:center;gap:var(--esp-1);margin:0;padding:0;list-style:none;min-width:0}
.bva-migas li{display:inline-flex;align-items:center;min-width:0;font-size:var(--tipo-descripcion);color:var(--texto-3)}
.bva-migas li + li::before{
  content:'';flex:none;width:.4rem;height:.4rem;margin:0 var(--esp-2) 0 var(--esp-1);
  border-top:1.5px solid var(--texto-3);border-right:1.5px solid var(--texto-3);transform:rotate(45deg) scale(.9);
}
.bva-miga{
  font:inherit;color:var(--texto-2);background:transparent;border:0;padding:var(--esp-1) 0;margin:0;cursor:pointer;
  text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:.2em;overflow-wrap:anywhere;text-align:left;
}
.bva-miga:hover{color:var(--yellow);text-decoration-color:var(--yellow)}
.bva-miga:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}
.bva-miga-aqui{color:var(--texto-1);font-weight:600;padding:var(--esp-1) 0;overflow-wrap:anywhere}
.bva-miga-aqui:focus{outline:none}
.bva-miga-aqui:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}
.bva-miga-suelta{padding:var(--esp-1) 0;overflow-wrap:anywhere}

/* ── LAS FILAS ───────────────────────────────────────────────────────────── */
.bva-filas{margin:0;padding:0;list-style:none;border-top:1px solid var(--linea-suave)}
.bva-fila{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--esp-1) var(--esp-3);
  min-height:3rem;padding:var(--esp-2);border-bottom:1px solid var(--linea-suave);
  transition:background var(--t-rapido) var(--curva);
}
.bva-fila:hover{background:var(--velo-2)}
.bva-fila > .bva-c{display:none}
.bva-cab{display:none}
.bva-ico{width:1.25rem;height:1.25rem;color:var(--texto-3)}
.es-carpeta > .bva-ico{color:var(--yellow)}
/* Lo público conserva su icono; el mundo es una insignia en la esquina (COO,
   27 oct 2026): disco de --ink (el aro que lo separa del icono) y el mundo
   relleno en amarillo. La caja `.bva-ico-p` toma el tamaño de cada sitio (por
   su clase: .bva-ico, .bva-mini-ico, .bva-ficha-ico, .es-mover) y el dibujo y
   la insignia se miden en % de ella, así que escala sola. */
.bva-ico-p{position:relative;display:block;flex:none;color:var(--texto-3)}
.bva-ico-p > .icono{display:block;width:100%;height:100%}
.bva-insignia{position:absolute;right:-30%;bottom:-30%;width:74%;height:74%;box-sizing:border-box;padding:6%;
  border-radius:50%;background:var(--ink);color:var(--yellow);box-shadow:0 0 0 1px var(--ink)}
.bva-ico-p > .bva-insignia > .icono{display:block;width:100%;height:100%;color:var(--yellow)}
.bva-n{display:flex;flex-direction:column;align-items:flex-start;gap:var(--esp-1);min-width:0}
.bva-nombre,.bva-nombre-fijo{
  font:inherit;font-size:var(--tipo-cuerpo);line-height:1.3;color:var(--texto-1);text-align:left;
  background:transparent;border:0;padding:0;margin:0;overflow-wrap:anywhere;max-width:100%;
}
.bva-nombre{cursor:pointer}
.bva-nombre:hover{color:var(--yellow)}
.bva-nombre:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}
.bva-meta{font-size:var(--tipo-leyenda);color:var(--texto-3);overflow-wrap:anywhere;line-height:1.4}
.bva-marcas{display:flex;flex-wrap:wrap;gap:var(--esp-1)}
.bva-acc{display:flex;align-items:center;justify-content:flex-end;gap:var(--esp-1)}
.bva-acc .btn-icono{color:var(--texto-2)}
.bva-ancho{display:none}

/* En ancho, las columnas: versión, tamaño, autor y cuándo. */
@media (width >= 960px){
  .bva-fila{grid-template-columns:auto minmax(0,1fr) var(--campo-s) var(--campo-s) var(--campo-m) var(--campo-s) calc(var(--btn-sm-alto) * 3 + var(--esp-1) * 2)}
  .bva-fila > .bva-c{display:block;font-size:var(--tipo-descripcion);color:var(--texto-2);font-variant-numeric:tabular-nums}
  .bva-c-autor{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .bva-cab{display:grid;min-height:0;padding-block:var(--esp-2);font-size:var(--tipo-rotulo);font-weight:600;
    text-transform:uppercase;letter-spacing:.12em;color:var(--texto-3)}
  .bva-cab:hover{background:transparent}
  .bva-cab > .bva-c{font-size:inherit;color:inherit}
  .bva-meta{display:none}
  .bva-meta.bva-meta-siempre{display:block}
  .bva-ancho{display:inline-flex}
}

/* ── LA SELECCIÓN (COO, 19 oct 2026) ──────────────────────────────────────
   Una columna más a la izquierda, solo en la carpeta abierta (.es-explorar):
   la casilla común (componentes.css). En ancho con ratón aparece al pasar
   el cursor o con el foco, y en todas en cuanto hay algo elegido (.con-sel);
   en táctil y en estrecho, siempre. La fila elegida, con el velo amarillo. */
.es-explorar > .bva-fila{grid-template-columns:auto auto minmax(0,1fr) auto}
.es-explorar > .bva-cab{display:grid;min-height:0;padding-block:var(--esp-1);font-size:var(--tipo-rotulo);font-weight:600;
  text-transform:uppercase;letter-spacing:.12em;color:var(--texto-3)}
.es-explorar > .bva-cab:hover{background:transparent}
.es-explorar > .bva-cab > span:nth-child(2){inline-size:1.25rem}
.bva-sel{display:inline-grid;place-items:center;inline-size:1.75rem;block-size:1.75rem;margin-block:calc(var(--esp-1) * -1);cursor:pointer}
.bva-sel input{transition:opacity var(--t-rapido) ease}
.bva-fila.es-sel,.bva-fila.es-sel:hover{background:var(--velo-vivo)}
.bva-selbar{display:flex;align-items:center;gap:var(--esp-1);min-height:var(--btn-sm-alto);min-width:0}

.bva-selbar[hidden]{display:none}
.bva-selbar-n{flex:1 1 auto;margin-right:var(--esp-2);font-size:var(--tipo-descripcion);font-weight:600;color:var(--texto-1);
  white-space:nowrap;font-variant-numeric:tabular-nums}
.bva-selbar .btn-icono{color:var(--texto-2)}
.bva-selbar .btn-icono[aria-disabled="true"]{opacity:.4;cursor:not-allowed}
.bva-selbar .btn-icono[aria-disabled="true"]:hover{color:var(--texto-2);background:transparent}
@media (hover:hover) and (width >= 960px){
  .es-explorar:not(.con-sel) > .bva-fila:not(.bva-cab):not(:hover):not(:focus-within) .bva-sel input,
  .es-explorar:not(.con-sel):not(:hover) > .bva-cab:not(:focus-within) .bva-sel input{opacity:0}
}
/* En estrecho, la barra de la selección flota abajo (una .caja, encima de
   la ventana de subidas si está): en una lista larga, la de arriba quedaría
   fuera de la vista. Los avisos y el final de la página suben por encima. */
@media (max-width:959.98px){
  .bva-sel{inline-size:2.25rem;block-size:2.25rem;margin-inline:calc(var(--esp-1) * -1) 0}
  .bva-selbar:not([hidden]){position:fixed;z-index:54;
    left:max(var(--esp-4),env(safe-area-inset-left));right:max(var(--esp-4),env(safe-area-inset-right));
    bottom:calc(var(--esp-4) + max(env(safe-area-inset-bottom), var(--dock-h, 0px)) + var(--bva-flot-alto,0px) + var(--esp-2));
    padding:var(--esp-1) var(--esp-1) var(--esp-1) var(--esp-4);--caja-fondo:var(--sup-2)}
  html:has(.bva-selbar:not([hidden])) .avisos{
    bottom:calc(var(--esp-4) + max(env(safe-area-inset-bottom), var(--dock-h, 0px)) + var(--bva-flot-alto,0px) + var(--bva-sel-alto,3.5rem) + var(--esp-4))}
  html:has(.bva-selbar:not([hidden])) .contenido{padding-bottom:calc(var(--bva-flot-alto,0px) + var(--bva-sel-alto,3.5rem) + var(--esp-bloque))}
}

/* Los programas antes de descargar varios. */
.bva-programas{margin:0;padding:0;list-style:none;border-top:1px solid var(--linea-suave);max-height:min(var(--campo-m),40dvh);overflow-y:auto}
.bva-programas li{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:var(--esp-3);padding:var(--esp-2) 0;border-bottom:1px solid var(--linea-suave)}
.bva-programas-t{display:flex;flex-direction:column;gap:var(--esp-1);min-width:0}
.bva-programas-n{font-size:var(--tipo-descripcion);color:var(--texto-1);overflow-wrap:anywhere}
.bva-programas small{font-size:var(--tipo-leyenda);color:var(--texto-3)}

/* ── SOLTAR SOBRE UNA SUBCARPETA ──────────────────────────────────────────
   La fila de destino queda marcada y el velo se aclara sobre ella. */
.bva-fila.es-soltar{background:var(--velo-vivo)}
/* «Ver ubicación» tras mover: un barrido de luz cruza la fila y deja el filo amarillo, que se apaga. */
.bva-fila.es-llegada{
  background-image:linear-gradient(100deg,transparent 0 38%,var(--velo-vivo) 50%,transparent 62% 100%);
  background-size:260% 100%;background-repeat:no-repeat;
  box-shadow:inset 3px 0 0 var(--yellow);
  animation:bva-llegada 3.2s var(--curva) both;
}
@keyframes bva-llegada{
  0%{background-position:130% 0;box-shadow:inset 3px 0 0 var(--yellow)}
  45%{background-position:-30% 0}
  75%{box-shadow:inset 3px 0 0 var(--yellow)}
  100%{background-position:-30% 0;box-shadow:inset 3px 0 0 transparent}
}
@media (prefers-reduced-motion: reduce){
  .bva-fila.es-llegada{animation:none;background:var(--velo-vivo)}
}
.bva-fila.es-soltar-no{background:var(--velo-alerta)}

/* ── ARRASTRAR PARA MOVER (COO, 27 oct 2026) ─────────────────────────────
   Lo que se arrastra queda tenue; el destino (subcarpeta o miga), marcado
   como al subir. La etiqueta que sigue al puntero se pinta fuera de la
   vista: el navegador la copia al empezar. */
.bva-fila[draggable="true"]{cursor:grab}
.bva-fila.es-arrastrando{opacity:var(--opacidad-apagado)}
.bva-miga.es-soltar{background:var(--velo-vivo);color:var(--yellow)}
.bva-miga.es-soltar-no{background:var(--velo-alerta)}
.bva-arrastre{position:fixed;top:-200px;left:0;max-width:20rem;padding:var(--esp-2) var(--esp-3);background:var(--yellow);color:var(--sobre-amarillo);
  font:600 var(--tipo-control)/1.3 var(--fuente-titular);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}

/* Vacío, error, sin permiso: centrados en el hueco de la lista. */
.bva-vacio{--estado-alto:16rem;gap:var(--esp-3);padding:var(--esp-bloque) var(--esp-4);color:var(--texto-2)}
.bva-vacio-ico{width:2.25rem;height:2.25rem;color:var(--yellow)}
.bva-nota{margin:var(--esp-4) 0 0;font-size:var(--tipo-leyenda);color:var(--texto-3)}

/* ── SOLTAR EN TODA LA PANTALLA ──────────────────────────────────────────
   Un velo sobre la ventana entera mientras se arrastran archivos, con un
   recuadro biselado (.caja: contorno completo) en el centro. Es un popover
   (top layer): se ve también sobre un <dialog>. No coge el puntero, para no
   cortar el arrastre. En amarillo si se puede subir; en gris, con el motivo,
   si no. */
.bva-velo{
  position:fixed;inset:0;z-index:95;width:auto;height:auto;max-width:none;max-height:none;margin:0;
  padding:var(--esp-4);border:0;overflow:hidden;color:var(--texto-1);
  background:color-mix(in srgb,var(--ink) 74%,transparent);
  display:none;align-items:center;justify-content:center;pointer-events:none;
}
.bva-velo.es-visible{display:flex;animation:bva-velo-entra var(--t-medio) var(--curva) both}
.bva-velo-caja{
  --filo-color:var(--yellow);--caja-fondo:var(--sup-2);
  display:flex;flex-direction:column;align-items:center;gap:var(--esp-2);text-align:center;
  width:min(28rem,100%);padding:var(--esp-caja) var(--esp-4);
}
/* Sobre una subcarpeta: el velo se vuelve transparente y lo oscuro lo pone
   la sombra del foco, que deja ver la fila; el recuadro baja al pie. */
.bva-velo.es-fila{background:transparent;align-items:flex-end;padding-bottom:calc(var(--esp-bloque) + env(safe-area-inset-bottom))}
.bva-velo-foco{position:absolute;box-shadow:0 0 0 200vmax color-mix(in srgb,var(--ink) 74%,transparent);
  outline:2px solid var(--yellow);outline-offset:-2px;transition:top var(--t-rapido) var(--curva),height var(--t-rapido) var(--curva)}
.bva-velo-foco[hidden]{display:none}
.bva-velo.es-no .bva-velo-foco{outline-color:var(--line)}
.bva-velo-ico{width:2.5rem;height:2.5rem;color:var(--yellow)}
.bva-velo-ico.es-no,.bva-velo.es-no .bva-velo-ico.es-si{display:none}
.bva-velo.es-no .bva-velo-ico.es-no{display:inline-block}
.bva-velo-t{margin:0;font-size:var(--tipo-descripcion);line-height:1.4;color:var(--texto-2)}
.bva-velo-n{display:block;max-width:100%;font-family:var(--fuente-titular);font-weight:var(--peso-titular);
  font-size:var(--tipo-entradilla);line-height:var(--interlinea-titular);color:var(--texto-1);overflow-wrap:anywhere}
.bva-velo-n[hidden]{display:none}
.bva-velo.es-no .bva-velo-caja{--filo-color:var(--line)}
.bva-velo.es-no .bva-velo-ico{color:var(--texto-3)}
.bva-velo.es-no .bva-velo-t{color:var(--texto-1);font-weight:600;font-size:var(--tipo-cuerpo)}
@keyframes bva-velo-entra{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion: reduce){
  .bva-velo.es-visible{animation:none}
  .bva-velo-foco,.bva-sel input{transition:none}

}

/* ── LA VENTANA DE SUBIDAS (flotante, como la de Google Drive) ────────────
   Fija abajo a la derecha, encima de todo y sin empujar la lista. Una .caja
   (capa doble, contorno completo); el scroll va en la lista, que es su
   `.caja-scroll`. En < 960 px, a todo el ancho con 16 px de margen y como
   mucho el 45 % del alto. */
.bva-flot{
  position:fixed;z-index:55;
  right:max(var(--esp-4),env(safe-area-inset-right));bottom:calc(var(--esp-4) + max(env(safe-area-inset-bottom), var(--dock-h, 0px)));
  width:min(24rem,calc(100vw - 2 * var(--esp-4)));max-height:min(32rem,70dvh);
  display:flex;flex-direction:column;
  --caja-fondo:var(--sup-2);
}
.bva-flot[hidden]{display:none}
.bva-flot:focus{outline:none}
.bva-flot:focus-visible{--filo-color:var(--yellow)}
@media (max-width:959.98px){
  .bva-flot{left:max(var(--esp-4),env(safe-area-inset-left));width:auto;max-height:45dvh}
}
.bva-flot-cab{flex:none;display:flex;align-items:center;gap:var(--esp-1);padding:var(--esp-2) var(--esp-2) var(--esp-2) var(--esp-4)}
.bva-flot-t{flex:1 1 auto;min-width:0;margin:0;font-size:var(--tipo-descripcion);font-weight:600;color:var(--texto-1);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.bva-flot-b{flex:none;display:inline-grid;place-items:center;inline-size:var(--btn-sm-alto);block-size:var(--btn-sm-alto);
  padding:0;border:0;background:transparent;color:var(--texto-2);cursor:pointer;clip-path:var(--bevel-xs)}
.bva-flot-b .icono{width:1.1rem;height:1.1rem}
.bva-flot-b:hover{color:var(--yellow);background:var(--velo-2)}
.bva-flot-b:focus-visible{outline:2px solid var(--yellow);outline-offset:-2px;color:var(--yellow)}
.bva-flot-min .icono{transition:transform var(--t-medio) var(--curva)}
.bva-flot.es-min .bva-flot-min .icono{transform:rotate(180deg)}
.bva-flot.es-min .bva-cola-lista{display:none}
.bva-flot-q{flex:none;display:flex;flex-wrap:wrap;align-items:center;gap:var(--esp-2);
  padding:0 var(--esp-4) var(--esp-3);border-bottom:1px solid var(--linea-suave)}
.bva-flot-q[hidden]{display:none}
/* Los avisos del panel suben por encima de la ventana, y el final de la
   página se puede ver por encima de ella. */
.avisos{bottom:calc(var(--esp-4) + max(env(safe-area-inset-bottom), var(--dock-h, 0px)) + var(--bva-flot-alto,0px) + var(--esp-2))}
.con-bva-flot .contenido{padding-bottom:calc(var(--bva-flot-alto,0px) + var(--esp-bloque))}

.bva-cola-lista{flex:1 1 auto;margin:0;padding:0 0 var(--esp-1);list-style:none;border-top:1px solid var(--linea-suave)}
/* Queda lista por debajo: el borde inferior se funde (como .pestanas.mas-dcha). */
.bva-cola-lista.mas-abajo{
  -webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - var(--esp-caja)),transparent);
          mask-image:linear-gradient(to bottom,#000 calc(100% - var(--esp-caja)),transparent)}
.bva-item{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:0 var(--esp-3);
  min-height:2.75rem;padding:var(--esp-1) var(--esp-2) var(--esp-1) var(--esp-4);
}
.bva-item + .bva-item{border-top:1px solid var(--linea-suave)}
.bva-item > .bva-ico{width:1.1rem;height:1.1rem;color:var(--texto-3)}
.bva-item-c{display:flex;flex-direction:column;min-width:0}
.bva-item-n{display:block;font-size:var(--tipo-descripcion);color:var(--texto-1);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* La segunda línea: la frase corta (error, reconectando, cancelada) y sus
   botones, solo cuando hay algo que decir. */
.bva-item-pie{display:flex;flex-wrap:wrap;align-items:center;gap:var(--esp-1) var(--esp-2)}
.bva-item-pie:has(.bva-item-e-t:empty):has(.bva-item-acc:empty){display:none}
.bva-item-e{display:flex;align-items:center;gap:var(--esp-1);margin:0;min-width:0;
  font-size:var(--tipo-leyenda);line-height:1.4;color:var(--texto-3);font-variant-numeric:tabular-nums}
.bva-item-e:has(.bva-item-e-t:empty){display:none}
.bva-item-e-ico{display:none;flex:none}
.bva-item-e-ico .icono{width:.85rem;height:.85rem}
.bva-item.es-error .bva-item-e,.bva-item.es-conflicto .bva-item-e{color:var(--gris-3)}
.bva-item-acc{display:flex;flex-wrap:wrap;align-items:center;gap:var(--esp-2);padding:var(--esp-1) 0}
.bva-item-acc:empty{display:none}
/* «¿Cancelar la subida?» en la propia fila, sin modal. */
.bva-item-q{display:flex;flex-wrap:wrap;align-items:center;gap:var(--esp-2)}
.bva-item-q-t{font-size:var(--tipo-descripcion);font-weight:600;color:var(--texto-1)}
.bva-item.es-hecho > .bva-ico{color:var(--yellow)}
.bva-item.es-cancelada > .bva-ico,.bva-item.es-cancelada .bva-item-n{color:var(--texto-3)}

/* LA MARCA: el anillo o el icono del estado y, encima, el botón (la X). */
.bva-marca{position:relative;display:grid;place-items:center;inline-size:var(--btn-sm-alto);block-size:var(--btn-sm-alto)}
.bva-marca > *,.bva-marca-b{grid-area:1 / 1}
.bva-anillo{position:relative;display:grid;place-items:center;inline-size:1.5rem;block-size:1.5rem}
.bva-anillo[hidden]{display:none}
.bva-anillo-svg{grid-area:1 / 1;inline-size:100%;block-size:100%}
.bva-anillo-svg circle{fill:none;stroke-width:2.6}
.bva-anillo-pista{stroke:var(--line)}
.bva-anillo-arco{stroke:var(--yellow);stroke-dasharray:100;stroke-dashoffset:100;
  transition:stroke-dashoffset var(--t-medio) var(--curva)}
.bva-anillo-reco{grid-area:1 / 1;display:none;width:.8rem;height:.8rem;color:var(--texto-2)}
.bva-item.es-reconecta .bva-anillo-arco{stroke:var(--yellow-bajo)}
.bva-item.es-reconecta .bva-anillo-reco{display:block}
.bva-marca-ico{display:grid;place-items:center}
.bva-marca-ico:empty{display:none}
.bva-marca-ico .icono{width:1.35rem;height:1.35rem}
.bva-item.es-hecho .bva-marca-ico{color:var(--yellow)}
.bva-item.es-error .bva-marca-ico,.bva-item.es-conflicto .bva-marca-ico{color:var(--gris-3)}
.bva-item.es-cancelada .bva-marca-ico{color:var(--texto-3)}
.bva-marca-b-hueco{display:contents}
.bva-marca-b{
  position:relative;z-index:1;display:grid;place-items:center;inline-size:1.75rem;block-size:1.75rem;
  padding:0;border:0;border-radius:50%;background:transparent;color:var(--texto-1);cursor:pointer;
}
.bva-marca-b .icono{width:1rem;height:1rem;opacity:0;transition:opacity var(--t-rapido) ease}
.bva-marca-b:focus-visible{outline:2px solid var(--yellow);outline-offset:-2px}
/* Cursor o foco: la marca se va y queda la X, sobre un velo redondo. */
.bva-marca-b:hover,.bva-marca-b:focus-visible{background:var(--velo-2);color:var(--yellow)}
.bva-marca-b:hover .icono,.bva-marca-b:focus-visible .icono{opacity:1}
.bva-marca:has(.bva-marca-b:hover,.bva-marca-b:focus-visible) > .bva-anillo,
.bva-marca:has(.bva-marca-b:hover,.bva-marca-b:focus-visible) > .bva-marca-ico{opacity:0}
/* TÁCTIL (sin hover): la X pequeña siempre dentro del anillo; un toque
   cancela. En el error o la cancelada, la X sustituye al icono (la frase de
   debajo ya lleva el aviso). */
@media (hover:none){
  .bva-marca,.bva-marca-b{inline-size:2.75rem;block-size:2.75rem}
  .bva-marca-b .icono{opacity:1;width:.7rem;height:.7rem;color:var(--texto-1)}
  .bva-marca.con-boton .bva-anillo-reco,.bva-marca.con-boton > .bva-marca-ico{display:none}
  .bva-item:not(.es-espera):not(.es-subiendo) .bva-marca-b .icono{width:1rem;height:1rem}
  .bva-item-e-ico{display:inline-flex}
}
@media (prefers-reduced-motion:reduce){
  .bva-anillo-arco,.bva-marca-b .icono,.bva-flot-min .icono{transition:none}
}


/* ── EL MENÚ «MÁS» ───────────────────────────────────────────────────────── */
.bva-menu{
  position:fixed;z-index:60;margin:0;padding:var(--esp-2);list-style:none;min-width:var(--campo-s);max-width:calc(100vw - var(--esp-4));
  --caja-fondo:var(--sup-2);
}
.bva-menu-item{
  display:flex;align-items:center;gap:var(--esp-3);width:100%;min-height:2.5rem;padding:var(--esp-2) var(--esp-3);
  font:inherit;font-size:var(--tipo-descripcion);color:var(--texto-1);text-align:left;white-space:nowrap;
  background:transparent;border:0;cursor:pointer;
}
.bva-menu-item .icono{width:1.1rem;height:1.1rem;color:var(--texto-3)}
.bva-menu-item:hover,.bva-menu-item:focus-visible{background:var(--velo-2);color:var(--yellow);outline:none}
.bva-menu-item:hover .icono,.bva-menu-item:focus-visible .icono{color:var(--yellow)}

/* ── LOS DIÁLOGOS ────────────────────────────────────────────────────────── */
.bva-dialogo{margin:auto;padding:0;border:0;background:none;color:inherit;width:100%;max-width:min(var(--campo-l),calc(100vw - var(--esp-4) * 2))}
.bva-dialogo::backdrop{background:rgba(23,17,13,.72)}
.bva-dialogo-caja{padding:var(--esp-caja);display:flex;flex-direction:column;gap:var(--esp-3);--caja-fondo:var(--sup-2)}
.bva-dialogo-titulo{
  font-family:var(--fuente-titular);font-weight:var(--peso-titular);font-size:var(--tipo-entradilla);
  line-height:var(--interlinea-titular);color:var(--texto-1);overflow-wrap:anywhere;margin:0;text-transform:none;letter-spacing:0;
}
.bva-dialogo-texto{margin:0;font-size:var(--tipo-descripcion);color:var(--texto-2);line-height:1.5;overflow-wrap:anywhere}
.bva-dialogo-error.aviso-error{margin:0;animation:none}
.bva-dialogo-error:empty{display:none}
.bva-dialogo-form{display:flex;flex-direction:column;gap:var(--esp-3)}
.bva-dialogo-acc{justify-content:flex-end;margin-top:var(--esp-2)}
.bva-nombre-campo{display:flex;align-items:center;gap:var(--esp-2)}
.bva-nombre-campo input{flex:1 1 auto;min-width:0}
.bva-ext{color:var(--texto-3);font-size:var(--tipo-descripcion)}
.btn.es-trabajando{cursor:progress}

/* Mover: un explorador pequeño. */
.bva-mover{max-width:min(var(--campo-l),calc(100vw - var(--esp-4) * 2))}
.bva-mover-lista{max-height:min(var(--campo-m),50dvh);overflow-y:auto;overscroll-behavior:contain;border-top:1px solid var(--linea-suave)}
.bva-mover-filas{margin:0;padding:0;list-style:none}
.bva-mover-fila{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--esp-3);width:100%;min-height:2.75rem;
  padding:var(--esp-2);font:inherit;font-size:var(--tipo-descripcion);text-align:left;color:var(--texto-1);
  background:transparent;border:0;border-bottom:1px solid var(--linea-suave);cursor:pointer;
}
.bva-mover-fila span{overflow-wrap:anywhere}
.bva-mover-fila .icono{width:1.1rem;height:1.1rem;color:var(--yellow)}
.bva-mover-fila .bva-ico-p{width:1.1rem;height:1.1rem;color:var(--yellow)}
.bva-mover-fila .bva-ico-p > .icono{width:100%;height:100%}
.bva-mover-fila .bva-ico-p > .bva-insignia > .icono{color:var(--yellow)}
.bva-mover-fila .bva-flecha{color:var(--texto-3)}
.bva-mover-fila:hover{background:var(--velo-2)}
.bva-mover-fila:focus-visible{outline:2px solid var(--yellow);outline-offset:-2px}
.bva-mover-fila.es-solo-ver{color:var(--texto-2)}
.bva-mover-fila.es-solo-ver .icono:first-child{color:var(--texto-3)}
.bva-mover-fila.es-solo-ver .bva-ico-p > .bva-insignia > .icono:first-child{color:var(--yellow)}
.bva-mover-nueva{align-self:flex-start}
.bva-mover-nueva[hidden]{display:none}
.bva-mover-motivo{margin:0;font-size:var(--tipo-leyenda);color:var(--texto-3)}
.bva-mover-motivo:empty{display:none}
.bva-mover-vacio{margin:0;padding:var(--esp-4) var(--esp-2);font-size:var(--tipo-descripcion);color:var(--texto-3)}

/* La ficha de un archivo: panel a la derecha, de alto completo (como el manual). */
.bva-ficha{position:fixed;inset:0 0 0 auto;margin:0;max-width:none;width:min(var(--campo-xl),calc(100vw - var(--esp-bloque)));height:100dvh;max-height:none}
.bva-ficha[open]{display:flex}
.bva-ficha .bva-dialogo-caja{flex:1 1 auto;width:100%;padding:0;gap:0;overflow:hidden;--caja-fondo:var(--sup-1)}
.bva-ficha-cab{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:var(--esp-3);
  padding:calc(var(--esp-caja) * .75 + env(safe-area-inset-top, 0px)) var(--esp-caja) var(--esp-4);border-bottom:1px solid var(--line);
}
.bva-ficha-ico{width:1.75rem;height:1.75rem;color:var(--yellow)}
.bva-ficha-meta{margin:var(--esp-1) 0 0;font-size:var(--tipo-leyenda);color:var(--texto-3)}
.bva-ficha-cuerpo{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding:var(--esp-4) var(--esp-caja) var(--esp-bloque);
  display:flex;flex-direction:column;gap:var(--esp-rejilla)}
/* Los hijos no se encogen: con flex, el iframe del PDF se aplastaba a 0. */
.bva-ficha-cuerpo > *{flex:none}
.bva-ficha-acc{display:flex;flex-wrap:wrap;align-items:center;gap:var(--esp-2)}
.bva-solo-estrecho{display:none}
@media (max-width:959.98px){
  .bva-ficha-acc{flex-wrap:nowrap}
  .bva-ficha-acc .bva-solo-ancho{display:none}
  .bva-ficha-acc .bva-solo-estrecho{display:inline-flex}
}
.bva-ficha-acc .btn .icono{width:1rem;height:1rem}
.bva-ficha-sec{display:flex;flex-direction:column;gap:var(--esp-2)}
.bva-ficha-h{font-size:var(--tipo-rotulo);font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--texto-2);margin:0}
.bva-ficha-nada{margin:0;font-size:var(--tipo-descripcion);color:var(--texto-3)}

.bva-previa{display:flex;align-items:center;justify-content:center;min-height:var(--campo-s);background:var(--velo-1);box-shadow:inset 0 0 0 1px var(--linea-suave)}
.bva-previa-pedir{
  display:flex;flex-direction:column;align-items:center;gap:var(--esp-2);width:100%;min-height:var(--campo-s);justify-content:center;
  font:inherit;font-size:var(--tipo-descripcion);font-weight:600;color:var(--texto-2);background:transparent;border:0;cursor:pointer;
}
.bva-previa-pedir .icono{width:2rem;height:2rem;color:var(--yellow)}
.bva-previa-pedir:hover{color:var(--yellow);background:var(--velo-vivo)}
.bva-previa-pedir:focus-visible{outline:2px solid var(--yellow);outline-offset:-2px}
.bva-previa-img{display:block;max-width:100%;max-height:60dvh;width:auto;height:auto;margin:auto}
.bva-previa-pdf{display:block;width:100%;height:60dvh;border:0;background:var(--sup-0)}
.bva-previa-mal{margin:0;padding:var(--esp-4);font-size:var(--tipo-descripcion);color:var(--texto-3);text-align:center}

.bva-versiones,.bva-aperturas{margin:0;padding:0;list-style:none;border-top:1px solid var(--linea-suave)}
.bva-version{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--esp-3);
  padding:var(--esp-2) 0;border-bottom:1px solid var(--linea-suave)}
.bva-version-n{font-weight:600;color:var(--texto-2);font-variant-numeric:tabular-nums;min-width:2rem}
.bva-version.es-actual .bva-version-n{color:var(--yellow)}
.bva-version-m{display:flex;flex-direction:column;gap:var(--esp-1);min-width:0;font-size:var(--tipo-descripcion);color:var(--texto-1)}
.bva-version-m small{font-size:var(--tipo-leyenda);color:var(--texto-3);overflow-wrap:anywhere}
.bva-version-acc{display:flex;align-items:center;gap:var(--esp-1)}
/* Fijar (120): apagado en gris, fijada en amarillo. */
.bva-fijar{color:var(--texto-3)}
.bva-fijar[aria-pressed="true"]{color:var(--yellow)}
.bva-fijada{width:1.15rem;height:1.15rem;color:var(--yellow);margin-inline:var(--esp-2)}
.bva-aperturas li{display:flex;flex-direction:column;gap:var(--esp-1);padding:var(--esp-2) 0;border-bottom:1px solid var(--linea-suave)}
.bva-ap-1{font-size:var(--tipo-descripcion);color:var(--texto-2)}
.bva-ap-1 strong{color:var(--texto-1);font-weight:600}
.bva-ap-2{font-size:var(--tipo-leyenda);color:var(--texto-3);font-variant-numeric:tabular-nums}



@media (max-width:959.98px){
  .bva-barra{flex-direction:column;align-items:stretch}
  .bva-buscar{max-inline-size:none}
  /* Con «Crear miniaturas» (245) no caben seis en 360 px: el buscador va
     solo en su línea y los botones, juntos debajo, a la derecha. */
  .bva-herr{flex-wrap:wrap;justify-content:flex-end}
  .bva-buscar{flex:1 1 100%}
  .bva-ficha{width:min(var(--campo-xl),calc(100vw - var(--esp-4)))}
  .bva-ficha-cab,.bva-ficha-cuerpo{padding-inline:var(--esp-4)}
  .bva-dialogo-caja{padding:var(--esp-tarjeta)}
  .bva-version{grid-template-columns:auto minmax(0,1fr)}
  .bva-version-acc{grid-column:2}
}
@media (prefers-reduced-motion:reduce){
  .bva-fila{transition:none}
}

/* La papelera y los resultados de buscar no llevan columnas: nombre, de
   dónde y acciones. */
@media (width >= 960px){
  .es-explorar > .bva-fila{grid-template-columns:auto auto minmax(0,1fr) var(--campo-s) var(--campo-s) var(--campo-m) var(--campo-s) calc(var(--btn-sm-alto) * 3 + var(--esp-1) * 2)}
  .bva-filas.es-papelera .bva-fila,.bva-filas.es-resultados .bva-fila{grid-template-columns:auto minmax(0,1fr) auto}
  .bva-filas.es-papelera .bva-fila > .bva-c,.bva-filas.es-resultados .bva-fila > .bva-c{display:none}
}
@media (max-width:959.98px){
  .bva-filas.es-papelera .bva-fila{grid-template-columns:auto minmax(0,1fr)}
  .bva-filas.es-papelera .bva-acc{grid-column:2;justify-content:flex-start}
}
/* Las acciones de la papelera, en huecos fijos: alineadas fila a fila. */
.bva-acc-papelera{display:grid;grid-template-columns:auto repeat(2,max-content);justify-content:end}
.bva-hueco{inline-size:var(--btn-sm-alto)}
@media (max-width:959.98px){
  .bva-acc-papelera{justify-content:start}
  .bva-hueco{inline-size:2.75rem}
}
/* «Se borra el …»: el reloj y la fecha con el acento, para que se vea. */
.bva-plazo{display:inline-flex;align-items:center;gap:var(--esp-1);font-size:var(--tipo-leyenda);font-weight:600;color:var(--yellow)}
.bva-plazo .icono{flex:none;width:.9rem;height:.9rem}

/* Los datos de la ficha (117): rótulo y valor en dos columnas. */
.bva-datos{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:var(--esp-2) var(--esp-4);margin:0}
.bva-datos dt{font-size:var(--tipo-rotulo);font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--texto-3);padding-top:.15em}
.bva-datos dd{margin:0;font-size:var(--tipo-descripcion);color:var(--texto-1);overflow-wrap:anywhere}
.bva-datos-ruta{color:var(--texto-2)}
/* La ruta original de algo de la papelera. */
.bva-ruta-orig{display:flex;align-items:flex-start;gap:var(--esp-1)}
.bva-ruta-orig .icono{flex:none;width:.9rem;height:.9rem;margin-top:.1rem}
.bva-version.es-fuera .bva-version-n,.bva-version.es-fuera .bva-version-m{color:var(--texto-3)}

/* El aviso antes de descargar un programa. */
.bva-programa-aviso{display:flex;align-items:flex-start;gap:var(--esp-2);margin:0;
  font-size:var(--tipo-descripcion);font-weight:600;color:var(--texto-1);line-height:1.5}
.bva-programa-aviso .icono{flex:none;width:1.15rem;height:1.15rem;margin-top:.15rem;color:var(--yellow)}

/* ── IMPORTAR DESDE DRIVE (B4) ─────────────────────────────────────────────
   El diálogo que sale solo si entre lo elegido hay documentos de Google o algo
   que no se puede importar (boveda-drive.js). Reutiliza la lista y el aviso de
   «descargar un programa»; solo añade «Convertir a» (dos chips de radio, como
   los de Comunicados) y el apagado de lo que no entra. */
.bva-drive-formato{display:flex;flex-wrap:wrap;align-items:center;gap:var(--esp-2)}
.bva-drive-etq{margin-right:var(--esp-1);font-size:var(--tipo-descripcion);color:var(--texto-2)}
.bva-drive-formato .chip:has(input:checked){color:var(--yellow)}
.bva-programas li.es-no .bva-ico,.bva-programas li.es-no .bva-programas-n{color:var(--texto-3)}

/* ── EL ALMACENAMIENTO (migración 123) ───────────────────────────────────
   Al pie de la lista: una línea y una barra fina (como .pc-barra del
   muestrario, «Maquetación 6»: recta, sin contorno). Al pulsarla, un panel .caja con
   el desglose. Tramos: actuales en amarillo, versiones en amarillo bajo,
   papelera en gris; pasado el cupo, una raya marca dónde acaba lo gratis. */
.bva-pie{display:flex;margin-top:var(--esp-4)}
.bva-pie[hidden]{display:none}
.bva-cupo{display:flex;flex-direction:column;gap:var(--esp-1);inline-size:min(100%,var(--campo-m));padding:var(--esp-2) 0;
  font:inherit;font-size:var(--tipo-leyenda);color:var(--texto-3);text-align:left;background:transparent;border:0;cursor:pointer;
  font-variant-numeric:tabular-nums}
.bva-cupo:hover,.bva-cupo[aria-expanded="true"]{color:var(--texto-1)}
.bva-cupo:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}
.bva-cupo-barra{position:relative;display:block;block-size:.25rem;background:var(--line);overflow:hidden}
.bva-cupo-barra > i{position:absolute;inset:0;background:var(--yellow);transform-origin:0 50%;transform:scaleX(var(--p,0));
  transition:transform var(--t-lento) var(--curva)}
.bva-cupo.es-pasado .bva-cupo-t{color:var(--texto-1);font-weight:600}

.bva-cupo-panel{position:fixed;z-index:60;inline-size:min(20rem,calc(100vw - var(--esp-4) * 2));max-block-size:calc(100dvh - var(--esp-4));
  overflow-y:auto;overscroll-behavior:contain;padding:var(--esp-3) var(--esp-4) var(--esp-4);
  display:flex;flex-direction:column;gap:var(--esp-3);--caja-fondo:var(--sup-2)}
.bva-cupo-panel:focus{outline:none}
.bva-cupo-panel > *{flex:none}
.bva-cupo-cab{display:flex;align-items:center;justify-content:space-between;gap:var(--esp-2);margin-right:calc(var(--esp-2) * -1)}
.bva-cupo-h{margin:0;font-family:var(--fuente-titular);font-weight:var(--peso-titular);font-size:var(--tipo-descripcion);
  line-height:var(--interlinea-titular);letter-spacing:var(--tracking-titular);text-transform:uppercase;color:var(--texto-1)}
.bva-cupo-total{margin:0;font-size:var(--tipo-descripcion);color:var(--texto-2);font-variant-numeric:tabular-nums}
.bva-cupo-total strong{font-size:var(--tipo-entradilla);font-weight:600;color:var(--texto-1)}
.bva-cupo-tramos{position:relative;display:flex;block-size:.5rem;background:var(--line);overflow:hidden}
.bva-cupo-tramos > i{display:block;block-size:100%}
.bva-cupo-tramos > b{position:absolute;inset-block:0;inline-size:2px;margin-left:-1px;background:var(--texto-1)}
.bva-tramo-a{--tramo:var(--yellow)}
.bva-tramo-v{--tramo:var(--yellow-bajo)}
.bva-tramo-p{--tramo:var(--gris-3)}
.bva-tramo-t{--tramo:var(--gris-4)}
.bva-tramo-i{--tramo:var(--gris-2)}
.bva-tramo-s{--tramo:transparent}
.bva-cupo-tramos > i{background:var(--tramo)}
.bva-cupo-datos{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--esp-2) var(--esp-4);margin:0;
  font-size:var(--tipo-descripcion);font-variant-numeric:tabular-nums}
.bva-cupo-k{display:flex;align-items:center;gap:var(--esp-2);color:var(--texto-2)}
.bva-cupo-k::before{content:'';flex:none;inline-size:.5rem;block-size:.5rem;background:var(--tramo);box-shadow:inset 0 0 0 1px var(--line)}
.bva-cupo-datos dd{margin:0;text-align:right;color:var(--texto-1)}
.bva-cupo-queda{margin:0;font-size:var(--tipo-descripcion);color:var(--texto-2)}
.bva-cupo-queda.es-pasado{color:var(--texto-1);font-weight:600}
.bva-cupo-sec{display:flex;flex-direction:column;gap:var(--esp-2);padding-top:var(--esp-3);border-top:1px solid var(--linea-suave)}
.bva-cupo-areas{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--esp-2)}
.bva-cupo-areas li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--esp-1) var(--esp-3);
  font-size:var(--tipo-descripcion);font-variant-numeric:tabular-nums}
.bva-cupo-area-n{color:var(--texto-2);overflow-wrap:anywhere}
.bva-cupo-area-b{color:var(--texto-1)}
.bva-cupo-area-barra{grid-column:1 / -1;position:relative;block-size:2px;background:var(--linea-suave);overflow:hidden}
.bva-cupo-area-barra::after{content:'';position:absolute;inset:0;background:var(--yellow-bajo);transform-origin:0 50%;transform:scaleX(var(--p,0))}
@media (prefers-reduced-motion:reduce){
  .bva-cupo-barra > i{transition:none}
}

/* ── COMPARTIR Y CARPETAS PÚBLICAS (B3, migración 131) ───────────────────── */
.bva-compartir{max-width:min(var(--campo-xl),calc(100vw - var(--esp-4) * 2))}
.bva-compartir .bva-dialogo-caja{max-height:calc(100dvh - var(--esp-4) * 2);overflow-y:auto}
.bva-comp-zona{display:flex;flex-direction:column;gap:var(--esp-3)}
.bva-plazos{display:flex;flex-wrap:wrap;gap:var(--esp-2)}
.bva-plazos .btn[aria-pressed="true"]{--filo-color:var(--yellow);color:var(--yellow)}
.bva-plazo-fecha{margin-top:var(--esp-2)}
.bva-comp-mas{align-self:flex-start}
.bva-comp-mas[aria-expanded="true"] svg{transform:rotate(180deg)}
.bva-comp-extra{display:flex;flex-direction:column;gap:var(--esp-3)}
.bva-comp-extra[hidden]{display:none}
.bva-comp-aviso{margin:0;font-size:var(--tipo-descripcion);color:var(--yellow);line-height:1.5}
.bva-comp-hecho{display:flex;flex-direction:column;gap:var(--esp-3)}
.bva-comp-url{display:flex;gap:var(--esp-2);align-items:center}
.bva-comp-url-txt{flex:1 1 auto;min-width:0;font-variant-numeric:tabular-nums}
.bva-slug{flex-wrap:wrap}
.bva-slug input{flex:0 1 var(--campo-s)}

.bva-enlaces{margin:0;padding:0;list-style:none;border-top:1px solid var(--linea-suave)}
.bva-enlace{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--esp-2) var(--esp-3);
  padding:var(--esp-2) 0;border-bottom:1px solid var(--linea-suave)}
.bva-enlace.es-fuera .bva-enlace-m{opacity:.7}
.bva-enlace-m{display:flex;flex-direction:column;gap:var(--esp-1);min-width:0}
.bva-enlace-1{display:flex;flex-wrap:wrap;align-items:center;gap:var(--esp-2);font-size:var(--tipo-descripcion);color:var(--texto-1);font-variant-numeric:tabular-nums}
.bva-enlace-clave{width:1rem;height:1rem;color:var(--texto-2)}
.bva-enlace-2,.bva-enlace-nota{font-size:var(--tipo-leyenda);color:var(--texto-3);overflow-wrap:anywhere}
.bva-enlace-nota{color:var(--texto-2)}
.bva-enlace-acc{display:flex;align-items:center;gap:var(--esp-1)}
.bva-enlace-log{grid-column:1 / -1}
.bva-enlace-log[hidden]{display:none}

/* Una fila con enlaces vivos: el icono y cuántos (la etiqueta lo dice entero). */
.bva-marca-enlaces{display:inline-flex;align-items:center;gap:var(--esp-1);font-size:var(--tipo-leyenda);color:var(--texto-2);font-variant-numeric:tabular-nums}
.bva-marca-enlaces svg{width:.95rem;height:.95rem}

/* La franja de la carpeta pública, bajo la barra (y en la ficha). */
.bva-publica{display:flex;align-items:center;gap:var(--esp-3);margin:0 0 var(--esp-4);padding:var(--esp-2) var(--esp-3);
  border-left:2px solid var(--yellow);background:var(--sup-1)}
.bva-publica[hidden]{display:none}
.bva-publica.es-ficha{margin:0}
.bva-publica-ico{flex:none;width:1.25rem;height:1.25rem;color:var(--yellow)}
.bva-publica-t{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 auto}
.bva-publica-t strong{font-size:var(--tipo-descripcion);font-weight:600;color:var(--texto-1)}
.bva-publica-url{font-size:var(--tipo-leyenda);color:var(--texto-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bva-publica-acc{display:flex;align-items:center;gap:var(--esp-1);flex:none}
.bva-ficha-comp{display:flex;align-items:center;justify-content:space-between;gap:var(--esp-3);flex-wrap:wrap}

@media (max-width:56rem){
  .bva-publica{flex-wrap:wrap}
  .bva-publica-t{flex-basis:calc(100% - 2.5rem)}
  .bva-publica-acc{margin-left:auto}
  .bva-comp-url{flex-direction:column;align-items:stretch}
}
@media (prefers-reduced-motion:reduce){
  .bva-comp-mas svg{transition:none}
}

/* ── LA CUADRÍCULA Y LAS MINIATURAS (COO, 27 oct 2026; migración 245) ─────
   La misma lista con otro dibujo: `.es-cuadricula` en `.bva-lista`, solo
   CSS, así la selección, el «⋯», el clic derecho, arrastrar para mover y
   soltar para subir siguen igual. Copia de la rejilla del Almacenamiento del
   Dashboard (`.alm-rejilla`/`.alm-item`/`.alm-mini`, modulos.css) con los
   tokens del panel: cada tarjeta es una `.caja` (bisel completo) con la
   casilla y el «⋯» arriba, el recuadro 4:3 (miniatura o icono grande), el
   nombre en dos líneas y `.bva-meta` debajo. 2 columnas en estrecho y de 4
   a 6 en ancho. La cabecera queda en «Seleccionar todo». */
.bva-mini,.bva-cab-todo{display:none}
.es-cuadricula .bva-filas{display:grid;gap:var(--esp-3);padding-top:var(--esp-2);border-top:0;
  grid-template-columns:repeat(2,minmax(0,1fr))}
@media (width >= 960px){
  .es-cuadricula .bva-filas{grid-template-columns:repeat(auto-fill,minmax(max(10.5rem,(100% - 5 * var(--esp-3)) / 6),1fr))}
}
.es-cuadricula .bva-filas > .bva-fila{
  position:relative;clip-path:var(--bevel);--filo-color:var(--line);--caja-fondo:var(--surface);background:var(--filo-color);
  grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"sel acc" "mini mini" "n n";align-content:start;align-items:center;
  gap:var(--esp-2);min-height:0;padding:var(--esp-2) var(--esp-2) var(--esp-3);border-bottom:0;
  transition:background var(--t-rapido) var(--curva)}
.es-cuadricula .bva-filas > .bva-fila::before{content:'';position:absolute;inset:1px;z-index:-1;pointer-events:none;
  clip-path:var(--bevel);background:var(--caja-fondo)}
.es-cuadricula .bva-filas > .bva-fila:hover{--filo-color:var(--gris-3)}
.es-cuadricula .bva-filas > .bva-fila > .bva-ico,
.es-cuadricula .bva-filas > .bva-fila > .bva-c{display:none}
.es-cuadricula .bva-filas > .bva-fila > .bva-sel{grid-area:sel;justify-self:start;margin:0}
.es-cuadricula .bva-filas > .bva-fila > .bva-acc{grid-area:acc;padding-right:var(--esp-2)}
.es-cuadricula .es-explorar > .bva-fila > .bva-acc > :not(:last-child){display:none}
.es-cuadricula .bva-filas > .bva-fila > .bva-n{grid-area:n;padding-inline:var(--esp-1)}
.es-cuadricula .bva-nombre,.es-cuadricula .bva-nombre-fijo{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;
  line-clamp:2;overflow:hidden;font-size:var(--tipo-descripcion);font-weight:600}
.es-cuadricula .bva-meta{display:block}
/* Sin casilla (los resultados de buscar): las acciones ocupan la fila de arriba. */
.es-cuadricula .es-resultados > .bva-fila{grid-template-areas:"acc acc" "mini mini" "n n"}
.es-cuadricula .es-resultados > .bva-fila > .bva-acc{justify-content:flex-end}
/* El recuadro 4:3: la miniatura entera (contain) o el icono grande del tipo. */
.es-cuadricula .bva-fila > .bva-mini{grid-area:mini;position:relative;display:grid;place-items:center;aspect-ratio:4/3;
  background:var(--velo-2);overflow:hidden}
.bva-mini-ico{width:2.4rem;height:2.4rem;color:var(--texto-3)}
.es-carpeta > .bva-mini .bva-mini-ico{color:var(--yellow)}
.bva-mini img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;opacity:0;
  transition:opacity var(--t-rapido) ease}
.bva-mini.con-img img{opacity:1}
.bva-mini.con-img .bva-mini-ico{visibility:hidden}
/* Con miniatura el icono se esconde, pero la insignia del mundo se queda, en
   la esquina del recuadro y por encima de la imagen. */
.bva-mini.con-img .bva-mini-ico.bva-ico-p{visibility:visible;position:static}
.bva-mini.con-img .bva-mini-ico.bva-ico-p > .icono{visibility:hidden}
.bva-mini.con-img .bva-mini-ico.bva-ico-p > .bva-insignia{z-index:1;right:var(--esp-2);bottom:var(--esp-2);width:1.5rem;height:1.5rem;padding:.1rem}
/* La cabecera: una franja de todo el ancho con la casilla y «Seleccionar todo». */
.es-cuadricula .bva-filas > .bva-cab{grid-column:1 / -1;display:flex;align-items:center;gap:var(--esp-2);clip-path:none;
  background:transparent;padding:0 var(--esp-2);min-height:var(--btn-sm-alto)}
.es-cuadricula .bva-filas > .bva-cab::before{content:none}
.es-cuadricula .es-explorar > .bva-cab > .bva-cab-todo{inline-size:auto}
.es-cuadricula .bva-filas > .bva-cab > :not(.bva-sel):not(.bva-cab-todo){display:none}
.es-cuadricula .bva-cab-todo{display:inline;cursor:pointer;font-size:var(--tipo-rotulo);font-weight:600;text-transform:uppercase;
  letter-spacing:.12em;color:var(--texto-3);user-select:none}
.es-cuadricula .bva-cab-todo:hover{color:var(--texto-1)}
.bva-lista.es-cuadricula > .es-explorar:not(.con-sel):not(:hover) > .bva-cab:not(:focus-within) .bva-sel input{opacity:1}
/* Los estados en la tarjeta: elegida y destino de soltar, con el filo
   amarillo; destino que no vale, gris; la que se arrastra, apagada. */
.es-cuadricula .bva-filas > .bva-fila.es-sel,.es-cuadricula .bva-filas > .bva-fila.es-sel:hover,
.es-cuadricula .bva-filas > .bva-fila.es-soltar{--filo-color:var(--yellow);--caja-fondo:color-mix(in srgb,var(--yellow) 10%,var(--surface))}
.es-cuadricula .bva-filas > .bva-fila.es-soltar-no{--filo-color:var(--gris-3);--caja-fondo:color-mix(in srgb,var(--gris-3) 12%,var(--surface))}
.es-cuadricula .bva-filas > .bva-fila.es-arrastrando{opacity:var(--opacidad-apagado)}
.es-cuadricula .bva-filas > .bva-fila:focus-visible{outline:none;--filo-color:var(--yellow)}
/* «Crear miniaturas»: la barra de avance del diálogo. */
.bva-minis-barra{margin-block:var(--esp-2)}
.bva-tramo-m{--tramo:color-mix(in srgb,var(--gris-3) 55%,var(--surface))}
@media (prefers-reduced-motion:reduce){
  .bva-mini img{transition:none}
}
