/*
 * Área de socio AIM 2.0 — base transversal
 *
 * Componentes y estados aditivos según design_handoff_area_socio/especificaciones.md.
 * Todas las clases usan prefijo `aim-v2-` para no colisionar con el CSS actual.
 * Se carga DESPUÉS de area-socio.css.
 *
 * No cambia la apariencia del área existente. Solo introduce recursos para las
 * fases F1-F6 del rediseño. Componentes transversales se congelan al migrar el
 * primero (acuerdo con Claude Design).
 */

/* ============================================================================
 * TOKENS EXTENDIDOS
 * (Los base --aim-green* ya están en area-socio.css / organizador.css)
 * ============================================================================ */
:root {
  /* Neutros */
  --aim-v2-text:       #1F2937;
  --aim-v2-text-soft:  #4B5563;
  --aim-v2-text-muted: #6B7280;
  --aim-v2-text-subtle:#9CA3AF;
  --aim-v2-border:     #E5E7EB;
  --aim-v2-hairline:   #F3F4F6;
  --aim-v2-bg-page:    #F7F9F7;
  --aim-v2-bg-surface: #FFFFFF;

  /* Funcionales */
  --aim-v2-error:   #C62828;
  --aim-v2-warn:    #E65100;
  --aim-v2-info:    #1565C0;

  /* Fondos de aviso */
  --aim-v2-bg-error: #FDECEA;
  --aim-v2-bg-warn:  #FFF3E0;
  --aim-v2-bg-info:  #E3F2FD;
  --aim-v2-bg-ok:    #F1F8E9;

  /* Radios */
  --aim-v2-r-pill:  999px;
  --aim-v2-r-card:  12px;
  --aim-v2-r-block: 10px;
  --aim-v2-r-btn:   8px;
  --aim-v2-r-badge: 4px;

  /* Anchura de contenido */
  --aim-v2-content-max: 1240px;
}

/* ============================================================================
 * FOCUS VISIBLE — base + excepciones por contexto
 * Regla única para toda la superficie v2.
 * ============================================================================ */
:where(.aim-v2, .aim-v2 *) :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--aim-green, #2E7D32);
  outline-offset: 2px;
  border-radius: 4px;
}
:where(.aim-v2, .aim-v2 *) :focus:not(:focus-visible) { outline: none; }

/* Sobre fondo verde: outline blanco (contraste 5.1:1) */
.aim-v2-on-green :focus-visible,
.aim-v2-btn--primary:focus-visible,
.aim-v2-btn--danger-solid:focus-visible,
.aim-v2-nav-pill--active:focus-visible {
  outline: 2px solid #FFF;
  outline-offset: 2px;
}

/* Elementos peligrosos */
.aim-v2-btn--danger:focus-visible,
.aim-v2-btn--danger-solid:focus-visible {
  outline-color: var(--aim-v2-error);
}

/* Skip link */
.aim-v2-skip {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.aim-v2-skip:focus {
  position: fixed;
  left: 12px;
  top: 12px;
  width: auto;
  height: auto;
  padding: 10px 16px;
  background: var(--aim-green, #2E7D32);
  color: #FFF;
  font-weight: 600;
  border-radius: var(--aim-v2-r-btn);
  z-index: 10001;
}

/* ============================================================================
 * SKELETON SCREENS
 * ============================================================================ */
.aim-v2-skel {
  background: linear-gradient(90deg, #EEF0EE 0%, #F6F8F6 50%, #EEF0EE 100%);
  background-size: 200% 100%;
  animation: aim-v2-skel-pulse 1.4s ease-in-out infinite;
  border-radius: 4px;
  display: block;
}
@keyframes aim-v2-skel-pulse {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
@media (prefers-reduced-motion: reduce) {
  .aim-v2-skel { animation: none; background: #EEF0EE; }
}

/* Skeleton tabla: 5 filas de 41px con celdas variables */
.aim-v2-skel-row {
  display: grid;
  grid-template-columns: 90px minmax(180px, 1fr) 80px 80px 90px;
  gap: 12px;
  align-items: center;
  padding: 12px 16px;
  border-bottom: 1px solid var(--aim-v2-hairline);
  min-height: 41px;
}
.aim-v2-skel-bar { height: 12px; }
.aim-v2-skel-bar--small { height: 9px; }
.aim-v2-skel-bar--badge { height: 20px; width: 62px; border-radius: 3px; }
.aim-v2-skel-name > .aim-v2-skel-bar:first-child { width: 85%; margin-bottom: 6px; }
.aim-v2-skel-name > .aim-v2-skel-bar:last-child  { width: 55%; }

/* Skeleton formulario */
.aim-v2-skel-form-label { height: 11px; width: 110px; margin-bottom: 6px; }
.aim-v2-skel-form-input { height: 40px; width: 100%; border-radius: var(--aim-v2-r-btn); }

/* Skeleton ficha */
.aim-v2-skel-card-title { height: 18px; width: 60%; margin-bottom: 10px; }
.aim-v2-skel-card-line  { height: 12px; margin-bottom: 6px; }

/* ============================================================================
 * ESTADOS DE ERROR (bloque + página + aviso éxito/advertencia/info)
 * ============================================================================ */
.aim-v2-alert {
  padding: 14px 16px;
  border-radius: var(--aim-v2-r-badge);
  border-left: 4px solid;
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.aim-v2-alert__icon { font-size: 16px; flex-shrink: 0; margin-top: 2px; }
.aim-v2-alert__body { flex: 1; }
.aim-v2-alert__title {
  font-size: 14.5px;
  font-weight: 600;
  margin: 0 0 4px;
}
.aim-v2-alert__text  { font-size: 13.5px; color: var(--aim-v2-text-soft); margin: 0; }
.aim-v2-alert__actions { margin-top: 10px; }

.aim-v2-alert--error   { background: var(--aim-v2-bg-error); border-color: var(--aim-v2-error); }
.aim-v2-alert--error .aim-v2-alert__title { color: #C0392B; }
.aim-v2-alert--error .aim-v2-alert__icon  { color: var(--aim-v2-error); }

.aim-v2-alert--warn    { background: var(--aim-v2-bg-warn);  border-color: var(--aim-v2-warn); }
.aim-v2-alert--warn .aim-v2-alert__title  { color: #A04A00; }
.aim-v2-alert--warn .aim-v2-alert__icon   { color: var(--aim-v2-warn); }

.aim-v2-alert--info    { background: var(--aim-v2-bg-info);  border-color: var(--aim-v2-info); }
.aim-v2-alert--info .aim-v2-alert__title  { color: #0D47A1; }
.aim-v2-alert--info .aim-v2-alert__icon   { color: var(--aim-v2-info); }

.aim-v2-alert--ok      { background: var(--aim-v2-bg-ok);    border-color: var(--aim-green, #2E7D32); }
.aim-v2-alert--ok .aim-v2-alert__title    { color: #33691E; }
.aim-v2-alert--ok .aim-v2-alert__icon     { color: var(--aim-green, #2E7D32); }

/* Error de página completo */
.aim-v2-error-page {
  max-width: 480px;
  margin: 60px auto;
  text-align: center;
  padding: 0 16px;
}
.aim-v2-error-page__icon  { font-size: 44px; color: var(--aim-v2-error); margin-bottom: 16px; }
.aim-v2-error-page__title { font-size: 20px; font-weight: 600; color: var(--aim-v2-text); margin: 0 0 8px; }
.aim-v2-error-page__text  { font-size: 14.5px; color: var(--aim-v2-text-soft); margin: 0 0 20px; }
.aim-v2-error-page__actions { display: flex; gap: 10px; justify-content: center; }

/* ============================================================================
 * TOASTS
 * ============================================================================ */
.aim-v2-toast-container {
  position: fixed;
  bottom: 26px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10000;
  pointer-events: none;
}
.aim-v2-toast {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 20px;
  background: #1B5E20;
  color: #FFF;
  font-size: 14px;
  font-weight: 600;
  border-radius: var(--aim-v2-r-pill);
  box-shadow: 0 12px 30px -10px rgba(0,0,0,.5);
  pointer-events: auto;
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .2s ease, transform .2s ease;
}
.aim-v2-toast--visible { opacity: 1; transform: translateY(0); }
.aim-v2-toast--error  { background: var(--aim-v2-error); }
.aim-v2-toast__icon   { font-size: 17px; }
.aim-v2-toast__close  {
  background: none;
  border: none;
  color: inherit;
  font-size: 18px;
  cursor: pointer;
  padding: 0 0 0 8px;
  opacity: .8;
}
.aim-v2-toast__close:hover { opacity: 1; }
.aim-v2-toast__undo   {
  color: #C8E6C9;
  text-decoration: underline;
  cursor: pointer;
  margin-left: 8px;
}

@media (max-width: 760px) {
  .aim-v2-toast-container {
    bottom: 16px;
    left: 16px;
    right: 16px;
    transform: none;
  }
  .aim-v2-toast { width: 100%; justify-content: center; }
}

/* ============================================================================
 * MODAL DE CONFIRMACIÓN
 * ============================================================================ */
.aim-v2-modal-veil {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.45);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  opacity: 0;
  transition: opacity .18s ease;
}
.aim-v2-modal-veil--visible { opacity: 1; }

.aim-v2-modal {
  width: min(540px, 94vw);
  background: #FFF;
  border-radius: 14px;
  box-shadow: 0 30px 70px -20px rgba(0,0,0,.45);
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  transform: scale(.97);
  transition: transform .18s ease;
}
.aim-v2-modal-veil--visible .aim-v2-modal { transform: scale(1); }

.aim-v2-modal__header {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 20px 22px 12px;
  border-bottom: 1px solid var(--aim-v2-hairline);
}
.aim-v2-modal__icon-box {
  width: 36px;
  height: 36px;
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 18px;
}
.aim-v2-modal--danger .aim-v2-modal__icon-box { background: #FFEBEE; color: var(--aim-v2-error); }
.aim-v2-modal--safe   .aim-v2-modal__icon-box { background: var(--aim-v2-bg-ok); color: var(--aim-green, #2E7D32); }

.aim-v2-modal__title { font-size: 19px; font-weight: 600; color: var(--aim-v2-text); margin: 0 0 4px; }
.aim-v2-modal__desc  { font-size: 14px; color: var(--aim-v2-text-soft); margin: 0; }
.aim-v2-modal__close {
  background: none;
  border: none;
  color: var(--aim-v2-text-muted);
  font-size: 20px;
  cursor: pointer;
  padding: 0;
  margin-left: auto;
  line-height: 1;
}

.aim-v2-modal__body {
  padding: 18px 22px;
  max-height: 52vh;
  overflow-y: auto;
  flex: 1;
}
.aim-v2-modal__summary {
  background: #F9FAFB;
  border-radius: var(--aim-v2-r-btn);
  padding: 12px 14px;
  margin-bottom: 14px;
}
.aim-v2-modal__summary-row {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 8px;
  padding: 4px 0;
  font-size: 13.5px;
}
.aim-v2-modal__summary-row > dt { color: var(--aim-v2-text-muted); font-weight: 400; margin: 0; }
.aim-v2-modal__summary-row > dd { color: var(--aim-v2-text); font-weight: 500; margin: 0; }

.aim-v2-modal__impact {
  background: #FFF5F5;
  border: 1px solid #FFCDD2;
  border-radius: var(--aim-v2-r-btn);
  padding: 12px 14px;
  margin-bottom: 14px;
}
.aim-v2-modal__impact-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--aim-v2-error);
  margin: 0 0 8px;
}
.aim-v2-modal__impact-list {
  margin: 0;
  padding-left: 18px;
  font-size: 13.5px;
  color: var(--aim-v2-text-soft);
}
.aim-v2-modal__impact-list li { margin-bottom: 4px; }

.aim-v2-modal__footer {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 14px 22px 18px;
  border-top: 1px solid var(--aim-v2-hairline);
}

/* ============================================================================
 * BOTONES (6 variantes + 3 tamaños + loading)
 * ============================================================================ */
.aim-v2-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  justify-content: center;
  height: 40px;
  padding: 0 16px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  border: 1px solid transparent;
  border-radius: var(--aim-v2-r-btn);
  cursor: pointer;
  text-decoration: none;
  transition: background-color .12s ease, border-color .12s ease, color .12s ease;
  font-family: inherit;
}
.aim-v2-btn[disabled], .aim-v2-btn.is-disabled {
  opacity: .55;
  cursor: not-allowed;
  pointer-events: none;
}

/* Tamaños */
.aim-v2-btn--sm { height: 32px; padding: 0 12px; font-size: 13px; }
.aim-v2-btn--lg { height: 48px; padding: 0 22px; font-size: 15px; }

/* Variantes */
.aim-v2-btn--primary {
  background: var(--aim-green, #2E7D32);
  border-color: var(--aim-green, #2E7D32);
  color: #FFF;
}
.aim-v2-btn--primary:hover { background: #1B5E20; border-color: #1B5E20; }

.aim-v2-btn--secondary {
  background: #F5F5F5;
  color: #333;
}
.aim-v2-btn--secondary:hover { background: #ECECEC; }

.aim-v2-btn--outline {
  background: #FFF;
  border-color: var(--aim-green, #2E7D32);
  color: var(--aim-green, #2E7D32);
}
.aim-v2-btn--outline:hover { background: var(--aim-v2-bg-ok); }

.aim-v2-btn--danger {
  background: #FFEBEE;
  border-color: #FFCDD2;
  color: var(--aim-v2-error);
}
.aim-v2-btn--danger:hover { background: #FFCDD2; }

.aim-v2-btn--danger-solid {
  background: var(--aim-v2-error);
  color: #FFF;
}
.aim-v2-btn--danger-solid:hover { background: #A31D1D; }

.aim-v2-btn--text {
  background: none;
  color: var(--aim-green, #2E7D32);
  padding: 0 4px;
  height: auto;
}
.aim-v2-btn--text:hover { text-decoration: underline; }

.aim-v2-btn__icon { font-size: 15px; }

/* Loading state */
.aim-v2-btn--loading { position: relative; color: transparent !important; }
.aim-v2-btn--loading::after {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  border: 2px solid rgba(255,255,255,.35);
  border-top-color: #FFF;
  border-radius: 50%;
  animation: aim-v2-btn-spin .7s linear infinite;
}
.aim-v2-btn--loading.aim-v2-btn--secondary::after,
.aim-v2-btn--loading.aim-v2-btn--outline::after,
.aim-v2-btn--loading.aim-v2-btn--text::after {
  border-color: rgba(46,125,50,.2);
  border-top-color: var(--aim-green, #2E7D32);
}
@keyframes aim-v2-btn-spin { to { transform: rotate(360deg); } }

/* Grupo de botones */
.aim-v2-btn-group { display: flex; gap: 10px; align-items: center; }

/* ============================================================================
 * CAMPOS DE FORMULARIO (todos los estados)
 * ============================================================================ */
.aim-v2-field { display: flex; flex-direction: column; margin-bottom: 16px; }
.aim-v2-field__label {
  font-size: 12.5px;
  font-weight: 700;
  color: #333;
  margin-bottom: 5px;
}
.aim-v2-field__label .aim-v2-req { color: var(--aim-v2-error); margin-left: 3px; }
.aim-v2-field__help {
  font-size: 12px;
  color: var(--aim-v2-text-subtle);
  margin-top: 5px;
}
.aim-v2-field__error {
  font-size: 12.5px;
  color: var(--aim-v2-error);
  margin-top: 5px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.aim-v2-field__error i { font-size: 12px; }

.aim-v2-input,
.aim-v2-select,
.aim-v2-textarea {
  height: 40px;
  padding: 10px 12px;
  border: 1px solid #D8DCD8;
  border-radius: var(--aim-v2-r-btn);
  background: #FFF;
  font-size: 14.5px;
  color: var(--aim-v2-text);
  font-family: inherit;
  transition: border-color .12s ease, box-shadow .12s ease;
}
.aim-v2-textarea { min-height: 90px; resize: vertical; height: auto; }

.aim-v2-input:hover,
.aim-v2-select:hover,
.aim-v2-textarea:hover { border-color: #B9C0B9; }

.aim-v2-input:focus,
.aim-v2-select:focus,
.aim-v2-textarea:focus {
  border-color: var(--aim-green, #2E7D32);
  box-shadow: 0 0 0 3px rgba(46,125,50,.14);
  outline: none;
}

.aim-v2-field--error .aim-v2-input,
.aim-v2-field--error .aim-v2-select,
.aim-v2-field--error .aim-v2-textarea {
  border-color: var(--aim-v2-error);
  background: #FFF8F8;
}

.aim-v2-input[disabled],
.aim-v2-select[disabled],
.aim-v2-textarea[disabled] {
  background: var(--aim-v2-hairline);
  color: var(--aim-v2-text-subtle);
  border-color: var(--aim-v2-border);
  cursor: not-allowed;
}

.aim-v2-input[readonly] {
  background: transparent;
  border: none;
  padding-left: 0;
}

.aim-v2-checkbox,
.aim-v2-radio {
  width: 18px;
  height: 18px;
  accent-color: var(--aim-green, #2E7D32);
  cursor: pointer;
}
.aim-v2-check-label { display: inline-flex; gap: 8px; align-items: center; cursor: pointer; }

/* Dropzone para adjuntos */
.aim-v2-dropzone {
  border: 2px dashed #C8E6C9;
  background: #F8FBF8;
  border-radius: var(--aim-v2-r-block);
  padding: 24px;
  text-align: center;
  font-size: 13.5px;
  color: var(--aim-v2-text-soft);
  transition: border-color .12s ease, background-color .12s ease;
}
.aim-v2-dropzone--dragging { border-color: var(--aim-green, #2E7D32); background: var(--aim-v2-bg-ok); }

/* ============================================================================
 * PAGINACIÓN
 * ============================================================================ */
.aim-v2-pagination {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 18px;
  border-top: 1px solid var(--aim-v2-hairline);
}
.aim-v2-pagination__count {
  font-size: 13px;
  color: var(--aim-v2-text-muted);
}
.aim-v2-pagination__nav {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-left: auto;
}
.aim-v2-pagination__link {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--aim-green, #2E7D32);
  text-decoration: none;
}
.aim-v2-pagination__link:hover { text-decoration: underline; }
.aim-v2-pagination__link[disabled],
.aim-v2-pagination__link.is-disabled {
  color: #C7CDD3;
  pointer-events: none;
  cursor: not-allowed;
}
.aim-v2-pagination__indicator {
  font-size: 13.5px;
  color: var(--aim-v2-text-soft);
}

@media (max-width: 760px) {
  .aim-v2-pagination {
    flex-direction: column;
    gap: 12px;
  }
  .aim-v2-pagination__nav {
    width: 100%;
    justify-content: space-between;
    margin-left: 0;
  }
  .aim-v2-pagination__link {
    padding: 12px 16px;
    min-height: 48px;
    display: inline-flex;
    align-items: center;
  }
}

/* ============================================================================
 * TOOLTIP PROPIO (solo cuando el nativo `title` no basta)
 * ============================================================================ */
.aim-v2-tooltip {
  position: absolute;
  background: var(--aim-v2-text);
  color: #FFF;
  font-size: 12.5px;
  padding: 7px 10px;
  border-radius: 6px;
  pointer-events: none;
  opacity: 0;
  transition: opacity .12s ease;
  z-index: 9999;
  max-width: 240px;
}
.aim-v2-tooltip--visible { opacity: 1; }

/* ============================================================================
 * ANCLA DE CONTENIDO (para skip link, breadcrumb, etc.)
 * ============================================================================ */
.aim-v2-container {
  max-width: var(--aim-v2-content-max);
  margin: 0 auto;
  padding: 0 32px;
  background: var(--aim-v2-bg-page);
}

@media (min-width: 768px) and (max-width: 1024px) {
  .aim-v2-container { padding: 0 24px; }
}
@media (max-width: 760px) {
  .aim-v2-container { padding: 0 16px; }
}

/* ============================================================================
 * NAVEGACIÓN DE PÍLDORAS (F1)
 * Barra sticky de píldoras solo icono que se expanden al hover.
 * En <760px: desplegable ancho completo. Entre 760-1024 con hover:none:
 * píldoras todas expandidas con overflow-x scroll.
 * ============================================================================ */

/* WRAPPER STICKY del complejo cabecera de pestaña: nav píldoras + pagetitle
 * (H2 + subtitle + chips) se pegan arriba como UNA UNIDAD al hacer scroll.
 * Antes solo el nav era sticky y el título se scrolleaba fuera — perdía
 * contexto al bajar. Ahora el conjunto entero permanece visible arriba.
 *
 * El fondo con blur y el borde inferior van aquí, no en el nav; el nav
 * pierde su sticky propio (ver más abajo).
 *
 * Bajo la barra WP admin cuando body.admin-bar está presente. */
.aim-v2-sticky-head {
  position: sticky;
  top: 0;
  z-index: 50;
  background: #F7F9F7;
  border-bottom: 1px solid var(--aim-v2-border);
  box-shadow: 0 2px 6px rgba(0, 0, 0, .04);
}
/* Pagetitle dentro del sticky: padding reducido (arriba compacto contra el
 * nav pills, abajo pega bien con el borde inferior del wrapper). */
.aim-v2-sticky-head .aim-v2-pagetitle {
  padding: 8px 0 12px;
}
/* Offset para dejar sitio a la admin-bar de WP. En desktop (>782px) la
 * admin-bar es position:fixed y ocupa 32px arriba SIEMPRE — el sticky
 * debe bajar 32px para no quedar tapado. En MÓVIL (<=782px) la admin-bar
 * es position:absolute (WP core), se scrollea con la página y desaparece
 * al bajar — el sticky NO necesita offset porque el viewport queda libre.
 * Bug reportado 2026-08-08: con top:46px en móvil, el sticky dejaba un
 * hueco de 46px arriba por donde pasaba el contenido al scrollear. */
body.admin-bar .aim-v2-sticky-head { top: 32px; }
@media screen and (max-width: 782px) {
  body.admin-bar .aim-v2-sticky-head { top: 0; }
}

/* Botón "Volver" Design §5 — se pinta arriba del content, dentro del
 * flujo (no dentro del sticky). Vuelve al tab padre en subpáginas o al
 * área socio en pestañas nivel 1. NO se muestra en /area-socio/.
 * Refactor 2026-08-08. */
.aim-v2-volver {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 14px 0;
  font-size: 13.5px;
  font-weight: 600;
  color: #2E7D32;
  text-decoration: none;
  transition: color .15s ease;
}
.aim-v2-volver i { font-size: 15px; }
.aim-v2-volver:hover,
.aim-v2-volver:focus-visible { color: #1B5E20; text-decoration: underline; }

/* Fix sticky-head en Safari iOS + Firefox móvil: el bug reportado
 * (contenido asomando por encima del sticky) tiene un root cause menos
 * agresivo que ir a position: fixed. El body del theme tiene
 * `display: flex; flex-direction: column` con `align-items: stretch` por
 * defecto — combinación que rompe position: sticky en descendientes
 * cuando los hijos flex NO tienen align-self explícito.
 *
 * Fix (revisado 2026-08-09 tras bug desktop): usar align-self:stretch
 * EXPLÍCITO en lugar de flex-start. El bug de sticky ocurre cuando el
 * hijo flex tiene align-self:auto (default heredando stretch pero sin
 * declararlo); declarar stretch EXPLÍCITO rompe la cadena mala igual
 * que flex-start PERO mantiene el ancho completo del main. flex-start
 * colapsaba el main al ancho del contenido — layout desktop estrecho
 * con espacios blancos a los lados. */
body > main.aim-site-main {
  align-self: stretch;
  width: 100%;
}


/* Contenedor de píldoras (dentro del wrapper sticky) */
.aim-v2-nav-pills {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  padding: 12px 0;
}

/* Píldora individual */
.aim-v2-nav-pill {
  display: inline-flex;
  align-items: center;
  height: 44px;
  padding: 0 13px;
  background: #FFF;
  border: 1px solid var(--aim-v2-border);
  border-radius: var(--aim-v2-r-pill);
  color: var(--aim-v2-text-soft);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: background-color .12s ease, border-color .12s ease, color .12s ease;
  overflow: hidden;
  white-space: nowrap;
}

.aim-v2-nav-pill__icon {
  font-size: 17px;
  flex-shrink: 0;
  line-height: 1;
}

.aim-v2-nav-pill__label {
  max-width: 0;
  opacity: 0;
  margin-left: 0;
  overflow: hidden;
  transition: max-width .28s ease, opacity .2s ease, margin-left .28s ease;
}

/* Expansión al hover (o focus por teclado) */
.aim-v2-nav-pill:hover,
.aim-v2-nav-pill:focus-visible {
  border-color: #B9C0B9;
  color: var(--aim-v2-text);
}
.aim-v2-nav-pill:hover .aim-v2-nav-pill__label,
.aim-v2-nav-pill:focus-visible .aim-v2-nav-pill__label {
  max-width: 280px;
  opacity: 1;
  margin-left: 9px;
}

/* Píldora activa: siempre expandida y verde sólido */
.aim-v2-nav-pill--active {
  background: var(--aim-green, #2E7D32);
  border-color: var(--aim-green, #2E7D32);
  color: #FFF;
  box-shadow: 0 2px 6px rgba(46,125,50,.25);
}
.aim-v2-nav-pill--active .aim-v2-nav-pill__label {
  max-width: 280px;
  opacity: 1;
  margin-left: 9px;
}
.aim-v2-nav-pill--active:hover,
.aim-v2-nav-pill--active:focus-visible {
  background: #1B5E20;
  border-color: #1B5E20;
  color: #FFF;
}

/* Desplegable móvil — oculto por defecto (mostrado <760px) */
.aim-v2-nav-toggle {
  display: none; /* activado por media query */
  width: 100%;
  height: 50px;
  padding: 0 16px;
  background: #FFF;
  border: 1px solid var(--aim-v2-border);
  border-radius: var(--aim-v2-r-btn);
  color: var(--aim-v2-text);
  font-size: 14.5px;
  font-weight: 600;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  font-family: inherit;
}
.aim-v2-nav-toggle__icon    { font-size: 17px; }
.aim-v2-nav-toggle__label   { flex: 1; text-align: left; }
.aim-v2-nav-toggle__chevron { transition: transform .18s ease; }
.aim-v2-nav-toggle[aria-expanded="true"] .aim-v2-nav-toggle__chevron {
  transform: rotate(180deg);
}

.aim-v2-nav-dropdown {
  display: none; /* activado con aria-expanded="true" */
  list-style: none;
  margin: 4px 0 0;
  padding: 6px;
  background: #FFF;
  border: 1px solid var(--aim-v2-border);
  border-radius: var(--aim-v2-r-btn);
  box-shadow: 0 8px 20px -8px rgba(0,0,0,.15);
}
.aim-v2-nav-dropdown[data-open="true"] { display: block; }

.aim-v2-nav-dropdown__item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  min-height: 48px;
  color: var(--aim-v2-text);
  text-decoration: none;
  border-radius: var(--aim-v2-r-btn);
  font-size: 14.5px;
  font-weight: 500;
}
.aim-v2-nav-dropdown__item:hover,
.aim-v2-nav-dropdown__item:focus-visible {
  background: var(--aim-v2-bg-ok);
}
.aim-v2-nav-dropdown__item--active {
  background: var(--aim-green, #2E7D32);
  color: #FFF;
  font-weight: 600;
}
.aim-v2-nav-dropdown__item--active:hover,
.aim-v2-nav-dropdown__item--active:focus-visible {
  background: #1B5E20;
}
.aim-v2-nav-dropdown__item i { font-size: 17px; width: 20px; text-align: center; }

/* Tablet con hover (760-1024, trackpad): igual que desktop */
/* Tablet con hover:none (760-1024, táctil): píldoras expandidas con scroll horizontal */
@media (min-width: 761px) and (max-width: 1024px) and (hover: none) {
  .aim-v2-nav-pills {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
  }
  .aim-v2-nav-pill .aim-v2-nav-pill__label {
    max-width: 280px;
    opacity: 1;
    margin-left: 9px;
  }
}

/* Móvil <760px: sustituye píldoras por desplegable */
@media (max-width: 760px) {
  .aim-v2-nav-pills { display: none; }
  .aim-v2-nav-toggle { display: flex; }
}

/* ============================================================================
 * LAYOUT PORTADA — 2 COLUMNAS (F2)
 * Principal `flex: 1 1 480px` + lateral `flex: 0 1 320px`.
 * Se apilan cuando no cabe (implicit por wrap del flex).
 * ============================================================================ */
.aim-v2-portada {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start; /* feedback #8: aside no se estira, hueco abajo */
  gap: 26px;
  padding: 22px 0;
}
.aim-v2-portada__main {
  flex: 1 1 480px;
  min-width: 0; /* evita overflow con contenido ancho */
  display: flex;
  flex-direction: column;
  gap: 32px; /* feedback Design: separación entre secciones */
}
.aim-v2-grupo-afiliacion {
  display: flex;
  flex-direction: column;
  gap: 16px; /* feedback Design: perfil + vigencia son el mismo asunto */
}
.aim-v2-portada__aside {
  flex: 0 1 320px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 22px;
}

/* Apilado explícito en tablet <900px (según README) */
@media (max-width: 899px) {
  .aim-v2-portada { flex-direction: column; }
  .aim-v2-portada__main,
  .aim-v2-portada__aside { flex: 1 1 auto; }
}

/* ============================================================================
 * ACCIÓN POR FILA EN LISTADOS (F5)
 * Enlace "Ver detalle" en la columna de acción de tablas del área socio.
 * ============================================================================ */
.aim-td-action { white-space: nowrap; text-align: right; }
.aim-v2-row-action {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  font-weight: 600;
  color: var(--aim-green, #2E7D32);
  text-decoration: none;
}
.aim-v2-row-action:hover,
.aim-v2-row-action:focus-visible {
  color: #1B5E20;
  text-decoration: underline;
}

/* ============================================================================
 * TÍTULO DE PÁGINA (bajo la nav píldoras)
 * ============================================================================ */
/* Base: body (H2 + subtítulo) a la izquierda, acciones (chips) a la derecha.
 * Aplica siempre — el modificador --con-cta queda como alias por retrocompat. */
.aim-v2-pagetitle {
  padding: 24px 0 8px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.aim-v2-pagetitle--con-cta { /* alias vacío por retrocompatibilidad */ }
.aim-v2-pagetitle__body { flex: 1; min-width: 0; }
.aim-v2-pagetitle__h {
  margin: 0 0 4px;
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -0.3px;
  color: var(--aim-green, #2E7D32);
}
.aim-v2-pagetitle__sub {
  margin: 0;
  font-size: 14px;
  color: var(--aim-v2-text-muted);
}

/* Contenedor de acciones (chips + botón Ayuda) a la derecha del pagetitle.
 * Componente sistemático de _aim_v2_render_pagetitle — TODA pestaña del área
 * socio lo usa; no se replica inline en ningún shortcode. Responsive:
 *   >=760px : flex row al lado del body (justify-between del contenedor
 *             padre .aim-v2-pagetitle--con-cta).
 *   <760px  : row scrollable horizontal (para que los chips no se apilen y
 *             sean accesibles en una pasada). Snap para que se puedan tocar
 *             sin cortarlos. Padding-right para dejar respirar el último. */
.aim-v2-pagetitle-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-shrink: 0;
  margin-top: 4px;
  /* Espacio RESERVADO para la expansión de los chips al hover. Sin esto,
   * al pasar el ratón por un chip el contenedor de acciones crece y
   * empuja/comprime al body del pagetitle (el subtítulo se re-wrapea y
   * "salta" verticalmente). Con min-width reservamos el ancho de todos
   * los chips expandidos desde el inicio: la expansión se anima DENTRO
   * de ese espacio sin afectar al body. Los chips compactos se alinean
   * a la derecha (justify-content:flex-end) dejando el espacio sobrante
   * a la izquierda como hueco vacío inofensivo. */
  min-width: min(340px, 50vw);
}
@media (max-width: 759px) {
  .aim-v2-pagetitle {
    flex-direction: column;
    align-items: stretch;
  }
  .aim-v2-pagetitle-actions {
    /* Retira la reserva de escritorio (no hay espacio en móvil) y pasa a
     * fila scrollable horizontal para acceder a los chips sin cortarlos. */
    min-width: 0;
    justify-content: flex-start;
    overflow-x: auto;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    padding: 4px 8px 4px 0;
    margin-left: -2px;
  }
  .aim-v2-pagetitle-actions > * {
    scroll-snap-align: start;
    flex-shrink: 0;
  }
}

/* Header v2 (mock 2026-08-11): el pagetitle queda reducido a la fila de
 * accesos rápidos (chips). El titular y el subtítulo los pinta el hero del
 * banner; "Ayuda" está siempre en el menú superior. Chips alineados a la
 * derecha (decisión del user 2026-08-12, para mantener la posición que
 * tenían con el molde legacy .aim-v2-pagetitle-actions con flex-end). */
.aim-v2-pagetitle--solo-chips {
  padding: 0 0 18px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
}
@media (max-width: 759px) {
  .aim-v2-pagetitle--solo-chips {
    justify-content: flex-start;
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 12px;
  }
  .aim-v2-pagetitle--solo-chips > * { flex-shrink: 0; }
}

/* ============================================================================
 * BOTÓN AYUDA — píldora flotante a la derecha del pagetitle
 * ============================================================================ */
.aim-v2-help-btn {
  display: inline-flex;
  align-items: center;
  height: 40px;
  padding: 0 12px;
  background: var(--aim-v2-bg-surface);
  border: 1px solid var(--aim-v2-border);
  border-radius: var(--aim-v2-r-pill);
  color: var(--aim-v2-text);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  overflow: hidden;
  white-space: nowrap;
  transition: background-color .12s ease, border-color .12s ease, color .12s ease;
  flex-shrink: 0;
}
.aim-v2-help-btn i {
  color: var(--aim-green, #2E7D32);
  font-size: 15px;
  flex-shrink: 0;
  line-height: 1;
}
.aim-v2-help-btn > span {
  max-width: 0;
  opacity: 0;
  margin-left: 0;
  overflow: hidden;
  white-space: nowrap;
  transition: max-width .28s ease, opacity .2s ease, margin-left .28s ease;
}
.aim-v2-help-btn:hover,
.aim-v2-help-btn:focus-visible {
  border-color: var(--aim-green, #2E7D32);
  background: var(--aim-v2-bg-ok);
  color: var(--aim-green, #2E7D32);
}
.aim-v2-help-btn:hover > span,
.aim-v2-help-btn:focus-visible > span {
  max-width: 220px;
  opacity: 1;
  margin-left: 9px;
}

/* ============================================================================
 * NAV PIE DE PESTAÑA — "← Anterior | Siguiente →"
 * ============================================================================ */
.aim-v2-pestana-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  padding: 24px 0 12px;
  margin-top: 32px;
  border-top: 1px solid var(--aim-v2-hairline);
}
.aim-v2-pestana-nav__prev,
.aim-v2-pestana-nav__next {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: var(--aim-v2-text);
  padding: 12px 14px;
  border-radius: var(--aim-v2-r-btn);
  transition: background-color .12s ease, color .12s ease;
}
.aim-v2-pestana-nav__next {
  justify-content: flex-end;
  text-align: right;
}
.aim-v2-pestana-nav__prev:hover,
.aim-v2-pestana-nav__prev:focus-visible,
.aim-v2-pestana-nav__next:hover,
.aim-v2-pestana-nav__next:focus-visible {
  background: var(--aim-v2-bg-ok);
  color: var(--aim-green, #2E7D32);
}
.aim-v2-pestana-nav__flecha {
  font-size: 20px;
  color: var(--aim-v2-text-muted);
  flex-shrink: 0;
}
.aim-v2-pestana-nav__prev:hover .aim-v2-pestana-nav__flecha,
.aim-v2-pestana-nav__prev:focus-visible .aim-v2-pestana-nav__flecha,
.aim-v2-pestana-nav__next:hover .aim-v2-pestana-nav__flecha,
.aim-v2-pestana-nav__next:focus-visible .aim-v2-pestana-nav__flecha {
  color: var(--aim-green, #2E7D32);
}
.aim-v2-pestana-nav__col { display: flex; flex-direction: column; min-width: 0; }
.aim-v2-pestana-nav__col--r { align-items: flex-end; }
.aim-v2-pestana-nav__dir {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--aim-v2-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.6px;
}
.aim-v2-pestana-nav__label {
  font-size: 14px;
  font-weight: 600;
  color: var(--aim-v2-text);
}

/* ============================================================================
 * CTA DENTRO DE CARD (botón "Renovar" en vigencia)
 * Necesita position:relative + z-index para superponerse al ::after del
 * enlace extendido del titular.
 * ============================================================================ */
.aim-v2-vigencia__cta {
  position: relative;
  z-index: 2;
  margin-top: 16px;
}
.aim-v2-vigencia__cta .aim-v2-btn { position: relative; z-index: 2; }

/* ============================================================================
 * BLOQUE GENÉRICO — titular verde subrayado + head con link/contador opcional
 * ============================================================================ */
.aim-v2-bloque { margin-bottom: 24px; }
.aim-v2-bloque__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 2px solid var(--aim-green, #2E7D32);
  padding-bottom: 8px;
  margin-bottom: 14px;
}
.aim-v2-bloque__titular {
  margin: 0;
  color: var(--aim-green, #2E7D32);
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -0.1px;
}
.aim-v2-bloque__link {
  font-size: 13px;
  font-weight: 600;
  color: var(--aim-green, #2E7D32);
  text-decoration: none;
}
.aim-v2-bloque__link:hover,
.aim-v2-bloque__link:focus-visible { text-decoration: underline; }
/* Meta textual muted a la derecha del titular (contexto que no es link) */
.aim-v2-bloque__meta {
  font-size: 13px;
  color: var(--aim-v2-text-muted, #6B7280);
  text-wrap: pretty;
}
.aim-v2-bloque__contador {
  font-size: 13px;
  font-weight: 600;
}
.aim-v2-bloque__contador--info  { color: var(--aim-v2-text-muted); }
.aim-v2-bloque__contador--warn  { color: var(--aim-v2-warn); }
.aim-v2-bloque__contador--error { color: var(--aim-v2-error); }
.aim-v2-bloque__nota {
  margin: -6px 0 12px;
  font-size: 12.5px;
  color: var(--aim-v2-text-muted);
}
.aim-v2-bloque--aside .aim-v2-bloque__titular { font-size: 16px; }
.aim-v2-bloque__head--warn { border-bottom-color: var(--aim-v2-warn); }
.aim-v2-bloque__titular--warn { color: var(--aim-v2-warn); }

/* ============================================================================
 * TARJETA DE PERFIL — foto + nombre + nº socio + "socio desde" + enlace
 * ============================================================================ */
.aim-v2-perfil {
  position: relative; /* ancla del ::after del enlace extendido */
  background: var(--aim-v2-bg-surface);
  border: 1px solid var(--aim-v2-hairline);
  border-radius: var(--aim-v2-r-card);
  padding: 16px 22px;
  display: flex;
  align-items: center;
  gap: 16px;
  transition: border-color .14s ease, background-color .14s ease, box-shadow .14s ease;
}
.aim-v2-perfil__foto {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center top; /* feedback #7: encuadre retratos */
  background: var(--aim-v2-bg-ok);
  border: 1px solid #C8E6C9;
  flex-shrink: 0;
  display: block;
}
.aim-v2-perfil__foto--iniciales {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--aim-v2-bg-ok);
  color: var(--aim-green, #2E7D32);
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.5px;
}
.aim-v2-perfil__cuerpo { flex: 1; min-width: 0; }
.aim-v2-perfil__nombre {
  font-size: 16px;
  font-weight: 700;
  color: var(--aim-v2-text);
  letter-spacing: -0.1px;
}
.aim-v2-perfil__meta {
  font-size: 13px;
  color: var(--aim-v2-text-muted);
  margin-top: 2px;
}
@media (max-width: 480px) {
  .aim-v2-perfil { flex-wrap: wrap; }
  .aim-v2-perfil__chev { display: none; }
}

/* ============================================================================
 * TARJETA DE VIGENCIA
 * ============================================================================ */
.aim-v2-vigencia {
  position: relative; /* ancla del ::after del enlace extendido */
  display: block;
  background: var(--aim-v2-bg-surface);
  border-radius: var(--aim-v2-r-card);
  padding: 20px 22px;
  border: 1px solid var(--aim-v2-hairline);
  transition: border-color .14s ease, background-color .14s ease, box-shadow .14s ease;
}

/* ============================================================================
 * PATRÓN ENLACE EXTENDIDO — card como <section>, el titular es <a> con ::after
 * absoluto que cubre toda la superficie. Permite botones internos sin anidar
 * <a>. Foco visible con :focus-within sobre la card entera.
 * ============================================================================ */
.aim-v2-card-link {
  color: inherit;
  text-decoration: none;
  position: relative;
  z-index: 1; /* asegura que el link esté por encima de otros elementos hermanos */
}
.aim-v2-card-link::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
}
/* La superficie clicable expande hasta el borde de la card */
.aim-v2-perfil .aim-v2-card-link::after,
.aim-v2-vigencia .aim-v2-card-link::after {
  /* Cover completo de la card (perfil/vigencia son position: relative) */
  position: absolute;
  inset: -16px -22px; /* margen negativo compensa el padding de la card */
}
.aim-v2-vigencia .aim-v2-card-link::after {
  inset: -20px -22px;
}

/* Hover y focus-within de la card entera */
.aim-v2-perfil:hover,
.aim-v2-vigencia:hover,
.aim-v2-perfil:focus-within,
.aim-v2-vigencia:focus-within {
  border-color: var(--aim-green, #2E7D32);
  background: #F1F8E9; /* feedback Design: distinto del canal de barra vigencia */
  box-shadow: 0 2px 8px -2px rgba(46,125,50,.15);
  cursor: pointer;
}
.aim-v2-perfil:focus-within,
.aim-v2-vigencia:focus-within {
  outline: 2px solid var(--aim-green, #2E7D32);
  outline-offset: -2px; /* dentro del borde para no ser recortado */
}

/* Chevron común (perfil + vigencia) */
.aim-v2-card-chev {
  color: var(--aim-v2-text-muted);
  font-size: 26px;
  line-height: 1;
  transition: color .14s ease, transform .14s ease;
  flex-shrink: 0;
  margin-left: auto; /* pegado a la derecha */
}
.aim-v2-perfil:hover .aim-v2-card-chev,
.aim-v2-perfil:focus-within .aim-v2-card-chev,
.aim-v2-vigencia:hover .aim-v2-card-chev,
.aim-v2-vigencia:focus-within .aim-v2-card-chev {
  color: var(--aim-green, #2E7D32);
  transform: translateX(3px);
}
.aim-v2-vigencia__rotulo {
  margin: 16px 0 6px;
  font-size: 12px;
  color: var(--aim-v2-text-subtle);
  font-weight: 500;
}
.aim-v2-vigencia__rotulo + .aim-v2-barra { margin-top: 0; }
.aim-v2-vigencia__afiliacion {
  margin: 8px 0 0;
  font-size: 12.5px;
  color: var(--aim-v2-text-muted);
}
.aim-v2-vigencia__cab {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.aim-v2-vigencia__titulo {
  font-size: 17px;
  font-weight: 600;
  color: var(--aim-v2-text);
  letter-spacing: -0.2px;
}
.aim-v2-vigencia__restante {
  margin-left: auto;
  font-size: 13px;
  color: var(--aim-v2-text-muted);
  white-space: nowrap;
}
.aim-v2-barra {
  height: 8px;
  border-radius: var(--aim-v2-r-pill);
  background: var(--aim-v2-bg-ok);
  margin-top: 16px;
  overflow: hidden;
}
.aim-v2-barra__relleno {
  height: 100%;
  border-radius: var(--aim-v2-r-pill);
  transition: width .4s ease;
}
.aim-v2-barra__relleno--ok    { background: var(--aim-green, #2E7D32); }
.aim-v2-barra__relleno--warn  { background: #B45309; }
.aim-v2-barra__relleno--error { background: #B91C1C; }
.aim-v2-vigencia__extremos {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin-top: 7px;
  font-size: 12px;
  color: var(--aim-v2-text-subtle);
}
/* .aim-v2-vigencia__enlace: obsoleto — la card entera es <a> ahora */

/* ============================================================================
 * SECCIÓN VOTACIONES — card con icono + texto + botón "Votar ahora"
 * ============================================================================ */
.aim-v2-vot-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  background: var(--aim-v2-bg-surface);
  border: 1px solid var(--aim-v2-hairline);
  border-radius: var(--aim-v2-r-card);
}
.aim-v2-vot-card__icon {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: var(--aim-v2-bg-ok);
  color: var(--aim-green, #2E7D32);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  flex-shrink: 0;
}
.aim-v2-vot-card__cuerpo { flex: 1; min-width: 0; }
.aim-v2-vot-card__titulo {
  margin: 0 0 4px;
  font-size: 14.5px;
  font-weight: 600;
  color: var(--aim-v2-text);
}
.aim-v2-vot-card__meta {
  margin: 0;
  font-size: 12.5px;
  color: var(--aim-v2-text-muted);
}

/* ============================================================================
 * PRÓXIMAS ACTIVIDADES — lista con fecha bloque + cuerpo + badge + link
 * ============================================================================ */
.aim-v2-actividades {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  background: var(--aim-v2-bg-surface);
  border: 1px solid var(--aim-v2-hairline);
  border-radius: var(--aim-v2-r-card);
  overflow: hidden;
}
.aim-v2-actividades > li { list-style: none; margin: 0; }
.aim-v2-actividades > li::marker { content: ''; }

.aim-v2-actividad {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 18px;
  border-bottom: 1px solid var(--aim-v2-hairline);
}
.aim-v2-actividades > li:last-child .aim-v2-actividad { border-bottom: none; }

.aim-v2-actividad__fecha {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 48px;
  color: var(--aim-v2-text);
  text-decoration: none;
  flex-shrink: 0;
}
.aim-v2-actividad__fecha:hover,
.aim-v2-actividad__fecha:focus-visible { color: var(--aim-green, #2E7D32); }
.aim-v2-actividad__dia { font-size: 22px; font-weight: 700; line-height: 1; }
.aim-v2-actividad__mes {
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 1px;
  margin-top: 3px;
  color: var(--aim-v2-text-muted);
}
.aim-v2-actividad__cuerpo { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.aim-v2-actividad__titulo {
  color: var(--aim-v2-text);
  font-weight: 600;
  font-size: 14.5px;
  text-decoration: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.aim-v2-actividad__titulo:hover,
.aim-v2-actividad__titulo:focus-visible {
  color: var(--aim-green, #2E7D32);
  text-decoration: underline;
}
.aim-v2-actividad__sub {
  font-size: 12.5px;
  color: var(--aim-v2-text-muted);
  margin-top: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.aim-v2-actividad__link {
  font-size: 13px;
  font-weight: 600;
  color: var(--aim-green, #2E7D32);
  text-decoration: none;
  white-space: nowrap;
}
.aim-v2-actividad__link:hover,
.aim-v2-actividad__link:focus-visible { text-decoration: underline; }

/* ============================================================================
 * BADGES DE ESTADO (v2) — cortos, en versalitas
 * ============================================================================ */
.aim-v2-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: var(--aim-v2-r-badge);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  line-height: 1.5;
  white-space: nowrap;
}
/* Badges sólidos (mismo sistema en toda la app). Feedback Design #1. */
.aim-v2-badge {
  padding: 3px 11px;
  border-radius: var(--aim-v2-r-pill);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.aim-v2-badge--ok      { background: var(--aim-green, #2E7D32); color: #FFF; }
.aim-v2-badge--warn    { background: #B45309;                   color: #FFF; }
.aim-v2-badge--error   { background: var(--aim-v2-error);       color: #FFF; }
.aim-v2-badge--info    { background: var(--aim-v2-info);        color: #FFF; }
.aim-v2-badge--neutral { background: var(--aim-v2-text-muted);  color: #FFF; }

/* ============================================================================
 * ASIDE — Avisos (bloque con lista de items)
 * ============================================================================ */
.aim-v2-avisos {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.aim-v2-avisos > li { list-style: none; margin: 0; }
.aim-v2-avisos > li::marker { content: ''; }

.aim-v2-aviso {
  padding: 12px 14px;
  border-radius: var(--aim-v2-r-btn);
  border-left: 4px solid;
  background: var(--aim-v2-bg-surface);
}
.aim-v2-aviso--warn  { border-color: var(--aim-v2-warn);  }
.aim-v2-aviso--error { border-color: var(--aim-v2-error); }
.aim-v2-aviso--ok    { border-color: var(--aim-green, #2E7D32); }
.aim-v2-aviso--info  { border-color: var(--aim-v2-info);  }
.aim-v2-aviso__titulo {
  margin: 0 0 4px;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--aim-v2-text);
}
.aim-v2-aviso__body {
  margin: 0 0 8px;
  font-size: 12.5px;
  color: var(--aim-v2-text-soft);
  line-height: 1.5;
}
.aim-v2-aviso__body a { color: var(--aim-green, #2E7D32); }
.aim-v2-aviso__cta {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--aim-green, #2E7D32);
  text-decoration: none;
}
.aim-v2-aviso__cta:hover,
.aim-v2-aviso__cta:focus-visible { text-decoration: underline; }

/* ============================================================================
 * ASIDE — Personas a mi cargo (tutela)
 * ============================================================================ */
.aim-v2-tutela {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.aim-v2-tutela > li { list-style: none; margin: 0; }
.aim-v2-tutela > li::marker { content: ''; }

.aim-v2-tutela__item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  background: var(--aim-v2-bg-surface);
  border: 1px solid var(--aim-v2-hairline);
  border-radius: var(--aim-v2-r-btn);
}
.aim-v2-tutela__info { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.aim-v2-tutela__nombre { font-weight: 600; font-size: 14px; color: var(--aim-v2-text); }
.aim-v2-tutela__meta { font-size: 12.5px; color: var(--aim-v2-text-muted); margin-top: 2px; }

/* ============================================================================
 * CARDS DE DERECHOS RGPD (Datos personales — /mis-datos/)
 * 6 derechos puros con colores del handoff. Icono en círculo 44px con color al
 * 12% de opacidad.
 * ============================================================================ */
.aim-v2-rgpd-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 22px;
}
@media (max-width: 900px) {
  .aim-v2-rgpd-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .aim-v2-rgpd-grid { grid-template-columns: 1fr; }
}

.aim-v2-rgpd-card {
  background: var(--aim-v2-bg-surface);
  border: 1px solid var(--aim-v2-hairline);
  border-radius: var(--aim-v2-r-card);
  padding: 18px 20px 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: border-color .12s ease, box-shadow .12s ease;
}
.aim-v2-rgpd-card:hover {
  border-color: var(--_rgpd-c, var(--aim-v2-border));
  box-shadow: 0 2px 8px -2px rgba(0,0,0,.08);
}

.aim-v2-rgpd-card__icon {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  color: var(--_rgpd-c, var(--aim-v2-text-muted));
  background: color-mix(in srgb, var(--_rgpd-c, var(--aim-v2-text-muted)) 12%, transparent);
}
.aim-v2-rgpd-card__title {
  margin: 4px 0 0;
  font-size: 16px;
  font-weight: 700;
  color: var(--aim-v2-text);
  letter-spacing: -0.1px;
}
.aim-v2-rgpd-card__desc {
  margin: 0 0 8px;
  font-size: 13.5px;
  color: var(--aim-v2-text-soft);
  line-height: 1.5;
  flex: 1;
}
.aim-v2-rgpd-card__desc a {
  color: var(--aim-green, #2E7D32);
  font-weight: 600;
}
.aim-v2-rgpd-card__btn {
  align-self: flex-start;
  padding: 8px 14px;
  background: transparent;
  border: 1px solid var(--_rgpd-c, var(--aim-v2-border));
  color: var(--_rgpd-c, var(--aim-v2-text));
  border-radius: var(--aim-v2-r-btn);
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  transition: background-color .12s ease, color .12s ease;
  font-family: inherit;
}
.aim-v2-rgpd-card__btn:hover,
.aim-v2-rgpd-card__btn:focus-visible {
  background: var(--_rgpd-c, var(--aim-v2-text));
  color: #FFF;
}

/* Colores por derecho (handoff) */
.aim-v2-rgpd-card[data-color="acceso"]       { --_rgpd-c: #1565C0; }
.aim-v2-rgpd-card[data-color="rectificacion"] { --_rgpd-c: #2E7D32; }
.aim-v2-rgpd-card[data-color="supresion"]    { --_rgpd-c: #C62828; }
.aim-v2-rgpd-card[data-color="oposicion"]    { --_rgpd-c: #E65100; }
.aim-v2-rgpd-card[data-color="limitacion"]   { --_rgpd-c: #6A1B9A; }
.aim-v2-rgpd-card[data-color="portabilidad"] { --_rgpd-c: #00838F; }

/* Fallback para navegadores sin color-mix (Safari <15.4, etc.) */
@supports not (background: color-mix(in srgb, red 12%, transparent)) {
  .aim-v2-rgpd-card[data-color="acceso"]       .aim-v2-rgpd-card__icon { background: #E3F2FD; }
  .aim-v2-rgpd-card[data-color="rectificacion"] .aim-v2-rgpd-card__icon { background: #E8F5E9; }
  .aim-v2-rgpd-card[data-color="supresion"]    .aim-v2-rgpd-card__icon { background: #FFEBEE; }
  .aim-v2-rgpd-card[data-color="oposicion"]    .aim-v2-rgpd-card__icon { background: #FFF3E0; }
  .aim-v2-rgpd-card[data-color="limitacion"]   .aim-v2-rgpd-card__icon { background: #F3E5F5; }
  .aim-v2-rgpd-card[data-color="portabilidad"] .aim-v2-rgpd-card__icon { background: #E0F7FA; }
}

/* ============================================================================
 * OTRAS ACCIONES SOBRE TUS DATOS (bloque secundario debajo de los 6 derechos)
 * No son derechos RGPD — son accesos prácticos discretos.
 * ============================================================================ */
.aim-v2-rgpd-otras {
  margin-top: 32px;
  padding-top: 20px;
  border-top: 1px solid var(--aim-v2-hairline);
}
.aim-v2-rgpd-otras__title {
  font-size: 14px;
  font-weight: 600;
  color: var(--aim-v2-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.6px;
  margin: 0 0 14px;
}
.aim-v2-rgpd-otras__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
@media (max-width: 640px) {
  .aim-v2-rgpd-otras__grid { grid-template-columns: 1fr; }
}
.aim-v2-rgpd-otras__item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  background: var(--aim-v2-bg-surface);
  border: 1px solid var(--aim-v2-hairline);
  border-radius: var(--aim-v2-r-btn);
  color: var(--aim-v2-text);
  text-decoration: none;
  transition: border-color .12s ease, background-color .12s ease;
}
.aim-v2-rgpd-otras__item:hover,
.aim-v2-rgpd-otras__item:focus-visible {
  border-color: var(--aim-green, #2E7D32);
  background: #F1F8E9;
}
.aim-v2-rgpd-otras__icon {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--aim-green, #2E7D32);
  background: var(--aim-v2-bg-ok);
  font-size: 14px;
  flex-shrink: 0;
}
.aim-v2-rgpd-otras__cuerpo { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.aim-v2-rgpd-otras__label { font-size: 14px; font-weight: 600; color: var(--aim-v2-text); }
.aim-v2-rgpd-otras__meta { font-size: 12.5px; color: var(--aim-v2-text-muted); margin-top: 2px; }
.aim-v2-rgpd-otras__chev {
  color: var(--aim-v2-text-muted);
  font-size: 20px;
  line-height: 1;
  flex-shrink: 0;
  transition: color .12s ease, transform .12s ease;
}
.aim-v2-rgpd-otras__item:hover .aim-v2-rgpd-otras__chev,
.aim-v2-rgpd-otras__item:focus-visible .aim-v2-rgpd-otras__chev {
  color: var(--aim-green, #2E7D32);
  transform: translateX(3px);
}

/* ============================================================================
 * CHIP DE ATAJO — píldora circular icono-only con label que se expande al
 * hover/focus. Mismo patrón visual que las píldoras del menú principal
 * (.aim-v2-nav-pill): iconos siempre visibles, label oculto con max-width:0
 * que se anima al ancho real en hover. Ocupa mucho menos sitio y se alinea
 * mejor con el H2 del pagetitle.
 * ============================================================================ */
.aim-v2-atajo {
  display: inline-flex;
  align-items: center;
  height: 40px;
  padding: 0 12px;
  background: #FFF;
  border: 1px solid var(--aim-v2-hairline, #E5E7EB);
  border-radius: 999px;
  color: var(--aim-v2-text-muted, #4B5563);
  font-size: 13.5px;
  font-weight: 600;
  text-decoration: none;
  overflow: hidden;
  white-space: nowrap;
  transition: border-color .14s ease, color .14s ease, background-color .14s ease;
}
.aim-v2-atajo i {
  font-size: 15px;
  color: var(--aim-green, #2E7D32);
  transition: color .14s ease;
  flex-shrink: 0;
  line-height: 1;
}
.aim-v2-atajo__label {
  max-width: 0;
  opacity: 0;
  margin-left: 0;
  overflow: hidden;
  white-space: nowrap;
  transition: max-width .28s ease, opacity .2s ease, margin-left .28s ease;
}
.aim-v2-atajo:hover,
.aim-v2-atajo:focus-visible {
  border-color: var(--aim-green, #2E7D32);
  color: var(--aim-green, #2E7D32);
  background: var(--aim-v2-bg-ok, #E8F5E9);
  text-decoration: none;
}
.aim-v2-atajo:hover .aim-v2-atajo__label,
.aim-v2-atajo:focus-visible .aim-v2-atajo__label {
  max-width: 220px;
  opacity: 1;
  margin-left: 9px;
}

/* ============================================================================
 * DATOS PERSONALES · BLOQUE IDENTIFICATIVO (readonly) — /mis-datos/
 * Card izquierda (avatar + tabla) + callout derecho ("Solicitar un cambio").
 * Anatomía canónica del handoff de Design (Area de socio.dc.html — tab datos).
 * ============================================================================ */

/* Variante grande del avatar unificado (componente `.aim-v2-perfil__foto`
 * definido arriba). Portada usa 56px; aquí 72px como el mock. */
.aim-v2-perfil__foto--lg { width: 72px; height: 72px; }
.aim-v2-perfil__foto--lg.aim-v2-perfil__foto--iniciales { font-size: 26px; }

/* Layout: card + callout en 2 columnas, apilan cuando no caben. */
.aim-v2-datos-id__grid {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  align-items: flex-start;
}
.aim-v2-datos-id__card {
  flex: 1 1 460px;
  min-width: 0;
  background: var(--aim-v2-bg-surface, #FFF);
  border: 1px solid var(--aim-v2-hairline, #E5E7EB);
  border-radius: 12px;
  padding: 22px;
}

/* Cabecera de la card: avatar + nombre + "Cambiar foto". */
.aim-v2-datos-id__cab {
  display: flex;
  align-items: center;
  gap: 16px;
  padding-bottom: 18px;
  border-bottom: 1px solid #F3F4F6;
}
.aim-v2-datos-id__cab-body { min-width: 0; }
.aim-v2-datos-id__nombre {
  font-size: 19px;
  font-weight: 600;
  color: var(--aim-v2-text, #1F2937);
  line-height: 1.25;
}
.aim-v2-datos-id__cambiar-foto {
  display: inline-block;
  margin-top: 3px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--aim-green, #2E7D32);
  text-decoration: none;
}
.aim-v2-datos-id__cambiar-foto:hover,
.aim-v2-datos-id__cambiar-foto:focus-visible { text-decoration: underline; }

/* Tabla identificativa: 5 filas readonly con filete fino entre ellas. */
.aim-v2-datos-id__tabla {
  width: 100%;
  border: 0;
  border-collapse: collapse;
  font-size: 14.5px;
  margin-top: 6px;
  background: transparent;
}
.aim-v2-datos-id__tabla tr {
  border-bottom: 1px solid #F3F4F6;
  background: transparent;
}
.aim-v2-datos-id__tabla tr:last-child { border-bottom: none; }
/* Reset explícito de bordes/fondos por celda: TT5 y otros temas WP suelen
 * pintar `border: 1px solid` en table th/td; aquí queremos únicamente el
 * filete horizontal entre filas (spec §6: solo lectura sin borde). */
.aim-v2-datos-id__tabla th,
.aim-v2-datos-id__tabla td {
  border: 0;
  background: transparent;
  vertical-align: top;
}
.aim-v2-datos-id__tabla th {
  text-align: left;
  padding: 12px 0;
  width: 40%;
  color: var(--aim-v2-text-muted, #4B5563);
  font-weight: 600;
}
.aim-v2-datos-id__tabla td {
  padding: 12px 0;
  color: var(--aim-v2-text, #1F2937);
}

/* Chip warn pulsable: "Solicitud en curso · AIM-CAMB-XXXX".
 * Todas las filas afectadas por la misma solicitud llevan el mismo código. */
.aim-v2-datos-id__chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-left: 8px;
  padding: 2px 10px;
  background: #FEF3C7;
  color: #78350F;
  border-radius: 10px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
  text-decoration: none;
  vertical-align: middle;
  transition: background-color .14s ease;
  white-space: nowrap;
}
.aim-v2-datos-id__chip::before {
  content: "⏳";
  font-size: 12px;
  line-height: 1;
}
.aim-v2-datos-id__chip:hover,
.aim-v2-datos-id__chip:focus-visible {
  background: #FDE68A;
  color: #78350F;
  text-decoration: none;
}

/* Callout lateral con el CTA "Solicitar un cambio" / "Ver mi solicitud". */
.aim-v2-datos-id__callout {
  flex: 1 1 260px;
  min-width: 0;
  background: var(--aim-v2-bg-surface, #FFF);
  border: 1px solid var(--aim-v2-hairline, #E5E7EB);
  border-radius: 12px;
  padding: 20px;
}
.aim-v2-datos-id__callout-titulo {
  font-size: 15.5px;
  font-weight: 600;
  color: var(--aim-v2-text, #1F2937);
  line-height: 1.35;
}
.aim-v2-datos-id__callout-desc {
  margin: 8px 0 0;
  font-size: 13.5px;
  color: var(--aim-v2-text-muted, #6B7280);
  line-height: 1.55;
  text-wrap: pretty;
}
.aim-v2-datos-id__callout .aim-v2-btn { margin-top: 14px; }

/* (Reglas del form-inline y del `:target` sobre el callout retiradas en PR2b —
 * el flujo de solicitar cambio se ha trasladado a la subpágina
 * /mis-datos/solicitar-cambio/. El CTA y los chips enlazan allí directo.) */

/* Refuerzo de contraste del CTA (btn--primary) contra overrides del theme WP:
 * TT5 aplica `a:focus { color: #2E7D32; }` global que colisiona con el fondo
 * verde del botón y hace desaparecer el texto. Fijamos color explícito para
 * los estados interactivos. Selector con doble clase para ganar especificidad
 * a las reglas del theme sin recurrir a `!important`. */
.aim-v2 .aim-v2-btn--primary,
.aim-v2 .aim-v2-btn--primary:link,
.aim-v2 .aim-v2-btn--primary:visited,
.aim-v2 .aim-v2-btn--primary:hover,
.aim-v2 .aim-v2-btn--primary:focus,
.aim-v2 .aim-v2-btn--primary:focus-visible,
.aim-v2 .aim-v2-btn--primary:active { color: #FFF; }
.aim-v2 .aim-v2-btn--secondary,
.aim-v2 .aim-v2-btn--secondary:link,
.aim-v2 .aim-v2-btn--secondary:visited,
.aim-v2 .aim-v2-btn--secondary:hover,
.aim-v2 .aim-v2-btn--secondary:focus,
.aim-v2 .aim-v2-btn--secondary:focus-visible,
.aim-v2 .aim-v2-btn--secondary:active { color: #333; }

/* ============================================================================
 * SUBPÁGINA · SOLICITAR CAMBIO DE DATOS — /mis-datos/solicitar-cambio/
 * Shortcode [aim_solicitar_cambio_datos]. Dos vistas:
 *  (a) formulario multi-campo con adjunto
 *  (b) resumen "solicitud en curso" con botón de anular
 * ============================================================================ */

.aim-v2-solicitar-cambio { max-width: 780px; }

.aim-v2-solicitar-cambio__breadcrumb {
  margin: 0 0 12px;
  font-size: 13.5px;
  color: var(--aim-v2-text-muted, #6B7280);
}
.aim-v2-solicitar-cambio__breadcrumb a {
  color: var(--aim-green, #2E7D32);
  text-decoration: none;
  font-weight: 600;
}
.aim-v2-solicitar-cambio__breadcrumb a:hover,
.aim-v2-solicitar-cambio__breadcrumb a:focus-visible { text-decoration: underline; }

.aim-v2-solicitar-cambio__card {
  background: var(--aim-v2-bg-surface, #FFF);
  border: 1px solid var(--aim-v2-hairline, #E5E7EB);
  border-radius: 12px;
  padding: 26px;
}

.aim-v2-solicitar-cambio__h {
  margin: 0 0 6px;
  font-size: 22px;
  font-weight: 700;
  color: var(--aim-v2-text, #1F2937);
  letter-spacing: -0.2px;
}
.aim-v2-solicitar-cambio__lead {
  margin: 0 0 20px;
  font-size: 14.5px;
  color: var(--aim-v2-text-muted, #4B5563);
  line-height: 1.55;
  text-wrap: pretty;
}
.aim-v2-solicitar-cambio__meta {
  margin: 0 0 18px;
  font-size: 13.5px;
  color: var(--aim-v2-text-muted, #6B7280);
}
.aim-v2-solicitar-cambio__h2 {
  margin: 22px 0 8px;
  padding: 0;
  font-size: 15.5px;
  font-weight: 700;
  color: var(--aim-v2-text, #1F2937);
  border: 0;
}
.aim-v2-solicitar-cambio__hint {
  margin: 0 0 12px;
  font-size: 13px;
  color: var(--aim-v2-text-muted, #6B7280);
}
.aim-v2-solicitar-cambio__opcional {
  font-size: 12px;
  font-weight: 500;
  color: var(--aim-v2-text-muted, #9CA3AF);
}

/* Fieldsets del formulario: sin borde/padding por defecto para no romper el
 * ritmo visual del card. */
.aim-v2-solicitar-cambio__fieldset {
  border: 0;
  padding: 0;
  margin: 0;
}
.aim-v2-solicitar-cambio__fieldset + .aim-v2-solicitar-cambio__fieldset {
  margin-top: 8px;
  padding-top: 22px;
  border-top: 1px solid #F3F4F6;
}

/* --- Campos multi-select (checkboxes) --- */
.aim-v2-solicitar-cambio__campo + .aim-v2-solicitar-cambio__campo { margin-top: 10px; }
.aim-v2-solicitar-cambio__campo-check {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 12px 14px;
  border: 1px solid var(--aim-v2-hairline, #E5E7EB);
  border-radius: 10px;
  background: #F9FAFB;
  font-size: 14.5px;
  font-weight: 600;
  color: var(--aim-v2-text, #1F2937);
  cursor: pointer;
  transition: border-color .14s ease, background-color .14s ease;
}
.aim-v2-solicitar-cambio__campo-check:hover {
  border-color: var(--aim-green, #2E7D32);
}
.aim-v2-solicitar-cambio__campo-check input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: var(--aim-green, #2E7D32);
  flex-shrink: 0;
}

/* Inputs del campo — visibles cuando el checkbox está marcado. */
.aim-v2-solicitar-cambio__campo-inputs {
  margin: 12px 0 0;
  padding: 14px 16px;
  background: #F7F9F7;
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.aim-v2-solicitar-cambio__sub {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) 2fr;
  gap: 16px;
  align-items: start;
}
@media (max-width: 560px) {
  .aim-v2-solicitar-cambio__sub { grid-template-columns: 1fr; gap: 8px; }
}
.aim-v2-solicitar-cambio__sub-actual {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 8px 12px;
  background: #FFF;
  border: 1px solid var(--aim-v2-hairline, #E5E7EB);
  border-radius: 8px;
}
.aim-v2-solicitar-cambio__sub-actual-label {
  font-size: 11.5px;
  font-weight: 700;
  color: var(--aim-v2-text-muted, #6B7280);
  letter-spacing: 1.2px;
  text-transform: uppercase;
}
.aim-v2-solicitar-cambio__sub-actual-valor {
  font-size: 14.5px;
  color: var(--aim-v2-text, #1F2937);
  word-break: break-word;
}
.aim-v2-solicitar-cambio__sub-nuevo {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 700;
  color: #333;
}
.aim-v2-solicitar-cambio__sub-nuevo input,
.aim-v2-solicitar-cambio__sub-nuevo select {
  border: 1px solid #D8DCD8;
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 14.5px;
  font-family: inherit;
  background: #FFF;
  color: var(--aim-v2-text, #1F2937);
  width: 100%;
  box-sizing: border-box;
}
.aim-v2-solicitar-cambio__sub-nuevo input:focus,
.aim-v2-solicitar-cambio__sub-nuevo select:focus {
  border-color: var(--aim-green, #2E7D32);
  box-shadow: 0 0 0 3px rgba(46,125,50,.14);
  outline: none;
}
.aim-v2-solicitar-cambio__sub-nuevo input:disabled,
.aim-v2-solicitar-cambio__sub-nuevo select:disabled {
  background: #F3F4F6;
  color: #9CA3AF;
  cursor: not-allowed;
}
.aim-v2-req { color: #C62828; }

/* --- Motivo (textarea) --- */
.aim-v2-solicitar-cambio textarea {
  width: 100%;
  min-height: 90px;
  border: 1px solid #D8DCD8;
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 14.5px;
  font-family: inherit;
  background: #FFF;
  color: var(--aim-v2-text, #1F2937);
  resize: vertical;
  box-sizing: border-box;
}
.aim-v2-solicitar-cambio textarea:focus {
  border-color: var(--aim-green, #2E7D32);
  box-shadow: 0 0 0 3px rgba(46,125,50,.14);
  outline: none;
}

/* --- Upload de documento acreditativo --- */
.aim-v2-solicitar-cambio__upload {
  display: block;
  border: 2px dashed #C8E6C9;
  border-radius: 10px;
  background: #F8FBF8;
  padding: 22px 18px;
  text-align: center;
  cursor: pointer;
  transition: border-color .14s ease, background-color .14s ease;
}
.aim-v2-solicitar-cambio__upload:hover,
.aim-v2-solicitar-cambio__upload:focus-within {
  border-color: var(--aim-green, #2E7D32);
  background: #F1F8E9;
}
.aim-v2-solicitar-cambio__upload input[type="file"] {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.aim-v2-solicitar-cambio__upload-txt {
  font-size: 14px;
  color: var(--aim-v2-text-muted, #4B5563);
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.aim-v2-solicitar-cambio__upload-txt i {
  font-size: 22px;
  color: var(--aim-green, #2E7D32);
}
.aim-v2-solicitar-cambio__upload-nombre {
  display: block;
  margin-top: 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--aim-green-dark, #1B5E20);
  word-break: break-all;
}
.aim-v2-solicitar-cambio__upload-nombre:empty { display: none; }

/* --- Aviso de plazo --- */
.aim-v2-solicitar-cambio__plazo {
  margin: 22px 0 20px;
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.aim-v2-solicitar-cambio__plazo i {
  font-size: 17px;
  color: #1565C0;
  flex-shrink: 0;
  margin-top: 1px;
}

/* --- Acciones (botones al pie) --- */
.aim-v2-solicitar-cambio__acciones {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid #F3F4F6;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}
.aim-v2-solicitar-cambio__acciones .aim-v2-btn { margin-top: 0; }

/* --- Feedback tras submit / anular --- */
.aim-v2-solicitar-cambio__status {
  min-height: 22px;
  margin-top: 12px;
  font-size: 13.5px;
  line-height: 1.5;
}
.aim-v2-solicitar-cambio__status.is-loading { color: var(--aim-v2-text-muted, #6B7280); }
.aim-v2-solicitar-cambio__status.is-ok      { color: var(--aim-green-dark, #1B5E20); font-weight: 600; }
.aim-v2-solicitar-cambio__status.is-error   { color: #C62828; font-weight: 600; }

/* =========================================================================
 * Vista "solicitud en curso" — resumen readonly
 * ========================================================================= */

.aim-v2-solicitar-cambio__ref-bloque {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 14px;
  background: #E8F5E9;
  border: 1px solid #C8E6C9;
  border-radius: 999px;
  margin-bottom: 16px;
}
.aim-v2-solicitar-cambio__ref-label {
  font-size: 11.5px;
  font-weight: 700;
  color: var(--aim-green-dark, #1B5E20);
  letter-spacing: 1.2px;
  text-transform: uppercase;
}
.aim-v2-solicitar-cambio__ref-codigo {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 14.5px;
  font-weight: 700;
  color: var(--aim-green-dark, #1B5E20);
  letter-spacing: 0.4px;
}

.aim-v2-solicitar-cambio__resumen {
  margin: 6px 0 0;
  padding: 0;
}
.aim-v2-solicitar-cambio__resumen-row {
  padding: 14px 0;
  border-bottom: 1px solid #F3F4F6;
}
.aim-v2-solicitar-cambio__resumen-row:last-child { border-bottom: 0; }
.aim-v2-solicitar-cambio__resumen dt {
  margin: 0 0 6px;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--aim-v2-text-muted, #6B7280);
  letter-spacing: 1px;
  text-transform: uppercase;
}
.aim-v2-solicitar-cambio__resumen dd { margin: 0; }
.aim-v2-solicitar-cambio__resumen-sub {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
  font-size: 14.5px;
  line-height: 1.55;
  margin: 4px 0;
}
.aim-v2-solicitar-cambio__sub-label {
  color: var(--aim-v2-text-muted, #6B7280);
  font-size: 12.5px;
  min-width: 90px;
}
.aim-v2-solicitar-cambio__valor-actual {
  color: #B91C1C;
  text-decoration: line-through;
  word-break: break-word;
}
.aim-v2-solicitar-cambio__flecha {
  color: var(--aim-v2-text-muted, #6B7280);
  font-weight: 600;
}
.aim-v2-solicitar-cambio__valor-nuevo {
  color: var(--aim-green-dark, #1B5E20);
  font-weight: 700;
  text-decoration: none;
  word-break: break-word;
}
.aim-v2-solicitar-cambio__motivo {
  padding: 12px 16px;
  background: #F9FAFB;
  border-left: 3px solid var(--aim-green, #2E7D32);
  border-radius: 6px;
  font-size: 14px;
  color: var(--aim-v2-text-muted, #4B5563);
  line-height: 1.55;
  text-wrap: pretty;
}
.aim-v2-solicitar-cambio__adjunto {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  background: #F3F4F6;
  border-radius: 8px;
  font-size: 14px;
  color: var(--aim-v2-text, #1F2937);
}
.aim-v2-solicitar-cambio__adjunto i {
  color: var(--aim-green, #2E7D32);
  font-size: 16px;
}
.aim-v2-solicitar-cambio__adjunto-nota {
  margin: 6px 0 0;
  font-size: 12.5px;
  color: var(--aim-v2-text-muted, #9CA3AF);
}

/* ============================================================================
 * DATOS PERSONALES · BLOQUE CONTACTO EDITABLE — /mis-datos/ (shortcode [aim_mis_datos])
 * Formulario en card blanca con grid auto-fit. Anatomía canónica del handoff.
 * ============================================================================ */

.aim-v2-datos-contacto { margin-top: 28px; }

.aim-v2-datos-contacto__card {
  background: var(--aim-v2-bg-surface, #FFF);
  border: 1px solid var(--aim-v2-hairline, #E5E7EB);
  border-radius: 12px;
  padding: 22px;
  margin-top: 16px;
}

/* Secciones temáticas dentro de la card (spec Design: dos bloques —
 * "Cómo contactamos contigo" y "Dirección postal" — separados con
 * cabecera en versalitas). */
.aim-v2-datos-contacto__seccion {
  border: 0;
  padding: 0;
  margin: 0;
}
.aim-v2-datos-contacto__seccion + .aim-v2-datos-contacto__seccion {
  margin-top: 22px;
  padding-top: 22px;
  border-top: 1px solid #F3F4F6;
}
.aim-v2-datos-contacto__seccion-h {
  padding: 0;
  margin: 0 0 14px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 1.3px;
  text-transform: uppercase;
  color: var(--aim-v2-text-muted, #6B7280);
}

/* Grid del formulario. Base auto-fit para responsive, variantes que fijan
 * columnas para las secciones específicas. */
.aim-v2-datos-contacto__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
}
.aim-v2-datos-contacto__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.aim-v2-datos-contacto__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.aim-v2-datos-contacto__grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 900px) {
  .aim-v2-datos-contacto__grid--3,
  .aim-v2-datos-contacto__grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .aim-v2-datos-contacto__grid--2,
  .aim-v2-datos-contacto__grid--3,
  .aim-v2-datos-contacto__grid--4 { grid-template-columns: 1fr; }
}

/* (Reglas .aim-v2-radios / .aim-v2-radio / .aim-v2-datos-contacto__field--radios
 * retiradas: Género pasó a `<select>` tras rediseño 2026-08-07 — los radios se
 * pisaban visualmente con la etiqueta larga "Prefiero no decirlo".) */

/* Variante full-width dentro del grid (el campo Dirección va sobre el ancho
 * completo de la sección, ANTES del grid de 4 columnas CP/Ciudad/Provincia/País). */
.aim-v2-datos-contacto__field--full {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 16px;
}

.aim-v2-datos-contacto__field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 700;
  color: #333;
}
.aim-v2-datos-contacto__label { line-height: 1.35; }

.aim-v2-datos-contacto__field input,
.aim-v2-datos-contacto__field select {
  border: 1px solid #D8DCD8;
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 14.5px;
  font-family: inherit;
  background: #F9FAFB;
  color: var(--aim-v2-text, #1F2937);
  width: 100%;
  box-sizing: border-box;
  font-weight: 400;
}
.aim-v2-datos-contacto__field input:hover,
.aim-v2-datos-contacto__field select:hover {
  border-color: #B9C0B9;
}
.aim-v2-datos-contacto__field input:focus,
.aim-v2-datos-contacto__field select:focus {
  border-color: var(--aim-green, #2E7D32);
  box-shadow: 0 0 0 3px rgba(46,125,50,.14);
  background: #FFF;
  outline: none;
}
.aim-v2-datos-contacto__field input[type="hidden"] { display: none; }

.aim-v2-datos-contacto__hint {
  font-size: 12.5px;
  font-weight: 400;
  color: var(--aim-v2-text-muted, #6B7280);
  line-height: 1.45;
}
.aim-v2-datos-contacto__hint[hidden] { display: none; }

/* Alineamiento del widget intl-tel-input dentro del grid: hereda el ancho pleno */
.aim-v2-datos-contacto__field .iti { width: 100%; }
.aim-v2-datos-contacto__field .iti__tel-input,
.aim-v2-datos-contacto__field input[type="tel"] {
  width: 100%;
  box-sizing: border-box;
}

/* Acciones al pie del formulario */
.aim-v2-datos-contacto__actions {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid #F3F4F6;
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}
.aim-v2-datos-contacto__msg {
  font-size: 13px;
  color: var(--aim-v2-text-muted, #6B7280);
  line-height: 1.5;
}
.aim-v2-datos-contacto__msg.aim-form-msg--ok    { color: var(--aim-green-dark, #1B5E20); font-weight: 600; }
.aim-v2-datos-contacto__msg.aim-form-msg--error { color: #C62828; font-weight: 600; }

/* ============================================================================
 * /MI-AFILIACION/ — vista canónica (PR A · rediseño Design 2026-08-08)
 * Spec: preguntas/mi-afiliacion-spec.md §2
 * ============================================================================ */

/* Utility classes reutilizables */
.is-mono  { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 13.5px; color: #4B5563; }
.is-muted { opacity: .6; }

/* Contenedor de la pestaña — cascade de secciones */
.aim-v2-mifil {
  display: flex;
  flex-direction: column;
  gap: 32px;
  max-width: 840px;
}

/* Franja socio menor (§2.8) — banda azul informativa al principio */
.aim-v2-mifil__menor-banner {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 14px 16px;
  background: #E3F2FD;
  border: 1px solid #90CAF9;
  border-left: 4px solid #1565C0;
  border-radius: 10px;
  color: #0D47A1;
  font-size: 14px;
  line-height: 1.5;
}
.aim-v2-mifil__menor-banner i { font-size: 17px; margin-top: 2px; color: #1565C0; }
.aim-v2-mifil__menor-banner p { margin: 0; }

/* Sección — cabecera con h2 verde subrayado + meta/action a la derecha */
.aim-v2-mifil__section-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  padding-bottom: 8px;
  border-bottom: 2px solid #2E7D32;
  margin-bottom: 6px;
}
.aim-v2-mifil__h2 {
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  color: #2E7D32;
  letter-spacing: -0.01em;
}
.aim-v2-mifil__section-meta {
  font-size: 13px;
  color: #6B7280;
}
.aim-v2-mifil__section-action {
  font-size: 13.5px;
  font-weight: 600;
  color: #2E7D32;
  text-decoration: none;
}
.aim-v2-mifil__section-action:hover,
.aim-v2-mifil__section-action:focus-visible { text-decoration: underline; }

/* Tabla común (Afiliación + Forma de pago) */
.aim-v2-mifil__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14.5px;
  margin-top: 6px;
}
.aim-v2-mifil__table tr { border-top: 1px solid #F3F4F6; }
.aim-v2-mifil__table th,
.aim-v2-mifil__table td {
  text-align: left;
  padding: 12px 0;
  color: #1F2937;
  vertical-align: top;
}
.aim-v2-mifil__table th {
  color: #4B5563;
  font-weight: 600;
  width: 38%;
}
.aim-v2-mifil__table.is-muted th,
.aim-v2-mifil__table.is-muted td { opacity: .55; }

/* Forma de pago — línea de estado (icono + nombre + badge + descripción) */
.aim-v2-mifil__fp-linea {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 16px;
}
.aim-v2-mifil__fp-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: #E8F5E9;
  display: grid;
  place-items: center;
  flex: none;
}
.aim-v2-mifil__fp-icon i { font-size: 17px; color: #2E7D32; }
.aim-v2-mifil__fp-cuerpo {
  flex: 1 1 240px;
  min-width: 0;
}
.aim-v2-mifil__fp-titulo {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.aim-v2-mifil__fp-nombre {
  font-size: 15.5px;
  font-weight: 600;
  color: #1F2937;
}
.aim-v2-mifil__fp-desc {
  margin: 4px 0 0;
  font-size: 13.5px;
  color: #4B5563;
  line-height: 1.5;
  text-wrap: pretty;
}
.aim-v2-mifil__fp-download {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  font-size: 13.5px;
  font-weight: 600;
  color: #2E7D32;
  text-decoration: none;
}
.aim-v2-mifil__fp-download i { font-size: 14px; }
.aim-v2-mifil__fp-download:hover,
.aim-v2-mifil__fp-download:focus-visible { text-decoration: underline; }

/* Sección Documentos — 3 filas con icono + nombre + descripción + chevron */
.aim-v2-mifil__docs-list {
  display: flex;
  flex-direction: column;
}
.aim-v2-mifil__docs-item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 15px 12px 15px 0;
  border-top: 1px solid #F3F4F6;
  transition: background .15s ease;
}
.aim-v2-mifil__docs-item:hover { background: #F7FBF7; }
.aim-v2-mifil__docs-icon {
  width: 34px;
  height: 34px;
  border-radius: 9px;
  background: #E8F5E9;
  display: grid;
  place-items: center;
  flex: none;
}
.aim-v2-mifil__docs-icon i { font-size: 16px; color: #2E7D32; }
.aim-v2-mifil__docs-cuerpo {
  flex: 1 1 auto;
  min-width: 0;
}
.aim-v2-mifil__docs-link {
  font-size: 15px;
  font-weight: 600;
  color: #1F2937;
  text-decoration: none;
}
.aim-v2-mifil__docs-link::after {
  content: '';
  position: absolute;
  inset: 0;
}
.aim-v2-mifil__docs-desc {
  margin: 3px 0 0;
  font-size: 13px;
  color: #6B7280;
  line-height: 1.5;
  text-wrap: pretty;
}
.aim-v2-mifil__docs-chevron {
  color: #9CA3AF;
  font-size: 20px;
  line-height: 1;
  flex: none;
  position: relative;
  z-index: 1;
}

/* Franja de baja (§2.6) — texto muted a la izquierda + link rojo a la derecha */
.aim-v2-mifil__baja {
  padding-top: 18px;
  border-top: 1px solid #E5E7EB;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}
.aim-v2-mifil__baja-texto {
  font-size: 13.5px;
  color: #6B7280;
  text-wrap: pretty;
}
.aim-v2-mifil__baja-link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-size: 13.5px;
  font-weight: 600;
  color: #C62828;
  text-decoration: none;
}
.aim-v2-mifil__baja-link i { font-size: 15px; }
.aim-v2-mifil__baja-link:hover,
.aim-v2-mifil__baja-link:focus-visible { text-decoration: underline; }

/* Estado vacío (§2.7) — sin afiliación activa */
.aim-v2-mifil__vacio {
  text-align: center;
  max-width: 480px;
  margin: 24px auto;
  padding: 24px 16px;
}
.aim-v2-mifil__vacio-icon {
  font-size: 40px;
  color: #9CA3AF;
  margin-bottom: 12px;
}
.aim-v2-mifil__vacio-titulo {
  margin: 0 0 8px;
  font-size: 17px;
  font-weight: 600;
  color: #1F2937;
}
.aim-v2-mifil__vacio-razon {
  margin: 0 0 18px;
  font-size: 14px;
  color: #6B7280;
  line-height: 1.5;
}

/* ============================================================================
 * .aim-v2-alert — aviso inline dentro de sección
 * (distinto del .aim-v2-aviso aside, que es un componente de barra lateral)
 * Icono grande + cuerpo + acción opcional a la derecha
 * ============================================================================ */
.aim-v2-alert {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid;
  border-left-width: 4px;
  margin: 14px 0;
  font-size: 14px;
  line-height: 1.5;
}
.aim-v2-alert > i {
  font-size: 17px;
  margin-top: 2px;
  flex: none;
}
.aim-v2-alert__body {
  flex: 1 1 auto;
  min-width: 0;
  /* Permitir romper links largos (emails, URLs) para que no se salgan del
   * contenedor cuando el alert vive en un aside estrecho (~280-320px).
   * Feedback user 2026-08-09: secretaria@mirmiberica.org se salía del aside. */
  overflow-wrap: anywhere;
  word-break: break-word;
}
.aim-v2-alert__body p { margin: 0; }
.aim-v2-alert__action {
  font-size: 13.5px;
  font-weight: 600;
  text-decoration: none;
  flex: none;
  align-self: center;
}
.aim-v2-alert__action:hover,
.aim-v2-alert__action:focus-visible { text-decoration: underline; }
.aim-v2-alert .aim-v2-btn { flex: none; align-self: center; }

.aim-v2-alert--warning {
  background: #FFF8E1;
  border-color: #FFB300;
  color: #6D4C00;
}
.aim-v2-alert--warning > i { color: #E65100; }
.aim-v2-alert--warning .aim-v2-alert__action { color: #6D4C00; }

.aim-v2-alert--error {
  background: #FFEBEE;
  border-color: #EF5350;
  color: #B71C1C;
}
.aim-v2-alert--error > i { color: #C62828; }
.aim-v2-alert--error .aim-v2-alert__action { color: #B71C1C; }

.aim-v2-alert--info {
  background: #E3F2FD;
  border-color: #64B5F6;
  color: #0D47A1;
}
.aim-v2-alert--info > i { color: #1565C0; }
.aim-v2-alert--info .aim-v2-alert__action { color: #0D47A1; }

/* Responsive: en móvil las secciones ocupan todo el ancho, tablas fluidas. */
@media (max-width: 640px) {
  .aim-v2-mifil { gap: 24px; }
  .aim-v2-mifil__section-head { padding-bottom: 6px; }
  .aim-v2-mifil__h2 { font-size: 16px; }
  .aim-v2-mifil__section-action { font-size: 13px; }
  .aim-v2-mifil__fp-linea { gap: 10px; }
  .aim-v2-mifil__table th { width: 42%; font-size: 13.5px; }
  .aim-v2-mifil__table td { font-size: 13.5px; }
  .aim-v2-mifil__docs-link { font-size: 14px; }
  .aim-v2-mifil__baja { flex-direction: column; align-items: flex-start; gap: 10px; }
  .aim-v2-alert { flex-direction: column; }
  .aim-v2-alert .aim-v2-btn { align-self: stretch; text-align: center; }
}

/* ============================================================================
 * MOLDE B CHECKSUM — línea de contexto (Design §5, PR F 2026-08-08)
 * "quién lo ha pedido y para quién" bajo el título del trámite.
 * ============================================================================ */
.aim-v2-checksum-contexto {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 14px 16px;
  background: #E3F2FD;
  border: 1px solid #90CAF9;
  border-left: 4px solid #1565C0;
  border-radius: 10px;
  color: #0D47A1;
  font-size: 14.5px;
  line-height: 1.55;
  max-width: 720px;
  margin: 0 auto 22px;
}
.aim-v2-checksum-contexto i {
  font-size: 18px;
  margin-top: 2px;
  color: #1565C0;
  flex: none;
}
.aim-v2-checksum-contexto p {
  margin: 0;
  text-wrap: pretty;
}
.aim-v2-checksum-contexto strong { color: #0D47A1; }

/* ============================================================================
 * /MI-CARNET/ — preview visual del carnet (PR H 2026-08-08)
 * Reusa el HTML del endpoint aim_download_carnet — cada cara viene con
 * dimensiones absolutas 54mm × 85.6mm y fondo/logo/foto/QR embebidos b64.
 * ============================================================================ */
.aim-v2-carnet {
  display: flex;
  flex-direction: column;
  gap: 28px;
  align-items: center;
  padding: 8px 0 32px;
}
.aim-v2-carnet__preview {
  display: flex;
  gap: 32px;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
}
.aim-v2-carnet__cara {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.aim-v2-carnet__cara-label {
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 600;
  color: #6B7280;
}
.aim-v2-carnet__cara-inner {
  /* Contenedor con sombra suave y borde discreto — el HTML interno tiene sus
   * propias dimensiones absolutas (54×85.6mm). El wrapper solo lo enmarca. */
  background: #FFF;
  border-radius: 8px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .09), 0 1px 3px rgba(0, 0, 0, .06);
  overflow: hidden;
  /* Fuerza el tamaño (algunos navegadores no honran mm sin dimensiones
   * explícitas en el contenedor padre). */
  width: 54mm;
  height: 85.6mm;
}
.aim-v2-carnet__acciones {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  max-width: 520px;
  text-align: center;
}
.aim-v2-carnet__acciones .aim-v2-btn {
  min-width: 240px;
}
.aim-v2-carnet__nota {
  margin: 0;
  font-size: 13px;
  color: #6B7280;
  line-height: 1.5;
  text-wrap: pretty;
}

/* Móvil: las 2 caras se apilan verticalmente y bajamos la escala si el ancho
 * de pantalla no llega a los 54mm físicos (~204px). El HTML interno usa
 * dimensiones en mm, no se puede escalar con font-size; el transform:scale
 * mantiene la proporción y hace que quepa en móviles muy estrechos. */
@media (max-width: 480px) {
  .aim-v2-carnet__preview { gap: 22px; }
  .aim-v2-carnet__cara-inner {
    transform: scale(.92);
    transform-origin: top center;
    margin-bottom: -14px; /* compensa el hueco que deja el scale */
  }
}

/* ============================================================================
 * /SOLICITAR-FACTURA/ — subpágina Design §4 (PR D 2026-08-09)
 * Formulario en columna 640px: select ejercicio + datos fiscales readonly
 * + observaciones + aviso + botón "Solicitar la factura".
 * ============================================================================ */
.aim-v2-solicitar-factura {
  max-width: 640px;
  margin: 8px auto 32px;
}
.aim-v2-solicitar-factura__grupo {
  margin-bottom: 22px;
}
.aim-v2-solicitar-factura__label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: #4B5563;
  margin-bottom: 8px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.aim-v2-solicitar-factura__input {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  background: #FFF;
  font-size: 14.5px;
  color: #1F2937;
  font-family: inherit;
  box-sizing: border-box;
}
.aim-v2-solicitar-factura__input:focus {
  outline: 2px solid #2E7D32;
  outline-offset: 1px;
  border-color: #2E7D32;
}
textarea.aim-v2-solicitar-factura__input {
  min-height: 76px;
  resize: vertical;
}
.aim-v2-solicitar-factura__fiscal {
  padding: 14px 16px;
  background: #F9FAFB;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  font-size: 14.5px;
  color: #1F2937;
  line-height: 1.5;
}
.aim-v2-solicitar-factura__fiscal p { margin: 0 0 3px; }
.aim-v2-solicitar-factura__fiscal p:last-child { margin: 0; }
.aim-v2-solicitar-factura__ayuda {
  margin: 8px 0 0;
  font-size: 13px;
  color: #6B7280;
  line-height: 1.5;
}
.aim-v2-solicitar-factura__ayuda a { color: #2E7D32; }
.aim-v2-solicitar-factura__actions {
  margin-top: 20px;
}
.aim-v2-solicitar-factura__actions .aim-v2-btn {
  min-width: 200px;
}
.aim-v2-solicitar-factura__msg {
  margin-top: 16px;
}

/* ============================================================================
 * /SUBIR-JUSTIFICANTE/ — selector cuando falta ?tipo= (PR E 2026-08-09)
 * Design §1.3: "Si el parámetro falta o no es válido, se pregunta en vez
 * de suponer." Dos tarjetas grandes (Alta / Renovación) que apuntan a la
 * misma URL con el parámetro correspondiente.
 * ============================================================================ */
.aim-v2-justif-selector {
  max-width: 640px;
  margin: 32px auto;
  padding: 8px;
  text-align: center;
}
.aim-v2-justif-selector__h {
  margin: 0 0 8px;
  font-size: 22px;
  font-weight: 600;
  color: #1F2937;
}
.aim-v2-justif-selector__p {
  margin: 0 0 24px;
  color: #4B5563;
  font-size: 14.5px;
  line-height: 1.55;
}
.aim-v2-justif-selector__opciones {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 20px;
}
@media (max-width: 480px) {
  .aim-v2-justif-selector__opciones { grid-template-columns: 1fr; }
}
.aim-v2-justif-selector__opcion {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 22px 18px;
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  text-decoration: none;
  color: #1F2937;
  transition: border-color .15s ease, background .15s ease, transform .15s ease;
}
.aim-v2-justif-selector__opcion:hover,
.aim-v2-justif-selector__opcion:focus-visible {
  border-color: #2E7D32;
  background: #F7FBF7;
  transform: translateY(-1px);
}
.aim-v2-justif-selector__opcion i {
  font-size: 28px;
  color: #2E7D32;
  margin-bottom: 4px;
}
.aim-v2-justif-selector__t {
  font-size: 15.5px;
  font-weight: 600;
  color: #1F2937;
}
.aim-v2-justif-selector__d {
  font-size: 13px;
  color: #6B7280;
  line-height: 1.5;
  text-wrap: pretty;
}
.aim-v2-justif-selector__ayuda {
  margin: 12px 0 0;
  font-size: 13px;
  color: #6B7280;
}
.aim-v2-justif-selector__ayuda a { color: #2E7D32; }

/* Fix hidden vs display en banners (bug reportado 2026-08-09 en /subir-
 * justificante/?tipo=alta): .aim-banner--success tiene `display: flex` que
 * gana al atributo HTML5 [hidden] (que aplica `display: none` sin !important).
 * Los banners de "recibido / éxito" que van hidden hasta el envío se
 * pintaban en la carga inicial. Fix: forzar [hidden] con !important. */
[hidden] { display: none !important; }

/* ============================================================================
 * /MI-FORMA-PAGO/ — subpágina Design §3 (PR B 2026-08-09)
 * v2 rediseño dos columnas 2026-08-09: resumen + selector fijos en columna
 * izquierda sticky, flujo activo en columna derecha. Spec Design
 * `mi-forma-pago-spec.md`. Selector tarjetas-radio SEPA/Transferencia/Tarjeta.
 * ============================================================================ */
.aim-v2-forma-pago {
  max-width: 1180px;
  margin: 8px auto 32px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
/* Layout dos columnas — el sticky es la parte que importa (Design §1). */
.aim-v2-forma-pago__split {
  display: flex;
  align-items: flex-start;
  gap: 26px;
}
.aim-v2-forma-pago__side {
  flex: 0 0 316px;
  position: sticky;
  top: 20px;
}
.aim-v2-forma-pago__main {
  flex: 1 1 auto;
  min-width: 0;
}
@media (max-width: 900px) {
  .aim-v2-forma-pago__split { flex-direction: column; gap: 22px; }
  .aim-v2-forma-pago__side { flex: 1 1 auto; position: static; width: 100%; }
  .aim-v2-forma-pago__main { width: 100%; }
}

/* IBAN enmascurado del chip derecho del resumen (Design mock v2) */
.aim-v2-forma-pago__resumen-iban {
  display: block;
  margin-top: 4px;
  font-family: 'DejaVu Sans Mono', 'Courier New', monospace;
  font-size: 13.5px;
  color: #4B5563;
  letter-spacing: 0.5px;
}

/* Selector título más compacto en columna estrecha (era 17px) */
.aim-v2-forma-pago__split .aim-v2-forma-pago__selector-legend {
  font-size: 14px;
  color: #2E7D32;
  padding: 0 0 7px;
  margin: 0 0 13px;
  border-bottom: 2px solid #2E7D32;
}

/* Tarjetas de opción más compactas dentro del split */
.aim-v2-forma-pago__split .aim-v2-opcion-pago {
  padding: 13px 14px;
  gap: 10px;
}
.aim-v2-forma-pago__split .aim-v2-forma-pago__selector { gap: 10px; }

/* Aviso re-firma a ancho completo (fuera del split, §1) */
.aim-v2-forma-pago__aviso-refirma {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 16px;
  background: #FFF3E0;
  border: 1px solid #FFCC80;
  border-radius: 10px;
  color: #A04A00;
  font-size: 13.5px;
  line-height: 1.55;
}
.aim-v2-forma-pago__aviso-refirma i {
  font-size: 16px;
  color: #E65100;
  margin-top: 2px;
  flex: none;
}

/* Estado vacío columna derecha (§1 spec) */
.aim-v2-forma-pago__empty {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 32px 24px;
  border: 1.5px dashed #D1D5DB;
  border-radius: 12px;
  color: #6B7280;
  background: #FAFAFA;
}
.aim-v2-forma-pago__empty i { font-size: 22px; color: #9CA3AF; flex: none; }
.aim-v2-forma-pago__empty p {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  max-width: 44ch;
}

/* Título contextual del flujo (se pinta desde el wrapper — el h2 del
 * shortcode aim_firmar_mandato_sepa se oculta con selector scoped
 * en el bloque de overrides SEPA de más abajo). */
.aim-v2-forma-pago__flujo-titulo {
  padding: 0 0 8px;
  border-bottom: 2px solid #2E7D32;
  margin: 0 0 16px;
}
.aim-v2-forma-pago__flujo-titulo h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 600;
  color: #2E7D32;
  letter-spacing: -0.01em;
}

/* Resumen forma actual — 3 columnas Design mock v2: icono verde |
 * cuerpo (eyebrow + nombre + badge + desc) | IBAN chip con borde
 * izquierdo (solo si SEPA). Fondo blanco, borde suave. */
.aim-v2-forma-pago__resumen {
  display: flex;
  gap: 14px;
  align-items: center;
  flex-wrap: wrap;
  padding: 16px 18px;
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
}
.aim-v2-forma-pago__resumen-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: #E8F5E9;
  display: grid;
  place-items: center;
  flex: none;
}
.aim-v2-forma-pago__resumen-icon i {
  font-size: 17px;
  color: #2E7D32;
}
.aim-v2-forma-pago__resumen-cuerpo {
  flex: 1 1 240px;
  min-width: 0;
}
.aim-v2-forma-pago__resumen-eyebrow {
  display: block;
  margin: 0 0 5px;
  font-size: 11px;
  font-weight: 700;
  color: #6B7280;
  letter-spacing: 1.2px;
  text-transform: uppercase;
}
.aim-v2-forma-pago__resumen-titulo {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}
.aim-v2-forma-pago__resumen-nombre {
  font-size: 15.5px;
  font-weight: 600;
  color: #1F2937;
}
.aim-v2-forma-pago__resumen-desc {
  display: block;
  margin: 5px 0 0;
  font-size: 13px;
  color: #4B5563;
  line-height: 1.5;
}
.aim-v2-forma-pago__resumen-iban-chip {
  flex: none;
  padding-left: 18px;
  border-left: 1px solid #F0F1F2;
}
.aim-v2-forma-pago__selector {
  display: flex;
  flex-direction: column;
  gap: 12px;
  border: none;
  padding: 0;
  margin: 0;
}
.aim-v2-forma-pago__selector-legend {
  padding: 0;
  margin: 0 0 12px;
  font-size: 17px;
  font-weight: 600;
  color: #1F2937;
}

/* Opción tarjeta-radio (Design §3.2). */
.aim-v2-opcion-pago {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 16px 18px;
  border: 1px solid #E5E7EB;
  border-radius: 10px;
  background: #FFF;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease;
}
.aim-v2-opcion-pago:hover { border-color: #2E7D32; background: #F7FBF7; }
.aim-v2-opcion-pago:has(:checked) { border-color: #2E7D32; background: #F1F8E9; box-shadow: inset 0 0 0 1px #2E7D32; }
.aim-v2-opcion-pago:has(:disabled) { opacity: .55; cursor: not-allowed; background: #F9FAFB; }
.aim-v2-opcion-pago input[type="radio"] { margin-top: 4px; flex: none; accent-color: #2E7D32; }
.aim-v2-opcion-pago__cuerpo { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.aim-v2-opcion-pago__t { font-size: 15px; font-weight: 600; color: #1F2937; }
.aim-v2-opcion-pago__d { font-size: 13.5px; color: #4B5563; margin-top: 3px; line-height: 1.5; }
.aim-v2-opcion-pago__pie { font-size: 12.5px; color: #9CA3AF; margin-top: 6px; }

/* Flujo por opción */
.aim-v2-forma-pago__flujo { padding: 18px 0 8px; border-top: 1px solid #E5E7EB; }
.aim-v2-forma-pago__flujo-h { margin: 0 0 14px; font-size: 17px; font-weight: 600; color: #2E7D32; }
.aim-v2-forma-pago__cuenta-aim {
  padding: 14px 16px;
  background: #F9FAFB;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  font-size: 14.5px;
  color: #1F2937;
  line-height: 1.6;
  margin: 12px 0;
}
.aim-v2-forma-pago__cuenta-aim p { margin: 0 0 4px; }
.aim-v2-forma-pago__cuenta-aim p:last-child { margin: 0; }
.aim-v2-forma-pago__nota { margin: 16px 0 8px; font-size: 14px; color: #4B5563; }

/* ============================================================================
 * MI-FORMA-PAGO · overrides SEPA (flujo embebido usa shortcode viejo)
 * Aplicados SOLO cuando aim_firmar_mandato_sepa se pinta dentro de
 * .aim-v2-forma-pago__flujo — no afectan a /firmar-mandato-sepa/ standalone.
 * PR B post-review 2026-08-09.
 * ============================================================================ */

/* Section wrapper: quita la card antigua (border-left verde grueso, padding
 * generoso, fondo blanco con sombra). El contenedor v2 ya proporciona espacio. */
.aim-v2-sepa-wrap .aim-section,
.aim-v2-sepa-wrap .aim-data-box,
.aim-v2-sepa-wrap .aim-data-box--narrow {
  padding: 0;
  margin: 0;
  border: none;
  box-shadow: none;
  background: transparent;
  border-left: none;
  max-width: none;
}

/* H2 "Actualizar mandato SEPA" / "Activar domiciliación": estilo v2. */
.aim-v2-sepa-wrap .aim-section-h {
  border: none;
  padding: 0;
  margin: 0 0 6px;
  font-size: 17px;
  font-weight: 600;
  color: #2E7D32;
  background: none;
}
/* En /mi-forma-pago/ el título del flujo se pinta desde el wrapper con
 * copy contextual (Confirmar mandato SEPA / Cambiar la cuenta de
 * domiciliación / Activar domiciliación bancaria). El h2 del shortcode
 * se oculta cuando vive dentro del flujo para no duplicarlo. */
.aim-v2-forma-pago__flujo .aim-v2-sepa-wrap .aim-section-h { display: none; }

/* Ayuda intro debajo del h2 */
.aim-v2-sepa-wrap .aim-form-help {
  font-size: 13.5px;
  color: #4B5563;
  line-height: 1.55;
  margin: 0 0 18px;
}

/* Labels */
.aim-v2-sepa-wrap .aim-mini-label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: #4B5563;
  margin: 14px 0 6px;
  letter-spacing: 0.01em;
}
.aim-v2-sepa-wrap .aim-mini-label--inline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 12px 0;
  font-weight: normal;
  color: #1F2937;
  text-transform: none;
  letter-spacing: 0;
}
.aim-v2-sepa-wrap .aim-mini-label--inline input[type="checkbox"] {
  accent-color: #2E7D32;
  width: 16px;
  height: 16px;
}
.aim-v2-sepa-wrap .aim-required { color: #C62828; }

/* Inputs y select */
.aim-v2-sepa-wrap .aim-input {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  background: #FFF;
  font-size: 14.5px;
  color: #1F2937;
  font-family: inherit;
  box-sizing: border-box;
  transition: border-color .15s ease;
}
.aim-v2-sepa-wrap .aim-input:focus {
  outline: 2px solid #2E7D32;
  outline-offset: 1px;
  border-color: #2E7D32;
}
.aim-v2-sepa-wrap .aim-doc-group {
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 10px;
}
@media (max-width: 480px) {
  .aim-v2-sepa-wrap .aim-doc-group { grid-template-columns: 1fr; }
}
.aim-v2-sepa-wrap .aim-field-feedback {
  font-size: 13px;
  color: #4B5563;
  margin-top: 4px;
  min-height: 1.4em;
}

/* Botones antiguos → v2 */
.aim-v2-sepa-wrap .aim-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  border-radius: 8px;
  border: 1px solid #E5E7EB;
  background: #FFF;
  color: #4B5563;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.aim-v2-sepa-wrap .aim-btn:hover:not(:disabled),
.aim-v2-sepa-wrap .aim-btn:focus-visible:not(:disabled) {
  border-color: #2E7D32;
  color: #2E7D32;
  background: #F7FBF7;
}
.aim-v2-sepa-wrap .aim-btn:disabled {
  opacity: .55;
  cursor: not-allowed;
}
.aim-v2-sepa-wrap .aim-btn--primary {
  background: #2E7D32;
  border-color: #2E7D32;
  color: #FFF;
}
.aim-v2-sepa-wrap .aim-btn--primary:hover:not(:disabled),
.aim-v2-sepa-wrap .aim-btn--primary:focus-visible:not(:disabled) {
  background: #1B5E20;
  border-color: #1B5E20;
  color: #FFF;
}
.aim-v2-sepa-wrap .aim-btn--sm {
  padding: 6px 12px;
  font-size: 13px;
}
.aim-v2-sepa-wrap .aim-form-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin: 18px 0 10px;
}

/* Banner de menor (aviso info tutor) */
.aim-v2-sepa-wrap .aim-banner {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid;
  border-left-width: 4px;
  margin: 12px 0;
  font-size: 14px;
  line-height: 1.5;
  background: #E3F2FD;
  border-color: #64B5F6;
  color: #0D47A1;
}
.aim-v2-sepa-wrap .aim-banner--info {
  background: #E3F2FD;
  border-color: #64B5F6;
  color: #0D47A1;
}
.aim-v2-sepa-wrap .aim-banner--warning {
  background: #FFF8E1;
  border-color: #FFB300;
  color: #6D4C00;
}
.aim-v2-sepa-wrap .aim-banner-icon {
  font-size: 17px;
  margin-top: 2px;
  flex: none;
}
.aim-v2-sepa-wrap .aim-banner-body p { margin: 0; }
.aim-v2-sepa-wrap .aim-banner-body p + p { margin-top: 6px; }

/* Canvas de firma */
.aim-v2-sepa-wrap .aim-firma-box {
  margin: 18px 0;
  padding: 14px;
  border: 1px solid #E5E7EB;
  border-radius: 10px;
  background: #F9FAFB;
}
.aim-v2-sepa-wrap .aim-firma-box__label {
  margin: 0 0 8px;
  font-size: 13px;
  font-weight: 600;
  color: #4B5563;
}
.aim-v2-sepa-wrap .aim-firma-canvas-wrap {
  border: 2px dashed #C8E6C9;
  border-radius: 8px;
  background: #F8FBF8;
  padding: 4px;
}
.aim-v2-sepa-wrap .aim-firma-canvas {
  display: block;
  width: 100%;
  height: 180px;
  background: transparent;
  cursor: crosshair;
}
.aim-v2-sepa-wrap .aim-firma-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 10px;
  gap: 10px;
  flex-wrap: wrap;
  font-size: 13px;
  color: #6B7280;
}

/* Feedback tras submit */
.aim-v2-sepa-wrap .aim-feedback {
  margin-top: 12px;
  font-size: 13.5px;
  line-height: 1.5;
}

/* Puerta lateral al final del shortcode SEPA: "¿querías cambiar la forma de
 * pago en lugar de firmar?". Solo aparece cuando el shortcode está standalone
 * (en /firmar-mandato-sepa/); dentro de /mi-forma-pago/ es redundante y se
 * oculta (ya estás en el sitio de cambio). */
.aim-v2-sepa-cambiar-fp {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid #E5E7EB;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}
.aim-v2-sepa-cambiar-fp p {
  margin: 0;
  font-size: 14px;
  color: #4B5563;
  line-height: 1.5;
}
.aim-v2-btn--secondary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  border-radius: 8px;
  border: 1px solid #2E7D32;
  background: #FFF;
  color: #2E7D32;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: background .15s ease;
}
.aim-v2-btn--secondary:hover,
.aim-v2-btn--secondary:focus-visible {
  background: #F1F8E9;
}
/* Dentro de mi-forma-pago la puerta lateral es redundante */
.aim-v2-forma-pago__flujo .aim-v2-sepa-cambiar-fp { display: none; }


/* ============================================================================
 * /DOCUMENTOS/ - repositorio del area socio (Design mock 2026-08-10)
 * Sustituye al CSS inline embebido que habia en el shortcode aim_documentos.
 * ============================================================================ */

.aim-v2-documentos {
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  overflow: hidden;
}

.aim-v2-docs__admin-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  background: #F1F8E9;
  border-bottom: 1px solid #C8E6C9;
  padding: 12px 24px;
}
.aim-v2-docs__admin-bar > i { font-size: 15px; color: #1B5E20; flex: none; }
.aim-v2-docs__admin-hint {
  font-size: 13px;
  color: #33691E;
  flex: 1 1 auto;
  min-width: 0;
  text-wrap: pretty;
}
.aim-v2-docs__admin-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid #C8E6C9;
  background: #FFF;
  color: #2E7D32;
  font-size: 13.5px;
  font-weight: 600;
  border-radius: 8px;
  padding: 9px 15px;
  flex: none;
  text-decoration: none;
  transition: background .15s ease, border-color .15s ease;
}
.aim-v2-docs__admin-btn:hover { border-color: #2E7D32; background: #E8F5E9; }
.aim-v2-docs__admin-btn--primary {
  background: #2E7D32;
  border-color: #2E7D32;
  color: #FFF !important;
}
.aim-v2-docs__admin-btn--primary:hover { background: #1B5E20; border-color: #1B5E20; }

.aim-v2-docs__body { padding: 18px 24px 30px; }

.aim-v2-docs__toolbar {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}
.aim-v2-docs__search {
  display: flex;
  align-items: center;
  gap: 9px;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  background: #FFF;
  padding: 0 12px;
  flex: 1 1 260px;
  min-width: 0;
}
.aim-v2-docs__search i { font-size: 14px; color: #9CA3AF; flex: none; }
.aim-v2-docs__search input {
  border: 0;
  background: transparent;
  outline: none;
  font-family: inherit;
  font-size: 14px;
  color: #1F2937;
  padding: 10px 0;
  width: 100%;
  min-width: 0;
}
.aim-v2-docs__orden {
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  background: #FFF;
  font-family: inherit;
  font-size: 13.5px;
  color: #4B5563;
  padding: 10px 12px;
  flex: none;
  cursor: pointer;
}
.aim-v2-docs__vista {
  display: flex;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  overflow: hidden;
  flex: none;
}
.aim-v2-docs__vista button {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  background: #FFF;
  color: #6B7280;
  border: 0;
  cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
.aim-v2-docs__vista button + button { border-left: 1px solid #E5E7EB; }
.aim-v2-docs__vista button:hover { background: #F7F9F7; }
.aim-v2-docs__vista button.is-active { background: #2E7D32; color: #FFF; }
.aim-v2-docs__vista i { font-size: 14px; }

.aim-v2-docs__filtros {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 14px;
}
.aim-v2-docs__chips { display: flex; gap: 7px; flex-wrap: wrap; }
.aim-v2-docs__chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  font-weight: 600;
  border-radius: 999px;
  padding: 7px 13px;
  background: #FFF;
  border: 1px solid #E5E7EB;
  color: #4B5563;
  text-decoration: none;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.aim-v2-docs__chip:hover { border-color: #2E7D32; color: #2E7D32; }
.aim-v2-docs__chip i { font-size: 13px; color: #2E7D32; }
.aim-v2-docs__chip.is-active {
  background: #2E7D32;
  border-color: #2E7D32;
  color: #FFF;
}
.aim-v2-docs__chip.is-active i { color: #C8E6C9; }
.aim-v2-docs__chip-count {
  font-size: 11.5px;
  font-weight: 700;
  border-radius: 999px;
  padding: 1px 7px;
  background: #F3F4F6;
  color: #6B7280;
}
.aim-v2-docs__chip.is-active .aim-v2-docs__chip-count {
  background: rgba(255,255,255,.2);
  color: #FFF;
}
.aim-v2-docs__chips-tipo {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  align-items: flex-start;
}
.aim-v2-docs__chips-label {
  font-size: 11.5px;
  font-weight: 700;
  color: #9CA3AF;
  letter-spacing: 1px;
  text-transform: uppercase;
  flex: none;
  padding-top: 5px;
}
.aim-v2-docs__tchip {
  display: inline-flex;
  align-items: center;
  font-size: 12.5px;
  font-weight: 600;
  border-radius: 999px;
  padding: 5px 11px;
  background: #F7F9F7;
  border: 1px solid #EDEFED;
  color: #6B7280;
  text-decoration: none;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.aim-v2-docs__tchip:hover { border-color: #2E7D32; color: #2E7D32; }
.aim-v2-docs__tchip.is-active {
  background: #1B5E20;
  border-color: #1B5E20;
  color: #FFF;
}

.aim-v2-docs__resumen {
  font-size: 12.5px;
  color: #9CA3AF;
  margin-top: 14px;
}

.aim-v2-docs__cat { margin-top: 26px; }
.aim-v2-docs__cat-h {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
  padding-bottom: 7px;
  border-bottom: 2px solid #2E7D32;
}
.aim-v2-docs__cat-h i { font-size: 15px; color: #2E7D32; }
.aim-v2-docs__cat-h h3 {
  margin: 0;
  font-size: 15.5px;
  font-weight: 600;
  color: #2E7D32;
  letter-spacing: -0.01em;
}
.aim-v2-docs__cat-count { font-size: 13px; color: #9CA3AF; }

.aim-v2-docs__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 16px;
  margin-top: 16px;
}

.aim-v2-docs__card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(0,0,0,.04);
  transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease;
  overflow: hidden;
}
.aim-v2-docs__card:hover,
.aim-v2-docs__card:focus-within {
  box-shadow: 0 4px 12px rgba(0,0,0,.08);
  transform: translateY(-2px);
  border-color: #C8E6C9;
}
.aim-v2-docs__card.is-hidden { display: none; }
.aim-v2-docs__card.is-destacado { border-color: #FFCC80; }

.aim-v2-docs__cover {
  position: relative;
  aspect-ratio: 4 / 3;
  display: grid;
  place-items: center;
  border-bottom: 1px solid #F0F1F2;
  overflow: hidden;
}
.aim-v2-docs__cover-icon {
  font-size: 40px;
  opacity: .85;
}
.aim-v2-docs__cover-img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.aim-v2-docs__cover-ext {
  position: absolute;
  bottom: 9px;
  right: 11px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  opacity: .7;
}
.aim-v2-docs__badges {
  position: absolute;
  top: 9px;
  left: 9px;
  display: flex;
  flex-direction: column;
  gap: 5px;
  align-items: flex-start;
}
.aim-v2-docs__badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #FFF;
  border-radius: 999px;
  padding: 3px 9px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .03em;
}
.aim-v2-docs__badge--destacado { background: #E65100; }
.aim-v2-docs__badge--nuevo { background: #2E7D32; text-transform: uppercase; }
.aim-v2-docs__badge i { font-size: 10px; }

.aim-v2-docs__body-card {
  padding: 13px 14px 0;
  flex: 1 1 auto;
}
.aim-v2-docs__titulo {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: 14px;
  font-weight: 600;
  color: #1F2937;
  text-decoration: none;
  line-height: 1.4;
  text-wrap: pretty;
}
.aim-v2-docs__stretch::after {
  content: "";
  position: absolute;
  inset: 0;
}
.aim-v2-docs__meta {
  display: flex;
  align-items: center;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.aim-v2-docs__chip-tipo {
  display: inline-block;
  border-radius: 4px;
  padding: 2px 7px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .03em;
}
.aim-v2-docs__meta-fecha { font-size: 12px; color: #9CA3AF; }
.aim-v2-docs__pie {
  padding: 12px 14px 13px;
  margin-top: 12px;
  border-top: 1px solid #F3F4F6;
}
.aim-v2-docs__pie-cta {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  font-weight: 600;
  color: #2E7D32;
}
.aim-v2-docs__pie-cta i { font-size: 13px; }

.aim-v2-documentos.is-vista-lista .aim-v2-docs__grid {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.aim-v2-documentos.is-vista-lista .aim-v2-docs__card {
  flex-direction: row;
  align-items: center;
  gap: 14px;
  padding: 10px 14px;
}
.aim-v2-documentos.is-vista-lista .aim-v2-docs__card:hover { transform: none; }
.aim-v2-documentos.is-vista-lista .aim-v2-docs__cover {
  width: 52px;
  height: 52px;
  aspect-ratio: 1 / 1;
  border-radius: 9px;
  border-bottom: 0;
  flex: none;
}
.aim-v2-documentos.is-vista-lista .aim-v2-docs__cover-icon { font-size: 22px; }
.aim-v2-documentos.is-vista-lista .aim-v2-docs__cover-ext,
.aim-v2-documentos.is-vista-lista .aim-v2-docs__badges { display: none; }
.aim-v2-documentos.is-vista-lista .aim-v2-docs__body-card {
  flex: 1 1 auto;
  padding: 0;
  min-width: 0;
}
.aim-v2-documentos.is-vista-lista .aim-v2-docs__titulo {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.aim-v2-documentos.is-vista-lista .aim-v2-docs__meta { margin-top: 4px; }
.aim-v2-documentos.is-vista-lista .aim-v2-docs__pie {
  padding: 0;
  margin: 0;
  border: 0;
  flex: none;
}

.aim-v2-docs__empty {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: #FAFAFA;
  border-left: 4px solid #2E7D32;
  border-radius: 0 10px 10px 0;
  padding: 22px 24px;
  margin-top: 22px;
}
.aim-v2-docs__empty > i {
  font-size: 20px;
  color: #2E7D32;
  flex: none;
  margin-top: 2px;
}
.aim-v2-docs__empty-t {
  font-size: 15px;
  font-weight: 600;
  color: #1F2937;
  line-height: 1.45;
  text-wrap: pretty;
}
.aim-v2-docs__empty-p {
  margin: 6px 0 0;
  font-size: 13.5px;
  color: #4B5563;
  line-height: 1.6;
  max-width: 62ch;
  text-wrap: pretty;
}
.aim-v2-docs__empty-link {
  display: inline-block;
  margin-top: 12px;
  font-size: 13.5px;
  font-weight: 600;
  text-decoration: none;
  color: #2E7D32;
}
.aim-v2-docs__empty-link:hover { color: #1B5E20; text-decoration: underline; }

@media (max-width: 600px) {
  .aim-v2-docs__body { padding: 16px 18px 24px; }
  .aim-v2-docs__admin-bar { padding: 12px 18px; }
  .aim-v2-docs__grid {
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 10px;
  }
  .aim-v2-docs__toolbar { flex-wrap: wrap; }
  .aim-v2-docs__search { flex: 1 1 100%; }
}


/* ============================================================================
 * /MIS-COMUNICACIONES/ - Design mock 2026-08-10
 * Rediseño de los 3 bloques (listas opcionales / gestión / historial).
 * El helper _aim_render_listado se mantiene intacto y toma su look nuevo
 * de las reglas scoped bajo .aim-v2-comus al final de este bloque.
 * ============================================================================ */

.aim-v2-comus {
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  padding: 24px 24px 30px;
}

/* Banner de éxito tras submit */
.aim-v2-comus__banner {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: #E8F5E9;
  border: 1px solid #C8E6C9;
  border-radius: 10px;
  padding: 12px 16px;
  margin-bottom: 18px;
}
.aim-v2-comus__banner > i {
  font-size: 17px;
  color: #2E7D32;
  flex: none;
  margin-top: 1px;
}
.aim-v2-comus__banner > div {
  font-size: 14px;
  color: #33691E;
  line-height: 1.5;
  font-weight: 600;
}

/* Cabecera de sección con h3 verde subrayado 2px */
.aim-v2-comus__section-h {
  padding-bottom: 7px;
  border-bottom: 2px solid #2E7D32;
}
.aim-v2-comus__section-h--sep { margin-top: 34px; }
.aim-v2-comus__section-h h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 600;
  color: #2E7D32;
  letter-spacing: -0.01em;
}
.aim-v2-comus__intro {
  margin: 12px 0 0;
  font-size: 14px;
  color: #4B5563;
  line-height: 1.6;
  max-width: 70ch;
  text-wrap: pretty;
}

/* Listas opcionales — labels con checkbox verde */
.aim-v2-comus__form { margin-top: 14px; }
.aim-v2-comus__grupos {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.aim-v2-comus__grupo {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 10px;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease;
}
.aim-v2-comus__grupo:hover { border-color: #2E7D32; background: #F7FBF7; }
.aim-v2-comus__grupo:has(input:checked) {
  border-color: #2E7D32;
  background: #F1F8E9;
  box-shadow: inset 0 0 0 1px #2E7D32;
}
.aim-v2-comus__grupo input[type="checkbox"] {
  accent-color: #2E7D32;
  width: 18px;
  height: 18px;
  flex: none;
  margin-top: 2px;
  cursor: pointer;
}
.aim-v2-comus__grupo-body {
  flex: 1 1 auto;
  min-width: 0;
  display: block;
}
.aim-v2-comus__grupo-titulo {
  display: block;
  font-size: 15px;
  font-weight: 600;
  color: #1F2937;
  line-height: 1.4;
}
.aim-v2-comus__grupo-desc {
  display: block;
  margin-top: 4px;
  font-size: 13.5px;
  color: #4B5563;
  line-height: 1.55;
  text-wrap: pretty;
}
.aim-v2-comus__actions {
  margin-top: 18px;
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.aim-v2-comus__btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #2E7D32;
  color: #FFF;
  font-size: 14px;
  font-weight: 600;
  border: 0;
  border-radius: 8px;
  padding: 11px 20px;
  cursor: pointer;
  transition: background .15s ease;
}
.aim-v2-comus__btn-primary:hover { background: #1B5E20; }

/* Sección gestión — grid 2 cols de items fijos con icono FA verde */
.aim-v2-comus__gestion {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 10px 22px;
  margin-top: 14px;
}
.aim-v2-comus__gestion-item {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  padding: 9px 0;
}
.aim-v2-comus__gestion-item i {
  font-size: 15px;
  color: #2E7D32;
  flex: none;
  margin-top: 3px;
  width: 17px;
  text-align: center;
}
.aim-v2-comus__gestion-item span {
  font-size: 14px;
  color: #1F2937;
  line-height: 1.5;
  text-wrap: pretty;
}

/* Empty states (listas opcionales sin grupos, historial vacío) */
.aim-v2-comus__empty {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: #FAFAFA;
  border-left: 4px solid #2E7D32;
  border-radius: 0 10px 10px 0;
  padding: 20px 22px;
  margin-top: 14px;
}
.aim-v2-comus__empty > i {
  font-size: 20px;
  color: #2E7D32;
  flex: none;
  margin-top: 2px;
}
.aim-v2-comus__empty-t {
  font-size: 15px;
  font-weight: 600;
  color: #1F2937;
  line-height: 1.45;
  text-wrap: pretty;
}
.aim-v2-comus__empty-p {
  margin: 6px 0 0;
  font-size: 13.5px;
  color: #4B5563;
  line-height: 1.6;
  max-width: 62ch;
  text-wrap: pretty;
}

/* ============================================================================
 * Look Design del helper _aim_render_listado cuando vive dentro de
 * .aim-v2-comus__historial. El HTML del helper no se toca; sólo se
 * repintan sus clases (aim-table, aim-listado-*, etc.) para que casen
 * con el mock de Design (filtros con bordes suaves, tabla con th en
 * versalitas gris, badges de estado colorados).
 * ============================================================================ */

.aim-v2-comus__historial { margin-top: 14px; }

/* Reset de bordes del theme TT5 en tablas dentro del wrapper */
.aim-v2-comus th,
.aim-v2-comus td { border: 0; background: transparent; }

/* Filtros del listado */
.aim-v2-comus__historial .aim-listado-filters,
.aim-v2-comus__historial form.aim-listado-filtros {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.aim-v2-comus__historial input[type="search"],
.aim-v2-comus__historial input[type="text"],
.aim-v2-comus__historial input[type="date"],
.aim-v2-comus__historial select {
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  background: #FFF;
  font-family: inherit;
  font-size: 13.5px;
  color: #4B5563;
  padding: 10px 12px;
}
.aim-v2-comus__historial input[type="search"]:focus,
.aim-v2-comus__historial input[type="text"]:focus,
.aim-v2-comus__historial input[type="date"]:focus,
.aim-v2-comus__historial select:focus {
  outline: 2px solid #2E7D32;
  outline-offset: 2px;
  border-color: #2E7D32;
}
.aim-v2-comus__historial button,
.aim-v2-comus__historial input[type="submit"] {
  background: #2E7D32;
  color: #FFF;
  border: 0;
  border-radius: 8px;
  padding: 10px 16px;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
}
.aim-v2-comus__historial button:hover { background: #1B5E20; }

/* Tabla del listado
 * Nota: el helper _aim_render_listado emite <table class="aim-data-table">.
 * En data-tables.css la regla .aim-data-table thead th aplica fondo verde +
 * color:#FFF. Aquí subimos especificidad (.aim-v2-comus__historial
 * .aim-data-table thead th) para venir con el look Design v2 (thead blanco
 * con th en versalitas gris + underline verde).
 */
.aim-v2-comus__historial .aim-data-box {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  overflow: visible;
}
.aim-v2-comus__historial .aim-data-table {
  width: 100%;
  border: 0;
  border-radius: 0;
  overflow: visible;
  background: transparent;
  margin-bottom: 0;
  font-size: 13.5px;
}
.aim-v2-comus__historial .aim-data-table th,
.aim-v2-comus__historial .aim-data-table td {
  border: 0;
  background: transparent;
  padding: 11px 14px 11px 0;
}
.aim-v2-comus__historial .aim-data-table thead th {
  background: #FFFFFF;
  color: #4B5563;
  width: auto;
  text-align: left;
  padding: 10px 14px 9px 0;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .6px;
  text-transform: uppercase;
  border-bottom: 2px solid #2E7D32;
}
.aim-v2-comus__historial .aim-data-table thead th a,
.aim-v2-comus__historial .aim-data-table thead th a.aim-table-sort {
  color: #4B5563;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.aim-v2-comus__historial .aim-data-table thead th a:hover,
.aim-v2-comus__historial .aim-data-table thead th a.aim-table-sort:hover { color: #2E7D32; }
.aim-v2-comus__historial .aim-data-table tbody tr { border-top: 1px solid #F3F4F6; }
.aim-v2-comus__historial .aim-data-table tbody tr:hover { background: #F9FAFB; }
.aim-v2-comus__historial .aim-data-table tbody td {
  color: #1F2937;
  vertical-align: top;
  line-height: 1.5;
}
.aim-v2-comus__historial .aim-data-table tbody td:first-child {
  color: #1F2937;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

/* Badges de estado en el historial (Enviado / Programado / Cancelado…).
 * El helper emite un <span> con clase segun estado — cubrimos las mas
 * comunes por texto contenido (aim-badge-*). Si aparecen estados no
 * cubiertos, el badge cae en el neutral (gris) por defecto. */
.aim-v2-comus__historial .aim-badge,
.aim-v2-comus__historial .aim-table-meta > span {
  display: inline-block;
  border-radius: 4px;
  padding: 3px 9px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .02em;
  background: #F3F4F6;
  color: #4B5563;
}
.aim-v2-comus__historial .aim-badge-completed,
.aim-v2-comus__historial .aim-badge-ok,
.aim-v2-comus__historial .aim-badge-sent { background: #E8F5E9; color: #1B5E20; }
.aim-v2-comus__historial .aim-badge-info,
.aim-v2-comus__historial .aim-badge-scheduled { background: #E3F2FD; color: #0D47A1; }
.aim-v2-comus__historial .aim-badge-danger,
.aim-v2-comus__historial .aim-badge-cancelled,
.aim-v2-comus__historial .aim-badge-error { background: #FDECEA; color: #C62828; }

/* Paginación del listado (helper emite .aim-pagination-wrap con
 * .aim-pagination-meta y <nav.aim-pagination><ul><li><a>) */
.aim-v2-comus__historial .aim-pagination-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #F3F4F6;
  flex-wrap: wrap;
}
.aim-v2-comus__historial .aim-pagination-meta {
  margin: 0;
  font-size: 13px;
  color: #6B7280;
}
.aim-v2-comus__historial .aim-pagination ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 4px;
}
.aim-v2-comus__historial .aim-pagination a,
.aim-v2-comus__historial .aim-pagination span {
  display: inline-flex;
  align-items: center;
  padding: 6px 11px;
  font-size: 13px;
  font-weight: 600;
  color: #2E7D32;
  text-decoration: none;
  border-radius: 6px;
}
.aim-v2-comus__historial .aim-pagination a:hover { background: #F1F8E9; }
.aim-v2-comus__historial .aim-pagination .aim-pagination-current,
.aim-v2-comus__historial .aim-pagination span[aria-current="page"] {
  background: #2E7D32;
  color: #FFF;
}

/* Responsive */
@media (max-width: 600px) {
  .aim-v2-comus { padding: 20px 18px 24px; }
  .aim-v2-comus__gestion { grid-template-columns: 1fr; }
  .aim-v2-comus__historial .aim-listado-filters,
  .aim-v2-comus__historial form.aim-listado-filtros { flex-direction: column; align-items: stretch; }
  .aim-v2-comus__historial .aim-listado-filters > *,
  .aim-v2-comus__historial form.aim-listado-filtros > * { width: 100%; }
  .aim-v2-comus__historial .aim-data-box { overflow-x: auto; }
  .aim-v2-comus__historial .aim-pagination-wrap { flex-direction: column; align-items: stretch; }
}


/* ============================================================================
 * /MIS-PAGOS/ - Design mock 2026-08-10
 *
 * Wrapper .aim-v2-pagos + sumario (Pagado en año / Pendiente / total) +
 * historial (helper _aim_render_listado con look Design scoped bajo
 * .aim-v2-pagos__historial .aim-data-table para vencer a data-tables.css).
 * ============================================================================ */

.aim-v2-pagos {
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  padding: 22px 24px 30px;
}

/* --- Sumario superior: franja, no tarjetas (Design 2026-08-10) ---------
 * Estructura:
 *   [Pagado en 2026  1.234,00 €] [Pendiente  25,00 €]      12 pagos
 * "Pendiente" solo se renderiza cuando hay pendientes: cero permanente
 * entrena a ignorar la franja cuando sí importa.
 */
.aim-v2-pagos__sumario {
  display: flex;
  align-items: baseline;
  gap: 22px;
  flex-wrap: wrap;
  padding: 0 0 16px;
  margin-bottom: 18px;
  border-bottom: 1px solid #F3F4F6;
}
.aim-v2-pagos__sumario-anyo,
.aim-v2-pagos__sumario-pendiente {
  display: inline-flex;
  align-items: baseline;
  gap: 10px;
}
.aim-v2-pagos__sumario-label {
  font-size: 12.5px;
  color: #6B7280;
  font-weight: 600;
  letter-spacing: .01em;
}
.aim-v2-pagos__sumario-pendiente .aim-v2-pagos__sumario-label { color: #A04A00; }
.aim-v2-pagos__sumario-cifra {
  font-size: 19px;
  font-weight: 700;
  letter-spacing: -0.3px;
  font-variant-numeric: tabular-nums;
  color: #1B5E20;
}
.aim-v2-pagos__sumario-pendiente .aim-v2-pagos__sumario-cifra { color: #E65100; }
.aim-v2-pagos__sumario-n {
  font-size: 12.5px;
  color: #9CA3AF;
  margin-left: auto;
  font-variant-numeric: tabular-nums;
}

/* --- Empty state (sin ningún pago) -------------------------------------- */
.aim-v2-pagos__empty {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: #FAFAFA;
  border-left: 4px solid #2E7D32;
  border-radius: 0 10px 10px 0;
  padding: 20px 22px;
}
.aim-v2-pagos__empty > i {
  font-size: 20px;
  color: #2E7D32;
  flex: none;
  margin-top: 2px;
}
.aim-v2-pagos__empty-t {
  font-size: 15px;
  font-weight: 600;
  color: #1F2937;
  line-height: 1.45;
  text-wrap: pretty;
}
.aim-v2-pagos__empty-p {
  margin: 6px 0 0;
  font-size: 13.5px;
  color: #4B5563;
  line-height: 1.6;
  max-width: 62ch;
  text-wrap: pretty;
}

/* --- Historial (helper _aim_render_listado scoped) ---------------------- */
/* Bump specificidad para vencer a data-tables.css que pone
 * .aim-data-table thead th con background verde + color blanco. */
.aim-v2-pagos__historial { margin-top: 4px; }

/* Filtros: helper emite <form class="aim-filters"> con .aim-filter (por
 * input, con .aim-label + input) y .aim-filter-actions (.aim-btn +
 * .aim-link-soft). */
.aim-v2-pagos__historial .aim-filters {
  display: flex;
  gap: 12px;
  align-items: flex-end;
  flex-wrap: wrap;
  margin-bottom: 16px;
  padding: 14px 16px;
  background: #FAFAFA;
  border: 1px solid #F3F4F6;
  border-radius: 10px;
}
.aim-v2-pagos__historial .aim-filter {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
}
.aim-v2-pagos__historial .aim-filter:has(input[type="search"]),
.aim-v2-pagos__historial .aim-filter:has(input[type="text"]) { flex: 1 1 220px; }
.aim-v2-pagos__historial .aim-label {
  font-size: 12px;
  color: #6B7280;
  font-weight: 600;
  letter-spacing: .02em;
  text-transform: uppercase;
}
.aim-v2-pagos__historial input[type="search"],
.aim-v2-pagos__historial input[type="text"],
.aim-v2-pagos__historial input[type="date"],
.aim-v2-pagos__historial select {
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  background: #FFF;
  font-family: inherit;
  font-size: 13.5px;
  color: #1F2937;
  padding: 9px 12px;
  min-width: 0;
}
.aim-v2-pagos__historial input:focus,
.aim-v2-pagos__historial select:focus {
  outline: 2px solid #2E7D32;
  outline-offset: 2px;
  border-color: #2E7D32;
}
.aim-v2-pagos__historial .aim-filter-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}
.aim-v2-pagos__historial .aim-btn,
.aim-v2-pagos__historial button.aim-btn,
.aim-v2-pagos__historial .aim-btn--primary {
  display: inline-flex;
  align-items: center;
  background: #2E7D32;
  color: #FFF;
  border: 0;
  border-radius: 8px;
  padding: 10px 18px;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: background .15s ease;
}
.aim-v2-pagos__historial .aim-btn:hover,
.aim-v2-pagos__historial .aim-btn--primary:hover { background: #1B5E20; }
.aim-v2-pagos__historial .aim-btn--sm { padding: 8px 14px; font-size: 13px; }
.aim-v2-pagos__historial .aim-link-soft {
  color: #6B7280;
  font-size: 13px;
  text-decoration: underline;
  text-decoration-color: #D1D5DB;
  text-underline-offset: 3px;
}
.aim-v2-pagos__historial .aim-link-soft:hover { color: #2E7D32; text-decoration-color: #2E7D32; }

.aim-v2-pagos__historial .aim-data-box {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  overflow: visible;
}
.aim-v2-pagos__historial .aim-data-table {
  width: 100%;
  border: 0;
  border-radius: 0;
  overflow: visible;
  background: transparent;
  margin-bottom: 0;
  font-size: 13.5px;
}
.aim-v2-pagos__historial .aim-data-table th,
.aim-v2-pagos__historial .aim-data-table td {
  border: 0;
  background: transparent;
  padding: 12px 14px 12px 0;
}
.aim-v2-pagos__historial .aim-data-table thead th {
  background: #FFFFFF;
  color: #4B5563;
  width: auto;
  text-align: left;
  padding: 10px 14px 9px 0;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .6px;
  text-transform: uppercase;
  border-bottom: 2px solid #2E7D32;
}
.aim-v2-pagos__historial .aim-data-table thead th a,
.aim-v2-pagos__historial .aim-data-table thead th a.aim-table-sort {
  color: #4B5563;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.aim-v2-pagos__historial .aim-data-table thead th a:hover,
.aim-v2-pagos__historial .aim-data-table thead th a.aim-table-sort:hover { color: #2E7D32; }
.aim-v2-pagos__historial .aim-data-table tbody tr { border-top: 1px solid #F3F4F6; }
.aim-v2-pagos__historial .aim-data-table tbody tr:hover { background: #F9FAFB; }
.aim-v2-pagos__historial .aim-data-table tbody td {
  color: #1F2937;
  vertical-align: top;
  line-height: 1.5;
}
.aim-v2-pagos__historial .aim-data-table tbody td:first-child {
  color: #6B7280;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.aim-v2-pagos__historial .aim-data-table .aim-table-amount {
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  color: #1F2937;
}

/* Filas canceladas / fallidas: grayed-out con strikethrough en el importe */
/* Incidencia (Failed / Chargeback): exigen acción. Contraste completo,
 * filete rojo a la izquierda de la fila (Design 2026-08-10). */
.aim-v2-pagos__historial .aim-data-table tr.aim-row-incidencia td {
  color: #1F2937;
}
.aim-v2-pagos__historial .aim-data-table tr.aim-row-incidencia td:first-child {
  border-left: 3px solid #C62828;
  padding-left: 11px;
}
.aim-v2-pagos__historial .aim-data-table tr.aim-row-incidencia:hover { background: #FDF2F2; }

/* Anulación (Cancelled / Refunded): no pasó nada o se deshizo. Se
 * atenúan. Importe tachado, texto gris. */
.aim-v2-pagos__historial .aim-data-table tr.aim-row-anulada td { color: #9CA3AF; }
.aim-v2-pagos__historial .aim-data-table tr.aim-row-anulada td.aim-table-amount { text-decoration: line-through; }
.aim-v2-pagos__historial .aim-data-table tr.aim-row-anulada:hover { background: #FAFAFA; }

/* Compat: mantener aim-row-cancelled (modo simple del shortcode con
 * [aim_pagos limite="N"] en portada /area-socio/) con el look de
 * anulada — el CSS legacy en area-socio.css ya la trata así. */
.aim-v2-pagos__historial .aim-data-table tr.aim-row-cancelled td { color: #9CA3AF; }
.aim-v2-pagos__historial .aim-data-table tr.aim-row-cancelled td.aim-table-amount { text-decoration: line-through; }

/* --- Badges de estado (por clase que emite _aim_estado_badge) ----------- */
.aim-v2-pagos__historial .aim-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border-radius: 4px;
  padding: 3px 9px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .02em;
  background: #F3F4F6;
  color: #4B5563;
  line-height: 1.4;
}
.aim-v2-pagos__historial .aim-badge-completed { background: #E8F5E9; color: #1B5E20; }
.aim-v2-pagos__historial .aim-badge-pending   { background: #FFF3E0; color: #E65100; }
.aim-v2-pagos__historial .aim-badge-cancelled,
.aim-v2-pagos__historial .aim-badge-failed,
.aim-v2-pagos__historial .aim-badge-chargeback { background: #FDECEA; color: #C62828; }
.aim-v2-pagos__historial .aim-badge-refunded  { background: #F3F4F6; color: #616161; }

/* --- Link "Descargar recibo" ------------------------------------------- */
.aim-v2-pagos__historial .aim-table-action {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #2E7D32;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  padding: 5px 10px;
  border-radius: 6px;
  transition: background .15s ease;
}
.aim-v2-pagos__historial .aim-table-action:hover { background: #E8F5E9; }
.aim-v2-pagos__historial .aim-table-action i { font-size: 12px; }

/* Guion cuando no hay recibo descargable (Pending/Failed/Cancelled/
 * Chargeback). Decisión Design 2026-08-10: no ofrecer link a un PDF
 * que no existe. */
.aim-v2-pagos__historial .aim-table-nohay {
  display: inline-block;
  color: #9CA3AF;
  font-size: 14px;
  padding: 5px 10px;
}

/* --- Empty del listado (filtros sin resultados) ------------------------- */
.aim-v2-pagos__historial .aim-banner {
  background: #FAFAFA;
  border-left: 4px solid #E5E7EB;
  border-radius: 0 8px 8px 0;
  padding: 16px 18px;
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.aim-v2-pagos__historial .aim-banner-icon { font-size: 18px; }
.aim-v2-pagos__historial .aim-banner-body p { margin: 0; color: #4B5563; font-size: 14px; }

/* --- Paginación --------------------------------------------------------- */
.aim-v2-pagos__historial .aim-pagination-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #F3F4F6;
  flex-wrap: wrap;
}
.aim-v2-pagos__historial .aim-pagination-meta {
  margin: 0;
  font-size: 13px;
  color: #6B7280;
}
.aim-v2-pagos__historial .aim-pagination ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 4px;
}
.aim-v2-pagos__historial .aim-pagination a,
.aim-v2-pagos__historial .aim-pagination span {
  display: inline-flex;
  align-items: center;
  padding: 6px 11px;
  font-size: 13px;
  font-weight: 600;
  color: #2E7D32;
  text-decoration: none;
  border-radius: 6px;
}
.aim-v2-pagos__historial .aim-pagination a:hover { background: #F1F8E9; }
.aim-v2-pagos__historial .aim-pagination .aim-pagination-current,
.aim-v2-pagos__historial .aim-pagination span[aria-current="page"] {
  background: #2E7D32;
  color: #FFF;
}

/* --- Responsive < 600px ------------------------------------------------- */
@media (max-width: 600px) {
  .aim-v2-pagos { padding: 18px 16px 22px; }
  .aim-v2-pagos__sumario { gap: 10px; }
  .aim-v2-pagos__sumario-total { width: 100%; margin-left: 0; }
  .aim-v2-pagos__historial .aim-filters { flex-direction: column; align-items: stretch; }
  .aim-v2-pagos__historial .aim-filter { width: 100%; }
  .aim-v2-pagos__historial .aim-filter-actions { flex-direction: column; align-items: stretch; }
  .aim-v2-pagos__historial .aim-filter-actions .aim-btn { justify-content: center; }
  .aim-v2-pagos__historial .aim-data-box { overflow-x: auto; }
  .aim-v2-pagos__historial .aim-pagination-wrap { flex-direction: column; align-items: stretch; }
}


/* ============================================================================
 * /ENCUESTAS-Y-VOTACIONES/ - Design mock 2026-08-10 (v2)
 *
 * Wrapper .aim-v2-vot con 3 sub-componentes:
 *   1. Cabecera 3 scards (Mis votaciones / Voto secreto / Verificar)
 *   2. Chips filtro sticky
 *   3. Lista de cards de encuesta (con hasta 5 estados) + bloque asamblea
 *
 * Sobrecarga el CSS legacy del <style> inline del shortcode. Los
 * selectores legacy (.aim-enc-card, .aim-vot-chip, .aim-vot-scard,
 * data-*) siguen en el DOM porque el JS los usa como contrato.
 * ============================================================================ */

.aim-v2-vot {
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  padding: 22px 24px 30px;
  color: #1F2937;
}
.aim-v2-vot * { box-sizing: border-box; }

/* --- Cabecera 3 scards -------------------------------------------------- */
.aim-v2-vot .aim-vot-summary {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin: 0 0 22px;
}
.aim-v2-vot .aim-vot-scard {
  display: flex;
  flex-direction: column;
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  padding: 16px 18px;
  box-shadow: 0 1px 3px rgba(0,0,0,.04);
  text-decoration: none;
  color: inherit;
  transition: border-color .15s ease, box-shadow .15s ease;
  position: relative;
}
.aim-v2-vot a.aim-vot-scard:hover,
.aim-v2-vot details.aim-vot-scard[open] {
  border-color: #C8E6C9;
  box-shadow: 0 4px 12px rgba(0,0,0,.08);
}
.aim-v2-vot .aim-vot-scard--action { border-left: 3px solid #2E7D32; }
.aim-v2-vot .aim-vot-scard--action:hover { border-left-color: #1B5E20; }
.aim-v2-vot .aim-vot-scard--verify {
  background: #E8F5E9;
  border-color: #C8E6C9;
}
.aim-v2-vot .aim-vot-scard--verify:hover { border-color: #2E7D32; }
.aim-v2-vot .aim-vot-scard__head {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0;
}
.aim-v2-vot .aim-vot-scard__icon {
  font-size: 16px;
  color: #2E7D32;
  flex: none;
}
.aim-v2-vot .aim-vot-scard--verify .aim-vot-scard__icon { color: #1B5E20; }
.aim-v2-vot .aim-vot-scard__label {
  font-size: 11px;
  font-weight: 700;
  color: #6B7280;
  letter-spacing: 1.1px;
  text-transform: uppercase;
}
.aim-v2-vot .aim-vot-scard--verify .aim-vot-scard__label { color: #4B5563; }
.aim-v2-vot .aim-vot-scard__bubble {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 20px;
  padding: 0 7px;
  background: #C62828;
  color: #FFF;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
}
.aim-v2-vot .aim-vot-scard__value {
  font-size: 16px;
  font-weight: 600;
  color: #1F2937;
  margin-top: 10px;
  line-height: 1.4;
  text-wrap: pretty;
  flex: 1 1 auto;
}
.aim-v2-vot .aim-vot-scard--verify .aim-vot-scard__value { font-size: 14px; font-weight: 400; }
.aim-v2-vot .aim-vot-scard__meta {
  font-size: 12.5px;
  color: #6B7280;
  margin-top: 4px;
  line-height: 1.5;
  text-wrap: pretty;
}
.aim-v2-vot .aim-vot-scard--verify .aim-vot-scard__meta { color: #4B5563; }
.aim-v2-vot .aim-vot-scard__cta {
  font-size: 13px;
  font-weight: 600;
  color: #2E7D32;
  margin-top: 12px;
  letter-spacing: 0.2px;
}
.aim-v2-vot .aim-vot-scard--verify .aim-vot-scard__cta { color: #1B5E20; }

/* Details/summary de "Voto secreto" */
.aim-v2-vot .aim-vot-scard details {
  border: 0;
  padding: 0;
  margin: 0;
}
.aim-v2-vot .aim-vot-scard details > summary {
  list-style: none;
  cursor: pointer;
}
.aim-v2-vot .aim-vot-scard details > summary::-webkit-details-marker { display: none; }
.aim-v2-vot .aim-vot-scard__expand {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #F0F1F2;
  font-size: 13.5px;
  color: #4B5563;
  line-height: 1.6;
}
.aim-v2-vot .aim-vot-scard__expand p { margin: 0 0 10px; }
.aim-v2-vot .aim-vot-scard__expand p:last-child { margin-bottom: 0; }
.aim-v2-vot .aim-vot-scard__expand strong { font-weight: 700; color: #1F2937; }
.aim-v2-vot .aim-vot-scard__expand ul {
  margin: 9px 0 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.aim-v2-vot .aim-vot-scard__expand ul + p { margin-top: 12px; }
.aim-v2-vot .aim-vot-scard__expand li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.aim-v2-vot .aim-vot-scard__expand li i {
  font-size: 14px;
  color: #2E7D32;
  flex: none;
  margin-top: 3px;
}

/* --- Chips filtro ------------------------------------------------------- */
.aim-v2-vot .aim-vot-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 18px;
  padding: 0;
  position: static;
  background: transparent;
}
.aim-v2-vot .aim-vot-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  color: #4B5563;
  cursor: pointer;
  text-decoration: none;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.aim-v2-vot .aim-vot-chip:hover:not(.is-active):not(.is-disabled) {
  background: #E8F5E9;
  border-color: #A5D6A7;
  color: #1B5E20;
}
.aim-v2-vot .aim-vot-chip.is-active {
  background: #2E7D32;
  border-color: #2E7D32;
  color: #FFF;
}
.aim-v2-vot .aim-vot-chip.is-disabled {
  opacity: .45;
  cursor: not-allowed;
}
.aim-v2-vot .aim-vot-chip__n {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 18px;
  padding: 0 6px;
  background: rgba(0,0,0,.06);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
}
.aim-v2-vot .aim-vot-chip.is-active .aim-vot-chip__n {
  background: rgba(255,255,255,.22);
}

/* --- Lista de cards ----------------------------------------------------- */
.aim-v2-vot #aim-vot-lista {
  margin-top: 20px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* Bloque asamblea */
.aim-v2-vot .aim-vot-asamblea {
  background: #F1F8F1;
  border: 1px solid #C8E6C9;
  border-left: 4px solid #2E7D32;
  border-radius: 10px;
  padding: 16px 18px;
  margin: 0;
}
.aim-v2-vot .aim-vot-asamblea__head {
  display: flex;
  align-items: center;
  gap: 9px;
}
.aim-v2-vot .aim-vot-asamblea__head i {
  font-size: 15px;
  color: #1B5E20;
  flex: none;
}
.aim-v2-vot .aim-vot-asamblea__head-label {
  font-size: 11px;
  font-weight: 700;
  color: #1B5E20;
  letter-spacing: 1.1px;
  text-transform: uppercase;
}
.aim-v2-vot .aim-vot-asamblea__titulo {
  margin: 9px 0 0;
  font-size: 18px;
  font-weight: 700;
  color: #1F2937;
  letter-spacing: -0.2px;
  text-wrap: pretty;
}
.aim-v2-vot .aim-vot-asamblea__orden {
  font-size: 13px;
  color: #4B5563;
  margin-top: 5px;
}
.aim-v2-vot .aim-vot-asamblea__cards {
  margin-top: 14px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Card de encuesta */
.aim-v2-vot .aim-enc-card {
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  padding: 18px 20px;
  margin: 0;
  box-shadow: 0 1px 3px rgba(0,0,0,.03);
}
.aim-v2-vot .aim-enc-card__head-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin: 0 0 4px;
}
.aim-v2-vot .aim-enc-card__badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  line-height: 1.3;
}
.aim-v2-vot .aim-enc-card__badge--pendiente         { background: #FFF3E0; color: #E65100; }
.aim-v2-vot .aim-enc-card__badge--votado            { background: #E8F5E9; color: #1B5E20; }
.aim-v2-vot .aim-enc-card__badge--cerrada-votada    { background: #E0F2F1; color: #00695C; }
.aim-v2-vot .aim-enc-card__badge--cerrada-no-votada { background: #ECEFF1; color: #546E7A; }
.aim-v2-vot .aim-enc-card__badge--programada        { background: #E3F2FD; color: #0D47A1; }
.aim-v2-vot .aim-enc-card__nat {
  display: inline-flex;
  align-items: center;
  padding: 3px 9px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.3px;
  line-height: 1.4;
}
.aim-v2-vot .aim-enc-card__sinquorum {
  display: inline-flex;
  align-items: center;
  padding: 3px 9px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  background: #FFEBEE;
  color: #B71C1C;
}
.aim-v2-vot .aim-enc-card__titulo {
  margin: 11px 0 0;
  font-size: 17px;
  font-weight: 600;
  color: #1F2937;
  letter-spacing: -0.2px;
  line-height: 1.4;
  text-wrap: pretty;
}
.aim-v2-vot .aim-enc-card__meta {
  font-size: 13px;
  color: #6B7280;
  margin: 5px 0 0;
}
.aim-v2-vot .aim-enc-card__anatomia {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}
.aim-v2-vot .aim-enc-card__anatomia-chip {
  display: inline-flex;
  align-items: center;
  padding: 3px 9px;
  border-radius: 4px;
  font-size: 11.5px;
  font-weight: 600;
  color: #4B5563;
  background: #F3F4F6;
  letter-spacing: 0.1px;
}
.aim-v2-vot .aim-v2-enc-chip--vinc {
  background: #E8F5E9;
  color: #1B5E20;
}
.aim-v2-vot .aim-v2-enc-chip--cons {
  background: #EEF3F0;
  color: #4B5563;
}
.aim-v2-vot .aim-enc-card__desc {
  margin: 12px 0 0;
  font-size: 14px;
  color: #4B5563;
  line-height: 1.55;
  text-wrap: pretty;
}
.aim-v2-vot .aim-enc-card__disclaimer {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 14px 0 0;
  padding: 11px 14px;
  background: #FFF8E1;
  border: 1px solid #FFE082;
  border-radius: 8px;
  color: #6B4D00;
}
.aim-v2-vot .aim-enc-card__disclaimer i {
  font-size: 14px;
  color: #6B4D00;
  flex: none;
  margin-top: 2px;
}
.aim-v2-vot .aim-enc-card__disclaimer span {
  font-size: 13px;
  line-height: 1.55;
  text-wrap: pretty;
}

/* Form de votación (opciones + botón + msg) */
.aim-v2-vot .aim-enc-form {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #F0F1F2;
}
.aim-v2-vot .aim-enc-form__opciones {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.aim-v2-vot .aim-enc-form__opciones li {
  padding: 0;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  transition: background .15s ease, border-color .15s ease;
  cursor: pointer;
}
.aim-v2-vot .aim-enc-form__opciones li:hover { background: #F8FAF8; border-color: #C8E6C9; }
.aim-v2-vot .aim-enc-form__opciones li:has(input:checked) {
  background: #F1F8E9;
  border-color: #2E7D32;
  box-shadow: inset 0 0 0 1px #2E7D32;
}
.aim-v2-vot .aim-enc-form__opciones li.is-blanco {
  border-style: dashed;
}
.aim-v2-vot .aim-enc-form__opciones label {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  padding: 12px 14px;
  cursor: pointer;
  margin: 0;
}
.aim-v2-vot .aim-enc-form__opciones input {
  accent-color: #2E7D32;
  width: 17px;
  height: 17px;
  flex: none;
  margin-top: 2px;
  cursor: pointer;
}
.aim-v2-vot .aim-enc-form__opciones li span {
  font-size: 14px;
  color: #1F2937;
  line-height: 1.5;
  text-wrap: pretty;
}
.aim-v2-vot .aim-enc-form__opciones li.is-blanco span {
  font-style: italic;
  color: #556;
}
.aim-v2-vot .aim-enc-form__submit {
  margin-top: 14px;
  background: #2E7D32;
  color: #FFF;
  border: 0;
  border-radius: 8px;
  padding: 12px 22px;
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s ease;
}
.aim-v2-vot .aim-enc-form__submit:hover { background: #1B5E20; }
.aim-v2-vot .aim-enc-form__submit:disabled { background: #A5C8A5; cursor: wait; }
.aim-v2-vot .aim-enc-msg { margin-top: 10px; font-size: 13.5px; }
.aim-v2-vot .aim-enc-msg.ok  { color: #1B5E20; }
.aim-v2-vot .aim-enc-msg.err { color: #C62828; }

/* Puestos (elección por puesto): bloques con rótulo verde,
 * sin recuadro propio (decisión Design 2026-08-10). */
.aim-v2-vot .aim-enc-puestos { margin-top: 14px; padding-top: 14px; border-top: 1px solid #F0F1F2; }
.aim-v2-vot .aim-enc-puesto { margin-top: 16px; }
.aim-v2-vot .aim-enc-puesto:first-child { margin-top: 0; }
.aim-v2-vot .aim-enc-puesto__rotulo {
  font-size: 12px;
  font-weight: 700;
  color: #1B5E20;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding-bottom: 6px;
  border-bottom: 1.5px solid #C8E6C9;
  margin-bottom: 10px;
}

/* Resultados (encuesta cerrada) */
.aim-v2-vot .aim-enc-resultados {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #F0F1F2;
}
.aim-v2-vot .aim-enc-resultados__cabecera {
  font-size: 11.5px;
  font-weight: 700;
  color: #6B7280;
  letter-spacing: 1.1px;
  text-transform: uppercase;
}
.aim-v2-vot .aim-enc-resultados__lista {
  display: flex;
  flex-direction: column;
  gap: 11px;
  margin-top: 12px;
}
.aim-v2-vot .aim-enc-resultado__labelrow {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
}
.aim-v2-vot .aim-enc-resultado__label {
  font-size: 13.5px;
  color: #1F2937;
  line-height: 1.4;
}
.aim-v2-vot .aim-enc-resultado__label--blanco {
  font-style: italic;
  color: #556;
}
.aim-v2-vot .aim-enc-resultado__pct {
  font-size: 13.5px;
  font-weight: 700;
  color: #1F2937;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.aim-v2-vot .aim-enc-resultado__pista {
  height: 8px;
  border-radius: 999px;
  background: #EDEFED;
  margin-top: 5px;
  overflow: hidden;
}
.aim-v2-vot .aim-enc-resultado__barra {
  height: 100%;
  background: #2E7D32;
  border-radius: 999px;
  transition: width .3s ease;
}
.aim-v2-vot .aim-enc-resultado__barra--blanco { background: #90A4AE; }

/* Aviso sin quórum */
.aim-v2-vot .aim-enc-resultados__aviso-quorum {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 14px;
  padding: 11px 14px;
  background: #FFEBEE;
  border: 1px solid #FFCDD2;
  border-radius: 8px;
  color: #B71C1C;
}
.aim-v2-vot .aim-enc-resultados__aviso-quorum i { font-size: 15px; color: #B71C1C; flex: none; margin-top: 2px; }
.aim-v2-vot .aim-enc-resultados__aviso-quorum span { font-size: 13px; line-height: 1.55; text-wrap: pretty; }

/* Acciones al pie (urna / papeleta) */
.aim-v2-vot .aim-enc-card__actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 14px;
}
.aim-v2-vot .aim-enc-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 14px;
  background: #2E7D32;
  color: #FFF;
  border: 1px solid #2E7D32;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  transition: background .15s ease;
}
.aim-v2-vot .aim-enc-card__cta:hover { background: #1B5E20; border-color: #1B5E20; color: #FFF; }
.aim-v2-vot .aim-enc-card__cta--ghost {
  background: transparent;
  color: #2E7D32;
}
.aim-v2-vot .aim-enc-card__cta--ghost:hover { background: #E8F5E9; color: #1B5E20; }
.aim-v2-vot .aim-enc-card__cta--sm { padding: 6px 12px; font-size: 12.5px; }

/* Encuesta cerrada: mensaje al pie si aplica */
.aim-v2-vot .aim-enc-cerrada-msg {
  margin-top: 12px;
  padding: 10px 14px;
  background: #FFF8E1;
  border: 1px solid #FFE082;
  border-radius: 8px;
  color: #6B4D00;
  font-size: 13px;
  line-height: 1.5;
}

/* --- Empty states ------------------------------------------------------- */
.aim-v2-vot .aim-encuestas-empty {
  padding: 32px 24px;
  text-align: center;
  border: 1px dashed #E5E7EB;
  border-radius: 12px;
  background: #FAFAFA;
  margin-top: 8px;
}
.aim-v2-vot .aim-encuestas-empty p { margin: 0 0 8px; }
.aim-v2-vot .aim-encuestas-empty p:first-child {
  font-size: 15px;
  font-weight: 600;
  color: #1F2937;
  line-height: 1.5;
}
.aim-v2-vot .aim-encuestas-empty p:last-child {
  font-size: 13.5px;
  color: #6B7280;
  line-height: 1.6;
  max-width: 54ch;
  margin: 8px auto 0;
  text-wrap: pretty;
}
.aim-v2-vot .aim-vot-empty-filter {
  padding: 24px;
  text-align: center;
  color: #6B7280;
  font-size: 14px;
  border: 1px dashed #E5E7EB;
  border-radius: 10px;
  background: #FAFAFA;
  margin: 0;
}

/* --- Responsive < 720px ------------------------------------------------- */
@media (max-width: 720px) {
  .aim-v2-vot { padding: 18px 16px 24px; }
  .aim-v2-vot .aim-vot-summary { grid-template-columns: 1fr; }
  .aim-v2-vot .aim-vot-chips { overflow-x: auto; flex-wrap: nowrap; -webkit-overflow-scrolling: touch; }
  .aim-v2-vot .aim-vot-chip { white-space: nowrap; }
  .aim-v2-vot .aim-vot-asamblea { padding: 14px 14px 16px; }
  .aim-v2-vot .aim-enc-card { padding: 14px 14px 16px; }
}

/* --- Ajustes extra encuestas: mensajes de estado y cabecera resultados --- */
.aim-v2-vot .aim-enc-resultados__cabecera-nota {
  font-weight: 400;
  color: #9CA3AF;
  text-transform: none;
  letter-spacing: 0;
  margin-left: 4px;
}
.aim-v2-vot .aim-enc-msg {
  margin: 12px 0 0;
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 13.5px;
  line-height: 1.55;
}
.aim-v2-vot .aim-enc-msg.ok  { background: #E8F5E9; color: #1B5E20; }
.aim-v2-vot .aim-enc-msg.err { background: #FDECEA; color: #C62828; }
.aim-v2-vot .aim-enc-programada-msg {
  margin: 12px 0 0;
  padding: 10px 14px;
  background: #E3F2FD;
  color: #0D47A1;
  border-radius: 8px;
  font-size: 13.5px;
  line-height: 1.55;
}
.aim-v2-vot .aim-enc-cerrada-msg {
  margin: 12px 0 0;
  padding: 11px 14px;
  background: #FFF8E1;
  border: 1px solid #FFE082;
  border-radius: 8px;
  color: #6B4D00;
  font-size: 13px;
  line-height: 1.55;
}


/* ============================================================================
 * /MIS-EVENTOS/ - Design mock 2026-08-10
 *
 * Wrapper .aim-v2-eventos + sumario (n_proximos / n_anyo / n_total) +
 * historial (helper _aim_render_listado con look Design scoped bajo
 * .aim-v2-eventos__historial .aim-data-table para vencer a data-tables.css).
 * Patrón idéntico a .aim-v2-pagos.
 * ============================================================================ */

.aim-v2-eventos {
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  padding: 22px 24px 30px;
}

/* --- Sumario superior: franja (Design 2026-08-10) ----------------------- */
.aim-v2-eventos__sumario {
  display: flex;
  align-items: baseline;
  gap: 22px;
  flex-wrap: wrap;
  padding: 0 0 16px;
  margin-bottom: 18px;
  border-bottom: 1px solid #F3F4F6;
}
.aim-v2-eventos__sumario-item {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
}
.aim-v2-eventos__sumario-sep {
  width: 1px;
  height: 22px;
  background: #DCE4DC;
  flex: none;
}
.aim-v2-eventos__sumario-cifra {
  font-size: 19px;
  font-weight: 700;
  letter-spacing: -0.3px;
  font-variant-numeric: tabular-nums;
  color: #1B5E20;
}
.aim-v2-eventos__sumario-cifra--neutra { color: #1F2937; }
.aim-v2-eventos__sumario-label {
  font-size: 12.5px;
  color: #4B5563;
  font-weight: 600;
  letter-spacing: .01em;
}
.aim-v2-eventos__sumario-total {
  font-size: 12.5px;
  color: #9CA3AF;
  margin-left: auto;
  font-variant-numeric: tabular-nums;
}

/* --- Empty state (sin ninguna inscripción) ------------------------------ */
.aim-v2-eventos__empty {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: #FAFAFA;
  border-left: 4px solid #2E7D32;
  border-radius: 0 10px 10px 0;
  padding: 20px 22px;
}
.aim-v2-eventos__empty > i {
  font-size: 20px;
  color: #2E7D32;
  flex: none;
  margin-top: 2px;
}
.aim-v2-eventos__empty-t {
  font-size: 15px;
  font-weight: 600;
  color: #1F2937;
  line-height: 1.45;
  text-wrap: pretty;
}
.aim-v2-eventos__empty-p {
  margin: 6px 0 0;
  font-size: 13.5px;
  color: #4B5563;
  line-height: 1.6;
  max-width: 62ch;
  text-wrap: pretty;
}

/* --- Historial (helper _aim_render_listado scoped) ---------------------- */
/* Bump specificidad para vencer a data-tables.css que pone
 * .aim-data-table thead th con background verde + color blanco. */
.aim-v2-eventos__historial { margin-top: 4px; }

/* Filtros (mismo look que .aim-v2-pagos): panel gris claro con
 * labels versalitas + inputs con focus outline verde. */
.aim-v2-eventos__historial .aim-filters {
  display: flex;
  gap: 12px;
  align-items: flex-end;
  flex-wrap: wrap;
  margin-bottom: 16px;
  padding: 14px 16px;
  background: #FAFAFA;
  border: 1px solid #F3F4F6;
  border-radius: 10px;
}
.aim-v2-eventos__historial .aim-filter {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
}
.aim-v2-eventos__historial .aim-filter:has(input[type="search"]),
.aim-v2-eventos__historial .aim-filter:has(input[type="text"]) { flex: 1 1 220px; }
.aim-v2-eventos__historial .aim-label {
  font-size: 12px;
  color: #6B7280;
  font-weight: 600;
  letter-spacing: .02em;
  text-transform: uppercase;
}
.aim-v2-eventos__historial input[type="search"],
.aim-v2-eventos__historial input[type="text"],
.aim-v2-eventos__historial input[type="date"],
.aim-v2-eventos__historial select {
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  background: #FFF;
  font-family: inherit;
  font-size: 13.5px;
  color: #1F2937;
  padding: 9px 12px;
  min-width: 0;
}
.aim-v2-eventos__historial input:focus,
.aim-v2-eventos__historial select:focus {
  outline: 2px solid #2E7D32;
  outline-offset: 2px;
  border-color: #2E7D32;
}
.aim-v2-eventos__historial .aim-filter-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}
.aim-v2-eventos__historial .aim-btn,
.aim-v2-eventos__historial button.aim-btn,
.aim-v2-eventos__historial .aim-btn--primary {
  display: inline-flex;
  align-items: center;
  background: #2E7D32;
  color: #FFF;
  border: 0;
  border-radius: 8px;
  padding: 10px 18px;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: background .15s ease;
}
.aim-v2-eventos__historial .aim-btn:hover,
.aim-v2-eventos__historial .aim-btn--primary:hover { background: #1B5E20; }
.aim-v2-eventos__historial .aim-btn--sm { padding: 8px 14px; font-size: 13px; }
.aim-v2-eventos__historial .aim-link-soft {
  color: #6B7280;
  font-size: 13px;
  text-decoration: underline;
  text-decoration-color: #D1D5DB;
  text-underline-offset: 3px;
}
.aim-v2-eventos__historial .aim-link-soft:hover { color: #2E7D32; text-decoration-color: #2E7D32; }

/* Tabla del helper */
.aim-v2-eventos__historial .aim-data-box {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  overflow: visible;
}
.aim-v2-eventos__historial .aim-data-table {
  width: 100%;
  border: 0;
  border-radius: 0;
  overflow: visible;
  background: transparent;
  margin-bottom: 0;
  font-size: 13.5px;
}
.aim-v2-eventos__historial .aim-data-table th,
.aim-v2-eventos__historial .aim-data-table td {
  border: 0;
  background: transparent;
  padding: 12px 14px 12px 0;
}
.aim-v2-eventos__historial .aim-data-table thead th {
  background: #FFFFFF;
  color: #4B5563;
  width: auto;
  text-align: left;
  padding: 10px 14px 9px 0;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .6px;
  text-transform: uppercase;
  border-bottom: 2px solid #2E7D32;
}
.aim-v2-eventos__historial .aim-data-table thead th a,
.aim-v2-eventos__historial .aim-data-table thead th a.aim-table-sort {
  color: #4B5563;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.aim-v2-eventos__historial .aim-data-table thead th a:hover,
.aim-v2-eventos__historial .aim-data-table thead th a.aim-table-sort:hover { color: #2E7D32; }
.aim-v2-eventos__historial .aim-data-table tbody tr { border-top: 1px solid #F3F4F6; }
.aim-v2-eventos__historial .aim-data-table tbody tr:hover { background: #F9FAFB; }
.aim-v2-eventos__historial .aim-data-table tbody td {
  color: #1F2937;
  vertical-align: top;
  line-height: 1.5;
}

/* Título del evento (col Evento) — text-wrap para nombres largos */
.aim-v2-eventos__titulo {
  display: inline;
  color: #1F2937;
  font-weight: 500;
  text-wrap: pretty;
}

/* Fila apagada (No-show / Cancelled / Rejected) — gris + hover neutro */
.aim-v2-eventos__historial .aim-data-table tr.aim-row-apagada td { color: #9CA3AF; }
.aim-v2-eventos__historial .aim-data-table tr.aim-row-apagada .aim-v2-eventos__titulo { color: #9CA3AF; }
.aim-v2-eventos__historial .aim-data-table tr.aim-row-apagada:hover { background: #FAFAFA; }

/* --- Badges de estado (según _aim_evento_badge) ------------------------- */
.aim-v2-eventos__historial .aim-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border-radius: 4px;
  padding: 3px 9px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .02em;
  background: #F3F4F6;
  color: #4B5563;
  line-height: 1.4;
  white-space: nowrap;
}
.aim-v2-eventos__historial .aim-badge-registered  { background: #E3F2FD; color: #0D47A1; }
.aim-v2-eventos__historial .aim-badge-waitlist    { background: #FFF3E0; color: #E65100; }
.aim-v2-eventos__historial .aim-badge-awaiting    { background: #FFF3E0; color: #E65100; }
.aim-v2-eventos__historial .aim-badge-attended    { background: #E8F5E9; color: #1B5E20; }
.aim-v2-eventos__historial .aim-badge-no-show     { background: #F3F4F6; color: #616161; }
.aim-v2-eventos__historial .aim-badge-cancelled,
.aim-v2-eventos__historial .aim-badge-rejected    { background: #FDECEA; color: #C62828; }

/* Badge "Próximo" al lado del título (solo eventos futuros con estado activo) */
.aim-v2-eventos__historial .aim-badge-proximo {
  background: #E8F5E9;
  color: #1B5E20;
  border: 1px solid #C8E6C9;
  text-transform: uppercase;
  font-size: 10.5px;
  letter-spacing: .5px;
  margin-left: 6px;
  vertical-align: middle;
}

/* --- Link "Ver detalle" en col Detalle ---------------------------------- */
.aim-v2-eventos__historial .aim-table-action {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #2E7D32;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  padding: 5px 10px;
  border-radius: 6px;
  transition: background .15s ease;
  white-space: nowrap;
}
.aim-v2-eventos__historial .aim-table-action:hover { background: #E8F5E9; }
.aim-v2-eventos__historial .aim-td-action { text-align: right; }

/* --- Empty del listado (filtros sin resultados) ------------------------- */
.aim-v2-eventos__historial .aim-banner {
  background: #FAFAFA;
  border-left: 4px solid #E5E7EB;
  border-radius: 0 8px 8px 0;
  padding: 16px 18px;
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.aim-v2-eventos__historial .aim-banner-icon { font-size: 18px; }
.aim-v2-eventos__historial .aim-banner-body p { margin: 0; color: #4B5563; font-size: 14px; }

/* --- Paginación --------------------------------------------------------- */
.aim-v2-eventos__historial .aim-pagination-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #F3F4F6;
  flex-wrap: wrap;
}
.aim-v2-eventos__historial .aim-pagination-meta {
  margin: 0;
  font-size: 13px;
  color: #6B7280;
}
.aim-v2-eventos__historial .aim-pagination ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 4px;
}
.aim-v2-eventos__historial .aim-pagination a,
.aim-v2-eventos__historial .aim-pagination span {
  display: inline-flex;
  align-items: center;
  padding: 6px 11px;
  font-size: 13px;
  font-weight: 600;
  color: #2E7D32;
  text-decoration: none;
  border-radius: 6px;
}
.aim-v2-eventos__historial .aim-pagination a:hover { background: #F1F8E9; }
.aim-v2-eventos__historial .aim-pagination .aim-pagination-current,
.aim-v2-eventos__historial .aim-pagination span[aria-current="page"] {
  background: #2E7D32;
  color: #FFF;
}

/* --- Responsive < 600px ------------------------------------------------- */
@media (max-width: 600px) {
  .aim-v2-eventos { padding: 18px 16px 22px; }
  .aim-v2-eventos__sumario { gap: 12px; }
  .aim-v2-eventos__sumario-sep { display: none; }
  .aim-v2-eventos__sumario-total { width: 100%; margin-left: 0; }
  .aim-v2-eventos__historial .aim-filters { flex-direction: column; align-items: stretch; }
  .aim-v2-eventos__historial .aim-filter { width: 100%; }
  .aim-v2-eventos__historial .aim-filter-actions { flex-direction: column; align-items: stretch; }
  .aim-v2-eventos__historial .aim-filter-actions .aim-btn { justify-content: center; }
  .aim-v2-eventos__historial .aim-data-box { overflow-x: auto; }
  .aim-v2-eventos__historial .aim-pagination-wrap { flex-direction: column; align-items: stretch; }
}


/* ============================================================================
 * /SOLICITUD-BAJA/ - Design mock 2026-08-10
 *
 * Formulario destructivo con banner rojo + doble confirmación en modal
 * (.aim-v2-modal--danger reutilizado de /mi-forma-pago/ #240).
 *
 * Estados:
 *   - Normal        → saludo + aviso rojo + form
 *   - Bloqueado     → banner naranja "solicitud reciente" (30 días)
 *   - Post-submit   → mensaje verde arriba + form atenuado (is-enviado)
 * ============================================================================ */

.aim-v2-baja {
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  padding: 24px 26px 30px;
  color: #1F2937;
}

/* --- Bloqueo por solicitud reciente (30 días) --------------------------- */
.aim-v2-baja__bloqueo {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: #FFF3E0;
  border: 1px solid #FFE082;
  border-radius: 10px;
  padding: 18px 20px;
}
.aim-v2-baja__bloqueo > i {
  font-size: 19px;
  color: #E65100;
  flex: none;
  margin-top: 2px;
}
.aim-v2-baja__bloqueo-t {
  font-size: 15.5px;
  font-weight: 700;
  color: #A04A00;
  line-height: 1.45;
}
.aim-v2-baja__bloqueo-p {
  margin: 8px 0 0;
  font-size: 14px;
  color: #4B5563;
  line-height: 1.65;
  max-width: 66ch;
  text-wrap: pretty;
}
.aim-v2-baja__bloqueo-p a {
  color: #2E7D32;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.aim-v2-baja__bloqueo-p a:hover { color: #1B5E20; }

/* --- Cuerpo (estado normal) --------------------------------------------- */
.aim-v2-baja__cuerpo { display: block; }

.aim-v2-baja__msg {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: #E8F5E9;
  border: 1px solid #C8E6C9;
  border-radius: 10px;
  padding: 18px 20px;
  margin-bottom: 22px;
}
.aim-v2-baja__msg > i {
  font-size: 19px;
  color: #1B5E20;
  flex: none;
  margin-top: 2px;
}
.aim-v2-baja__msg-t {
  font-size: 15.5px;
  font-weight: 700;
  color: #1B5E20;
  line-height: 1.45;
}
.aim-v2-baja__msg-p {
  margin: 7px 0 0;
  font-size: 14px;
  color: #4B5563;
  line-height: 1.6;
  max-width: 64ch;
  text-wrap: pretty;
}

.aim-v2-baja__saludo {
  margin: 0;
  font-size: 15px;
  color: #1F2937;
  line-height: 1.65;
  max-width: 70ch;
  text-wrap: pretty;
}

/* Aviso rojo destructivo */
.aim-v2-baja__aviso {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  background: #FDECEA;
  border: 1px solid #FFCDD2;
  border-radius: 10px;
  padding: 16px 18px;
  margin-top: 18px;
}
.aim-v2-baja__aviso > i {
  font-size: 18px;
  color: #C62828;
  flex: none;
  margin-top: 3px;
}
.aim-v2-baja__aviso-t {
  font-size: 14px;
  font-weight: 700;
  color: #C62828;
  line-height: 1.5;
}
.aim-v2-baja__aviso-p {
  margin: 7px 0 0;
  font-size: 14px;
  color: #4B5563;
  line-height: 1.65;
  max-width: 70ch;
  text-wrap: pretty;
}

/* --- Formulario --------------------------------------------------------- */
#aim-baja-form {
  margin-top: 22px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
#aim-baja-form.is-enviado { opacity: .5; pointer-events: none; }

.aim-v2-baja__rejilla {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 18px 26px;
}

.aim-v2-baja__campo { display: block; }
.aim-v2-baja__campo label {
  display: block;
  font-size: 12.5px;
  font-weight: 700;
  color: #333;
  margin-bottom: 6px;
  letter-spacing: .01em;
}
.aim-v2-baja__req { color: #C62828; }
.aim-v2-baja__campo input[type="date"],
.aim-v2-baja__campo select,
.aim-v2-baja__campo textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #D8DCD8;
  border-radius: 8px;
  padding: 10px 12px;
  font-family: inherit;
  font-size: 14.5px;
  color: #1F2937;
  background: #FFF;
  transition: border-color .15s, box-shadow .15s;
}
.aim-v2-baja__campo input:focus,
.aim-v2-baja__campo select:focus,
.aim-v2-baja__campo textarea:focus {
  outline: none;
  border-color: #2E7D32;
  box-shadow: 0 0 0 3px rgba(46,125,50,.14);
}
.aim-v2-baja__campo textarea {
  resize: vertical;
  line-height: 1.55;
  min-height: 96px;
}
.aim-v2-baja__campo-help {
  display: block;
  font-size: 12px;
  color: #9CA3AF;
  margin-top: 6px;
  line-height: 1.5;
  text-wrap: pretty;
}

/* Confirmación checkbox */
.aim-v2-baja__confirma {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  padding: 14px 16px;
  border: 1px solid #FFCDD2;
  background: #FFF5F5;
  border-radius: 10px;
  cursor: pointer;
  transition: background .15s;
}
.aim-v2-baja__confirma:hover { background: #FDECEA; }
.aim-v2-baja__confirma:has(input:checked) {
  background: #FDECEA;
  border-color: #C62828;
}
.aim-v2-baja__confirma input[type="checkbox"] {
  accent-color: #C62828;
  width: 18px;
  height: 18px;
  flex: none;
  margin-top: 2px;
  cursor: pointer;
}
.aim-v2-baja__confirma span {
  font-size: 14px;
  color: #1F2937;
  line-height: 1.6;
  text-wrap: pretty;
}

/* Botones */
.aim-v2-baja__acciones {
  display: flex;
  gap: 16px;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 4px;
}
.aim-v2-baja__btn {
  background: #C62828;
  color: #FFF;
  border: 0;
  border-radius: 8px;
  padding: 12px 22px;
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s;
}
.aim-v2-baja__btn:hover:not(:disabled) { background: #A31D1D; }
.aim-v2-baja__btn:disabled {
  background: #E5E7EB;
  color: #9CA3AF;
  cursor: not-allowed;
}
.aim-v2-baja__cancelar {
  color: #6B7280;
  font-size: 14px;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: #D1D5DB;
  text-underline-offset: 3px;
}
.aim-v2-baja__cancelar:hover { color: #2E7D32; text-decoration-color: #2E7D32; }

/* --- Modal .aim-v2-modal--danger (reutilizado de #240) ------------------ */
/* Solo se define aquí si no viene ya del CSS de /mi-forma-pago/. Compatible:
 * si ya existe, esto solo añade override específico de baja. */
.aim-v2-modal-velo {
  position: fixed;
  inset: 0;
  background: rgba(20, 30, 40, .55);
  z-index: 99998;
}
.aim-v2-modal-velo[hidden] { display: none; }
.aim-v2-modal {
  position: fixed;
  z-index: 99999;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: #FFF;
  border-radius: 14px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, .35);
  max-width: 480px;
  width: calc(100% - 32px);
  max-height: 90vh;
  overflow-y: auto;
}
.aim-v2-modal[hidden] { display: none; }
.aim-v2-modal--danger .aim-v2-modal__icon-box {
  background: #FFEBEE;
  color: #C62828;
}
.aim-v2-modal__header {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 20px 22px 0;
}
.aim-v2-modal__icon-box {
  width: 36px;
  height: 36px;
  border-radius: 9px;
  display: grid;
  place-items: center;
  flex: none;
}
.aim-v2-modal__icon-box i { font-size: 16px; }
.aim-v2-modal__header h3 {
  margin: 0;
  font-size: 19px;
  font-weight: 600;
  letter-spacing: -0.2px;
  line-height: 1.35;
  flex: 1 1 auto;
  color: #1F2937;
}
.aim-v2-modal__close {
  flex: none;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #6B7280;
  font-size: 21px;
  line-height: 1;
  cursor: pointer;
  font-family: inherit;
  transition: background .15s, color .15s;
}
.aim-v2-modal__close:hover { background: #F3F4F6; color: #1F2937; }
.aim-v2-modal__summary {
  padding: 14px 22px 0;
}
.aim-v2-modal__summary p {
  margin: 0;
  font-size: 14.5px;
  color: #4B5563;
  line-height: 1.65;
  text-wrap: pretty;
}
.aim-v2-modal__summary strong { color: #1F2937; font-weight: 600; }
.aim-v2-modal__footer {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  flex-wrap: wrap;
  padding: 20px 22px 22px;
}
.aim-v2-modal__btn {
  border: 1px solid transparent;
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  border-radius: 8px;
  padding: 11px 18px;
  cursor: pointer;
  transition: background .15s;
}
.aim-v2-modal__btn--secondary {
  background: #F5F5F5;
  color: #333;
}
.aim-v2-modal__btn--secondary:hover { background: #ECECEC; }
.aim-v2-modal__btn--danger {
  background: #C62828;
  border-color: #C62828;
  color: #FFF;
}
.aim-v2-modal__btn--danger:hover:not(:disabled) { background: #A31D1D; }
.aim-v2-modal__btn:disabled { opacity: .6; cursor: wait; }

/* --- Responsive < 600px ------------------------------------------------- */
@media (max-width: 600px) {
  .aim-v2-baja { padding: 18px 16px 24px; }
  .aim-v2-baja__rejilla { grid-template-columns: 1fr; }
  .aim-v2-baja__acciones { flex-direction: column; align-items: stretch; }
  .aim-v2-baja__btn { justify-content: center; text-align: center; }
  .aim-v2-baja__cancelar { text-align: center; }
  .aim-v2-modal { width: calc(100% - 24px); }
}


/* ============================================================================
 * /MIS-DERECHOS/ - Design mock 2026-08-10
 *
 * Grid de 6 cards de derechos RGPD (arts. 15-22) con filete top de color +
 * bloque "Otras acciones" + modal reutilizable .aim-v2-modal (ya definido
 * en /solicitud-baja/ #251; aquí solo overrides scoped).
 * ============================================================================ */

.aim-v2-derechos {
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  padding: 24px 26px 30px;
}

/* Mensaje verde de éxito tras enviar solicitud */
.aim-v2-derechos__msg-ok {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: #E8F5E9;
  border: 1px solid #C8E6C9;
  border-radius: 10px;
  padding: 18px 20px;
  margin-bottom: 22px;
}
.aim-v2-derechos__msg-ok > i {
  font-size: 19px;
  color: #1B5E20;
  flex: none;
  margin-top: 2px;
}
.aim-v2-derechos__msg-ok-t {
  font-size: 15.5px;
  font-weight: 700;
  color: #1B5E20;
  line-height: 1.45;
}
.aim-v2-derechos__msg-ok-p {
  margin: 7px 0 0;
  font-size: 14px;
  color: #4B5563;
  line-height: 1.6;
  max-width: 64ch;
  text-wrap: pretty;
}

/* Grid de 6 cards */
.aim-v2-derechos__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 14px;
}
.aim-v2-derechos__card {
  display: flex;
  flex-direction: column;
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-top: 3px solid #6B7280;
  border-radius: 14px;
  padding: 18px 20px 20px;
  box-shadow: 0 1px 3px rgba(0,0,0,.04);
  transition: box-shadow .15s ease, transform .15s ease;
}
.aim-v2-derechos__card:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,.08);
  transform: translateY(-1px);
}

/* Color por derecho: filete top + fondo del icon-box */
.aim-v2-derechos__card--acceso        { border-top-color: #1B5E20; }
.aim-v2-derechos__card--acceso        .aim-v2-derechos__icon { background: #E8F5E9; color: #1B5E20; }
.aim-v2-derechos__card--rectificacion { border-top-color: #0D47A1; }
.aim-v2-derechos__card--rectificacion .aim-v2-derechos__icon { background: #E3F2FD; color: #0D47A1; }
.aim-v2-derechos__card--supresion     { border-top-color: #C62828; }
.aim-v2-derechos__card--supresion     .aim-v2-derechos__icon { background: #FDECEA; color: #C62828; }
.aim-v2-derechos__card--oposicion     { border-top-color: #E65100; }
.aim-v2-derechos__card--oposicion     .aim-v2-derechos__icon { background: #FFF3E0; color: #E65100; }
.aim-v2-derechos__card--limitacion    { border-top-color: #E65100; }
.aim-v2-derechos__card--limitacion    .aim-v2-derechos__icon { background: #FFF3E0; color: #E65100; }
.aim-v2-derechos__card--portabilidad  { border-top-color: #1B5E20; }
.aim-v2-derechos__card--portabilidad  .aim-v2-derechos__icon { background: #E8F5E9; color: #1B5E20; }

.aim-v2-derechos__card-head {
  display: flex;
  align-items: center;
  gap: 11px;
}
.aim-v2-derechos__icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  flex: none;
  font-size: 17px;
}
.aim-v2-derechos__title {
  margin: 0;
  font-size: 16px;
  font-weight: 600;
  color: #1F2937;
  letter-spacing: -0.15px;
  line-height: 1.35;
}
.aim-v2-derechos__desc {
  margin: 12px 0 0;
  font-size: 14px;
  color: #4B5563;
  line-height: 1.6;
  flex: 1 1 auto;
  text-wrap: pretty;
}
.aim-v2-derechos__desc a {
  color: #2E7D32;
  font-weight: 600;
  text-decoration: none;
}
.aim-v2-derechos__desc a:hover { color: #1B5E20; text-decoration: underline; }
.aim-v2-derechos__btn {
  margin-top: 16px;
  align-self: flex-start;
  background: #FFF;
  border: 1px solid #D8DCD8;
  color: #1F2937;
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 600;
  border-radius: 8px;
  padding: 10px 18px;
  cursor: pointer;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.aim-v2-derechos__btn:hover {
  background: #2E7D32;
  border-color: #2E7D32;
  color: #FFF;
}

/* Bloque "Otras acciones sobre tus datos" */
.aim-v2-derechos__otras {
  margin-top: 30px;
  padding-top: 22px;
  border-top: 1px solid #F0F1F2;
}
.aim-v2-derechos__otras-t {
  margin: 0;
  font-size: 11.5px;
  font-weight: 700;
  color: #6B7280;
  letter-spacing: 1.2px;
  text-transform: uppercase;
}
.aim-v2-derechos__otras-lista {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 10px;
  margin-top: 14px;
}
.aim-v2-derechos__otras-item {
  display: flex;
  align-items: center;
  gap: 13px;
  text-decoration: none;
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 10px;
  padding: 14px 16px;
  color: #1F2937;
  transition: border-color .15s ease, background .15s ease;
}
.aim-v2-derechos__otras-item:hover {
  border-color: #2E7D32;
  background: #F7FBF7;
}
.aim-v2-derechos__otras-icon {
  width: 34px;
  height: 34px;
  border-radius: 9px;
  background: #E8F5E9;
  display: grid;
  place-items: center;
  flex: none;
  color: #2E7D32;
  font-size: 15px;
}
.aim-v2-derechos__otras-label {
  flex: 1 1 auto;
  font-size: 14.5px;
  font-weight: 600;
}
.aim-v2-derechos__otras-chev {
  color: #9CA3AF;
  font-size: 19px;
  line-height: 1;
}

/* --- Overrides del modal .aim-v2-modal (definido en /solicitud-baja/) --- */
.aim-v2-derechos__modal-icon {
  background: #E8F5E9 !important;
  color: #2E7D32;
}
.aim-v2-modal__title { color: #1F2937; }
#aim-rgpd-modal-desc {
  margin: 0;
  font-size: 14px;
  color: #4B5563;
  line-height: 1.65;
  text-wrap: pretty;
}
.aim-v2-derechos__modal-label {
  display: block;
  font-size: 12.5px;
  font-weight: 700;
  color: #333;
  margin: 18px 0 6px;
}
.aim-v2-derechos__modal-textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #D8DCD8;
  border-radius: 8px;
  padding: 10px 12px;
  font-family: inherit;
  font-size: 14.5px;
  color: #1F2937;
  background: #FFF;
  resize: vertical;
  line-height: 1.55;
  transition: border-color .15s, box-shadow .15s;
}
.aim-v2-derechos__modal-textarea:focus {
  outline: none;
  border-color: #2E7D32;
  box-shadow: 0 0 0 3px rgba(46,125,50,.14);
}
.aim-v2-derechos__modal-msg {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0 22px;
  padding: 11px 14px;
  background: #FDECEA;
  border: 1px solid #FFCDD2;
  border-radius: 8px;
  color: #C62828;
}
.aim-v2-derechos__modal-msg > i {
  font-size: 15px;
  color: #C62828;
  flex: none;
  margin-top: 2px;
}
.aim-v2-derechos__modal-msg > span {
  font-size: 13.5px;
  line-height: 1.55;
  text-wrap: pretty;
}
/* Botón --primary del modal en verde AIM (el genérico de #251 es red-only) */
.aim-v2-modal__btn--primary {
  background: #2E7D32;
  border-color: #2E7D32;
  color: #FFF;
}
.aim-v2-modal__btn--primary:hover:not(:disabled) { background: #1B5E20; }

/* --- Responsive < 600px ------------------------------------------------- */
@media (max-width: 600px) {
  .aim-v2-derechos { padding: 18px 16px 24px; }
  .aim-v2-derechos__grid { grid-template-columns: 1fr; }
  .aim-v2-derechos__otras-lista { grid-template-columns: 1fr; }
}


/* ============================================================================
 * /MIS-COMUNICACIONES/ - Sección "Canales" (integrada desde /preferencias/)
 * Grid auto-fit de checkboxes tipo card (email / phone / post / sms).
 * Solo se pinta si Secretaría ha habilitado al menos 1 canal en settings.
 * ============================================================================ */

.aim-v2-comus__canales {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
  margin-top: 14px;
}
.aim-v2-comus__canal {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid #E5E7EB;
  border-radius: 10px;
  background: #FFF;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease;
}
.aim-v2-comus__canal:hover { border-color: #2E7D32; background: #F7FBF7; }
.aim-v2-comus__canal:has(input:checked) {
  border-color: #2E7D32;
  background: #F1F8E9;
  box-shadow: inset 0 0 0 1px #2E7D32;
}
.aim-v2-comus__canal input[type="checkbox"] {
  accent-color: #2E7D32;
  width: 18px;
  height: 18px;
  flex: none;
  cursor: pointer;
}
.aim-v2-comus__canal-icon {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: #E8F5E9;
  color: #2E7D32;
  display: grid;
  place-items: center;
  flex: none;
  font-size: 14px;
}
.aim-v2-comus__canal:has(input:checked) .aim-v2-comus__canal-icon {
  background: #C8E6C9;
}
.aim-v2-comus__canal-label {
  font-size: 14px;
  font-weight: 600;
  color: #1F2937;
  line-height: 1.35;
}

@media (max-width: 600px) {
  .aim-v2-comus__canales { grid-template-columns: 1fr; }
}


/* ============================================================================
 * /MI-SEGURIDAD/ - Design mock 2026-08-10
 *
 * Panel de credenciales del socio. 5 bloques:
 *   1. Flash messages (post-acción)
 *   2. Estado 2FA (banner con icono)
 *   3. Verificación 2 pasos (TOTP + Email + Preferido + Backup)
 *   4. Contraseña
 *   5. Sesiones activas
 * ============================================================================ */

.aim-v2-seg {
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  padding: 24px 26px 30px;
  color: #1F2937;
}

/* --- Flash messages --------------------------------------------------- */
.aim-v2-seg__flash {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 10px;
  margin-bottom: 14px;
}
.aim-v2-seg__flash > i { font-size: 18px; flex: none; margin-top: 2px; }
.aim-v2-seg__flash > span { font-size: 14px; line-height: 1.55; font-weight: 600; text-wrap: pretty; }
.aim-v2-seg__flash--ok { background: #E8F5E9; border: 1px solid #C8E6C9; }
.aim-v2-seg__flash--ok > i, .aim-v2-seg__flash--ok > span { color: #1B5E20; }
.aim-v2-seg__flash--err { background: #FDECEA; border: 1px solid #FFCDD2; }
.aim-v2-seg__flash--err > i, .aim-v2-seg__flash--err > span { color: #C62828; }

/* --- Lead + estado 2FA banner ------------------------------------------ */
.aim-v2-seg__lead {
  margin: 0;
  font-size: 15px;
  color: #4B5563;
  line-height: 1.65;
  max-width: 72ch;
  text-wrap: pretty;
}
.aim-v2-seg__estado {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px 18px;
  border-radius: 12px;
  margin: 20px 0 6px;
}
.aim-v2-seg__estado--on { background: #E8F5E9; border: 1px solid #C8E6C9; }
.aim-v2-seg__estado--off { background: #FFF3E0; border: 1px solid #FFE082; }
.aim-v2-seg__estado-icon {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  flex: none;
  font-size: 19px;
}
.aim-v2-seg__estado--on .aim-v2-seg__estado-icon { background: #C8E6C9; color: #1B5E20; }
.aim-v2-seg__estado--off .aim-v2-seg__estado-icon { background: #FFE082; color: #A04A00; }
.aim-v2-seg__estado-body { flex: 1 1 auto; min-width: 0; }
.aim-v2-seg__estado-title { font-size: 15.5px; font-weight: 700; line-height: 1.4; }
.aim-v2-seg__estado--on .aim-v2-seg__estado-title { color: #1B5E20; }
.aim-v2-seg__estado--off .aim-v2-seg__estado-title { color: #A04A00; }
.aim-v2-seg__estado-meta {
  margin-top: 4px;
  font-size: 13.5px;
  color: #4B5563;
  line-height: 1.55;
  text-wrap: pretty;
}

/* --- H3 separadores ---------------------------------------------------- */
.aim-v2-seg__h3 {
  margin: 24px 0 14px;
  padding-bottom: 7px;
  border-bottom: 2px solid #2E7D32;
  font-size: 16px;
  font-weight: 600;
  color: #2E7D32;
  letter-spacing: -0.01em;
}
.aim-v2-seg__h3--sep { margin-top: 30px; }

/* --- Metodo card (TOTP, Email, Backup) -------------------------------- */
.aim-v2-seg__metodo {
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  padding: 16px 18px;
  margin-bottom: 12px;
}
.aim-v2-seg__metodo--setup {
  border-color: #2E7D32;
  background: #F7FBF7;
}
.aim-v2-seg__metodo-head {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  flex-wrap: wrap;
}
.aim-v2-seg__metodo-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: #E8F5E9;
  color: #2E7D32;
  display: grid;
  place-items: center;
  flex: none;
  font-size: 19px;
}
.aim-v2-seg__metodo-icon--email { background: #E3F2FD; color: #0D47A1; }
.aim-v2-seg__metodo-body { flex: 1 1 220px; min-width: 0; }
.aim-v2-seg__metodo-title {
  display: flex;
  align-items: center;
  gap: 9px;
  flex-wrap: wrap;
  font-size: 15.5px;
  font-weight: 600;
  color: #1F2937;
}
.aim-v2-seg__metodo-desc {
  margin: 5px 0 0;
  font-size: 13.5px;
  color: #6B7280;
  line-height: 1.55;
  text-wrap: pretty;
}
.aim-v2-seg__metodo-desc strong { color: #1F2937; font-weight: 600; }
.aim-v2-seg__metodo-form {
  flex: none;
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}

/* Badges de estado */
.aim-v2-seg__badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 9px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .5px;
  text-transform: uppercase;
  line-height: 1.4;
}
.aim-v2-seg__badge--on { background: #E8F5E9; color: #1B5E20; }
.aim-v2-seg__badge--pending { background: #FFF3E0; color: #E65100; }

/* Warn amarillo (último método, caducidad, etc.) */
.aim-v2-seg__warn {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 12px;
  padding: 11px 13px;
  background: #FFF3E0;
  border: 1px solid #FFE082;
  border-radius: 8px;
}
.aim-v2-seg__warn > i { font-size: 15px; color: #E65100; flex: none; margin-top: 2px; }
.aim-v2-seg__warn > span { font-size: 13.5px; color: #A04A00; line-height: 1.55; text-wrap: pretty; }

/* --- Botones ---------------------------------------------------------- */
.aim-v2-seg__btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 10px 18px;
  border-radius: 8px;
  border: 1px solid transparent;
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
  white-space: nowrap;
}
.aim-v2-seg__btn--primary {
  background: #2E7D32;
  border-color: #2E7D32;
  color: #FFF;
}
.aim-v2-seg__btn--primary:hover { background: #1B5E20; border-color: #1B5E20; }
.aim-v2-seg__btn--neutral {
  background: #FFF;
  border-color: #D8DCD8;
  color: #1F2937;
}
.aim-v2-seg__btn--neutral:hover { background: #F5F5F5; border-color: #B0B4B0; }
.aim-v2-seg__btn--danger {
  background: #C62828;
  border-color: #C62828;
  color: #FFF;
}
.aim-v2-seg__btn--danger:hover { background: #A31D1D; border-color: #A31D1D; }
.aim-v2-seg__btn--link {
  background: transparent;
  border: 0;
  color: #6B7280;
  text-decoration: underline;
  text-decoration-color: #D1D5DB;
  text-underline-offset: 3px;
  padding: 8px 14px;
  font-size: 13px;
}
.aim-v2-seg__btn--link:hover { color: #2E7D32; text-decoration-color: #2E7D32; }
.aim-v2-seg__btn i { font-size: 13px; }

/* --- Código input (6 dígitos) ---------------------------------------- */
.aim-v2-seg__code-label {
  display: block;
  font-size: 12.5px;
  font-weight: 700;
  color: #333;
  margin-bottom: 6px;
}
.aim-v2-seg__code-input {
  box-sizing: border-box;
  border: 1px solid #D8DCD8;
  border-radius: 8px;
  padding: 11px 13px;
  font-family: 'SF Mono', 'Menlo', 'Consolas', monospace;
  font-size: 19px;
  letter-spacing: 5px;
  color: #1F2937;
  background: #FFF;
  text-align: center;
  width: 150px;
  transition: border-color .15s, box-shadow .15s;
}
.aim-v2-seg__code-input--sm {
  width: 130px;
  padding: 8px 10px;
  font-size: 16px;
  letter-spacing: 3px;
}
.aim-v2-seg__code-input:focus {
  outline: none;
  border-color: #2E7D32;
  box-shadow: 0 0 0 3px rgba(46,125,50,.14);
}

/* --- Setup TOTP (QR + form) ------------------------------------------ */
.aim-v2-seg__setup-rejilla {
  display: flex;
  align-items: flex-start;
  gap: 24px;
  flex-wrap: wrap;
  margin-top: 16px;
}
.aim-v2-seg__qr {
  flex: none;
  width: 200px;
  height: 200px;
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 10px;
  padding: 8px;
  box-sizing: border-box;
  display: grid;
  place-items: center;
}
.aim-v2-seg__qr img { max-width: 100%; height: auto; }
.aim-v2-seg__qr-fallback {
  margin: 0;
  font-size: 12px;
  color: #A04A00;
  padding: 12px;
  background: #FFF3E0;
  border-radius: 6px;
  text-align: center;
}
.aim-v2-seg__setup-cuerpo { flex: 1 1 260px; min-width: 0; }
.aim-v2-seg__setup-manual-label {
  font-size: 12.5px;
  font-weight: 700;
  color: #333;
  margin-bottom: 4px;
}
.aim-v2-seg__setup-manual-p {
  margin: 0 0 6px;
  font-size: 13.5px;
  color: #4B5563;
  line-height: 1.55;
}
.aim-v2-seg__secret {
  font-family: 'SF Mono', 'Menlo', 'Consolas', monospace;
  font-size: 14px;
  letter-spacing: 1.5px;
  color: #1F2937;
  background: #F7F9F7;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  padding: 11px 13px;
  word-break: break-all;
}
.aim-v2-seg__setup-form { margin-top: 18px; }
.aim-v2-seg__setup-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 14px;
}
.aim-v2-seg__setup-cancel { margin-top: 8px; }

/* --- Desactivación email (form código) ------------------------------- */
.aim-v2-seg__desact-email {
  margin-top: 14px;
  padding: 14px 16px;
  background: #FFF3E0;
  border: 1px solid #FFE082;
  border-radius: 10px;
}
.aim-v2-seg__desact-email > p {
  margin: 0 0 12px;
  font-size: 14px;
  color: #A04A00;
  line-height: 1.6;
  max-width: 60ch;
  text-wrap: pretty;
}

/* --- Preferido -------------------------------------------------------- */
.aim-v2-seg__preferido {
  background: #F9FAFB;
  border: 1px solid #E5E7EB;
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 12px;
}
.aim-v2-seg__preferido-t {
  font-size: 12.5px;
  font-weight: 700;
  color: #333;
  letter-spacing: .02em;
  text-transform: uppercase;
}
.aim-v2-seg__preferido-p {
  margin: 5px 0 0;
  font-size: 13.5px;
  color: #6B7280;
  line-height: 1.55;
  text-wrap: pretty;
}
.aim-v2-seg__preferido-form {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
  margin-top: 12px;
}
.aim-v2-seg__pref-opcion {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border: 1px solid #E5E7EB;
  background: #FFF;
  border-radius: 8px;
  cursor: pointer;
  transition: border-color .15s, background .15s;
}
.aim-v2-seg__pref-opcion:hover { border-color: #2E7D32; background: #F7FBF7; }
.aim-v2-seg__pref-opcion:has(input:checked) {
  border-color: #2E7D32;
  background: #F1F8E9;
  box-shadow: inset 0 0 0 1px #2E7D32;
}
.aim-v2-seg__pref-opcion input[type="radio"] {
  accent-color: #2E7D32;
  width: 17px;
  height: 17px;
  flex: none;
  cursor: pointer;
}
.aim-v2-seg__pref-opcion i { font-size: 15px; color: #2E7D32; }
.aim-v2-seg__pref-opcion span { font-size: 14px; font-weight: 600; color: #1F2937; }

/* --- Backup codes card + panel códigos generados -------------------- */
.aim-v2-seg__backup {
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  padding: 16px 18px;
  margin-bottom: 12px;
}
.aim-v2-seg__backup-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: #E8F5E9;
  color: #2E7D32;
  display: grid;
  place-items: center;
  flex: none;
  font-size: 17px;
}
.aim-v2-seg__backup-panel {
  margin-top: 16px;
  padding: 16px 18px;
  background: #FFFBEA;
  border: 2px solid #F9A825;
  border-radius: 10px;
}
.aim-v2-seg__backup-warn {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.aim-v2-seg__backup-warn > i { font-size: 15px; color: #E65100; flex: none; margin-top: 2px; }
.aim-v2-seg__backup-warn > span { font-size: 13.5px; color: #A04A00; line-height: 1.55; text-wrap: pretty; }
.aim-v2-seg__backup-codes {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 8px;
  margin-top: 14px;
}
.aim-v2-seg__backup-codes code {
  font-family: 'SF Mono', 'Menlo', 'Consolas', monospace;
  font-size: 14.5px;
  letter-spacing: 1px;
  color: #1F2937;
  background: #FFF;
  border: 1px solid #F0E0A0;
  border-radius: 6px;
  padding: 10px 12px;
  text-align: center;
}
.aim-v2-seg__backup-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 16px;
}

/* --- Contraseña form ------------------------------------------------- */
.aim-v2-seg__pass { display: block; }
.aim-v2-seg__pass-rejilla {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px 24px;
}
.aim-v2-seg__campo { display: block; }
.aim-v2-seg__campo label {
  display: block;
  font-size: 12.5px;
  font-weight: 700;
  color: #333;
  margin-bottom: 6px;
  letter-spacing: .01em;
}
.aim-v2-seg__campo input[type="password"] {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #D8DCD8;
  border-radius: 8px;
  padding: 10px 12px;
  font-family: inherit;
  font-size: 14.5px;
  color: #1F2937;
  background: #FFF;
  transition: border-color .15s, box-shadow .15s;
}
.aim-v2-seg__campo input:focus {
  outline: none;
  border-color: #2E7D32;
  box-shadow: 0 0 0 3px rgba(46,125,50,.14);
}
.aim-v2-seg__campo-help {
  display: block;
  font-size: 12px;
  color: #9CA3AF;
  margin-top: 6px;
  line-height: 1.5;
  text-wrap: pretty;
}
.aim-v2-seg__pass-btn { margin-top: 18px; }
.aim-v2-seg__pass-nota {
  margin: 12px 0 0;
  font-size: 12.5px;
  color: #6B7280;
  line-height: 1.55;
  text-wrap: pretty;
}

/* --- Sesiones activas ------------------------------------------------ */
.aim-v2-seg__sesiones {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 14px;
}
.aim-v2-seg__sesion {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  padding: 14px 16px;
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 10px;
}
.aim-v2-seg__sesion--actual {
  background: #F7FBF7;
  border-color: #C8E6C9;
}
.aim-v2-seg__sesion-icon {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: #F3F4F6;
  color: #6B7280;
  display: grid;
  place-items: center;
  flex: none;
  font-size: 16px;
}
.aim-v2-seg__sesion--actual .aim-v2-seg__sesion-icon {
  background: #E8F5E9;
  color: #2E7D32;
}
.aim-v2-seg__sesion-body { flex: 1 1 200px; min-width: 0; }
.aim-v2-seg__sesion-title {
  display: flex;
  align-items: center;
  gap: 9px;
  flex-wrap: wrap;
  font-size: 14.5px;
  font-weight: 600;
  color: #1F2937;
}
.aim-v2-seg__sesion-meta {
  font-size: 12.5px;
  color: #6B7280;
  margin-top: 3px;
}
.aim-v2-seg__sesion-form { flex: none; }
.aim-v2-seg__sesion-others {
  margin-top: 12px;
  padding-top: 14px;
  border-top: 1px solid #F0F1F2;
}
.aim-v2-seg__sessions-empty {
  padding: 20px;
  background: #FAFAFA;
  border: 1px dashed #E5E7EB;
  border-radius: 10px;
  color: #6B7280;
  text-align: center;
  font-size: 14px;
  margin: 14px 0 0;
}

/* Alert alone (para el mensaje "plugin no disponible" del shortcode) */
.aim-v2-seg .aim-seg-alert {
  padding: 16px 18px;
  background: #FFF3E0;
  border: 1px solid #FFE082;
  border-radius: 10px;
  color: #A04A00;
  font-size: 14px;
  line-height: 1.6;
}
.aim-v2-seg .aim-seg-alert a { color: #2E7D32; font-weight: 600; }

/* --- Responsive < 600px ---------------------------------------------- */
@media (max-width: 600px) {
  .aim-v2-seg { padding: 18px 16px 24px; }
  .aim-v2-seg__metodo-head { flex-wrap: wrap; }
  .aim-v2-seg__metodo-form { width: 100%; }
  .aim-v2-seg__setup-rejilla { flex-direction: column; }
  .aim-v2-seg__qr { width: 180px; height: 180px; }
  .aim-v2-seg__pass-rejilla { grid-template-columns: 1fr; }
  .aim-v2-seg__sesion { flex-wrap: wrap; }
  .aim-v2-seg__sesion-form { width: 100%; }
  .aim-v2-seg__sesion-form .aim-v2-seg__btn { width: 100%; justify-content: center; }
  .aim-v2-seg__backup-codes { grid-template-columns: 1fr 1fr; }
}


/* ============================================================================
 * /VERIFICAR-VOTO/ - Design mock 2026-08-10
 *
 * Página pública sin login. 3 modos:
 *   - Certificado válido/inválido (URL ?e=X&t=Y)
 *   - Papeleta válida/inconsistente/inválida (URL ?p=X&n=Y)
 *   - Neutro con form manual + FAQ
 * ============================================================================ */

.aim-v2-verif {
  max-width: 780px;
  margin: 20px auto;
  padding: 26px 28px 30px;
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  color: #1F2937;
}

/* Cabecera con H1 propio (no molde) */
.aim-v2-verif__cabecera {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  flex-wrap: wrap;
  padding-bottom: 22px;
  border-bottom: 1px solid #F0F1F2;
  margin-bottom: 22px;
}
.aim-v2-verif__cabecera-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: #E8F5E9;
  color: #2E7D32;
  display: grid;
  place-items: center;
  flex: none;
  font-size: 20px;
}
.aim-v2-verif__cabecera-body { flex: 1 1 260px; min-width: 0; }
.aim-v2-verif__cabecera-body h1 {
  margin: 0;
  font-size: 24px;
  font-weight: 700;
  color: #1F2937;
  letter-spacing: -0.4px;
  line-height: 1.25;
}
.aim-v2-verif__cabecera-body p {
  margin: 6px 0 0;
  font-size: 14px;
  color: #6B7280;
  line-height: 1.6;
  max-width: 70ch;
  text-wrap: pretty;
}

/* --- Resultado (cert / papeleta / error) ------------------------------ */
.aim-v2-verif__resultado {
  border-radius: 12px;
  padding: 18px 20px;
  margin-bottom: 20px;
}
.aim-v2-verif__resultado--ok { background: #F1F8E9; border: 1px solid #C8E6C9; }
.aim-v2-verif__resultado--warn { background: #FFF3E0; border: 1px solid #FFE082; }
.aim-v2-verif__resultado--err { background: #FDECEA; border: 1px solid #FFCDD2; display: flex; align-items: flex-start; gap: 13px; }
.aim-v2-verif__res-head {
  display: flex;
  align-items: center;
  gap: 13px;
}
.aim-v2-verif__res-icon {
  width: 42px;
  height: 42px;
  border-radius: 11px;
  color: #FFF;
  display: grid;
  place-items: center;
  flex: none;
  font-size: 19px;
}
.aim-v2-verif__res-icon--ok { background: #2E7D32; }
.aim-v2-verif__res-icon--warn { background: #E65100; }
.aim-v2-verif__res-icon--err { background: #C62828; }
.aim-v2-verif__res-body { flex: 1 1 auto; min-width: 0; }
.aim-v2-verif__res-eyebrow {
  font-size: 11.5px;
  font-weight: 700;
  color: #6B7280;
  letter-spacing: 1.2px;
  text-transform: uppercase;
}
.aim-v2-verif__res-title {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.2px;
  margin-top: 3px;
  line-height: 1.35;
  text-wrap: pretty;
}
.aim-v2-verif__res-title--ok { color: #1B5E20; }
.aim-v2-verif__res-title--warn { color: #A04A00; }
.aim-v2-verif__res-title--err { color: #C62828; }
.aim-v2-verif__res-p {
  margin: 10px 0 0;
  font-size: 14px;
  color: #4B5563;
  line-height: 1.6;
  max-width: 66ch;
  text-wrap: pretty;
}
.aim-v2-verif__res-p--muted {
  margin-top: 12px;
  font-size: 13.5px;
}
.aim-v2-verif__res-p a { color: #2E7D32; font-weight: 600; text-decoration: none; }
.aim-v2-verif__res-p a:hover { color: #1B5E20; text-decoration: underline; }
.aim-v2-verif__res-nota {
  margin: 16px 0 0;
  padding-top: 14px;
  border-top: 1px solid rgba(0,0,0,.06);
  font-size: 13.5px;
  color: #4B5563;
  line-height: 1.6;
  text-wrap: pretty;
}

/* Tabla de ficha (Socio, Encuesta, Fecha, Hash…) */
.aim-v2-verif__ficha {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  margin-top: 16px;
}
.aim-v2-verif__ficha th,
.aim-v2-verif__ficha td {
  padding: 11px 0;
  border-top: 1px solid rgba(0,0,0,.06);
  vertical-align: top;
}
.aim-v2-verif__ficha th {
  text-align: left;
  color: #6B7280;
  font-weight: 600;
  width: 34%;
}
.aim-v2-verif__ficha td {
  color: #1F2937;
  font-weight: 500;
  word-break: break-word;
}
.aim-v2-verif__ficha-mono {
  font-family: 'SF Mono', 'Menlo', 'Consolas', monospace;
  font-size: 13px;
  letter-spacing: .5px;
}

/* Voto humano (contenido de la papeleta) */
.aim-v2-verif__voto {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid rgba(0,0,0,.06);
}
.aim-v2-verif__voto-label {
  font-size: 12.5px;
  font-weight: 700;
  color: #333;
  margin-bottom: 7px;
}
.aim-v2-verif__voto-body {
  margin: 0;
  background: #FFF;
  border: 1px solid #E3EFE4;
  border-radius: 8px;
  padding: 13px 15px;
  font-family: 'SF Mono', 'Menlo', 'Consolas', monospace;
  font-size: 13px;
  line-height: 1.65;
  color: #1F2937;
  overflow-x: auto;
  white-space: pre-wrap;
  word-break: break-word;
}

/* --- Intro estado neutro --------------------------------------------- */
.aim-v2-verif__intro { margin-bottom: 26px; }
.aim-v2-verif__intro-t {
  margin: 0 0 14px;
  font-size: 15px;
  color: #1F2937;
  line-height: 1.6;
  font-weight: 600;
}
.aim-v2-verif__tipos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 12px;
}
.aim-v2-verif__tipo {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  padding: 16px 18px;
}
.aim-v2-verif__tipo-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: #E8F5E9;
  color: #2E7D32;
  display: grid;
  place-items: center;
  flex: none;
  font-size: 16px;
}
.aim-v2-verif__tipo p {
  margin: 0;
  font-size: 14px;
  color: #4B5563;
  line-height: 1.6;
  text-wrap: pretty;
}
.aim-v2-verif__tipo strong { color: #1F2937; font-weight: 600; }

/* --- Form bloque ------------------------------------------------------ */
.aim-v2-verif__form-bloque { margin-bottom: 22px; }
.aim-v2-verif__h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 600;
  color: #2E7D32;
  letter-spacing: -0.01em;
  padding-bottom: 7px;
  border-bottom: 2px solid #2E7D32;
}
.aim-v2-verif__form-intro {
  margin: 14px 0 0;
  font-size: 14px;
  color: #4B5563;
  line-height: 1.6;
  max-width: 72ch;
  text-wrap: pretty;
}
.aim-v2-verif__form {
  margin-top: 18px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.aim-v2-verif__campo label {
  display: block;
  font-size: 12.5px;
  font-weight: 700;
  color: #333;
  margin-bottom: 6px;
}
.aim-v2-verif__campo textarea,
.aim-v2-verif__campo input[type="text"] {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #D8DCD8;
  border-radius: 8px;
  padding: 11px 13px;
  font-family: 'SF Mono', 'Menlo', 'Consolas', monospace;
  font-size: 13.5px;
  line-height: 1.6;
  color: #1F2937;
  background: #FFF;
  resize: vertical;
  transition: border-color .15s, box-shadow .15s;
}
.aim-v2-verif__campo textarea:focus,
.aim-v2-verif__campo input:focus {
  outline: none;
  border-color: #2E7D32;
  box-shadow: 0 0 0 3px rgba(46,125,50,.14);
}
.aim-v2-verif__campo-help {
  display: block;
  font-size: 12px;
  color: #9CA3AF;
  margin-top: 6px;
  line-height: 1.5;
}
.aim-v2-verif__btn {
  align-self: flex-start;
  background: #2E7D32;
  border: 1px solid #2E7D32;
  color: #FFF;
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  border-radius: 8px;
  padding: 12px 22px;
  cursor: pointer;
  transition: background .15s;
}
.aim-v2-verif__btn:hover { background: #1B5E20; }

/* --- FAQ ------------------------------------------------------------- */
.aim-v2-verif__faq {
  border: 1px solid #E5E7EB;
  border-radius: 10px;
  padding: 14px 16px;
  background: #FAFAFA;
}
.aim-v2-verif__faq summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 11px;
}
.aim-v2-verif__faq summary::-webkit-details-marker { display: none; }
.aim-v2-verif__faq summary > i {
  font-size: 17px;
  color: #2E7D32;
  flex: none;
}
.aim-v2-verif__faq summary > span:first-of-type,
.aim-v2-verif__faq summary > span:nth-of-type(1) {
  font-size: 15px;
  font-weight: 600;
  color: #1F2937;
  flex: 1 1 auto;
}
.aim-v2-verif__faq-chev {
  color: #9CA3AF;
  font-size: 15px;
  transition: transform .2s ease;
}
.aim-v2-verif__faq[open] .aim-v2-verif__faq-chev { transform: rotate(180deg); }
.aim-v2-verif__faq-body {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #F0F1F2;
}
.aim-v2-verif__faq-body p {
  margin: 0 0 11px;
  font-size: 14px;
  color: #4B5563;
  line-height: 1.65;
  text-wrap: pretty;
}
.aim-v2-verif__faq-body p:last-child { margin-bottom: 0; }
.aim-v2-verif__faq-body strong { color: #1F2937; font-weight: 600; }

/* --- Responsive < 600px --------------------------------------------- */
@media (max-width: 600px) {
  .aim-v2-verif { padding: 20px 18px 24px; }
  .aim-v2-verif__cabecera { flex-wrap: wrap; gap: 12px; }
  .aim-v2-verif__cabecera-body h1 { font-size: 21px; }
  .aim-v2-verif__ficha th, .aim-v2-verif__ficha td { display: block; padding: 6px 0; }
  .aim-v2-verif__ficha th { border-top: 1px solid rgba(0,0,0,.06); padding-top: 10px; }
  .aim-v2-verif__ficha td { padding-bottom: 10px; padding-top: 0; border-top: 0; }
  .aim-v2-verif__tipos { grid-template-columns: 1fr; }
}


/* ============================================================================
 * /URNA-PUBLICA/ - Design mock 2026-08-10
 *
 * 2 vistas: índice de elecciones cerradas + detalle de una urna con
 * tabla del ledger (hash + payload + fecha) + paginación.
 * ============================================================================ */

.aim-v2-urna {
  max-width: 960px;
  margin: 20px auto;
  padding: 26px 28px 30px;
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  color: #1F2937;
}

.aim-v2-urna__volver {
  display: inline-block;
  margin-bottom: 14px;
  color: #6B7280;
  font-size: 13.5px;
  font-weight: 600;
  text-decoration: none;
  transition: color .15s;
}
.aim-v2-urna__volver:hover { color: #2E7D32; }

/* Cabecera */
.aim-v2-urna__cabecera {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  flex-wrap: wrap;
  padding-bottom: 22px;
  border-bottom: 1px solid #F0F1F2;
  margin-bottom: 22px;
}
.aim-v2-urna__cabecera-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: #E8F5E9;
  color: #2E7D32;
  display: grid;
  place-items: center;
  flex: none;
  font-size: 20px;
}
.aim-v2-urna__cabecera-body { flex: 1 1 260px; min-width: 0; }
.aim-v2-urna__cabecera-body h1 {
  margin: 0;
  font-size: 24px;
  font-weight: 700;
  color: #1F2937;
  letter-spacing: -0.4px;
  line-height: 1.3;
  text-wrap: pretty;
}
.aim-v2-urna__cabecera-body p {
  margin: 6px 0 0;
  font-size: 14px;
  color: #6B7280;
  line-height: 1.6;
  max-width: 72ch;
  text-wrap: pretty;
}

/* Intro (índice) */
.aim-v2-urna__intro { margin-bottom: 22px; }
.aim-v2-urna__intro p {
  margin: 0 0 10px;
  font-size: 14.5px;
  color: #4B5563;
  line-height: 1.65;
  max-width: 76ch;
  text-wrap: pretty;
}
.aim-v2-urna__intro p:last-child { margin-bottom: 0; }

/* Lista elecciones (índice) */
.aim-v2-urna__lista {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.aim-v2-urna__eleccion {
  display: flex;
  align-items: center;
  gap: 15px;
  text-decoration: none;
  color: inherit;
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  padding: 16px 18px;
  transition: border-color .15s, background .15s;
}
.aim-v2-urna__eleccion:hover { border-color: #2E7D32; background: #F7FBF7; }
.aim-v2-urna__eleccion-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: #E8F5E9;
  color: #2E7D32;
  display: grid;
  place-items: center;
  flex: none;
  font-size: 16px;
}
.aim-v2-urna__eleccion-body { flex: 1 1 auto; min-width: 0; }
.aim-v2-urna__eleccion-titulo {
  display: block;
  font-size: 15.5px;
  font-weight: 600;
  color: #1F2937;
  line-height: 1.4;
  text-wrap: pretty;
}
.aim-v2-urna__eleccion-meta {
  display: block;
  font-size: 13px;
  color: #6B7280;
  margin-top: 3px;
}
.aim-v2-urna__eleccion-cta {
  font-size: 13.5px;
  font-weight: 600;
  color: #2E7D32;
  white-space: nowrap;
  flex: none;
}

/* Empty state índice */
.aim-v2-urna__vacio {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: #FAFAFA;
  border-left: 4px solid #2E7D32;
  border-radius: 0 10px 10px 0;
  padding: 20px 22px;
}
.aim-v2-urna__vacio > i {
  font-size: 20px;
  color: #2E7D32;
  flex: none;
  margin-top: 2px;
}
.aim-v2-urna__vacio-t {
  font-size: 15px;
  font-weight: 600;
  color: #1F2937;
  line-height: 1.45;
  text-wrap: pretty;
}
.aim-v2-urna__vacio-p {
  margin: 6px 0 0;
  font-size: 13.5px;
  color: #4B5563;
  line-height: 1.6;
  max-width: 62ch;
  text-wrap: pretty;
}
.aim-v2-urna__vacio-simple {
  padding: 20px;
  background: #FAFAFA;
  border: 1px dashed #E5E7EB;
  border-radius: 10px;
  color: #6B7280;
  text-align: center;
  font-size: 14px;
}

/* Meta detalle */
.aim-v2-urna__meta {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  padding: 12px 14px;
  background: #F7FBF7;
  border-radius: 8px;
  margin-bottom: 15px;
  font-size: 13.5px;
  color: #4B5563;
}
.aim-v2-urna__meta strong { color: #1F2937; font-weight: 600; }
.aim-v2-urna__meta-sep {
  width: 1px;
  height: 16px;
  background: #DCE4DC;
  flex: none;
}
.aim-v2-urna__meta-integridad {
  display: flex;
  align-items: center;
  gap: 9px;
}
.aim-v2-urna__badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .02em;
}
.aim-v2-urna__badge--ok { background: #E8F5E9; color: #1B5E20; }
.aim-v2-urna__badge--err { background: #FDECEA; color: #C62828; }
.aim-v2-urna__badge--neutral { background: #F3F4F6; color: #6B7280; }

/* Aviso fallo integridad */
.aim-v2-urna__aviso-fallo {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  background: #FDECEA;
  border: 1px solid #FFCDD2;
  border-radius: 10px;
  padding: 16px 18px;
  margin-bottom: 15px;
}
.aim-v2-urna__aviso-fallo > i { font-size: 18px; color: #C62828; flex: none; margin-top: 2px; }
.aim-v2-urna__aviso-fallo-t {
  font-size: 15px;
  font-weight: 700;
  color: #C62828;
  line-height: 1.45;
}
.aim-v2-urna__aviso-fallo-p {
  margin: 8px 0 0;
  font-size: 14px;
  color: #4B5563;
  line-height: 1.6;
  max-width: 68ch;
  text-wrap: pretty;
}
.aim-v2-urna__aviso-fallo-p a { color: #2E7D32; font-weight: 600; text-decoration: none; }
.aim-v2-urna__aviso-fallo-p a:hover { color: #1B5E20; text-decoration: underline; }

/* Hash raíz */
.aim-v2-urna__raiz {
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
  padding: 12px 14px;
  background: #F5F5F5;
  border-radius: 8px;
  margin-bottom: 15px;
}
.aim-v2-urna__raiz-label {
  font-size: 12.5px;
  font-weight: 700;
  color: #6B7280;
  letter-spacing: .4px;
  text-transform: uppercase;
  flex: none;
}
.aim-v2-urna__raiz-hash {
  font-family: 'SF Mono', 'Menlo', 'Consolas', monospace;
  font-size: 12.5px;
  color: #4B5563;
  word-break: break-all;
  line-height: 1.6;
  flex: 1 1 auto;
  min-width: 0;
}

/* Tabla detalle */
.aim-v2-urna__tabla-caja {
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 10px;
  padding: 14px 16px;
}
.aim-v2-urna__tabla-scroll {
  overflow-x: auto;
}
.aim-v2-urna__tabla {
  width: 100%;
  min-width: 720px;
  border-collapse: collapse;
  font-size: 13.5px;
}
.aim-v2-urna__tabla thead th {
  text-align: left;
  padding: 8px 12px 8px 0;
  font-size: 11.5px;
  font-weight: 700;
  color: #6B7280;
  letter-spacing: .8px;
  text-transform: uppercase;
  border-bottom: 2px solid #E5E7EB;
}
.aim-v2-urna__tabla tbody tr { border-top: 1px solid #F3F4F6; }
.aim-v2-urna__tabla tbody tr:hover { background: #F9FAFB; }
.aim-v2-urna__tabla td {
  padding: 9px 12px 9px 0;
  color: #1F2937;
  vertical-align: top;
  line-height: 1.5;
}
.aim-v2-urna__td-id {
  color: #9CA3AF;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.aim-v2-urna__td-hash {
  font-family: 'SF Mono', 'Menlo', 'Consolas', monospace;
  font-size: 12.5px;
  color: #4B5563;
  word-break: break-all;
  max-width: 220px;
}
.aim-v2-urna__td-voto { max-width: 260px; }
.aim-v2-urna__td-fecha {
  color: #6B7280;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

/* Paginación */
.aim-v2-urna__paginacion {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  padding-top: 14px;
  margin-top: 6px;
  border-top: 1px solid #F3F4F6;
}
.aim-v2-urna__paginacion-rango { font-size: 13px; color: #6B7280; }
.aim-v2-urna__paginacion-btns {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-left: auto;
}
.aim-v2-urna__pag-btn {
  display: inline-flex;
  align-items: center;
  padding: 6px 11px;
  font-size: 13px;
  font-weight: 600;
  color: #2E7D32;
  text-decoration: none;
  border-radius: 6px;
  transition: background .15s;
}
.aim-v2-urna__pag-btn:hover { background: #F1F8E9; }
.aim-v2-urna__pag-btn--current {
  background: #2E7D32;
  color: #FFF;
}

/* Responsive < 600px */
@media (max-width: 600px) {
  .aim-v2-urna { padding: 20px 16px 24px; }
  .aim-v2-urna__cabecera { flex-wrap: wrap; gap: 12px; }
  .aim-v2-urna__cabecera-body h1 { font-size: 21px; }
  .aim-v2-urna__meta { flex-direction: column; align-items: flex-start; gap: 10px; }
  .aim-v2-urna__meta-sep { display: none; }
  .aim-v2-urna__paginacion { flex-direction: column; align-items: stretch; }
  .aim-v2-urna__paginacion-btns { margin-left: 0; }
}


/* ============================================================================
 * [aim_candidatarme] - Design mock 2026-08-10
 *
 * Embebido dentro de la página de una elección con nominación abierta.
 * 2 modos: por_puesto (1 select) o lista_cerrada (nombre + N selects).
 * ============================================================================ */

.aim-v2-cand {
  background: #F7FBF7;
  border: 1px solid #C8E6C9;
  border-radius: 12px;
  padding: 18px 20px 20px;
  margin: 14px 0;
  color: #1F2937;
}

.aim-v2-cand__h3 {
  margin: 0;
  font-size: 15.5px;
  font-weight: 600;
  color: #2E7D32;
  letter-spacing: -0.01em;
}

.aim-v2-cand__flash {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  padding: 12px 14px;
  border-radius: 8px;
  margin-top: 14px;
}
.aim-v2-cand__flash > i { font-size: 16px; flex: none; margin-top: 2px; }
.aim-v2-cand__flash > span { font-size: 14px; line-height: 1.55; font-weight: 600; text-wrap: pretty; }
.aim-v2-cand__flash--ok { background: #E8F5E9; border: 1px solid #C8E6C9; }
.aim-v2-cand__flash--ok > i, .aim-v2-cand__flash--ok > span { color: #1B5E20; }
.aim-v2-cand__flash--err { background: #FDECEA; border: 1px solid #FFCDD2; }
.aim-v2-cand__flash--err > i, .aim-v2-cand__flash--err > span { color: #C62828; }

.aim-v2-cand__bloqueo {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  background: #FAFAFA;
  border: 1px solid #E5E7EB;
  border-radius: 10px;
}
.aim-v2-cand__bloqueo > i { font-size: 16px; color: #6B7280; flex: none; margin-top: 2px; }
.aim-v2-cand__bloqueo-t {
  font-size: 14.5px;
  color: #1F2937;
  line-height: 1.6;
  text-wrap: pretty;
}
.aim-v2-cand__bloqueo-ayuda {
  margin: 8px 0 0;
  font-size: 13px;
  color: #4B5563;
  line-height: 1.55;
}
.aim-v2-cand__bloqueo-ayuda a { color: #2E7D32; font-weight: 600; text-decoration: none; }
.aim-v2-cand__bloqueo-ayuda a:hover { color: #1B5E20; text-decoration: underline; }

/* Form */
.aim-v2-cand__form { margin-top: 16px; }

.aim-v2-cand__campo { display: block; margin-bottom: 14px; }
.aim-v2-cand__campo label {
  display: block;
  font-size: 12.5px;
  font-weight: 700;
  color: #333;
  margin-bottom: 6px;
  letter-spacing: .01em;
}
.aim-v2-cand__campo select,
.aim-v2-cand__campo input[type="text"] {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #D8DCD8;
  border-radius: 8px;
  padding: 10px 12px;
  font-family: inherit;
  font-size: 14.5px;
  color: #1F2937;
  background: #FFF;
  transition: border-color .15s, box-shadow .15s;
}
.aim-v2-cand__campo select:focus,
.aim-v2-cand__campo input:focus {
  outline: none;
  border-color: #2E7D32;
  box-shadow: 0 0 0 3px rgba(46,125,50,.14);
}

.aim-v2-cand__puestos-t {
  margin: 16px 0 10px;
  font-size: 14.5px;
  color: #1F2937;
  font-weight: 600;
  line-height: 1.55;
}
.aim-v2-cand__rejilla {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px 16px;
}
.aim-v2-cand__rejilla .aim-v2-cand__campo { margin-bottom: 0; }

.aim-v2-cand__btn {
  margin-top: 16px;
  background: #2E7D32;
  border: 1px solid #2E7D32;
  color: #FFF;
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  border-radius: 8px;
  padding: 11px 22px;
  cursor: pointer;
  transition: background .15s;
}
.aim-v2-cand__btn:hover { background: #1B5E20; border-color: #1B5E20; }

.aim-v2-cand__nota {
  margin: 12px 0 0;
  font-size: 12.5px;
  color: #6B7280;
  line-height: 1.55;
  max-width: 60ch;
  text-wrap: pretty;
}

/* Responsive < 600px */
@media (max-width: 600px) {
  .aim-v2-cand { padding: 16px 14px 18px; }
  .aim-v2-cand__rejilla { grid-template-columns: 1fr; }
}

/* ============================================================
   /mi-foto/ · Editor de recorte de foto del carnet (Cropper.js v1)
   Diseño Design 2026-08-12
   ============================================================ */

.aim-v2-foto {
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  padding: 28px 30px 30px;
  font-size: 14px;
  color: #1F2937;
}
.aim-v2-foto__h2 {
  margin: 0;
  font-family: Raleway, sans-serif;
  font-size: 25px;
  font-weight: 700;
  color: #1F2937;
  letter-spacing: -0.5px;
  line-height: 1.25;
}
.aim-v2-foto__intro {
  margin: 9px 0 0;
  font-size: 14.5px;
  color: #4B5563;
  line-height: 1.65;
  max-width: 62ch;
  text-wrap: pretty;
}

/* Foto actual (si existe) — se muestra en pequeño arriba del editor */
.aim-v2-foto__actual {
  display: flex;
  align-items: center;
  gap: 16px;
  background: #F7FBF7;
  border: 1px solid #E3EFE4;
  border-radius: 12px;
  padding: 14px 16px;
  margin-top: 22px;
}
.aim-v2-foto__actual-marco {
  width: 60px;
  height: 75px;
  border-radius: 6px;
  overflow: hidden;
  flex: none;
  background: #FFF;
  border: 1px solid #E5E7EB;
}
.aim-v2-foto__actual-marco img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.aim-v2-foto__actual-info { flex: 1 1 auto; min-width: 0; }
.aim-v2-foto__actual-titulo { font-size: 13.5px; font-weight: 600; color: #1F2937; }
.aim-v2-foto__actual-hint { font-size: 12.5px; color: #6B7280; margin-top: 3px; }

/* Estado 1 · dropzone (sin foto elegida todavía) */
.aim-v2-foto__vacio { margin-top: 22px; }
.aim-v2-foto__dropzone {
  display: block;
  text-align: center;
  border: 2px dashed #C8E6C9;
  background: #F8FBF8;
  border-radius: 14px;
  padding: 42px 30px;
  cursor: pointer;
  transition: background .15s, border-color .15s;
}
.aim-v2-foto__dropzone:hover,
.aim-v2-foto__dropzone.is-drag {
  background: #F1F8E9;
  border-color: #2E7D32;
}
.aim-v2-foto__dropzone-ico {
  width: 60px;
  height: 60px;
  border-radius: 16px;
  background: #E8F5E9;
  color: #2E7D32;
  display: grid;
  place-items: center;
  margin: 0 auto;
}
.aim-v2-foto__dropzone-ico i { font-size: 25px; }
.aim-v2-foto__dropzone-titulo {
  display: block;
  font-size: 17px;
  font-weight: 600;
  color: #1F2937;
  margin-top: 16px;
  line-height: 1.4;
}
.aim-v2-foto__dropzone-sub {
  display: block;
  font-size: 14px;
  color: #4B5563;
  margin-top: 7px;
  line-height: 1.55;
  text-wrap: pretty;
}
.aim-v2-foto__dropzone-sub--movil { display: none; }
.aim-v2-foto__dropzone-nota {
  display: block;
  font-size: 12.5px;
  color: #6B7280;
  margin-top: 14px;
  line-height: 1.6;
  max-width: 46ch;
  margin-left: auto;
  margin-right: auto;
  text-wrap: pretty;
}

/* Estado 2 · editor activo */
.aim-v2-foto__editor {
  display: flex;
  gap: 24px;
  align-items: flex-start;
  margin-top: 24px;
}
.aim-v2-foto__editor[hidden] { display: none; }
.aim-v2-foto__col-crop { flex: 1 1 auto; min-width: 0; }
.aim-v2-foto__col-panel {
  flex: 0 0 250px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.aim-v2-foto__crop-caja {
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  padding: 14px;
}
.aim-v2-foto__lienzo {
  position: relative;
  overflow: hidden;
  border-radius: 8px;
  background: #2A2A2A;
  height: 400px;
}
.aim-v2-foto__lienzo img {
  display: block;
  max-width: 100%;
}
/* Cropper.js overrides — marco 4:5, esquinas blancas, sin tiradores. */
.aim-v2-foto__lienzo .cropper-view-box {
  outline: 2px solid rgba(255,255,255,.92);
  outline-color: rgba(255,255,255,.92);
  border-radius: 2px;
}
.aim-v2-foto__lienzo .cropper-face { background: transparent; }
.aim-v2-foto__lienzo .cropper-line,
.aim-v2-foto__lienzo .cropper-point { display: none; }
.aim-v2-foto__lienzo .cropper-modal { background: #000; opacity: .55; }
.aim-v2-foto__lienzo .cropper-dashed { border-color: rgba(255,255,255,.34); }
.aim-v2-foto__lienzo .cropper-center::before,
.aim-v2-foto__lienzo .cropper-center::after { display: none; }

.aim-v2-foto__velo-guardando {
  position: absolute;
  inset: 0;
  background: rgba(15,58,22,.34);
  display: grid;
  place-items: center;
  z-index: 3;
}
.aim-v2-foto__velo-guardando[hidden] { display: none; }
.aim-v2-foto__spinner-grande {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 3px solid rgba(255,255,255,.35);
  border-top-color: #FFF;
  animation: aim-spin .7s linear infinite;
}
@keyframes aim-spin { to { transform: rotate(360deg); } }

.aim-v2-foto__pie-crop {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding: 12px 4px 2px;
  font-size: 13px;
  color: #6B7280;
  line-height: 1.55;
}
.aim-v2-foto__pie-crop i { font-size: 13px; color: #9CA3AF; flex: none; margin-top: 3px; }

/* Bloque zoom + preview del panel derecho */
.aim-v2-foto__bloque-zoom,
.aim-v2-foto__bloque-preview {
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  padding: 16px 18px;
}
.aim-v2-foto__bloque-zoom { background: #F7FBF7; border-color: #E3EFE4; }
.aim-v2-foto__bloque-titulo {
  font-size: 11.5px;
  font-weight: 700;
  color: #6B7280;
  letter-spacing: 1.2px;
  text-transform: uppercase;
}
.aim-v2-foto__zoom-fila {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 13px;
}
.aim-v2-foto__btn-zoom {
  width: 42px;
  height: 42px;
  border-radius: 9px;
  border: 1px solid #C8E6C9;
  background: #FFF;
  color: #2E7D32;
  display: grid;
  place-items: center;
  cursor: pointer;
  flex: none;
  font-family: inherit;
}
.aim-v2-foto__btn-zoom:hover { background: #E8F5E9; }
.aim-v2-foto__zoom-range {
  flex: 1 1 auto;
  min-width: 0;
  height: 6px;
  border-radius: 999px;
  background: #DCEBDD;
  appearance: none;
  outline: none;
  cursor: pointer;
}
.aim-v2-foto__zoom-range::-webkit-slider-thumb {
  appearance: none;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #FFF;
  border: 2px solid #2E7D32;
  box-shadow: 0 2px 6px rgba(0,0,0,.18);
  cursor: pointer;
}
.aim-v2-foto__zoom-range::-moz-range-thumb {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #FFF;
  border: 2px solid #2E7D32;
  box-shadow: 0 2px 6px rgba(0,0,0,.18);
  cursor: pointer;
}
.aim-v2-foto__zoom-hint {
  font-size: 12.5px;
  color: #9CA3AF;
  margin-top: 12px;
  line-height: 1.6;
  text-wrap: pretty;
}
.aim-v2-foto__zoom-hint--movil { display: none; }

.aim-v2-foto__preview-fila {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 13px;
}
.aim-v2-foto__preview-marco {
  width: 76px;
  height: 95px;
  border-radius: 6px;
  overflow: hidden;
  flex: none;
  background: #D9CBBA;
  border: 1px solid #E5E7EB;
  display: block;
}
.aim-v2-foto__preview-marco img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.aim-v2-foto__preview-texto { flex: 1 1 auto; min-width: 0; }
.aim-v2-foto__preview-linea1 {
  font-size: 13.5px;
  color: #4B5563;
  line-height: 1.6;
}
.aim-v2-foto__preview-linea2 {
  font-size: 12.5px;
  color: #9CA3AF;
  margin-top: 4px;
  line-height: 1.55;
}

/* Alertas (error / ok) */
.aim-v2-foto__alert {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  border-radius: 12px;
  padding: 20px 22px;
  margin-top: 20px;
}
.aim-v2-foto__alert[hidden] { display: none; }
.aim-v2-foto__alert.aim-v2-alert--error {
  background: #FDECEA;
  border: 1px solid #FFCDD2;
}
.aim-v2-foto__alert.aim-v2-alert--error > i.fa { font-size: 19px; color: #C62828; flex: none; margin-top: 2px; }
.aim-v2-foto__alert.aim-v2-alert--ok {
  background: #F1F8E9;
  border: 1px solid #C8E6C9;
}
.aim-v2-foto__alert.aim-v2-alert--ok > i.fa { font-size: 19px; color: #1B5E20; flex: none; margin-top: 2px; }
.aim-v2-foto__alert .aim-v2-alert__body { flex: 1 1 auto; min-width: 0; }
.aim-v2-foto__alert .aim-v2-alert__titulo {
  font-size: 15.5px;
  font-weight: 700;
  line-height: 1.45;
  text-wrap: pretty;
}
.aim-v2-foto__alert.aim-v2-alert--error .aim-v2-alert__titulo { color: #C62828; }
.aim-v2-foto__alert.aim-v2-alert--ok .aim-v2-alert__titulo { color: #1B5E20; }
.aim-v2-foto__alert .aim-v2-alert__texto {
  margin: 7px 0 0;
  font-size: 14px;
  color: #4B5563;
  line-height: 1.6;
  max-width: 60ch;
  text-wrap: pretty;
}
.aim-v2-foto__alert-acciones {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 14px;
}

/* Botones */
.aim-v2-foto__acciones {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid #F0F1F2;
}
.aim-v2-foto__acciones[hidden] { display: none; }
.aim-v2-foto__btn {
  font-family: inherit;
  font-size: 14.5px;
  font-weight: 600;
  border-radius: 8px;
  cursor: pointer;
  border: 1px solid;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 13px 24px;
  min-height: 48px;
  box-sizing: border-box;
  text-decoration: none;
  transition: background .15s, border-color .15s;
}
.aim-v2-foto__btn--pri {
  background: #2E7D32;
  border-color: #2E7D32;
  color: #FFF;
  margin-left: auto;
}
.aim-v2-foto__btn--pri:hover,
.aim-v2-foto__btn--pri:focus-visible { background: #1B5E20; border-color: #1B5E20; color: #FFF; text-decoration: none; }
.aim-v2-foto__btn--sec {
  background: #FFF;
  border-color: #D8DCD8;
  color: #1F2937;
  padding: 13px 22px;
}
.aim-v2-foto__btn--sec:hover,
.aim-v2-foto__btn--sec:focus-visible { border-color: #2E7D32; color: #2E7D32; text-decoration: none; }
.aim-v2-foto__btn--reintentar {
  background: #C62828;
  border-color: #C62828;
  color: #FFF;
  padding: 11px 20px;
  min-height: 44px;
  font-size: 14px;
}
.aim-v2-foto__btn--reintentar:hover,
.aim-v2-foto__btn--reintentar:focus-visible { background: #B71C1C; border-color: #B71C1C; }
.aim-v2-foto__btn[disabled],
.aim-v2-foto__btn.is-guardando {
  opacity: .72;
  cursor: default;
}
.aim-v2-foto__btn-spinner {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,.4);
  border-top-color: #FFF;
  animation: aim-spin .7s linear infinite;
  display: none;
  flex: none;
}
.aim-v2-foto__btn.is-guardando .aim-v2-foto__btn-spinner { display: block; }

/* Móvil */
@media (max-width: 640px) {
  .aim-v2-foto { padding: 22px 16px 26px; border-radius: 14px; }
  .aim-v2-foto__h2 { font-size: 22px; }
  .aim-v2-foto__dropzone { padding: 30px 18px; }
  .aim-v2-foto__dropzone-sub { display: none; }
  .aim-v2-foto__dropzone-sub--movil { display: block; }
  .aim-v2-foto__editor { flex-direction: column; gap: 16px; margin-top: 22px; }
  .aim-v2-foto__col-panel { flex: 1 1 auto; }
  .aim-v2-foto__lienzo { height: 330px; }
  .aim-v2-foto__zoom-hint { display: none; }
  .aim-v2-foto__zoom-hint--movil { display: block; }
  .aim-v2-foto__acciones { flex-direction: column-reverse; }
  .aim-v2-foto__btn--pri,
  .aim-v2-foto__btn--sec { width: 100%; margin-left: 0; }
}

/* ============================================================
   /mi-actividad/ · Portal de una inscripción
   ============================================================ */

.aim-v2-actividad {
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 0 0 14px 14px;
  padding: 26px 28px 32px;
  font-size: 14px;
  color: #1F2937;
}

/* Estados vacío / router / sin-pid / denegado */
.aim-v2-actividad__vacio,
.aim-v2-actividad__aviso {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 15px 17px;
  border-radius: 10px;
}
.aim-v2-actividad__vacio { background: #F7FBF7; border: 1px solid #E3EFE4; }
.aim-v2-actividad__vacio > i.fa { font-size: 20px; color: #2E7D32; flex: none; margin-top: 2px; }
.aim-v2-actividad__vacio-t {
  font-size: 15px; font-weight: 600; line-height: 1.45; text-wrap: pretty;
}
.aim-v2-actividad__vacio-p {
  margin: 8px 0 0; font-size: 13.5px; color: #4B5563;
  line-height: 1.6; max-width: 64ch; text-wrap: pretty;
}

.aim-v2-actividad__aviso--info { background: #F7FBF7; border: 1px solid #E3EFE4; }
.aim-v2-actividad__aviso--info > i.fa { font-size: 20px; color: #2E7D32; flex: none; margin-top: 2px; }
.aim-v2-actividad__aviso--err { background: #FDECEA; border: 1px solid #FFCDD2; }
.aim-v2-actividad__aviso--err > i.fa { font-size: 20px; color: #C62828; flex: none; margin-top: 2px; }
.aim-v2-actividad__aviso-t {
  font-size: 15px; font-weight: 700; line-height: 1.45; color: #1F2937;
}
.aim-v2-actividad__aviso--err .aim-v2-actividad__aviso-t { color: #C62828; }
.aim-v2-actividad__aviso-p {
  margin: 8px 0 0; font-size: 14px; color: #4B5563;
  line-height: 1.6; max-width: 66ch; text-wrap: pretty;
}

/* Router (listado múltiples inscripciones) */
.aim-v2-actividad__router-t {
  margin: 0 0 16px;
  font-size: 15px; color: #1F2937; line-height: 1.6; font-weight: 600;
}
.aim-v2-actividad__router { display: block; }

/* Detalle */
.aim-v2-actividad__detalle { display: block; }

.aim-v2-actividad__volver {
  display: inline-flex; align-items: center; gap: 6px;
  text-decoration: none; font-size: 13px; font-weight: 600;
  color: #4B5563; margin-bottom: 18px;
}
.aim-v2-actividad__volver:hover { color: #2E7D32; }

.aim-v2-actividad__banner {
  margin: 0 0 18px;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid #E5E7EB;
}
.aim-v2-actividad__banner img { display: block; width: 100%; height: auto; }

.aim-v2-actividad__hero {
  padding: 0 0 18px;
  border-bottom: 1px solid #F3F4F6;
  margin-bottom: 20px;
}
.aim-v2-actividad__hero-top {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.aim-v2-actividad__badge {
  display: inline-block;
  padding: 4px 11px;
  border-radius: 999px;
  font-size: 12px; font-weight: 700;
  letter-spacing: 0.2px;
}
.aim-v2-actividad__badge--ok    { background: #E8F5E9; color: #1B5E20; }
.aim-v2-actividad__badge--info  { background: #E3F2FD; color: #0D47A1; }
.aim-v2-actividad__badge--err   { background: #FDECEA; color: #C62828; }
.aim-v2-actividad__badge--warn  { background: #FFF3E0; color: #E65100; }
.aim-v2-actividad__badge--muted { background: #F3F4F6; color: #616161; }

.aim-v2-actividad__hero-inscrito {
  font-size: 12.5px; color: #6B7280;
}
.aim-v2-actividad__hero-t {
  margin: 11px 0 0;
  font-size: 22px; font-weight: 700; color: #1F2937;
  letter-spacing: -0.35px; line-height: 1.3; text-wrap: pretty;
}
.aim-v2-actividad__hero-meta {
  display: flex; gap: 18px; flex-wrap: wrap; margin-top: 8px;
}
.aim-v2-actividad__hero-meta > span {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13.5px; color: #4B5563;
}
.aim-v2-actividad__hero-meta i.fa {
  font-size: 14px; color: #2E7D32;
}

.aim-v2-actividad__h3 {
  margin: 24px 0 10px;
  font-size: 12.5px; font-weight: 700;
  color: #6B7280;
  text-transform: uppercase; letter-spacing: 0.8px;
}

.aim-v2-actividad__datos,
.aim-v2-actividad table.aim-v2-actividad__datos {
  width: 100%; border-collapse: collapse; font-size: 14px; margin-top: 6px;
}
.aim-v2-actividad__datos th,
.aim-v2-actividad__datos td {
  border: 0; background: transparent;
  padding: 11px 14px 11px 0;
  text-align: left; vertical-align: top;
}
.aim-v2-actividad__datos tr { border-top: 1px solid #F3F4F6; }
.aim-v2-actividad__datos th {
  width: 32%;
  color: #6B7280; font-weight: 500;
}
.aim-v2-actividad__datos td { color: #1F2937; }

.aim-v2-actividad__docs {
  display: flex; flex-wrap: wrap; gap: 10px;
  margin-top: 10px;
}
.aim-v2-actividad__docs .aim-btn,
.aim-v2-actividad__docs button,
.aim-v2-actividad__docs .aim-badge,
.aim-v2-actividad__docs .aim-form-help {
  font-size: 13.5px;
}

@media (max-width: 600px) {
  .aim-v2-actividad { padding: 20px 16px 26px; }
  .aim-v2-actividad__hero-t { font-size: 19px; }
  .aim-v2-actividad__hero-meta { gap: 12px; flex-direction: column; }
  .aim-v2-actividad__datos th,
  .aim-v2-actividad__datos td { display: block; padding: 6px 0; width: 100%; }
  .aim-v2-actividad__datos th { font-size: 12px; color: #9CA3AF; padding-top: 12px; }
  .aim-v2-actividad__docs { flex-direction: column; align-items: stretch; }
  .aim-v2-actividad__docs > * { width: 100%; text-align: center; }
}

/* ============================================================
   /candidatura-consent/ · Consent tokenizado del candidato
   (checksum-only, sin chrome del área socio)
   ============================================================ */

.aim-v2-consent {
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  padding: 26px 28px 32px;
  max-width: 760px;
  margin: 24px auto;
  font-size: 14px;
  color: #1F2937;
  font-family: 'Open Sans', 'Source Sans 3', 'Helvetica Neue', Arial, sans-serif;
}

.aim-v2-consent__cabecera {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  flex-wrap: wrap;
  padding-bottom: 20px;
  border-bottom: 1px solid #F0F1F2;
}
.aim-v2-consent__ico {
  width: 42px; height: 42px; border-radius: 11px;
  display: grid; place-items: center; flex: none;
}
.aim-v2-consent__ico i.fa { font-size: 19px; }
.aim-v2-consent__ico--brand { background: #E8F5E9; color: #2E7D32; }
.aim-v2-consent__ico--err   { background: #FDECEA; color: #C62828; }
.aim-v2-consent__ico--warn  { background: #FFF3E0; color: #E65100; }

.aim-v2-consent__kicker {
  font-size: 11.5px; font-weight: 700; color: #6B7280;
  letter-spacing: 1.2px; text-transform: uppercase;
}
.aim-v2-consent__titulo {
  margin: 6px 0 0;
  font-size: 22px; font-weight: 700; color: #1F2937;
  letter-spacing: -0.35px; line-height: 1.3; text-wrap: pretty;
}

.aim-v2-consent__aviso-solo {
  display: flex; align-items: flex-start; gap: 14px;
  border-radius: 12px; padding: 18px 20px; margin-top: 22px;
}
.aim-v2-consent__aviso-solo i.fa { font-size: 18px; flex: none; margin-top: 2px; }
.aim-v2-consent__aviso-solo--err  { background: #FDECEA; border: 1px solid #FFCDD2; }
.aim-v2-consent__aviso-solo--err i.fa { color: #C62828; }
.aim-v2-consent__aviso-solo--warn { background: #FFF3E0; border: 1px solid #FFE082; }
.aim-v2-consent__aviso-solo--warn i.fa { color: #E65100; }
.aim-v2-consent__aviso-solo-t {
  font-size: 15.5px; font-weight: 700; line-height: 1.45; text-wrap: pretty;
}
.aim-v2-consent__aviso-solo--err .aim-v2-consent__aviso-solo-t { color: #C62828; }
.aim-v2-consent__aviso-solo--warn .aim-v2-consent__aviso-solo-t { color: #A04A00; }
.aim-v2-consent__aviso-solo p {
  margin: 8px 0 0; font-size: 14px; color: #4B5563;
  line-height: 1.6; max-width: 66ch; text-wrap: pretty;
}

.aim-v2-consent__cuerpo { margin-top: 22px; }
.aim-v2-consent__saludo {
  margin: 0; font-size: 16px; color: #1F2937; line-height: 1.6;
}

.aim-v2-consent__ficha {
  background: #F7FBF7; border: 1px solid #E3EFE4;
  border-radius: 12px; padding: 18px 20px; margin-top: 14px;
}
.aim-v2-consent__ficha p {
  margin: 0; font-size: 15.5px; color: #1F2937;
  line-height: 1.65; text-wrap: pretty;
}
.aim-v2-consent__ficha-promotor {
  margin: 8px 0 0 !important;
  font-size: 14px !important; color: #4B5563 !important;
}
.aim-v2-consent__ficha-promotor strong { color: #1F2937; }

.aim-v2-consent__banner {
  display: flex; align-items: flex-start; gap: 13px;
  border-radius: 12px; padding: 16px 18px; margin-top: 16px;
}
.aim-v2-consent__banner i.fa { font-size: 18px; flex: none; margin-top: 2px; }
.aim-v2-consent__banner--ok  { background: #E8F5E9; border: 1px solid #C8E6C9; }
.aim-v2-consent__banner--ok  i.fa { color: #1B5E20; }
.aim-v2-consent__banner--err { background: #FDECEA; border: 1px solid #FFCDD2; }
.aim-v2-consent__banner--err i.fa { color: #C62828; }
.aim-v2-consent__banner-t {
  font-size: 15px; font-weight: 700; line-height: 1.5; text-wrap: pretty;
}
.aim-v2-consent__banner--ok  .aim-v2-consent__banner-t { color: #1B5E20; }
.aim-v2-consent__banner--err .aim-v2-consent__banner-t { color: #C62828; }
.aim-v2-consent__banner-motivo {
  margin: 12px 0 0; padding: 0 0 0 14px;
  border-left: 3px solid #E5C7C5;
  font-size: 13.5px; color: #6B7280; line-height: 1.6;
  font-style: italic; text-wrap: pretty;
}
.aim-v2-consent__banner-nota {
  margin: 10px 0 0; font-size: 13.5px; color: #4B5563; line-height: 1.6;
}

.aim-v2-consent__proceso { margin-top: 26px; }
.aim-v2-consent__proceso h2 {
  margin: 0; font-size: 11.5px; font-weight: 700; color: #6B7280;
  letter-spacing: 1.2px; text-transform: uppercase;
  padding-bottom: 7px; border-bottom: 1px solid #E5E7EB;
}
.aim-v2-consent__proceso ul {
  margin: 14px 0 0; padding-left: 20px;
}
.aim-v2-consent__proceso li {
  font-size: 14px; color: #4B5563; line-height: 1.65;
  margin-bottom: 8px; text-wrap: pretty;
}

.aim-v2-consent__plazo {
  display: flex; align-items: center; gap: 11px; flex-wrap: wrap;
  background: #FAFAFA; border: 1px solid #E5E7EB;
  border-radius: 10px; padding: 13px 16px; margin-top: 22px;
}
.aim-v2-consent__plazo i.fa { font-size: 16px; color: #2E7D32; flex: none; }
.aim-v2-consent__plazo span {
  font-size: 14.5px; color: #1F2937; line-height: 1.55;
}

.aim-v2-consent__botones {
  display: flex; gap: 12px; flex-wrap: wrap; margin-top: 24px;
}
.aim-v2-consent__btn {
  font-family: inherit; font-size: 15px; font-weight: 600;
  border-radius: 10px; padding: 14px 26px; cursor: pointer;
  border: 1px solid;
}
.aim-v2-consent__btn--ok  { background: #2E7D32; border-color: #2E7D32; color: #FFF; }
.aim-v2-consent__btn--ok:hover  { background: #1B5E20; border-color: #1B5E20; }
.aim-v2-consent__btn--no  { background: #FFF; border-color: #FFCDD2; color: #C62828; }
.aim-v2-consent__btn--no:hover  { background: #FDECEA; }

.aim-v2-consent textarea:focus {
  border-color: #2E7D32;
  box-shadow: 0 0 0 3px rgba(46,125,50,.14);
  outline: none;
}

/* Modal de rechazo */
.aim-v2-consent__modal-velo {
  position: fixed; inset: 0;
  background: rgba(0,0,0,.45); z-index: 9000;
}
.aim-v2-consent__modal {
  position: fixed; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: min(540px, 94vw);
  background: #FFF; border-radius: 14px;
  box-shadow: 0 30px 70px -20px rgba(0,0,0,.45);
  z-index: 9010;
}
.aim-v2-consent__modal-header {
  display: flex; align-items: flex-start; gap: 14px;
  padding: 20px 22px 0;
}
.aim-v2-consent__modal-ico {
  width: 36px; height: 36px; border-radius: 9px;
  background: #FFEBEE; display: grid; place-items: center; flex: none;
}
.aim-v2-consent__modal-ico i.fa { font-size: 16px; color: #C62828; }
.aim-v2-consent__modal-header h3 {
  margin: 0; font-size: 19px; font-weight: 600;
  letter-spacing: -0.2px; line-height: 1.35; flex: 1 1 auto;
}
.aim-v2-consent__modal-close {
  flex: none; width: 32px; height: 32px;
  display: grid; place-items: center;
  border: 0; border-radius: 8px; background: transparent;
  color: #6B7280; font-size: 21px; line-height: 1;
  cursor: pointer; font-family: inherit;
}
.aim-v2-consent__modal-close:hover { background: #F3F4F6; color: #1F2937; }

.aim-v2-consent__modal-body { padding: 14px 22px 0; }
.aim-v2-consent__modal-body p {
  margin: 0; font-size: 14.5px; color: #4B5563;
  line-height: 1.65; text-wrap: pretty;
}
.aim-v2-consent__modal-body label {
  display: block; font-size: 12.5px; font-weight: 700;
  color: #333; margin: 18px 0 6px;
}
.aim-v2-consent__modal-body textarea {
  width: 100%; box-sizing: border-box;
  border: 1px solid #D8DCD8; border-radius: 8px;
  padding: 10px 12px; font-family: inherit; font-size: 14.5px;
  color: #1F2937; background: #FFF; resize: vertical; line-height: 1.55;
}
.aim-v2-consent__modal-footer {
  display: flex; gap: 10px; justify-content: flex-end;
  flex-wrap: wrap; padding: 20px 22px 22px;
}
.aim-v2-consent__modal-cancel {
  background: #F5F5F5; border: 1px solid transparent; color: #333;
  font-family: inherit; font-size: 14px; font-weight: 600;
  border-radius: 8px; padding: 11px 18px; cursor: pointer;
}
.aim-v2-consent__modal-cancel:hover { background: #ECECEC; }
.aim-v2-consent__modal-confirm {
  background: #C62828; border: 1px solid #C62828; color: #FFF;
  font-family: inherit; font-size: 14px; font-weight: 600;
  border-radius: 8px; padding: 11px 18px; cursor: pointer;
}
.aim-v2-consent__modal-confirm:hover { background: #A31D1D; }

@media (max-width: 600px) {
  .aim-v2-consent { padding: 20px 16px 26px; }
  .aim-v2-consent__botones { flex-direction: column; }
  .aim-v2-consent__btn { width: 100%; }
}

/* ============================================================
   /candidatarme/ · extensión: seguimiento + sustitución (aim-v2-cand)
   ============================================================ */

.aim-v2-cand__flash--warn {
  background: #FFF3E0; border: 1px solid #FFE082;
}
.aim-v2-cand__flash--warn > i.fa { color: #E65100; }
.aim-v2-cand__flash--warn > span { color: #A04A00; }

.aim-v2-cand__seg-t {
  margin: 22px 0 0;
  font-size: 14.5px; font-weight: 600; color: #1F2937;
}
.aim-v2-cand__seg-wrap {
  margin-top: 12px; overflow-x: auto;
}
.aim-v2-cand__seg {
  width: 100%; border-collapse: collapse; font-size: 14px;
}
.aim-v2-cand__seg th {
  text-align: left;
  padding: 0 14px 9px 0;
  font-size: 11.5px; font-weight: 700; color: #6B7280;
  letter-spacing: .6px; text-transform: uppercase;
  border-bottom: 2px solid #E5E7EB;
  white-space: nowrap;
}
.aim-v2-cand__seg-th-der,
.aim-v2-cand__seg-td-der {
  text-align: right !important;
  padding-right: 0 !important;
}
.aim-v2-cand__seg tbody tr { border-top: 1px solid #F3F4F6; }
.aim-v2-cand__seg td {
  padding: 11px 14px 11px 0;
  vertical-align: top;
  color: #4B5563;
}
.aim-v2-cand__seg td:first-child { white-space: nowrap; }

.aim-v2-cand__seg-nombre { color: #1F2937; }
.aim-v2-cand__seg-nombre--vacante { color: #C7CDD3; }
.aim-v2-cand__seg-sust {
  margin-left: 12px; font-size: 13px; font-weight: 600;
  text-decoration: none;
}
.aim-v2-cand__seg-motivo {
  margin: 8px 0 0; padding: 0 0 0 12px;
  border-left: 3px solid #E5C7C5;
  font-size: 12.5px; color: #9CA3AF; line-height: 1.55;
  font-style: italic; text-wrap: pretty;
}
.aim-v2-cand__seg-badge {
  display: inline-block; border-radius: 4px;
  padding: 3px 10px; font-size: 11.5px; font-weight: 700;
  white-space: nowrap;
}
.aim-v2-cand__seg-badge--ok   { color: #1B5E20; background: #E8F5E9; }
.aim-v2-cand__seg-badge--wait { color: #A04A00; background: #FFF3E0; }
.aim-v2-cand__seg-badge--no   { color: #C62828; background: #FDECEA; }

.aim-v2-cand__seg-nota {
  margin: 16px 0 0;
  font-size: 13.5px; color: #6B7280; line-height: 1.6;
  max-width: 68ch; text-wrap: pretty;
}

.aim-v2-cand__sust {
  margin-top: 22px; padding-top: 20px;
  border-top: 1px solid #F0F1F2;
}
.aim-v2-cand__sust h4 {
  margin: 0; font-size: 14.5px; font-weight: 600; color: #1F2937;
}
.aim-v2-cand__sust-fila {
  display: flex; gap: 12px; flex-wrap: wrap;
  align-items: center; margin-top: 12px;
}
.aim-v2-cand__sust-fila select {
  max-width: 300px;
  box-sizing: border-box;
  border: 1px solid #D8DCD8; border-radius: 8px;
  padding: 10px 12px; font-family: inherit; font-size: 14.5px;
  color: #1F2937; background: #FFF;
}

@media (max-width: 600px) {
  .aim-v2-cand__sust-fila { flex-direction: column; align-items: stretch; }
  .aim-v2-cand__sust-fila select { max-width: none; width: 100%; }
  .aim-v2-cand__sust-fila button { width: 100%; }
}

/* ============================================================
   /ayuda/ · [aim_ayuda_ticket] · Formulario de ticket
   ============================================================ */

.aim-v2-ticket {
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 0 0 14px 14px;
  padding: 24px 26px 30px;
  font-size: 14px;
  color: #1F2937;
}

.aim-v2-alert {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  border-radius: 10px;
  padding: 18px 20px;
}
.aim-v2-alert > i.fa { font-size: 19px; flex: none; margin-top: 2px; }
.aim-v2-alert__t {
  font-size: 15.5px; font-weight: 700; line-height: 1.45;
}
.aim-v2-alert p { margin: 7px 0 0; font-size: 14px; color: #4B5563; line-height: 1.6; max-width: 64ch; text-wrap: pretty; }
.aim-v2-alert--ok { background: #E8F5E9; border: 1px solid #C8E6C9; }
.aim-v2-alert--ok > i.fa { color: #1B5E20; }
.aim-v2-alert--ok .aim-v2-alert__t { color: #1B5E20; }
.aim-v2-alert--error { background: #FDECEA; border: 1px solid #FFCDD2; margin-bottom: 22px; }
.aim-v2-alert--error > i.fa { color: #C62828; }
.aim-v2-alert--error .aim-v2-alert__t { color: #C62828; }
.aim-v2-alert--warn { background: #FFF3E0; border: 1px solid #FFE082; }
.aim-v2-alert--warn > i.fa { color: #E65100; }
.aim-v2-alert--warn .aim-v2-alert__t { color: #A04A00; }

.aim-v2-ticket__intro {
  margin: 0;
  font-size: 15px; color: #4B5563; line-height: 1.65;
  max-width: 70ch; text-wrap: pretty;
}

.aim-v2-ticket__form { margin-top: 22px; }

.aim-v2-ticket__rejilla {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px 24px;
}
.aim-v2-ticket__campo--full { grid-column: 1 / -1; }
.aim-v2-ticket__campo--msg { margin-top: 20px; }

.aim-v2-ticket__campo label {
  display: block;
  font-size: 12.5px; font-weight: 700; color: #333;
  margin-bottom: 6px;
}
.aim-v2-ticket__req { color: #C62828; }
.aim-v2-ticket__opt { font-weight: 400; color: #9CA3AF; }

.aim-v2-ticket__campo input[type="text"],
.aim-v2-ticket__campo input[type="email"],
.aim-v2-ticket__campo select,
.aim-v2-ticket__campo textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #D8DCD8;
  border-radius: 8px;
  padding: 11px 13px;
  font-family: inherit;
  font-size: 14.5px;
  color: #1F2937;
  background: #FFF;
}
.aim-v2-ticket__campo textarea { resize: vertical; line-height: 1.55; }
.aim-v2-ticket__campo input:focus,
.aim-v2-ticket__campo select:focus,
.aim-v2-ticket__campo textarea:focus {
  border-color: #2E7D32;
  box-shadow: 0 0 0 3px rgba(46, 125, 50, .14);
  outline: none;
}
.aim-v2-ticket__ro {
  background: #FAFAFA !important;
  color: #6B7280 !important;
  cursor: not-allowed;
}

.aim-v2-ticket__ayuda {
  display: block;
  font-size: 12px; color: #9CA3AF;
  margin-top: 6px; line-height: 1.45;
}
.aim-v2-ticket__msg-foot {
  display: flex; align-items: baseline;
  gap: 14px; flex-wrap: wrap;
  margin-top: 6px;
}
.aim-v2-ticket__contador {
  font-size: 12px; color: #9CA3AF; margin-left: auto;
  font-variant-numeric: tabular-nums;
}

.aim-v2-ticket__drop {
  display: flex; align-items: center; gap: 14px;
  border: 2px dashed #C8E6C9;
  background: #F8FBF8;
  border-radius: 10px;
  padding: 16px 18px;
  cursor: pointer;
}
.aim-v2-ticket__drop:hover {
  border-color: #2E7D32;
  background: #F1F8E9;
}
.aim-v2-ticket__drop-ico {
  width: 38px; height: 38px; border-radius: 10px;
  background: #E8F5E9; color: #2E7D32;
  display: grid; place-items: center; flex: none;
}
.aim-v2-ticket__drop-ico i.fa { font-size: 16px; }
.aim-v2-ticket__drop-txt { flex: 1 1 auto; min-width: 0; }
.aim-v2-ticket__drop-t {
  display: block; font-size: 14px; font-weight: 600; color: #1F2937;
}
.aim-v2-ticket__drop-h {
  display: block; font-size: 12.5px; color: #6B7280; margin-top: 3px;
}

.aim-v2-ticket__pie {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid #F0F1F2;
}
.aim-v2-ticket__btn {
  font-family: inherit; font-size: 14px; font-weight: 600;
  border-radius: 8px; padding: 12px 22px;
  cursor: pointer;
  border: 1px solid #2E7D32;
  background: #2E7D32; color: #FFF;
}
.aim-v2-ticket__btn:hover:not(:disabled) { background: #1B5E20; border-color: #1B5E20; }
.aim-v2-ticket__btn:disabled { opacity: .6; cursor: wait; }
.aim-v2-ticket__pie-nota { font-size: 13px; color: #6B7280; }

@media (max-width: 600px) {
  .aim-v2-ticket { padding: 18px 16px 24px; }
  .aim-v2-ticket__rejilla { display: flex; flex-direction: column; gap: 18px; }
  .aim-v2-ticket__btn { width: 100%; }
}

/* ============================================================
   /ayuda/tutoriales/ · [aim_ayuda_tutoriales]
   ============================================================ */

.aim-v2-ayuda {
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 0 0 14px 14px;
  padding: 26px 28px 36px;
  color: #1F2937;
}

.aim-v2-ayuda p {
  margin: 0 0 14px;
  font-size: 15px; line-height: 1.7; color: #3A3F3A;
  text-wrap: pretty;
}
.aim-v2-ayuda li {
  font-size: 15px; line-height: 1.7; color: #3A3F3A;
  margin-bottom: 8px; text-wrap: pretty;
}
.aim-v2-ayuda ol,
.aim-v2-ayuda ul { margin: 0 0 14px; padding-left: 22px; }
.aim-v2-ayuda strong { font-weight: 700; }

.aim-v2-ayuda__indice-movil { display: none; margin-bottom: 24px; }
.aim-v2-ayuda__indice-movil details > summary {
  display: flex; align-items: center; gap: 12px;
  background: #FFF; border: 1px solid #E5E7EB;
  border-radius: 10px; padding: 14px 16px;
  list-style: none; cursor: pointer;
  font-size: 14.5px; font-weight: 600; color: #1F2937;
}
.aim-v2-ayuda__indice-movil details > summary::-webkit-details-marker { display: none; }
.aim-v2-ayuda__indice-movil details > summary > i.fa:first-child {
  font-size: 15px; color: #2E7D32; flex: none;
}
.aim-v2-ayuda__indice-movil details > summary > span { flex: 1 1 auto; }
.aim-v2-ayuda__caret {
  font-size: 17px; color: #6B7280; flex: none;
  transition: transform .18s ease;
}
.aim-v2-ayuda__indice-movil details[open] .aim-v2-ayuda__caret {
  transform: rotate(180deg);
}
.aim-v2-ayuda__indice-lista {
  display: flex; flex-direction: column; gap: 2px;
  margin-top: 10px; padding: 6px 0 0;
}
.aim-v2-ayuda__indice-lista a {
  text-decoration: none;
  font-size: 14px; color: #4B5563;
  padding: 9px 12px;
  border-radius: 8px; line-height: 1.45;
}
.aim-v2-ayuda__indice-lista a:hover {
  background: #F1F8E9; color: #2E7D32;
}

.aim-v2-ayuda__columnas {
  display: flex; gap: 40px; align-items: flex-start;
}
.aim-v2-ayuda__indice {
  position: sticky; top: 20px;
  flex: 0 0 236px; width: 236px;
  align-self: flex-start;
}
.aim-v2-ayuda__indice-kicker {
  font-size: 11px; font-weight: 700; color: #6B7280;
  letter-spacing: 1.2px; text-transform: uppercase;
  padding: 0 12px 10px;
}
.aim-v2-ayuda__indice > a {
  display: block; text-decoration: none;
  font-size: 13.5px; line-height: 1.45;
  padding: 8px 12px; border-radius: 8px;
  border-left: 2px solid transparent;
  color: #4B5563;
}
.aim-v2-ayuda__indice > a:hover {
  background: #F1F8E9; color: #2E7D32;
}
.aim-v2-ayuda__indice > a:target,
.aim-v2-ayuda__indice > a.is-active {
  border-left-color: #2E7D32;
  color: #2E7D32;
  font-weight: 600;
  background: #F1F8E9;
}

.aim-v2-ayuda__contenido {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 72ch;
}
.aim-v2-ayuda__seccion { scroll-margin-top: 20px; }
.aim-v2-ayuda__seccion + .aim-v2-ayuda__seccion { margin-top: 38px; }
.aim-v2-ayuda__seccion h2 {
  margin: 0 0 14px;
  font-size: 19px; font-weight: 700; color: #2E7D32;
  letter-spacing: -0.2px; line-height: 1.35;
  padding-bottom: 8px;
  border-bottom: 2px solid #E8F5E9;
  text-wrap: pretty;
}

.aim-v2-ayuda__callout {
  display: flex; align-items: flex-start;
  gap: 11px;
  border-radius: 8px;
  padding: 13px 15px;
  margin: 0 0 14px;
  font-size: 14px; line-height: 1.6; text-wrap: pretty;
}
.aim-v2-ayuda__callout > i.fa {
  font-size: 15px; flex: none; margin-top: 2px;
}
.aim-v2-ayuda__callout--tip  { background: #F1F8E9; border: 1px solid #C8E6C9; color: #33691E; }
.aim-v2-ayuda__callout--tip  > i.fa { color: #2E7D32; }
.aim-v2-ayuda__callout--warn { background: #FFF3E0; border: 1px solid #FFE082; color: #A04A00; }
.aim-v2-ayuda__callout--warn > i.fa { color: #E65100; }
.aim-v2-ayuda__callout--info { background: #E3F2FD; border: 1px solid #BBDEFB; color: #0D47A1; }
.aim-v2-ayuda__callout--info > i.fa { color: #1565C0; }

.aim-v2-ayuda__codigo {
  font-family: monospace; font-size: 14px; color: #1F2937;
  background: #F7F9F7; border: 1px solid #E5E7EB;
  border-radius: 8px; padding: 13px 15px;
  margin: 0 0 14px; word-break: break-word;
}

@media (max-width: 900px) {
  .aim-v2-ayuda { padding: 18px 16px 26px; }
  .aim-v2-ayuda__indice-movil { display: block; }
  .aim-v2-ayuda__columnas { display: block; }
  .aim-v2-ayuda__indice { display: none; }
  .aim-v2-ayuda__contenido { max-width: none; }
}

/* ============================================================
   /autorizacion-parental/ · [aim_autorizacion_parental]
   (checksum-only, sin chrome área socio)
   ============================================================ */

.aim-v2-parental {
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  padding: 26px 28px 32px;
  max-width: 760px;
  margin: 24px auto;
  font-size: 14px;
  color: #1F2937;
  font-family: 'Open Sans', 'Source Sans 3', 'Helvetica Neue', Arial, sans-serif;
}

.aim-v2-parental__cabecera {
  display: flex; align-items: flex-start; gap: 16px; flex-wrap: wrap;
  padding-bottom: 20px;
  border-bottom: 1px solid #F0F1F2;
}
.aim-v2-parental__ico {
  width: 46px; height: 46px; border-radius: 12px;
  display: grid; place-items: center; flex: none;
}
.aim-v2-parental__ico i.fa { font-size: 21px; }
.aim-v2-parental__ico--brand { background: #E8F5E9; color: #2E7D32; }
.aim-v2-parental__ico--err   { background: #FDECEA; color: #C62828; }

.aim-v2-parental__kicker {
  font-size: 11.5px; font-weight: 700; color: #6B7280;
  letter-spacing: 1.2px; text-transform: uppercase;
}
.aim-v2-parental__titulo {
  margin: 7px 0 0;
  font-size: 22px; font-weight: 700; color: #1F2937;
  letter-spacing: -0.3px; line-height: 1.35; text-wrap: pretty;
}
.aim-v2-parental__subtitulo {
  margin: 8px 0 0; font-size: 14.5px; color: #4B5563;
  line-height: 1.6; max-width: 62ch; text-wrap: pretty;
}

.aim-v2-parental__h3 {
  margin: 26px 0 0;
  font-size: 11.5px; font-weight: 700; color: #6B7280;
  letter-spacing: 1.2px; text-transform: uppercase;
  padding-bottom: 8px; border-bottom: 1px solid #E5E7EB;
}

.aim-v2-parental__resumen {
  width: 100%; border-collapse: collapse;
  font-size: 14.5px; margin-top: 12px;
}
.aim-v2-parental__resumen tr { border-top: 1px solid #F3F4F6; }
.aim-v2-parental__resumen th,
.aim-v2-parental__resumen td {
  padding: 11px 14px 11px 0;
  text-align: left; vertical-align: top;
  border: 0; background: transparent;
}
.aim-v2-parental__resumen th {
  width: 34%; color: #6B7280; font-weight: 500;
}
.aim-v2-parental__resumen td { color: #1F2937; }

.aim-v2-parental__legal {
  margin-top: 22px;
  background: #FAFAFA;
  border: 1px solid #F0F1F2;
  border-radius: 10px;
  padding: 14px 16px;
}
.aim-v2-parental__legal p {
  margin: 0; font-size: 14px; color: #4B5563;
  line-height: 1.65; text-wrap: pretty;
}

.aim-v2-parental__firma-hint {
  margin: 12px 0 0;
  font-size: 14px; color: #4B5563; line-height: 1.6;
  max-width: 62ch; text-wrap: pretty;
}
.aim-v2-parental__firma { margin-top: 14px; }
.aim-v2-parental__firma-canvas-wrap { position: relative; }
.aim-v2-parental__firma canvas {
  display: block;
  width: 100%; height: 190px;
  border: 2px dashed #C8E6C9;
  border-radius: 12px;
  background: #F8FBF8;
  touch-action: none;
  cursor: crosshair;
}
.aim-v2-parental__firma-ph {
  position: absolute; inset: 0;
  display: grid; place-items: center;
  pointer-events: none;
  font-size: 15px; color: #9CA3AF; font-style: italic;
}
.aim-v2-parental__firma-pie {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  margin-top: 10px;
}
.aim-v2-parental__firma-legal {
  font-size: 12.5px; color: #9CA3AF;
}

.aim-v2-parental__botones {
  display: flex; gap: 12px; flex-wrap: wrap;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid #F0F1F2;
}
.aim-v2-parental__btn-pri,
.aim-v2-parental__btn-sec,
.aim-v2-parental__btn-dan,
.aim-v2-parental__btn-dan-solid {
  font-family: inherit;
  font-size: 14px; font-weight: 600;
  border-radius: 8px;
  padding: 12px 20px;
  cursor: pointer;
  border: 1px solid;
}
.aim-v2-parental__btn-pri {
  background: #2E7D32; border-color: #2E7D32; color: #FFF;
}
.aim-v2-parental__btn-pri:hover:not(:disabled) { background: #1B5E20; border-color: #1B5E20; }
.aim-v2-parental__btn-pri:disabled { opacity: .6; cursor: wait; }
.aim-v2-parental__btn-sec {
  background: #FFF; border-color: #D8DCD8; color: #1F2937;
}
.aim-v2-parental__btn-sec:hover { border-color: #2E7D32; color: #2E7D32; background: #F1F8E9; }
.aim-v2-parental__btn-dan {
  background: #FFEBEE; border-color: #FFCDD2; color: #C62828;
}
.aim-v2-parental__btn-dan:hover:not(:disabled) { background: #FFCDD2; }
.aim-v2-parental__btn-dan-solid {
  background: #C62828; border-color: #C62828; color: #FFF;
}
.aim-v2-parental__btn-dan-solid:hover:not(:disabled) { background: #A31D1D; border-color: #A31D1D; }

.aim-v2-parental__pie {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid #F0F1F2;
}
.aim-v2-parental__pie p {
  margin: 0; font-size: 14px; color: #4B5563;
  line-height: 1.65; max-width: 62ch; text-wrap: pretty;
}

.aim-v2-parental__motivo {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid rgba(198, 40, 40, .15);
}
.aim-v2-parental__motivo-kicker {
  font-size: 11.5px; font-weight: 700; color: #6B7280;
  letter-spacing: 1.1px; text-transform: uppercase;
  margin-bottom: 6px;
}
.aim-v2-parental__motivo blockquote {
  margin: 0; padding: 0 0 0 12px;
  border-left: 3px solid #E5C7C5;
  font-size: 14px; color: #4B5563;
  line-height: 1.6; font-style: italic; text-wrap: pretty;
}

/* Modal rechazo */
.aim-v2-parental__modal-velo {
  position: fixed; inset: 0;
  background: rgba(0,0,0,.45); z-index: 9000;
}
.aim-v2-parental__modal {
  position: fixed; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: min(540px, 94vw);
  background: #FFF; border-radius: 14px;
  box-shadow: 0 30px 70px -20px rgba(0,0,0,.45);
  z-index: 9010;
}
.aim-v2-parental__modal .aim-v2-modal__header {
  display: flex; align-items: flex-start; gap: 14px;
  padding: 20px 22px 0;
}
.aim-v2-parental__modal .aim-v2-modal__icon-box {
  width: 36px; height: 36px; border-radius: 9px;
  background: #FFEBEE; color: #C62828;
  display: grid; place-items: center; flex: none;
}
.aim-v2-parental__modal .aim-v2-modal__icon-box i.fa { font-size: 16px; }
.aim-v2-parental__modal h3 {
  margin: 0; font-size: 19px; font-weight: 600;
  letter-spacing: -0.2px; line-height: 1.35;
  text-wrap: pretty;
}
.aim-v2-parental__modal .aim-v2-modal__header > div {
  flex: 1 1 auto; min-width: 0;
}
.aim-v2-parental__modal .aim-v2-modal__header > div > p {
  margin: 7px 0 0; font-size: 14px; color: #4B5563;
  line-height: 1.6; text-wrap: pretty;
}
.aim-v2-parental__modal-close {
  flex: none; width: 32px; height: 32px;
  display: grid; place-items: center;
  border: 0; border-radius: 8px; background: transparent;
  color: #6B7280; font-size: 21px; line-height: 1;
  cursor: pointer; font-family: inherit;
}
.aim-v2-parental__modal-close:hover { background: #F3F4F6; color: #1F2937; }

.aim-v2-parental__modal-body { padding: 18px 22px 0; }
.aim-v2-parental__modal-body label {
  display: block; font-size: 12.5px; font-weight: 700;
  color: #333; margin-bottom: 6px;
}
.aim-v2-parental__opt { font-weight: 400; color: #9CA3AF; }
.aim-v2-parental__modal-body textarea {
  width: 100%; box-sizing: border-box;
  border: 1px solid #D8DCD8; border-radius: 8px;
  padding: 10px 12px;
  font-family: inherit; font-size: 14.5px;
  color: #1F2937; background: #FFF;
  resize: vertical; line-height: 1.55;
}
.aim-v2-parental__modal-body textarea:focus {
  border-color: #2E7D32;
  box-shadow: 0 0 0 3px rgba(46,125,50,.14);
  outline: none;
}
.aim-v2-parental__hint {
  display: block; font-size: 12px; color: #9CA3AF;
  margin-top: 6px; line-height: 1.45;
}
.aim-v2-parental__modal-footer {
  display: flex; gap: 10px; justify-content: flex-end;
  flex-wrap: wrap; padding: 20px 22px 22px;
}

@media (max-width: 600px) {
  .aim-v2-parental { padding: 20px 16px 26px; }
  .aim-v2-parental__botones { flex-direction: column; }
  .aim-v2-parental__botones > button { width: 100%; }
  .aim-v2-parental__resumen th,
  .aim-v2-parental__resumen td { display: block; padding: 6px 0; width: 100%; }
  .aim-v2-parental__resumen th { font-size: 12px; color: #9CA3AF; padding-top: 12px; }
}

/* ============================================================
   /email-personal-menor/ · [aim_email_personal_menor]
   Checksum-only (o acting_as), menor cumple 18 y registra correo propio
   ============================================================ */

.aim-v2-mayoria {
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  padding: 26px 28px 32px;
  max-width: 760px;
  margin: 24px auto;
  font-size: 14px;
  color: #1F2937;
  font-family: 'Open Sans', 'Source Sans 3', 'Helvetica Neue', Arial, sans-serif;
}

.aim-v2-mayoria__cabecera {
  display: flex; align-items: flex-start; gap: 16px; flex-wrap: wrap;
  padding-bottom: 20px;
  border-bottom: 1px solid #F0F1F2;
}
.aim-v2-mayoria__ico {
  width: 48px; height: 48px; border-radius: 13px;
  display: grid; place-items: center; flex: none;
}
.aim-v2-mayoria__ico i.fa { font-size: 21px; }
.aim-v2-mayoria__ico--brand { background: #E8F5E9; color: #2E7D32; }
.aim-v2-mayoria__ico--warn  { background: #FFF3E0; color: #E65100; }

.aim-v2-mayoria__kicker {
  font-size: 11.5px; font-weight: 700; color: #6B7280;
  letter-spacing: 1.2px; text-transform: uppercase;
}
.aim-v2-mayoria__titulo {
  margin: 7px 0 0;
  font-size: 22px; font-weight: 700; color: #1F2937;
  letter-spacing: -0.3px; line-height: 1.35; text-wrap: pretty;
}

.aim-v2-mayoria__cuerpo { margin-top: 22px; }
.aim-v2-mayoria__intro {
  margin: 0;
  font-size: 15px; color: #4B5563;
  line-height: 1.7; max-width: 66ch; text-wrap: pretty;
}

.aim-v2-mayoria__nota {
  display: flex; align-items: flex-start; gap: 12px;
  background: #FAFAFA;
  border-left: 3px solid #2E7D32;
  border-radius: 0 8px 8px 0;
  padding: 14px 16px;
  margin-top: 20px;
}
.aim-v2-mayoria__nota > i.fa {
  font-size: 15px; color: #2E7D32; flex: none; margin-top: 2px;
}
.aim-v2-mayoria__nota > div {
  font-size: 14px; color: #4B5563; line-height: 1.6; text-wrap: pretty;
}
.aim-v2-mayoria__mono {
  font-family: monospace; font-size: 13.5px; color: #1F2937;
}

.aim-v2-mayoria__form { margin-top: 24px; }

.aim-v2-mayoria__rejilla {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px 22px;
}

.aim-v2-mayoria__campo label {
  display: block; font-size: 12.5px; font-weight: 700; color: #333;
  margin-bottom: 6px;
}
.aim-v2-mayoria__req { color: #C62828; }

.aim-v2-mayoria__campo input {
  width: 100%; box-sizing: border-box;
  border: 1px solid #D8DCD8; border-radius: 8px;
  padding: 11px 13px;
  font-family: inherit; font-size: 14.5px;
  color: #1F2937; background: #FFF;
}
.aim-v2-mayoria__campo input:focus {
  border-color: #2E7D32;
  box-shadow: 0 0 0 3px rgba(46, 125, 50, .14);
  outline: none;
}
.aim-v2-mayoria__campo input.is-error {
  border-color: #C62828;
  background: #FFF8F8;
}

.aim-v2-mayoria__ayuda {
  display: block; font-size: 12px; color: #9CA3AF;
  margin-top: 6px; line-height: 1.45;
}
.aim-v2-mayoria__ayuda.is-error {
  font-size: 12.5px; color: #C62828;
}

.aim-v2-mayoria__pie {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid #F0F1F2;
}
.aim-v2-mayoria__btn {
  font-family: inherit; font-size: 14px; font-weight: 600;
  border-radius: 8px;
  padding: 12px 22px;
  cursor: pointer;
  border: 1px solid #2E7D32;
  background: #2E7D32; color: #FFF;
}
.aim-v2-mayoria__btn:hover:not(:disabled) { background: #1B5E20; border-color: #1B5E20; }
.aim-v2-mayoria__btn:disabled { opacity: .6; cursor: wait; }
.aim-v2-mayoria__pie-nota {
  font-size: 13px; color: #6B7280; text-wrap: pretty;
}

.aim-v2-mayoria__pie-token {
  margin-top: 22px; padding-top: 18px;
  border-top: 1px solid #F0F1F2;
}
.aim-v2-mayoria__pie-token p {
  margin: 0;
  font-size: 14px; color: #4B5563;
  line-height: 1.65; max-width: 62ch; text-wrap: pretty;
}

@media (max-width: 600px) {
  .aim-v2-mayoria { padding: 20px 16px 26px; }
  .aim-v2-mayoria__rejilla { grid-template-columns: 1fr; gap: 18px; }
  .aim-v2-mayoria__btn { width: 100%; }
}


/* ============================================================
   /alta-socio/ · [aim_alta_socio] · Formulario público de alta v2
   (4 pasos con barra de progreso, sin hero, cuota calculada)
   ============================================================ */

.aim-v2-alta {
  max-width: 940px;
  margin: 24px auto;
  font-size: 14px;
  color: #1F2937;
  font-family: 'Open Sans', 'Source Sans 3', 'Helvetica Neue', Arial, sans-serif;
}

/* Titular sobrio (sin hero verde) */
.aim-v2-alta__titular {
  padding: 0 4px 22px;
}
.aim-v2-alta__titular h2 {
  margin: 0;
  font-size: 27px; font-weight: 700; color: #1F2937;
  letter-spacing: -0.5px; line-height: 1.25;
  text-wrap: pretty;
}
.aim-v2-alta__titular p {
  margin: 10px 0 0;
  font-size: 15.5px; color: #4B5563;
  line-height: 1.65; max-width: 62ch;
  text-wrap: pretty;
}

/* Contenedor del form + pasos */
.aim-v2-alta__form-wrap {
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  padding: 22px 26px 26px;
}

/* Barra de pasos (chips numerados) */
.aim-v2-alta__pasos {
  display: flex; gap: 10px; flex-wrap: wrap;
  padding-bottom: 18px;
  border-bottom: 1px solid #F0F1F2;
}
.aim-v2-alta__paso-chip {
  text-decoration: none;
  display: flex; align-items: center; gap: 9px; flex: none;
  border-radius: 999px;
  padding: 8px 14px 8px 8px;
  border: 1px solid #E5E7EB;
  background: #FFF;
}
.aim-v2-alta__paso-chip.is-done {
  border-color: #C8E6C9;
}
.aim-v2-alta__paso-chip.is-active {
  border-color: #2E7D32;
  background: #F1F8E9;
}
.aim-v2-alta__paso-num {
  width: 24px; height: 24px;
  border-radius: 50%;
  display: grid; place-items: center; flex: none;
  font-size: 12.5px; font-weight: 700;
  background: #F3F4F6; color: #9CA3AF;
}
.aim-v2-alta__paso-chip.is-done .aim-v2-alta__paso-num {
  background: #C8E6C9; color: #1B5E20;
}
.aim-v2-alta__paso-chip.is-active .aim-v2-alta__paso-num {
  background: #2E7D32; color: #FFF;
}
.aim-v2-alta__paso-label {
  font-size: 13.5px; font-weight: 600; white-space: nowrap;
  color: #9CA3AF;
}
.aim-v2-alta__paso-chip.is-done .aim-v2-alta__paso-label { color: #4B5563; }
.aim-v2-alta__paso-chip.is-active .aim-v2-alta__paso-label { color: #1B5E20; }

/* Indicador "Guardado en este navegador" */
.aim-v2-alta__guardado {
  display: flex; align-items: center; gap: 8px;
  padding: 11px 0 18px;
}
.aim-v2-alta__guardado i.fa { font-size: 13px; color: #9CA3AF; flex: none; }
.aim-v2-alta__guardado span {
  font-size: 12.5px; color: #9CA3AF;
}
.aim-v2-alta__guardado a {
  margin-left: auto;
  font-size: 12.5px; font-weight: 600;
  text-decoration: none; color: #2E7D32;
}
.aim-v2-alta__guardado a:hover { color: #1B5E20; text-decoration: underline; }

/* Cada paso: visible solo el activo (hidden HTML attr) */
.aim-v2-alta__paso[hidden] { display: none; }

/* H3 canónico verde */
.aim-v2-alta__h3 {
  margin: 8px 0 18px;
  font-size: 11.5px; font-weight: 700; color: #6B7280;
  letter-spacing: 1.2px; text-transform: uppercase;
  padding-bottom: 8px;
  border-bottom: 1px solid #E5E7EB;
}

/* Rejilla campos */
.aim-v2-alta__rejilla {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 18px 22px;
}
.aim-v2-alta__campo--full { grid-column: 1 / -1; }
.aim-v2-alta__req { color: #C62828; }

.aim-v2-alta__campo label {
  display: block; font-size: 12.5px; font-weight: 700;
  color: #333; margin-bottom: 6px;
}
.aim-v2-alta__campo input,
.aim-v2-alta__campo select {
  width: 100%; box-sizing: border-box;
  border: 1px solid #D8DCD8; border-radius: 8px;
  padding: 11px 13px;
  font-family: inherit; font-size: 14.5px;
  color: #1F2937; background: #FFF;
}
.aim-v2-alta__campo input:focus,
.aim-v2-alta__campo select:focus {
  border-color: #2E7D32;
  box-shadow: 0 0 0 3px rgba(46, 125, 50, .14);
  outline: none;
}
.aim-v2-alta__campo input.aim-input--invalid,
.aim-v2-alta__campo input.is-error {
  border-color: #C62828;
  background: #FFF8F8;
}
.aim-v2-alta__campo input.aim-input--valid { border-color: #2E7D32; }
.aim-v2-alta__campo input.aim-uppercase { text-transform: uppercase; }

.aim-v2-alta__ayuda {
  display: block; font-size: 12px; color: #9CA3AF;
  margin-top: 6px; line-height: 1.45;
}
.aim-v2-alta__ayuda.aim-field-feedback--ok    { color: #2E7D32; font-weight: 600; }
.aim-v2-alta__ayuda.aim-field-feedback--error { color: #C62828; font-weight: 600; }
.aim-v2-alta__ayuda.is-error { color: #C62828; font-weight: 600; }

/* Bloque tutor (menor de edad) */
.aim-v2-alta__tutor {
  background: #E3F2FD;
  border: 1px solid #BBDEFB;
  border-radius: 12px;
  padding: 20px 22px;
  margin-top: 22px;
}
.aim-v2-alta__tutor[hidden] { display: none; }
.aim-v2-alta__tutor-aviso {
  display: flex; align-items: flex-start; gap: 11px;
  margin-bottom: 18px;
}
.aim-v2-alta__tutor-aviso > i.fa {
  font-size: 16px; color: #1565C0; flex: none; margin-top: 2px;
}
.aim-v2-alta__tutor-aviso > div {
  font-size: 14px; color: #0D47A1; line-height: 1.6; text-wrap: pretty;
}

/* Bloque cuota calculada (paso 3) */
.aim-v2-alta__cuota {
  background: #F7FBF7;
  border: 1px solid #E3EFE4;
  border-radius: 12px;
  padding: 20px 24px;
  margin-bottom: 12px;
}
.aim-v2-alta__cuota-head {
  display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap;
}
.aim-v2-alta__cuota-kicker {
  font-size: 12.5px; font-weight: 700; color: #4B5563;
  letter-spacing: 1.1px; text-transform: uppercase;
}
.aim-v2-alta__cuota-importe {
  margin-left: auto;
  font-size: 34px; font-weight: 700; color: #1B5E20;
  letter-spacing: -0.8px;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.aim-v2-alta__cuota-descuentos {
  margin-top: 8px;
  padding-top: 4px;
}
.aim-v2-alta__cuota-desc-row {
  display: flex; align-items: flex-start; gap: 10px;
  margin-top: 9px;
}
.aim-v2-alta__cuota-desc-row i.fa {
  font-size: 14px; color: #2E7D32; flex: none; margin-top: 3px;
}
.aim-v2-alta__cuota-desc-row span {
  font-size: 14px; color: #33691E; line-height: 1.55; text-wrap: pretty;
}
.aim-v2-alta__cuota-nota {
  margin: 12px 0 0;
  font-size: 13.5px; color: #6B7280;
  line-height: 1.6; max-width: 60ch; text-wrap: pretty;
}

/* Método de pago (radio cards) */
.aim-v2-alta__metodos-t {
  font-size: 12.5px; font-weight: 700; color: #333;
  margin: 26px 0 12px;
}
.aim-v2-alta__metodos {
  display: flex; flex-direction: column; gap: 11px;
}
.aim-v2-alta__metodo {
  display: flex; align-items: flex-start; gap: 14px;
  background: #FFF; border: 1px solid #E5E7EB;
  border-radius: 12px;
  padding: 16px 18px;
  cursor: pointer;
  transition: border-color .15s, background .15s;
}
.aim-v2-alta__metodo:hover { border-color: #2E7D32; background: #F7FBF7; }
.aim-v2-alta__metodo input[type="radio"] {
  accent-color: #2E7D32;
  width: 18px; height: 18px;
  flex: none; margin-top: 3px; cursor: pointer;
}
.aim-v2-alta__metodo input[type="radio"]:checked ~ .aim-v2-alta__metodo-body .aim-v2-alta__metodo-t {
  color: #1B5E20;
}
.aim-v2-alta__metodo-body { flex: 1 1 auto; min-width: 0; }
.aim-v2-alta__metodo-t {
  display: block; font-size: 15px; font-weight: 600; color: #1F2937;
}
.aim-v2-alta__metodo-h {
  display: block; font-size: 13px; color: #6B7280;
  margin-top: 5px; line-height: 1.55; text-wrap: pretty;
}

/* Aviso SEPA (firma por email después) */
.aim-v2-alta__sepa-aviso {
  margin-top: 18px;
}

/* Tabla transferencia */
.aim-v2-alta__transf {
  margin-top: 18px;
  padding: 18px 20px;
  background: #FAFAFA;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
}
.aim-v2-alta__transf-kicker {
  font-size: 11.5px; font-weight: 700; color: #6B7280;
  letter-spacing: 1.2px; text-transform: uppercase;
}
.aim-v2-alta__transf-tabla {
  width: 100%; border-collapse: collapse;
  font-size: 14px; margin-top: 14px;
}
.aim-v2-alta__transf-tabla tr { border-top: 1px solid #F3F4F6; }
.aim-v2-alta__transf-tabla th,
.aim-v2-alta__transf-tabla td {
  padding: 11px 16px 11px 0;
  text-align: left; vertical-align: top;
  border: 0; background: transparent;
}
.aim-v2-alta__transf-tabla th {
  width: 30%; color: #6B7280; font-weight: 600; font-size: 13.5px;
}
.aim-v2-alta__transf-tabla td {
  color: #1F2937; line-height: 1.45; word-break: break-word;
}
.aim-v2-alta__mono {
  font-family: monospace; font-size: 14px;
  color: #1F2937; letter-spacing: .3px;
}
.aim-v2-alta__transf-nota {
  margin: 14px 0 0;
  font-size: 13.5px; color: #4B5563;
  line-height: 1.6; max-width: 60ch; text-wrap: pretty;
}

/* Paso 4 · consentimientos */
.aim-v2-alta__grupo-t {
  font-size: 12.5px; font-weight: 700; color: #333;
  margin-bottom: 6px;
}
.aim-v2-alta__grupo-p {
  margin: 0 0 14px;
  font-size: 13.5px; color: #6B7280;
  line-height: 1.55; max-width: 62ch; text-wrap: pretty;
}
.aim-v2-alta__consents {
  display: flex; flex-direction: column; gap: 11px;
}
.aim-v2-alta__consent {
  display: flex; align-items: flex-start; gap: 12px;
  background: #FAFAFA;
  border: 1px solid #F0F1F2;
  border-radius: 10px;
  padding: 14px 16px;
  cursor: pointer;
}
.aim-v2-alta__consent input[type="checkbox"] {
  accent-color: #2E7D32;
  width: 18px; height: 18px;
  flex: none; margin-top: 2px; cursor: pointer;
}
.aim-v2-alta__consent > span { flex: 1 1 auto; min-width: 0; }
.aim-v2-alta__consent-t {
  display: block; font-size: 14.5px; font-weight: 600; color: #1F2937;
}
.aim-v2-alta__consent-h {
  display: block; font-size: 13px; color: #6B7280;
  margin-top: 4px; line-height: 1.55; text-wrap: pretty;
}

/* Navegación pasos */
.aim-v2-alta__nav {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid #F0F1F2;
}
.aim-v2-alta__btn-pri {
  font-family: inherit; font-size: 15px; font-weight: 600;
  border-radius: 10px;
  padding: 13px 26px;
  cursor: pointer;
  border: 1px solid #2E7D32;
  background: #2E7D32; color: #FFF;
  margin-left: auto;
}
.aim-v2-alta__btn-pri:hover:not(:disabled) { background: #1B5E20; border-color: #1B5E20; }
.aim-v2-alta__btn-pri:disabled { opacity: .6; cursor: not-allowed; }
.aim-v2-alta__btn-sec {
  font-family: inherit; font-size: 14px; font-weight: 600;
  border-radius: 10px;
  padding: 12px 20px;
  cursor: pointer;
  border: 1px solid #D8DCD8;
  background: #FFF; color: #1F2937;
}
.aim-v2-alta__btn-sec:hover { border-color: #2E7D32; color: #2E7D32; background: #F1F8E9; }
.aim-v2-alta__nav-msg {
  font-size: 13.5px; color: #6B7280;
}
.aim-v2-alta__nav-msg.aim-form-msg--ok    { color: #1B5E20; font-weight: 600; }
.aim-v2-alta__nav-msg.aim-form-msg--error { color: #C62828; font-weight: 600; }

/* Estado enviado */
.aim-v2-alta__enviado {
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  padding: 30px 30px 34px;
}
.aim-v2-alta__enviado-head {
  display: flex; align-items: flex-start; gap: 18px; flex-wrap: wrap;
}
.aim-v2-alta__enviado-ico {
  width: 58px; height: 58px; border-radius: 16px;
  background: #E8F5E9; color: #2E7D32;
  display: grid; place-items: center; flex: none;
}
.aim-v2-alta__enviado-ico i.fa { font-size: 26px; }
.aim-v2-alta__enviado-head > div { flex: 1 1 260px; min-width: 0; }
.aim-v2-alta__enviado-head h3 {
  margin: 0;
  font-size: 24px; font-weight: 700; color: #1B5E20;
  letter-spacing: -0.4px; line-height: 1.3; text-wrap: pretty;
}
.aim-v2-alta__enviado-head p {
  margin: 9px 0 0;
  font-size: 15px; color: #4B5563;
  line-height: 1.65; max-width: 62ch; text-wrap: pretty;
}
.aim-v2-alta__enviado-nota {
  display: flex; align-items: flex-start; gap: 12px;
  background: #FAFAFA;
  border-left: 3px solid #2E7D32;
  border-radius: 0 8px 8px 0;
  padding: 14px 16px;
  margin-top: 24px;
}
.aim-v2-alta__enviado-nota > i.fa {
  font-size: 15px; color: #2E7D32; flex: none; margin-top: 2px;
}
.aim-v2-alta__enviado-nota > div {
  font-size: 14px; color: #4B5563; line-height: 1.6; text-wrap: pretty;
}
.aim-v2-alta__enviado-help {
  margin: 18px 0 0;
  font-size: 13.5px; color: #6B7280;
  line-height: 1.6; text-wrap: pretty;
}

@media (max-width: 640px) {
  .aim-v2-alta__titular { padding: 0 4px 18px; }
  .aim-v2-alta__form-wrap { padding: 18px 16px 20px; }
  .aim-v2-alta__enviado { padding: 24px 20px 28px; }
  .aim-v2-alta__rejilla { grid-template-columns: 1fr; }
  .aim-v2-alta__cuota-head { flex-direction: column; align-items: flex-start; }
  .aim-v2-alta__cuota-importe { margin-left: 0; margin-top: 6px; }
  .aim-v2-alta__btn-pri { width: 100%; margin-left: 0; }
  .aim-v2-alta__btn-sec { width: 100%; }
  .aim-v2-alta__pasos { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 14px; }
  .aim-v2-alta__paso-chip { flex: none; }
}

/* ============================================================
   /contacto/ · [aim_consulta_publica] · Form contacto público
   ============================================================ */

.aim-v2-consulta {
  max-width: 760px;
  margin: 24px auto;
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  padding: 26px 28px 30px;
  font-size: 14px;
  color: #1F2937;
  font-family: 'Open Sans', 'Source Sans 3', 'Helvetica Neue', Arial, sans-serif;
}

.aim-v2-consulta__cabecera {
  display: flex; align-items: flex-start; gap: 16px; flex-wrap: wrap;
  padding-bottom: 20px;
  border-bottom: 1px solid #F0F1F2;
}
.aim-v2-consulta__ico {
  width: 48px; height: 48px; border-radius: 13px;
  background: #E8F5E9; color: #2E7D32;
  display: grid; place-items: center; flex: none;
}
.aim-v2-consulta__ico i.fa { font-size: 21px; }
.aim-v2-consulta__titulo {
  margin: 0;
  font-size: 22px; font-weight: 700; color: #1F2937;
  letter-spacing: -0.3px; line-height: 1.35; text-wrap: pretty;
}
.aim-v2-consulta__intro {
  margin: 8px 0 0;
  font-size: 15px; color: #4B5563;
  line-height: 1.65; max-width: 62ch; text-wrap: pretty;
}

.aim-v2-consulta__ok,
.aim-v2-consulta__err {
  margin-top: 22px;
}
.aim-v2-consulta__ref {
  margin-top: 10px !important;
  font-size: 13.5px;
}
.aim-v2-consulta__ref-label {
  color: #4B5563; margin-right: 6px;
}
.aim-v2-consulta__ref code {
  background: rgba(46,125,50,0.10);
  padding: 3px 8px;
  border-radius: 4px;
  font-size: 12.5px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.aim-v2-consulta__form { margin-top: 22px; }
.aim-v2-consulta__form[hidden] { display: none; }

.aim-v2-consulta__rejilla {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 18px 22px;
}
.aim-v2-consulta__campo { margin-top: 0; }
.aim-v2-consulta__campo + .aim-v2-consulta__campo--full { margin-top: 18px; }
.aim-v2-consulta__campo--full + .aim-v2-consulta__campo--full { margin-top: 18px; }
.aim-v2-consulta__req { color: #C62828; }

.aim-v2-consulta__campo label {
  display: block; font-size: 12.5px; font-weight: 700;
  color: #333; margin-bottom: 6px;
}
.aim-v2-consulta__campo input,
.aim-v2-consulta__campo textarea {
  width: 100%; box-sizing: border-box;
  border: 1px solid #D8DCD8; border-radius: 8px;
  padding: 11px 13px;
  font-family: inherit; font-size: 14.5px;
  color: #1F2937; background: #FFF;
}
.aim-v2-consulta__campo textarea { resize: vertical; line-height: 1.55; min-height: 130px; }
.aim-v2-consulta__campo input:focus,
.aim-v2-consulta__campo textarea:focus {
  border-color: #2E7D32;
  box-shadow: 0 0 0 3px rgba(46, 125, 50, .14);
  outline: none;
}
.aim-v2-consulta__ayuda {
  display: block; font-size: 12px; color: #9CA3AF;
  margin-top: 6px; line-height: 1.45;
}
.aim-v2-consulta__msg-foot {
  display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap;
  margin-top: 6px;
}
.aim-v2-consulta__contador {
  font-size: 12px; color: #9CA3AF; margin-left: auto;
  font-variant-numeric: tabular-nums;
}

.aim-v2-consulta__checkbox {
  display: flex; align-items: flex-start; gap: 12px;
  background: #FAFAFA;
  border: 1px solid #F0F1F2;
  border-radius: 10px;
  padding: 12px 14px;
  margin-top: 14px;
  cursor: pointer;
}
.aim-v2-consulta__checkbox input[type="checkbox"] {
  accent-color: #2E7D32;
  width: 18px; height: 18px;
  flex: none; margin-top: 2px; cursor: pointer;
}
.aim-v2-consulta__checkbox > span {
  flex: 1 1 auto; min-width: 0;
  font-size: 14px; color: #4B5563; line-height: 1.6; text-wrap: pretty;
}
.aim-v2-consulta__checkbox a { color: #2E7D32; font-weight: 600; }

.aim-v2-consulta__pie {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid #F0F1F2;
}
.aim-v2-consulta__btn {
  font-family: inherit; font-size: 15px; font-weight: 600;
  border-radius: 10px;
  padding: 13px 26px;
  cursor: pointer;
  border: 1px solid #2E7D32;
  background: #2E7D32; color: #FFF;
}
.aim-v2-consulta__btn:hover:not(:disabled) { background: #1B5E20; border-color: #1B5E20; }
.aim-v2-consulta__btn:disabled { opacity: .6; cursor: wait; }
.aim-v2-consulta__pie-nota { font-size: 13px; color: #6B7280; }

@media (max-width: 600px) {
  .aim-v2-consulta { padding: 20px 16px 24px; }
  .aim-v2-consulta__rejilla { grid-template-columns: 1fr; }
  .aim-v2-consulta__btn { width: 100%; }
}

/* ============================================================
   /subir-justificante/ · [aim_subir_justificante] · Form checksum-only
   Sirve tipo=alta y tipo=renovacion (unificado). Sin chrome área socio.
   ============================================================ */

.aim-v2-justif {
  max-width: 760px;
  margin: 24px auto;
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  padding: 26px 28px 30px;
  font-size: 14px;
  color: #1F2937;
  font-family: 'Open Sans', 'Source Sans 3', 'Helvetica Neue', Arial, sans-serif;
}

.aim-v2-justif__cabecera {
  display: flex; align-items: flex-start; gap: 16px; flex-wrap: wrap;
  padding-bottom: 20px;
  border-bottom: 1px solid #F0F1F2;
}
.aim-v2-justif__ico {
  width: 48px; height: 48px; border-radius: 13px;
  background: #E8F5E9; color: #2E7D32;
  display: grid; place-items: center; flex: none;
}
.aim-v2-justif__ico i.fa { font-size: 21px; }
.aim-v2-justif__titulo {
  margin: 0;
  font-size: 22px; font-weight: 700; color: #1F2937;
  letter-spacing: -0.3px; line-height: 1.35; text-wrap: pretty;
}
.aim-v2-justif__intro {
  margin: 8px 0 0;
  font-size: 15px; color: #4B5563;
  line-height: 1.65; max-width: 62ch; text-wrap: pretty;
}

.aim-v2-justif__ok {
  margin-top: 22px;
}
.aim-v2-justif__ok[hidden] { display: none !important; }

.aim-v2-justif__form { margin-top: 22px; }
.aim-v2-justif__req { color: #C62828; }

.aim-v2-justif__campo {
  margin-bottom: 18px;
}
.aim-v2-justif__campo label:not(.aim-v2-justif__drop) {
  display: block; font-size: 12.5px; font-weight: 700;
  color: #333; margin-bottom: 6px;
}
.aim-v2-justif__campo select {
  width: 100%; box-sizing: border-box;
  border: 1px solid #D8DCD8; border-radius: 8px;
  padding: 11px 13px;
  font-family: inherit; font-size: 14.5px;
  color: #1F2937; background: #FFF;
  max-width: 420px;
}
.aim-v2-justif__campo select:focus {
  border-color: #2E7D32;
  box-shadow: 0 0 0 3px rgba(46, 125, 50, .14);
  outline: none;
}

.aim-v2-justif__drop {
  display: flex; align-items: center; gap: 14px;
  border: 2px dashed #C8E6C9;
  background: #F8FBF8;
  border-radius: 10px;
  padding: 16px 18px;
  cursor: pointer;
  margin-top: 6px;
}
.aim-v2-justif__drop:hover {
  border-color: #2E7D32;
  background: #F1F8E9;
}
.aim-v2-justif__drop-ico {
  width: 38px; height: 38px; border-radius: 10px;
  background: #E8F5E9; color: #2E7D32;
  display: grid; place-items: center; flex: none;
}
.aim-v2-justif__drop-ico i.fa { font-size: 16px; }
.aim-v2-justif__drop-txt { flex: 1 1 auto; min-width: 0; }
.aim-v2-justif__drop-t {
  display: block; font-size: 14px; font-weight: 600; color: #1F2937;
}
.aim-v2-justif__drop-h {
  display: block; font-size: 12.5px; color: #6B7280; margin-top: 3px;
}
.aim-v2-justif__ayuda {
  display: block; font-size: 12.5px; color: #2E7D32;
  margin-top: 8px; font-weight: 600;
  min-height: 1.2em;
}

.aim-v2-justif__aviso {
  margin: 18px 0;
}

.aim-v2-justif__pie {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  margin-top: 8px;
  padding-top: 20px;
  border-top: 1px solid #F0F1F2;
}
.aim-v2-justif__btn {
  font-family: inherit; font-size: 15px; font-weight: 600;
  border-radius: 10px;
  padding: 13px 26px;
  cursor: pointer;
  border: 1px solid #2E7D32;
  background: #2E7D32; color: #FFF;
}
.aim-v2-justif__btn:hover:not(:disabled) { background: #1B5E20; border-color: #1B5E20; }
.aim-v2-justif__btn:disabled { opacity: .6; cursor: wait; }
.aim-v2-justif__msg {
  font-size: 13.5px; color: #6B7280;
}
.aim-v2-justif__msg.aim-form-msg--ok,
.aim-v2-justif__msg.aim-feedback--ok { color: #1B5E20; font-weight: 600; }
.aim-v2-justif__msg.aim-form-msg--error,
.aim-v2-justif__msg.aim-feedback--error { color: #C62828; font-weight: 600; }
.aim-v2-justif__pie-nota {
  margin: 10px 0 0 !important;
  font-size: 13.5px;
}

@media (max-width: 600px) {
  .aim-v2-justif { padding: 20px 16px 24px; }
  .aim-v2-justif__campo select { max-width: none; }
  .aim-v2-justif__btn { width: 100%; }
}

/* ============================================================
   /inscripcion/ · [aim_inscripcion_evento] · Envoltorio v2
   Aplica hero verde + estilos v2 sobre el form existente (6 pasos
   dinámicos + firma + intl-tel + custom fields), sin refactorizar
   la lógica JS. Overrides sobre .aim-insc-* (inscripcion-evento.css
   legacy sigue cargado como base).
   ============================================================ */

.aim-v2-insc {
  max-width: 940px;
  margin: 24px auto;
  font-size: 14px;
  color: #1F2937;
  font-family: 'Open Sans', 'Source Sans 3', 'Helvetica Neue', Arial, sans-serif;
}

.aim-v2-insc__lang {
  margin-bottom: 12px;
  display: flex; justify-content: flex-end;
}

.aim-v2-insc__hero {
  background: linear-gradient(135deg, #1B5E20 0%, #2E7D32 100%);
  color: #FFF;
  border-radius: 14px 14px 0 0;
  padding: 28px 30px 26px;
  overflow: hidden;
}
.aim-v2-insc__banner {
  display: block;
  width: 100%;
  max-height: 220px;
  object-fit: cover;
  object-position: center;
  border-radius: 10px;
  margin-bottom: 20px;
}
.aim-v2-insc__hero-body { color: #FFF; }
.aim-v2-insc__kicker {
  font-size: 11.5px; font-weight: 700; color: #C8E6C9;
  letter-spacing: 1.3px; text-transform: uppercase;
}
.aim-v2-insc__title {
  margin: 9px 0 0;
  font-size: 26px; font-weight: 700; color: #FFF;
  letter-spacing: -0.4px; line-height: 1.25;
  text-wrap: pretty;
}
.aim-v2-insc__meta {
  display: flex; gap: 20px; flex-wrap: wrap;
  margin-top: 12px;
  font-size: 13.5px; color: #C8E6C9;
}
.aim-v2-insc__meta span {
  display: inline-flex; align-items: center; gap: 7px;
}
.aim-v2-insc__meta i.fa { font-size: 14px; }

/* Contenedor form heredado: pegado bajo el hero, sin doble border-radius. */
.aim-v2-insc .aim-insc-form {
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-top: none;
  border-radius: 0 0 14px 14px;
  padding: 26px 30px 32px;
  margin: 0;
  max-width: none;
}

/* Ocultar el título/fechas legacy — ya los pinta el hero */
.aim-v2-insc .aim-insc-form > .aim-insc-title,
.aim-v2-insc .aim-insc-form > .aim-insc-dates,
.aim-v2-insc .aim-insc-form > .aim-insc-banner-img { display: none; }

/* Banners de estado socio/logueado/anónimo → estilo alert v2 */
.aim-v2-insc .aim-insc-banner {
  display: flex; align-items: flex-start; gap: 13px;
  padding: 14px 16px;
  border-radius: 10px;
  background: #E8F5E9;
  border: 1px solid #C8E6C9;
  color: #33691E;
  font-size: 14.5px; line-height: 1.55;
  margin-bottom: 22px;
}
.aim-v2-insc .aim-insc-banner--warning {
  background: #FFF3E0;
  border-color: #FFE082;
  color: #A04A00;
}
.aim-v2-insc .aim-insc-banner__body strong {
  display: block;
  margin-bottom: 4px;
  font-size: 15px;
}
.aim-v2-insc .aim-insc-banner__cta {
  margin-left: auto;
  background: #2E7D32; color: #FFF;
  text-decoration: none;
  font-weight: 600; font-size: 13.5px;
  padding: 9px 16px; border-radius: 8px;
  flex: none;
}
.aim-v2-insc .aim-insc-banner__cta:hover { background: #1B5E20; color: #FFF; }

/* Barra de pasos (wizard) → chips verdes canónicos */
.aim-v2-insc .aim-wizard-stepper {
  display: flex; gap: 10px; flex-wrap: wrap;
  margin: 0 0 22px;
  padding: 0 0 18px;
  list-style: none;
  border-bottom: 1px solid #F0F1F2;
}
.aim-v2-insc .aim-wizard-stepper li {
  flex: none;
  display: flex; align-items: center; gap: 9px;
  padding: 8px 14px 8px 8px;
  border-radius: 999px;
  border: 1px solid #E5E7EB;
  background: #FFF;
  font-size: 13.5px; font-weight: 600;
  color: #9CA3AF;
  cursor: default;
}
.aim-v2-insc .aim-wizard-stepper li.is-done,
.aim-v2-insc .aim-wizard-stepper li[data-done="1"] {
  border-color: #C8E6C9;
  color: #4B5563;
}
.aim-v2-insc .aim-wizard-stepper li.is-active {
  border-color: #2E7D32;
  background: #F1F8E9;
  color: #1B5E20;
}
.aim-v2-insc .aim-wizard-stepper__num {
  display: inline-block;
  padding: 3px 9px;
  border-radius: 999px;
  background: #F3F4F6; color: #9CA3AF;
  font-size: 11.5px; font-weight: 700;
  letter-spacing: 0.5px;
}
.aim-v2-insc .aim-wizard-stepper li.is-active .aim-v2-insc .aim-wizard-stepper__num,
.aim-v2-insc .aim-wizard-stepper li.is-active .aim-wizard-stepper__num {
  background: #2E7D32; color: #FFF;
}
.aim-v2-insc .aim-wizard-stepper li.is-done .aim-wizard-stepper__num {
  background: #C8E6C9; color: #1B5E20;
}

/* Steps del form (uno visible a la vez, ya lo hace el JS legacy) */
.aim-v2-insc .aim-insc-step { margin: 0; }

/* Secciones internas y títulos H2 */
.aim-v2-insc .aim-insc-section {
  margin: 0 0 22px;
  padding: 0;
  border: 0;
  background: transparent;
}
.aim-v2-insc .aim-insc-section h2 {
  margin: 0 0 18px;
  font-size: 11.5px; font-weight: 700; color: #6B7280;
  letter-spacing: 1.2px; text-transform: uppercase;
  padding-bottom: 8px;
  border-bottom: 1px solid #E5E7EB;
}

/* Rows + inputs + labels */
.aim-v2-insc .aim-insc-row {
  margin: 0 0 16px;
}
.aim-v2-insc .aim-insc-row--inline {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 16px 22px;
}
.aim-v2-insc .aim-insc-row label:not(.aim-insc-radio-line):not(.aim-insc-checkbox-line) {
  display: block; font-size: 12.5px; font-weight: 700;
  color: #333; margin-bottom: 6px;
}
.aim-v2-insc .aim-insc-required { color: #C62828; }
.aim-v2-insc .aim-insc-row input[type="text"],
.aim-v2-insc .aim-insc-row input[type="email"],
.aim-v2-insc .aim-insc-row input[type="tel"],
.aim-v2-insc .aim-insc-row input[type="date"],
.aim-v2-insc .aim-insc-row input[type="number"],
.aim-v2-insc .aim-insc-row select,
.aim-v2-insc .aim-insc-row textarea {
  width: 100%; box-sizing: border-box;
  border: 1px solid #D8DCD8;
  border-radius: 8px;
  padding: 11px 13px;
  font-family: inherit; font-size: 14.5px;
  color: #1F2937; background: #FFF;
}
.aim-v2-insc .aim-insc-row textarea { resize: vertical; line-height: 1.55; min-height: 120px; }
.aim-v2-insc .aim-insc-row input:focus,
.aim-v2-insc .aim-insc-row select:focus,
.aim-v2-insc .aim-insc-row textarea:focus {
  border-color: #2E7D32;
  box-shadow: 0 0 0 3px rgba(46, 125, 50, .14);
  outline: none;
}
.aim-v2-insc .aim-insc-input--uppercase { text-transform: uppercase; }

.aim-v2-insc .aim-insc-help {
  display: block; font-size: 12px; color: #9CA3AF;
  margin-top: 6px; line-height: 1.45;
}

/* Radios y checkboxes inline */
.aim-v2-insc .aim-insc-radio-line,
.aim-v2-insc .aim-insc-checkbox-line {
  display: flex; align-items: flex-start; gap: 10px;
  padding: 10px 12px;
  background: #FAFAFA;
  border: 1px solid #F0F1F2;
  border-radius: 8px;
  margin-bottom: 8px;
  cursor: pointer;
  font-size: 14.5px; color: #1F2937;
}
.aim-v2-insc .aim-insc-radio-line input[type="radio"],
.aim-v2-insc .aim-insc-checkbox-line input[type="checkbox"] {
  accent-color: #2E7D32;
  width: 18px; height: 18px;
  flex: none; margin-top: 2px;
}

/* Tarifas (radio cards del price set) */
.aim-v2-insc .aim-insc-tarifa,
.aim-v2-insc label.aim-insc-tarifa-line {
  display: flex; align-items: flex-start; gap: 14px;
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  padding: 16px 18px;
  cursor: pointer;
  transition: border-color .15s, background .15s;
  margin-bottom: 11px;
}
.aim-v2-insc .aim-insc-tarifa:hover,
.aim-v2-insc label.aim-insc-tarifa-line:hover {
  border-color: #2E7D32;
  background: #F7FBF7;
}

/* Feedback de validación DNI/NIE */
.aim-v2-insc .aim-doc-feedback {
  margin-top: 6px;
  font-size: 12.5px;
}
.aim-v2-insc .aim-doc-feedback--ok { color: #2E7D32; font-weight: 600; }
.aim-v2-insc .aim-doc-feedback--error { color: #C62828; font-weight: 600; }

/* Navegación (Prev/Next/Submit) */
.aim-v2-insc .aim-wizard-nav {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid #F0F1F2;
}
.aim-v2-insc .aim-w-prev {
  font-family: inherit; font-size: 14px; font-weight: 600;
  border-radius: 10px;
  padding: 12px 20px;
  cursor: pointer;
  border: 1px solid #D8DCD8;
  background: #FFF; color: #1F2937;
}
.aim-v2-insc .aim-w-prev:hover:not(:disabled) { border-color: #2E7D32; color: #2E7D32; background: #F1F8E9; }
.aim-v2-insc .aim-w-prev:disabled { opacity: .5; cursor: not-allowed; }
.aim-v2-insc .aim-w-next,
.aim-v2-insc .aim-w-submit {
  font-family: inherit; font-size: 15px; font-weight: 600;
  border-radius: 10px;
  padding: 13px 26px;
  cursor: pointer;
  border: 1px solid #2E7D32;
  background: #2E7D32; color: #FFF;
  margin-left: auto;
}
.aim-v2-insc .aim-w-next:hover:not(:disabled),
.aim-v2-insc .aim-w-submit:hover:not(:disabled) { background: #1B5E20; border-color: #1B5E20; }
.aim-v2-insc .aim-w-next:disabled,
.aim-v2-insc .aim-w-submit:disabled { opacity: .6; cursor: wait; }
.aim-v2-insc .aim-insc-msg {
  font-size: 13.5px; color: #6B7280;
  width: 100%;
  margin-top: 8px;
}
.aim-v2-insc .aim-insc-msg--ok    { color: #1B5E20; font-weight: 600; }
.aim-v2-insc .aim-insc-msg--error { color: #C62828; font-weight: 600; }

/* Firma canvas (acompañante o menor) */
.aim-v2-insc .aim-firma-canvas,
.aim-v2-insc canvas.aim-firma {
  display: block;
  width: 100%;
  border: 2px dashed #C8E6C9;
  border-radius: 12px;
  background: #F8FBF8;
  touch-action: none;
  cursor: crosshair;
}

@media (max-width: 640px) {
  .aim-v2-insc__hero { padding: 22px 20px 20px; }
  .aim-v2-insc__title { font-size: 22px; }
  .aim-v2-insc .aim-insc-form { padding: 22px 18px 26px; }
  .aim-v2-insc .aim-insc-row--inline { grid-template-columns: 1fr; }
  .aim-v2-insc .aim-w-next,
  .aim-v2-insc .aim-w-submit { width: 100%; margin-left: 0; }
  .aim-v2-insc .aim-w-prev { width: 100%; }
  .aim-v2-insc .aim-wizard-stepper { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 12px; }
}

/* ============================================================
   /inscripcion-confirmada/ · [aim_inscripcion_confirmada] v2
   ============================================================ */

.aim-v2-inscok {
  max-width: 840px;
  margin: 24px auto;
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  padding: 28px 30px 32px;
  font-size: 14px;
  color: #1F2937;
  font-family: 'Open Sans', 'Source Sans 3', 'Helvetica Neue', Arial, sans-serif;
}

.aim-v2-inscok__cabecera {
  display: flex; align-items: flex-start; gap: 18px; flex-wrap: wrap;
  padding-bottom: 26px;
  border-bottom: 1px solid #F0F1F2;
}
.aim-v2-inscok__ico {
  width: 58px; height: 58px; border-radius: 16px;
  background: #E8F5E9; color: #2E7D32;
  display: grid; place-items: center; flex: none;
}
.aim-v2-inscok__ico i.fa { font-size: 26px; }
.aim-v2-inscok__ico--err { background: #FFF3E0; color: #E65100; }

.aim-v2-inscok__titulo {
  margin: 0;
  font-size: 24px; font-weight: 700; color: #1B5E20;
  letter-spacing: -0.4px; line-height: 1.3; text-wrap: pretty;
}
.aim-v2-inscok__titulo--err { color: #1F2937; }
.aim-v2-inscok__subtitulo {
  margin: 9px 0 0;
  font-size: 15px; color: #4B5563;
  line-height: 1.6; max-width: 62ch; text-wrap: pretty;
}

.aim-v2-inscok__cuerpo { margin-top: 26px; }

.aim-v2-inscok__h3 {
  margin: 0;
  font-size: 11.5px; font-weight: 700; color: #6B7280;
  letter-spacing: 1.2px; text-transform: uppercase;
  padding-bottom: 8px;
  border-bottom: 1px solid #E5E7EB;
}
.aim-v2-inscok__h3--margen { margin: 30px 0 0; }

.aim-v2-inscok__resumen {
  width: 100%; border-collapse: collapse;
  font-size: 14.5px; margin-top: 12px;
}
.aim-v2-inscok__resumen tr { border-top: 1px solid #F3F4F6; }
.aim-v2-inscok__resumen th,
.aim-v2-inscok__resumen td {
  padding: 12px 16px 12px 0;
  text-align: left; vertical-align: top;
  border: 0; background: transparent;
  line-height: 1.45;
}
.aim-v2-inscok__resumen th {
  width: 32%; color: #6B7280; font-weight: 600; font-size: 13.5px;
}
.aim-v2-inscok__resumen td { color: #1F2937; word-break: break-word; }
.aim-v2-inscok__mono {
  font-family: monospace; font-size: 13.5px;
  color: #1F2937; letter-spacing: .3px;
}
.aim-v2-inscok__nota-inline {
  font-size: 12.5px; color: #6B7280;
  margin-left: 8px;
}

.aim-v2-inscok__pago {
  margin-top: 22px;
  padding: 20px 22px;
  border-radius: 12px;
}
.aim-v2-inscok__pago--pendiente {
  background: #FFFAF0;
  border: 1px solid #F0E4D0;
}
.aim-v2-inscok__pago--ok {
  background: #E8F5E9;
  border: 1px solid #C8E6C9;
}
.aim-v2-inscok__pago-head {
  display: flex; align-items: center; gap: 11px;
}
.aim-v2-inscok__pago-ico {
  width: 36px; height: 36px; border-radius: 10px;
  display: grid; place-items: center; flex: none;
}
.aim-v2-inscok__pago-ico i.fa { font-size: 16px; }
.aim-v2-inscok__pago-ico--warn { background: #FFF3E0; color: #E65100; }
.aim-v2-inscok__pago-ico--ok   { background: #E8F5E9; color: #2E7D32; }
.aim-v2-inscok__pago-t {
  font-size: 16px; font-weight: 700; color: #1F2937;
  letter-spacing: -0.2px;
}
.aim-v2-inscok__pago-p {
  margin: 12px 0 0;
  font-size: 14.5px; color: #4B5563;
  line-height: 1.6; max-width: 62ch; text-wrap: pretty;
}
.aim-v2-inscok__pago-tabla {
  width: 100%; border-collapse: collapse;
  font-size: 14px; margin-top: 16px;
}
.aim-v2-inscok__pago-tabla tr { border-top: 1px solid #F0E4D0; }
.aim-v2-inscok__pago-tabla th,
.aim-v2-inscok__pago-tabla td {
  padding: 12px 16px 12px 0;
  text-align: left; vertical-align: top;
  border: 0; background: transparent;
}
.aim-v2-inscok__pago-tabla th {
  width: 28%; color: #8A6A3A; font-weight: 600; font-size: 13.5px;
}
.aim-v2-inscok__pago-importe {
  font-size: 19px; font-weight: 700; color: #1B5E20;
  letter-spacing: -0.3px;
  font-variant-numeric: tabular-nums;
}
.aim-v2-inscok__pago-btn-wrap {
  margin-top: 18px;
}
.aim-v2-inscok__btn {
  display: inline-flex; align-items: center; gap: 9px;
  text-decoration: none;
  font-family: inherit; font-size: 14px; font-weight: 600;
  border-radius: 8px;
  padding: 13px 22px;
  border: 1px solid #2E7D32;
  background: #2E7D32; color: #FFF;
}
.aim-v2-inscok__btn:hover { background: #1B5E20; border-color: #1B5E20; color: #FFF; }
.aim-v2-inscok__btn i.fa { font-size: 14px; }

.aim-v2-inscok__acciones {
  display: flex; flex-direction: column; gap: 10px;
  margin-top: 16px;
}
.aim-v2-inscok__accion {
  display: flex; align-items: center; gap: 14px;
  text-decoration: none;
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  padding: 14px 18px;
  color: inherit;
}
.aim-v2-inscok__accion:hover {
  border-color: #2E7D32; background: #F7FBF7;
  color: inherit;
}
.aim-v2-inscok__accion-ico {
  width: 36px; height: 36px; border-radius: 10px;
  background: #E8F5E9; color: #2E7D32;
  display: grid; place-items: center; flex: none;
}
.aim-v2-inscok__accion-ico i.fa { font-size: 15px; }
.aim-v2-inscok__accion-body { flex: 1 1 auto; min-width: 0; }
.aim-v2-inscok__accion-t {
  display: block;
  font-size: 14.5px; font-weight: 600; color: #1F2937;
}
.aim-v2-inscok__accion-d {
  display: block;
  font-size: 12.5px; color: #6B7280;
  margin-top: 3px; line-height: 1.5;
}
.aim-v2-inscok__accion-chev {
  color: #9CA3AF; font-size: 19px; line-height: 1; flex: none;
}

.aim-v2-inscok__nota-final {
  display: flex; align-items: flex-start; gap: 12px;
  background: #FAFAFA;
  border-left: 3px solid #2E7D32;
  border-radius: 0 8px 8px 0;
  padding: 14px 16px;
  margin-top: 24px;
}
.aim-v2-inscok__nota-final > i.fa {
  font-size: 15px; color: #2E7D32; flex: none; margin-top: 2px;
}
.aim-v2-inscok__nota-final > div {
  font-size: 14px; color: #4B5563; line-height: 1.6; text-wrap: pretty;
}

.aim-v2-inscok__pie {
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid #F0F1F2;
}
.aim-v2-inscok__pie p {
  margin: 0;
  font-size: 14px; color: #4B5563;
  line-height: 1.65; max-width: 62ch; text-wrap: pretty;
}

@media (max-width: 640px) {
  .aim-v2-inscok { padding: 22px 18px 26px; }
  .aim-v2-inscok__titulo { font-size: 22px; }
  .aim-v2-inscok__ico { width: 48px; height: 48px; }
  .aim-v2-inscok__ico i.fa { font-size: 20px; }
  .aim-v2-inscok__resumen th,
  .aim-v2-inscok__resumen td { display: block; width: 100%; padding: 6px 0; }
  .aim-v2-inscok__resumen th { padding-top: 12px; }
  .aim-v2-inscok__pago-tabla th,
  .aim-v2-inscok__pago-tabla td { display: block; width: 100%; padding: 6px 0; }
  .aim-v2-inscok__pago-tabla th { padding-top: 12px; color: #A47B3A; font-size: 12px; }
  .aim-v2-inscok__btn { width: 100%; justify-content: center; }
}

/* ============================================================================
 * TEXTO LEGAL — política de cookies (shortcode aim_politica_cookies) y
 * cualquier otro documento legal futuro que use la clase .aim-v2-legal.
 * Diseño Design 2026-08-11 ("Politica de cookies AIM.html").
 * ============================================================================ */
.aim-v2-legal {
  max-width: 920px;
  margin: 0 auto;
  padding: 0 0 8px;
  color: #3A3F3A;
  line-height: 1.72;
  font-size: 15.5px;
  text-wrap: pretty;
}
.aim-v2-legal p {
  margin: 0 0 15px;
  font-size: 15.5px;
  line-height: 1.72;
  color: #3A3F3A;
  text-wrap: pretty;
}
.aim-v2-legal strong { font-weight: 700; color: #1F2937; }
.aim-v2-legal code {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 13px;
  background: #F1F3F1;
  border-radius: 4px;
  padding: 2px 6px;
  color: #1F2937;
  word-break: break-word;
}
.aim-v2-legal h2 {
  margin: 38px 0 16px;
  font-family: Raleway, sans-serif;
  font-size: 21px;
  font-weight: 700;
  color: #2E7D32;
  letter-spacing: -0.3px;
  line-height: 1.3;
  padding-bottom: 9px;
  border-bottom: 2px solid #E8F5E9;
}

/* Caja intro (fondo verde claro con borde + fecha al pie) */
.aim-v2-legal__intro {
  background: #F7FBF7;
  border: 1px solid #E3EFE4;
  border-radius: 12px;
  padding: 22px 24px;
  margin-bottom: 4px;
}
.aim-v2-legal__intro p { margin: 0; font-size: 16px; }
.aim-v2-legal__intro-meta {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid #E3EFE4;
  font-size: 13px;
  color: #6B7280;
}
.aim-v2-legal__intro-meta i { font-size: 13px; color: #6B7280; }

/* Nota previa (info azul) sobre "todas son estrictamente necesarias" */
.aim-v2-legal__nota {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  background: #E3F2FD;
  border: 1px solid #BBDEFB;
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 22px;
}
.aim-v2-legal__nota i { font-size: 15px; color: #1565C0; flex: none; margin-top: 3px; }
.aim-v2-legal__nota > div { font-size: 14px; color: #0D47A1; line-height: 1.65; }
.aim-v2-legal__nota code { background: #DBEEFF; color: #0D47A1; }

/* Bloques de familia (WordPress / Propias AIM / CiviCRM) */
.aim-v2-legal__familia {
  padding: 2px 0 22px;
  margin-bottom: 4px;
}
.aim-v2-legal__familia--destacada {
  background: #F7FBF7;
  border: 1px solid #E3EFE4;
  border-left: 4px solid #2E7D32;
  border-radius: 0 12px 12px 0;
  padding: 20px 22px;
  margin-bottom: 16px;
}
.aim-v2-legal__familia-head {
  display: flex;
  align-items: center;
  gap: 11px;
  flex-wrap: wrap;
}
.aim-v2-legal__familia-ico {
  width: 32px;
  height: 32px;
  border-radius: 9px;
  background: #F1F3F1;
  color: #4B5563;
  display: grid;
  place-items: center;
  flex: none;
}
.aim-v2-legal__familia-ico i { font-size: 15px; }
.aim-v2-legal__familia--destacada .aim-v2-legal__familia-ico {
  background: #2E7D32;
  color: #FFF;
}
.aim-v2-legal__familia-titulo {
  margin: 0;
  font-family: Raleway, sans-serif;
  font-size: 16.5px;
  font-weight: 700;
  color: #1F2937;
  letter-spacing: -0.2px;
  line-height: 1.35;
}
.aim-v2-legal__familia-count {
  margin-left: auto;
  font-size: 11.5px;
  font-weight: 700;
  color: #6B7280;
  letter-spacing: .3px;
  background: #F1F3F1;
  border-radius: 999px;
  padding: 3px 10px;
  white-space: nowrap;
}
.aim-v2-legal__familia-desc {
  margin: 8px 0 0;
  font-size: 13.5px;
  color: #6B7280;
  line-height: 1.6;
}

/* Tabla (desktop) por familia */
.aim-v2-legal__tabla-wrap { margin-top: 16px; }
.aim-v2-legal__tabla {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.aim-v2-legal__tabla th {
  text-align: left;
  padding: 0 16px 10px 0;
  font-size: 12px;
  font-weight: 700;
  color: #6B7280;
  letter-spacing: .6px;
  text-transform: uppercase;
  border-bottom: 2px solid #E5E7EB;
  vertical-align: bottom;
}
.aim-v2-legal__tabla th:nth-child(1) { width: 27%; }
.aim-v2-legal__tabla th:nth-child(3) { width: 24%; padding-right: 0; }
.aim-v2-legal__tabla td {
  padding: 14px 16px 14px 0;
  font-size: 14px;
  color: #3A3F3A;
  line-height: 1.6;
  vertical-align: top;
  border-top: 1px solid #F0F1F2;
}
.aim-v2-legal__tabla td:nth-child(1) { width: 27%; }
.aim-v2-legal__tabla td:nth-child(3) {
  width: 24%;
  padding-right: 0;
  color: #6B7280;
  font-size: 13.5px;
}
.aim-v2-legal__tabla tr:first-child td { border-top: 0; }

/* Cards (móvil) por familia — sustituyen a la tabla en pantallas estrechas */
.aim-v2-legal__cards { display: none; }
.aim-v2-legal__card {
  border: 1px solid #E5E7EB;
  border-radius: 10px;
  padding: 14px 16px;
  background: #FFF;
}
.aim-v2-legal__card code { display: inline-block; padding: 3px 7px; }
.aim-v2-legal__card-desc {
  font-size: 14px;
  color: #3A3F3A;
  line-height: 1.6;
  margin-top: 11px;
}
.aim-v2-legal__card-dur {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-top: 11px;
  padding-top: 11px;
  border-top: 1px solid #F0F1F2;
  font-size: 13px;
  color: #6B7280;
  line-height: 1.55;
}
.aim-v2-legal__card-dur i { font-size: 13px; color: #9CA3AF; flex: none; margin-top: 3px; }

/* Bloque destacado "Aquí no hay analítica ni rastreo" */
.aim-v2-legal__destacado {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  background: #F1F8E9;
  border: 1px solid #C8E6C9;
  border-radius: 14px;
  padding: 24px 26px;
  box-shadow: 0 18px 44px -30px rgba(15,58,22,.42);
}
.aim-v2-legal__destacado-ico {
  width: 54px;
  height: 54px;
  border-radius: 14px;
  background: #FFF;
  border: 1px solid #C8E6C9;
  display: grid;
  place-items: center;
  flex: none;
}
.aim-v2-legal__destacado-ico i { font-size: 24px; color: #2E7D32; }
.aim-v2-legal__destacado > div { flex: 1 1 auto; min-width: 0; }
.aim-v2-legal__destacado-titulo {
  font-family: Raleway, sans-serif;
  font-size: 18px;
  font-weight: 700;
  color: #1B5E20;
  letter-spacing: -0.3px;
  line-height: 1.35;
}
.aim-v2-legal__destacado p {
  margin: 9px 0 0;
  font-size: 15px;
  color: #33691E;
  line-height: 1.7;
}

/* Grid de navegadores con logo */
.aim-v2-legal__navegadores {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 6px;
}
.aim-v2-legal__nav {
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 13px;
  min-height: 56px;
  box-sizing: border-box;
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-radius: 10px;
  padding: 14px 16px;
  font-size: 14.5px;
  font-weight: 600;
  color: #1F2937;
  transition: background .15s, border-color .15s;
}
.aim-v2-legal__nav:hover,
.aim-v2-legal__nav:focus-visible {
  background: #F7FBF7;
  border-color: #C8E6C9;
  color: #1B5E20;
  text-decoration: none;
}
.aim-v2-legal__nav > i:first-child {
  font-size: 17px;
  color: #2E7D32;
  flex: none;
}
.aim-v2-legal__nav > span { flex: 1 1 auto; min-width: 0; }
.aim-v2-legal__nav-ext { font-size: 11px; color: #9CA3AF; flex: none; }

/* Aviso naranja sobre bloqueo */
.aim-v2-legal__aviso {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  background: #FFF3E0;
  border: 1px solid #FFE082;
  border-radius: 10px;
  padding: 15px 17px;
  margin-top: 18px;
}
.aim-v2-legal__aviso i { font-size: 15px; color: #E65100; flex: none; margin-top: 3px; }
.aim-v2-legal__aviso > div { font-size: 14.5px; color: #A04A00; line-height: 1.65; }

/* Botones CTA finales (primario + secundario) */
.aim-v2-legal__ctas {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 6px;
}
.aim-v2-legal__cta {
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  box-sizing: border-box;
  font-size: 14.5px;
  font-weight: 600;
  border-radius: 8px;
  padding: 13px 24px;
  border: 1px solid #2E7D32;
  transition: background .15s, color .15s;
}
.aim-v2-legal__cta i { font-size: 15px; }
.aim-v2-legal__cta--pri { background: #2E7D32; color: #FFF; }
.aim-v2-legal__cta--pri:hover,
.aim-v2-legal__cta--pri:focus-visible {
  background: #1B5E20; color: #FFF; text-decoration: none;
}
.aim-v2-legal__cta--sec { background: #FFF; color: #2E7D32; }
.aim-v2-legal__cta--sec:hover,
.aim-v2-legal__cta--sec:focus-visible {
  background: #F1F8E9; color: #1B5E20; text-decoration: none;
}

/* Pie fecha */
.aim-v2-legal__pie {
  margin-top: 38px;
  padding-top: 18px;
  border-top: 1px solid #F0F1F2;
  font-size: 13px;
  color: #6B7280;
}

/* Móvil — tabla → cards, grid navegadores → columna, CTAs stack */
@media (max-width: 759px) {
  .aim-v2-legal { font-size: 15px; }
  .aim-v2-legal h2 { font-size: 19px; margin-top: 32px; }
  .aim-v2-legal__intro { padding: 18px; }
  .aim-v2-legal__intro p { font-size: 15.5px; }
  .aim-v2-legal__familia { padding: 2px 0 18px; }
  .aim-v2-legal__familia--destacada { padding: 18px 16px; }
  .aim-v2-legal__tabla { display: none; }
  .aim-v2-legal__cards { display: flex; flex-direction: column; gap: 11px; }
  .aim-v2-legal__destacado { gap: 14px; padding: 20px 18px; }
  .aim-v2-legal__destacado-ico { width: 46px; height: 46px; }
  .aim-v2-legal__destacado-ico i { font-size: 20px; }
  .aim-v2-legal__navegadores { grid-template-columns: 1fr; gap: 10px; }
  .aim-v2-legal__ctas { flex-direction: column; }
  .aim-v2-legal__pie { margin-top: 32px; }
}

/* Impresión: quitar fondos y sombras (mock nota 8) */
@media print {
  .aim-v2-legal { color: #000; }
  .aim-v2-legal, .aim-v2-legal * { box-shadow: none !important; }
  .aim-v2-legal__intro {
    background: transparent;
    border: 0;
    border-bottom: 1px solid #999;
    border-radius: 0;
    padding: 0 0 18px;
    margin-bottom: 22px;
  }
  .aim-v2-legal__familia--destacada {
    background: transparent;
    border: 0;
    border-left: 2px solid #000;
    border-radius: 0;
    padding: 10px 0 10px 14px;
  }
  .aim-v2-legal__nota,
  .aim-v2-legal__aviso {
    background: transparent;
    border: 1px solid #999;
  }
  .aim-v2-legal__destacado {
    background: transparent;
    border: 2px solid #000;
  }
  .aim-v2-legal__destacado-ico { background: transparent; }
  .aim-v2-legal__nav,
  .aim-v2-legal__card { background: transparent; border-color: #999; }
  .aim-v2-legal__cta--pri {
    background: transparent !important;
    color: #000 !important;
    border-color: #000 !important;
  }
  .aim-v2-legal__cta--sec { border-color: #000 !important; color: #000 !important; }
  .aim-v2-legal__cards { display: none; }
  .aim-v2-legal__tabla { display: table; }
}

/* ============================================================================
 * LANDING ANÓNIMA · shortcode aim_landing_areasocios (mock Design 2026-08-12)
 * ============================================================================
 * Se pinta en la home / del subdominio cuando el visitante no está logueado.
 * 3 vías de acceso (socio pri, participante med, alta sec) + puente verde
 * del hero al fondo de la sección + mini-form para reenviar el link
 * personal a un email de inscripción. */

/* Mock Design 2026-08-12 v2:
 * - Sin puente verde ni card flotante — usa el lenguaje del resto del
 *   área socio: titular verde con filete de 2px + filas separadas.
 * - Las 3 vías comparten anatomía: bloque con borde 1px + border-left
 *   3px + radius. Solo cambia el color: pri lleva verde tenue con
 *   filete verde, las otras dos blanco con filete gris.
 * - Iconos: los 3 en gama verde (pri: verde macizo con glifo blanco;
 *   med y sec: verde tenue con glifo verde). Desaparece el gris que
 *   había en "Quiero asociarme". */
.aim-v2-landing {
  padding: 34px 30px 44px;
}
.aim-v2-landing__contenedor {
  max-width: 680px;
  margin: 0 auto;
}
.aim-v2-landing__card { }
.aim-v2-landing__cabecera {
  padding: 0 0 8px;
  border-bottom: 2px solid #2E7D32;
}
.aim-v2-landing__h {
  margin: 0;
  font-size: 19px;
  font-weight: 600;
  color: #2E7D32;
  letter-spacing: -0.01em;
  line-height: 1.3;
}
.aim-v2-landing__sub {
  margin: 14px 0 0;
  font-size: 14.5px;
  color: #4B5563;
  line-height: 1.65;
  max-width: 52ch;
  text-wrap: pretty;
}

.aim-v2-landing__fila {
  padding: 22px 22px;
  border-radius: 0 10px 10px 0;
  margin-top: 12px;
  background: #FFF;
  border: 1px solid #E5E7EB;
  border-left: 3px solid #E5E7EB;
}
.aim-v2-landing__fila--pri {
  background: #F1F8E9;
  border-color: #C8E6C9;
  border-left: 3px solid #2E7D32;
  margin-top: 24px;
}
.aim-v2-landing__encabezado {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}
.aim-v2-landing__ico {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  flex: none;
  font-size: 16px;
  background: #E8F5E9;
  color: #2E7D32;
}
.aim-v2-landing__ico--pri { width: 42px; height: 42px; border-radius: 11px; background: #2E7D32; color: #FFF; font-size: 18px; }
.aim-v2-landing__ico--med { background: #E8F5E9; color: #2E7D32; }
.aim-v2-landing__ico--sec { background: #E8F5E9; color: #2E7D32; }
.aim-v2-landing__enc-texto { flex: 1 1 auto; min-width: 0; }
.aim-v2-landing__titulo {
  font-family: Raleway, sans-serif;
  font-size: 16.5px;
  font-weight: 700;
  color: #1F2937;
  letter-spacing: -0.3px;
  line-height: 1.35;
  text-wrap: pretty;
}
.aim-v2-landing__titulo--pri { font-size: 19px; }
.aim-v2-landing__desc {
  margin: 6px 0 0;
  font-size: 14px;
  color: #4B5563;
  line-height: 1.65;
  text-wrap: pretty;
}
.aim-v2-landing__fila--pri .aim-v2-landing__desc { font-size: 14.5px; }

.aim-v2-landing__accion {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  margin-top: 15px;
  padding-left: 52px;
}
.aim-v2-landing__fila--pri .aim-v2-landing__accion { padding-left: 56px; }
.aim-v2-landing__btn {
  font-family: inherit;
  font-weight: 600;
  border-radius: 8px;
  cursor: pointer;
  border: 1px solid;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  text-decoration: none;
  transition: background .15s, border-color .15s;
  box-sizing: border-box; /* Sin esto, width:100% en móvil + padding + border
                           * hace que el botón desborde el contenedor y
                           * arrastre el ancho del <body>. */
}
.aim-v2-landing__btn--pri {
  background: #2E7D32;
  border-color: #2E7D32;
  color: #FFF;
  font-size: 15.5px;
  padding: 15px 30px;
  min-height: 52px;
}
.aim-v2-landing__btn--pri:hover,
.aim-v2-landing__btn--pri:focus-visible { background: #1B5E20; border-color: #1B5E20; color: #FFF; text-decoration: none; }
.aim-v2-landing__btn--sec {
  background: #FFF;
  border-color: #2E7D32;
  color: #2E7D32;
  font-size: 14.5px;
  padding: 12px 22px;
  min-height: 46px;
}
.aim-v2-landing__btn--sec:hover,
.aim-v2-landing__btn--sec:focus-visible { background: #F1F8E9; text-decoration: none; }
.aim-v2-landing__btn--sec i { font-size: 12px; }
.aim-v2-landing__olvido {
  font-size: 13.5px;
  font-weight: 600;
  text-decoration: none;
  color: #2E7D32;
}
.aim-v2-landing__olvido:hover,
.aim-v2-landing__olvido:focus-visible { color: #1B5E20; text-decoration: underline; }

.aim-v2-landing__reenviar {
  margin-top: 14px;
  padding-left: 52px;
}
.aim-v2-landing__enlace-reenviar {
  font-size: 13.5px;
  font-weight: 600;
  text-decoration: none;
  color: #2E7D32;
}
.aim-v2-landing__enlace-reenviar:hover,
.aim-v2-landing__enlace-reenviar:focus-visible { color: #1B5E20; text-decoration: underline; }
.aim-v2-landing__form-reenviar {
  background: #F1F8E9;
  border: 1px solid #C8E6C9;
  border-radius: 10px;
  padding: 16px 18px;
  margin-top: 8px;
}
.aim-v2-landing__form-reenviar[hidden] { display: none; }
.aim-v2-landing__form-label {
  display: block;
  font-size: 12.5px;
  font-weight: 700;
  color: #333;
  margin-bottom: 7px;
}
.aim-v2-landing__form-fila {
  display: flex;
  gap: 10px;
  align-items: stretch;
}
.aim-v2-landing__input {
  flex: 1 1 auto;
  min-width: 0;
  box-sizing: border-box;
  border: 1px solid #D8DCD8;
  border-radius: 8px;
  padding: 11px 13px;
  font-family: inherit;
  font-size: 14.5px;
  color: #1F2937;
  background: #FFF;
}
.aim-v2-landing__input:focus {
  outline: none;
  border-color: #2E7D32;
  box-shadow: 0 0 0 3px rgba(46,125,50,.16);
}
.aim-v2-landing__btn-enviar {
  font-family: inherit;
  font-weight: 600;
  border: 1px solid #2E7D32;
  background: #2E7D32;
  color: #FFF;
  font-size: 14px;
  padding: 11px 20px;
  min-height: 46px;
  border-radius: 8px;
  cursor: pointer;
  white-space: nowrap;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.aim-v2-landing__btn-enviar:hover,
.aim-v2-landing__btn-enviar:focus-visible { background: #1B5E20; border-color: #1B5E20; }
.aim-v2-landing__btn-enviar[disabled] { opacity: .72; cursor: default; }
.aim-v2-landing__spinner {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,.4);
  border-top-color: #FFF;
  animation: aim-spin .7s linear infinite;
  display: none;
  flex: none;
}
.aim-v2-landing__btn-enviar.is-enviando .aim-v2-landing__spinner { display: block; }
.aim-v2-landing__form-hint {
  margin: 11px 0 0;
  font-size: 12.5px;
  color: #6B7280;
  line-height: 1.6;
  text-wrap: pretty;
}
.aim-v2-landing__reenviado {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  background: #F1F8E9;
  border: 1px solid #C8E6C9;
  border-radius: 10px;
  padding: 14px 16px;
  margin-top: 8px;
}
.aim-v2-landing__reenviado[hidden] { display: none; }
.aim-v2-landing__reenviado i { font-size: 16px; color: #1B5E20; flex: none; margin-top: 2px; }
.aim-v2-landing__reenviado > div {
  font-size: 13.5px;
  color: #33691E;
  line-height: 1.6;
  text-wrap: pretty;
}

.aim-v2-landing__ayuda {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  flex-wrap: wrap;
  margin-top: 32px;
  font-size: 14px;
  color: #4B5563;
  line-height: 1.6;
}
.aim-v2-landing__ayuda i { font-size: 15px; color: #2E7D32; flex: none; margin-top: 2px; }
.aim-v2-landing__ayuda a {
  color: #2E7D32;
  font-weight: 600;
  text-decoration: none;
}
.aim-v2-landing__ayuda a:hover,
.aim-v2-landing__ayuda a:focus-visible { color: #1B5E20; text-decoration: underline; }

@media (max-width: 640px) {
  .aim-v2-landing { padding: 26px 16px 30px; }
  .aim-v2-landing__cabecera { padding: 0 0 8px; }
  .aim-v2-landing__h { font-size: 18px; }
  .aim-v2-landing__fila { padding: 18px 16px; margin-top: 11px; }
  .aim-v2-landing__fila--pri { margin-top: 20px; }
  .aim-v2-landing__titulo--pri { font-size: 18px; }
  .aim-v2-landing__accion,
  .aim-v2-landing__fila--pri .aim-v2-landing__accion {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    padding-left: 0;
  }
  .aim-v2-landing__btn { width: 100%; }
  .aim-v2-landing__olvido { text-align: center; }
  .aim-v2-landing__reenviar { padding-left: 0; }
  .aim-v2-landing__form-fila { flex-direction: column; gap: 10px; }
  .aim-v2-landing__ayuda { margin-top: 26px; }
}
