/* =====================================================================
   Miss Primavera 2026 — I.E.I.P.S. "Manuel Enrique Rojas Vela"
   Identidad: la banda de reina sobre el verde del escudo institucional.
   ===================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Bodoni+Moda:ital,opsz,wght@0,6..96,400..900;1,6..96,400..700&family=Outfit:wght@300;400;500;600;700&family=Roboto+Mono:wght@400;500;700&display=swap');

:root{
  /* Colores tomados del escudo institucional + primavera amazónica */
  --selva:      #0B4F2C;
  --selva-alta: #0F6B3B;
  --hoja:       #22A05C;
  --oro:        #F2C037;
  --oro-hondo:  #C99114;
  --orquidea:   #C2185B;
  --orquidea-cl:#F4C6D8;
  --bandera:    #D6001C;
  --tinta:      #10241A;
  --tinta-suave:#4A5C51;
  --papel:      #F5FAF4;
  --papel-alto: #FFFFFF;
  --linea:      #D8E6DA;

  --radio:   14px;
  --radio-s: 9px;
  --sombra:  0 1px 2px rgba(16,36,26,.06), 0 8px 24px -12px rgba(16,36,26,.25);
  --sombra-alta: 0 18px 48px -18px rgba(11,79,44,.45);

  --display: 'Bodoni Moda', 'Playfair Display', Georgia, serif;
  --texto:   'Outfit', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --dato:    'Roboto Mono', ui-monospace, 'Courier New', monospace;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; background:var(--papel); color:var(--tinta);
  font-family:var(--texto); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:var(--selva-alta); text-decoration:none; }
a:hover{ text-decoration:underline; }
:focus-visible{ outline:3px solid var(--oro); outline-offset:2px; border-radius:4px; }

h1,h2,h3{ font-family:var(--display); font-weight:700; line-height:1.15; margin:0 0 .5em; letter-spacing:-.01em; }
h1{ font-size:clamp(1.9rem,5vw,3rem); }
h2{ font-size:clamp(1.4rem,3.4vw,2rem); }
h3{ font-size:clamp(1.1rem,2.4vw,1.35rem); }
p{ margin:0 0 1rem; }

.env{ width:min(1180px,100% - 2rem); margin-inline:auto; }
.env-angosto{ width:min(760px,100% - 2rem); margin-inline:auto; }
.centro{ text-align:center; }
.oculto{ display:none !important; }
.solo-lector{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }

/* ── Barra superior ────────────────────────────────────────────── */
.barra{
  background:var(--selva); color:#fff; position:sticky; top:0; z-index:50;
  border-bottom:3px solid var(--oro);
}
.barra-in{ display:flex; align-items:center; gap:1rem; padding:.6rem 0; }
.marca{ display:flex; align-items:center; gap:.7rem; color:#fff; text-decoration:none; margin-right:auto; }
.marca:hover{ text-decoration:none; }
.marca img{ width:42px; height:42px; object-fit:contain; }
.marca b{ font-family:var(--display); font-size:1.05rem; display:block; line-height:1.1; }
.marca span{ font-size:.72rem; opacity:.8; letter-spacing:.06em; text-transform:uppercase; }
.marca b, .marca span span{ display:block; max-width:46ch; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media (max-width:600px){
  .marca img{ width:34px; height:34px; }
  .marca b{ font-size:.92rem; max-width:17ch; }
  .marca span span{ max-width:20ch; font-size:.62rem; }
}
.nav{ display:flex; gap:.25rem; align-items:center; }
.nav a{
  color:#EAF6EC; padding:.5rem .8rem; border-radius:999px; font-size:.92rem; font-weight:500;
}
.nav a:hover{ background:rgba(255,255,255,.12); text-decoration:none; }
.nav a.activo{ background:var(--oro); color:var(--tinta); }
.menu-btn{
  display:none; background:rgba(255,255,255,.12); border:0; color:#fff;
  width:42px; height:42px; border-radius:10px; font-size:1.3rem; cursor:pointer;
}
@media (max-width:840px){
  .menu-btn{ display:block; }
  .nav{
    position:absolute; top:100%; left:0; right:0; background:var(--selva);
    flex-direction:column; align-items:stretch; padding:.5rem 1rem 1rem;
    border-bottom:3px solid var(--oro); display:none;
  }
  .nav.abierto{ display:flex; }
  .nav a{ border-radius:8px; padding:.75rem .9rem; }
}

/* ── Portada ───────────────────────────────────────────────────── */
.portada{
  background:
    radial-gradient(1200px 400px at 80% -10%, rgba(34,160,92,.55), transparent 60%),
    linear-gradient(160deg, var(--selva) 0%, #06381F 100%);
  color:#fff; padding:3rem 0 3.5rem; position:relative; overflow:hidden;
}
.portada::after{
  content:''; position:absolute; inset:auto 0 0 0; height:8px;
  background:linear-gradient(90deg, var(--bandera) 0 18%, var(--oro) 18% 82%, var(--bandera) 82% 100%);
}
.portada-in{ display:grid; gap:2rem; grid-template-columns:1.25fr .75fr; align-items:center; }
@media (max-width:860px){ .portada-in{ grid-template-columns:1fr; } }
.eyebrow{
  font-family:var(--dato); font-size:.74rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--oro); margin-bottom:.9rem; display:flex; align-items:center; gap:.6rem;
}
.eyebrow::before{ content:''; width:36px; height:2px; background:var(--oro); }
.portada h1{ color:#fff; font-size:clamp(2.2rem,7vw,4rem); margin-bottom:.4rem; }
.portada h1 em{ font-style:italic; color:var(--oro); }
.portada p{ color:#D6EADB; font-size:1.05rem; max-width:46ch; }
.portada-acciones{ display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.6rem; }
.escudo-hero{ justify-self:center; width:min(230px,42vw); filter:drop-shadow(0 20px 30px rgba(0,0,0,.35)); }
@media (max-width:860px){
  .portada-in{ grid-template-columns:1fr; }
  .escudo-hero{ width:120px; justify-self:start; order:-1; margin-bottom:.5rem; }
  .portada{ padding:2rem 0 2.5rem; }
}

/* ── La banda: elemento distintivo del sistema ────────────────── */
.banda{
  display:inline-block; padding:.34rem 1.4rem; color:#fff; font-weight:600;
  font-size:.78rem; letter-spacing:.14em; text-transform:uppercase;
  background:linear-gradient(100deg,var(--orquidea),#8E1145);
  clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%);
}
.banda-oro{ background:linear-gradient(100deg,var(--oro),var(--oro-hondo)); color:#3A2A00; }
.banda-verde{ background:linear-gradient(100deg,var(--hoja),var(--selva)); }

/* ── Botones ───────────────────────────────────────────────────── */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.78rem 1.4rem; border-radius:999px; border:2px solid transparent;
  font-family:var(--texto); font-weight:600; font-size:.98rem; cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
  text-decoration:none; line-height:1;
}
.btn:hover{ text-decoration:none; transform:translateY(-1px); }
.btn:active{ transform:translateY(0); }
.btn-oro{ background:var(--oro); color:#2E2200; box-shadow:0 6px 18px -6px rgba(242,192,55,.8); }
.btn-oro:hover{ background:#FFD34E; }
.btn-verde{ background:var(--selva-alta); color:#fff; }
.btn-verde:hover{ background:var(--hoja); }
.btn-orquidea{ background:var(--orquidea); color:#fff; }
.btn-orquidea:hover{ background:#E03A78; }
.btn-linea{ background:transparent; border-color:currentColor; color:inherit; }
.btn-claro{ background:#fff; color:var(--selva); border-color:var(--linea); }
.btn-peligro{ background:#fff; color:var(--bandera); border-color:#F3C2C8; }
.btn-peligro:hover{ background:#FFF2F3; }
.btn-sm{ padding:.45rem .9rem; font-size:.85rem; }
.btn-bloque{ width:100%; }
.btn[disabled],.btn:disabled{ opacity:.5; cursor:not-allowed; transform:none; }

/* ── Tarjetas ──────────────────────────────────────────────────── */
.tarjeta{
  background:var(--papel-alto); border:1px solid var(--linea);
  border-radius:var(--radio); box-shadow:var(--sombra);
}
.tarjeta-cuerpo{ padding:1.3rem; }
.seccion{ padding:3rem 0; }
.seccion-cab{ display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-bottom:1.6rem; }
.seccion-cab h2{ margin:0; }
.seccion-cab p{ margin:.25rem 0 0; color:var(--tinta-suave); font-size:.95rem; }

/* ── Rejilla de candidatas ─────────────────────────────────────── */
.rejilla{ display:grid; gap:1.1rem; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); }
.ficha{
  background:var(--papel-alto); border:1px solid var(--linea); border-radius:var(--radio);
  overflow:hidden; box-shadow:var(--sombra); display:flex; flex-direction:column;
  transition:transform .18s ease, box-shadow .18s ease;
}
.ficha:hover{ transform:translateY(-4px); box-shadow:var(--sombra-alta); }
.ficha-foto{ position:relative; aspect-ratio:3/4; background:#E8F2E9; overflow:hidden; }
.ficha-foto img{ width:100%; height:100%; object-fit:cover; }
.ficha-num{
  position:absolute; top:.7rem; left:0; z-index:2;
  font-family:var(--dato); font-weight:700;
}
.ficha-nivel{ position:absolute; bottom:.7rem; right:.7rem; z-index:2; }
.ficha-cuerpo{ padding:.95rem 1rem 1.1rem; display:flex; flex-direction:column; gap:.55rem; flex:1; }
.ficha-nombre{ font-family:var(--display); font-size:1.12rem; font-weight:700; line-height:1.2; margin:0; }
.ficha-meta{ font-size:.82rem; color:var(--tinta-suave); margin:0; }
.ficha-votos{
  font-family:var(--dato); font-weight:700; font-size:1.3rem; color:var(--selva);
  display:flex; align-items:baseline; gap:.35rem;
}
.ficha-votos small{ font-family:var(--texto); font-size:.72rem; font-weight:500; color:var(--tinta-suave); text-transform:uppercase; letter-spacing:.1em; }
.ficha-pie{ margin-top:auto; display:flex; gap:.5rem; }

/* ── Tablero de bandas (ranking) ───────────────────────────────── */
.tablero{ display:flex; flex-direction:column; gap:.6rem; }
.fila-banda{
  display:grid; grid-template-columns:52px 1fr auto; gap:.9rem; align-items:center;
  background:var(--papel-alto); border:1px solid var(--linea); border-radius:var(--radio-s);
  padding:.7rem .9rem; position:relative; overflow:hidden;
}
.fila-banda::before{
  content:''; position:absolute; inset:0 auto 0 0; width:var(--pct,0%);
  background:linear-gradient(90deg, rgba(34,160,92,.16), rgba(242,192,55,.22));
  transition:width .7s cubic-bezier(.16,1,.3,1); z-index:0;
}
.fila-banda > *{ position:relative; z-index:1; }
.fila-puesto{
  font-family:var(--display); font-size:1.5rem; font-weight:800; color:var(--selva);
  text-align:center; line-height:1;
}
.fila-banda.podio-1 .fila-puesto{ color:var(--oro-hondo); }
.fila-banda.podio-1{ border-color:var(--oro); border-width:2px; }
.fila-banda.podio-2{ border-color:#B9C6BC; }
.fila-banda.podio-3{ border-color:#D8B18A; }
.fila-cara{ display:flex; align-items:center; gap:.75rem; min-width:0; }
.fila-cara img{ width:46px; height:46px; border-radius:50%; object-fit:cover; border:2px solid var(--oro); flex:none; }
.fila-nombre{ font-weight:600; font-size:.98rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fila-sub{ font-size:.78rem; color:var(--tinta-suave); }
.fila-votos{ font-family:var(--dato); font-weight:700; font-size:1.15rem; color:var(--selva); text-align:right; }
.fila-votos small{ display:block; font-family:var(--texto); font-size:.66rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:var(--tinta-suave); }
@media (max-width:520px){
  .fila-banda{ grid-template-columns:38px 1fr auto; gap:.6rem; padding:.6rem; }
  .fila-cara img{ width:38px; height:38px; }
  .fila-nombre{ font-size:.9rem; }
}

/* ── Pestañas de nivel ─────────────────────────────────────────── */
.pestanas{ display:inline-flex; background:#E7F1E8; border-radius:999px; padding:4px; gap:4px; margin-bottom:1.4rem; }
.pestanas button{
  border:0; background:transparent; padding:.55rem 1.2rem; border-radius:999px; cursor:pointer;
  font-family:var(--texto); font-weight:600; font-size:.92rem; color:var(--tinta-suave);
}
.pestanas button[aria-selected="true"]{ background:var(--selva); color:#fff; }

/* ── Formularios ───────────────────────────────────────────────── */
.campo{ margin-bottom:1.05rem; }
.campo label{ display:block; font-weight:600; font-size:.88rem; margin-bottom:.35rem; }
.campo .ayuda{ font-size:.79rem; color:var(--tinta-suave); margin:.3rem 0 0; }
.campo .error{ font-size:.82rem; color:var(--bandera); margin:.3rem 0 0; font-weight:500; }
input[type=text],input[type=number],input[type=email],input[type=tel],input[type=password],
input[type=date],input[type=datetime-local],input[type=search],input[type=file],select,textarea{
  width:100%; padding:.7rem .85rem; border:1.5px solid var(--linea); border-radius:var(--radio-s);
  font-family:var(--texto); font-size:1rem; background:#fff; color:var(--tinta);
}
input:focus,select:focus,textarea:focus{ border-color:var(--hoja); outline:none; box-shadow:0 0 0 3px rgba(34,160,92,.16); }
input[aria-invalid="true"]{ border-color:var(--bandera); }
textarea{ min-height:96px; resize:vertical; }
.fila-campos{ display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); }
.check{ display:flex; align-items:center; gap:.6rem; font-weight:500; cursor:pointer; }
.check input{ width:20px; height:20px; accent-color:var(--selva-alta); }
fieldset{ border:1px solid var(--linea); border-radius:var(--radio); padding:1.2rem; margin:0 0 1.4rem; }
legend{ font-family:var(--display); font-weight:700; font-size:1.05rem; padding:0 .5rem; }

/* Selector visual de candidata */
.selector{ display:grid; gap:.7rem; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); }
.selector label{
  border:2px solid var(--linea); border-radius:var(--radio-s); padding:.6rem; cursor:pointer;
  display:flex; flex-direction:column; align-items:center; gap:.45rem; text-align:center;
  background:#fff; transition:border-color .15s, box-shadow .15s;
}
.selector label:hover{ border-color:var(--hoja); }
.selector input{ position:absolute; opacity:0; width:0; height:0; }
.selector input:checked + .sel-in{ color:var(--selva); }
.selector label:has(input:checked){ border-color:var(--orquidea); box-shadow:0 0 0 3px var(--orquidea-cl); }
.sel-in{ display:block; width:100%; }
.sel-in img{ width:74px; height:74px; border-radius:50%; object-fit:cover; border:2px solid var(--oro); margin:0 auto .45rem; }
.sel-nombre{ display:block; font-weight:600; font-size:.86rem; line-height:1.25; }
.sel-meta{ display:block; font-size:.74rem; color:var(--tinta-suave); margin-top:.2rem; }

/* ── Avisos ────────────────────────────────────────────────────── */
.aviso{
  display:flex; gap:.75rem; padding:.9rem 1.05rem; border-radius:var(--radio-s);
  border-left:4px solid; margin-bottom:1.1rem; font-size:.94rem;
}
.aviso b{ display:block; }
.aviso-ok{    background:#EAF7EE; border-color:var(--hoja); color:#0D4B27; }
.aviso-error{ background:#FDECEE; border-color:var(--bandera); color:#7A0212; }
.aviso-aviso{ background:#FFF7E0; border-color:var(--oro-hondo); color:#5A420A; }
.aviso-info{  background:#EAF1FB; border-color:#3D6FBF; color:#1B3A6B; }

/* ── Etiquetas de estado ───────────────────────────────────────── */
.etq{
  display:inline-block; padding:.2rem .6rem; border-radius:999px; font-size:.74rem;
  font-weight:600; letter-spacing:.02em; white-space:nowrap;
}
.etq-pendiente{ background:#FFF3D6; color:#7A5A00; }
.etq-pagado{    background:#DFF3E6; color:#0B5E31; }
.etq-rechazado{ background:#FDE1E4; color:#8A0716; }
.etq-anulado{   background:#EDEFEE; color:#5A6660; }
.etq-primaria{  background:#E4F0FF; color:#124A87; }
.etq-secundaria{background:#F6E6F2; color:#7A1355; }

/* ── Tablas ────────────────────────────────────────────────────── */
.tabla-env{ overflow-x:auto; border:1px solid var(--linea); border-radius:var(--radio); background:#fff; }
table.datos{ width:100%; border-collapse:collapse; font-size:.9rem; min-width:620px; }
table.datos th{
  text-align:left; padding:.7rem .85rem; background:#F0F6F1; font-weight:600;
  font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; color:var(--tinta-suave);
  border-bottom:1px solid var(--linea); white-space:nowrap;
}
table.datos td{ padding:.7rem .85rem; border-bottom:1px solid #EDF3EE; vertical-align:middle; }
table.datos tr:last-child td{ border-bottom:0; }
table.datos tbody tr:hover{ background:#FAFDFA; }
.num{ font-family:var(--dato); text-align:right; white-space:nowrap; }

/* ── Panel administrativo ──────────────────────────────────────── */
.admin{ display:grid; grid-template-columns:250px 1fr; min-height:100vh; }
.lateral{
  background:var(--selva); color:#DCEEE1; padding:1.1rem .9rem; display:flex; flex-direction:column; gap:.2rem;
  position:sticky; top:0; height:100vh; overflow-y:auto;
}
.lateral .marca{ margin:0 0 1.2rem; padding:0 .35rem; }
.lateral a{
  color:#CFE6D6; padding:.6rem .8rem; border-radius:9px; font-size:.93rem; display:flex; gap:.6rem; align-items:center;
}
.lateral a:hover{ background:rgba(255,255,255,.1); text-decoration:none; }
.lateral a.activo{ background:var(--oro); color:#2E2200; font-weight:600; }
.lateral .grupo{ font-size:.7rem; text-transform:uppercase; letter-spacing:.14em; opacity:.55; margin:1rem .8rem .3rem; }
.lateral-pie{ margin-top:auto; padding-top:1rem; border-top:1px solid rgba(255,255,255,.14); font-size:.82rem; }
.admin-main{ padding:1.5rem clamp(1rem,3vw,2rem) 3rem; min-width:0; background:var(--papel); }
.admin-cab{ display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-bottom:1.4rem; }
.admin-cab h1{ font-size:clamp(1.5rem,3.5vw,2rem); margin:0; }
.lateral-btn{ display:none; }
@media (max-width:900px){
  .admin{ grid-template-columns:1fr; }
  .lateral{
    position:fixed; inset:0 auto 0 0; width:260px; z-index:80;
    transform:translateX(-100%); transition:transform .22s ease;
  }
  .lateral.abierto{ transform:none; box-shadow:var(--sombra-alta); }
  .lateral-btn{
    display:inline-flex; align-items:center; justify-content:center;
    width:44px; height:44px; border-radius:10px; border:1px solid var(--linea);
    background:#fff; font-size:1.25rem; cursor:pointer;
  }
  .velo{ position:fixed; inset:0; background:rgba(16,36,26,.5); z-index:70; }
}

/* Indicadores */
.indicadores{ display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); margin-bottom:1.6rem; }
.ind{
  background:#fff; border:1px solid var(--linea); border-radius:var(--radio); padding:1.05rem 1.15rem;
  box-shadow:var(--sombra); position:relative; overflow:hidden;
}
.ind::after{ content:''; position:absolute; top:0; right:0; width:52px; height:4px; background:var(--oro); }
.ind .et{ font-size:.74rem; text-transform:uppercase; letter-spacing:.12em; color:var(--tinta-suave); font-weight:600; }
.ind .val{ font-family:var(--dato); font-size:1.85rem; font-weight:700; color:var(--selva); line-height:1.2; margin-top:.25rem; }
.ind .nota{ font-size:.79rem; color:var(--tinta-suave); margin-top:.2rem; }
.ind.acento::after{ background:var(--orquidea); }
.ind.alerta::after{ background:var(--bandera); }

/* Gráfica de barras simple */
.grafica{ display:flex; align-items:flex-end; justify-content:flex-start; gap:5px; height:130px; padding-top:.5rem; }
.grafica div{ flex:1 1 0; max-width:42px; background:linear-gradient(180deg,var(--hoja),var(--selva)); border-radius:4px 4px 0 0; min-height:3px; position:relative; }
.grafica div span{
  position:absolute; bottom:-1.35rem; left:50%; transform:translateX(-50%);
  font-size:.62rem; color:var(--tinta-suave); font-family:var(--dato);
}

/* ── Pago ──────────────────────────────────────────────────────── */
.pago{ display:grid; gap:1.4rem; grid-template-columns:1fr 1fr; }
@media (max-width:760px){ .pago{ grid-template-columns:1fr; } }
.monto{
  font-family:var(--dato); font-size:clamp(2.2rem,8vw,3.2rem); font-weight:700;
  color:var(--selva); letter-spacing:-.02em; line-height:1;
}
.qr-marco{
  background:#fff; border:2px dashed var(--oro); border-radius:var(--radio);
  padding:1rem; display:grid; place-items:center; gap:.6rem;
}
.qr-marco img{ width:min(260px,100%); }
.codigo-pedido{
  font-family:var(--dato); font-size:1.5rem; font-weight:700; letter-spacing:.08em;
  background:var(--selva); color:var(--oro); padding:.5rem 1rem; border-radius:var(--radio-s);
  display:inline-block;
}
.pasos{ list-style:none; counter-reset:paso; padding:0; margin:0; }
.pasos li{
  counter-increment:paso; padding:.7rem 0 .7rem 3rem; position:relative;
  border-bottom:1px solid var(--linea);
}
.pasos li:last-child{ border-bottom:0; }
.pasos li::before{
  content:counter(paso); position:absolute; left:0; top:.6rem;
  width:32px; height:32px; border-radius:50%; background:var(--oro); color:#2E2200;
  display:grid; place-items:center; font-family:var(--dato); font-weight:700; font-size:.9rem;
}

/* ── Pie de página ─────────────────────────────────────────────── */
.pie{ background:var(--selva); color:#C6DECE; padding:2.2rem 0 1.6rem; margin-top:3rem; border-top:4px solid var(--oro); }
.pie-in{ display:flex; flex-wrap:wrap; gap:1.5rem; justify-content:space-between; align-items:flex-start; }
.pie a{ color:var(--oro); }
.pie small{ display:block; opacity:.75; margin-top:.4rem; }

/* ── Proyección en escenario ───────────────────────────────────── */
.proyeccion{ background:#06301B; color:#fff; min-height:100vh; padding:2rem; }
.proyeccion h1{ color:var(--oro); text-align:center; }
.proyeccion .fila-banda{ background:rgba(255,255,255,.06); border-color:rgba(242,192,55,.35); color:#fff; }
.proyeccion .fila-nombre,.proyeccion .fila-votos,.proyeccion .fila-puesto{ color:#fff; }
.proyeccion .fila-sub{ color:#A9C9B6; }

/* ── Impresión ─────────────────────────────────────────────────── */
@media print{
  .barra,.pie,.no-imprimir{ display:none !important; }
  body{ background:#fff; }
  .tarjeta{ box-shadow:none; border:1px solid #999; }
}

/* ── Accesibilidad de movimiento ───────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}
