/* ===== Ourense Servicios · estilos públicos ===== */
:root{
  --bg:#f4f5f8;--surface:#fff;--ink:#14171c;--ink2:#3b4350;--muted:#5b6472;--line:#e3e6ec;--soft:#f0f2f6;
  --good:#127a52;--bad:#b3261e;--radius:16px;
  --shadow:0 1px 2px rgba(16,24,40,.05),0 6px 18px rgba(16,24,40,.06);
  --font:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --lo:#1b7a5a;--mid:#9aa3b2;--hi:#b3261e;
}
@media (prefers-color-scheme:dark){
  html[data-theme=actual]{--bg:#0e1117;--surface:#171b23;--ink:#eef0f4;--ink2:#cdd3de;--muted:#9ea7b6;--line:#2a303b;--soft:#1e232d;--good:#4ade80;--bad:#ff8a80;--shadow:0 1px 2px rgba(0,0,0,.4),0 6px 18px rgba(0,0,0,.35);--lo:#34d399;--mid:#5a6475;--hi:#ff7b72}
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 var(--font);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
a:hover{color:var(--accent)}
:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 55%,#fff);outline-offset:2px;border-radius:6px}
h1,h2,h3{line-height:1.2;margin:0}
.container{max-width:1200px;margin:0 auto;padding:0 20px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--surface);padding:10px 16px;z-index:100;border-radius:0 0 8px 0}
.skip:focus{left:0}
small{font-size:.8125rem}
.muted{color:var(--muted)}

/* ---- iconos ---- */
.ic{width:1.25em;height:1.25em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:-.22em}
.ic-s{width:1em;height:1em;vertical-align:-.14em}
.ic-xl{width:3rem;height:3rem}
.flag{width:22px;height:15px;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.18);flex:none}

/* ---- colores por sección ---- */
.sec-gas{--b-fg:#b45309;--b-bg:#fef3c7}.sec-farm{--b-fg:#15803d;--b-bg:#dcfce7}.sec-wx{--b-fg:#0369a1;--b-bg:#e0f2fe}
.sec-luz{--b-fg:#a16207;--b-bg:#fef9c3}.sec-air{--b-fg:#0f766e;--b-bg:#ccfbf1}.sec-pop{--b-fg:#6d28d9;--b-bg:#ede9fe}.sec-sol{--b-fg:#b45309;--b-bg:#ffedd5}.sec-emp{--b-fg:#4338ca;--b-bg:#e0e7ff}
.sec-viv{--b-fg:#be123c;--b-bg:#ffe4e6}.sec-emb{--b-fg:#1d4ed8;--b-bg:#dbeafe}.sec-tra{--b-fg:#c2410c;--b-bg:#ffedd5}
@media (prefers-color-scheme:dark){
  html[data-theme=actual] .sec-gas{--b-fg:#fbbf24;--b-bg:#3a2a0b}
  html[data-theme=actual] .sec-farm{--b-fg:#4ade80;--b-bg:#0f3320}
  html[data-theme=actual] .sec-wx{--b-fg:#38bdf8;--b-bg:#0b2d42}
  html[data-theme=actual] .sec-luz{--b-fg:#facc15;--b-bg:#3a3009}
  html[data-theme=actual] .sec-air{--b-fg:#2dd4bf;--b-bg:#0c3330}
  html[data-theme=actual] .sec-pop{--b-fg:#a78bfa;--b-bg:#2a1f4d}
  html[data-theme=actual] .sec-sol{--b-fg:#fdba74;--b-bg:#3d2209}
  html[data-theme=actual] .sec-emp{--b-fg:#a5b4fc;--b-bg:#1e2150}
  html[data-theme=actual] .sec-viv{--b-fg:#fb7185;--b-bg:#431422}
  html[data-theme=actual] .sec-emb{--b-fg:#60a5fa;--b-bg:#12295a}
  html[data-theme=actual] .sec-tra{--b-fg:#fb923c;--b-bg:#43200c}
}
.badge{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:var(--b-bg);color:var(--b-fg);flex:none}
.badge .ic{width:22px;height:22px}
.badge.lg{width:56px;height:56px;border-radius:16px}.badge.lg .ic{width:30px;height:30px}

/* ---- barra superior e idioma ---- */
.topbar{background:#14171c;color:#d5dae3;font-size:.8125rem}
.topbar-in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:40px;flex-wrap:wrap}
.topbar-tag{display:flex;align-items:center;gap:8px}
.topbar-right{display:flex;align-items:center;gap:18px}
.topbar-link{display:inline-flex;align-items:center;gap:6px;color:#d5dae3}.topbar-link:hover{color:#fff}
.lang{position:relative}
.lang summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:8px;background:rgba(255,255,255,.08);min-height:32px;user-select:none}
.lang summary::-webkit-details-marker{display:none}
.lang[open] summary,.lang summary:hover{background:rgba(255,255,255,.16)}
.lang ul{position:absolute;right:0;top:calc(100% + 6px);z-index:60;margin:0;padding:6px;list-style:none;background:var(--surface);color:var(--ink);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.28);min-width:180px;border:1px solid var(--line)}
.lang li a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;color:var(--ink)}
.lang li a:hover{background:var(--soft);color:var(--ink)}
.lang li a[aria-current]{font-weight:600}
.lang li a .ic{margin-left:auto;color:var(--good)}

/* ---- cabecera y menú ---- */
.header{background:var(--surface);border-bottom:1px solid var(--line);position:relative;z-index:30}
.header-in{display:flex;align-items:center;gap:20px;min-height:72px}
.brand{display:flex;align-items:center;flex:none}
.brand img{height:44px;width:auto}
.brand-text{font:700 1.8rem var(--serif);letter-spacing:-.5px}.brand-text b{color:var(--accent)}
.menu{flex:1;min-width:0}
.menu>ul{display:flex;gap:2px;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.menu li{position:relative}
.menu a{display:flex;align-items:center;gap:4px;padding:10px 11px;font-weight:600;font-size:.9rem;border-radius:8px;white-space:nowrap}
.menu a:hover{background:var(--soft);color:var(--ink)}
.menu .ic-s{width:.85em;height:.85em;opacity:.7}
.menu li ul{display:none;position:absolute;left:0;top:100%;min-width:230px;max-height:70vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 34px rgba(16,24,40,.18);padding:6px;list-style:none;margin:0;z-index:50}
.menu li:hover>ul,.menu li:focus-within>ul{display:block}
.menu li ul a{font-weight:500}
.subtoggle,.mtoggle{display:none}
.search{display:flex;align-items:center;border:1px solid var(--line);border-radius:12px;background:var(--soft);padding-left:12px;flex:none}
.search input{border:0;background:transparent;color:var(--ink);font:inherit;font-size:.9rem;padding:10px 6px;width:170px;outline:0}
.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent)}
.search button{border:0;background:transparent;color:var(--muted);padding:10px 12px;cursor:pointer;display:flex}
.search button:hover{color:var(--accent)}

.svcnav{background:var(--surface);border-bottom:1px solid var(--line)}
.svcnav-in{display:flex;gap:8px;overflow-x:auto;padding-top:12px;padding-bottom:12px;scrollbar-width:none}
.svcnav-in::-webkit-scrollbar{display:none}
.svcnav a{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-weight:600;font-size:.875rem;white-space:nowrap;color:var(--ink2)}
.svcnav a .ic{color:var(--b-fg,var(--accent))}
.svcnav a:hover{border-color:var(--b-fg,var(--accent));color:var(--ink)}
.svcnav a[aria-current]{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.svcnav a[aria-current] .ic{color:var(--surface)}

.alertbar{font-size:.9rem}.alertbar .container{display:flex;gap:10px;align-items:center;padding-top:10px;padding-bottom:10px}
.alert-info{background:#e0f2fe;color:#0c4a6e}.alert-warn{background:#fef3c7;color:#78350f}.alert-danger{background:#fee2e2;color:#7f1d1d}
@media (prefers-color-scheme:dark){
  html[data-theme=actual] .alert-info{background:#0b2d42;color:#bae6fd}
  html[data-theme=actual] .alert-warn{background:#3a2a0b;color:#fde68a}
  html[data-theme=actual] .alert-danger{background:#431414;color:#fecaca}
}
.demobar{background:#fff7d6;color:#6b4e00;font-size:.8125rem;text-align:center}.demobar .container{padding-top:6px;padding-bottom:6px}
@media (prefers-color-scheme:dark){
  html[data-theme=actual] .demobar{background:#3a3009;color:#fde68a}
}

/* ---- portada ---- */
.hero{padding:42px 0 26px;background:radial-gradient(900px 340px at 90% -30%,color-mix(in srgb,var(--accent) 16%,transparent),transparent),radial-gradient(700px 300px at -10% 0%,color-mix(in srgb,#2563eb 9%,transparent),transparent)}
.eyebrow{display:inline-flex;align-items:center;gap:8px;margin:0 0 14px;font-size:.8125rem;font-weight:600;color:var(--ink2);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:6px 12px}
.eyebrow .ic{color:var(--accent)}
.hero h1{font:700 clamp(2rem,4.6vw,3.25rem)/1.08 var(--serif);letter-spacing:-.02em;max-width:18ch}
.hero h1::after{content:"";display:block;width:68px;height:4px;background:var(--accent);border-radius:4px;margin-top:18px}
.lead{margin:16px 0 0;font-size:1.125rem;color:var(--ink2);max-width:62ch}
.pills{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:22px 0 0;padding:0}
.pill{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;background:var(--b-bg);color:var(--b-fg);font-weight:600;font-size:.875rem;border:1px solid transparent}
.pill:hover{color:var(--b-fg);border-color:var(--b-fg)}

.tiles{display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:16px;margin:0}
.tile{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);transition:transform .15s,border-color .15s}
.tile:hover{transform:translateY(-2px);border-color:var(--b-fg);color:var(--ink)}
.tile .badge{width:48px;height:48px;border-radius:14px}.tile .badge .ic{width:26px;height:26px}
.tile small{display:block;color:var(--muted);font-weight:500}
.tile b{display:block;font:700 1.45rem/1.2 var(--serif)}
.tile em{display:block;font-style:normal;color:var(--muted);font-size:.8125rem}
@media (prefers-reduced-motion:reduce){.tile{transition:none}.tile:hover{transform:none}}

.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;grid-auto-flow:dense}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);display:flex;flex-direction:column;min-width:0}
.blk{min-width:0;display:flex;flex-direction:column}.blk>.card{flex:1}.blk.w1{grid-column:span 1}.blk.w2{grid-column:span 2}.blk.w3{grid-column:span 3}
.newsblock{margin:0}
.card-h{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.card-h h2{font:700 1.3rem/1.2 var(--serif)}
.card-h h2 a:hover{color:var(--accent)}
.sub{margin:0 0 14px;color:var(--muted);font-size:.875rem}
.more{margin-top:auto;padding-top:16px;display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:.9rem;color:var(--accent)}
.more .ic{transition:transform .15s}.more:hover .ic{transform:translateX(3px)}
.meta{margin:14px 0 0;color:var(--muted);font-size:.8125rem}
.meta b{color:var(--ink)}
.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:26px 12px;color:var(--muted)}
.empty .ic{width:36px;height:36px;opacity:.7}.empty p{margin:0;max-width:34ch}
.empty.ok{color:var(--good)}

/* pestañas */
.tablist{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.tablist button,.tablist-links a{border:1px solid var(--line);background:var(--surface);color:var(--ink2);padding:8px 14px;border-radius:999px;font:600 .8125rem var(--font);cursor:pointer;min-height:38px;display:inline-flex;align-items:center}
.tablist button:hover,.tablist-links a:hover{border-color:var(--ink);color:var(--ink)}
.tablist button[aria-selected=true],.tablist-links a[aria-current]{background:var(--ink);border-color:var(--ink);color:var(--surface)}

/* ranking de gasolineras */
.rank{list-style:none;margin:0;padding:0}
.rank li{display:grid;grid-template-columns:34px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.rank li:first-child{border-top:0}
.rk{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--soft);font-size:.8rem;font-weight:700}
.rank li:first-child .rk{background:var(--b-bg);color:var(--b-fg)}
.rk-main a{font-weight:600}.rk-main small,.rows small{display:block;color:var(--muted)}
.rk-price{text-align:right;white-space:nowrap}.rk-price b{font:700 1.2rem var(--serif)}.rk-price small{display:block;color:var(--muted)}
.rank li:first-child .rk-price small{color:var(--good);font-weight:600}

/* filas genéricas */
.rows{list-style:none;margin:0;padding:0}
.rows li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--line);font-size:.9375rem}
.rows li:first-child{border-top:0}
.rows-main{min-width:0}.rows-main a{font-weight:600}
.rows-tight li{padding:8px 0}
.rows-cards li{padding:14px 0}
.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--soft);font-size:.78rem;font-weight:600;white-space:nowrap;color:var(--ink2)}
.kind-accidente,.kind-corte{background:#fee2e2;color:#7f1d1d}.kind-obras{background:#ffedd5;color:#7c2d12}.kind-retencion{background:#fef3c7;color:#78350f}
.kind-meteo{background:#e0f2fe;color:#0c4a6e}.kind-fluido{background:#dcfce7;color:#14532d}.kind-incidencia{background:var(--soft)}
@media (prefers-color-scheme:dark){
  html[data-theme=actual] .kind-accidente,html[data-theme=actual] .kind-corte{background:#431414;color:#fecaca}
  html[data-theme=actual] .kind-obras{background:#43200c;color:#fed7aa}
  html[data-theme=actual] .kind-retencion{background:#3a2a0b;color:#fde68a}
  html[data-theme=actual] .kind-meteo{background:#0b2d42;color:#bae6fd}
  html[data-theme=actual] .kind-fluido{background:#0f3320;color:#bbf7d0}
}

/* tiempo */
.wx-now{display:flex;align-items:center;gap:16px;margin:2px 0 10px}
.wx-ic{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:20px;background:var(--b-bg);color:var(--b-fg)}
.wx-ic .ic{width:36px;height:36px}
.wx-temp{display:block;font:700 2.75rem/1 var(--serif)}
.wx-now span:not(.wx-ic){color:var(--muted);font-size:.9rem}
.wx-extra{display:flex;gap:16px;margin:0 0 6px;color:var(--muted);font-size:.875rem}
.rows li .wx-day{width:3.2rem;font-weight:600}
.wx-ico{color:var(--b-fg)}.wx-ico .ic{width:1.5em;height:1.5em}
.wx-rain{color:var(--muted);font-size:.8125rem;margin-left:auto;margin-right:8px}
.wx-mm i{font-style:normal;color:var(--muted)}
.wx-grid,.air-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin-bottom:12px}
.wx-card.panel,.air-card.panel{margin-bottom:0}
.wx-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}

/* barras de luz */
.bars{display:flex;align-items:flex-end;gap:3px;height:150px;margin-top:6px}
.bars-lg{height:220px}
.bar{flex:1;border-radius:4px 4px 0 0;background:var(--mid);min-width:0}
.bar.lo{background:var(--lo)}.bar.hi{background:var(--hi)}
.bar.now{box-shadow:0 0 0 2px var(--ink);position:relative}
.bar-axis{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted);padding:6px 0 12px}
.legend{list-style:none;margin:0;padding:12px 0 0;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:6px 22px;font-size:.875rem}
.key-sq{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;background:var(--mid)}.key-sq.lo{background:var(--lo)}.key-sq.hi{background:var(--hi)}
.hours summary{cursor:pointer;font-weight:600;color:var(--accent);padding:8px 0}

/* aire */
.aqi{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:.875rem}
.aqi i{width:11px;height:11px;border-radius:50%;background:var(--q);display:inline-block}
.lvl-1{--q:#16a34a}.lvl-2{--q:#65a30d}.lvl-3{--q:#ca8a04}.lvl-4{--q:#ea580c}.lvl-5{--q:#dc2626}.lvl-6{--q:#9333ea}
.air-main{display:flex;align-items:center;gap:16px;margin:6px 0 12px}
.air-val{font:700 3rem/1 var(--serif);color:var(--q)}
.air-main small{display:block;color:var(--muted)}
.poll{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0 0}
.poll div{background:var(--soft);border-radius:10px;padding:8px 10px}.poll dt{font-size:.75rem;color:var(--muted)}.poll dd{margin:0;font-weight:700}
.scale{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.scale li{background:var(--soft);border-radius:12px;padding:12px}.scale small{display:block;color:var(--muted);margin-top:4px}

/* barras horizontales y medidores */
.hbars{list-style:none;margin:0;padding:0;display:grid;gap:11px}
.hbars li{display:grid;grid-template-columns:minmax(0,10rem) 1fr 4.5rem;gap:12px;align-items:center;font-size:.9rem}
.hb-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hbars b{text-align:right;font-variant-numeric:tabular-nums}
.hb-t{display:block;height:10px;background:var(--soft);border-radius:6px;overflow:hidden}
.hb-t i{display:block;height:100%;background:var(--b-fg,var(--accent));border-radius:6px}
.meters{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.meters-lg{gap:20px}
.meter-top{display:flex;justify-content:space-between;gap:10px;margin-bottom:6px;font-size:.9rem}
.meter{height:10px;background:var(--soft);border-radius:6px;overflow:hidden}
.meter i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#38bdf8,#1d4ed8)}
.air-card .meter i{background:var(--q)}
.meter-sub{display:block;margin-top:6px;color:var(--muted)}

.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin-bottom:14px}
.stat-row{margin:6px 0 18px}
.stat{background:var(--soft);border-radius:14px;padding:14px}
.stat small{display:block;color:var(--muted);font-weight:500}
.stat b{display:block;font:700 1.45rem/1.25 var(--serif)}
.stat em{display:block;font-style:normal;color:var(--muted);font-size:.8125rem}
.stat-big .stat{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow)}.stat-big b{font-size:1.9rem}

/* ---- páginas interiores ---- */
.page{padding-top:22px;padding-bottom:56px}
.crumbs ol{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0 0 18px;padding:0;font-size:.8125rem;color:var(--muted)}
.crumbs li+li::before{content:"›";margin-right:6px;opacity:.6}
.crumbs a:hover{text-decoration:underline}
.phead{display:flex;align-items:center;gap:16px;margin-bottom:22px}
.phead h1{font:700 clamp(1.6rem,3.2vw,2.3rem)/1.15 var(--serif);letter-spacing:-.01em}
.phead .lead{margin-top:6px;font-size:1rem}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);margin-bottom:20px}
.panel h2{font:700 1.2rem var(--serif);margin-bottom:12px;display:flex;align-items:center;gap:8px}
.panel-soft{background:var(--soft);box-shadow:none}
.small{font-size:.8125rem;color:var(--muted);margin:0}
.center{text-align:center;padding:48px 22px}.center .ic{color:var(--muted);margin:0 auto 10px}.center h1{font:700 1.8rem var(--serif);margin-bottom:8px}
.notice{display:flex;gap:10px;align-items:center;padding:12px 16px;border-radius:12px;background:#fef3c7;color:#78350f;margin-bottom:18px;font-size:.9rem}
.notice-ok{background:#dcfce7;color:#14532d}
@media (prefers-color-scheme:dark){
  html[data-theme=actual] .notice{background:#3a2a0b;color:#fde68a}
  html[data-theme=actual] .notice-ok{background:#0f3320;color:#bbf7d0}
}
.grp{display:flex;align-items:center;gap:8px;font:700 1.05rem var(--font);margin:20px 0 4px;color:var(--ink2)}
.filters{display:flex;flex-wrap:wrap;gap:14px;margin:6px 0 18px}
.filters label{display:grid;gap:4px;font-size:.8125rem;font-weight:600;color:var(--muted)}
select,input[type=text],input[type=search],input[type=email],input[type=password],input[type=number],input[type=date],textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-height:44px}
select{min-width:200px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:12px;background:var(--accent);color:#fff;font-weight:600;border:0;cursor:pointer;min-height:44px;font-size:.9375rem}
.btn:hover{color:#fff;filter:brightness(1.08)}
.btn-block{display:flex;width:100%;margin-top:14px}
.tbl-wrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:.9375rem}
.tbl th,.tbl td{padding:12px 10px;text-align:left;border-top:1px solid var(--line);vertical-align:middle}
.tbl thead th{border-top:0;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.tbl .num{text-align:right;white-space:nowrap}
.tbl td small,.tbl th small{display:block;color:var(--muted);font-weight:400}
.tbl small.good,.good{color:var(--good)}.tbl small.bad,.bad{color:var(--bad)}
.tbl tbody th{font-weight:600}
.bar-col{width:35%}.bar-col .hb-t{min-width:80px}
.tbl-prices th[scope=row]{font-weight:600}
.pager{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;font-size:.9rem}
.pager a{font-weight:600;color:var(--accent)}
.chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.chips li a,.chips li{background:var(--soft);border-radius:999px;font-size:.875rem;font-weight:500}
.chips li a{display:inline-flex;gap:8px;align-items:center;padding:7px 13px}
.chips li a:hover{background:var(--ink);color:var(--surface)}
.chips li a b{font-size:.75rem;opacity:.7}
.chips-ic li{display:inline-flex;align-items:center;gap:8px;padding:7px 13px}.chips-ic .ic{color:var(--accent)}
.kv{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.kv li{display:flex;gap:12px;align-items:flex-start}.kv .ic{margin-top:2px;color:var(--accent)}.kv small{display:block;color:var(--muted)}
.kv a{color:var(--accent);font-weight:600}
.gallery{margin-bottom:20px}
.g-main img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--radius);border:1px solid var(--line)}
.g-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin-top:10px}
.g-thumbs img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
.prose p{margin:0 0 1em;max-width:70ch;color:var(--ink2)}.prose p:last-child{margin:0}
.spark-box{margin-top:16px;display:grid;gap:4px;color:var(--b-fg,var(--accent))}.spark-box span{color:var(--muted);font-size:.8125rem}.spark-box small{color:var(--muted)}
.spark{width:100%;max-width:420px;height:70px}
.finder{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;padding:0 14px;background:var(--soft);margin-bottom:14px;max-width:360px}
.finder input{border:0;background:transparent;flex:1;min-height:44px;padding:0;outline:0}

/* ---- noticias ---- */
.newsblock{margin-top:36px}
.newshead{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}
.newshead h2{font:700 1.6rem var(--serif);display:flex;gap:10px;align-items:center}
.newshead .more{margin:0;padding:0}
.news{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.news-item{display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .15s}
.news-item:hover{transform:translateY(-2px);color:var(--ink)}
.thumb{display:block;aspect-ratio:16/9;background:var(--soft);overflow:hidden}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb-empty{display:flex;align-items:center;justify-content:center;color:var(--muted)}
.news-body{padding:0 16px 16px;display:grid;gap:4px}
.news-body small{color:var(--accent);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:.72rem}
.news-body strong{font:600 1.02rem/1.35 var(--serif)}
.news-compact{grid-template-columns:1fr}
.news-compact .news-item{flex-direction:row;align-items:center;box-shadow:none;gap:12px}
.news-compact .thumb{width:96px;flex:none;aspect-ratio:4/3}
.news-compact .news-body{padding:10px 12px 10px 0}.news-compact .news-body strong{font-size:.9rem}

/* ---- pie ---- */
.footer{background:#1b1f27;color:#c9cfda;margin-top:30px;padding:46px 0 24px}
.foot-grid{display:grid;grid-template-columns:1.5fr repeat(4,1fr);gap:30px}
.foot-logo{font:700 1.9rem var(--serif);color:#fff}.foot-logo b{color:#f2766b}
.foot-brand p{margin:10px 0 0;font-size:.9rem}.foot-sub{opacity:.75}
.footer h3{margin:0 0 12px;font:700 .75rem var(--font);letter-spacing:.08em;text-transform:uppercase;color:#fff}
.footer ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.footer a{color:#c9cfda;font-size:.9rem}.footer a:hover{color:#fff;text-decoration:underline}
.foot-bottom{margin-top:34px;padding-top:18px;border-top:1px solid #343a46;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:.8125rem}

/* ---- adaptación ---- */
@media (max-width:1100px){.header-in{flex-wrap:wrap}.search input{width:130px}}
@media (max-width:960px){
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}.blk.w2,.blk.w3{grid-column:span 2}
  .tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .layout{grid-template-columns:minmax(0,1fr)}
  .news{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot-grid{grid-template-columns:repeat(2,1fr)}
  .mtoggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);margin-left:auto;cursor:pointer}
  .mtoggle .close{display:none}.mtoggle[aria-expanded=true] .open{display:none}.mtoggle[aria-expanded=true] .close{display:inline-block}
  .header-in{flex-wrap:wrap;padding-top:10px;padding-bottom:10px}
  .menu{flex:1 1 100%;order:3}
  .js .menu{display:none}.js .menu.open{display:block}
  .menu>ul{flex-direction:column;gap:0}
  .menu li{border-top:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center}
  .menu li>a{flex:1}
  .subtoggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;background:transparent;color:var(--ink);cursor:pointer}
  .menu li ul{position:static;display:none;box-shadow:none;border:0;max-height:none;width:100%;padding:0 0 8px 14px;flex-basis:100%}
  .menu li:hover>ul,.menu li:focus-within>ul{display:none}
  .menu li.open>ul{display:block}
  .js .menu li:not(.open)>ul{display:none}
  .search{order:2;flex:1 1 100%}.search input{width:100%}
}
@media (max-width:640px){
  .cards{grid-template-columns:minmax(0,1fr)}.blk.w1,.blk.w2,.blk.w3{grid-column:auto}
  .news{grid-template-columns:minmax(0,1fr)}
  .tiles{grid-template-columns:minmax(0,1fr)}
  .topbar-tag{display:none}.topbar-in{justify-content:flex-end}
  .hero{padding-top:28px}
  .hbars li{grid-template-columns:minmax(0,7rem) 1fr 4rem}
  .phead{align-items:flex-start}.badge.lg{width:46px;height:46px}
  .bar-col{display:none}
  .foot-grid{grid-template-columns:1fr}
}

/* ---- gráficos de precios ---- */
.lchart{width:100%;height:auto;display:block;margin-top:4px;overflow:visible}
.lc-grid{stroke:var(--line);stroke-width:1}.lc-t{fill:var(--muted);font-size:11px}
.lc-legend{display:flex;flex-wrap:wrap;gap:6px 16px;list-style:none;margin:10px 0 0;padding:0;font-size:.8125rem;color:var(--ink2)}
.lc-legend li{display:flex;align-items:center;gap:7px}.lc-legend i{width:18px;height:4px;border-radius:3px;display:inline-block}
.lc-legend i.dash{background:repeating-linear-gradient(90deg,#6b7280 0 6px,transparent 6px 10px)!important}
.spark-box .lchart{max-width:560px}

/* ---- sol y luna, avisos y empleo ---- */
.lc-v{stroke:var(--accent);stroke-width:1.5;stroke-dasharray:3 3}.lc-vt{fill:var(--accent);font-size:11px;font-weight:700}
.moon-dark{fill:#1f2937}.moon-lit{fill:#f5f1e0}.moon-ring{stroke:#9ca3af;stroke-width:1.4}
@media (prefers-color-scheme:dark){
  html[data-theme=actual] .moon-dark{fill:#0b1220}
  html[data-theme=actual] .moon-lit{fill:#f3efd9}
  html[data-theme=actual] .moon-ring{stroke:#475569}
}
.moon-xl{filter:drop-shadow(0 0 18px rgba(245,241,224,.35))}
.chips-row{margin:0 0 16px}
.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:20px}.two-col.three{grid-template-columns:repeat(3,minmax(0,1fr))}.two-col>.panel{margin-bottom:0}
.sl-stats{margin-bottom:12px}.stat em{display:block;font-style:normal;font-size:.75rem;color:var(--muted)}.stat em.good{color:var(--good,#15803d)}.stat em.bad{color:var(--bad,#b91c1c)}
.sl-next{margin:4px 0 8px;color:var(--ink2);display:flex;gap:8px;align-items:center}
.daybar{position:relative;display:flex;height:30px;border-radius:10px;overflow:hidden;margin-top:6px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}.daybar>span{display:block;height:100%}
.daynow{position:absolute;top:-3px;bottom:-3px;width:3px;background:#fff;box-shadow:0 0 0 1.5px #111;border-radius:2px;transform:translateX(-50%)}
.daybar-t{display:flex;justify-content:space-between;font-size:.72rem;color:var(--muted);margin:4px 0 6px}
.tbl-mini th,.tbl-mini td{font-size:.84rem;padding:7px 10px}
.kv-inline{display:grid;gap:6px;margin:10px 0 0;font-size:.9rem}.kv-inline li{display:flex;gap:8px;flex-wrap:wrap;align-items:baseline}.kv-inline span{color:var(--muted)}
tr.is-today td,tr.is-today th{background:var(--b-bg)}
.moon-cell{display:inline-flex;gap:8px;align-items:center}
.moon-hero{display:grid;grid-template-columns:200px 1fr;gap:20px;align-items:center}.moon-big{display:grid;justify-items:center;gap:8px;text-align:center}.moon-big b{font:700 1.15rem var(--serif)}
.phases{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.phases li{display:flex;gap:12px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:12px}.phases small{display:block;color:var(--muted);font-size:.8rem}
.mcal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;max-width:560px}.mcal-h{font-size:.72rem;font-weight:700;color:var(--muted);text-align:center}
.mcal-d{display:grid;justify-items:center;gap:1px;padding:6px 2px;border:1px solid var(--line);border-radius:10px}.mcal-d small{font-size:.72rem;color:var(--muted)}.mcal-d em{font-style:normal;font-size:.68rem;color:var(--muted)}
.mcal-d.is-today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.sl-card{display:grid;gap:14px}.sl-times{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.sl-times small{display:block;color:var(--muted);font-size:.78rem}.sl-times b{font:700 1.25rem var(--serif)}.sl-times em{display:block;font-style:normal;font-size:.75rem}
.sl-times em.good{color:var(--good,#15803d)}.sl-times em.bad{color:var(--bad,#b91c1c)}
.sl-moon{display:flex;gap:12px;align-items:center;padding-top:12px;border-top:1px solid var(--line)}.sl-moon small{display:block;color:var(--muted);font-size:.8rem}
.emp-big{margin:4px 0 0}.emp-big b{font:700 2.1rem var(--serif)}.emp-big span{color:var(--muted)}.emp-delta{margin:2px 0 14px;display:flex;gap:6px;align-items:center;font-weight:600}
.emp-delta.good,.good{color:var(--good,#15803d)}.emp-delta.bad,.bad{color:var(--bad,#b91c1c)}
.tbl-filter{display:block;margin:4px 0 12px}.tbl-filter input{width:100%;max-width:340px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;background:var(--surface);color:var(--ink)}
.aviso-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.aviso{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:12px;border:1px solid var(--line)}.aviso small{display:block;color:var(--muted)}
.aviso-tag{flex:none;font-size:.75rem;font-weight:800;padding:3px 10px;border-radius:99px;text-transform:uppercase;letter-spacing:.03em}
.aviso-warn{background:#fef9c3}.aviso-warn .aviso-tag{background:#facc15;color:#422006}
.aviso-orange{background:#ffedd5}.aviso-orange .aviso-tag{background:#f97316;color:#fff}
.aviso-danger{background:#fee2e2}.aviso-danger .aviso-tag{background:#dc2626;color:#fff}
@media (prefers-color-scheme:dark){
  html[data-theme=actual] .aviso-warn{background:#3a3009}
  html[data-theme=actual] .aviso-orange{background:#3b1d08}
  html[data-theme=actual] .aviso-danger{background:#3b0d0d}
}
.aviso-chip{margin:10px 0 0;padding:7px 10px;border-radius:10px;font-size:.84rem;display:flex;gap:6px;align-items:center}.aviso-chip a{font-weight:600}
.aviso-chip.aviso-warn{background:#fef9c3;color:#713f12}.aviso-chip.aviso-orange{background:#ffedd5;color:#9a3412}.aviso-chip.aviso-danger{background:#fee2e2;color:#991b1b}
.alert-orange{background:#f97316;color:#fff}.alert-orange a{color:#fff;text-decoration:underline}
@media (max-width:960px){.two-col,.two-col.three{grid-template-columns:minmax(0,1fr)}.moon-hero{grid-template-columns:1fr}}
@media (max-width:640px){.sl-times{grid-template-columns:repeat(2,1fr)}}

/* ---- publicidad ---- */
.ad-wrap{margin-top:18px;margin-bottom:6px}
.ad{display:block;text-align:center;margin:0 auto}.ad-blk{margin:0}
.ad-l{display:block;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;text-align:center}
.ad a{display:inline-block;max-width:100%}.ad img{display:block;max-width:100%;height:auto;margin:0 auto;border-radius:6px}
.ad-code{max-width:100%;overflow:hidden}
.ad-adsense{min-height:90px}
.layout-side .ad{margin:0 0 20px}
.mg-top{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:12px 0;padding:0;list-style:none}
.mg-top li{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--soft,transparent)}
.mg-top small,.mg-top em{display:block;color:var(--mid);font-style:normal;font-size:.8rem}.mg-top b{font-size:1.25rem}
.mg-table{width:100%;border-collapse:collapse}.mg-table th,.mg-table td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:right}
.mg-table th:first-child,.mg-table td:first-child{text-align:left}.mg-table small{color:var(--mid)}
/* gasolineras: aviso de actualización, rango, histograma y desvío por concello */
.upd-badge{display:inline-flex;flex-wrap:wrap;gap:4px 8px;align-items:center;margin:0 0 14px;padding:8px 14px;border-radius:999px;background:var(--soft);border:1px solid var(--line);font-size:.9rem}
.upd-badge span{color:var(--muted)}
.range{margin:4px 0 20px}.range-track{position:relative;height:12px;border-radius:999px;background:linear-gradient(90deg,#16a34a,#eab308 55%,#dc2626)}
.range-avg{position:absolute;top:-4px;width:4px;height:20px;margin-left:-2px;border-radius:2px;background:var(--text,#111);box-shadow:0 0 0 2px var(--surface,#fff)}
.range-lab{position:relative;display:flex;justify-content:space-between;margin-top:6px;font-weight:600;font-size:.9rem;height:1.4em}
.range-lab .mid{position:absolute;transform:translateX(-50%);font-weight:500;color:var(--muted);font-size:.8rem;top:0}
.hist{display:flex;align-items:flex-end;gap:6px;height:170px;margin-top:10px;padding-bottom:22px;position:relative}
.hist-col{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative}
.hist-col i{display:block;width:100%;border-radius:6px 6px 0 0;background:var(--accent);opacity:.85}
.hist-col b{font-size:.78rem;color:var(--muted);margin-bottom:3px}
.hist-col span{position:absolute;bottom:-22px;font-size:.72rem;color:var(--muted)}
.dev{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.dev li{display:grid;grid-template-columns:minmax(90px,1.1fr) 2fr auto 64px;gap:10px;align-items:center;font-size:.9rem}
.dev a{font-weight:600;text-decoration:none;color:inherit}.dev b{font-variant-numeric:tabular-nums}.dev small{text-align:right;font-variant-numeric:tabular-nums}
.dev .good{color:#15803d}.dev .bad{color:#b91c1c}
.dev-bar{position:relative;height:14px;background:var(--soft);border-radius:7px}.dev-bar::after{content:"";position:absolute;left:50%;top:-2px;bottom:-2px;width:1px;background:var(--line)}
.dev-bar i{position:absolute;top:0;bottom:0;border-radius:7px}.dev-bar .neg{background:#16a34a}.dev-bar .pos{background:#dc2626}
@media(max-width:560px){.dev li{grid-template-columns:1fr 1.4fr auto;}.dev small{display:none}}
.chg{display:inline-flex;gap:4px;align-items:center;font-size:.78rem;color:var(--muted)}.chg-old{color:#b45309}.chg-new{color:#15803d}
.tbl-prices td.num .chg{white-space:normal;justify-content:flex-end;text-align:right}
@media(max-width:560px){.tbl-prices th:nth-child(3),.tbl-prices td:nth-child(3){display:none}}
/* cabecera: el menú es el de los servicios de hoy.ourense.com */
.header .menu.svcnav{background:transparent;border:0}
.header .menu .svcnav-in{flex-wrap:wrap;overflow:visible;padding:8px 0;gap:6px;justify-content:flex-start}
.header .menu .svcnav-in a{padding:7px 12px;font-size:.84rem}
@media (max-width:760px){
  .header .menu .svcnav-in{flex-direction:column;gap:0;padding:4px 0}
  .header .menu .svcnav-in a{border:0;border-radius:0;border-top:1px solid var(--line);background:transparent;padding:12px 4px;font-size:.95rem}
}
@media (max-width:760px){.header .menu .svcnav-in a[aria-current]{background:var(--soft);color:var(--ink)}.header .menu .svcnav-in a[aria-current] .ic{color:var(--accent)}}
/* tarjetas de portada: el texto largo (p. ej. «Razonablemente buena») baja de línea en vez de salirse */
.tile>div{min-width:0;flex:1}
.tile b{font-size:clamp(1.05rem,1.55vw + .35rem,1.45rem);overflow-wrap:anywhere;hyphens:auto}
.tile em,.tile small{overflow-wrap:anywhere}
/* últimas noticias: lista compacta, miniaturas pequeñas y texto normal */
.news:not(.news-compact){grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}
.news:not(.news-compact) .news-item{flex-direction:row;align-items:center;gap:12px;box-shadow:none;padding:8px;border-radius:12px}
.news:not(.news-compact) .thumb{width:104px;flex:none;aspect-ratio:4/3;border-radius:8px}
.news:not(.news-compact) .news-body{padding:0;gap:2px;min-width:0}
.news:not(.news-compact) .news-body small{font-weight:600;font-size:.68rem}
.news:not(.news-compact) .news-body strong{font:500 .92rem/1.35 var(--font);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.news-compact .news-body strong{font:500 .88rem/1.35 var(--font)}
@media (max-width:760px){.news:not(.news-compact){grid-template-columns:minmax(0,1fr)}.news:not(.news-compact) .thumb{width:88px}}
.pop-rank .dev-bar::after{display:none}.pop-rank h2{font-size:1.05rem}
