/* SinLuz.es — hoja de estilos única, sin fuentes externas */
:root{
  --noche:#0f1b2d;--noche-2:#172a45;--ambar:#f5b301;--ambar-2:#ffd25c;--rojo:#e5484d;--rojo-2:#fde8e8;
  --naranja:#f97316;--verde:#16a34a;--verde-2:#dcfce7;--gris:#5b6878;--gris-2:#e6e9ee;--fondo:#f5f6f8;--blanco:#fff;
  --texto:#16202e;--radio:14px;--sombra:0 1px 2px rgba(15,27,45,.06),0 4px 16px rgba(15,27,45,.06);
  --punta:#e5484d;--llano:#f59e0b;--valle:#22a35a;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--fondo);color:var(--texto);font-size:17px;line-height:1.55}
img,svg{max-width:100%}
a{color:#0b5cad;text-underline-offset:2px}
a:hover{color:#08427c}
h1,h2,h3{line-height:1.2;letter-spacing:-.01em;margin:0 0 .5em}
h1{font-size:clamp(1.6rem,4.2vw,2.4rem)}
h2{font-size:clamp(1.25rem,2.8vw,1.55rem);margin-top:.2em}
h3{font-size:1.1rem}
p{margin:0 0 1em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.saltar{position:absolute;left:-999px;top:0;background:var(--ambar);padding:.5em 1em;z-index:99}
.saltar:focus{left:8px}
.cont{max-width:1120px;margin:0 auto;padding:0 16px}
.estrecho{max-width:780px}
.mini{font-size:.86rem;color:var(--gris)}
.es{color:var(--ambar)}

/* cabecera */
.cab{background:var(--noche);color:#fff;position:sticky;top:0;z-index:50;box-shadow:0 2px 10px rgba(0,0,0,.15)}
.cab-in{display:flex;align-items:center;gap:16px;min-height:60px}
.logo{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:800;font-size:1.3rem;letter-spacing:-.02em}
.logo:hover{color:#fff}
.nav{display:flex;align-items:center;gap:4px;margin-left:auto;overflow-x:auto;scrollbar-width:none}
.nav::-webkit-scrollbar{display:none}
.nav a{color:#d6deea;text-decoration:none;padding:.45em .7em;border-radius:8px;white-space:nowrap;font-size:.95rem}
.nav a:hover,.nav a[aria-current]{color:#fff;background:var(--noche-2)}
.nav .btn-rojo{color:#fff;margin-left:6px}
.buscar-ico{color:#fff;display:flex;padding:6px}
@media (max-width:860px){
  .cab-in{flex-wrap:wrap;gap:6px 12px;padding-top:8px}
  .nav{order:3;width:100%;margin:0 -16px;padding:0 12px 8px}
  .buscar-ico{margin-left:auto}
  .nav .btn-rojo{order:-1;margin-left:0}
}

/* botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4em;background:var(--noche);color:#fff;border:0;border-radius:10px;padding:.65em 1.1em;font:inherit;font-weight:650;text-decoration:none;cursor:pointer;line-height:1.2}
.btn:hover{background:var(--noche-2);color:#fff}
.btn-rojo{background:var(--rojo)}
.btn-rojo:hover{background:#cf3338}
.btn-sec{background:#fff;color:var(--noche);border:1.5px solid var(--gris-2)}
.btn-sec:hover{background:#f0f2f5;color:var(--noche)}
.btn-grande{font-size:1.1rem;padding:.85em 1.4em}
.chip{border:1.5px solid var(--gris-2);background:#fff;border-radius:999px;padding:.35em .9em;font:inherit;font-size:.92rem;cursor:pointer;color:var(--texto)}
.chip.activo{background:var(--noche);color:#fff;border-color:var(--noche)}
.btn:focus-visible,.chip:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--ambar);outline-offset:2px}

/* migas */
.migas ol{list-style:none;display:flex;flex-wrap:wrap;gap:.3em;padding:12px 0 0;margin:0;font-size:.86rem;color:var(--gris)}
.migas li+li::before{content:"›";margin-right:.3em}
.migas a{color:var(--gris)}

/* héroe */
.heroe{background:linear-gradient(160deg,var(--noche) 0%,#1c3557 100%);color:#fff;padding:34px 0 30px}
.heroe-in{display:grid;grid-template-columns:1.4fr 1fr;gap:28px;align-items:center}
.heroe h1{color:#fff}
.entradilla{font-size:1.08rem;color:inherit;opacity:.95}
.heroe .entradilla{color:#d6deea}
.heroe-datos{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.dato{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:var(--radio);padding:14px;color:#fff;text-decoration:none;display:flex;flex-direction:column}
.dato:hover{background:rgba(255,255,255,.14);color:#fff}
.dato strong{font-size:1.8rem;line-height:1}
.dato span{font-size:.84rem;color:#c8d3e2;line-height:1.3;margin-top:4px}
.dato-rojo strong{color:#ff8a8d}
@media (max-width:860px){.heroe-in{grid-template-columns:1fr}.heroe{padding:24px 0}}
.heroe-in>*{min-width:0}

/* buscador */
.busca-grande{position:relative;display:flex;gap:8px;margin-top:14px}
.busca-grande input{flex:1;min-width:0;font:inherit;padding:.75em 1em;border-radius:10px;border:1.5px solid var(--gris-2);background:#fff;color:var(--texto)}
.heroe .busca-grande .btn{background:var(--ambar);color:var(--noche)}
.sugerencias,.resultados{list-style:none;margin:0;padding:0}
.sugerencias{position:absolute;top:100%;left:0;right:0;background:#fff;border-radius:10px;box-shadow:var(--sombra);margin-top:4px;z-index:40;overflow:hidden;max-height:340px;overflow-y:auto}
.sugerencias a,.resultados a{display:flex;justify-content:space-between;gap:10px;padding:.65em 1em;color:var(--texto);text-decoration:none;border-bottom:1px solid var(--gris-2)}
.sugerencias a:hover,.sugerencias a.sel,.resultados a:hover{background:#fff7dc}
.sugerencias small,.resultados small{color:var(--gris)}
.resultados{margin-top:14px;background:#fff;border-radius:var(--radio);overflow:hidden;box-shadow:var(--sombra)}

/* precio ahora */
.precio-ahora{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 12px;background:#fff;color:var(--texto);border-radius:var(--radio);padding:12px 16px;text-decoration:none;border-left:6px solid var(--valle)}
.precio-ahora:hover{color:var(--texto);background:#fbfbfb}
.pa-eti{font-size:.85rem;color:var(--gris)}
.pa-valor{grid-row:1/3;grid-column:2;font-size:1rem;white-space:nowrap}
.pa-valor strong{font-size:1.7rem}
.pa-tramo{font-size:.9rem;font-weight:650}
.precio-ahora.pa-punta{border-left-color:var(--punta)}.precio-ahora.pa-llano{border-left-color:var(--llano)}

/* bloques */
.bloque{margin-top:28px;margin-bottom:28px}
[hidden]{display:none!important}
.ficha{padding-top:14px;padding-bottom:30px}
.ficha-cab{margin:6px 0 18px}
.antetitulo{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#9a6b00;margin-bottom:.35em}
.actualizado{margin:0}
.tit-fila{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.tit-fila h2{margin:0}
.acciones{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px}
.caja{background:#fff;border-radius:var(--radio);padding:18px 20px;box-shadow:var(--sombra)}
.nota{font-size:.9rem;color:var(--gris);border-left:4px solid var(--ambar);padding:.4em .9em;background:#fffaeb;border-radius:0 8px 8px 0}
.mas{margin-top:12px;font-weight:600}
.dos-col{display:grid;grid-template-columns:1fr 1fr;gap:24px}
@media (max-width:760px){.dos-col{grid-template-columns:1fr}}

/* mapa */
.mapa{height:min(68vh,560px);min-height:360px;border-radius:var(--radio);overflow:hidden;background:#dfe6ee;box-shadow:var(--sombra);position:relative;z-index:1}
.mapa-medio{height:min(55vh,460px)}
.mapa-aviso{padding:20px}
.filtros{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.leyenda{list-style:none;display:flex;flex-wrap:wrap;gap:6px 16px;padding:0;margin:10px 0 0;font-size:.86rem;color:var(--gris)}
.punto{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:5px;vertical-align:-1px;border:2px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.2)}
.p-curso{background:var(--rojo)}.p-hoy{background:var(--naranja)}.p-manana{background:var(--ambar)}.p-prox{background:#94a3b8}.p-vecinos{background:#7c3aed}
.cerca{margin-top:14px}
.leaflet-popup-content{font:15px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;margin:12px 14px}
.pop h3{font-size:1rem;margin:0 0 4px}
.pop ul{margin:4px 0 6px;padding-left:18px}
.pop .eti{display:inline-block;font-size:.75rem;font-weight:700;border-radius:6px;padding:1px 6px;color:#fff;background:var(--gris)}
.marca-vecinos{background:#7c3aed;border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 0 rgba(124,58,237,.6);animation:latido 1.8s infinite;color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:12px}
.marca-vecinos.sin-confirmar{background:#a78bfa;animation:none}
@keyframes latido{0%{box-shadow:0 0 0 0 rgba(124,58,237,.55)}70%{box-shadow:0 0 0 14px rgba(124,58,237,0)}100%{box-shadow:0 0 0 0 rgba(124,58,237,0)}}
@media (prefers-reduced-motion:reduce){.marca-vecinos{animation:none}}

/* cortes */
.dia{margin-bottom:20px}
.dia h3,.dia>h2{margin-bottom:10px}
.corte{display:grid;grid-template-columns:132px 1fr;gap:14px;background:#fff;border-radius:12px;padding:14px 16px;margin-bottom:10px;box-shadow:var(--sombra);border-left:5px solid var(--ambar)}
.corte.en-curso{border-left-color:var(--rojo)}
.corte.finalizado{opacity:.62;border-left-color:#b7c0cc}
.corte-hora strong{display:block;font-size:1.15rem}
.corte-hora .dur{font-size:.85rem;color:var(--gris);display:block}
.estado{display:inline-block;margin-top:4px;font-size:.75rem;font-weight:700;border-radius:6px;padding:2px 7px;background:var(--gris-2);color:var(--texto)}
.en-curso .estado{background:var(--rojo);color:#fff}
.corte-muni{font-weight:650;margin:0 0 4px}
.calles{list-style:none;margin:0;padding:0}
.calles li{padding:3px 0;border-bottom:1px dashed var(--gris-2)}
.calles li:last-child{border-bottom:0}
.calles .nums{color:var(--gris);font-size:.92rem}
.calles mark{background:var(--ambar-2);border-radius:3px}
.corte .mini{margin:0}
@media (max-width:560px){.corte{grid-template-columns:1fr;gap:6px}}
.grupo-muni{margin-bottom:14px}
.grupo-muni h3{margin:14px 0 8px}
.filtro-calle input{font:inherit;padding:.5em .8em;border-radius:10px;border:1.5px solid var(--gris-2);min-width:220px}
.rejilla-cortes{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.tarjeta-corte{background:#fff;border-radius:12px;padding:12px 14px;text-decoration:none;color:var(--texto);box-shadow:var(--sombra);display:flex;flex-direction:column;gap:2px;border-top:4px solid var(--ambar)}
.tarjeta-corte:hover{color:var(--texto);transform:translateY(-1px)}
.tarjeta-corte.en-curso{border-top-color:var(--rojo)}
.tc-cuando{font-size:.85rem;font-weight:650;color:#9a6b00}
.tc-prov{font-size:.85rem;color:var(--gris)}
.vecinos{background:#f3e8ff;border:1.5px solid #c4b5fd;border-radius:var(--radio);padding:14px 16px;margin:12px 0}
.vecinos strong{color:#5b21b6}

/* listas */
.lista-provs{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px 16px}
.lista-provs li{padding:4px 0;border-bottom:1px solid var(--gris-2)}
.cuenta{display:inline-block;background:var(--ambar);color:var(--noche);font-size:.75rem;font-weight:800;border-radius:999px;padding:0 7px;margin-left:4px;vertical-align:1px}
.lista-enlaces{padding-left:1.1em}
.lista-enlaces li{margin:.3em 0}
.lista-calles{padding-left:1.3em}
.lista-inc{padding-left:1.1em}
.lista-check{padding-left:1.2em}
.lista-guias{list-style:none;padding:0}
.lista-guias a{display:block;background:#fff;border-radius:12px;padding:14px 16px;margin-bottom:10px;text-decoration:none;color:var(--texto);box-shadow:var(--sombra)}
.lista-guias span{display:block;color:var(--gris);font-size:.93rem}

/* cifras */
.cifras{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:14px 0}
.cifras>div{background:#fff;border-radius:12px;padding:14px;box-shadow:var(--sombra)}
.cifras strong{display:block;font-size:1.45rem;line-height:1.15}
.cifras span{font-size:.86rem;color:var(--gris)}
.cifras .c-barata{border-top:4px solid var(--valle)}.cifras .c-cara{border-top:4px solid var(--punta)}
.cifras .c-ahora{background:var(--noche);color:#fff}.cifras .c-ahora span{color:#c8d3e2}
.barras-mes{display:flex;align-items:flex-end;gap:4px;height:150px;background:#fff;border-radius:12px;padding:12px 12px 0;box-shadow:var(--sombra);margin:10px 0 16px}
.bm{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;text-decoration:none;color:var(--texto);min-width:0}
.bm-barra{width:100%;max-width:34px;background:var(--ambar);border-radius:5px 5px 0 0;min-height:2px}
.barras-dias .bm-barra{background:#3b82f6}
.bm-n{font-size:.75rem;font-weight:700}
.bm-eti{font-size:.72rem;color:var(--gris);padding:3px 0 6px;white-space:nowrap}

/* tablas */
.tabla-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tabla{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;box-shadow:var(--sombra);font-size:.95rem}
.tabla th,.tabla td{text-align:left;padding:.55em .8em;border-bottom:1px solid var(--gris-2);vertical-align:top}
.tabla th{background:#f0f2f5;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:var(--gris)}
.tabla tr.ahora{background:#fff4cc;font-weight:650}
.tabla-precios .n-barata td:nth-child(2) strong{color:var(--verde)}
.tabla-precios .n-cara td:nth-child(2) strong{color:var(--rojo)}
.tramo{display:inline-block;font-size:.78rem;font-weight:700;border-radius:6px;padding:1px 8px;color:#fff}
.t-punta{background:var(--punta)}.t-llano{background:var(--llano)}.t-valle{background:var(--valle)}
.lista-tramos{list-style:none;padding:0}
.lista-tramos li{margin:.4em 0}

/* gráfica de precios */
.grafica{margin:0;background:#fff;border-radius:var(--radio);padding:14px 12px 8px;box-shadow:var(--sombra)}
.grafica svg{width:100%;height:auto;display:block}
.grafica text{font-size:11px;fill:var(--gris)}
.grafica .eje{stroke:var(--gris-2)}
.barra.t-punta rect{fill:var(--punta)}.barra.t-llano rect{fill:var(--llano)}.barra.t-valle rect{fill:var(--valle)}
.barra{background:none}
.grafica .barra.ahora rect{stroke:var(--noche);stroke-width:3}
.grafica .barra.ahora text{fill:var(--noche);font-weight:800}
.leyenda-tramos{display:flex;gap:14px;justify-content:center;font-size:.85rem;color:var(--gris);margin-top:6px}
.leyenda-tramos i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:4px;vertical-align:-1px}
.consejos{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}
.consejos>div{background:#fff;border-radius:12px;padding:14px;box-shadow:var(--sombra);display:flex;flex-direction:column}
.consejos .ico{font-size:1.5rem}
.consejos span:last-child{color:var(--gris);font-size:.92rem}
.pestanas{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.pestanas button{border:1.5px solid var(--gris-2);background:#fff;border-radius:8px;padding:.4em .9em;font:inherit;cursor:pointer}
.pestanas button[aria-selected=true]{background:var(--noche);color:#fff;border-color:var(--noche)}
.nav-dias{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.nav-dias a{background:#fff;border:1.5px solid var(--gris-2);border-radius:8px;padding:.3em .8em;text-decoration:none;font-weight:600}
.aviso-hora{background:#fffaeb;border-radius:10px;padding:10px 14px}
.reloj-tramos{display:grid;grid-template-columns:repeat(24,1fr);gap:2px;margin:10px 0 16px}
.rt{color:#fff;font-size:.72rem;font-weight:700;text-align:center;padding:10px 0;border-radius:4px}
.rt.ahora{outline:3px solid var(--noche);outline-offset:1px}
.tramo-ahora{font-size:1.1rem}
.tarjeta-grande{display:flex;flex-direction:column;background:#fff;border-radius:var(--radio);padding:18px;text-decoration:none;color:var(--texto);box-shadow:var(--sombra);margin-bottom:12px}
.tarjeta-grande strong{font-size:1.5rem}

/* faq */
.faq details{background:#fff;border-radius:12px;margin-bottom:8px;box-shadow:var(--sombra)}
.faq summary{cursor:pointer;padding:14px 16px;font-weight:650;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";float:right;font-weight:800;color:var(--gris)}
.faq details[open] summary::after{content:"–"}
.faq details p{padding:0 16px 14px;margin:0}

/* llamada a reportar */
.cta-reportar{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--rojo-2);border-radius:var(--radio);padding:20px 22px;flex-wrap:wrap}
.cta-reportar h2{margin:0 0 .2em}
.cta-reportar p{margin:0}

/* formulario de reporte */
.form-reporte{background:#fff;border-radius:var(--radio);padding:18px 20px;box-shadow:var(--sombra)}
.form-reporte fieldset{border:0;padding:0;margin:0 0 18px}
.form-reporte legend{font-weight:750;font-size:1.1rem;margin-bottom:8px}
.form-reporte label{display:block;font-weight:600;margin:10px 0 4px}
.form-reporte select,.form-reporte input[type=text]{width:100%;font:inherit;padding:.65em .8em;border-radius:10px;border:1.5px solid var(--gris-2);background:#fff}
.opcion{display:flex!important;gap:10px;align-items:flex-start;border:1.5px solid var(--gris-2);border-radius:12px;padding:10px 12px;margin:6px 0!important;cursor:pointer;font-weight:400!important}
.opcion:has(input:checked){border-color:var(--rojo);background:#fff5f5}
.opcion input{margin-top:5px;accent-color:var(--rojo)}
.opcion strong{display:block}
.opcion span{color:var(--gris)}
.opcion span strong{color:var(--texto)}
.trampa{position:absolute;left:-5000px}
.form-estado{margin:12px 0 0;font-weight:600}
.form-estado.ok{color:var(--verde)}.form-estado.error{color:var(--rojo)}
.compartir{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:14px 0;font-size:.92rem}
.compartir a,.compartir button{border:1.5px solid var(--gris-2);border-radius:8px;padding:.3em .7em;text-decoration:none;background:#fff;font:inherit;font-size:.9rem;cursor:pointer;color:var(--texto)}

/* guías */
.guia h2{margin-top:1.4em}
.guia ul{padding-left:1.2em}
.guia li{margin:.35em 0}
.indice{background:#fff;border-radius:12px;padding:12px 16px;box-shadow:var(--sombra)}
.indice ol{margin:0;padding-left:1.2em}

/* anuncios: hueco reservado para que la página no salte */
.anuncio{margin:24px auto;min-height:280px;display:flex;align-items:center;justify-content:center}
.anuncio-ficha{min-height:250px}
@media (min-width:760px){.anuncio{min-height:120px}}

/* admin */
.admin-login{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}
.admin-login label{width:100%}
.admin-login input{font:inherit;padding:.6em .8em;border-radius:10px;border:1.5px solid var(--gris-2);min-width:280px}
.tabla-admin td{white-space:nowrap}
.tabla-admin button{font:inherit;font-size:.82rem;border:1px solid var(--gris-2);background:#fff;border-radius:6px;padding:.2em .5em;cursor:pointer;margin:1px}
.est{font-size:.78rem;font-weight:700;border-radius:6px;padding:1px 7px;background:var(--gris-2)}
.est-confirmada{background:var(--rojo);color:#fff}.est-pendiente{background:#ede9fe;color:#5b21b6}.est-rechazada{background:#334155;color:#fff}.est-resuelta{background:var(--verde-2);color:#166534}

/* pie */
.pie{background:var(--noche);color:#c8d3e2;margin-top:40px;padding:32px 0 18px;font-size:.93rem}
.pie-in{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:24px}
.pie a{color:#e7edf5}
.pie ul{list-style:none;padding:0;margin:0}
.pie li{margin:.3em 0}
.pie-logo{font-weight:800;font-size:1.3rem;color:#fff;margin-bottom:.3em}
.pie-tit{color:#fff;font-weight:700}
.pie .mini{color:#9fb0c6}
.pie-fuentes{border-top:1px solid #24395a;padding-top:14px;margin-top:20px}
@media (max-width:760px){.pie-in{grid-template-columns:1fr 1fr}.pie-in>div:first-child{grid-column:1/-1}}
