/* views/paciente.css — Portal de familias (acento azul claro). Prefijo pac-. */

/* ---------- Acento de superficie ---------- */
body[data-superficie="paciente"] .portal h1 { color: var(--nh-verde-900); }
/* Botón principal del portal de familias: verde, como en el resto de la página (regla común en equipo.css). */

/* ---------- Login ---------- */
.pac-login__titulo { text-align: center; margin-bottom: .25rem; color: var(--nh-verde-900); }
.pac-login__sub { text-align: center; color: var(--nh-texto-2); margin: 0 0 var(--nh-sp-6); font-size: var(--nh-fs-sm); }
.pac-login__acciones { flex-direction: column; gap: var(--nh-sp-2); }
.pac-login__demo-btn { background: var(--nh-azul-pastel); border-color: var(--nh-azul); color: #114b7d; font-weight: 700; min-height: 52px; font-size: var(--nh-fs-md); }
.pac-login__demo-btn:hover { background: #d2e8fa; }
.pac-login__links { display: flex; flex-direction: column; gap: .35rem; text-align: center; margin: var(--nh-sp-4) 0 0; font-size: var(--nh-fs-sm); }

/* ---------- Inicio ---------- */
.pac-inicio__banner:not(:empty) { margin-bottom: var(--nh-sp-6); }
.pac-inicio__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: var(--nh-sp-6); margin-bottom: var(--nh-sp-8); }

/* Tarjeta "Próxima cita" (borde azul, filas con burbuja de icono, onda decorativa) */
.pac-proxima { position: relative; overflow: hidden; background: #fff; border: 2px solid #bcdcf5; border-radius: 22px; box-shadow: 0 8px 22px rgba(79, 159, 216, .1); }
.pac-proxima__ola { position: absolute; top: -60px; right: -40px; width: 320px; height: 200px; background: linear-gradient(160deg, #eaf4fd 0%, rgba(234, 244, 253, 0) 70%); border-radius: 50% 50% 60% 40% / 60% 50% 50% 40%; pointer-events: none; z-index: 0; }
.pac-proxima > *:not(.pac-proxima__ola) { position: relative; z-index: 1; }
.pac-proxima__cab { margin-bottom: var(--nh-sp-4); }
.pac-proxima__fila--fecha { position: relative; }
.pac-proxima__onda-deco { margin-left: auto; color: #a9d0ee; opacity: .8; display: none; }
.pac-proxima__onda-deco .icono-linea { width: 90px; height: 44px; }
@media (min-width: 560px) { .pac-proxima__onda-deco { display: inline-flex; } }
.pac-proxima__titulo { display: flex; align-items: center; gap: .7rem; font-size: var(--nh-fs-xl); }
.pac-proxima__icono-titulo {
  width: 46px; height: 46px; border-radius: 13px; flex: none;
  background: var(--nh-azul); color: #fff; display: grid; place-items: center;
}
.pac-proxima__aviso { display: flex; align-items: center; gap: .55rem; margin: 0 0 var(--nh-sp-4); border-radius: 12px; font-weight: 600; }
.pac-proxima__campana { display: inline-flex; color: var(--nh-estado-reprogramada); flex: none; }
.pac-proxima__campana .icono-linea { width: 18px; height: 18px; }
.pac-proxima__fila { display: flex; align-items: center; gap: var(--nh-sp-3); margin-bottom: var(--nh-sp-4); }
.pac-proxima__fila p { margin: 0; }
.pac-proxima__burbuja { width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; flex: none; }
.pac-proxima__burbuja .icono-linea { width: 24px; height: 24px; }
.pac-proxima__burbuja--verde { background: var(--nh-verde-pastel); color: var(--nh-verde-600); }
.pac-proxima__burbuja--azul { background: var(--nh-azul-pastel); color: var(--nh-estado-reprogramada); }
.pac-proxima__fecha { font-size: var(--nh-fs-xl); font-weight: 800; color: var(--nh-verde-900); line-height: 1.15; }
.pac-proxima__fecha::first-letter { text-transform: uppercase; }
.pac-proxima__hora { font-size: var(--nh-fs-lg); font-weight: 800; color: var(--nh-estado-reprogramada); }
.pac-proxima__servicio { font-weight: 700; }
.pac-proxima__desc { color: var(--nh-texto-2); font-size: var(--nh-fs-sm); }
.pac-proxima__acciones { display: flex; gap: var(--nh-sp-2); flex-wrap: wrap; }
.pac-proxima__btn-citas { gap: .45rem; color: var(--nh-estado-reprogramada); border-color: #9fcaec; }
.pac-proxima__btn-citas:hover { background: var(--nh-azul-pastel); }
.pac-proxima__btn-citas .icono-linea { width: 17px; height: 17px; }

/* Accesos rápidos (tarjetas con icono pastel, ilustración tenue, onda y flecha) */
.pac-accesos { display: grid; gap: var(--nh-sp-4); align-content: start; }
.pac-acceso {
  position: relative; overflow: hidden;
  display: grid; grid-template-columns: auto 1fr auto; grid-template-rows: auto auto;
  column-gap: var(--nh-sp-3); align-items: center; text-decoration: none; color: inherit;
  padding: var(--nh-sp-6) var(--nh-sp-4); border: 1px solid var(--nh-borde); border-radius: 20px;
  transition: transform .16s ease, box-shadow .16s ease;
}
.pac-acceso:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(30, 107, 73, .1); }
/* Fondo suave y onda inferior por color */
.pac-acceso--rosa { background: linear-gradient(120deg, #fff 55%, var(--nh-rosa-pastel)); }
.pac-acceso--morado { background: linear-gradient(120deg, #fff 55%, var(--nh-morado-pastel)); }
.pac-acceso--wa { background: linear-gradient(120deg, #fff 55%, #e0f6ea); }
.pac-acceso strong { font-size: var(--nh-fs-md); }
.pac-acceso__icono { grid-row: 1 / 3; width: 54px; height: 54px; border-radius: 15px; background: var(--nh-azul-pastel); display: grid; place-items: center; }
.pac-acceso__icono .icono-linea, .pac-acceso__icono .icono { width: 25px; height: 25px; }
.pac-acceso__icono--rosa { background: var(--nh-rosa-pastel); color: #c0563b; }
.pac-acceso__icono--morado { background: var(--nh-morado-pastel); color: #6b4fa1; }
.pac-acceso__icono--verde { background: #dff5e7; color: #1d9e55; }
.pac-acceso__texto { color: var(--nh-texto-2); font-size: var(--nh-fs-sm); }
.pac-acceso__flecha { grid-row: 1 / 3; grid-column: 3; color: #a9b6b0; display: inline-flex; position: relative; z-index: 1; }
.pac-acceso__flecha .icono-linea { width: 20px; height: 20px; }
.pac-acceso:hover .pac-acceso__flecha { color: var(--nh-verde-600); }
/* Ilustración tenue de fondo (detrás de la flecha) */
.pac-acceso__deco { position: absolute; right: 42px; top: 50%; transform: translateY(-50%); opacity: .14; pointer-events: none; }
.pac-acceso__deco .icono-linea { width: 84px; height: 84px; }
.pac-acceso--rosa .pac-acceso__deco { color: #c0563b; }
.pac-acceso--morado .pac-acceso__deco { color: #6b4fa1; }
.pac-acceso--wa .pac-acceso__deco { color: #1d9e55; }
.pac-inicio__nota .nota { border-left-color: var(--nh-azul); }

/* ---------- Mis citas ---------- */
.pac-citas__barra { display: flex; justify-content: space-between; align-items: center; gap: var(--nh-sp-3); flex-wrap: wrap; margin-bottom: var(--nh-sp-4); }
.pac-tabs { display: inline-flex; background: #eef3f1; border-radius: var(--nh-radio-pill); padding: 4px; gap: 2px; }
.pac-tabs__tab { position: relative; display: inline-flex; align-items: center; gap: .4rem; border: 0; background: transparent; border-radius: var(--nh-radio-pill); padding: .5rem 1.1rem; font: inherit; font-weight: 600; color: var(--nh-texto-2); cursor: pointer; min-height: 40px; }
.pac-tabs__tab[aria-selected="true"] { background: #fff; color: var(--nh-verde-900); box-shadow: var(--nh-sombra-sm); }
.pac-tabs__tab:focus-visible { outline: 3px solid var(--nh-azul); outline-offset: 1px; }
.pac-tabs__num { font-size: var(--nh-fs-xs); background: var(--nh-azul-pastel); color: var(--nh-estado-reprogramada); border-radius: var(--nh-radio-pill); padding: .1rem .5rem; font-weight: 700; }
.pac-tabs__punto { width: 9px; height: 9px; border-radius: 50%; background: var(--nh-estado-cancelada); box-shadow: 0 0 0 2px #fff; }
.pac-citas__panel { animation: pac-aparecer .2s ease-out; }
.pac-cita { transition: box-shadow .2s, border-color .2s; }
.pac-cita .item-cita__info { display: grid; gap: .2rem; }
.pac-cita__cuando { color: var(--nh-texto-2); font-size: var(--nh-fs-sm); display: block; }
.pac-cita__cuando::first-letter { text-transform: uppercase; }
.pac-cita__nino { display: inline-block; width: fit-content; justify-self: start; align-self: flex-start; margin: .1rem 0; font-size: var(--nh-fs-xs); font-weight: 800; color: var(--nh-verde-900); background: var(--nh-verde-pastel); border-radius: var(--nh-radio-pill); padding: .1rem .55rem; }
.pac-cita__estado { margin-top: .15rem; }
.pac-cita__historial { font-size: var(--nh-fs-xs); color: var(--nh-texto-2); }
.pac-cita__comentario { font-size: var(--nh-fs-xs); color: var(--nh-texto-2); font-style: italic; }
.pac-cita.is-nueva { border-color: var(--nh-azul); }
.pac-cita.is-resaltada { border-color: var(--nh-estado-pendiente); box-shadow: 0 0 0 3px var(--nh-amarillo-pastel), var(--nh-sombra-md); animation: pac-resaltar 1.6s ease-out 2; }
.pac-cita .badge__punto { animation: pac-latido 1.2s ease-in-out infinite; }

@keyframes pac-aparecer { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
@keyframes pac-resaltar { 0% { background: var(--nh-amarillo-pastel); } 100% { background: #fff; } }
@keyframes pac-latido { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.35); } }

/* ---------- Solicitar ---------- */
.pac-solicitar__grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: var(--nh-sp-6); align-items: start; }
.pac-solicitar__form .tarjeta__titulo { margin-bottom: 0; }
.pac-solicitar__aviso { margin: 0; }
.pac-solicitar__contador { text-align: right; color: var(--nh-texto-2); font-size: var(--nh-fs-xs); margin-top: calc(-1 * var(--nh-sp-3)); }
.pac-solicitar__contador.is-limite { color: var(--nh-estado-cancelada); font-weight: 700; }
.pac-solicitar__lado { display: grid; gap: var(--nh-sp-3); }
.pac-pasos { margin: 0; padding-left: 1.25rem; display: grid; gap: .5rem; font-size: var(--nh-fs-sm); color: var(--nh-texto-2); }
.pac-pasos strong { color: var(--nh-texto); }
.pac-solicitar__tip { background: var(--nh-azul-pastel); border-color: transparent; }
.pac-solicitar__tip p { margin: 0; font-size: var(--nh-fs-sm); color: #114b7d; }

/* ---------- Seguimiento ---------- */
.pac-seguimiento__aviso { margin-bottom: var(--nh-sp-6); }
.pac-evoluciones { margin-bottom: var(--nh-sp-6); }
.pac-evolucion__reco { background: var(--nh-amarillo-pastel); border-radius: 10px; padding: .5rem .7rem; color: #6b4b00; }
.pac-informe__meta { font-size: var(--nh-fs-xs); color: var(--nh-texto-2); margin: 0 0 .35rem; }
.pac-seguimiento__grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: var(--nh-sp-6); align-items: start; }
.pac-objetivos { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--nh-sp-4); }
.pac-objetivo__fila { display: flex; justify-content: space-between; gap: var(--nh-sp-3); margin-bottom: .4rem; }
.pac-objetivo__titulo { font-weight: 600; }
.pac-objetivo__valor { font-weight: 800; color: var(--nh-estado-reprogramada); white-space: nowrap; }
.pac-objetivo .progreso { height: 12px; }
.pac-objetivo .progreso__barra { background: linear-gradient(90deg, var(--nh-azul), var(--nh-estado-reprogramada)); transition: width .6s ease; }
.pac-timeline li::before { background: var(--nh-azul); box-shadow: 0 0 0 2px var(--nh-azul); }
.pac-timeline__fecha { display: block; font-size: var(--nh-fs-xs); font-weight: 700; text-transform: uppercase; color: var(--nh-estado-reprogramada); letter-spacing: .04em; }
.pac-timeline__texto { margin: .15rem 0 0; }
.pac-seguimiento__sin-hitos { color: var(--nh-texto-2); margin: 0; }

/* ---------- Recursos ---------- */
.pac-recursos__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--nh-sp-6); }
.pac-recurso { display: flex; flex-direction: column; gap: var(--nh-sp-3); align-items: flex-start; }
.pac-recurso__titulo { margin: 0; }
.pac-recurso__desc { margin: 0; color: var(--nh-texto-2); }
.pac-actividades { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; width: 100%; }
.pac-actividad { display: flex; gap: .6rem; align-items: flex-start; padding: .6rem .75rem; background: #f4f8f6; border-radius: var(--nh-radio-sm); cursor: pointer; }
.pac-actividad input { accent-color: var(--nh-verde-600); width: 18px; height: 18px; margin-top: .15rem; flex: none; }
.pac-actividad:has(input:checked) span { text-decoration: line-through; color: var(--nh-texto-2); }
.pac-recurso__nota { color: var(--nh-texto-2); }
.pac-recursos__pie { margin-top: var(--nh-sp-6); color: var(--nh-texto-2); font-size: var(--nh-fs-sm); }
/* Documentos del centro (contrato y consentimiento en PDF) */
.pac-doc__intro { margin: -.25rem 0 var(--nh-sp-4); font-size: var(--nh-fs-sm); }
.pac-doc__acciones { display: flex; gap: .6rem; flex-wrap: wrap; margin-top: auto; }
.pac-doc .pac-recurso__desc { flex: 1; }

/* ---------- Avisos ---------- */
.pac-avisos__h2 { font-size: var(--nh-fs-lg); margin-bottom: var(--nh-sp-3); }
.pac-avisos__banner { margin-bottom: var(--nh-sp-8); }
.pac-avisos__banner-grande .banner { padding: var(--nh-sp-6); border-radius: var(--nh-radio-md); }
.pac-avisos__banner-grande .banner__icono { font-size: 2.25rem; }
.pac-avisos__banner-grande .banner__titulo { font-size: var(--nh-fs-lg); }
.pac-avisos__banner-grande .banner__mensaje { font-size: var(--nh-fs-md); }
.pac-notas { display: grid; gap: var(--nh-sp-3); }
.pac-nota { border-left-color: var(--nh-azul); }
.pac-nota__texto { margin: 0; }

/* ---------- Responsive (1366×768 ok por defecto; 390×844 abajo) ---------- */
@media (max-width: 900px) {
  .pac-inicio__grid, .pac-solicitar__grid, .pac-seguimiento__grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .pac-proxima__fecha { font-size: var(--nh-fs-lg); }
  .pac-citas__barra { flex-direction: column; align-items: stretch; }
  .pac-tabs { width: 100%; }
  .pac-tabs__tab { flex: 1; justify-content: center; }
  .pac-recursos__grid { grid-template-columns: 1fr; }
  .pac-solicitar__lado { order: 2; }
  .pac-avisos__banner-grande .banner { padding: var(--nh-sp-4); }
}

/* ---------- Login de familias: foto a la izquierda + panel de acceso a la derecha ---------- */
.pac-login--split { display: block; padding: 0; background: #fff; min-height: calc(100vh - var(--nh-header)); }
.pac-login--split .pac-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: calc(100vh - var(--nh-header)); width: 100%; max-width: none; margin: 0; }
.pac-split__foto { position: relative; overflow: hidden; background: var(--nh-verde-pastel); }
.pac-split__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
/* La foto va anclada a la izquierda para que no se recorte el lema "Acompañamos cada paso" (abajo a la izquierda) */
.pac-split__foto img { object-position: left 82%; } /* prioriza la parte baja, donde está el lema */
/* Borde derecho ondulado: el panel blanco "muerde" la foto */
.pac-split__foto::after {
  content: ''; position: absolute; top: -10%; right: -70px; width: 140px; height: 120%;
  background: #fff; border-radius: 50% 0 0 50% / 40% 0 0 40%;
}
.pac-split__panel {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--nh-sp-6);
  padding: var(--nh-sp-6) var(--nh-sp-6) 1.25rem; background: #fff; overflow: hidden;
}
/* La tarjeta pierde borde/sombra: el panel blanco es la tarjeta */
.pac-split__tarjeta.login__tarjeta { max-width: 540px; border: 0; box-shadow: none; padding: 0; background: transparent; border-radius: 0; }
.pac-split__tarjeta .login__logo { height: 84px; margin-bottom: var(--nh-sp-2); }
.pac-split__tarjeta .pac-login__titulo { font-size: clamp(2rem, 3.6vw, 3rem); margin: 0 0 .35rem; }
.pac-split__tarjeta .pac-login__sub { font-size: 1.05rem; margin-bottom: 1.25rem; }
.pac-split__tarjeta .control { min-height: 56px; border-radius: 16px; font-size: 1.05rem; }
.pac-split__tarjeta .btn--primario.btn--bloque { min-height: 54px; font-size: 1.15rem; border-radius: 16px; background: var(--nh-verde-600); }
.pac-split__tarjeta .btn--primario.btn--bloque:hover { background: var(--nh-verde-900); }
.pac-split__tarjeta .pac-login__links a { color: var(--nh-verde-600); font-weight: 700; }
/* Los tres accesos del pie: Citas · Seguimiento · Avisos */
.pac-split__rasgos { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; justify-content: center; gap: 0; width: 100%; max-width: 540px; }
.pac-split__rasgos li { flex: 1; display: flex; flex-direction: column; align-items: center; gap: .55rem; font-weight: 600; color: var(--nh-texto-2); font-size: 1rem; padding: .25rem 1rem; }
.pac-split__rasgos li + li { border-left: 1px solid var(--nh-borde); }
.pac-split__rasgo-ico { width: 58px; height: 58px; border-radius: 50%; display: grid; place-items: center; }
.pac-split__rasgo-ico .icono-linea { width: 28px; height: 28px; }
.pac-split__rasgo-ico--verde   { background: #e3f5ea; color: var(--nh-verde-900); }
.pac-split__rasgo-ico--durazno { background: #ffe4d6; color: #d9784a; }
.pac-split__rasgo-ico--azul    { background: #e1f1fd; color: #3f6f9e; }
/* Adornos: hojas y puntos, como en la maqueta */
.pac-split__deco { position: absolute; pointer-events: none; color: #9ccfb3; opacity: .7; }
.pac-split__deco--hoja1 { top: 18px; right: 22px; transform: rotate(-20deg); }
.pac-split__deco--hoja1 .icono-linea { width: 96px; height: 96px; stroke-width: 1.2; }
.pac-split__deco--punto { right: 18px; top: 33%; width: 40px; height: 40px; border-radius: 50%; background: #ffe7d3; opacity: 1; }
.pac-split__deco--puntos {
  right: 14px; bottom: 24px; width: 70px; height: 50px; opacity: 1;
  background: radial-gradient(circle, #f3c9a6 2.2px, transparent 2.6px) 0 0 / 14px 14px;
  clip-path: polygon(0 0, 100% 10%, 100% 100%, 20% 100%);
}
@media (max-width: 767px) {
  .pac-login--split .pac-split { grid-template-columns: 1fr; min-height: 0; }
  .pac-split__deco { display: none; } /* en móvil los adornos pisan el texto */
  .pac-split__foto { height: clamp(250px, 72vw, 380px); } /* franja alta: se ve la foto sin comerse la pantalla */
  /* En móvil la curva va abajo: el panel blanco muerde la foto desde el borde inferior */
  .pac-split__foto::after { top: auto; right: -10%; bottom: -70px; left: -10%; width: 120%; height: 120px; border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
  /* La foto sobresale un 8% por la derecha para dejar fuera la franja pálida del borde original */
  .pac-split__foto img { width: 108%; right: auto; object-position: left 38%; }
  /* Panel del formulario en teléfono: todo más proporcionado y sin espacio muerto */
  .pac-split__panel { padding: 1.25rem 1.25rem 1.5rem; gap: 1rem; justify-content: flex-start; }
  .pac-split__tarjeta .login__logo { height: 58px; margin-bottom: .4rem; }
  .pac-split__tarjeta .pac-login__titulo { font-size: 1.75rem; margin: 0 0 .2rem; }
  .pac-split__tarjeta .pac-login__sub { font-size: .95rem; margin-bottom: var(--nh-sp-4); line-height: 1.4; }
  .pac-split__tarjeta .campo__label { font-size: .9rem; }
  .pac-split__tarjeta .control { min-height: 50px; font-size: 1rem; border-radius: 14px; }
  .pac-split__tarjeta .formulario { gap: var(--nh-sp-3); }
  .pac-split__tarjeta .login__util { margin: -.2rem 0 .2rem; }
  .pac-split__tarjeta .login__util a { font-size: .9rem; }
  .pac-split__tarjeta .btn--primario.btn--bloque { min-height: 52px; font-size: 1.05rem; border-radius: 14px; }
  .pac-split__tarjeta .pac-login__links { margin-top: var(--nh-sp-3); }
  /* Accesos del pie: tres chips compactos en una fila */
  .pac-split__rasgos { gap: .5rem; padding: .25rem 0 0; }
  .pac-split__rasgos li { flex: 1; flex-direction: row; justify-content: center; gap: .45rem; padding: .55rem .4rem; border: 1px solid var(--nh-borde); border-radius: 14px; background: #fff; font-size: .82rem; }
  .pac-split__rasgos li + li { border-left: 1px solid var(--nh-borde); }
  .pac-split__rasgo-ico { width: 34px; height: 34px; }
  .pac-split__rasgo-ico .icono-linea { width: 18px; height: 18px; }
  .pac-split__deco--hoja1 .icono-linea { width: 64px; height: 64px; }
}

/* Confirmación de asistencia desde el portal (fase 12) */
.pac-cita__confirmar { margin-top: .6rem; padding: .7rem .85rem; border-radius: 14px; background: var(--nh-verde-pastel, #e9f7ee); display: grid; gap: .5rem; }
.pac-cita__confirmar-txt { font-size: var(--nh-fs-sm); color: var(--nh-texto); }
.pac-cita__confirmar-botones { display: flex; flex-wrap: wrap; gap: .4rem; }
.pac-cita__confirmar-botones .btn[disabled][aria-pressed="true"] { opacity: 1; outline: 2px solid var(--nh-verde-400); cursor: default; }

/* Mi plan (fase 14) */
.pac-acceso--verde { background: linear-gradient(120deg, #fff 55%, #e0f6ea); }
.pac-acceso--verde .pac-acceso__deco { color: #1d9e55; }
.pac-plan__desc { margin: 0 0 var(--nh-sp-3); color: var(--nh-texto-2); }
.pac-plan__datos { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--nh-sp-3); margin: 0 0 var(--nh-sp-4); }
.pac-plan__datos dt { font-size: var(--nh-fs-xs); text-transform: uppercase; letter-spacing: .08em; font-weight: 800; color: var(--nh-texto-2); }
.pac-plan__datos dd { margin: .15rem 0 0; font-weight: 700; color: var(--nh-verde-900); }
.pac-plan__beneficios { margin: 0 0 var(--nh-sp-4); }
.pac-plan__nota { margin: 0 0 var(--nh-sp-3); padding: .6rem .8rem; border-radius: 12px; background: var(--nh-amarillo-pastel); font-size: var(--nh-fs-sm); }
.pac-plan__acciones { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.pac-plan__lista { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: var(--nh-sp-4); margin-top: var(--nh-sp-4); }
.pac-plan__opcion { display: flex; flex-direction: column; gap: .5rem; }
.pac-plan__opcion .btn { align-self: flex-start; margin-top: auto; }
.pac-plan__precio { margin: 0; font-weight: 900; color: var(--nh-verde-900); font-size: 1.15rem; }
.pac-plan__historial { margin-top: var(--nh-sp-6); }

/* Fase 23: comunicados del centro para las familias (portal) */
.pac-avisos__comunicados { margin-top: 1.25rem; }
.pac-comunicados { display: grid; gap: .75rem; margin-top: .6rem; }
/* Colores que rotan entre comunicados (clase --c0 … --c4 por su posición). Por defecto, amarillo. */
.pac-comunicado { --c-bg: #fff7e6; --c-bd: #f3dca5; --c-ac: #e0a93b; --c-tx: #5c4a1e; --c-mt: #a08a52;
  background: var(--c-bg); border: 1px solid var(--c-bd); border-left: 4px solid var(--c-ac); border-radius: 14px; padding: .9rem 1.1rem; }
.pac-comunicado__txt { margin: 0; color: var(--c-tx); line-height: 1.5; }
.pac-comunicado__meta { margin: .35rem 0 0; font-size: .78rem; color: var(--c-mt); }
.pac-comunicado--c0 { --c-bg: #eaf7ef; --c-bd: #bfe3cd; --c-ac: #27865b; --c-tx: #1f5c41; --c-mt: #5b9b7d; } /* verde */
.pac-comunicado--c1 { --c-bg: #e8f2fb; --c-bd: #bcd9f2; --c-ac: #3f8fd0; --c-tx: #234e6e; --c-mt: #5f87a8; } /* azul */
.pac-comunicado--c2 { --c-bg: #fdeef0; --c-bd: #f6cdd3; --c-ac: #e2666f; --c-tx: #7d2e35; --c-mt: #b0737a; } /* rosa */
.pac-comunicado--c3 { --c-bg: #f1ecfb; --c-bd: #d8c9f0; --c-ac: #8a6fd0; --c-tx: #463a76; --c-mt: #8273a8; } /* morado */
.pac-comunicado--c4 { --c-bg: #fff7e6; --c-bd: #f3dca5; --c-ac: #e0a93b; --c-tx: #5c4a1e; --c-mt: #a08a52; } /* amarillo */

/* Seguimiento: resumen del proceso y bloques de informes / recursos */
.pac-seg-resumen { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 var(--nh-sp-5); }
.pac-seg-chip { display: inline-flex; align-items: center; gap: .35rem; padding: .45rem .8rem; border-radius: 999px; background: #fff; border: 1px solid var(--nh-borde); font-size: var(--nh-fs-sm); color: var(--nh-texto); text-decoration: none; }
a.pac-seg-chip:hover { border-color: var(--nh-verde-400); }
.pac-seg-bloque { margin: 0 0 var(--nh-sp-6); }

/* Documentos del centro: firma en el portal (fase 24) */
.pac-doc__cab { align-items: center; flex-wrap: wrap; gap: .6rem; }
.pac-doc--pendiente { border-color: #f1d99a; }
.firmar__intro { margin: 0 0 1rem; line-height: 1.5; }
.firmar__doc { margin: 0 0 1.2rem; padding: .9rem 1rem; border: 1px solid var(--nh-borde); border-radius: 14px; background: #fbfdfb; }
.firmar__doc-cab { display: flex; align-items: center; justify-content: space-between; gap: .6rem; flex-wrap: wrap; }
.firmar__doc-titulo { margin: 0; font-size: var(--nh-fs-md); }
.firmar__doc-desc { margin: .3rem 0 .6rem; font-size: var(--nh-fs-sm); color: var(--nh-texto-2); }
.firmar__pdf { display: block; width: 100%; height: 340px; border: 1px solid #dfe9e3; border-radius: 10px; background: #fff; margin: 0 0 .7rem; }
.firmar__acepta { display: grid; grid-template-columns: auto 1fr; gap: .6rem; align-items: start; padding: .7rem .8rem; border-radius: 12px; background: #f1f8f3; font-size: var(--nh-fs-sm); line-height: 1.45; cursor: pointer; }
.firmar__acepta input { width: 20px; height: 20px; margin-top: .1rem; accent-color: var(--nh-verde-600); }
.firmar__legal { margin: .8rem 0 0; font-size: var(--nh-fs-xs); color: var(--nh-texto-2); line-height: 1.45; }
.firmar__datos { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: .6rem; margin: 0 0 1rem; }
.firmar__datos dt { font-size: var(--nh-fs-xs); text-transform: uppercase; letter-spacing: .06em; font-weight: 800; color: var(--nh-texto-2); }
.firmar__datos dd { margin: .1rem 0 0; font-weight: 700; }
.firmar__imagen { display: block; max-width: 100%; height: auto; border: 1px solid #dfe9e3; border-radius: 12px; background: #fff; margin: 0 0 .8rem; }
.pac-plan__saldo { font-weight: 800; color: #9c2f1c; margin-left: .3rem; }
@media (max-width: 640px) { .firmar__pdf { height: 260px; } }
.pac-login__otra { margin: 0 0 var(--nh-sp-4); font-size: var(--nh-fs-sm); text-align: left; }

/* Documentos del centro sin PDF (fase 38): el texto se lee y se llena en la página. */
.pac-doc__firmados { display: grid; gap: var(--nh-sp-3); }
.pac-doc--firmado { padding: 0; }
.pac-doc__resumen { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; padding: .9rem 1.1rem; cursor: pointer; list-style: none; }
.pac-doc__resumen::-webkit-details-marker { display: none; }
.pac-doc__resumen-tit { font-weight: 800; color: var(--nh-verde-900); font-size: var(--nh-fs-md); }
.pac-doc__ver { margin-left: auto; font-size: var(--nh-fs-sm); font-weight: 700; color: var(--nh-verde-600); }
.pac-doc__ver::after { content: ' ▾'; }
.pac-doc--firmado[open] .pac-doc__ver::after { content: ' ▴'; }
.pac-doc--firmado > :not(summary) { margin-left: 1.1rem; margin-right: 1.1rem; }
.pac-doc--firmado[open] { padding-bottom: .8rem; }
.firmar__firma-tit { margin: .6rem 0 .3rem; font-size: var(--nh-fs-xs); text-transform: uppercase; letter-spacing: .06em; font-weight: 800; color: var(--nh-texto-2); }

/* Formulario de firma en Recursos (rediseño): encabezado, guía de pasos y un recuadro por paso. */
.pac-doc__firmar { padding: 0; margin: 0 0 var(--nh-sp-6); overflow: hidden; border: 1px solid #f1e2b4; border-top: 4px solid var(--nh-amarillo); }
.firmar--inline { display: block; }
.firmar__cab { display: flex; align-items: flex-start; gap: 1rem; padding: 1.4rem 1.6rem 1.2rem; background: linear-gradient(135deg, var(--nh-amarillo-pastel), #fff 75%); }
.firmar__cab-ico { flex: none; width: 48px; height: 48px; border-radius: 14px; background: #fff; display: grid; place-items: center; font-size: 1.45rem; box-shadow: var(--nh-sombra-sm); }
.firmar__cab-tit { margin: .1rem 0 .3rem; font-size: var(--nh-fs-lg); color: var(--nh-verde-900); line-height: 1.25; }
.firmar__cab-sub { margin: 0; font-size: var(--nh-fs-sm); color: var(--nh-texto-2); line-height: 1.5; max-width: 62ch; }
.firmar__guia { list-style: none; margin: 0; padding: .8rem 1.6rem; display: flex; flex-wrap: wrap; gap: .5rem; background: #fbfcfb; border-top: 1px solid var(--nh-borde); border-bottom: 1px solid var(--nh-borde); }
.firmar__guia li { display: inline-flex; align-items: center; gap: .45rem; padding: .28rem .8rem .28rem .3rem; border: 1px solid var(--nh-borde); border-radius: var(--nh-radio-pill); background: #fff; font-size: var(--nh-fs-xs); font-weight: 700; color: var(--nh-texto-2); transition: background .2s, color .2s, border-color .2s; }
.firmar__guia b { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; background: var(--nh-verde-pastel); color: var(--nh-verde-900); font-size: .72rem; }
.firmar__guia li.is-listo { background: var(--nh-verde-pastel); border-color: #bfe3cd; color: var(--nh-verde-900); }
.firmar__guia li.is-listo b { background: var(--nh-verde-600); color: transparent; position: relative; }
.firmar__guia li.is-listo b::after { content: '✓'; position: absolute; inset: 0; display: grid; place-items: center; color: #fff; }
.firmar__cuerpo { padding: 1.4rem 1.6rem 1.6rem; display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.1rem; }
.firmar__paso { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--nh-sp-4); padding: 1.1rem 1.25rem 1.25rem; border: 1px solid var(--nh-borde); border-radius: 16px; background: #fff; transition: border-color .2s, box-shadow .2s; }
.firmar__paso:focus-within { border-color: #bfe3cd; box-shadow: 0 0 0 3px rgba(46, 158, 107, .08); }
.firmar__paso-tit { display: flex; align-items: center; gap: .65rem; margin: 0; font-size: var(--nh-fs-md); color: var(--nh-verde-900); }
.firmar__num { flex: none; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--nh-verde-pastel); color: var(--nh-verde-900); font-size: .85rem; font-weight: 800; position: relative; }
.firmar__paso--listo .firmar__num { background: var(--nh-verde-600); }
.firmar__paso--listo .firmar__num span { visibility: hidden; }
.firmar__paso--listo .firmar__num::after { content: '✓'; position: absolute; inset: 0; display: grid; place-items: center; color: #fff; }
.firmar--inline .formulario--2col { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.firmar--inline .control { min-width: 0; max-width: 100%; }
.firmar--inline .campo { margin: 0; }
.firmar__paso .firmar__doc { margin: 0; padding: 0; border: 0; background: none; display: grid; gap: .6rem; }
.firmar__paso .firmar__doc + .firmar__doc { padding-top: 1.1rem; border-top: 1px dashed var(--nh-borde); }
.firmar__paso .firmar__acepta { margin: 0; }
.firmar__paso .firmar__aviso { margin: 0; padding: .7rem .9rem; border-radius: 12px; background: var(--nh-amarillo-pastel); font-size: var(--nh-fs-sm); line-height: 1.5; }
.firmar--inline canvas { max-width: 100%; }
.firmar__final { display: flex; align-items: center; justify-content: space-between; gap: 1rem 1.5rem; flex-wrap: wrap; padding-top: .3rem; }
.firmar__final .firmar__legal { margin: 0; flex: 1 1 320px; }
.firmar__enviar { min-width: 230px; min-height: 48px; font-size: var(--nh-fs-md); }
@media (max-width: 640px) {
  .firmar__cab, .firmar__guia, .firmar__cuerpo { padding-left: 1rem; padding-right: 1rem; }
  .firmar__cab-ico { width: 40px; height: 40px; font-size: 1.2rem; }
  .firmar__paso { padding: 1rem; }
  .firmar--inline .formulario--2col { grid-template-columns: minmax(0, 1fr); }
  .firmar__enviar { width: 100%; }
}

.firmar__pista { margin: 0; font-size: var(--nh-fs-sm); color: var(--nh-texto-2); line-height: 1.5; }
.firmar__paso .firmar__doc { gap: .8rem; }
.firma-recuadro__nota { margin: .7rem 0 0; font-size: var(--nh-fs-xs); color: var(--nh-texto-2); line-height: 1.45; }
@media (max-width: 640px) {
}


/* Inicio de familias: cuenta regresiva de la próxima cita y avance del plan */
.pac-cuenta { display: inline-block; margin-bottom: .3rem; padding: .2rem .7rem; border-radius: 999px; font-size: .82rem; font-weight: 800; background: #e6f6ec; color: #1f6b45; }
.pac-cuenta--pronto { background: #fff3d6; color: #8a6400; }
.pac-cuenta--hoy { background: #27865b; color: #fff; box-shadow: 0 4px 10px rgba(39, 134, 91, .3); }
.pac-avance { display: block; text-decoration: none; margin: 0 0 var(--nh-sp-6); transition: transform .15s ease, box-shadow .15s ease; }
.pac-avance:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(30, 60, 45, .1); }
