/* =================================================================
   miPlugin_baseLayer — estilos del selector visual de capas base
   ================================================================= */

/* ── Icono del botón colapsado ──────────────────────────────────── */
.g-herramienta_baseLayer .m-tools:before {
  content: "🗺";
  font-size: 22px;
  font-family: -apple-system, system-ui, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
}

/* ── Fondo y sombra del panel (scopeado, como vueloFotogrametrico) ── */
.m-areas>div.m-area>div.m-panel.g-herramienta_baseLayer.opened {
  background-color: transparent !important;
}
.m-areas>div.m-area>div.m-panel.g-herramienta_baseLayer,
.m-panel.g-herramienta_baseLayer>button {
  box-shadow: none;
}

/* ── Cabecera del panel: fondo (color1), borde (color2), icono (color3) ──
   El BOTÓN del panel lo estilan las reglas genéricas (ver abajo). */
.g-herramienta_baseLayer .m-herramienta-header {
  background-color: var(--g-plugin-bg-color, orangered) !important;
  color: var(--g-plugin-icon-color, #ffffff) !important;
  border-color: var(--g-plugin-border-color, #ffffff) !important;
}

/* Panel abierto (opened) = estado activo: se aplican los colores "-active".
   El BOTÓN lo estiliza la regla genérica de botón (ver abajo). */
.m-areas>div.m-area>div.m-panel.g-herramienta_baseLayer.opened .m-herramienta-header {
  background-color: var(--g-plugin-bg-color-active, #ffffff) !important;
  color: var(--g-plugin-icon-color-active, #71A7D3) !important;
  border-color: var(--g-plugin-border-color-active, #71A7D3) !important;
}

/* Icono del botón colapsado (emoji): hereda el color del icono. */
.g-herramienta_baseLayer .m-tools:before {
  color: var(--g-plugin-icon-color, #ffffff) !important;
}

/* BOTÓN del panel — GENÉRICO para todos los plugins.
   Base (cerrado):
     - fondo  = color1.deactive (--g-plugin-bg-color)
     - texto  = color3.deactive (--g-plugin-icon-color)
     - borde  = color2.deactive (--g-plugin-border-color)
   Abierto (opened) — mayor especificidad gana sobre base:
     - fondo  = color1.active  (--g-plugin-bg-color-active)
     - texto  = color2.active  (--g-plugin-border-color-active)
     - borde  = color2.active  (--g-plugin-border-color-active) */
.m-areas>div.m-area>div.m-panel>button.m-panel-btn {
  background-color: var(--g-plugin-bg-color, orangered) !important;
  color: var(--g-plugin-icon-color, #fff) !important;
  border-color: var(--g-plugin-border-color, #fff) !important;
}

.m-areas>div.m-area>div.m-panel.opened>button.m-panel-btn {
  background-color: var(--g-plugin-bg-color-active, #ffffff) !important;
  color: var(--g-plugin-border-color-active, #71A7D3) !important;
  border-color: var(--g-plugin-border-color-active, #71A7D3) !important;
}

/* ── Contenedor del plugin (estructura del framework) ────────────── */
/* IMPORTANTE: el ancho NO se fija aquí: se adapta automáticamente al
   contenido (el grid de miniaturas). Así, con más capas el panel crece y
   con menos se encoge, pero cada miniatura mide siempre lo mismo. Cuando
   el panel se pliega, el panel colapsado solo mide su botón (~40px) y el
   botón vuelve a ser circular de forma natural. */
.g-herramienta_baseLayer .m-control.m-container.m-herramienta {
  width: auto;
  display: flex !important;
  flex-direction: column;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-size: 13px;
  color: #1a1a1a;
}

.g-herramienta_baseLayer .m-panel-controls {
  max-height: none !important;
}

/* ── Grid de imágenes ───────────────────────────────────────────── */
/* display:inline-grid + width:auto: el grid ocupa solo el espacio de sus
   columnas (fijas a 110px en el JS), por lo que el panel se ajusta al
   número de capas en lugar de estrechar las imágenes. */
.bl-grid {
  display: inline-grid;
  width: auto;
  gap: 10px;
  padding: 10px;
  background: #f5f6fa;
  border-radius: 8px;
  grid-auto-rows: 110px;
}

/* ── Cada item (label que envuelve radio + thumbnail) ───────────── */
.bl-item {
  cursor: pointer;
  border: 3px solid transparent;
  border-radius: 10px;
  padding: 4px;
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

/* ── Radio oculto ───────────────────────────────────────────────── */
.bl-radio {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}

/* ── Selección activa: borde azul ───────────────────────────────── */
.bl-item:has(.bl-radio:checked) {
  border-color: #0078d4;
  box-shadow: 0 0 0 2px rgba(0, 120, 212, 0.35), 0 2px 6px rgba(0, 0, 0, 0.12);
  background: #eaf3fc;
}

/* ── Contenedor de la imagen + barra de título al pie ──────────── */
.bl-thumb {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 6px;
  overflow: hidden;
}

/* ── Imagen cuadrada al mismo tamaño en todos los items ─────────── */
/* Tamaño mayor que antes (~140px por columna con panel de 360px y
   2 columnas) para que el pie de texto se lea con holgura. */
.bl-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  pointer-events: none;
  user-select: none;
  transition: transform 0.35s ease;
}

/* ── Barra de título al pie de la miniatura ─────────────────────── */
/* Texto legible: fondo sólido blanco-gris, letra oscura y grande.
   Se apoya sobre el borde inferior de la imagen (no en el centro). */
.bl-title {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 4px 6px;
  box-sizing: border-box;
  text-align: center;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  color: #1a1a1a;
  background: rgba(255, 255, 255, 0.92);
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

/* ── Efecto hover sobre la imagen ───────────────────────────────── */
.bl-item:hover .bl-img {
  transform: scale(1.08);
}

/* En hover, la barra de título se oscurece ligeramente para dar
   contraste con la imagen escalada. */
.bl-item:hover .bl-title {
  background: rgba(255, 255, 255, 0.97);
}

/* ── Elevación sutil del item completo en hover ─────────────────── */
.bl-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
}

/* ── Cabecera / título del panel (arrastrable) ──────────────────── */
/* Mismo patrón que vueloFotogrametrico/estereoscopia. Fondo y color de
   texto vienen del bloque con variables (color1/color2). */
.g-herramienta_baseLayer .m-herramienta-header {
  display: block;
  font-size: 15px;
  font-weight: 700;
  height: 40px;
  line-height: 40px;
  padding: 0 5px;
  text-align: center;
  width: 100%;
  cursor: move;
}

/* Contenido dinámico del plugin */
.g-herramienta_baseLayer .m-herramienta-baseLayer {
  padding: 10px;
  max-height: calc(100vh - 120px);
  overflow-y: auto;
  background-color: #fff;
}