/* aurapdf · sistema «Mesa de luz»
   Idea: tus hojas se apoyan en una mesa iluminada que está en tu propio equipo. La mesa es un hueco hundido,
   las hojas tienen papel de verdad (sombras en capas) y el ámbar es la luz que marca lo activo.
   Medidas de Astra 4.14: contenido 1200 + 20 por lado, lectura 750, cortes 921 y 544 (margen 16).
   Espacios en escala de 4 px. Letra base 19 px, nada bajo 15. */

@font-face {
  font-family: "Familjen Grotesk";
  font-style: normal;
  font-display: swap;
  font-weight: 400 700;
  src: url("/assets/fuentes/familjen-grotesk.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212;
}
@font-face {
  font-family: "Host Grotesk";
  font-style: normal;
  font-display: swap;
  font-weight: 300 800;
  src: url("/assets/fuentes/host-grotesk.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212;
}

:root {
  color-scheme: light;
  --contenido: 1200px;
  --margen: 20px;
  --lectura: 750px;

  --fondo: #eef0ec;
  --superficie: #ffffff;
  --mesa: #e3e7e1;
  --mesa-luz: #f7f8f4;
  --tinta: #1b2128;
  --tinta-2: #46505b;
  --tinta-3: #5d6772;
  --borde: #cfd5cd;
  --borde-fuerte: #aab3a8;
  --marca: #11576a;
  --marca-oscura: #0b4352;
  --marca-suave: #dcebee;
  --aura: #e3a03a;
  --aura-suave: #f8e7c8;
  --ok: #2c6e47;
  --ok-suave: #e1f0e6;
  --error: #9b3424;
  --error-suave: #f7e3df;
  --sobre-marca: #ffffff;

  --radio: 10px;
  --radio-chico: 6px;
  --sombra-hoja: 0 1px 1px rgba(27, 33, 40, .06), 0 2px 4px rgba(27, 33, 40, .06), 0 8px 18px rgba(27, 33, 40, .07);
  --sombra-alta: 0 1px 2px rgba(27, 33, 40, .08), 0 6px 14px rgba(27, 33, 40, .08), 0 18px 40px rgba(27, 33, 40, .10);
  --hundido: inset 0 2px 5px rgba(27, 33, 40, .10), inset 0 0 0 1px rgba(27, 33, 40, .05);

  --letra: "Host Grotesk", "Segoe UI", system-ui, -apple-system, sans-serif;
  --letra-titulo: "Familjen Grotesk", "Host Grotesk", "Segoe UI", system-ui, sans-serif;
}
@media (max-width: 544px) { :root { --margen: 16px; } }

@media (prefers-color-scheme: dark) {
  :root {
    color-scheme: dark;
    --fondo: #13171b;
    --superficie: #1c2228;
    --mesa: #0f1316;
    --mesa-luz: #182026;
    --tinta: #e7eaec;
    --tinta-2: #b9c1c8;
    --tinta-3: #a3acb4;
    --borde: #313a42;
    --borde-fuerte: #4a5560;
    --marca: #6cc0d2;
    --marca-oscura: #8fd2e0;
    --marca-suave: #173640;
    --aura: #f0b65c;
    --aura-suave: #3a2d17;
    --ok: #7fcf9c;
    --ok-suave: #173323;
    --error: #f0a093;
    --error-suave: #3d1d18;
    --sobre-marca: #0b1a1f;
    --sombra-hoja: 0 1px 1px rgba(0, 0, 0, .3), 0 3px 8px rgba(0, 0, 0, .3), 0 10px 24px rgba(0, 0, 0, .25);
    --sombra-alta: 0 2px 4px rgba(0, 0, 0, .35), 0 10px 24px rgba(0, 0, 0, .35), 0 24px 48px rgba(0, 0, 0, .3);
    --hundido: inset 0 2px 6px rgba(0, 0, 0, .45), inset 0 0 0 1px rgba(255, 255, 255, .04);
  }
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--fondo);
  color: var(--tinta);
  font: 400 19px/1.55 var(--letra);
  font-synthesis-weight: none;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
main { flex: 1 0 auto; }
img, svg, canvas { display: block; max-width: 100%; }
a { color: var(--marca); text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: var(--marca-oscura); text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--marca); outline-offset: 2px; border-radius: 4px; box-shadow: 0 0 0 6px var(--aura-suave); }
h1, h2, h3 { font-family: var(--letra-titulo); line-height: 1.15; letter-spacing: -.01em; margin: 0; color: var(--tinta); }
h1 { font-size: clamp(30px, 3.4vw, 40px); font-weight: 700; }
h2 { font-size: clamp(24px, 2.4vw, 29px); font-weight: 650; }
h3 { font-size: 21px; font-weight: 650; }
p { margin: 0; }
.oculto { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.saltar { position: absolute; left: 8px; top: -60px; background: var(--superficie); padding: 8px 16px; border-radius: var(--radio-chico); z-index: 20; }
.saltar:focus { top: 8px; }

.contenedor { max-width: calc(var(--contenido) + 2 * var(--margen)); margin: 0 auto; padding: 0 var(--margen); }

/* Cabecera: la misma en todas las páginas */
.cabecera { background: var(--superficie); border-bottom: 1px solid var(--borde); box-shadow: 0 1px 0 rgba(27, 33, 40, .03), 0 4px 12px rgba(27, 33, 40, .04); position: relative; z-index: 5; }
.cabecera .contenedor { display: flex; align-items: center; gap: 24px; min-height: 64px; }
.marca { display: inline-flex; align-items: center; gap: 10px; color: var(--tinta); text-decoration: none; font: 700 25px/1 var(--letra-titulo); letter-spacing: -.02em; }
.marca:hover { color: var(--tinta); }
.marca svg { width: 34px; height: 34px; flex: none; }
.marca b { font-weight: 700; color: var(--marca); }
.menu { margin-left: auto; display: flex; gap: 4px; flex-wrap: wrap; }
.menu a { color: var(--tinta-2); text-decoration: none; font-size: 17px; font-weight: 500; padding: 10px 12px; border-radius: var(--radio-chico); }
.menu a:hover { color: var(--tinta); background: var(--mesa); }
.menu a[aria-current="page"] { color: var(--tinta); box-shadow: inset 0 -2px 0 var(--aura); border-radius: 0; }
@media (max-width: 544px) {
  .cabecera .contenedor { min-height: 56px; gap: 8px; }
  .marca { font-size: 22px; }
  .marca svg { width: 30px; height: 30px; }
  .menu a { font-size: 16px; padding: 8px 8px; }
  .menu .solo-ancho { display: none; }
}

/* Encabezado de página: poco aire arriba (≤ 32 / ≤ 24) */
.migas { font-size: 15px; color: var(--tinta-3); padding-top: 16px; }
.migas a { color: var(--tinta-3); }
.migas span[aria-hidden] { margin: 0 6px; }
.encabezado { padding: 8px 0 20px; }
.encabezado .entradilla { margin-top: 8px; color: var(--tinta-2); font-size: 20px; max-width: var(--lectura); }
@media (max-width: 544px) {
  .migas { padding-top: 12px; }
  .encabezado { padding-bottom: 16px; }
  .encabezado .entradilla { font-size: 18px; }
}

/* La mesa: el hueco iluminado donde trabaja la herramienta */
.mesa { background: linear-gradient(180deg, var(--mesa-luz), var(--mesa) 70%); border-radius: 14px; box-shadow: var(--hundido); padding: 20px; position: relative; }
.mesa::before { content: ""; position: absolute; left: 24px; right: 24px; top: 0; height: 3px; border-radius: 0 0 3px 3px; background: var(--aura); opacity: .55; }
@media (max-width: 544px) { .mesa { padding: 12px; border-radius: 12px; } .mesa::before { left: 16px; right: 16px; } }

/* Zona para soltar archivos: una pila de hojas */
.soltar { position: relative; display: grid; place-items: center; text-align: center; gap: 12px; padding: 32px 20px 28px; min-height: 236px; background: var(--superficie); border-radius: var(--radio); box-shadow: var(--sombra-hoja), 6px 6px 0 -1px var(--superficie), 6px 6px 0 0 var(--borde), 12px 12px 0 -1px var(--superficie), 12px 12px 0 0 var(--borde); margin: 0 12px 12px 0; cursor: pointer; transition: box-shadow .15s ease, transform .15s ease; }
.soltar:hover { box-shadow: var(--sombra-alta), 6px 6px 0 -1px var(--superficie), 6px 6px 0 0 var(--borde-fuerte), 12px 12px 0 -1px var(--superficie), 12px 12px 0 0 var(--borde-fuerte); }
.soltar.encima { outline: 3px dashed var(--aura); outline-offset: -10px; }
.soltar svg.pila { width: 64px; height: 64px; color: var(--marca); }
.soltar .que { font: 650 23px/1.2 var(--letra-titulo); }
.soltar .como { color: var(--tinta-2); font-size: 17px; }
.soltar input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%; }
.soltar[hidden] { display: none; }
@media (max-width: 544px) { .soltar { min-height: 200px; padding: 24px 16px; } .soltar .que { font-size: 21px; } }

/* Botones (alto 52 px; el estado no cambia el tamaño) */
.boton { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 24px; border-radius: var(--radio); border: 1px solid transparent; font: 600 18px/1.1 var(--letra); cursor: pointer; text-decoration: none; white-space: nowrap; }
.boton svg { width: 22px; height: 22px; flex: none; }
.boton-principal { background: var(--marca); color: var(--sobre-marca); box-shadow: 0 1px 0 rgba(255, 255, 255, .15) inset, 0 2px 0 var(--marca-oscura), 0 6px 14px rgba(17, 87, 106, .25); }
.boton-principal:hover { background: var(--marca-oscura); color: var(--sobre-marca); }
.boton-principal:active { transform: translateY(1px); box-shadow: 0 1px 0 var(--marca-oscura); }
.boton-secundario { background: var(--superficie); color: var(--tinta); border-color: var(--borde-fuerte); box-shadow: 0 1px 2px rgba(27, 33, 40, .06); }
.boton-secundario:hover { border-color: var(--tinta-3); color: var(--tinta); }
.boton-chico { min-height: 44px; padding: 0 16px; font-size: 16px; }
.boton[disabled], .boton[aria-disabled="true"] { opacity: .5; cursor: not-allowed; transform: none; }
.icono-boton { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: var(--radio-chico); border: 1px solid var(--borde); background: var(--superficie); color: var(--tinta-2); cursor: pointer; padding: 0; }
.icono-boton:hover { color: var(--tinta); border-color: var(--borde-fuerte); }
.icono-boton svg { width: 20px; height: 20px; }

/* Barra de acciones de la herramienta */
.acciones { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 16px; }
.acciones .empuja { margin-left: auto; }
@media (max-width: 544px) { .acciones .boton-principal { width: 100%; } .acciones .empuja { margin-left: 0; } }

/* Opciones */
.opciones { display: grid; gap: 16px 24px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); background: var(--superficie); border-radius: var(--radio); padding: 16px 20px; box-shadow: var(--sombra-hoja); margin-top: 16px; }
.opciones fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.opciones legend, .campo > span, .campo > label { display: block; font-weight: 600; font-size: 17px; margin-bottom: 8px; color: var(--tinta); }
.opciones .nota { font-size: 15px; color: var(--tinta-3); margin-top: 6px; }
.segmentos { display: flex; flex-wrap: wrap; gap: 6px; }
.segmentos label { position: relative; }
.segmentos input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.segmentos span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; border-radius: var(--radio-chico); border: 1px solid var(--borde); background: var(--mesa-luz); font-size: 16px; color: var(--tinta-2); cursor: pointer; }
.segmentos input:checked + span { border-color: var(--marca); background: var(--marca-suave); color: var(--tinta); font-weight: 600; box-shadow: inset 0 0 0 1px var(--marca); }
.segmentos input:focus-visible + span { outline: 3px solid var(--marca); outline-offset: 2px; }
input[type=text], input[type=password], input[type=number], input[type=email], select, textarea { font: 400 18px/1.3 var(--letra); color: var(--tinta); background: var(--superficie); border: 1px solid var(--borde-fuerte); border-radius: var(--radio-chico); min-height: 48px; padding: 10px 12px; width: 100%; }
textarea { min-height: 140px; resize: vertical; }
input:focus-visible, select:focus-visible, textarea:focus-visible { border-color: var(--marca); }
.casilla { display: flex; gap: 10px; align-items: flex-start; font-size: 17px; cursor: pointer; }
.casilla input { width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--marca); flex: none; }
.fila-campos { display: flex; gap: 12px; flex-wrap: wrap; align-items: flex-end; }
.fila-campos .campo { flex: 1 1 160px; }

/* Lista de archivos (unir, jpg a pdf) */
.lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.lista li { display: grid; grid-template-columns: auto 56px 1fr auto; align-items: center; gap: 12px; background: var(--superficie); border-radius: var(--radio); padding: 10px 12px; box-shadow: var(--sombra-hoja); touch-action: none; }
.lista li.arrastrando { box-shadow: var(--sombra-alta); outline: 2px solid var(--aura); position: relative; z-index: 3; }
.lista .asa { cursor: grab; color: var(--tinta-3); width: 28px; height: 44px; display: grid; place-items: center; }
.lista .asa svg { width: 20px; height: 20px; }
.lista .mini { width: 56px; height: 72px; background: var(--mesa-luz); border: 1px solid var(--borde); border-radius: 3px; overflow: hidden; display: grid; place-items: center; }
.lista .mini canvas, .lista .mini img { width: 100%; height: 100%; object-fit: contain; }
.lista .nombre { font-weight: 600; font-size: 17px; overflow-wrap: anywhere; line-height: 1.3; }
.lista .detalle { font-size: 15px; color: var(--tinta-3); }
.lista .botones { display: flex; gap: 6px; }
@media (max-width: 544px) {
  .lista li { grid-template-columns: 48px 1fr auto; gap: 10px; padding: 8px; }
  .lista .asa { display: none; }
  .lista .mini { width: 48px; height: 62px; }
  .lista .botones { flex-direction: column; gap: 4px; }
  .lista .botones .icono-boton { width: 40px; height: 40px; }
}

/* Páginas en miniatura (ordenar, rotar, dividir, pdf a jpg) */
.hojas { display: grid; grid-template-columns: repeat(auto-fill, minmax(132px, 1fr)); gap: 18px 16px; padding: 4px; }
.hoja { position: relative; display: grid; gap: 8px; justify-items: center; touch-action: manipulation; }
.hoja .papel { position: relative; width: 100%; aspect-ratio: 1 / 1.3; display: grid; place-items: center; }
.hoja .papel canvas { width: auto; height: auto; max-width: 100%; max-height: 100%; background: #fff; box-shadow: var(--sombra-hoja); border-radius: 2px; transition: transform .2s ease; }
.hoja .papel .carga { width: 70%; height: 90%; background: var(--superficie); box-shadow: var(--sombra-hoja); border-radius: 2px; }
.hoja .num { font-size: 15px; color: var(--tinta-2); font-variant-numeric: tabular-nums; }
.hoja.elegida .papel canvas { outline: 3px solid var(--aura); outline-offset: 3px; }
.hoja.quitada .papel canvas { opacity: .25; filter: grayscale(1); }
.hoja.quitada .num { text-decoration: line-through; }
.hoja .controles { display: flex; gap: 4px; flex-wrap: wrap; justify-content: center; }
.hoja .marca-sel { position: absolute; top: 6px; left: 6px; width: 28px; height: 28px; border-radius: 50%; background: var(--superficie); border: 2px solid var(--borde-fuerte); display: grid; place-items: center; box-shadow: var(--sombra-hoja); }
.hoja.elegida .marca-sel { background: var(--aura); border-color: var(--aura); color: #2a1b04; }
.hoja .marca-sel svg { width: 16px; height: 16px; opacity: 0; }
.hoja.elegida .marca-sel svg { opacity: 1; }
.hoja button.tocar { position: absolute; inset: 0; background: transparent; border: 0; cursor: pointer; border-radius: 4px; }
.hoja.arrastrando { opacity: .55; }
.hoja.destino .papel::after { content: ""; position: absolute; left: -10px; top: 6%; bottom: 6%; width: 4px; border-radius: 2px; background: var(--aura); }
@media (max-width: 544px) { .hojas { grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 14px 10px; } .hojas.con-controles { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); } }

/* Visor de una página (firmar, tachar) */
.visor { display: grid; gap: 12px; }
.visor .barra { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.visor .barra .pagina { font-variant-numeric: tabular-nums; font-size: 17px; min-width: 120px; text-align: center; }
.visor .lienzo { position: relative; margin: 0 auto; background: #fff; box-shadow: var(--sombra-alta); touch-action: none; user-select: none; -webkit-user-select: none; }
.visor .lienzo canvas { width: 100%; height: auto; }
.visor .capa { position: absolute; inset: 0; }
.caja-tacha { position: absolute; background: rgba(0, 0, 0, .86); outline: 2px solid var(--aura); outline-offset: 0; }
.caja-tacha button { position: absolute; top: -14px; right: -14px; width: 32px; height: 32px; border-radius: 50%; border: 0; background: var(--superficie); color: var(--tinta); box-shadow: var(--sombra-hoja); display: grid; place-items: center; cursor: pointer; padding: 0; }
.caja-tacha button svg { width: 16px; height: 16px; }
.firma-puesta { position: absolute; cursor: move; outline: 2px dashed var(--aura); outline-offset: 2px; touch-action: none; }
.firma-puesta img { width: 100%; height: 100%; pointer-events: none; }
.firma-puesta .tirador { position: absolute; right: -12px; bottom: -12px; width: 26px; height: 26px; border-radius: 50%; background: var(--aura); border: 3px solid var(--superficie); box-shadow: var(--sombra-hoja); cursor: nwse-resize; touch-action: none; }
.firma-puesta .quitar { position: absolute; top: -14px; right: -14px; width: 30px; height: 30px; border-radius: 50%; border: 0; background: var(--superficie); box-shadow: var(--sombra-hoja); display: grid; place-items: center; cursor: pointer; padding: 0; color: var(--tinta); }
.firma-puesta .quitar svg { width: 15px; height: 15px; }

.pad { background: #fff; border-radius: var(--radio); box-shadow: var(--hundido); position: relative; touch-action: none; }
.pad canvas { width: 100%; height: 200px; cursor: crosshair; }
.pad .linea { position: absolute; left: 24px; right: 24px; bottom: 44px; border-bottom: 1px solid #c9cfc7; pointer-events: none; }
.pad .rotulo { position: absolute; left: 24px; bottom: 16px; font-size: 15px; color: #5d6772; pointer-events: none; }

/* Estado y resultado (espacio reservado: no empuja nada) */
.estado { min-height: 28px; margin-top: 12px; font-size: 17px; color: var(--tinta-2); display: flex; align-items: center; gap: 10px; }
.estado[data-tipo="error"] { color: var(--error); }
.estado[data-tipo="ok"] { color: var(--ok); }
.estado svg { width: 20px; height: 20px; flex: none; }
.barra-progreso { height: 6px; background: var(--mesa); border-radius: 3px; overflow: hidden; margin-top: 8px; }
.barra-progreso i { display: block; height: 100%; width: 0; background: var(--marca); border-radius: 3px; transition: width .15s linear; }
.resultado { margin-top: 16px; background: var(--superficie); border-radius: var(--radio); box-shadow: var(--sombra-alta); padding: 20px; display: grid; gap: 12px; border-left: 4px solid var(--aura); }
.resultado[hidden] { display: none; }
.resultado .cifras { display: flex; flex-wrap: wrap; gap: 8px 24px; font-size: 17px; color: var(--tinta-2); }
.resultado .cifras strong { color: var(--tinta); font-variant-numeric: tabular-nums; }
.resultado .titulo { font: 650 22px/1.2 var(--letra-titulo); }
.resultado .descargas { display: flex; flex-wrap: wrap; gap: 10px; }

/* Línea de privacidad bajo cada herramienta */
.local { display: flex; gap: 10px; align-items: flex-start; margin-top: 16px; font-size: 16px; color: var(--tinta-2); }
.local svg { width: 22px; height: 22px; color: var(--ok); flex: none; margin-top: 1px; }

/* Texto de apoyo bajo la herramienta */
.texto { padding: 40px 0 8px; }
.texto section { max-width: var(--lectura); margin-bottom: 40px; }
.texto h2 { margin-bottom: 12px; }
.texto h3 { margin: 20px 0 8px; }
.texto p + p { margin-top: 12px; }
.texto ul, .texto ol { padding-left: 24px; margin: 8px 0 0; }
.texto li + li { margin-top: 6px; }
.aviso { background: var(--aura-suave); border-radius: var(--radio-chico); padding: 12px 16px; margin-top: 16px; font-size: 17px; }
.pasos { counter-reset: paso; list-style: none; padding: 0 !important; }
.pasos li { position: relative; padding-left: 44px; min-height: 32px; }
.pasos li::before { counter-increment: paso; content: counter(paso); position: absolute; left: 0; top: 0; width: 30px; height: 30px; border-radius: 50%; border: 2px solid var(--marca); color: var(--marca); font: 700 16px/26px var(--letra-titulo); text-align: center; }
.preguntas details { border-bottom: 1px solid var(--borde); }
.preguntas details:first-of-type { border-top: 1px solid var(--borde); }
.preguntas summary { cursor: pointer; padding: 14px 32px 14px 0; font-weight: 600; list-style: none; position: relative; }
.preguntas summary::-webkit-details-marker { display: none; }
.preguntas summary::after { content: ""; position: absolute; right: 6px; top: 22px; width: 10px; height: 10px; border-right: 2px solid var(--tinta-3); border-bottom: 2px solid var(--tinta-3); transform: rotate(45deg); }
.preguntas details[open] summary::after { transform: rotate(-135deg); top: 26px; }
.preguntas details > div { padding: 0 0 16px; color: var(--tinta-2); }

/* Otras herramientas: filas con icono, no tarjetas iguales */
.otras { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 0 32px; }
.otras a { display: grid; grid-template-columns: 40px 1fr; gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--borde); text-decoration: none; color: var(--tinta); }
.otras a:hover { color: var(--marca); }
.otras a:hover .ico { background: var(--marca-suave); }
.otras .ico { width: 40px; height: 40px; border-radius: 8px; background: var(--mesa); display: grid; place-items: center; color: var(--marca); }
.otras .ico svg { width: 24px; height: 24px; }
.otras .n { font-weight: 600; line-height: 1.25; }
.otras .d { font-size: 15px; color: var(--tinta-3); line-height: 1.35; }

/* Portada */
.portada-encabezado { display: grid; grid-template-columns: 1.15fr .85fr; gap: 24px 40px; align-items: end; padding: 24px 0 20px; }
.portada-encabezado .entradilla { margin-top: 10px; color: var(--tinta-2); font-size: 20px; }
.portada-encabezado .sello { display: grid; grid-template-columns: 52px 1fr; gap: 14px; align-items: center; background: var(--superficie); border-radius: var(--radio); padding: 14px 16px; box-shadow: var(--sombra-hoja); font-size: 16px; color: var(--tinta-2); }
.portada-encabezado .sello strong { display: block; color: var(--tinta); font-size: 17px; }
.portada-encabezado .sello svg { width: 52px; height: 52px; color: var(--marca); }
@media (max-width: 921px) { .portada-encabezado { grid-template-columns: 1fr; padding-top: 16px; } }
.grupos { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.grupo { background: var(--superficie); border-radius: var(--radio); box-shadow: var(--sombra-hoja); padding: 16px 16px 8px; }
.grupo h2 { font-size: 18px; font-weight: 650; color: var(--tinta-2); padding-bottom: 10px; border-bottom: 2px solid var(--aura); display: flex; gap: 8px; align-items: center; }
.grupo ul { list-style: none; margin: 0; padding: 0; }
.grupo li a { display: grid; grid-template-columns: 36px 1fr; gap: 12px; align-items: center; padding: 10px 0; text-decoration: none; color: var(--tinta); border-bottom: 1px solid var(--borde); }
.grupo li:last-child a { border-bottom: 0; }
.grupo li a:hover { color: var(--marca); }
.grupo li a:hover .ico { background: var(--marca); color: var(--sobre-marca); }
.grupo .ico { width: 36px; height: 36px; border-radius: 8px; background: var(--marca-suave); color: var(--marca); display: grid; place-items: center; }
.grupo .ico svg { width: 22px; height: 22px; }
.grupo .n { font-weight: 600; font-size: 18px; line-height: 1.2; display: block; }
.grupo .d { font-size: 15px; color: var(--tinta-3); line-height: 1.3; display: block; margin-top: 2px; }
@media (max-width: 1100px) { .grupos { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .grupos { grid-template-columns: 1fr; } }
.franja { margin-top: 40px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; padding: 28px 0; border-top: 1px solid var(--borde); }
.franja h2 { font-size: 21px; margin-bottom: 8px; }
.franja p { color: var(--tinta-2); font-size: 17px; }
.franja svg { width: 36px; height: 36px; color: var(--marca); margin-bottom: 10px; }
@media (max-width: 921px) { .franja { grid-template-columns: 1fr; gap: 24px; } }

/* Páginas de texto */
.pagina-texto { padding-bottom: 40px; }
.pagina-texto .cuerpo { max-width: var(--lectura); }
.pagina-texto .cuerpo h2 { margin: 32px 0 12px; }
.pagina-texto .cuerpo h3 { margin: 24px 0 8px; }
.pagina-texto .cuerpo p + p { margin-top: 12px; }
.pagina-texto .cuerpo ul { padding-left: 24px; }
.pagina-texto .cuerpo li + li { margin-top: 6px; }
.pagina-texto .fecha { font-size: 15px; color: var(--tinta-3); margin-top: 8px; }
.tabla { width: 100%; border-collapse: collapse; font-size: 16px; margin-top: 12px; }
.tabla th, .tabla td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--borde); vertical-align: top; }
.tabla th { font-weight: 600; background: var(--mesa); }
.envoltura-tabla { overflow-x: auto; }

/* Contacto */
.formulario { background: var(--superficie); border-radius: var(--radio); box-shadow: var(--sombra-hoja); padding: 20px; display: grid; gap: 16px; max-width: var(--lectura); margin-top: 16px; }
.formulario .trampa { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.suggest-status { min-height: 28px; font-size: 17px; --suggest-error: var(--error); }
[data-suggest-captcha] { min-height: 65px; }

/* Pie */
.pie { margin-top: 48px; background: var(--superficie); border-top: 1px solid var(--borde); padding: 28px 0 32px; font-size: 16px; color: var(--tinta-2); }
.pie .contenedor { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 24px; }
.pie h2 { font-size: 16px; font-weight: 650; color: var(--tinta); margin-bottom: 8px; font-family: var(--letra); }
.pie ul { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 16px; }
.pie ul.una { columns: 1; }
.pie li { padding: 4px 0; break-inside: avoid; }
.pie a { color: var(--tinta-2); }
.pie a:hover { color: var(--tinta); }
.pie .legal { grid-column: 1 / -1; padding-top: 16px; border-top: 1px solid var(--borde); font-size: 15px; color: var(--tinta-3); }
@media (max-width: 921px) { .pie .contenedor { grid-template-columns: 1fr; } }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; } }
@media print { .cabecera, .pie, .mesa { display: none; } }

/* Utilidades (la CSP no permite estilos en línea) */
.col-completa { grid-column: 1 / -1; }
.mt-8 { margin-top: 8px; } .mt-12 { margin-top: 12px; } .mt-16 { margin-top: 16px; } .mt-36 { margin-top: 36px; }
.mb-12 { margin-bottom: 12px; }
.sin-margen { margin: 0 !important; }
.vista-foto { margin-top: 12px; max-height: 140px; background: #fff; border-radius: var(--radio-chico); box-shadow: var(--hundido); }
.lienzo-chico { max-width: 360px; }
@media (max-width: 544px) { .mt-36 { margin-top: 0; } }
.pie .marca + p { margin-top: 12px; }

/* Caja del responsable */
.responsable { display: grid; grid-template-columns: 52px 1fr; gap: 16px; align-items: start; max-width: var(--lectura); margin: 8px 0 0; padding: 16px 20px; background: var(--superficie); border-radius: var(--radio); box-shadow: var(--sombra-hoja); font-size: 17px; color: var(--tinta-2); }
.responsable .iniciales { width: 52px; height: 52px; border-radius: 50%; background: var(--marca); color: var(--sobre-marca); display: grid; place-items: center; font: 700 19px/1 var(--letra-titulo); letter-spacing: .02em; }
.responsable strong { color: var(--tinta); }
.responsable .nota { font-size: 15px; margin-top: 6px; color: var(--tinta-3); }
code { font-size: .92em; background: var(--mesa); padding: 1px 6px; border-radius: 4px; }
.enlace-boton { background: none; border: 0; padding: 0; color: var(--marca); font: inherit; text-decoration: underline; cursor: pointer; }
.error-linea { color: var(--error); font-weight: 600; }
.hojas.sin-seleccion .marca-sel { display: none; }
.lista li.sin-asa { grid-template-columns: 56px 1fr; }
.lista .mini svg { width: 28px; height: 28px; color: var(--marca); }
.numero-previa { position: absolute; font-family: Helvetica, Arial, sans-serif; color: #222; line-height: 1; white-space: nowrap; pointer-events: none; outline: 1px dashed var(--aura); outline-offset: 2px; }
.descargas .boton span { white-space: nowrap; }
.resultado .nota { font-size: 16px; color: var(--tinta-3); }
.grupo h2 svg { width: 22px; height: 22px; color: var(--marca); flex: none; }
.lista .nombre, .lista .detalle { display: block; }
.asa { background: none; border: 0; padding: 0; color: var(--tinta-3); cursor: grab; display: grid; place-items: center; width: 32px; height: 44px; border-radius: var(--radio-chico); }
.asa:hover { color: var(--tinta); background: var(--mesa); }
.asa svg { width: 20px; height: 20px; }
.hoja .controles .icono-boton { width: 36px; height: 36px; }
.hoja .controles .icono-boton svg { width: 18px; height: 18px; }
.hoja .controles [data-asa] { cursor: grab; touch-action: none; }
.hojas { margin-top: 16px; }
