/*
 * Centro de confianza público (/legal y sus páginas) · estilos del hub.
 *
 * Va después de home.css, que trae la base de las páginas del landing (hero, secciones, botones, tipografía).
 * Las maquetas aprobadas son docs/design/bakeoff/centro-confianza/ (hub-legal.html y hub-legal.css): esta hoja
 * es su cascada, sin lo que era sólo de la maqueta (la barra de controles, las fuentes con ruta relativa, el
 * correo de ejemplo). R-15: color sólo con variables semánticas, nunca hex ni primitivos.
 *
 * La vista del propio documento NO se estiliza aquí: es la plantilla única (R-36) de /privacy y /terms,
 * landing/partials/r/legal-document.php con su hoja legal-document.css.
 *
 * Componentes del hub, todos con el prefijo .hub- (y .cc- los compartidos con la app y el admin):
 *   tarjetas de confianza (.hub-confianza), documentos públicos (.hub-doc), disponibilidad (.hub-disp),
 *   buscador con alias (.hub-banda, .hub-r), Tus documentos (.hub-mis), lista de requisitos (.hub-reqs),
 *   historial y comparación (.hub-versiones, .hub-cmp), seguimiento (.hub-linea, .hub-plazo) y la hoja de
 *   solicitud con pasos (.hub-capa, .hub-sheet, .hub-pasos).
 */

/* ── Piezas comunes del Centro de confianza (nivel de acceso, estado, miniatura de hoja, huella) ── */

/* ── Nivel de acceso ─────────────────────────────────────────────── */
.cc-nivel {
  display: inline-flex; align-items: center; gap: var(--space-1);
  padding: 2px var(--space-2); border-radius: var(--badge-radius, var(--radius-full));
  font-size: var(--text-xs); font-weight: var(--font-semibold); line-height: 1.5;
  white-space: nowrap; border: 1px solid transparent;
}
.cc-nivel .icon { width: 12px; height: 12px; }
.cc-nivel--publico    { background: var(--color-success-light); color: var(--color-success-text); }
.cc-nivel--solicitud  { background: var(--color-info-light);    color: var(--color-info-text); }
.cc-nivel--invitacion { background: var(--color-accent-light);  color: var(--color-accent-active); }
.cc-nivel--privado    { background: var(--color-surface-sunken); color: var(--color-text-secondary); border-color: var(--color-border); }

/* ── Estado de solicitud ─────────────────────────────────────────── */
.cc-estado {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: var(--text-xs); font-weight: var(--font-medium); color: var(--color-text-secondary);
  white-space: nowrap;
}
.cc-estado::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--color-text-tertiary); }
.cc-estado--neutro::before  { background: var(--color-text-tertiary); }
.cc-estado--aviso::before   { background: var(--color-warning); }
.cc-estado--exito::before   { background: var(--color-success); }
.cc-estado--peligro::before { background: var(--color-danger); }

/* ── La hoja: miniatura de un documento redactado ────────────────────
 * Un contenedor con proporción carta; dentro, el HTML real del documento escalado
 * (.cc-hoja__lienzo mide 816 px de ancho y se reduce con --cc-escala). Sin pdf.js:
 * los PDF subidos usan .cc-hoja--archivo con ícono. */
.cc-hoja {
  --cc-escala: .22;
  position: relative; aspect-ratio: 8.5 / 11; overflow: hidden;
  background: var(--color-surface); border-radius: var(--radius-sm);
  box-shadow: 0 1px 2px var(--color-border), 0 8px 24px -12px var(--color-border-strong);
}
.cc-hoja--pila { box-shadow: 0 1px 2px var(--color-border), 4px 4px 0 -1px var(--color-surface), 4px 4px 0 0 var(--color-border),
                 8px 8px 0 -1px var(--color-surface), 8px 8px 0 0 var(--color-border); }
.cc-hoja__lienzo {
  position: absolute; top: 0; left: 0; width: 816px; padding: 72px;
  transform: scale(var(--cc-escala)); transform-origin: 0 0; pointer-events: none;
  color: var(--color-text-primary); font-size: 15px; line-height: 1.6;
}
.cc-hoja__lienzo h1 { font-size: 30px; margin: 0 0 16px; }
.cc-hoja__lienzo h2 { font-size: 19px; margin: 24px 0 8px; }
.cc-hoja__lienzo p  { margin: 0 0 10px; color: var(--color-text-secondary); }
.cc-hoja--archivo { display: grid; place-items: center; color: var(--color-text-tertiary); background: var(--color-surface-sunken); }
.cc-hoja--archivo .icon { width: 32px; height: 32px; }
.cc-hoja__formato {
  position: absolute; right: 6px; bottom: 6px; padding: 1px 6px; border-radius: var(--radius-sm);
  font-size: 10px; font-weight: var(--font-bold); letter-spacing: .04em; text-transform: uppercase;
  background: var(--color-text-primary); color: var(--color-text-inverse);
}

/* ── Huella sha256 legible ───────────────────────────────────────── */
.cc-huella { font-family: var(--font-family-mono); font-size: var(--text-xs); color: var(--color-text-secondary); word-break: break-all; }
.cc-huella b { color: var(--color-text-primary); font-weight: var(--font-semibold); }

/* El atributo hidden gana siempre, aunque el elemento declare su propio display. */
.hub-page [hidden], .hub-capa [hidden] { display: none !important; }

html.hub-bloqueado { overflow: hidden; }

.hub-solo-desktop { display: none; }
@media (min-width: 768px) { .hub-solo-desktop { display: initial; } .hub-solo-movil { display: none !important; } }

/* ── Piezas pequeñas ────────────────────────────────────────────────── */
.hub-nota { margin: var(--space-3) 0 0; font-size: var(--text-xs); line-height: 1.5; color: var(--color-text-secondary); }
.hub-link {
  display: inline-flex; align-items: center; gap: var(--space-1-5); padding: 0; border: 0; background: none;
  font: inherit; font-size: var(--text-sm); font-weight: var(--font-semibold); color: var(--color-text-link); cursor: pointer;
}
.hub-link:hover { color: var(--color-text-link-hover); text-decoration: underline; text-underline-offset: 3px; }
.hub-link .icon { width: 16px; height: 16px; }
.hub-link--bloque { margin-top: var(--space-4); }
.hub-etiqueta {
  display: inline-flex; align-items: center; padding: 1px var(--space-2); border-radius: var(--radius-full);
  font-size: 11px; font-weight: var(--font-bold); line-height: 1.6; letter-spacing: .02em;
  background: var(--color-surface-sunken); color: var(--color-text-secondary); border: 1px solid var(--color-border);
}
.hub-etiqueta--ok { background: var(--color-success-light); color: var(--color-success-text); border-color: transparent; }
.hub-etiqueta--info { background: var(--color-info-light); color: var(--color-info-text); border-color: transparent; }
.hub-sello-mini { display: inline-flex; align-items: center; gap: var(--space-1-5); font-size: var(--text-sm); font-weight: var(--font-medium); color: var(--color-text-secondary); }
.hub-sello-mini .icon { width: 15px; height: 15px; }
.hub-sello-mini.is-ok { color: var(--color-success-text); }
.hub-sello-mini.is-info { color: var(--color-info-text); }
.hub-sello-mini.is-aviso { color: var(--color-warning-text); }
.hub-vacio { margin: 0; padding: var(--space-5) 0; font-size: var(--text-sm); color: var(--color-text-secondary); }
.hub-sec-2 { color: var(--color-text-secondary); font-size: var(--text-sm); }
.hub-angosto { max-width: 820px; }
.hub-avatar {
  display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; flex: none;
  background: var(--color-accent-light); color: var(--color-accent-active); font-size: var(--text-xs); font-weight: var(--font-bold);
}

/* Punto que late. */
.hub-punto { position: relative; display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: var(--color-success); flex: none; }
.hub-punto::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: inherit; animation: hub-latido 2.4s ease-out infinite; }
.hub-punto--aviso, .hub-punto--degradado { background: var(--color-warning); }
.hub-punto--interrumpido { background: var(--color-danger); }
.hub-punto--operativo { background: var(--color-success); }
.hub-punto--operativo::after { animation: none; }
@keyframes hub-latido { 0% { transform: scale(1); opacity: .55; } 70%, 100% { transform: scale(2.8); opacity: 0; } }

/* ── Hero del hub y línea de confianza ──────────────────────────────── */
.hub-hero .lead { max-width: 46rem; }
.hub-confianza { list-style: none; margin: var(--space-6) 0 0; padding: 0; display: grid; gap: var(--space-3); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hub-confianza > li:first-child { grid-column: 1 / -1; }
.hub-conf {
  min-width: 0; display: flex; flex-direction: column; gap: 2px; height: 100%; min-height: 44px; padding: var(--space-3) var(--space-4);
  border: 1px solid var(--color-border); border-radius: var(--radius-xl); background: var(--color-surface);
  box-shadow: var(--shadow-xs); transition: border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
}
.hub-conf:hover { border-color: var(--color-border-strong); box-shadow: var(--shadow-md); transform: translateY(-1px); }
.hub-conf__etq { font-size: var(--text-xs); font-weight: var(--font-semibold); letter-spacing: .05em; text-transform: uppercase; color: var(--color-text-secondary); }
.hub-conf__val { display: inline-flex; align-items: center; gap: var(--space-2); font-size: var(--text-lg); font-weight: var(--font-bold); color: var(--color-text-primary); letter-spacing: -.01em; }
.hub-conf__sub { font-size: var(--text-sm); color: var(--color-text-secondary); }
.hub-conf__sub[data-aviso] { color: var(--color-warning-text); font-weight: var(--font-medium); }
.hub-conf__mini { display: block; margin-top: var(--space-1-5); }
@media (min-width: 900px) {
  .hub-confianza { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); }
  .hub-confianza > li:first-child { grid-column: auto; }
  .hub-conf { padding: var(--space-4) var(--space-5); }
  .hub-conf__val { font-size: var(--text-xl); }
}

/* Barras de disponibilidad a 90 días. */
.hub-dias { display: flex; gap: 2px; height: 14px; }
.hub-dias--grande { height: 40px; gap: 2px; }
.hub-dia { display: block; flex: 1; min-width: 0; border-radius: 2px; background: var(--color-success); }
.hub-dia--deg { background: var(--color-warning); }
.hub-dia--down { background: var(--color-danger); }
.hub-dias:not(.hub-dias--grande) { gap: 1px; }
.hub-est__msg.is-aviso { color: var(--color-warning-text); font-weight: var(--font-medium); }
@media (max-width: 767.98px) { .hub-dias:not(.hub-dias--grande) { gap: 0; } .hub-dias:not(.hub-dias--grande) .hub-dia { border-radius: 0; } .hub-dias--grande { gap: 1px; } }

/* ── Navegación interna del hub ─────────────────────────────────────── */
.hub-ancla { position: sticky; top: 62px; z-index: 30; background: var(--color-surface); border-bottom: 1px solid var(--color-border); }
.hub-ancla ul { display: flex; gap: var(--space-2); margin: 0; padding: var(--space-2) 0; list-style: none; overflow-x: auto; scrollbar-width: none; }
.hub-ancla ul::-webkit-scrollbar { display: none; }
.hub-ancla a {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 var(--space-4); border-radius: var(--radius-full);
  border: 1px solid var(--color-border); font-size: var(--text-sm); font-weight: var(--font-semibold);
  color: var(--color-text-secondary); white-space: nowrap; background: var(--color-surface);
  transition: background var(--transition-fast), color var(--transition-fast);
}
.hub-ancla a:hover { background: var(--color-surface-sunken); color: var(--color-text-primary); }
.hub-ancla a[aria-current="true"] { background: var(--color-text-primary); border-color: var(--color-text-primary); color: var(--color-text-inverse); }
@media (min-width: 768px) { .hub-ancla ul { overflow: visible; } .hub-ancla a { min-height: 40px; } }

/* ── Secciones ──────────────────────────────────────────────────────── */
/* El destino de un ancla lo coloca html{scroll-padding-top}: aquí se amplía con la barra de anclas pegada bajo el menú. */
html { scroll-padding-top: calc(var(--nav-h) + 72px); }
.hub-sec__cab { margin-bottom: var(--space-6); }
.hub-sec__cab .lead { margin-top: var(--space-2); font-size: var(--text-base); }
.hub-page .sec { padding: var(--space-9) 0; }
@media (min-width: 768px) { .hub-page .sec { padding: var(--space-12) 0; } }
.hub-sec--disp, .hub-sec--solicitud { background: var(--color-surface-sunken); }

/* ── Tamaños de la hoja (miniatura de documento) ────────────────────── */
.hub-hoja { width: var(--w); }
.hub-hoja--s { --w: 76px; --cc-escala: .0931; }
.hub-hoja--m { --w: 112px; --cc-escala: .1373; }
.hub-hoja--l { --w: 200px; --cc-escala: .2451; }
.hub-hoja--xl { --w: 300px; --cc-escala: .3676; }
.hub-hoja.cc-hoja--archivo .icon { width: 28px; height: 28px; }
.hub-barra { display: block; width: var(--bw, 90%); height: 10px; margin: 0 0 10px; border-radius: 3px; background: var(--color-border); }
.hub-tabla-mini { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px 10px; margin-top: 28px; }
.hub-tabla-mini b { font-size: 12px; line-height: 1.2; color: var(--color-text-primary); }
.hub-tabla-mini i { display: block; height: 14px; border-radius: 3px; background: var(--color-border); }

/* ── Documentos públicos ────────────────────────────────────────────── */
.hub-docs { display: grid; gap: var(--space-5); grid-template-columns: 1fr; }
.hub-doc {
  display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-4); padding: var(--space-4);
  border: 1px solid var(--color-border); border-radius: var(--radius-xl); background: var(--color-surface); box-shadow: var(--shadow-xs);
  transition: border-color var(--transition-fast), box-shadow var(--transition-normal), transform var(--transition-normal);
}
.hub-doc:hover { border-color: var(--color-border-strong); box-shadow: var(--shadow-lg); transform: translateY(-2px); }
.hub-doc .hub-hoja { --w: 76px; --cc-escala: .0931; }
.hub-doc__hoja { display: block; align-self: start; }
.hub-doc__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin: 0 0 var(--space-2); font-size: var(--text-xs); color: var(--color-text-secondary); }
.hub-doc__titulo { margin: 0; font-size: var(--text-lg); line-height: 1.25; letter-spacing: -.01em; }
.hub-doc__titulo a:hover { color: var(--color-primary); }
.hub-doc__resumen { margin: var(--space-1-5) 0 0; font-size: var(--text-sm); line-height: 1.5; color: var(--color-text-secondary); }
.hub-doc__fecha { margin: var(--space-3) 0 0; font-size: var(--text-sm); font-weight: var(--font-semibold); }
.hub-doc__cambio { margin: var(--space-1) 0 0; font-size: var(--text-sm); line-height: 1.5; color: var(--color-text-secondary); }
.hub-doc__cambio b { color: var(--color-text-primary); font-weight: var(--font-semibold); }
.hub-doc__acciones { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); margin-top: var(--space-4); }
.hub-doc__acciones .btn { gap: var(--space-1-5); }
.hub-doc__acciones .icon { width: 16px; height: 16px; }
@media (min-width: 768px) {
  .hub-docs { grid-template-columns: 1fr 1fr; gap: var(--space-6); }
  .hub-doc { gap: var(--space-5); padding: var(--space-5); }
  .hub-doc .hub-hoja { --w: 112px; --cc-escala: .1373; }
  .hub-doc:last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (min-width: 1100px) {
  .hub-doc .hub-hoja { --w: 132px; --cc-escala: .1618; }
}

/* ── Disponibilidad ─────────────────────────────────────────────────── */
.hub-disp { display: grid; gap: var(--space-8); grid-template-columns: 1fr; align-items: start; }
.hub-disp__texto .lead { margin-top: var(--space-2); font-size: var(--text-base); }
.hub-disp__sub { margin: var(--space-6) 0 var(--space-1-5); font-size: var(--text-base); }
.hub-disp__fuente { margin: 0; font-size: var(--text-sm); line-height: 1.6; color: var(--color-text-secondary); max-width: 52ch; }
.hub-disp__parcial { display: flex; align-items: flex-start; gap: var(--space-2); margin: var(--space-4) 0 0; padding: var(--space-3) var(--space-4); border: 1px solid var(--color-info); border-radius: var(--radius-lg); background: var(--color-info-light); font-size: var(--text-sm); line-height: 1.5; max-width: 52ch; }
.hub-disp__parcial .icon { width: 18px; height: 18px; margin-top: 1px; flex: none; color: var(--color-info-text); }
.hub-est__card { padding: var(--space-5); border: 1px solid var(--color-border); border-radius: var(--radius-xl); background: var(--color-surface); box-shadow: var(--shadow-sm); }
.hub-est__cab { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); }
.hub-est__titulo { margin: 0; font-size: var(--text-lg); }
.hub-est__chip { display: inline-flex; align-items: center; gap: var(--space-2); padding: var(--space-1) var(--space-3); border-radius: var(--radius-full); background: var(--color-success-light); color: var(--color-success-text); font-size: var(--text-sm); font-weight: var(--font-semibold); }
.hub-est__chip.is-aviso { background: var(--color-warning-light); color: var(--color-warning-text); }
.hub-est__chip.is-down { background: var(--color-danger-light); color: var(--color-danger-text); }
.hub-est__msg { margin: var(--space-2) 0 0; font-size: var(--text-sm); color: var(--color-text-secondary); }
.hub-est__nota { margin: var(--space-1) 0 0; font-size: var(--text-sm); color: var(--color-text-secondary); }
.hub-est__serie { margin-top: var(--space-5); padding-top: var(--space-5); border-top: 1px solid var(--color-border); }
.hub-est__serie-cab { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-3); margin-bottom: var(--space-2); font-size: var(--text-sm); color: var(--color-text-secondary); }
.hub-est__serie-cab b { font-size: var(--text-xl); color: var(--color-text-primary); font-variant-numeric: tabular-nums; }
.hub-est__ejes { display: flex; justify-content: space-between; margin-top: var(--space-1-5); font-size: var(--text-xs); color: var(--color-text-secondary); }
.hub-leyenda { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-4); margin: var(--space-3) 0 0; padding: 0; list-style: none; font-size: var(--text-xs); color: var(--color-text-secondary); }
.hub-leyenda li { display: inline-flex; align-items: center; gap: var(--space-1-5); }
.hub-leyenda .hub-dia { flex: none; width: 10px; height: 10px; border-radius: 3px; }
@media (min-width: 900px) {
  .hub-disp { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-12); }
  .hub-est__card { padding: var(--space-6); }
}

/* ── Buscador con alias ─────────────────────────────────────────────── */
.hub-banda { display: grid; gap: var(--space-4); padding: var(--space-5); border: 1px solid var(--color-border); border-radius: var(--radius-xl); background: var(--color-surface); }
.hub-banda__titulo { margin: 0; font-size: var(--text-lg); letter-spacing: -.01em; }
.hub-banda__texto p { margin: var(--space-1-5) 0 0; font-size: var(--text-sm); line-height: 1.5; color: var(--color-text-secondary); }
.hub-buscar__label { display: block; margin-bottom: var(--space-1-5); font-size: var(--text-sm); font-weight: var(--font-semibold); }
.hub-buscar__campo { position: relative; display: flex; align-items: center; }
.hub-buscar__campo > .icon { position: absolute; left: var(--space-4); width: 20px; height: 20px; color: var(--color-text-secondary); pointer-events: none; }
.hub-buscar__input {
  width: 100%; min-height: 52px; padding: 0 52px 0 46px; font: inherit; font-size: 16px; color: var(--color-text-primary);
  border: 1px solid var(--color-border-strong); border-radius: var(--radius-lg); background: var(--color-surface);
  appearance: none; -webkit-appearance: none;
}
.hub-buscar__input::-webkit-search-cancel-button { display: none; }
/* Con el campo vacío no hay botón de borrar: el espacio de la derecha se libera para el texto de ejemplo. */
.hub-buscar__input:placeholder-shown { padding-right: var(--space-4); }
.hub-buscar__input::placeholder { color: var(--color-text-secondary); opacity: 1; }
.hub-buscar__input:focus { outline: none; border-color: var(--color-border-focus); box-shadow: var(--input-focus-ring); }
.hub-buscar__borrar { position: absolute; right: 4px; width: 44px; height: 44px; display: grid; place-items: center; border: 0; background: none; border-radius: var(--radius-lg); color: var(--color-text-secondary); cursor: pointer; }
.hub-buscar__borrar:hover { background: var(--color-surface-sunken); color: var(--color-text-primary); }
.hub-buscar__borrar .icon { width: 18px; height: 18px; }
.hub-buscar__ej { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin: 0; font-size: var(--text-sm); color: var(--color-text-secondary); }
.hub-chip {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 var(--space-4); border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-full); background: var(--color-surface); font: inherit; font-size: var(--text-sm); font-weight: var(--font-semibold);
  color: var(--color-text-primary); cursor: pointer; transition: background var(--transition-fast);
}
.hub-chip:hover { background: var(--color-surface-sunken); }
@media (min-width: 900px) {
  .hub-banda { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: var(--space-3) var(--space-8); padding: var(--space-6); align-items: start; }
  .hub-banda__texto { grid-row: 1 / span 2; }
  .hub-chip { min-height: 36px; }
}
.hub-res { margin-top: var(--space-5); }
.hub-res:empty { margin: 0; }
.hub-res__cab { margin: 0 0 var(--space-3); font-size: var(--text-sm); font-weight: var(--font-semibold); color: var(--color-text-secondary); }
.hub-res__lista { display: grid; gap: var(--space-4); grid-template-columns: 1fr; animation: hub-entra .28s ease both; }
.hub-r { display: flex; flex-direction: column; padding: var(--space-5); border: 1px solid var(--color-border); border-radius: var(--radius-xl); background: var(--color-surface); box-shadow: var(--shadow-sm); }
.hub-r--solicitud { border-top: 3px solid var(--color-info); }
.hub-r__cab { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); }
.hub-r__alias { display: inline-flex; align-items: center; gap: var(--space-1); font-size: var(--text-xs); font-weight: var(--font-medium); color: var(--color-text-secondary); }
.hub-r__alias .icon { width: 13px; height: 13px; color: var(--color-success-text); }
.hub-r__titulo { margin: var(--space-3) 0 0; font-size: var(--text-lg); line-height: 1.25; letter-spacing: -.01em; }
.hub-r__resumen { margin: var(--space-1-5) 0 0; font-size: var(--text-sm); line-height: 1.5; color: var(--color-text-secondary); }
.hub-r__datos { display: grid; gap: var(--space-2); margin: var(--space-4) 0 0; padding: var(--space-3) var(--space-4); border-radius: var(--radius-lg); background: var(--color-surface-sunken); }
.hub-r__datos div { display: flex; justify-content: space-between; gap: var(--space-4); font-size: var(--text-sm); }
.hub-r__datos dt { color: var(--color-text-secondary); }
.hub-r__datos dd { margin: 0; font-weight: var(--font-semibold); text-align: right; }
.hub-r__acciones { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: auto; padding-top: var(--space-4); }
.hub-r__acciones .btn { gap: var(--space-1-5); }
.hub-r__acciones .icon { width: 16px; height: 16px; }
.hub-r-vacio { padding: var(--space-5); border: 1px dashed var(--color-border-strong); border-radius: var(--radius-xl); background: var(--color-surface); }
.hub-r-vacio__t { display: flex; align-items: center; gap: var(--space-2); margin: 0; font-weight: var(--font-semibold); }
.hub-r-vacio p:not(.hub-r-vacio__t) { margin: var(--space-2) 0 var(--space-4); font-size: var(--text-sm); color: var(--color-text-secondary); max-width: 52ch; }
@media (min-width: 768px) { .hub-res__lista { grid-template-columns: 1fr 1fr; } }
@keyframes hub-entra { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* ── Tus documentos ─────────────────────────────────────────────────── */
.hub-sec--mis { background: var(--color-accent-light); }
.hub-mis { padding: var(--space-5); border: 1px solid var(--color-border); border-radius: var(--radius-xl); background: var(--color-surface); box-shadow: var(--shadow-sm); }
.hub-mis__cab { display: grid; gap: var(--space-4); margin-bottom: var(--space-5); }
.hub-mis__cab .lead { margin-top: var(--space-1-5); font-size: var(--text-base); }
.hub-mis__quien { display: inline-flex; align-items: center; gap: var(--space-3); margin: 0; font-size: var(--text-sm); color: var(--color-text-secondary); }
.hub-tabs { display: flex; gap: var(--space-1); padding: var(--space-1); border-radius: var(--radius-lg); background: var(--color-surface-sunken); }
.hub-tab {
  flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); min-height: 44px; padding: 0 var(--space-3);
  border: 0; border-radius: var(--radius-md); background: transparent; font: inherit; font-size: var(--text-sm); font-weight: var(--font-semibold);
  color: var(--color-text-secondary); cursor: pointer; transition: background var(--transition-fast), box-shadow var(--transition-fast);
}
.hub-tab b { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: var(--radius-full); background: var(--color-border); font-size: var(--text-xs); color: var(--color-text-primary); }
.hub-tab[aria-selected="true"] { background: var(--color-surface); color: var(--color-text-primary); box-shadow: var(--shadow-sm); }
.hub-tab[aria-selected="true"] b { background: var(--color-accent); color: var(--color-accent-contrast); }
.hub-filas { list-style: none; margin: var(--space-3) 0 0; padding: 0; }
.hub-fila { display: grid; gap: var(--space-2) var(--space-4); padding: var(--space-4) 0; border-bottom: 1px solid var(--color-border); align-items: center; }
.hub-fila:last-child { border-bottom: 0; }
.hub-fila__t { margin: 0; font-weight: var(--font-semibold); line-height: 1.3; }
.hub-fila__m { margin: 2px 0 0; font-size: var(--text-sm); line-height: 1.5; color: var(--color-text-secondary); }
.hub-fila__acc .btn { gap: var(--space-1-5); }
.hub-fila__acc .icon { width: 16px; height: 16px; }
@media (max-width: 767.98px) {
  .hub-tab { flex: 1 1 0; min-width: 0; flex-direction: column-reverse; gap: 2px; min-height: 56px; padding: var(--space-1-5) var(--space-1); font-size: var(--text-xs); }
}
@media (min-width: 768px) {
  .hub-mis { padding: var(--space-6); }
  .hub-mis__cab { grid-template-columns: 1fr auto; align-items: end; }
  .hub-tabs { display: inline-flex; }
  .hub-tab { flex: none; padding: 0 var(--space-5); }
  .hub-fila { grid-template-columns: minmax(0, 1fr) 190px auto; }
}

/* ── Página de documento ────────────────────────────────────────────── */
.hub-migas ol { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1) var(--space-2); margin: 0 0 var(--space-3); padding: 0; list-style: none; font-size: var(--text-sm); color: var(--color-text-secondary); }
.hub-migas ol { flex-wrap: nowrap; }
.hub-migas li { flex: none; }
.hub-migas li:last-child { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* El separador de las migas es un chevron dibujado con bordes: así no hay un carácter de copy en la hoja. */
.hub-migas li + li::before { content: ""; display: inline-block; width: 6px; height: 6px; margin: 0 var(--space-2) 2px 0; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor; transform: rotate(45deg); color: var(--color-text-secondary); }
.hub-migas a { display: inline-flex; align-items: center; min-height: 44px; font-weight: var(--font-semibold); color: var(--color-text-link); }
.hub-migas a:hover { text-decoration: underline; text-underline-offset: 3px; }
.hub-migas [aria-current] { color: var(--color-text-primary); font-weight: var(--font-medium); }
.hub-dochero__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); margin: 0 0 var(--space-3); }
.hub-dochero__meta .legal-updated { margin: 0; }
.hub-dochero .lead { max-width: 46rem; margin-top: var(--space-3); }
.hub-dochero__acciones { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-5); }
.hub-dochero__acciones .btn { gap: var(--space-2); }
.hub-dochero__acciones .icon { width: 16px; height: 16px; }
.hub-prevalece { display: flex; gap: var(--space-3); max-width: 46rem; margin-top: var(--space-5); padding: var(--space-3) var(--space-4); border: 1px solid var(--color-info); border-radius: var(--radius-lg); background: var(--color-info-light); font-size: var(--text-sm); line-height: 1.5; }
.hub-prevalece p { margin: 0; }
.hub-prevalece .icon { width: 18px; height: 18px; margin-top: 2px; color: var(--color-info-text); }
.hub-prevalece a { font-weight: var(--font-semibold); color: var(--color-text-link); text-decoration: underline; text-underline-offset: 3px; }
.hub-cambio-card { margin: 0 0 var(--space-6); padding: var(--space-4) var(--space-5); border-left: 3px solid var(--color-accent); border-radius: 0 var(--radius-lg) var(--radius-lg) 0; background: var(--color-accent-light); }
.hub-cambio-card p { margin: 0; font-size: var(--text-sm); line-height: 1.55; color: var(--color-text-primary); }
.hub-cambio-card__t { display: flex; align-items: center; gap: var(--space-2); margin-bottom: var(--space-1-5) !important; font-weight: var(--font-bold); color: var(--color-accent-active) !important; }
.hub-cambio-card__t .icon { width: 16px; height: 16px; }
.hub-cambio-card .hub-nota { margin-top: var(--space-2); }
.hub-pagina-propia { display: flex; gap: var(--space-4); padding: var(--space-5); margin-bottom: var(--space-6); border: 1px solid var(--color-border); border-radius: var(--radius-xl); background: var(--color-surface); }
.hub-pagina-propia__ico { display: grid; place-items: center; width: 44px; height: 44px; flex: none; border-radius: var(--radius-lg); background: var(--color-accent-light); color: var(--color-accent-active); }
.hub-pagina-propia__cuerpo { flex: 1; min-width: 0; }
.hub-pagina-propia p { margin: 0 0 var(--space-3); }
.hub-pagina-propia .btn { gap: var(--space-2); }
/* En móvil el botón ocupa todo el ancho del recuadro y su texto puede partirse en dos líneas. */
@media (max-width: 767.98px) {
  .hub-pagina-propia { flex-direction: column; }
  .hub-pagina-propia .btn { display: flex; width: 100%; height: auto; min-height: 44px; padding-top: var(--space-2); padding-bottom: var(--space-2); white-space: normal; text-align: center; line-height: 1.3; }
}
.hub-nota { max-width: 72ch; }
.legal-body .hub-nota { margin-top: var(--space-8); }

/* Historial y comparación */
.hub-historial { background: var(--color-surface-sunken); }
.hub-historial__grid { display: grid; gap: var(--space-8); grid-template-columns: 1fr; align-items: start; }
.hub-historial .lead { margin-top: var(--space-2); font-size: var(--text-base); }
.hub-versiones { list-style: none; margin: var(--space-6) 0 0; padding: 0; }
.hub-version { position: relative; display: grid; grid-template-columns: 20px 1fr; gap: var(--space-3); padding-bottom: var(--space-5); }
.hub-version::before { content: ""; position: absolute; left: 9px; top: 20px; bottom: 0; width: 2px; background: var(--color-border-strong); }
.hub-version:last-child::before { display: none; }
.hub-version__punto { width: 20px; height: 20px; margin-top: 2px; border-radius: 50%; border: 2px solid var(--color-border-strong); background: var(--color-surface); }
.hub-version.is-vigente .hub-version__punto { border-color: var(--color-accent); background: var(--color-accent); box-shadow: 0 0 0 4px var(--color-accent-light); }
.hub-version__cab { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1) var(--space-3); margin: 0; font-size: var(--text-sm); color: var(--color-text-secondary); }
.hub-version__cab b { font-size: var(--text-base); color: var(--color-text-primary); font-variant-numeric: tabular-nums; }
.hub-version__cambio { margin: var(--space-1) 0 var(--space-1); font-size: var(--text-sm); line-height: 1.55; color: var(--color-text-primary); }
.hub-cmp { padding: var(--space-5); border: 1px solid var(--color-border); border-radius: var(--radius-xl); background: var(--color-surface); box-shadow: var(--shadow-sm); }
.hub-cmp__titulo { display: flex; align-items: center; gap: var(--space-2); margin: 0 0 var(--space-4); font-size: var(--text-lg); }
.hub-cmp__sel { display: grid; gap: var(--space-3); grid-template-columns: 1fr; margin-bottom: var(--space-4); }
.hub-cmp__sel label { display: block; font-size: var(--text-sm); font-weight: var(--font-semibold); }
.hub-cmp__sel select { display: block; width: 100%; min-height: 48px; margin-top: var(--space-1-5); padding: 0 var(--space-3); font: inherit; font-size: 16px; color: var(--color-text-primary); border: 1px solid var(--color-border-strong); border-radius: var(--radius-lg); background: var(--color-surface); }
.hub-cmp__sel select:focus { outline: none; border-color: var(--color-border-focus); box-shadow: var(--input-focus-ring); }
.hub-cmp__resumen { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1) var(--space-2); margin: 0 0 var(--space-3); font-size: var(--text-sm); }
.hub-cmp__resumen span { flex-basis: 100%; color: var(--color-text-secondary); }
.hub-cmp__resumen .icon { width: 14px; height: 14px; }
.hub-cmp__leyenda { display: flex; gap: var(--space-3); margin: 0 0 var(--space-4); padding: 0; list-style: none; font-size: var(--text-xs); }
.hub-cmp ins, .hub-cmp__leyenda ins { background: var(--color-success-light); color: var(--color-success-text); text-decoration: none; border-radius: 2px; padding: 0 2px; }
.hub-cmp del, .hub-cmp__leyenda del { background: var(--color-danger-light); color: var(--color-danger-text); text-decoration: line-through; border-radius: 2px; padding: 0 2px; }
.hub-cmp__sec { padding: var(--space-4) 0; border-top: 1px solid var(--color-border); }
.hub-cmp__sec h3 { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin: 0 0 var(--space-2); font-size: var(--text-base); }
.hub-cmp__sec p { margin: 0 0 var(--space-3); font-size: var(--text-sm); line-height: 1.7; color: var(--color-text-secondary); }
.hub-cmp__iguales { margin-top: var(--space-2); border-top: 1px solid var(--color-border); font-size: var(--text-sm); }
.hub-cmp__iguales summary { display: flex; align-items: center; min-height: 44px; cursor: pointer; font-weight: var(--font-semibold); color: var(--color-text-secondary); }
.hub-cmp__iguales ul { margin: 0 0 var(--space-3); padding-left: var(--space-5); color: var(--color-text-secondary); }
@media (min-width: 768px) { .hub-cmp__sel { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1000px) { .hub-historial__grid { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: var(--space-10); } .hub-cmp { padding: var(--space-6); } }

/* Documento a solicitud y documento desbloqueado */
.hub-sol-pagina { display: grid; gap: var(--space-8); grid-template-columns: 1fr; align-items: start; }
.hub-sol-pagina__hoja { justify-self: center; }
.hub-sol-pagina__marco { position: relative; width: fit-content; margin: 0 auto; }
.hub-sol-pagina .hub-hoja--xl { --w: 300px; --cc-escala: .3676; }
@media (max-width: 479.98px) { .hub-sol-pagina .hub-hoja--xl { --w: 240px; --cc-escala: .2941; } }
.hub-desvanece { position: absolute; left: 0; right: 0; bottom: 0; height: 52%; border-radius: 0 0 var(--radius-sm) var(--radius-sm); background: linear-gradient(to bottom, transparent, var(--color-surface)); pointer-events: none; }
.hub-candado { position: absolute; left: 50%; bottom: var(--space-5); transform: translateX(-50%); display: inline-flex; align-items: center; gap: var(--space-1-5); padding: var(--space-1-5) var(--space-3); border-radius: var(--radius-full); background: var(--color-text-primary); color: var(--color-text-inverse); font-size: var(--text-xs); font-weight: var(--font-bold); z-index: 2; }
.hub-candado .icon { width: 13px; height: 13px; }
.hub-panel-t { margin: 0 0 var(--space-2); font-size: var(--text-xl); letter-spacing: -.01em; }
.hub-sol-pagina__panel > p { margin: 0 0 var(--space-5); color: var(--color-text-secondary); }
.hub-sol-pagina__panel .btn-lg { gap: var(--space-2); }
.hub-sol-pagina__panel .btn .icon { width: 18px; height: 18px; }
.hub-ayuda { margin: var(--space-3) 0 var(--space-6); font-size: var(--text-sm); color: var(--color-text-secondary); }
.hub-ayuda a { color: var(--color-text-link); font-weight: var(--font-semibold); text-decoration: underline; text-underline-offset: 3px; }
.hub-datos { margin: 0 0 var(--space-5); padding: 0; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface); }
/* 32 px entre la lista de datos y el botón de pedir, también en móvil. */
.hub-sol-pagina__panel > .hub-datos { margin-bottom: var(--space-8); }
.hub-datos div { display: grid; gap: 2px var(--space-4); padding: var(--space-3) var(--space-4); border-bottom: 1px solid var(--color-border); font-size: var(--text-sm); }
.hub-datos div:last-child { border-bottom: 0; }
.hub-datos dt { color: var(--color-text-secondary); }
.hub-datos dd { margin: 0; min-width: 0; overflow-wrap: anywhere; font-weight: var(--font-semibold); display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1) var(--space-2); }
@media (min-width: 480px) { .hub-datos div { grid-template-columns: 34% 1fr; align-items: baseline; } }
.hub-acceso { display: inline-flex; align-items: flex-start; gap: var(--space-2); margin: var(--space-4) 0 0; padding: var(--space-2) var(--space-4); border-radius: var(--radius-lg); background: var(--color-success-light); color: var(--color-success-text); font-size: var(--text-sm); }
.hub-acceso .icon { width: 18px; height: 18px; margin-top: 2px; flex: none; }
.hub-acceso b { font-weight: var(--font-bold); }
.hub-descargas { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-bottom: var(--space-6); }
.hub-descargas .btn { gap: var(--space-2); }
.hub-descargas .icon { width: 16px; height: 16px; }
.hub-marca-agua { position: absolute; inset: 0; overflow: hidden; pointer-events: none; border-radius: var(--radius-sm); }
.hub-marca-agua__in {
  position: absolute; inset: -30%; display: grid; align-content: space-around; justify-items: center; transform: rotate(-28deg);
  opacity: .13; color: var(--color-text-primary); font-size: 14px; font-weight: var(--font-bold); letter-spacing: .06em; text-transform: uppercase; white-space: nowrap;
}
.hub-login-card { display: grid; justify-items: start; gap: var(--space-2); padding: var(--space-6); border: 1px solid var(--color-border); border-radius: var(--radius-xl); background: var(--color-surface); }
.hub-login-card h2 { margin: 0; font-size: var(--text-xl); }
.hub-login-card p { margin: 0 0 var(--space-3); color: var(--color-text-secondary); }
.hub-login-card__ico { display: grid; place-items: center; width: 44px; height: 44px; border-radius: var(--radius-lg); background: var(--color-surface-sunken); }
@media (min-width: 900px) { .hub-sol-pagina { grid-template-columns: minmax(0, 340px) minmax(0, 1fr); gap: var(--space-12); } .hub-sol-pagina__hoja { justify-self: start; } }

/* Lista de requisitos de un documento a solicitud, con su estado y la acción «Firmar» */
.hub-reqs { margin: 0 0 var(--space-6); }
.hub-reqs__t { margin: 0 0 var(--space-1); font-size: var(--text-base); }
.hub-reqs__lead { margin: 0 0 var(--space-3); font-size: var(--text-sm); color: var(--color-text-secondary); }
.hub-reqs__lista { list-style: none; margin: 0; padding: 0; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface); }
.hub-req { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--space-2) var(--space-4); padding: var(--space-3) var(--space-4); border-bottom: 1px solid var(--color-border); }
.hub-req:last-child { border-bottom: 0; }
.hub-req__main { min-width: 0; }
.hub-req__main p { margin: 0; }
.hub-req__nombre { font-size: var(--text-sm); font-weight: var(--font-semibold); line-height: 1.35; }
.hub-req__metodo { margin-top: 2px !important; font-size: var(--text-xs); color: var(--color-text-secondary); }
.hub-req__estado { margin-top: var(--space-1-5) !important; }
.hub-req__acc .btn { gap: var(--space-1-5); }
.hub-req__acc .icon { width: 16px; height: 16px; }
.hub-req__panel { grid-column: 1 / -1; padding: var(--space-4); border-radius: var(--radius-lg); background: var(--color-surface-sunken); }
.hub-req__elegir { margin: 0 0 var(--space-3); font-size: var(--text-sm); font-weight: var(--font-semibold); }
.hub-req__opciones { display: grid; gap: var(--space-3); }
.hub-req__opcion { padding: var(--space-3) var(--space-4); border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface); }
.hub-req__opcion p { margin: 0 0 var(--space-2); font-size: var(--text-sm); line-height: 1.5; color: var(--color-text-secondary); }
.hub-req__opcion .btn { gap: var(--space-1-5); }
.hub-req__opcion .icon, .hub-req__fisica .icon { width: 16px; height: 16px; }
.hub-req__opcion-t { color: var(--color-text-primary) !important; font-weight: var(--font-semibold); }
.hub-req__fisica-t { margin: 0 0 var(--space-1-5); font-size: var(--text-sm); font-weight: var(--font-semibold); }
.hub-req__fisica ol { margin: 0 0 var(--space-3); padding-left: var(--space-5); font-size: var(--text-sm); line-height: 1.55; color: var(--color-text-secondary); }
.hub-req__fisica li { margin-bottom: var(--space-1); padding-left: var(--space-1); }
@media (max-width: 479.98px) {
  .hub-req { grid-template-columns: 1fr; }
  .hub-req__acc .btn { width: 100%; }
}
@media (min-width: 640px) {
  .hub-req__opciones { grid-template-columns: 1fr 1fr; }
}
.hub-sol-pagina__panel .btn[disabled] { opacity: .55; cursor: not-allowed; }
.hub-sol-pagina__panel .btn[disabled] + .hub-ayuda { margin: var(--space-2) 0 var(--space-6); }

/* ── Seguimiento ────────────────────────────────────────────────────── */
.hub-folio { display: inline-flex; padding: var(--space-1) var(--space-3); border-radius: var(--radius-full); border: 1px solid var(--color-border-strong); background: var(--color-surface); font-size: var(--text-sm); font-weight: var(--font-semibold); font-variant-numeric: tabular-nums; }
.hub-seg2 { display: grid; gap: var(--space-8); grid-template-columns: 1fr; align-items: start; }
.hub-aviso { display: flex; gap: var(--space-3); margin-bottom: var(--space-5); padding: var(--space-3) var(--space-4); border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface); font-size: var(--text-sm); line-height: 1.5; }
.hub-aviso p { margin: 0; }
.hub-aviso p + p { margin-top: 2px; color: var(--color-text-secondary); }
.hub-aviso > .icon { width: 20px; height: 20px; margin-top: 1px; flex: none; }
.hub-aviso--info { border-color: var(--color-info); background: var(--color-info-light); }
.hub-aviso--info > .icon { color: var(--color-info-text); }
.hub-aviso--ok { border-color: var(--color-success); background: var(--color-success-light); }
.hub-aviso--ok > .icon { color: var(--color-success-text); }
.hub-aviso--aviso { border-color: var(--color-warning); background: var(--color-warning-light); }
.hub-aviso--aviso > .icon { color: var(--color-warning-text); }
.hub-aviso--peligro { border-color: var(--color-danger); background: var(--color-danger-light); }
.hub-aviso--peligro > .icon { color: var(--color-danger-text); }
.hub-aviso__acc { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-4); margin-top: var(--space-3); }
.hub-linea { list-style: none; margin: 0; padding: 0; }
.hub-linea__paso { position: relative; display: grid; grid-template-columns: 40px 1fr; gap: var(--space-4); padding-bottom: var(--space-6); }
.hub-linea__paso::before { content: ""; position: absolute; left: 19px; top: 40px; bottom: 0; width: 2px; background: var(--color-border-strong); }
.hub-linea__paso:last-child::before { display: none; }
.hub-linea__paso.is-hecho::before { background: var(--color-success); }
.hub-linea__marca { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 2px solid var(--color-border-strong); background: var(--color-surface); color: var(--color-text-secondary); }
.hub-linea__marca .icon { width: 20px; height: 20px; }
.is-hecho .hub-linea__marca { border-color: var(--color-success); background: var(--color-success); color: var(--color-text-inverse); }
.is-actual .hub-linea__marca { border-color: var(--color-accent); background: var(--color-accent-light); }
.is-pendiente .hub-linea__marca { border-style: dashed; }
.hub-pulso { position: relative; width: 14px; height: 14px; border-radius: 50%; background: var(--color-accent); }
.hub-pulso::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--color-accent); animation: hub-latido 2s ease-out infinite; }
.hub-linea__paso h2 { margin: 6px 0 2px; font-size: var(--text-lg); letter-spacing: -.01em; }
.hub-linea__paso p { margin: 0; font-size: var(--text-sm); line-height: 1.5; color: var(--color-text-secondary); }
.is-pendiente h2 { color: var(--color-text-secondary); }
.hub-plazo { margin-top: var(--space-2); padding: var(--space-4) var(--space-5); border: 1px solid var(--color-border); border-radius: var(--radius-xl); background: var(--color-surface); }
.hub-plazo__t { display: flex; align-items: center; gap: var(--space-2); margin: 0; font-size: var(--text-sm); }
.hub-plazo__t .icon { width: 16px; height: 16px; color: var(--color-accent); }
.hub-plazo__barra { height: 8px; margin: var(--space-3) 0 var(--space-2); border-radius: var(--radius-full); background: var(--color-surface-sunken); overflow: hidden; }
.hub-plazo__barra i { display: block; width: var(--avance); height: 100%; border-radius: inherit; background: var(--color-accent); }
.hub-plazo__vence { margin: 0; font-size: var(--text-sm); color: var(--color-text-secondary); }
.hub-seg2__linea > .btn { margin-top: var(--space-5); gap: var(--space-2); }
.hub-seg2__linea > .btn .icon { width: 16px; height: 16px; }
.hub-seg2__resumen { padding: var(--space-5); border: 1px solid var(--color-border); border-radius: var(--radius-xl); background: var(--color-surface-sunken); }
.hub-seg2__resumen .hub-datos { margin-bottom: var(--space-3); }
.hub-seg2__acc { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3); margin-top: var(--space-4); }
.hub-retirar { display: contents; }
.hub-retirar__conf { flex-basis: 100%; padding: var(--space-3) var(--space-4); border: 1px solid var(--color-danger); border-radius: var(--radius-lg); background: var(--color-danger-light); font-size: var(--text-sm); }
.hub-retirar__conf p { margin: 0 0 var(--space-3); }
.hub-retirar__conf div { display: flex; flex-wrap: wrap; gap: var(--space-2); }
@media (min-width: 900px) { .hub-seg2 { grid-template-columns: minmax(0, 1fr) 380px; gap: var(--space-12); } .hub-seg2__resumen { position: sticky; top: 100px; } }

/* ── La hoja de solicitud (hoja inferior en móvil, diálogo en escritorio) ── */
.hub-capa { position: fixed; inset: 0; z-index: 2000; display: flex; align-items: flex-end; justify-content: center; }
.hub-scrim { position: absolute; inset: 0; background: var(--color-surface-overlay); opacity: 0; transition: opacity var(--transition-normal); }
.hub-capa.is-abierta .hub-scrim { opacity: 1; }
.hub-sheet {
  position: relative; display: flex; flex-direction: column; width: 100%;
  max-height: calc(var(--hub-vvh, 100dvh) - 12px); margin-bottom: var(--hub-kb, 0px);
  border-radius: var(--radius-3xl) var(--radius-3xl) 0 0; background: var(--color-surface); box-shadow: var(--shadow-2xl);
  transform: translateY(105%); transition: transform var(--transition-slow);
}
.hub-capa.is-abierta .hub-sheet { transform: none; }
.hub-capa.is-cerrando .hub-sheet { transform: translateY(105%); }
.hub-sheet__arrastre { flex: none; touch-action: none; }
.hub-sheet__asa { display: block; width: 40px; height: 4px; margin: var(--space-2) auto 0; border-radius: var(--radius-full); background: var(--color-border-strong); }
.hub-sheet__cab { display: grid; grid-template-columns: 44px 1fr 44px; align-items: center; gap: var(--space-1); padding: var(--space-1) var(--space-2) 0; }
.hub-sheet__tit { min-width: 0; text-align: center; }
.hub-sheet__paso { margin: 0; font-size: var(--text-xs); font-weight: var(--font-semibold); letter-spacing: .05em; text-transform: uppercase; color: var(--color-text-secondary); }
.hub-sheet__tit h2 { margin: 2px 0 0; font-size: var(--text-lg); line-height: 1.25; letter-spacing: -.01em; text-wrap: balance; }
.hub-sheet__tit h2:focus { outline: none; }
.hub-icono { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--color-text-secondary); cursor: pointer; }
.hub-icono:hover { background: var(--color-surface-sunken); color: var(--color-text-primary); }
.hub-icono .icon { width: 20px; height: 20px; }
.hub-icono[hidden] { display: grid !important; visibility: hidden; }
.hub-pasos { display: flex; gap: var(--space-1-5); margin: 0; padding: var(--space-3) var(--space-5) var(--space-3); list-style: none; }
.hub-pasos li { flex: 1; min-width: 0; }
.hub-pasos__barra { display: block; height: 4px; border-radius: var(--radius-full); background: var(--color-border); transition: background var(--transition-normal); }
.hub-pasos .is-hecho .hub-pasos__barra { background: var(--color-success); }
.hub-pasos .is-actual .hub-pasos__barra { background: var(--color-accent); }
.hub-pasos__etq { display: none; margin-top: var(--space-1-5); font-size: var(--text-xs); color: var(--color-text-secondary); }
.hub-pasos .is-actual .hub-pasos__etq { color: var(--color-text-primary); font-weight: var(--font-semibold); }
.hub-sheet__marco { flex: 1; min-height: 0; display: flex; border-top: 1px solid var(--color-border); }
.hub-sheet__lado { display: none; }
.hub-sheet__cuerpo { flex: 1; min-width: 0; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: var(--space-5) var(--space-5) var(--space-6); -webkit-overflow-scrolling: touch; }
.hub-sheet__cuerpo.hub-entra { animation: hub-entra .22s ease both; }
.hub-sheet__acciones { flex: none; display: flex; gap: var(--space-3); padding: var(--space-3) var(--space-5) calc(var(--space-3) + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--color-border); background: var(--color-surface); }
.hub-btn-acc { flex: 1 1 0; min-width: 0; min-height: 48px; gap: var(--space-2); padding: var(--space-2) var(--space-3); white-space: normal; text-align: center; line-height: 1.2; }
.hub-btn-acc.is-ocupado { opacity: .75; }
.hub-btn-acc:disabled { opacity: .5; cursor: not-allowed; }
.hub-btn-acc .icon { width: 16px; height: 16px; }
.hub-capa--constancia .hub-sheet__marco { border-top: 0; }
.hub-capa--constancia .hub-pasos { display: none; }
.hub-con-teclado .hub-sheet__asa, .hub-con-teclado .hub-pasos, .hub-con-teclado .hub-sheet__paso { display: none; }
@media (min-width: 768px) {
  .hub-capa { align-items: center; padding: var(--space-6); }
  .hub-sheet { max-width: 980px; max-height: min(780px, calc(100dvh - 48px)); margin-bottom: 0; border-radius: var(--radius-2xl); opacity: 0; transform: translateY(16px) scale(.985); transition: transform var(--transition-slow), opacity var(--transition-normal); }
  .hub-capa.is-abierta .hub-sheet { opacity: 1; transform: none; }
  .hub-capa.is-cerrando .hub-sheet { opacity: 0; transform: translateY(16px) scale(.985); }
  .hub-capa--constancia .hub-sheet { max-width: 600px; }
  .hub-sheet__asa { display: none; }
  .hub-sheet__cab { padding: var(--space-3) var(--space-4) 0; }
  .hub-pasos { padding: var(--space-3) var(--space-8) var(--space-4); gap: var(--space-3); }
  .hub-pasos__etq { display: block; }
  .hub-sheet__lado { display: block; flex: none; width: 300px; padding: var(--space-6) var(--space-5); border-right: 1px solid var(--color-border); background: var(--color-surface-sunken); overflow-y: auto; }
  .hub-capa--constancia .hub-sheet__lado { display: none; }
  .hub-sheet__cuerpo { padding: var(--space-6) var(--space-8) var(--space-6); }
  .hub-sheet__acciones { justify-content: flex-end; padding: var(--space-4) var(--space-8); }
  .hub-btn-acc { flex: none; min-width: 150px; }
}
.hub-lado__etq { margin: 0 0 var(--space-4); font-size: var(--text-xs); font-weight: var(--font-semibold); letter-spacing: .05em; text-transform: uppercase; color: var(--color-text-secondary); }
.hub-lado__hoja { margin-bottom: var(--space-4); }
.hub-lado__t { margin: 0 0 var(--space-2); font-weight: var(--font-bold); line-height: 1.3; }
.hub-lado__m { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin: 0 0 var(--space-2); font-size: var(--text-sm); color: var(--color-text-secondary); }

/* Cuerpo de cada paso */
.hub-previa { display: grid; justify-items: center; gap: var(--space-3); margin-bottom: var(--space-5); }
.hub-previa__t { display: grid; margin: 0; text-align: center; font-weight: var(--font-bold); }
.hub-previa__t span { font-size: var(--text-sm); font-weight: var(--font-normal); color: var(--color-text-secondary); }
.hub-h3 { margin: var(--space-5) 0 var(--space-3); font-size: var(--text-base); }
.hub-respuesta { display: flex; align-items: center; gap: var(--space-2); margin: 0; font-size: var(--text-sm); color: var(--color-text-secondary); }
.hub-respuesta .icon { width: 16px; height: 16px; }
.hub-sheet .hub-datos { margin-bottom: var(--space-4); }
.hub-sheet .hub-datos div { grid-template-columns: 38% 1fr; align-items: baseline; padding: var(--space-2-5) var(--space-3-5); }
.hub-pides { display: flex; align-items: flex-start; gap: var(--space-2); margin: 0 0 var(--space-4); padding: var(--space-3) var(--space-4); border-radius: var(--radius-lg); background: var(--color-accent-light); font-size: var(--text-sm); }
.hub-pides .icon { width: 16px; height: 16px; margin-top: 2px; color: var(--color-accent-active); flex: none; }
.hub-cuenta { display: flex; align-items: flex-start; gap: var(--space-2); margin: 0 0 var(--space-5); font-size: var(--text-sm); color: var(--color-text-secondary); }
.hub-cuenta .icon { width: 18px; height: 18px; margin-top: 1px; flex: none; color: var(--color-success-text); }
.hub-cuenta--sin .icon { color: var(--color-info-text); }
.hub-resumen-err { margin-bottom: var(--space-5); padding: var(--space-3) var(--space-4); border: 1px solid var(--color-danger); border-radius: var(--radius-lg); background: var(--color-danger-light); font-size: var(--text-sm); }
.hub-resumen-err:focus { outline: none; box-shadow: 0 0 0 3px var(--color-danger-light); }
@media (max-width: 767.98px) {
  .hub-resumen-err ul { flex-wrap: nowrap; overflow-x: auto; margin-right: calc(var(--space-4) * -1); padding-right: var(--space-4); scrollbar-width: none; }
  .hub-resumen-err .hub-link { flex: none; white-space: nowrap; }
}
.hub-resumen-err p { margin: 0; }
.hub-resumen-err b { display: flex; align-items: center; gap: var(--space-2); color: var(--color-danger-text); }
.hub-resumen-err .icon { width: 18px; height: 18px; }
.hub-resumen-err ul { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: var(--space-3) 0 0; padding: 0; list-style: none; }
.hub-resumen-err .hub-link { min-height: 44px; padding: 0 var(--space-3); border: 1px solid var(--color-danger); border-radius: var(--radius-full); background: var(--color-surface); font-size: var(--text-sm); }
@media (min-width: 768px) { .hub-resumen-err .hub-link { min-height: 36px; } }

.hub-form__grid { display: grid; gap: var(--space-4); grid-template-columns: 1fr; }
.hub-form__extras { margin: var(--space-5) 0 0; padding: var(--space-4); border: 1px solid var(--color-border); border-radius: var(--radius-lg); }
.hub-form__extras legend { padding: 0 var(--space-2); font-size: var(--text-xs); font-weight: var(--font-bold); letter-spacing: .05em; text-transform: uppercase; color: var(--color-text-secondary); }
.hub-campo label { display: block; margin-bottom: var(--space-1-5); font-size: var(--text-sm); font-weight: var(--font-semibold); }
.hub-campo__opc { font-weight: var(--font-normal); color: var(--color-text-secondary); }
.hub-campo input, .hub-campo textarea {
  display: block; width: 100%; min-height: 48px; padding: var(--space-3) var(--space-3-5); font: inherit; font-size: 16px; color: var(--color-text-primary);
  border: 1px solid var(--color-border-strong); border-radius: var(--radius-lg); background: var(--color-surface); appearance: none; -webkit-appearance: none;
}
.hub-campo textarea { resize: vertical; min-height: 92px; line-height: 1.5; }
.hub-campo input:focus, .hub-campo textarea:focus { outline: none; border-color: var(--color-border-focus); box-shadow: var(--input-focus-ring); }
.hub-campo.has-error input, .hub-campo.has-error textarea { border-color: var(--color-border-error); }
.hub-campo__ayuda { margin: var(--space-1-5) 0 0; font-size: var(--text-xs); color: var(--color-text-secondary); }
.hub-campo__error { display: flex; align-items: flex-start; gap: var(--space-1-5); margin: var(--space-1-5) 0 0; font-size: var(--text-sm); font-weight: var(--font-medium); color: var(--color-danger-text); }
.hub-campo__error .icon { width: 16px; height: 16px; margin-top: 2px; flex: none; }
.hub-ts-bloque { margin-top: var(--space-5); }
.hub-turnstile { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); width: 100%; max-width: 300px; min-height: 65px; padding: 0 var(--space-3); border: 1px solid var(--color-border-strong); border-radius: var(--radius-sm); background: var(--color-surface-sunken); }
.has-error .hub-turnstile, .hub-ts-bloque.has-error .hub-turnstile { border-color: var(--color-border-error); }
.hub-turnstile__caja { display: flex; align-items: center; gap: var(--space-3); flex: 1; min-width: 0; min-height: 56px; padding: 0; border: 0; background: transparent; font: inherit; font-size: var(--text-sm); color: var(--color-text-primary); text-align: left; cursor: pointer; }
.hub-turnstile__casilla { display: grid; place-items: center; width: 26px; height: 26px; flex: none; border: 2px solid var(--color-border-strong); border-radius: var(--radius-sm); background: var(--color-surface); color: var(--color-text-inverse); }
.hub-turnstile__casilla .icon { width: 16px; height: 16px; stroke-width: 3; }
.hub-turnstile[data-estado="verif"] .hub-turnstile__casilla { border-radius: 50%; border-color: var(--color-border); border-top-color: var(--color-accent); animation: hub-gira .8s linear infinite; }
.hub-turnstile[data-estado="ok"] .hub-turnstile__casilla { border-color: var(--color-success); background: var(--color-success); }
.hub-turnstile__marca { display: grid; justify-items: end; font-size: 10px; line-height: 1.3; color: var(--color-text-secondary); text-align: right; }
.hub-turnstile__marca b { font-size: var(--text-sm); color: var(--color-text-primary); }
@keyframes hub-gira { to { transform: rotate(360deg); } }
.hub-privacidad { margin: var(--space-5) 0 0; font-size: var(--text-xs); line-height: 1.5; color: var(--color-text-secondary); }
.hub-privacidad a { color: var(--color-text-link); text-decoration: underline; text-underline-offset: 2px; }
@media (min-width: 768px) {
  .hub-form__grid { grid-template-columns: 1fr 1fr; }
  .hub-form__grid .hub-campo[data-grupo="motivo"], .hub-form__grid .hub-campo[data-grupo="correo"] { grid-column: 1 / -1; }
}

/* Firma del NDA */
.hub-firma__intro { margin: 0 0 var(--space-4); font-size: var(--text-sm); line-height: 1.55; color: var(--color-text-secondary); }
.hub-lectura__cab { display: flex; justify-content: space-between; gap: var(--space-3); margin-bottom: var(--space-1-5); font-size: var(--text-xs); color: var(--color-text-secondary); }
.hub-lectura__cab b { color: var(--color-text-primary); font-variant-numeric: tabular-nums; white-space: nowrap; }
.hub-lectura[data-leido="1"] .hub-lectura__cab span { color: var(--color-success-text); font-weight: var(--font-semibold); }
.hub-lectura__barra { height: 6px; margin-bottom: var(--space-2); border-radius: var(--radius-full); background: var(--color-surface-sunken); overflow: hidden; }
.hub-lectura__barra i { display: block; width: var(--leido, 0%); height: 100%; border-radius: inherit; background: var(--color-accent); transition: width var(--transition-fast); }
.hub-lectura[data-leido="1"] .hub-lectura__barra i { background: var(--color-success); }
.hub-nda { max-height: 220px; overflow-y: auto; overscroll-behavior: contain; padding: var(--space-4); border: 1px solid var(--color-border-strong); border-radius: var(--radius-lg); background: var(--color-surface); font-size: var(--text-sm); line-height: 1.65; color: var(--color-text-secondary); }
.hub-nda .hub-nda__titulo { margin: 0 0 var(--space-2); font-size: var(--text-base); font-weight: var(--font-bold); line-height: 1.65; color: var(--color-text-primary); }
.hub-nda p { margin: 0 0 var(--space-3); }
.hub-nda ol { margin: 0; padding-left: var(--space-5); }
.hub-nda li { margin-bottom: var(--space-3); padding-left: var(--space-1); }
.hub-nda li b { color: var(--color-text-primary); }
.hub-casilla { display: flex; align-items: flex-start; gap: var(--space-3); min-height: 48px; margin: var(--space-4) 0; padding: var(--space-3) var(--space-4); border: 1px solid var(--color-border-strong); border-radius: var(--radius-lg); font-size: var(--text-sm); line-height: 1.45; cursor: pointer; }
.hub-casilla input { width: 24px; height: 24px; margin: 0; flex: none; accent-color: var(--color-primary); cursor: pointer; }
.hub-casilla__caja { display: none; }
.hub-casilla small { display: block; margin-top: 2px; font-size: var(--text-xs); color: var(--color-text-secondary); }
.hub-casilla.is-deshabilitada { background: var(--color-surface-sunken); cursor: not-allowed; }
.hub-casilla.is-deshabilitada input { cursor: not-allowed; }
.hub-evidencia { margin: 0 0 var(--space-2); border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface-sunken); }
.hub-evidencia summary { display: flex; align-items: center; gap: var(--space-2); min-height: 48px; padding: 0 var(--space-4); font-size: var(--text-sm); font-weight: var(--font-semibold); cursor: pointer; list-style: none; }
.hub-evidencia summary::-webkit-details-marker { display: none; }
.hub-evidencia summary .icon { width: 16px; height: 16px; color: var(--color-accent); }
.hub-evidencia summary .hub-evidencia__chev { margin-left: auto; color: var(--color-text-secondary); transition: transform var(--transition-fast); }
.hub-evidencia[open] .hub-evidencia__chev { transform: rotate(180deg); }
.hub-evidencia dl { margin: 0; padding: 0 var(--space-4) var(--space-2); }
.hub-evidencia dl div { display: grid; gap: 2px var(--space-3); padding: var(--space-2) 0; border-top: 1px solid var(--color-border); font-size: var(--text-sm); }
.hub-evidencia dt { color: var(--color-text-secondary); }
.hub-evidencia dd { margin: 0; font-weight: var(--font-medium); min-width: 0; }
.hub-evidencia .hub-nota { margin: 0; padding: 0 var(--space-4) var(--space-4); }
@media (min-width: 560px) { .hub-evidencia dl div { grid-template-columns: 36% 1fr; } }

/* Constancia sellada */
.hub-constancia { padding: var(--space-4); border: 1px solid var(--color-success); border-radius: var(--radius-xl); background: var(--color-surface); box-shadow: var(--shadow-sm); }
.hub-constancia__sello { display: flex; align-items: center; gap: var(--space-4); margin-bottom: var(--space-4); }
.hub-sello { position: relative; display: grid; place-items: center; width: 68px; height: 68px; flex: none; border: 3px solid var(--color-success); border-radius: 50%; background: var(--color-success-light); color: var(--color-success); }
.hub-sello .icon { width: 30px; height: 30px; }
.hub-sello__anillo { position: absolute; inset: -3px; border: 2px solid var(--color-success); border-radius: 50%; opacity: 0; }
.hub-constancia.is-sellando .hub-sello { animation: hub-sellar .75s cubic-bezier(.2, .9, .3, 1.25) both; }
.hub-constancia.is-sellando .hub-sello__anillo { animation: hub-onda 1s .4s ease-out both; }
.hub-constancia.is-sellando { animation: hub-entra .3s ease both; }
@keyframes hub-sellar { 0% { transform: scale(1.9) rotate(-16deg); opacity: 0; } 55% { transform: scale(.92) rotate(3deg); opacity: 1; } 100% { transform: none; opacity: 1; } }
@keyframes hub-onda { 0% { transform: scale(1); opacity: .7; } 100% { transform: scale(1.9); opacity: 0; } }
.hub-constancia__t { margin: 0; font-size: var(--text-lg); font-weight: var(--font-bold); color: var(--color-success-text); }
.hub-constancia__id { margin: 2px 0 0; font-size: var(--text-sm); color: var(--color-text-secondary); font-variant-numeric: tabular-nums; }
.hub-constancia__datos { margin: 0; padding: 0; }
.hub-constancia__datos div { display: grid; gap: 2px var(--space-3); padding: var(--space-2) 0; border-top: 1px solid var(--color-border); font-size: var(--text-sm); }
.hub-constancia__datos dt { color: var(--color-text-secondary); }
.hub-constancia__datos dd { margin: 0; font-weight: var(--font-medium); min-width: 0; word-break: break-word; }
@media (min-width: 560px) { .hub-constancia__datos div { grid-template-columns: 34% 1fr; } }
.hub-sello-texto { margin: var(--space-4) 0 var(--space-3); font-size: var(--text-sm); color: var(--color-text-secondary); }
.hub-firma--hecha > .btn { gap: var(--space-2); margin-top: var(--space-2); }
.hub-firma--hecha > .btn .icon { width: 16px; height: 16px; }

/* Listo */
.hub-listo { display: grid; justify-items: start; gap: var(--space-4); }
.hub-listo__ico { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--color-info-light); color: var(--color-info-text); }
.hub-listo__ico--ok { background: var(--color-success-light); color: var(--color-success-text); }
.hub-listo__ico .icon { width: 28px; height: 28px; }
.hub-listo__txt { margin: 0; font-size: var(--text-base); line-height: 1.55; }
.hub-folio-grande { display: inline-flex; align-items: baseline; gap: var(--space-3); margin: 0; padding: var(--space-2) var(--space-4); border: 1px solid var(--color-border-strong); border-radius: var(--radius-lg); background: var(--color-surface-sunken); font-size: var(--text-sm); color: var(--color-text-secondary); }
.hub-folio-grande b { font-size: var(--text-lg); color: var(--color-text-primary); font-variant-numeric: tabular-nums; }
.hub-listo__lista { display: grid; gap: var(--space-3); margin: 0; padding: 0; list-style: none; font-size: var(--text-sm); line-height: 1.5; color: var(--color-text-secondary); }
.hub-listo__lista li { display: flex; gap: var(--space-3); }
.hub-listo__lista .icon { width: 18px; height: 18px; margin-top: 1px; flex: none; color: var(--color-accent); }

/* ── Móvil: objetivos táctiles de 44 px ─────────────────────────────── */
@media (max-width: 767.98px) {
  .hub-doc__titulo a { display: inline-block; padding: 11px 0; margin: -11px 0; }
  .hub-page .legal-toc a { align-items: center; min-height: 44px; }
  .hub-page .btn, .hub-capa .btn { min-height: 44px; }
  .hub-link { min-height: 44px; }
  .hub-doc__acciones .hub-link { padding-right: var(--space-2); }
  .hub-fila__acc .btn { width: 100%; }
  .hub-seg__acciones .btn { flex: 1 1 auto; }
}

/* ── Movimiento reducido ────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .hub-punto::after, .hub-pulso::after { animation: none; }
  .hub-conf, .hub-doc, .hub-scrim, .hub-sheet, .hub-pasos__barra, .hub-lectura__barra i { transition: none !important; }
  .hub-doc:hover, .hub-conf:hover { transform: none; }
  .hub-res__lista, .hub-sheet__cuerpo.hub-entra, .hub-constancia.is-sellando, .hub-constancia.is-sellando .hub-sello, .hub-constancia.is-sellando .hub-sello__anillo { animation: none !important; }
  .hub-turnstile[data-estado="verif"] .hub-turnstile__casilla { animation: none; border-top-color: var(--color-accent); }
  .hub-capa .hub-sheet { opacity: 1; transform: none; }
}

/* ── Lo que el hub añade a la maqueta al llevarla a producción ──────────────────────────────────── */

/* La miniatura ilustrativa de un documento: título, resumen y renglones (no hay texto que enseñar de un documento
   «A solicitud», y los públicos se leen en su página). */
.hub-hoja__titulo { margin: 0 0 16px; font-size: 30px; font-weight: var(--font-bold); line-height: 1.2; color: var(--color-text-primary); }
.hub-hoja__sec { display: block; width: 52%; height: 16px; margin: 26px 0 10px; border-radius: 3px; background: var(--color-text-primary); opacity: .82; }
.cc-hoja__lienzo > p { margin: 0 0 10px; color: var(--color-text-secondary); }

/* La fecha de la cabecera de un documento y el estado «sin verificar» de la disponibilidad. */
.hub-updated { font-size: var(--text-sm); color: var(--color-text-secondary); }
.hub-punto--desconocido { background: var(--color-text-tertiary); }
.hub-punto--desconocido::after { animation: none; }
.hub-dia--none { background: var(--color-border-strong); }

/* Avisos sobre la hoja del documento (prevalece el español, versión anterior) y el historial dentro de <main>. */
.hub-doc-avisos { max-width: 1120px; margin: 0 auto var(--space-3); padding: 0 var(--space-5); }
.hub-doc-avisos .hub-prevalece { max-width: none; margin-top: 0; }
.hub-doc-avisos .hub-prevalece + .hub-prevalece { margin-top: var(--space-3); }
.hub-historial__in { max-width: 1120px; margin: 0 auto; padding: var(--space-9) var(--space-5) var(--space-6); }
.hub-historial { background: transparent; }
.hub-version__enlaces { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-4); margin: 0; }
.hub-cmp__form { margin-bottom: var(--space-2); }
.hub-cmp__form .btn { margin-bottom: var(--space-4); }
.hub-cambio-card p + p { margin-top: var(--space-1-5); }

/* Requisito que se firma a mano: se explica y se lleva a Contacto. */
.hub-req__nota { margin: 0 0 var(--space-3); font-size: var(--text-sm); line-height: 1.5; color: var(--color-text-secondary); }

/* El texto del documento que se firma: títulos de sección y listas. */
.hub-nda h3 { margin: var(--space-4) 0 var(--space-1-5); font-size: var(--text-sm); color: var(--color-text-primary); }
.hub-nda ul { margin: 0 0 var(--space-3); padding-left: var(--space-5); }
.hub-nda li { margin-bottom: var(--space-1-5); }
.hub-lectura--pdf { margin-bottom: var(--space-2); }
.hub-lectura--pdf .btn { gap: var(--space-2); }

/* Sin JavaScript: el flujo y la confirmación lo dicen. */
.hub-sin-js { margin: var(--space-5) auto; max-width: 820px; padding: var(--space-3) var(--space-4); border: 1px solid var(--color-warning); border-radius: var(--radius-lg); background: var(--color-warning-light); font-size: var(--text-sm); }
.hub-confirmar .btn { gap: var(--space-2); }
.hub-confirmar [data-confirmar-error] { margin-bottom: var(--space-5); }
.hub-confirmar [data-confirmar-ok] { margin-top: var(--space-2); }
.hub-seg2__linea > .hub-aviso { margin-bottom: var(--space-5); }
.hub-fila__acc { display: flex; flex-wrap: wrap; gap: var(--space-2); }

/* Un contenedor de Turnstile: el widget mide 300 × 65 y no se estira. */
.hub-ts-bloque #hub-turnstile { min-height: 65px; }
