/* ==========================================================================
   COMPONENTES: BUTTONS — Fase 1
   --------------------------------------------------------------------------
   Capa inicial de botones reutilizables.

   Objetivo de esta primera extracción:
   - Crear un componente real sin cambiar la apariencia vigente.
   - Mantener compatibilidad con clases legacy ya presentes en el HTML.
   - NO borrar todavía las reglas equivalentes de styles.css.

   Este archivo se carga antes de styles.css, pages/*.css, header-footer.css y
   palette-editorial.css. Por eso los estilos legacy siguen teniendo prioridad
   mientras se valida la migración.
   ========================================================================== */

.btn,
.btn-primary,
.btn-pri,
.btn-sec,
.btn-gen,
.gen-btn,
.gen-generar-btn,
.tool-btn,
.filtro-btn,
.ver-20-btn,
.ver-prov-btn,
.ver-todo-btn,
.verificador-btn,
.brinco-btn,
.loto-btn,
.loto5-btn,
.cp-btn,
.dream-btn,
.suenos-btn,
.search-btn,
.calculator-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm, 8px);
  box-sizing: border-box;
  min-height: 44px;
  border: 1px solid transparent;
  font-family: var(--theme-font-body, var(--font-body, system-ui, sans-serif));
  font-weight: 800;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition:
    background-color .16s ease,
    border-color .16s ease,
    color .16s ease,
    box-shadow .16s ease,
    transform .16s ease,
    filter .16s ease;
}

.btn:hover,
.btn-primary:hover,
.btn-pri:hover,
.btn-sec:hover,
.btn-gen:hover,
.gen-btn:hover,
.gen-generar-btn:hover,
.tool-btn:hover,
.filtro-btn:hover,
.ver-20-btn:hover,
.ver-prov-btn:hover,
.ver-todo-btn:hover,
.verificador-btn:hover,
.brinco-btn:hover,
.loto-btn:hover,
.loto5-btn:hover,
.cp-btn:hover,
.dream-btn:hover,
.suenos-btn:hover,
.search-btn:hover,
.calculator-btn:hover {
  text-decoration: none;
}

.btn:focus-visible,
.btn-primary:focus-visible,
.btn-pri:focus-visible,
.btn-sec:focus-visible,
.btn-gen:focus-visible,
.gen-btn:focus-visible,
.gen-generar-btn:focus-visible,
.tool-btn:focus-visible,
.filtro-btn:focus-visible,
.ver-20-btn:focus-visible,
.ver-prov-btn:focus-visible,
.ver-todo-btn:focus-visible,
.verificador-btn:focus-visible,
.brinco-btn:focus-visible,
.loto-btn:focus-visible,
.loto5-btn:focus-visible,
.cp-btn:focus-visible,
.dream-btn:focus-visible,
.suenos-btn:focus-visible,
.search-btn:focus-visible,
.calculator-btn:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--theme-accent, #E85B56) 38%, transparent);
  outline-offset: 2px;
}

.btn:disabled,
.btn-primary:disabled,
.btn-pri:disabled,
.btn-sec:disabled,
.btn-gen:disabled,
.gen-btn:disabled,
.gen-generar-btn:disabled,
.tool-btn:disabled,
.filtro-btn:disabled,
.ver-20-btn:disabled,
.ver-prov-btn:disabled,
.ver-todo-btn:disabled,
.verificador-btn:disabled,
.brinco-btn:disabled,
.loto-btn:disabled,
.loto5-btn:disabled,
.cp-btn:disabled,
.dream-btn:disabled,
.suenos-btn:disabled,
.search-btn:disabled,
.calculator-btn:disabled,
.btn[aria-disabled="true"],
.btn-primary[aria-disabled="true"] {
  cursor: not-allowed;
  opacity: .55;
  transform: none;
}

/* ==========================================================================
   Compatibilidad visual Grupo 1A — botones legacy principales
   --------------------------------------------------------------------------
   Fuente de verdad: bloque legacy efectivo de styles.css (zona ~11558).
   Objetivo: preparar la futura limpieza de reglas base en styles.css sin
   modificar la apariencia vigente.

   Importante: en esta etapa NO se eliminan reglas de styles.css. Los estados
   :hover y :disabled siguen viviendo en legacy hasta la siguiente validación.
   ========================================================================== */

.btn-pri {
  background: var(--theme-navy);
  color: var(--theme-white);
  border: none;
  padding: 11px 28px;
  border-radius: 8px;
  font-size: .88rem;
  font-weight: 700;
  letter-spacing: .04em;
  transition: background .18s;
}

.btn-sec {
  background: none;
  color: var(--theme-muted);
  border: 1.5px solid #E5E7EB;
  padding: 11px 18px;
  border-radius: 8px;
  font-size: .82rem;
  font-weight: 600;
}

.btn-gen {
  background: var(--theme-accent);
  color: var(--theme-white);
  border: none;
  padding: 11px 28px;
  border-radius: 8px;
  font-size: .88rem;
  font-weight: 700;
  letter-spacing: .04em;
  transition: background .18s;
}

/* Nuevas variantes para código futuro. No obligan a renombrar HTML legacy. */
.btn {
  min-height: 44px;
  padding: 0.75rem 1.15rem;
  border-radius: var(--radius-md, 14px);
  background: var(--theme-white, #F8F2EA);
  color: var(--theme-ink, #494949);
  border-color: var(--theme-line, rgba(32, 32, 29, .12));
}

.btn:hover {
  transform: translateY(-1px);
}

.btn--primary,
.btn-primary {
  background: var(--theme-accent, #E85B56);
  color: var(--theme-white, #F8F2EA);
  border-color: var(--theme-accent, #E85B56);
}

.btn--secondary {
  background: var(--theme-white, #F8F2EA);
  color: var(--theme-ink, #494949);
  border-color: var(--theme-line-strong, rgba(32, 32, 29, .18));
}

.btn--dark {
  background: var(--theme-ink, #494949);
  color: var(--theme-white, #F8F2EA);
  border-color: var(--theme-ink, #494949);
}

.btn--ghost {
  background: transparent;
  color: var(--theme-ink, #494949);
  border-color: transparent;
}

.btn--small {
  min-height: 36px;
  padding: 0.55rem 0.85rem;
  font-size: .875rem;
}

.btn--full {
  width: 100%;
}
