/* ==========================================================================================================
   Socios — «el carnet y el banderín». La casa: cartulina crema, tinta y granate de banderín, con el sello de
   temporada en mostaza. Cada entidad tiñe la web con sus dos colores (variables --ent*, ver comun.js → tenir()).
   Letras: Graduate (rótulos de banderín y carnet), Barlow Condensed (titulares), Barlow (texto), IBM Plex Mono (IBAN).
   La base (estructura, botones, campos…) es /kit/kit.css.
   ========================================================================================================== */

/* ── Letras ─────────────────────────────────────────────────────────────────────────────────────────────── */
@font-face { font-family: 'Barlow'; src: url('/fuentes/barlow-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Barlow'; src: url('/fuentes/barlow-latin-500-normal.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Barlow'; src: url('/fuentes/barlow-latin-600-normal.woff2') format('woff2'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'Barlow'; src: url('/fuentes/barlow-latin-700-normal.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Barlow Condensed'; src: url('/fuentes/barlow-condensed-latin-600-normal.woff2') format('woff2'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'Barlow Condensed'; src: url('/fuentes/barlow-condensed-latin-700-normal.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Graduate'; src: url('/fuentes/graduate-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'IBM Plex Mono'; src: url('/fuentes/ibm-plex-mono-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'IBM Plex Mono'; src: url('/fuentes/ibm-plex-mono-latin-500-normal.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }

/* ── Colores de la casa ─────────────────────────────────────────────────────────────────────────────────── */
:root {
  --f-texto: 'Barlow', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --f-titulos: 'Barlow Condensed', 'Barlow', system-ui, sans-serif;
  --f-datos: 'IBM Plex Mono', ui-monospace, 'Cascadia Mono', Menlo, monospace;
  --f-rotulo: 'Graduate', 'Barlow Condensed', Georgia, serif;
  --peso-titulos: 700;
  --tracking-titulos: 0.002em;
  --radio-s: 5px;
  --radio: 8px;
  --radio-l: 12px;
  --radio-xl: 18px;

  --granate: #8a1c2b;
  --oro: #e0b23a;
  --carton: #f6efdf;
  --tinta: #1f1b16;

  --fondo: #f3eee3;
  --superficie: #fffcf5;
  --superficie-2: #efe8d9;
  --hundido: #e6dfcd;
  --linea: #e1d8c4;
  --linea-fuerte: #c9bda2;
  --texto: #1f1b16;
  --texto-2: #544b3e;
  --texto-3: #756b5a;
  --acento: #8a1c2b;
  --acento-hover: #731623;
  --acento-suave: #f5e3e1;
  --acento-texto: #8a1c2b;
  --sobre-acento: #ffffff;
  --ok: #1d6f43; --ok-suave: #e1f1e6;
  --atencion: #8f5300; --atencion-suave: #fbeed5;
  --error: #b02a1f; --error-suave: #fbe4e0;
  --info: #22599a; --info-suave: #e2ecf8;
  --sombra-1: 0 1px 2px rgb(40 28 12 / 0.07), 0 0 0 1px rgb(40 28 12 / 0.03);
  --sombra-2: 0 8px 22px -10px rgb(40 28 12 / 0.22), 0 1px 3px rgb(40 28 12 / 0.07);
  --sombra-3: 0 26px 60px -14px rgb(40 28 12 / 0.32), 0 2px 8px rgb(40 28 12 / 0.08);
  --velo: rgb(26 18 8 / 0.45);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-tema='claro']) {
    --fondo: #15130f; --superficie: #1e1b16; --superficie-2: #27231c; --hundido: #0f0d0a;
    --linea: #332e25; --linea-fuerte: #4c453a;
    --texto: #f2ece0; --texto-2: #c4baa7; --texto-3: #958b78;
    --acento: #e8838c; --acento-hover: #f09ca3; --acento-suave: #3a1d21; --acento-texto: #f0a3aa; --sobre-acento: #2a0a0e;
    --ok: #57c88c; --ok-suave: #142d1f; --atencion: #efb24e; --atencion-suave: #33260f; --error: #ff7d6e; --error-suave: #3a1714; --info: #74b2f2; --info-suave: #142a40;
    --sombra-1: 0 1px 2px rgb(0 0 0 / 0.45), 0 0 0 1px rgb(255 255 255 / 0.03);
    --sombra-2: 0 8px 22px -8px rgb(0 0 0 / 0.65), 0 1px 3px rgb(0 0 0 / 0.4);
    --sombra-3: 0 28px 70px -14px rgb(0 0 0 / 0.8), 0 2px 8px rgb(0 0 0 / 0.5);
  }
}
:root[data-tema='oscuro'] {
  --fondo: #15130f; --superficie: #1e1b16; --superficie-2: #27231c; --hundido: #0f0d0a;
  --linea: #332e25; --linea-fuerte: #4c453a;
  --texto: #f2ece0; --texto-2: #c4baa7; --texto-3: #958b78;
  --acento: #e8838c; --acento-hover: #f09ca3; --acento-suave: #3a1d21; --acento-texto: #f0a3aa; --sobre-acento: #2a0a0e;
  --ok: #57c88c; --ok-suave: #142d1f; --atencion: #efb24e; --atencion-suave: #33260f; --error: #ff7d6e; --error-suave: #3a1714; --info: #74b2f2; --info-suave: #142a40;
  --sombra-1: 0 1px 2px rgb(0 0 0 / 0.45), 0 0 0 1px rgb(255 255 255 / 0.03);
  --sombra-2: 0 8px 22px -8px rgb(0 0 0 / 0.65), 0 1px 3px rgb(0 0 0 / 0.4);
  --sombra-3: 0 28px 70px -14px rgb(0 0 0 / 0.8), 0 2px 8px rgb(0 0 0 / 0.5);
}

/* Teñido con los colores de una entidad (en <html> o en un bloque). Los valores --ent-c / --ent-o ya traen el
   contraste AA calculado contra el fondo claro y el oscuro. */
.tenido {
  --acento: var(--ent-c); --acento-hover: color-mix(in oklab, var(--ent-c) 84%, #000); --acento-texto: color-mix(in oklab, var(--ent-c) 90%, #000);
  --acento-suave: color-mix(in oklab, var(--ent-c) 11%, var(--superficie)); --sobre-acento: var(--ent-c-sobre);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-tema='claro']).tenido, :root:not([data-tema='claro']) .tenido {
    --acento: var(--ent-o); --acento-hover: color-mix(in oklab, var(--ent-o) 85%, #fff); --acento-texto: var(--ent-o);
    --acento-suave: color-mix(in oklab, var(--ent-o) 15%, var(--superficie)); --sobre-acento: var(--ent-o-sobre);
  }
}
:root[data-tema='oscuro'].tenido, :root[data-tema='oscuro'] .tenido {
  --acento: var(--ent-o); --acento-hover: color-mix(in oklab, var(--ent-o) 85%, #fff); --acento-texto: var(--ent-o);
  --acento-suave: color-mix(in oklab, var(--ent-o) 15%, var(--superficie)); --sobre-acento: var(--ent-o-sobre);
}

/* ── Base ───────────────────────────────────────────────────────────────────────────────────────────────── */
body { font-size: 1.04rem; }
h1, h2, h3 { font-family: var(--f-titulos); }
h1 { font-size: clamp(2.1rem, 1.4rem + 3vw, 3.4rem); line-height: 1.02; letter-spacing: -0.005em; }
h2 { font-size: clamp(1.5rem, 1.2rem + 1.1vw, 2rem); }
h3 { font-size: 1.28rem; }
.num, .datos { font-family: var(--f-datos); }
.antetitulo { font-family: var(--f-titulos); font-size: 0.82rem; font-weight: 700; letter-spacing: 0.13em; color: var(--texto-2); }
.antetitulo::before { content: ''; width: 15px; height: 10px; background: var(--acento); clip-path: polygon(0 0, 100% 50%, 0 100%); flex-shrink: 0; }
.titulo-seccion { font-size: 1.35rem; display: flex; align-items: center; gap: 10px; margin-bottom: var(--e-4); }
.titulo-seccion::after { content: ''; flex: 1; height: 2px; background: repeating-linear-gradient(90deg, var(--linea-fuerte) 0 6px, transparent 6px 10px); }
.marca span { font-family: var(--f-rotulo); font-weight: 400; font-size: 1.12rem; letter-spacing: 0.02em; }
.cuerpo { flex: 1; min-height: 0; }
.ancho-completo { margin-inline: calc(50% - 50vw); width: 100vw; }
.centro-fila { justify-content: center; }
.pie { background: var(--superficie-2); }
.tenido .barra { box-shadow: inset 0 3px 0 var(--ent1); }
.cita { font-style: italic; color: var(--texto-2); border-left: 3px solid var(--linea-fuerte); padding-left: 12px; margin: 0; }
.etiqueta { font-family: var(--f-texto); }
.entrada.compacta, select.entrada.compacta { min-height: 34px; padding: 4px 30px 4px 9px; font-size: var(--t-s); width: auto; }
.boton { font-family: var(--f-texto); letter-spacing: 0.01em; }
.boton.grande { font-family: var(--f-titulos); font-size: 1.15rem; letter-spacing: 0.02em; }
.solo-impresion { display: none; }

/* ── Bufanda, sello, banderín, escudo ───────────────────────────────────────────────────────────────────── */
.bufanda {
  height: 14px; position: relative;
  background: repeating-linear-gradient(90deg, var(--ent1, var(--granate)) 0 26px, var(--ent2, var(--oro)) 26px 52px);
}
.bufanda::after { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(0deg, rgb(0 0 0 / 0.07) 0 1px, transparent 1px 3px), repeating-linear-gradient(90deg, rgb(255 255 255 / 0.08) 0 1px, transparent 1px 4px); }
.bufanda.ancha { height: 18px; }
.bufanda.fina { height: 6px; margin-block: 10px 18px; border-radius: 3px; }

.sello {
  --s: var(--acento-texto);
  display: inline-flex; flex-direction: column; align-items: center; gap: 1px; padding: 6px 14px; color: var(--s);
  border: 3px double var(--s); border-radius: 7px; transform: rotate(-6deg); font-family: var(--f-rotulo); line-height: 1; opacity: 0.92;
}
.sello small { font-family: var(--f-titulos); font-weight: 700; font-size: 0.7rem; letter-spacing: 0.18em; text-transform: uppercase; }
.sello b { font-weight: 400; font-size: 1.35rem; letter-spacing: 0.02em; }
.sello.grande { padding: 10px 22px; border-width: 5px; }
.sello.grande b { font-size: 2rem; }
.sello.pequeno { padding: 3px 9px; border-width: 2.5px; }
.sello.pequeno b { font-size: 0.95rem; }

.banderin { width: 100%; height: auto; overflow: visible; filter: drop-shadow(0 10px 12px rgb(40 24 8 / 0.18)); }
.banderin-tela { transform-origin: 8px 65px; transform-box: view-box; }
.banderin.ondea .banderin-tela { animation: ondear 6.5s ease-in-out infinite; }
@keyframes ondear { 0%, 100% { transform: rotate(-1.4deg) skewY(-0.6deg); } 50% { transform: rotate(1.6deg) skewY(0.8deg); } }
.escudo { flex-shrink: 0; display: inline-block; }
img.escudo { object-fit: contain; }

/* ── El carnet ──────────────────────────────────────────────────────────────────────────────────────────── */
.carnet-escena { --rx: 0deg; --ry: 0deg; --bx: 50%; width: min(100%, 430px); margin-inline: auto; perspective: 1100px; position: relative; }
.carnet-escena.pequeno { perspective: none; width: 100%; max-width: 360px; }
.carnet {
  display: block; position: relative; width: 100%; aspect-ratio: 85.6 / 54; padding: 0; border: 0; background: none; color: var(--tinta);
  font: inherit; text-align: left; border-radius: 16px; cursor: pointer; -webkit-tap-highlight-color: transparent;
  transform: rotateX(var(--rx)) rotateY(var(--ry)); transform-style: preserve-3d; transition: transform 420ms var(--curva);
}
div.carnet { cursor: default; }
.carnet-escena.con-sensor .carnet { transition: transform 90ms linear; }
.carnet:focus-visible { outline: 3px solid var(--acento); outline-offset: 5px; box-shadow: none; }
.carnet-giro { position: relative; width: 100%; height: 100%; transform-style: preserve-3d; transition: transform 560ms var(--curva); }
.carnet.girado .carnet-giro { transform: rotateY(180deg); }
.cara {
  position: absolute; inset: 0; overflow: hidden; border-radius: 16px; container-type: inline-size;
  backface-visibility: hidden; -webkit-backface-visibility: hidden;
  background-color: var(--carton);
  background-image:
    radial-gradient(120% 90% at 18% -10%, rgb(255 255 255 / 0.7), transparent 55%),
    repeating-linear-gradient(115deg, rgb(110 80 30 / 0.03) 0 2px, transparent 2px 5px),
    linear-gradient(180deg, #faf4e7, #ede3cc);
  box-shadow: inset 0 0 0 1px rgb(120 90 40 / 0.18), 0 22px 44px -20px rgb(30 18 6 / 0.6), 0 3px 8px rgb(30 18 6 / 0.16);
}
.cara.dorso { transform: rotateY(180deg); }
.carnet-bufanda { position: absolute; inset: 0 0 auto; height: 7.5cqi; background: repeating-linear-gradient(90deg, var(--c1) 0 7cqi, var(--c2) 7cqi 14cqi); box-shadow: inset 0 -1px 0 rgb(0 0 0 / 0.12); }
.carnet-bufanda::after { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(0deg, rgb(0 0 0 / 0.08) 0 1px, transparent 1px 3px); }
.carnet-cabeza { position: absolute; top: 10.5cqi; left: 5cqi; right: 5cqi; display: flex; gap: 3cqi; align-items: center; }
.carnet-cabeza .escudo { width: 9.5cqi; height: auto; }
.carnet-cabeza > div { min-width: 0; display: flex; flex-direction: column; }
.carnet-entidad { font-family: var(--f-rotulo); font-weight: 400; font-size: 4.3cqi; line-height: 1.05; color: #231d15; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.carnet-lugar { font-family: var(--f-titulos); font-weight: 600; font-size: 2.7cqi; letter-spacing: 0.1em; text-transform: uppercase; color: #6d604b; }
.carnet-cuerpo { position: absolute; left: 5cqi; top: 26cqi; right: 30cqi; display: flex; gap: 4cqi; align-items: flex-start; }
.carnet-foto { width: 17cqi; flex-shrink: 0; aspect-ratio: 3 / 4; border-radius: 1.4cqi; overflow: hidden; display: grid; place-items: center; background: color-mix(in oklab, var(--c1) 22%, #efe6d1); border: 0.7cqi solid #fffaf0; box-shadow: 0 0.6cqi 1.6cqi rgb(30 18 6 / 0.22); }
.carnet-foto img { width: 100%; height: 100%; object-fit: cover; }
.carnet-iniciales { font-family: var(--f-rotulo); font-size: 6.5cqi; color: #3b3328; }
.carnet-datos { display: flex; flex-direction: column; min-width: 0; }
.carnet-etq { font-family: var(--f-titulos); font-weight: 700; font-size: 2.5cqi; letter-spacing: 0.16em; text-transform: uppercase; color: #8a7c63; }
.carnet-nombre { font-family: var(--f-titulos); font-weight: 700; font-size: 7.4cqi; line-height: 0.98; color: #1b1712; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.carnet-apellidos { font-family: var(--f-titulos); font-weight: 600; font-size: 4.3cqi; line-height: 1.1; color: #3b3328; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.carnet-cat { align-self: flex-start; margin-top: 1.8cqi; padding: 0.5cqi 2cqi; border-radius: 99px; background: var(--c1); color: var(--t1); font-family: var(--f-titulos); font-weight: 700; font-size: 2.7cqi; letter-spacing: 0.08em; text-transform: uppercase; box-shadow: inset 0 0 0 1px rgb(0 0 0 / 0.12); }
.carnet-numero { position: absolute; right: 5cqi; top: 24cqi; display: flex; flex-direction: column; align-items: flex-end; line-height: 1; }
.carnet-numero small { font-family: var(--f-titulos); font-weight: 700; font-size: 2.6cqi; letter-spacing: 0.14em; color: #8a7c63; }
.carnet-numero b { font-family: var(--f-rotulo); font-weight: 400; font-size: 9.5cqi; letter-spacing: 0.02em; color: #231d15; }
.carnet-sello {
  position: absolute; right: 5.5cqi; bottom: 11.5cqi; display: flex; flex-direction: column; align-items: center; line-height: 1;
  padding: 0.9cqi 2.4cqi; border: 1.1cqi double var(--sello, var(--granate)); border-radius: 1.8cqi; color: var(--sello, var(--granate));
  transform: rotate(-9deg); opacity: 0.86; mix-blend-mode: multiply;
}
.carnet-sello small { font-family: var(--f-titulos); font-weight: 700; font-size: 2.2cqi; letter-spacing: 0.18em; text-transform: uppercase; }
.carnet-sello b { font-family: var(--f-rotulo); font-weight: 400; font-size: 4.6cqi; }
.carnet-pie { position: absolute; left: 5cqi; right: 5cqi; bottom: 4.6cqi; display: flex; align-items: center; justify-content: space-between; gap: 2cqi; font-family: var(--f-titulos); font-weight: 600; font-size: 2.7cqi; letter-spacing: 0.06em; text-transform: uppercase; color: #6d604b; }
.carnet-estado { padding: 0.6cqi 2cqi; border-radius: 99px; font-weight: 700; color: #fff; background: #1d6f43; }
.carnet-estado.atencion { background: #9a5b00; }
.carnet-estado.error { background: #a8281e; }
.carnet-estado.info { background: #22599a; }
.carnet-brillo {
  position: absolute; inset: 0; pointer-events: none; border-radius: inherit;
  background: linear-gradient(105deg, transparent 34%, rgb(255 255 255 / 0.6) 46%, rgb(255 236 190 / 0.25) 52%, transparent 63%);
  background-size: 270% 100%; background-position: var(--bx) 0; mix-blend-mode: soft-light;
  animation: brillo-carnet 7s ease-in-out infinite alternate;
}
.carnet-escena.con-sensor .carnet-brillo { animation: none; }
@keyframes brillo-carnet { from { background-position: 15% 0; } to { background-position: 85% 0; } }
.carnet-dorso { position: absolute; top: 12cqi; left: 5cqi; right: 5cqi; bottom: 5cqi; display: flex; gap: 4.5cqi; align-items: center; }
.carnet-qr { width: 34cqi; flex-shrink: 0; aspect-ratio: 1; background: #fff; padding: 1.4cqi; border-radius: 1.8cqi; box-shadow: 0 0.5cqi 1.6cqi rgb(30 18 6 / 0.2); }
.carnet-qr svg { width: 100%; height: 100%; }
.carnet-qr.vacio { display: grid; place-items: center; color: #8a7c63; font-size: 3cqi; }
.carnet-dorso-texto { display: flex; flex-direction: column; gap: 1.1cqi; min-width: 0; color: #4a4033; }
.carnet-dorso-texto strong { font-family: var(--f-titulos); font-weight: 700; font-size: 5.2cqi; line-height: 1; color: #1b1712; }
.carnet-dorso-texto span { font-size: 3cqi; line-height: 1.3; }
.carnet-dorso-num { font-family: var(--f-rotulo); letter-spacing: 0.02em; }
.carnet-firma { margin-top: 2cqi; padding-top: 0.8cqi; border-top: 1px solid #8a7c63; width: 70%; font-style: italic; font-size: 2.6cqi !important; color: #6d604b; }
.carnet-escena.pequeno .carnet { transition: none; }
.carnet-escena.pequeno .carnet-brillo { animation: none; opacity: 0; }
.carnet-sensor { position: absolute; left: 50%; bottom: -46px; translate: -50% 0; }
:root[data-tema='oscuro'] .cara { box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.08), 0 26px 50px -18px rgb(0 0 0 / 0.85), 0 3px 8px rgb(0 0 0 / 0.5); }
@media (prefers-color-scheme: dark) { :root:not([data-tema='claro']) .cara { box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.08), 0 26px 50px -18px rgb(0 0 0 / 0.85), 0 3px 8px rgb(0 0 0 / 0.5); } }

/* ── Estampas (puerta, recibo, inscripción) ─────────────────────────────────────────────────────────────── */
.estampa, .estampa-grande {
  --s: var(--ok);
  display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; color: var(--s);
  border: 4px double var(--s); border-radius: 10px; padding: 8px 18px; transform: rotate(-5deg); line-height: 1.05; text-align: center;
}
.estampa small, .estampa-grande small { font-family: var(--f-titulos); font-weight: 700; font-size: 0.78rem; letter-spacing: 0.14em; text-transform: uppercase; }
.estampa b, .estampa-grande b { font-family: var(--f-rotulo); font-weight: 400; font-size: 1.25rem; text-transform: uppercase; }
.estampa-grande { padding: 14px 26px; border-width: 6px; margin: 18px auto; display: flex; width: max-content; max-width: 100%; animation: estampar 380ms var(--curva-salto) both; }
.estampa-grande b { font-size: clamp(1.6rem, 1.2rem + 2.5vw, 2.6rem); }
.atencion.estampa, .estampa-grande.atencion { --s: var(--atencion); }
.error.estampa, .estampa-grande.error { --s: var(--error); }
.info.estampa, .estampa-grande.info { --s: var(--info); }
@keyframes estampar { from { opacity: 0; transform: rotate(-5deg) scale(1.35); } to { opacity: 1; transform: rotate(-5deg) scale(1); } }

/* ── Entradas de taquilla (actividades) ─────────────────────────────────────────────────────────────────── */
.entradas { display: grid; gap: var(--e-3); }
.entradas.pasadas { opacity: 0.78; }
.entrada {
  --muesca: 9px;
  position: relative; display: grid; grid-template-columns: 74px minmax(0, 1fr) minmax(96px, 150px); align-items: stretch;
  background: var(--superficie); border: 1px solid var(--linea); border-radius: var(--radio-l); color: inherit; text-decoration: none;
  box-shadow: var(--sombra-1); transition: transform var(--medio) var(--curva), box-shadow var(--medio);
}
a.entrada:hover { transform: translateY(-2px); box-shadow: var(--sombra-2); text-decoration: none; }
.entrada.cancelada { opacity: 0.6; }
.entrada.cancelada .entrada-titulo { text-decoration: line-through; }
.entrada.mia { border-color: color-mix(in oklab, var(--ok) 45%, var(--linea)); }
.taco-fecha { display: flex; flex-direction: column; align-items: center; justify-content: center; border-right: 1px solid var(--linea); padding: 8px 4px; line-height: 1; }
.taco-mes { font-family: var(--f-titulos); font-weight: 700; font-size: 0.82rem; letter-spacing: 0.14em; text-transform: uppercase; background: var(--acento); color: var(--sobre-acento); padding: 3px 8px; border-radius: 4px; }
.taco-fecha b { font-family: var(--f-rotulo); font-weight: 400; font-size: 2.1rem; margin: 6px 0 2px; }
.taco-dia { font-size: 0.78rem; color: var(--texto-3); text-transform: uppercase; letter-spacing: 0.08em; }
.entrada-cuerpo { display: flex; flex-direction: column; gap: 3px; padding: 12px 16px; min-width: 0; }
.entrada-tipo { display: inline-flex; align-items: center; gap: 6px; font-family: var(--f-titulos); font-weight: 700; font-size: 0.8rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--acento-texto); }
.entrada-titulo { font-family: var(--f-titulos); font-weight: 700; font-size: 1.3rem; line-height: 1.1; margin: 0; }
.entrada .progreso { margin-top: 6px; height: 6px; }
.entrada-talon {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 12px 10px; text-align: center;
  border-left: 2px dashed var(--linea-fuerte); font-family: var(--f-titulos); font-weight: 700; font-size: 1rem; white-space: pre-line;
}
.entrada-talon::before, .entrada-talon::after { content: ''; position: absolute; left: calc(var(--muesca) * -1 - 1px); width: calc(var(--muesca) * 2); height: calc(var(--muesca) * 2); border-radius: 50%; background: var(--fondo); border: 1px solid var(--linea); }
.entrada-talon::before { top: calc(var(--muesca) * -1 - 1px); clip-path: inset(50% 0 0 0); }
.entrada-talon::after { bottom: calc(var(--muesca) * -1 - 1px); clip-path: inset(0 0 50% 0); }
.entrada.grande { grid-template-columns: 96px minmax(0, 1fr) minmax(110px, 170px); margin-bottom: var(--e-5); }
.entrada.grande .taco-fecha b { font-size: 2.8rem; }
.entrada.grande .entrada-titulo { font-size: clamp(1.6rem, 1.2rem + 2vw, 2.4rem); }
.detalle-actividad summary { font-size: var(--t-s); color: var(--acento-texto); }
.detalle-actividad p { font-size: var(--t-s); white-space: pre-line; margin: 4px 0; }
.descripcion-actividad { white-space: pre-line; color: var(--texto-2); }
@media (max-width: 560px) {
  .entrada, .entrada.grande { grid-template-columns: 62px minmax(0, 1fr); }
  .entrada-talon { grid-column: 1 / -1; flex-direction: row; justify-content: space-between; border-left: 0; border-top: 2px dashed var(--linea-fuerte); padding: 10px 14px; white-space: normal; }
  .entrada-talon::before, .entrada-talon::after { display: none; }
  .taco-fecha b { font-size: 1.7rem; }
}

/* ── Tablón ─────────────────────────────────────────────────────────────────────────────────────────────── */
.tablon { display: grid; gap: var(--e-4); grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); align-items: start; }
.columnas .tablon, aside .tablon, .tablon.publico { grid-template-columns: minmax(0, 1fr); }
.nota {
  position: relative; padding: 18px 18px 14px; border-radius: 4px 4px 10px 4px; background: var(--superficie);
  border: 1px solid var(--linea); box-shadow: var(--sombra-1);
}
.nota:nth-child(3n + 1) { rotate: -0.4deg; }
.nota:nth-child(3n + 2) { rotate: 0.35deg; }
.nota.fijada { background: color-mix(in oklab, var(--oro) 12%, var(--superficie)); border-color: color-mix(in oklab, var(--oro) 40%, var(--linea)); }
.nota h3 { font-size: 1.2rem; margin: 6px 0 4px; }
.nota-texto { white-space: pre-line; margin: 0 0 8px; font-size: 0.98rem; color: var(--texto-2); }
.nota-meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.nota-acciones { margin-top: 6px; }
.chincheta { position: absolute; top: -7px; left: 50%; translate: -50% 0; width: 16px; height: 16px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #ff8a7a, #b3241a 60%, #6e140e); box-shadow: 0 3px 4px rgb(0 0 0 / 0.3); }

/* ── Portada ────────────────────────────────────────────────────────────────────────────────────────────── */
.portada { margin-top: calc(clamp(20px, 3vw, 40px) * -1); }
.hero { position: relative; background: radial-gradient(90% 70% at 85% 30%, color-mix(in oklab, var(--oro) 14%, transparent), transparent 70%), var(--fondo); overflow: hidden; }
.hero-dentro { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: clamp(24px, 5vw, 72px); align-items: center; padding-block: clamp(48px, 7vw, 96px) clamp(40px, 6vw, 80px); }
.hero h1 { font-size: clamp(2.6rem, 1.6rem + 4.4vw, 4.9rem); text-wrap: balance; }
.hero .entradilla { font-size: clamp(1.08rem, 1rem + 0.4vw, 1.3rem); max-width: 46ch; }
.hero .fila { margin-block: var(--e-5) var(--e-3); }
.hero-pieza { position: relative; display: grid; gap: 4px; justify-items: center; }
.hero-banderin { width: min(100%, 360px); justify-self: start; margin-bottom: -18px; z-index: 1; rotate: -4deg; }
.hero-pieza .carnet-escena { rotate: 2deg; }
.hero-pista { color: var(--texto-3); margin-top: 18px; display: inline-flex; gap: 4px; align-items: center; }
.guirnalda { position: absolute; inset: 0 0 auto; height: 46px; display: flex; justify-content: space-between; padding-inline: 2vw; pointer-events: none; }
.guirnalda::before { content: ''; position: absolute; left: 0; right: 0; top: 6px; height: 30px; border-top: 1.5px solid color-mix(in oklab, var(--texto-3) 60%, transparent); border-radius: 50%; }
.guirnalda span { position: relative; top: calc(8px + 10px * sin(calc(var(--k) / 17 * 3.1416))); width: 24px; height: 30px; transform-origin: top center; animation: banderita 4.5s ease-in-out infinite; animation-delay: calc(var(--k) * -0.37s); clip-path: polygon(0 0, 100% 0, 50% 100%); background: var(--granate); }
.guirnalda span:nth-child(3n + 2) { background: var(--oro); }
.guirnalda span:nth-child(3n + 3) { background: #2f6b4f; }
@keyframes banderita { 0%, 100% { rotate: -5deg; } 50% { rotate: 5deg; } }
@media (max-width: 900px) {
  .hero-dentro { grid-template-columns: minmax(0, 1fr); }
  .hero-pieza { max-width: 460px; margin-inline: auto; width: 100%; }
  .guirnalda span:nth-child(n + 11) { display: none; }
}
.muestra-portada { padding-block: clamp(40px, 6vw, 80px); background: linear-gradient(180deg, color-mix(in oklab, var(--ent1, var(--oro)) 9%, var(--fondo)), var(--fondo)); }
.muestra-cabeza { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: var(--e-4); margin-bottom: var(--e-6); }
.muestra-cabeza h2 { margin: 0; }
.muestra-rejilla { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); align-items: start; }
.muestra-socio, .muestra-junta { display: grid; gap: var(--e-4); }
.muestra-socio h3, .muestra-junta h3 { margin: 0; }
.muestra-socio > p { margin: -10px 0 0; }
.resultado-puerta { min-height: 110px; }
.mini-panel { display: grid; gap: var(--e-3); }
.recibos-demo { background: transparent; }
@media (max-width: 860px) { .muestra-rejilla { grid-template-columns: minmax(0, 1fr); } }
.programa { padding-block: clamp(48px, 7vw, 96px); }
.programa-cabeza { margin-bottom: var(--e-6); }
.programa-lista { list-style: none; margin: 0; padding: 0; counter-reset: programa; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-6) clamp(24px, 5vw, 64px); }
.programa-lista li { counter-increment: programa; position: relative; padding-left: 64px; }
.programa-lista li::before { content: counter(programa, decimal-leading-zero); position: absolute; left: 0; top: -4px; font-family: var(--f-rotulo); font-size: 2.3rem; color: var(--acento); line-height: 1; }
.programa-lista h3 { margin-bottom: 6px; font-size: 1.4rem; }
.programa-lista p { color: var(--texto-2); margin: 0; }
@media (max-width: 760px) { .programa-lista { grid-template-columns: minmax(0, 1fr); } }
.cierre-portada { padding-bottom: clamp(48px, 7vw, 96px); }
.cierre-tarjeta { display: grid; grid-template-columns: minmax(0, 1.4fr) auto; gap: var(--e-5); align-items: center; border-top: 6px solid var(--acento); }
.cierre-tarjeta p { color: var(--texto-2); max-width: 60ch; }
@media (max-width: 760px) { .cierre-tarjeta { grid-template-columns: minmax(0, 1fr); } }

/* ── Páginas de la entidad ──────────────────────────────────────────────────────────────────────────────── */
.pagina-entidad { margin-top: calc(clamp(20px, 3vw, 40px) * -1); }
.cabecera-entidad { background: radial-gradient(90% 80% at 0% 0%, color-mix(in oklab, var(--ent1, var(--granate)) 14%, transparent), transparent 70%), color-mix(in oklab, var(--ent2, var(--oro)) 6%, var(--fondo)); margin-bottom: clamp(28px, 4vw, 48px); }
.cabecera-entidad-dentro { display: grid; grid-template-columns: minmax(200px, 0.8fr) minmax(0, 1.2fr); gap: clamp(20px, 4vw, 56px); align-items: center; padding-block: clamp(28px, 5vw, 64px); }
.cabecera-entidad-banderin { max-width: 420px; }
.cabecera-entidad h1 { margin-bottom: 0.25em; }
.cabecera-entidad .entradilla { white-space: pre-line; }
@media (max-width: 760px) { .cabecera-entidad-dentro { grid-template-columns: minmax(0, 1fr); } .cabecera-entidad-banderin { max-width: 300px; } }
.entidad-columnas { margin-bottom: var(--e-7); }
.cuenta-socios { font-family: var(--f-titulos); font-size: 1.1rem; color: var(--texto-2); }
.cuenta-socios b { font-family: var(--f-rotulo); font-weight: 400; font-size: 2rem; color: var(--acento-texto); }
.ya-socio { display: flex; gap: var(--e-5); align-items: flex-start; margin-bottom: var(--e-5); }
.ya-socio h2 { font-size: 1.4rem; margin-bottom: 4px; }
.ya-socio p { margin: 0; }
.ya-socio-icono { color: var(--acento-texto); }
.hecho-con { margin-top: var(--e-4); }
.alta-cuerpo { padding-bottom: var(--e-7); }
.form-alta fieldset { border-top: 1px solid var(--linea); padding-top: var(--e-4); }
.form-alta fieldset:first-child { border-top: 0; padding-top: 0; }
.form-alta legend { padding: 0; }
.otro-miembro { border: 1px dashed var(--linea-fuerte) !important; border-radius: var(--radio-l); padding: var(--e-4) !important; display: grid; gap: var(--e-3); }
.otro-miembro legend { font-weight: 650; font-size: var(--t-s); padding-inline: 6px !important; }
.texto-mandato { font-size: var(--t-xs); color: var(--texto-3); background: var(--superficie-2); padding: 10px 12px; border-radius: var(--radio); margin: 0; }
.trampa { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.alta-hecha { text-align: center; display: grid; justify-items: center; gap: var(--e-3); padding: clamp(28px, 5vw, 56px); margin-block: var(--e-5); }
.alta-hecha .sello { margin-bottom: var(--e-3); }
.volver { display: inline-flex; align-items: center; gap: 6px; margin-bottom: var(--e-4); color: var(--texto-2); text-decoration: none; font-weight: 600; }
.volver svg { width: 18px; height: 18px; }
.mi-inscripcion { text-align: left; }

/* La puerta */
.puerta { max-width: 560px; margin-inline: auto; display: grid; gap: var(--e-4); }
.puerta-cabeza { display: flex; gap: 12px; align-items: center; }
.puerta-cabeza > div { display: flex; flex-direction: column; }
.puerta-cabeza strong { font-family: var(--f-titulos); font-size: 1.3rem; line-height: 1.1; }
.taquilla {
  position: relative; display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: var(--e-4); align-items: center; padding: var(--e-5);
  background: var(--superficie); border: 1px solid var(--linea); border-radius: var(--radio-l); box-shadow: var(--sombra-2); border-top: 8px solid var(--ok);
}
.puerta.atencion .taquilla { border-top-color: var(--atencion); }
.puerta.error .taquilla { border-top-color: var(--error); }
.taquilla-foto { width: 110px; aspect-ratio: 3 / 4; border-radius: 8px; overflow: hidden; background: var(--superficie-2); display: grid; place-items: center; font-family: var(--f-rotulo); font-size: 2.6rem; color: var(--texto-3); }
.taquilla-foto img { width: 100%; height: 100%; object-fit: cover; }
.taquilla-datos { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.taquilla-num small { font-family: var(--f-titulos); font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; font-size: 0.8rem; color: var(--texto-3); margin-right: 6px; }
.taquilla-num b { font-family: var(--f-rotulo); font-weight: 400; font-size: 2.4rem; line-height: 1; }
.taquilla-nombre { font-family: var(--f-titulos); font-size: 1.6rem; line-height: 1.1; }
.taquilla .estampa-grande { grid-column: 1 / -1; margin: 6px auto 0; }
.puerta-hora { text-align: center; }
.no-vale { text-align: center; padding-top: var(--e-6); }

/* El carnet del socio */
.pagina-carnet { display: grid; gap: var(--e-5); padding-bottom: var(--e-6); }
.carnet-cabeza a { display: inline-flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; font-family: var(--f-titulos); font-size: 1.2rem; }
.carnet-zona { display: grid; gap: 10px; padding-block: var(--e-2) var(--e-5); }
.zona-carnet { padding-top: var(--e-2); }
.asamblea-aviso { border-left: 5px solid var(--acento); }
.asamblea-aviso h3 { margin-bottom: 2px; }
.orden-dia { padding-left: 1.3em; margin: 8px 0 0; }
.orden-dia li { margin-bottom: 4px; }
.carnets-mios { --min: 280px; }
.carnet-enlace { display: grid; gap: 8px; color: inherit; text-decoration: none; }

/* ── Panel ──────────────────────────────────────────────────────────────────────────────────────────────── */
.modo-panel .barra > .contenedor { max-width: none; }
.modo-panel .barra .navegacion { display: none; }
.vista-panel { max-width: 1240px; }
.lateral-entidad { display: flex !important; gap: 10px; align-items: center; padding: 10px !important; margin-bottom: 10px; border-radius: var(--radio) !important; background: color-mix(in oklab, var(--ent1, var(--granate)) 9%, var(--superficie)); border: 1px solid var(--linea); }
.lateral-entidad > span { display: flex; flex-direction: column; min-width: 0; }
.lateral-entidad strong { color: var(--texto); font-family: var(--f-titulos); font-size: 1.05rem; line-height: 1.1; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.lateral-entidad small { color: var(--texto-3); font-size: var(--t-xs); }
.lateral a .contador { margin-left: auto; background: var(--acento); color: var(--sobre-acento); }
.pestanas a { position: relative; }
.punto-aviso { position: absolute; top: 9px; margin-left: 16px; width: 8px; height: 8px; border-radius: 50%; background: var(--error); }
.solapas button .punto-aviso, .solapas a .punto-aviso { position: static; display: inline-block; margin: 0 0 6px 4px; vertical-align: middle; }
.tareas { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.tareas li { display: flex; gap: 12px; align-items: center; padding: 12px 14px; border-radius: var(--radio-l); background: var(--superficie); border: 1px solid var(--linea); border-left: 4px solid var(--acento); }
.tareas li > svg { color: var(--acento-texto); }
.cifras { --min: 190px; }
a.cifra { color: inherit; text-decoration: none; }
.cifra .valor { font-family: var(--f-titulos); font-weight: 700; font-size: clamp(1.7rem, 1.3rem + 1.4vw, 2.4rem); letter-spacing: 0; }
.cifra .cambio { font-family: var(--f-texto); color: var(--texto-3); font-weight: 500; }
.cifra.saldo { background: color-mix(in oklab, var(--acento) 7%, var(--superficie)); }
.entrada-mini { display: grid; gap: 4px; }
.entrada-mini strong { font-family: var(--f-titulos); font-size: 1.3rem; line-height: 1.1; }
.entrada-mini.vacia { border-style: dashed; background: transparent; box-shadow: none; }
.barras-categoria { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.barras-categoria li { display: grid; grid-template-columns: minmax(80px, 150px) minmax(0, 1fr) auto; gap: 10px; align-items: center; font-size: var(--t-s); }
.barra-cat { height: 10px; border-radius: 99px; background: var(--hundido); overflow: hidden; }
.barra-cat > span { display: block; height: 100%; border-radius: inherit; background: var(--acento); }
.barra-cat.ingreso > span { background: var(--ok); }
.barra-cat.gasto > span { background: var(--error); }
.enlaces-entidad { display: grid; gap: 2px; }
.enlaces-entidad a { display: flex; gap: 10px; align-items: center; padding: 8px 6px; border-radius: var(--radio-s); color: var(--texto); text-decoration: none; font-weight: 550; }
.enlaces-entidad a:hover { background: var(--superficie-2); }
.enlaces-entidad svg { color: var(--acento-texto); }
.registro li { padding-bottom: var(--e-3); font-size: var(--t-s); }
.compartir-alta .copiable code { font-size: var(--t-xs); }
.filtros { display: flex; flex-wrap: wrap; gap: var(--e-3); align-items: center; margin-bottom: var(--e-4); }
.filtros .buscador { min-width: min(100%, 240px); }
.filtros .buscador input { height: 42px; border-radius: var(--radio); }
.filtros > select { width: auto; max-width: 100%; }
.segmentado .num { font-size: 0.78rem; }
.segmentado.mini { padding: 2px; }
.segmentado.mini button { padding: 3px 9px; font-size: var(--t-xs); }
.socio-celda { display: inline-flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; font-weight: 600; }
.socio-celda:hover span:not(.avatar) { text-decoration: underline; }
.familia-marca { color: var(--texto-3); display: inline-flex; margin-left: 4px; vertical-align: middle; }
.tabla-socios td:first-child { color: var(--texto-3); }
.tabla tr.automatico td { color: var(--texto-2); background: color-mix(in oklab, var(--ok-suave) 40%, transparent); }
.tabla tr.tachada td { opacity: 0.55; }
.tabla tr.tachada td strong { text-decoration: line-through; }
.solicitud { display: grid; gap: var(--e-3); border-left: 5px solid var(--info); }
.datos-socio { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 8px 18px; margin: 0; font-size: 0.98rem; }
.datos-socio dt { color: var(--texto-3); font-weight: 600; font-size: var(--t-s); padding-top: 2px; }
.datos-socio dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.datos-socio .notas { white-space: pre-line; }
@media (max-width: 420px) { .datos-socio { grid-template-columns: minmax(0, 1fr); gap: 2px; } .datos-socio dd { margin-bottom: 8px; } }
.ficha aside .carnet-escena { width: 100%; }
.elegir-socio { max-height: 340px; overflow-y: auto; }
.elegir-socio .elemento { display: flex; gap: 10px; align-items: center; }
.lista-edades li { flex-wrap: wrap; }
.lista-edades select { margin-left: auto; }
.zona-peligro { border-color: color-mix(in oklab, var(--error) 35%, var(--linea)); }
.pasos-texto { padding-left: 1.3em; margin: 0; display: grid; gap: 8px; font-size: var(--t-s); }
.permisos { margin: 0; display: grid; gap: 4px; font-size: var(--t-s); }
.permisos dt { font-weight: 700; margin-top: 8px; }
.permisos dd { margin: 0; color: var(--texto-2); }
.invitacion { display: grid; gap: var(--e-4); justify-items: start; padding-block: var(--e-6); }
.invitacion .banderin { max-width: 340px; }
.bienvenida-junta { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); gap: var(--e-6); align-items: center; padding-block: var(--e-6); }
@media (max-width: 760px) { .bienvenida-junta { grid-template-columns: minmax(0, 1fr); } }
.entidades { --min: 280px; }
.tarjeta-entidad { position: relative; overflow: hidden; padding-top: 26px !important; display: grid; gap: 6px; }
.franja-entidad { position: absolute; inset: 0 0 auto; height: 10px; background: repeating-linear-gradient(90deg, var(--c1) 0 20px, var(--c2) 20px 40px); }
.tarjeta-entidad strong { font-family: var(--f-titulos); font-size: 1.25rem; display: block; }
.barra-seleccion {
  position: sticky; bottom: 12px; z-index: 30; margin-top: var(--e-4); display: flex; flex-wrap: wrap; gap: 10px; align-items: center;
  padding: 10px 14px; border-radius: var(--radio-l); background: var(--texto); color: var(--fondo); box-shadow: var(--sombra-3);
}
.barra-seleccion .boton.fantasma { --b-texto: var(--fondo); --b-hover: color-mix(in oklab, var(--fondo) 15%, transparent); }
.con-pestanas .barra-seleccion { bottom: calc(var(--pestanas-alto) + 12px + env(safe-area-inset-bottom)); }
.resumen-emision p { margin-bottom: 8px; }
.muestra-emision, .lista-remesa { max-height: 300px; overflow-y: auto; }
.muestra-emision .principal-fila span { white-space: normal; }
.resumen-remesa { font-size: var(--t-m); margin: 0; }
.deudores li { flex-wrap: wrap; }
.deudores .derecha { display: flex; flex-direction: column; align-items: flex-end; min-width: 90px; }
.grafico-cuentas .barra-g.ingreso { fill: var(--ok); }
.grafico-cuentas .barra-g.gasto { fill: var(--error); }
.leyenda { display: inline-flex; gap: 6px; align-items: center; font-size: var(--t-xs); color: var(--texto-3); }
.leyenda i { width: 10px; height: 10px; border-radius: 2px; display: inline-block; background: var(--ok); }
.leyenda i.gasto { background: var(--error); margin-left: 8px; }
.guardado { min-width: 6em; text-align: right; }

/* Asistente */
.asistente { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 440px); gap: clamp(24px, 5vw, 64px); align-items: start; padding-block: var(--e-4) var(--e-7); }
.asistente-form h2 { font-size: 1.8rem; }
.asistente-muestra { position: sticky; top: calc(var(--barra-alto) + 24px); display: grid; gap: var(--e-5); padding: var(--e-5); border-radius: var(--radio-xl); background: color-mix(in oklab, var(--ent1, var(--oro)) 8%, var(--superficie-2)); border: 1px solid var(--linea); }
.asistente-muestra .banderin { max-width: 320px; }
@media (max-width: 900px) { .asistente { grid-template-columns: minmax(0, 1fr); } .asistente-muestra { position: static; order: -1; } }
.elegir-tipo { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr)); gap: 8px; }
.opcion-tipo { position: relative; display: flex; align-items: center; gap: 10px; padding: 12px; border-radius: var(--radio); border: 1.5px solid var(--linea-fuerte); background: var(--superficie); cursor: pointer; font-weight: 600; font-size: var(--t-s); min-height: 48px; }
.opcion-tipo input { position: absolute; opacity: 0; pointer-events: none; }
.opcion-tipo svg { color: var(--texto-3); }
.opcion-tipo:has(input:checked) { border-color: var(--acento); background: var(--acento-suave); color: var(--acento-texto); }
.opcion-tipo:has(input:checked) svg { color: var(--acento-texto); }
.opcion-tipo:has(input:focus-visible) { box-shadow: var(--foco); }
.muestrario { display: flex; flex-wrap: wrap; gap: 10px; }
.color-par { width: 44px; height: 44px; border-radius: 50%; border: 2px solid var(--linea-fuerte); padding: 3px; background: var(--superficie); cursor: pointer; }
.color-par span { display: block; width: 100%; height: 100%; border-radius: 50%; background: linear-gradient(135deg, var(--a) 50%, var(--b) 50%); box-shadow: inset 0 0 0 1px rgb(0 0 0 / 0.12); }
.color-par:hover { border-color: var(--texto-2); }
.ayuda-color { margin: 0; font-size: var(--t-s); color: var(--atencion); min-height: 1.2em; }
.campo input[type='color'] { width: 100%; height: 44px; padding: 3px; border: 1px solid var(--linea-fuerte); border-radius: var(--radio); background: var(--superficie); }
.editor-categorias { display: grid; gap: 8px; }
.fila-categoria { display: grid; grid-template-columns: minmax(0, 1.3fr) 100px minmax(0, 1fr) auto auto; gap: 8px; align-items: center; }
.fila-categoria input[type='text'], .fila-categoria select { min-height: 40px; padding: 7px 10px; border: 1px solid var(--linea-fuerte); border-radius: var(--radio); background: var(--superficie); width: 100%; font-size: max(16px, var(--t-s)); }
.con-euro { position: relative; }
.con-euro span { position: absolute; right: 10px; top: 50%; translate: 0 -50%; color: var(--texto-3); pointer-events: none; }
.con-euro input { padding-right: 24px !important; text-align: right; }
@media (max-width: 560px) { .fila-categoria { grid-template-columns: minmax(0, 1fr) 96px; } .fila-categoria select { grid-column: 1; } }

/* Importar */
.zona-soltar { display: grid; justify-items: center; gap: 10px; padding: clamp(28px, 5vw, 48px); border: 2px dashed var(--linea-fuerte); border-radius: var(--radio-l); text-align: center; color: var(--texto-2); transition: background var(--rapido), border-color var(--rapido); }
.zona-soltar.encima { background: var(--acento-suave); border-color: var(--acento); }
.zona-soltar p { margin: 0; }
.importar-tabla th { vertical-align: top; text-transform: none; letter-spacing: 0; }
.importar-tabla td { white-space: nowrap; max-width: 200px; overflow: hidden; text-overflow: ellipsis; }

/* Asambleas */
.quorum { display: grid; gap: 6px; margin-bottom: var(--e-3); }
.quorum p { margin: 0; }
.lista-asistencia { max-height: 460px; overflow-y: auto; margin-top: var(--e-3); }
.asis { display: flex !important; gap: 10px; align-items: center; }
.asis .marca-asis { width: 24px; height: 24px; border-radius: 6px; border: 1.5px solid var(--linea-fuerte); display: grid; place-items: center; color: transparent; }
.asis .marca-asis svg { width: 16px; height: 16px; }
.asis[aria-pressed='true'] { background: var(--ok-suave) !important; }
.asis[aria-pressed='true'] .marca-asis { background: var(--ok); border-color: var(--ok); color: #fff; }
.puntos { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e-5); }
.punto { display: grid; gap: var(--e-3); padding-bottom: var(--e-5); border-bottom: 1px dashed var(--linea-fuerte); }
.punto-cabeza { gap: 10px; }
.punto-num { flex-shrink: 0; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: var(--acento); color: var(--sobre-acento); font-family: var(--f-rotulo); }
.punto-titulo { font-weight: 650; flex: 1; }
.punto textarea.entrada { min-height: 70px; }
.votacion { display: grid; gap: 8px; padding: 12px; border-radius: var(--radio); background: var(--superficie-2); }
.votos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.votos label { display: grid; gap: 4px; font-size: var(--t-xs); font-weight: 650; color: var(--texto-2); }
.resultado { font-weight: 700; font-family: var(--f-titulos); font-size: 1.1rem; }
.punto-nuevo { list-style: none; }

/* ── Hojas para imprimir (libro, recibo, acta, orden SEPA, cartel) ──────────────────────────────────────── */
.barra-impresion { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: var(--e-5); padding: 10px; border-radius: var(--radio-l); background: var(--superficie-2); }
/* Los papeles son papel también en modo oscuro: dentro, los colores de siempre */
.hoja, .recibo {
  color-scheme: light;
  --texto: #1f1b16; --texto-2: #544b3e; --texto-3: #756b5a; --linea: #e1d8c4; --linea-fuerte: #c9bda2;
  --superficie: #fffcf5; --superficie-2: #efe8d9; --hundido: #e6dfcd;
  --acento: var(--ent-c, #8a1c2b); --acento-texto: var(--ent-c, #8a1c2b); --sobre-acento: var(--ent-c-sobre, #fff);
}
.hoja { background: #fffdf8; color: #1f1b16; border-radius: 6px; box-shadow: var(--sombra-2); padding: clamp(20px, 5vw, 56px); max-width: 860px; margin-inline: auto; }
.hoja h1 { font-size: clamp(1.5rem, 1.2rem + 1.4vw, 2.2rem); margin: 0; }
.hoja h2 { font-size: 1.3rem; margin-top: 1.2em; }
.hoja .suave, .hoja .tenue { color: #5a4f3e; }
.hoja-cabeza { display: flex; gap: 16px; align-items: center; }
.hoja-cabeza p { margin: 0; }
.libro-tabla { width: 100%; font-size: 0.86rem; }
.libro-tabla th { position: static; color: #5a4f3e; background: transparent; border-bottom: 2px solid #1f1b16; }
.libro-tabla td { padding: 6px 8px; border-bottom: 1px solid #ddd3bf; }
.hoja-carnets { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 18px; }
.par-carnet { break-inside: avoid; }
.orden-sepa { font-size: 0.95rem; }
.orden-linea { display: grid; grid-template-columns: minmax(150px, 0.8fr) minmax(0, 1.2fr); gap: 12px; align-items: end; padding: 10px 0 4px; border-bottom: 1px solid #b9ad94; }
.orden-etq { font-size: 0.8rem; font-weight: 650; text-transform: uppercase; letter-spacing: 0.04em; color: #5a4f3e; }
.orden-valor { font-family: var(--f-datos); min-height: 1.4em; }
.orden-legal { font-size: 0.82rem; line-height: 1.45; background: #f3ecdc; padding: 12px 14px; border-radius: 6px; margin: 16px 0; }
.orden-firmas { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 18px 0; }
.orden-firmas .orden-linea { grid-template-columns: 1fr; min-height: 90px; }
.cajas { display: flex; flex-wrap: wrap; gap: 2px; }
.cajas span { width: 1.25em; height: 1.6em; border: 1px solid #8a7c63; display: grid; place-items: center; font-family: var(--f-datos); font-size: 0.9rem; }
.cajas span:nth-child(4n) { margin-right: 6px; }
.cartel { text-align: center; display: grid; justify-items: center; gap: 10px; }
.cartel .banderin { max-width: 380px; }
.cartel h1 { font-size: clamp(2.6rem, 2rem + 4vw, 4.6rem); margin-top: 12px; }
.cartel-entidad { font-family: var(--f-rotulo); font-size: 1.5rem; margin: 0; }
.cartel .bufanda { width: 100%; }
.cartel-qr .qr { border-width: 2px; }
.cartel-instrucciones { font-size: 1.15rem; max-width: 34ch; }
.cartel-cuotas { list-style: none; padding: 0; margin: 0; display: grid; gap: 4px; min-width: min(100%, 320px); }
.cartel-cuotas li { display: flex; justify-content: space-between; gap: 18px; border-bottom: 1px dotted #b9ad94; padding: 4px 0; }
.cartel-url { font-family: var(--f-datos); color: #5a4f3e; }
.acta { line-height: 1.6; }
.acta-puntos { padding-left: 1.2em; }
.acta-puntos h3 { font-size: 1.12rem; margin: 1em 0 0.3em; }
.prosa-acta { white-space: pre-line; }
.firmas { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; margin-top: 56px; }
.firmas > div { display: grid; gap: 4px; }
.firma-linea { display: block; border-top: 1px solid #1f1b16; padding-top: 6px; font-size: 0.9rem; margin-top: 46px; }
.firma-convocatoria { margin-top: 24px; }
.lista-anexo { columns: 2; font-size: 0.86rem; }

/* Recibo (talonario) */
.hoja-recibo { max-width: 760px; margin-inline: auto; }
.recibo { position: relative; background: #fffaf0; color: #1f1b16; border: 1px solid #d9cdb3; border-radius: 6px; padding: clamp(18px, 4vw, 34px); box-shadow: var(--sombra-2); }
.recibo::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 12px; background: radial-gradient(circle at 0 50%, transparent 5px, #fffaf0 5.5px) 0 0 / 12px 16px repeat-y; border-right: 2px dashed #d9cdb3; }
.recibo-cabeza { display: flex; gap: 14px; align-items: center; padding-left: 10px; }
.recibo-cabeza > div { display: flex; flex-direction: column; }
.recibo-entidad { font-family: var(--f-titulos); font-size: 1.35rem; line-height: 1.1; }
.recibo-numero { display: flex; flex-direction: column; align-items: flex-end; line-height: 1; }
.recibo-numero small { font-family: var(--f-titulos); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; font-size: 0.75rem; color: #5a4f3e; }
.recibo-numero b { font-family: var(--f-rotulo); font-weight: 400; font-size: 1.8rem; }
.recibo-cuerpo { padding-left: 10px; font-size: 1.05rem; }
.recibo-cuerpo p { margin: 0 0 4px; }
.recibo-cuerpo strong { border-bottom: 1px dotted #8a7c63; }
.recibo-desglose { font-size: 0.86rem; color: #5a4f3e; margin: 10px 0 0; padding-left: 1.2em; }
.recibo-pie { display: grid; grid-template-columns: auto auto minmax(0, 1fr); gap: 24px; align-items: center; margin-top: 22px; padding-left: 10px; }
.recibo-importe { display: flex; flex-direction: column; border: 2px solid #1f1b16; padding: 6px 14px; border-radius: 4px; }
.recibo-importe small { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.12em; font-weight: 700; color: #5a4f3e; }
.recibo-importe b { font-family: var(--f-datos); font-size: 1.5rem; }
.recibo .estampa { --s: #1d6f43; }
.recibo .estampa.atencion { --s: #8f5300; }
.recibo .estampa.info { --s: #22599a; }
.recibo-firma { display: flex; flex-direction: column; align-items: flex-end; text-align: right; font-size: 0.9rem; }
.recibo-firma .firma-linea { margin-top: 34px; min-width: 160px; text-align: center; }
@media (max-width: 600px) { .recibo-pie { grid-template-columns: 1fr 1fr; } .recibo-firma { grid-column: 1 / -1; align-items: stretch; } }

.privacidad { padding-bottom: var(--e-7); }
.privacidad h2 { margin-top: 1.4em; }

/* ── Móvil ──────────────────────────────────────────────────────────────────────────────────────────────── */
@media (max-width: 600px) {
  .cabecera .acciones { width: 100%; }
  .cabecera .acciones .boton.primario { flex: 1; }
  .filtros .segmentado { width: 100%; }
  .votos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .firmas, .orden-firmas { grid-template-columns: 1fr; }
  .taquilla { grid-template-columns: 84px minmax(0, 1fr); padding: var(--e-4); }
  .taquilla-foto { width: 84px; }
  .ya-socio { flex-direction: column; gap: var(--e-3); }
  .marca span { display: none; }
}

/* ── Movimiento reducido ────────────────────────────────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .banderin.ondea .banderin-tela, .guirnalda span, .carnet-brillo { animation: none !important; }
  .carnet { transform: none !important; }
}

/* ── Impresión ──────────────────────────────────────────────────────────────────────────────────────────── */
@media print {
  @page { margin: 12mm; }
  .barra-impresion, .no-imprimir, .carnet-sensor, .barra-seleccion, .solapas, .filtros, .cabecera .acciones, .migas { display: none !important; }
  .solo-impresion { display: flex !important; gap: 12px; align-items: center; margin-bottom: 12px; }
  .impreso-cabeza > div { display: flex; flex-direction: column; }
  .hoja, .recibo { box-shadow: none; border: 0; padding: 0; max-width: none; background: #fff; }
  .recibo { border: 1px solid #999; padding: 8mm; }
  .recibo::before { display: none; }
  .principal { padding: 0 !important; }
  .cabecera-entidad, .muestra-portada { background: none !important; }
  .banderin { filter: none; }
  .banderin.ondea .banderin-tela, .carnet-brillo { animation: none !important; }
  .carnet-brillo { display: none; }
  .carnet-escena { width: auto !important; perspective: none; rotate: 0deg !important; }
  .carnet { width: auto; aspect-ratio: auto; transform: none !important; cursor: default; }
  .carnet-giro { transform: none !important; display: flex; gap: 6mm; width: auto; height: auto; }
  .cara { position: relative; width: 85.6mm; height: 54mm; transform: none !important; backface-visibility: visible; -webkit-backface-visibility: visible; box-shadow: none; border: 0.25mm solid #b9ad94; border-radius: 3mm; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .carnet-bufanda, .carnet-cat, .carnet-estado, .bufanda, .taco-mes, .franja-entidad { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .hoja-carnets { display: block; }
  .par-carnet { margin-bottom: 5mm; }
  .tabla-caja { border: 0; overflow: visible; }
  .tabla th { position: static; }
  .tablon, .entradas { display: block; }
  .nota, .entrada { break-inside: avoid; margin-bottom: 4mm; rotate: 0deg !important; }
  .cartel { min-height: 260mm; align-content: center; }
  .pagina-carnet .carnet-zona { justify-items: start; }
  a[href]::after { content: none; }
}
