/* Nómina y Festivos — hoja de estilos única. Sin dependencias, sin fuentes externas. */
:root{
  --tinta:#16202c; --tinta-suave:#4a5666; --linea:#dde3ea; --fondo:#ffffff; --fondo-suave:#f5f7fa;
  --acento:#1f5f8b; --acento-fondo:#e8f1f7; --fest-nacional:#1f5f8b; --fest-auto:#7a4fa3; --fest-local:#b06a1f;
  --ok:#1d7a4c; --aviso:#a8560d; --radio:10px; --ancho:min(1060px,100% - 2rem);
  --sombra:0 1px 2px rgba(16,32,44,.06),0 4px 14px rgba(16,32,44,.05);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --tinta:#e8edf3; --tinta-suave:#a9b4c2; --linea:#2a3644; --fondo:#131a22; --fondo-suave:#1a232d;
    --acento:#7ab8e0; --acento-fondo:#182c3b; --fest-nacional:#7ab8e0; --fest-auto:#c3a0e6; --fest-local:#e2a668;
    --ok:#5fc08c; --aviso:#e2a668; --sombra:0 1px 2px rgba(0,0,0,.3),0 4px 14px rgba(0,0,0,.25);
  }
}
:root[data-theme="dark"]{
  --tinta:#e8edf3; --tinta-suave:#a9b4c2; --linea:#2a3644; --fondo:#131a22; --fondo-suave:#1a232d;
  --acento:#7ab8e0; --acento-fondo:#182c3b; --fest-nacional:#7ab8e0; --fest-auto:#c3a0e6; --fest-local:#e2a668;
  --ok:#5fc08c; --aviso:#e2a668;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--fondo); color:var(--tinta);
  font:16px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
a{color:var(--acento)}
a:hover{text-decoration:none}
.contenedor{width:var(--ancho); margin-inline:auto}
header.sitio{border-bottom:1px solid var(--linea); background:var(--fondo); position:sticky; top:0; z-index:20}
header.sitio .contenedor{display:flex; align-items:center; gap:1rem; justify-content:space-between; padding:.7rem 0; flex-wrap:wrap}
.marca{font-weight:700; font-size:1.05rem; color:var(--tinta); text-decoration:none; letter-spacing:-.01em}
.marca span{color:var(--acento)}
nav.principal{display:flex; gap:1rem; flex-wrap:wrap; font-size:.92rem}
nav.principal a{color:var(--tinta-suave); text-decoration:none}
nav.principal a:hover,nav.principal a[aria-current]{color:var(--acento); text-decoration:underline}
main{padding:1.5rem 0 3rem}
.miga{font-size:.82rem; color:var(--tinta-suave); margin:0 0 1rem; display:flex; gap:.4rem; flex-wrap:wrap}
.miga a{color:var(--tinta-suave)}
h1{font-size:clamp(1.5rem,4.2vw,2.1rem); line-height:1.2; margin:.2rem 0 .6rem; letter-spacing:-.02em}
h2{font-size:1.28rem; margin:2.2rem 0 .7rem; letter-spacing:-.01em}
h3{font-size:1.06rem; margin:1.6rem 0 .5rem}
.entradilla{font-size:1.06rem; color:var(--tinta-suave); margin:0 0 1.2rem}
.destacado{background:var(--acento-fondo); border:1px solid var(--linea); border-radius:var(--radio); padding:1rem 1.1rem; margin:1.2rem 0}
.destacado p{margin:.3rem 0}
.dato-grande{font-size:1.6rem; font-weight:700; color:var(--acento); line-height:1.2}
table{width:100%; border-collapse:collapse; margin:1rem 0; font-size:.95rem; background:var(--fondo)}
caption{text-align:left; color:var(--tinta-suave); font-size:.86rem; padding-bottom:.4rem}
th,td{text-align:left; padding:.55rem .6rem; border-bottom:1px solid var(--linea); vertical-align:top}
th{background:var(--fondo-suave); font-weight:600; font-size:.86rem; text-transform:uppercase; letter-spacing:.03em; color:var(--tinta-suave)}
tbody tr:hover{background:var(--fondo-suave)}
.tabla-scroll{overflow-x:auto}
.etq{display:inline-block; font-size:.72rem; font-weight:600; padding:.12rem .45rem; border-radius:999px; border:1px solid currentColor; white-space:nowrap}
.etq.nacional{color:var(--fest-nacional)} .etq.autonomico{color:var(--fest-auto)} .etq.local{color:var(--fest-local)} .etq.sustitucion{color:var(--fest-auto)}
.finde{color:var(--aviso); font-weight:600}
.puente{color:var(--ok); font-weight:600}
.rejilla{display:grid; gap:.6rem; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); padding:0; list-style:none; margin:1rem 0}
.rejilla a{display:block; padding:.7rem .85rem; border:1px solid var(--linea); border-radius:var(--radio); text-decoration:none; background:var(--fondo); color:var(--tinta); box-shadow:var(--sombra)}
.rejilla a:hover{border-color:var(--acento); color:var(--acento)}
.rejilla small{display:block; color:var(--tinta-suave); font-size:.8rem}
.herramienta{border:1px solid var(--linea); border-radius:var(--radio); padding:1.1rem; background:var(--fondo-suave); margin:1rem 0}
.campos{display:grid; gap:.8rem; grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
label{display:block; font-size:.86rem; font-weight:600; margin-bottom:.25rem}
input,select{width:100%; padding:.55rem .6rem; border:1px solid var(--linea); border-radius:8px; background:var(--fondo); color:var(--tinta); font-size:1rem}
button{margin-top:.9rem; padding:.65rem 1.2rem; border:0; border-radius:8px; background:var(--acento); color:#fff; font-size:1rem; font-weight:600; cursor:pointer}
button:hover{filter:brightness(1.08)}
.resultado{margin-top:1rem; padding:.9rem 1rem; border-radius:var(--radio); background:var(--fondo); border:1px solid var(--linea)}
.resultado[hidden]{display:none}
.nota{font-size:.86rem; color:var(--tinta-suave)}
.fuente{font-size:.86rem; color:var(--tinta-suave); border-left:3px solid var(--linea); padding-left:.8rem; margin:1.2rem 0}
.pendiente{border:1px dashed var(--aviso); color:var(--aviso); border-radius:var(--radio); padding:.9rem 1rem; margin:1rem 0; font-size:.94rem}
/* Hueco de anuncio: la altura se reserva desde el HTML para no mover el contenido (CLS) */
.anuncio{margin:1.6rem 0; min-height:280px; display:flex; align-items:center; justify-content:center; background:var(--fondo-suave); border:1px dashed var(--linea); border-radius:var(--radio); color:var(--tinta-suave); font-size:.78rem}
@media(min-width:800px){.anuncio{min-height:250px}}
footer.sitio{border-top:1px solid var(--linea); background:var(--fondo-suave); padding:1.6rem 0; font-size:.88rem; color:var(--tinta-suave)}
footer.sitio a{color:var(--tinta-suave)}
footer.sitio ul{list-style:none; padding:0; margin:.6rem 0 0; display:flex; gap:1rem; flex-wrap:wrap}
.actualizado{font-size:.82rem; color:var(--tinta-suave); margin-top:.3rem}
