:root{--r:#c0392b;--a:#2563eb;--l:#16a34a;--t:#1f2937;--m:#6b7280;--b:#e5e7eb}
*{box-sizing:border-box}body{margin:0;font:16px/1.55 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--t);background:#fafafa}
.wrap{max-width:1040px;margin:0 auto;padding:0 16px}a{color:var(--a)}h1{font-size:1.9rem;line-height:1.2;margin:.6em 0 .3em}h2{margin-top:1.6em}
.top{background:#fff;border-bottom:1px solid var(--b)}.top .wrap{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:10px 16px}
.logo{font-size:1.3rem;text-decoration:none;color:var(--t)}.logo b{color:var(--r)}nav a{margin-left:14px;text-decoration:none;font-size:.95rem}
.migas{font-size:.85rem;color:var(--m);margin-top:12px}.resumen{background:#fff;border:1px solid var(--b);border-left:5px solid var(--r);padding:14px 18px;border-radius:8px}
.aviso{background:#fff7ed;border:1px solid #fdba74;padding:12px 16px;border-radius:8px}.ok{color:var(--l);font-weight:600}
.tabla-wrap{overflow-x:auto}.tabla{width:100%;border-collapse:collapse;background:#fff;font-size:.93rem}.tabla th,.tabla td{border-bottom:1px solid var(--b);padding:7px 8px;text-align:left}
.tabla tr.local td:nth-child(3){font-weight:600}.botones{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.btn{background:var(--r);color:#fff;padding:8px 14px;border-radius:6px;text-decoration:none;border:0;cursor:pointer;font-size:.95rem}
.btn.sec{background:#fff;color:var(--t);border:1px solid var(--b)}
.cal{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.mes{background:#fff;border:1px solid var(--b);border-radius:8px;padding:8px}
.mes h3{margin:0 0 6px;text-transform:capitalize;font-size:1rem}.grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;font-size:.8rem;text-align:center}
.grid b{color:var(--m);font-weight:500}.grid span{padding:3px 0;border-radius:4px}.finde{color:#9ca3af}.fest{color:#fff;font-weight:700}
.fest.nacional{background:var(--r)}.fest.autonomico{background:var(--a)}.fest.local,.fest.insular,.fest.territorial{background:var(--l)}.leyenda{font-size:.85rem;color:var(--m)}.leyenda .fest{background:none!important}
.leyenda .nacional{color:var(--r)}.leyenda .autonomico{color:var(--a)}.leyenda .local{color:var(--l)}
.ad{display:flex;align-items:center;justify-content:center;background:#f3f4f6;border:1px dashed #d1d5db;color:#9ca3af;font-size:.75rem;margin:18px 0}
.ad-horizontal{min-height:100px}.ad-rectangulo{min-height:280px}.ad-enlinea{min-height:250px}
.lista{columns:3 220px;padding-left:18px}.lista li{margin-bottom:3px}.noidx{color:var(--m)}
.pie{border-top:1px solid var(--b);margin-top:40px;background:#fff;font-size:.85rem;color:var(--m)}.pie .wrap{padding:16px}
form.herr{background:#fff;border:1px solid var(--b);padding:16px;border-radius:8px;display:grid;gap:10px;max-width:560px}form.herr input,form.herr select{padding:8px;font-size:1rem;width:100%}
#sug{border:1px solid var(--b);background:#fff;max-height:220px;overflow:auto}#sug div{padding:6px 8px;cursor:pointer}#sug div:hover{background:#f3f4f6}
@media print{.top,.pie,.ad,.botones,nav.migas,.no-print{display:none!important}body{background:#fff}.cal{grid-template-columns:repeat(4,1fr)}.mes{break-inside:avoid}}
