/* ============================================================
   VARIABLES Y RESET
   ============================================================ */

:root {
  /* Paleta Reprogramate y Acciona */
  --color-primario: #4BAF8C;
  --color-primario-claro: #A8DCCB;
  --color-primario-oscuro: #2D8A6E;
  --color-primario-bg: #EAF7F3;

  --color-acento: #E8725A;
  --color-acento-claro: #F9C4B8;
  --color-acento-oscuro: #C4503C;
  --color-acento-bg: #FDF0ED;

  --color-dorado: #F5A623;
  --color-dorado-claro: #FDE5B0;
  --color-dorado-oscuro: #C47D0A;

  --color-fondo: #F7F5F2;
  --color-superficie: #FFFFFF;
  --color-texto: #1E2D28;
  --color-texto-suave: #5A7066;
  --color-borde: #C8E6D8;
  --color-borde-suave: #E8F5EF;
  --color-gris: #C4D0CA;
  --color-gris-claro: #EEF2F0;
  --color-error: #E07070;
  --color-error-bg: #FEF0F0;

  /* Espaciado */
  --espacio-xs: 0.4rem;
  --espacio-sm: 0.8rem;
  --espacio-md: 1.6rem;
  --espacio-lg: 2.4rem;
  --espacio-xl: 3.2rem;
  --espacio-xxl: 4.8rem;

  /* Tipografía */
  --fuente: system-ui, -apple-system, 'Segoe UI', sans-serif;
  --tam-sm: 1.2rem;
  --tam-base: 1.6rem;
  --tam-md: 1.8rem;
  --tam-lg: 2.2rem;
  --tam-xl: 2.8rem;
  --tam-xxl: 3.6rem;

  /* Bordes */
  --radio: 1.2rem;
  --radio-sm: 0.6rem;
  --radio-lg: 2rem;
  --radio-pill: 10rem;

  /* Sombras */
  --sombra-sm: 0 0.1rem 0.4rem rgba(45, 138, 110, 0.08);
  --sombra: 0 0.2rem 0.8rem rgba(45, 138, 110, 0.12);
  --sombra-md: 0 0.4rem 1.6rem rgba(45, 138, 110, 0.16);
  --sombra-lg: 0 0.8rem 3.2rem rgba(45, 138, 110, 0.2);
  --sombra-acento: 0 0.2rem 0.8rem rgba(232, 114, 90, 0.15);

  /* Transiciones */
  --trans-rapido: 0.15s ease;
  --trans: 0.25s ease;
  --trans-lento: 0.4s ease;
}

html {
  font-size: 10px;
}

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: var(--fuente);
  font-size: var(--tam-base);
  line-height: 1.5;
  background-color: var(--color-fondo);
  color: var(--color-texto);
  min-height: 100vh;
}

/* ============================================================
   ACCESIBILIDAD
   ============================================================ */

.sr-only {
  position: absolute;
  width: 0.1rem;
  height: 0.1rem;
  padding: 0;
  margin: -0.1rem;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ============================================================
   HEADER
   ============================================================ */

.header {
  background: linear-gradient(135deg, #1E6B52 0%, #2D8A6E 40%, #4BAF8C 100%);
  color: #fff;
  padding: var(--espacio-lg) var(--espacio-md);
  box-shadow: var(--sombra-md);
  position: relative;
  overflow: hidden;
}

.header::before {
  content: '';
  position: absolute;
  width: 40rem;
  height: 40rem;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.08) 0%, transparent 70%);
  border-radius: 50%;
  top: -10rem;
  right: -5rem;
}

.header::after {
  content: '';
  position: absolute;
  width: 30rem;
  height: 30rem;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.05) 0%, transparent 70%);
  border-radius: 50%;
  bottom: -8rem;
  left: -5rem;
}

.header__contenido {
  max-width: 80rem;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--espacio-md);
  flex-wrap: wrap;
  position: relative;
  z-index: 1;
}

.header__titulo-grupo {
  display: flex;
  align-items: center;
  gap: var(--espacio-md);
  flex: 1;
}

.header__logo {
  height: 5.6rem;
  width: auto;
  filter: drop-shadow(0 0.2rem 0.4rem rgba(0, 0, 0, 0.15));
  transition: transform var(--trans-rapido);
}

.header__logo:hover {
  transform: scale(1.05);
}

.header__textos {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.header__titulo {
  font-size: var(--tam-xl);
  font-weight: 800;
  letter-spacing: -0.04rem;
  line-height: 1.1;
}

.header__marca {
  font-size: 1.2rem;
  opacity: 0.85;
  font-weight: 600;
  letter-spacing: 0.05rem;
}

.header__frase {
  font-size: 1.1rem;
  opacity: 0.75;
  font-style: italic;
  font-weight: 500;
  letter-spacing: 0.02rem;
  line-height: 1.4;
  margin-top: 0.6rem;
  border-left: 0.2rem solid rgba(255, 255, 255, 0.4);
  padding-left: 0.8rem;
}

.header__fecha {
  font-size: var(--tam-base);
  opacity: 0.85;
  font-weight: 500;
  text-align: right;
}

.header__saludo {
  font-size: var(--tam-base);
  opacity: 0.9;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: var(--espacio-sm);
}

.btn-editar-nombre {
  background: none;
  border: none;
  cursor: pointer;
  font-size: var(--tam-base);
  padding: 0;
  opacity: 0.8;
  transition: opacity var(--trans-rapido), transform var(--trans-rapido);
}

.btn-editar-nombre:hover {
  opacity: 1;
  transform: scale(1.1);
}

/* ============================================================
   MAIN / LAYOUT
   ============================================================ */

.main {
  max-width: 80rem;
  margin: 0 auto;
  padding: var(--espacio-lg) var(--espacio-md) var(--espacio-xxl);
  display: flex;
  flex-direction: column;
  gap: var(--espacio-lg);
}

/* ============================================================
   SECCIONES
   ============================================================ */

.seccion {
  animation: seccionEntrar 0.5s ease both;
}

.seccion:nth-child(1) { animation-delay: 0.05s; }
.seccion:nth-child(2) { animation-delay: 0.15s; }
.seccion:nth-child(3) { animation-delay: 0.25s; }
.seccion:nth-child(4) { animation-delay: 0.35s; }

.seccion__inner {
  background: var(--color-superficie);
  border-radius: var(--radio-lg);
  padding: var(--espacio-lg);
  box-shadow: var(--sombra);
  border: 0.1rem solid var(--color-borde-suave);
  border-top: 0.4rem solid var(--color-primario);
  position: relative;
  overflow: hidden;
  transition: box-shadow var(--trans), transform var(--trans);
}

.seccion__inner:hover {
  transform: translateY(-0.2rem);
  box-shadow: var(--sombra-md);
}

.seccion--actualizando #lista-habitos {
  animation: flashActualizar 0.3s ease;
}

.seccion__inner::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 20rem;
  height: 20rem;
  background: radial-gradient(circle, rgba(74, 175, 140, 0.03) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}

.seccion__encabezado {
  margin-bottom: var(--espacio-lg);
}

.seccion__titulo {
  font-size: var(--tam-md);
  font-weight: 700;
  color: var(--color-primario-oscuro);
  margin-bottom: var(--espacio-sm);
}

.seccion__motivacion {
  font-size: var(--tam-sm);
  color: var(--color-texto-suave);
  font-style: italic;
  font-weight: 500;
}

.seccion__cabecera {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--espacio-sm);
  flex-wrap: wrap;
  margin-bottom: var(--espacio-md);
}

.seccion__cabecera .seccion__titulo {
  margin-bottom: 0;
}

.seccion__subtitulo {
  font-size: var(--tam-sm);
  color: var(--color-texto-suave);
  font-weight: 600;
  background: var(--color-primario-bg);
  padding: 0.4rem 0.8rem;
  border-radius: var(--radio-pill);
}

/* ============================================================
   FORMULARIO AGREGAR HÁBITO
   ============================================================ */

.form-habito__fila {
  display: flex;
  gap: var(--espacio-sm);
}

.form-habito__input {
  flex: 1;
  padding: 1.2rem 1.6rem;
  border: 0.2rem solid var(--color-borde);
  border-radius: var(--radio);
  font-size: var(--tam-base);
  font-family: var(--fuente);
  color: var(--color-texto);
  background: var(--color-fondo);
  transition: border-color var(--trans-rapido), box-shadow var(--trans-rapido);
  outline: none;
}

.form-habito__input::placeholder {
  color: var(--color-texto-suave);
  opacity: 0.7;
}

.form-habito__input:focus {
  border-color: var(--color-primario);
  box-shadow: 0 0 0 0.3rem rgba(74, 175, 140, 0.18);
}

.form-habito__input--error {
  border-color: var(--color-error);
  box-shadow: 0 0 0 0.3rem rgba(224, 112, 112, 0.15);
}

.form-habito__error {
  margin-top: var(--espacio-sm);
  font-size: var(--tam-sm);
  color: var(--color-error);
  font-weight: 600;
}

/* ============================================================
   BOTONES
   ============================================================ */

.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: var(--espacio-sm) var(--espacio-md);
  border: none;
  border-radius: var(--radio);
  font-size: var(--tam-base);
  font-family: var(--fuente);
  font-weight: 600;
  cursor: pointer;
  transition: background-color var(--trans-rapido), transform var(--trans-rapido), box-shadow var(--trans-rapido);
  white-space: nowrap;
}

.btn:active {
  transform: scale(0.97);
}

.btn--primario {
  background: linear-gradient(135deg, var(--color-acento), var(--color-dorado));
  color: #fff;
  box-shadow: var(--sombra-acento);
}

.btn--primario:hover {
  box-shadow: 0 0.4rem 1.2rem rgba(232, 114, 90, 0.3);
}

.btn--secundario {
  background-color: var(--color-gris-claro);
  color: var(--color-texto-suave);
}

.btn--secundario:hover {
  background-color: var(--color-borde);
}

.btn--peligro {
  background-color: var(--color-error);
  color: #fff;
}

.btn--peligro:hover {
  background-color: #c85a5a;
}

.btn--icono {
  background: none;
  border: none;
  cursor: pointer;
  padding: var(--espacio-xs);
  border-radius: var(--radio-sm);
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.8rem;
  transition: background-color var(--trans-rapido), transform var(--trans-rapido);
  color: var(--color-texto-suave);
}

.btn--icono:hover {
  background-color: var(--color-error-bg);
  color: var(--color-error);
}

.btn--icono:active {
  transform: scale(0.9);
}

/* ============================================================
   LISTA DE HÁBITOS
   ============================================================ */

.lista-habitos {
  display: flex;
  flex-direction: column;
  gap: var(--espacio-md);
}

.lista-vacia-contenedor {
  text-align: center;
  padding: var(--espacio-xl) var(--espacio-md);
}

.lista-vacia-icono {
  display: block;
  font-size: 4.8rem;
  margin-bottom: var(--espacio-md);
  opacity: 0.8;
}

.lista-vacia {
  color: var(--color-texto-suave);
  font-size: var(--tam-base);
  line-height: 1.7;
}

.felicitacion {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--espacio-sm);
  background: linear-gradient(135deg, var(--color-primario-bg), var(--color-dorado-claro));
  border: 0.2rem solid var(--color-primario-claro);
  border-radius: var(--radio);
  padding: var(--espacio-md);
  margin-top: var(--espacio-sm);
  font-size: var(--tam-base);
  color: var(--color-primario-oscuro);
  animation: aparecer 0.4s ease;
  box-shadow: var(--sombra-sm);
}

.felicitacion strong {
  font-weight: 700;
}

/* ============================================================
   TARJETA DE HÁBITO
   ============================================================ */

.habito-card {
  background: var(--color-superficie);
  border: 0.15rem solid var(--color-borde);
  border-left: 0.4rem solid var(--color-primario);
  border-radius: var(--radio);
  padding: var(--espacio-md);
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: var(--espacio-sm) var(--espacio-md);
  align-items: start;
  box-shadow: var(--sombra-sm);
  transition: all var(--trans);
  animation: aparecer 0.3s ease;
  position: relative;
}

.habito-card:hover {
  box-shadow: var(--sombra-md);
  transform: translateY(-0.2rem);
}

.habito-card--completado {
  border-left-color: var(--color-dorado);
  background: linear-gradient(135deg, #fff 60%, var(--color-primario-bg));
}

.habito-card__completar {
  grid-column: 1;
  grid-row: 1;
  width: 3.2rem;
  height: 3.2rem;
  border-radius: 50%;
  border: 0.25rem solid var(--color-borde);
  background: transparent;
  cursor: pointer;
  transition: all var(--trans-rapido);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  position: relative;
  margin-top: 0.2rem;
}

.habito-card__completar::after {
  content: '';
  width: 1rem;
  height: 0.6rem;
  border-left: 0.25rem solid #fff;
  border-bottom: 0.25rem solid #fff;
  transform: rotate(-45deg) translateY(-0.1rem);
  opacity: 0;
  transition: opacity var(--trans-rapido);
}

.habito-card__completar:hover {
  border-color: var(--color-primario);
  background: var(--color-primario-bg);
}

.habito-card__completar--activo {
  background: linear-gradient(135deg, var(--color-primario-oscuro), var(--color-primario));
  border-color: var(--color-primario);
  box-shadow: 0 0 0 0.3rem var(--color-primario-claro);
}

.habito-card__completar--activo::after {
  opacity: 1;
}

.habito-card__cuerpo {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
}

.habito-card__acciones {
  grid-column: 3;
  grid-row: 1;
  display: flex;
  align-items: flex-start;
}

.habito-card__nombre {
  font-size: var(--tam-md);
  font-weight: 700;
  color: var(--color-texto);
  margin-bottom: var(--espacio-xs);
  word-break: break-word;
  transition: color var(--trans-rapido);
}

.habito-card--completado .habito-card__nombre {
  color: var(--color-primario-oscuro);
}

.habito-card__meta {
  display: flex;
  align-items: center;
  gap: var(--espacio-sm);
  flex-wrap: wrap;
  margin-bottom: var(--espacio-sm);
}

.habito-card__progreso-area {
  grid-column: 1 / -1;
}

/* ============================================================
   BADGE DE RACHA
   ============================================================ */

.racha-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  background: linear-gradient(135deg, var(--color-dorado-claro), var(--color-acento-claro));
  color: var(--color-acento-oscuro);
  padding: 0.3rem 0.9rem;
  border-radius: var(--radio-pill);
  font-size: var(--tam-sm);
  font-weight: 800;
}

.racha-badge--cero {
  background: var(--color-gris-claro);
  color: var(--color-texto-suave);
}

/* ============================================================
   MINI-CALENDARIO SEMANAL
   ============================================================ */

.mini-calendario {
  display: flex;
  gap: 0.4rem;
  align-items: flex-end;
}

.mini-calendario__dia {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.3rem;
}

.mini-calendario__celda {
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 0.8rem;
  background: var(--color-gris-claro);
  border: 0.1rem solid var(--color-gris);
  transition: all var(--trans-rapido);
  flex-shrink: 0;
}

.mini-calendario__celda--completado {
  background: linear-gradient(135deg, var(--color-primario-claro), var(--color-primario));
  border-color: var(--color-primario);
}

.mini-calendario__celda--hoy {
  border-color: var(--color-primario-oscuro);
  border-width: 0.2rem;
}

.mini-calendario__etiqueta {
  font-size: 0.9rem;
  color: var(--color-texto-suave);
  text-transform: uppercase;
  letter-spacing: 0.03rem;
  font-weight: 700;
}

/* ============================================================
   BARRA DE PROGRESO
   ============================================================ */

.progreso-area {
  margin-top: var(--espacio-xs);
}

.progreso-cabecera {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.4rem;
}

.progreso-etiqueta {
  font-size: var(--tam-sm);
  color: var(--color-texto-suave);
  font-weight: 600;
}

.progreso-valor {
  font-size: var(--tam-sm);
  font-weight: 800;
  color: var(--color-primario-oscuro);
}

.progreso-barra {
  height: 0.6rem;
  background: var(--color-borde-suave);
  border-radius: var(--radio-pill);
  overflow: hidden;
}

.progreso-barra__relleno {
  height: 100%;
  background: linear-gradient(90deg, var(--color-primario-claro), var(--color-primario));
  border-radius: var(--radio-pill);
  transition: width var(--trans-lento);
  min-width: 0;
}

/* ============================================================
   ESTADÍSTICAS GLOBALES
   ============================================================ */

.estadisticas-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
  gap: var(--espacio-md);
}

.stat-card {
  background: linear-gradient(160deg, var(--color-superficie), var(--color-primario-bg));
  border: none;
  border-radius: var(--radio-lg);
  padding: var(--espacio-lg);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--espacio-xs);
  box-shadow: var(--sombra-md);
  transition: all var(--trans);
}

.stat-card:hover {
  transform: translateY(-0.4rem);
  box-shadow: var(--sombra-lg);
}

.stat-card__icono {
  font-size: 3.2rem;
  line-height: 1;
}

.stat-card__valor {
  font-size: 4.8rem;
  font-weight: 800;
  line-height: 1;
  background: linear-gradient(135deg, var(--color-primario-oscuro), var(--color-primario));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.stat-card__etiqueta {
  font-size: var(--tam-sm);
  color: var(--color-texto-suave);
  font-weight: 600;
}

.stat-card--acento .stat-card__valor {
  background: linear-gradient(135deg, var(--color-acento-oscuro), var(--color-dorado));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ============================================================
   MODAL
   ============================================================ */

.modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  padding: var(--espacio-md);
  animation: fadeIn var(--trans-rapido);
  backdrop-filter: blur(0.2rem);
}

.modal {
  background: var(--color-superficie);
  border-radius: var(--radio-lg);
  padding: var(--espacio-xl);
  max-width: 42rem;
  width: 100%;
  box-shadow: var(--sombra-lg);
  border: 0.1rem solid var(--color-borde);
  border-top: 0.4rem solid var(--color-acento);
  animation: slideUp 0.2s ease;
}

.modal__icono {
  font-size: 3.6rem;
  text-align: center;
  display: block;
  margin-bottom: var(--espacio-sm);
}

.modal__titulo {
  font-size: var(--tam-md);
  font-weight: 700;
  color: var(--color-texto);
  text-align: center;
  margin-bottom: var(--espacio-sm);
}

.modal__mensaje {
  font-size: var(--tam-base);
  color: var(--color-texto-suave);
  text-align: center;
  line-height: 1.6;
  margin-bottom: var(--espacio-lg);
}

.modal__acciones {
  display: flex;
  gap: var(--espacio-sm);
  justify-content: flex-end;
}

/* ============================================================
   TOAST DE FEEDBACK
   ============================================================ */

.feedback-toast {
  position: fixed;
  bottom: var(--espacio-lg);
  left: 50%;
  transform: translateX(-50%);
  padding: var(--espacio-sm) var(--espacio-lg);
  border-radius: var(--radio-pill);
  font-size: var(--tam-base);
  font-weight: 600;
  z-index: 2000;
  white-space: nowrap;
  box-shadow: var(--sombra-md);
  animation: toastEntrar 0.25s ease, toastSalir 0.35s ease 2.65s forwards;
  pointer-events: none;
}

.feedback-toast--exito {
  background: linear-gradient(135deg, var(--color-primario), var(--color-primario-claro));
  color: #fff;
}

.feedback-toast--error {
  background: linear-gradient(135deg, var(--color-error), #f0a8a8);
  color: #fff;
}

.feedback-toast--info {
  background: linear-gradient(135deg, var(--color-acento), var(--color-dorado));
  color: #fff;
}

/* ============================================================
   ANIMACIONES
   ============================================================ */

@keyframes aparecer {
  from {
    opacity: 0;
    transform: translateY(0.8rem);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes slideUp {
  from {
    opacity: 0;
    transform: translateY(1.6rem) scale(0.97);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes toastEntrar {
  from {
    opacity: 0;
    transform: translateX(-50%) translateY(1rem);
  }
  to {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
}

@keyframes toastSalir {
  from {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
  to {
    opacity: 0;
    transform: translateX(-50%) translateY(1rem);
  }
}

@keyframes seccionEntrar {
  from {
    opacity: 0;
    transform: translateY(2rem);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes flashActualizar {
  0%   { opacity: 1; }
  30%  { opacity: 0.6; }
  100% { opacity: 1; }
}

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

@media (max-width: 60rem) {
  .header__titulo {
    font-size: var(--tam-lg);
  }

  .header__logo {
    height: 4.8rem;
  }

  .habito-card__progreso-area {
    grid-column: 1 / -1;
  }
}

@media (max-width: 48rem) {
  .main {
    padding: var(--espacio-md) var(--espacio-sm) var(--espacio-xl);
    gap: var(--espacio-md);
  }

  .seccion__inner {
    padding: var(--espacio-md);
  }

  .form-habito__fila {
    flex-direction: column;
  }

  .btn--primario {
    width: 100%;
    justify-content: center;
  }

  .habito-card {
    grid-template-columns: auto 1fr auto;
    gap: var(--espacio-xs) var(--espacio-sm);
  }

  .habito-card__completar {
    width: 2.8rem;
    height: 2.8rem;
  }

  .mini-calendario__celda {
    width: 2rem;
    height: 2rem;
  }

  .estadisticas-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--espacio-sm);
  }

  .stat-card {
    padding: var(--espacio-sm);
  }

  .stat-card__valor {
    font-size: var(--tam-xl);
  }

  .stat-card__icono {
    font-size: 2.4rem;
  }

  .modal__acciones {
    flex-direction: column;
  }

  .modal__acciones .btn {
    width: 100%;
    justify-content: center;
  }

  .feedback-toast {
    white-space: normal;
    text-align: center;
    max-width: calc(100% - var(--espacio-xl));
  }
}

/* ============================================================
   HISTORIAL & PROGRESO
   ============================================================ */

.historial-filtros {
  display: flex;
  gap: var(--espacio-sm);
  flex-wrap: wrap;
}

.historial-filtros__btn {
  padding: 0.6rem 1.2rem;
  border: 0.2rem solid var(--color-borde);
  background: transparent;
  color: var(--color-texto-suave);
  border-radius: var(--radio);
  font-size: 1.4rem;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--trans-rapido);
}

.historial-filtros__btn:hover {
  border-color: var(--color-primario);
  color: var(--color-primario);
}

.historial-filtros__btn--activo {
  background: var(--color-primario);
  color: #fff;
  border-color: var(--color-primario);
}

.historial-resumen {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  gap: var(--espacio-md);
  margin-bottom: var(--espacio-lg);
}

.historial-stat {
  background: linear-gradient(135deg, var(--color-primario-bg), var(--color-superficie));
  border: 0.1rem solid var(--color-borde-suave);
  border-radius: var(--radio);
  padding: var(--espacio-md);
  text-align: center;
  box-shadow: var(--sombra-sm);
}

.historial-stat__icono {
  font-size: 2.4rem;
  margin-bottom: var(--espacio-xs);
}

.historial-stat__valor {
  font-size: 2.4rem;
  font-weight: 800;
  color: var(--color-primario-oscuro);
  line-height: 1;
  margin-bottom: var(--espacio-xs);
}

.historial-stat__etiqueta {
  font-size: var(--tam-sm);
  color: var(--color-texto-suave);
  font-weight: 600;
}

.habitos-historial {
  display: flex;
  flex-direction: column;
  gap: var(--espacio-md);
}

.habito-historial {
  background: var(--color-superficie);
  border: 0.1rem solid var(--color-borde-suave);
  border-left: 0.4rem solid var(--color-primario);
  border-radius: var(--radio);
  padding: var(--espacio-md);
  box-shadow: var(--sombra-sm);
}

.habito-historial__encabezado {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: var(--espacio-md);
  flex-wrap: wrap;
  gap: var(--espacio-sm);
}

.habito-historial__nombre {
  font-size: var(--tam-md);
  font-weight: 700;
  color: var(--color-texto);
}

.habito-historial__porcentaje {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: var(--color-primario-bg);
  color: var(--color-primario-oscuro);
  padding: 0.3rem 0.8rem;
  border-radius: var(--radio-pill);
  font-size: 1.3rem;
  font-weight: 700;
}

.mapa-calor {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin-bottom: var(--espacio-md);
}

.mapa-calor__celda {
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 0.3rem;
  border: 0.1rem solid var(--color-borde);
  cursor: pointer;
  transition: all var(--trans-rapido);
}

.mapa-calor__celda--completado {
  background: linear-gradient(135deg, var(--color-primario-claro), var(--color-primario));
  border-color: var(--color-primario);
}

.mapa-calor__celda:hover {
  transform: scale(1.15);
  box-shadow: 0 0.2rem 0.6rem rgba(45, 138, 110, 0.2);
}

.mapa-calor--trimestre .mapa-calor__celda {
  width: 1.2rem;
  height: 1.2rem;
  font-size: 0.8rem;
}

.mapa-calor__separador {
  width: 0.2rem;
  height: 1.6rem;
  background: var(--color-borde-suave);
  margin: 0 0.2rem;
}

.mapa-calor--trimestre .mapa-calor__separador {
  height: 1.2rem;
}

.historial-tabla {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--tam-base);
}

.historial-tabla thead {
  background: var(--color-primario-bg);
  border-bottom: 0.2rem solid var(--color-primario);
}

.historial-tabla th {
  padding: var(--espacio-sm) var(--espacio-md);
  text-align: left;
  font-weight: 700;
  color: var(--color-primario-oscuro);
}

.historial-tabla td {
  padding: var(--espacio-sm) var(--espacio-md);
  border-bottom: 0.1rem solid var(--color-borde-suave);
  color: var(--color-texto);
}

.historial-tabla tbody tr:hover {
  background: var(--color-primario-bg);
}

.historial-tabla__habito {
  font-weight: 600;
  color: var(--color-primario-oscuro);
}

.historial-tabla__valor {
  font-weight: 700;
  text-align: center;
}

/* ============================================================
   RESPONSIVE HISTORIAL
   ============================================================ */

@media (max-width: 60rem) {
  .historial-tabla {
    font-size: 1.4rem;
  }
}

@media (max-width: 48rem) {
  .historial-filtros {
    width: 100%;
  }

  .historial-filtros__btn {
    flex: 1;
    min-width: 12rem;
  }

  .habito-historial {
    overflow-x: auto;
  }

  .mapa-calor {
    padding: var(--espacio-sm);
    background: var(--color-fondo);
    border-radius: var(--radio-sm);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .historial-tabla {
    font-size: 1.3rem;
  }
}

/* ============================================================
   RESPONSIVE HEADER
   ============================================================ */

@media (max-width: 36rem) {
  .header__contenido {
    flex-direction: column;
    align-items: flex-start;
  }

  .header__fecha {
    text-align: left;
  }

  .header__logo {
    height: 4rem;
  }

  .header__titulo {
    font-size: var(--tam-lg);
  }

  .header__frase {
    font-size: 1rem;
    line-height: 1.3;
  }

  .habito-card__meta {
    gap: var(--espacio-xs);
  }

  .estadisticas-grid {
    grid-template-columns: 1fr;
  }

  .lista-vacia-icono {
    font-size: 3.6rem;
    margin-bottom: var(--espacio-sm);
  }
}
