/* DOCTRIX — Pestañas del panel de diseño de plantillas
   =========================================================================
   Acompaña a js/documentos/panel-plantillas.js. Usa las variables de tema
   de la aplicación para que las pestañas no se sientan un añadido.

   Los objetivos táctiles usan (pointer: coarse), el mismo criterio que el
   resto de la app, para que el iPad —que mide 768px y quedaba fuera de
   max-width:767px— también los reciba.
   ========================================================================= */

.tpl-tabs {
  display: flex;
  gap: .3rem;
  margin: .9rem 0 0;
  padding-bottom: .1rem;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}

.tpl-tab {
  flex: 0 0 auto;
  padding: .5rem .85rem;
  border: 1px solid var(--border);
  border-radius: 10px 10px 0 0;
  border-bottom-color: transparent;
  background: var(--bg-hover);
  color: var(--text-muted);
  font: inherit;
  font-size: .76rem;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
  transition: background .16s ease, color .16s ease;
}

.tpl-tab:hover { background: var(--bg-card); color: var(--text-main); }

.tpl-tab.is-active {
  border-color: var(--border);
  border-bottom-color: var(--bg-card);
  background: var(--bg-card);
  color: var(--primary);
}

.tpl-tab:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 28%, transparent);
}

.tpl-tab[hidden] { display: none; }

.tpl-tab-paneles {
  margin-top: -1px;
  padding: 1rem;
  border: 1px solid var(--border);
  border-radius: 0 12px 12px 12px;
  background: var(--bg-card);
}

.tpl-tab-panel { display: grid; gap: .85rem; }
.tpl-tab-panel[hidden] { display: none; }

/* Una línea que explica para qué sirve la pestaña. Antes había que deducirlo
   del nombre de cada campo. */
.tpl-tab-ayuda {
  margin: 0 0 .2rem;
  padding-bottom: .6rem;
  border-bottom: 1px dashed color-mix(in srgb, var(--border) 80%, transparent);
  color: var(--text-muted);
  font-size: .72rem;
  line-height: 1.45;
}

/* Los campos movidos conservan su marcado original; aquí solo se les da aire
   uniforme, porque venían de bloques con separaciones distintas. */
.tpl-tab-panel > .input-block { margin: 0; }
.tpl-tab-panel .template-docx-grid-4,
.tpl-tab-panel .template-docx-grid-3,
.tpl-tab-panel .split-2 { margin: 0; }

/* ── Ergonomía táctil: teléfono, iPad y tablet ──────────────────────────── */
@media (pointer: coarse), (max-width: 767px) {
  .tpl-tab { min-height: 44px; padding-inline: 1rem; }
}

/* ── Teléfono ───────────────────────────────────────────────────────────── */
@media (max-width: 767px) {
  .tpl-tab-paneles { padding: .85rem; border-radius: 12px; }
  .tpl-tabs { margin-inline: -.15rem; padding-inline: .15rem; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   HOJA EN MINIATURA  (js/documentos/panel-plantillas-vista.js)
   Esquema a escala de la hoja con los valores del formulario.
   ═══════════════════════════════════════════════════════════════════════════ */

.tpl-mini-wrap {
  display: grid;
  gap: .7rem;
  margin-top: .9rem;
  padding: .9rem 1rem 1rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--bg-hover);
}

.tpl-mini-wrap h5 {
  margin: 0;
  color: var(--text-faint);
  font-size: .63rem;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}

#tpl-miniatura { display: grid; gap: .8rem; justify-items: start; }

/* La hoja */
.tpl-mini-hoja {
  position: relative;
  border: 1px solid color-mix(in srgb, var(--text-main) 22%, transparent);
  border-radius: 2px;
  background: #fff;
  box-shadow: 0 2px 10px rgba(15, 23, 42, .12);
  overflow: hidden;
}

/* Membrete: cubre el ancho, anclado arriba, detrás de todo. */
.tpl-mini-membrete {
  position: absolute;
  top: 0; left: 0; right: 0;
  z-index: 0;
  background: repeating-linear-gradient(
    135deg,
    color-mix(in srgb, var(--primary) 16%, transparent) 0 6px,
    color-mix(in srgb, var(--primary) 7%, transparent) 6px 12px);
  border-bottom: 1px dashed color-mix(in srgb, var(--primary) 40%, transparent);
}

/* Logo del centro: cuadrado, esquina superior izquierda, por encima. */
.tpl-mini-logo {
  position: absolute;
  z-index: 2;
  border: 1px solid color-mix(in srgb, var(--warning) 65%, transparent);
  border-radius: 2px;
  background: color-mix(in srgb, var(--warning) 22%, transparent);
}

/* Área de texto: lo que realmente queda para escribir. */
.tpl-mini-texto {
  position: absolute;
  z-index: 1;
  display: grid;
  place-items: center;
  border: 1px dashed color-mix(in srgb, var(--primary) 55%, transparent);
  border-radius: 2px;
  background: color-mix(in srgb, var(--primary) 6%, transparent);
}
.tpl-mini-texto span {
  color: color-mix(in srgb, var(--primary) 85%, var(--text-main));
  font-size: .55rem;
  font-weight: 700;
  letter-spacing: .03em;
  text-align: center;
}

/* Pie de página */
.tpl-mini-pie {
  position: absolute;
  z-index: 2;
  height: 3px;
  border-radius: 2px;
  background: color-mix(in srgb, var(--success) 70%, transparent);
}

/* Datos numéricos */
.tpl-mini-datos { display: grid; gap: .3rem; margin: 0; width: 100%; }
.tpl-mini-datos > div {
  display: grid;
  grid-template-columns: minmax(0, 8.5rem) minmax(0, 1fr);
  gap: .6rem;
  align-items: baseline;
}
.tpl-mini-datos dt {
  color: var(--text-faint);
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: .03em;
  text-transform: uppercase;
}
.tpl-mini-datos dd {
  margin: 0;
  color: var(--text-main);
  font-size: .72rem;
  overflow-wrap: anywhere;
}
.tpl-mini-datos dd em { color: var(--text-muted); font-style: normal; font-size: .66rem; }

.tpl-mini-nota {
  margin: 0;
  color: var(--text-muted);
  font-size: .66rem;
  line-height: 1.45;
}

/* En pantallas anchas la miniatura va al lado de los campos, no debajo. */
@media (min-width: 1100px) {
  .template-docx-config.tiene-miniatura .tpl-tab-paneles { grid-column: 1; }
  .template-docx-config.tiene-miniatura {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
    gap: 0 1rem;
    align-items: start;
  }
  .template-docx-config.tiene-miniatura > .tpl-tabs,
  .template-docx-config.tiene-miniatura > .template-docx-head,
  .template-docx-config.tiene-miniatura > header,
  .template-docx-config.tiene-miniatura > .template-docx-guard { grid-column: 1 / -1; }
  .tpl-mini-wrap { position: sticky; top: 0; margin-top: -1px; }
}

@media (max-width: 767px) {
  .tpl-mini-datos > div { grid-template-columns: 1fr; gap: .1rem; }
  #tpl-miniatura { justify-items: center; }
}
