:root{
  --tinta:#0B418A; --tinta-osc:#06294f; --papel:#f4f6f8; --superficie:#fff; --linea:#dfe3e8; --texto:#1e2327; --suave:#5c655f;
  --acento:#0B418A; --acento-osc:#06294f; --marca:#e02020; --alerta:#b93c0b; --ok:#2a7a4b;
  --fuente:'Barlow',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --fuente-num:'Barlow Semi Condensed','Barlow',system-ui,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--papel);color:var(--texto);font:16px/1.45 var(--fuente)}
a{color:var(--acento)}
h1,h2,h3{font-family:var(--fuente-num);font-weight:600;line-height:1.15;margin:0 0 .5rem}
h1{font-size:1.75rem} h2{font-size:1.25rem}
:focus-visible{outline:3px solid var(--marca);outline-offset:2px}
.num{font-family:var(--fuente-num);font-variant-numeric:tabular-nums}
.suave{color:var(--suave)}

/* Encabezado */
.top{background:var(--tinta);color:#fff;position:sticky;top:0;z-index:20}
.top-in{display:flex;justify-content:space-between;align-items:center;padding:.6rem 1rem;max-width:1200px;margin:0 auto}
.brand{font:600 1.25rem var(--fuente-num);color:#fff;text-decoration:none}
.brand span{color:#ffd166}
.who{display:flex;gap:1rem;align-items:center;font-size:.9rem}
.who small{color:#cfe0f5;margin-left:.35rem}
.who a{color:#fff}
.sub{background:var(--tinta-osc);border-top:1px solid #0d3868}
.sub-in{max-width:1200px;margin:0 auto;display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;align-items:center;padding:.4rem 1rem}
.seg{display:inline-flex;background:#062044;border-radius:8px;padding:3px}
.seg a{color:#cfe0f5;text-decoration:none;padding:.35rem .9rem;border-radius:6px;font-weight:500}
.seg a.on{background:#fff;color:var(--tinta);font-weight:600}
.tabs{display:flex;gap:.25rem;overflow-x:auto;scrollbar-width:none;flex:1}
.tabs a{color:#cfe0f5;text-decoration:none;padding:.45rem .8rem;border-radius:6px;white-space:nowrap}
.tabs a.on{color:#fff;background:#0d3868}

.wrap{max-width:1200px;margin:0 auto;padding:1.25rem 1rem 4rem}
.flash{padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;border-left:5px solid var(--ok);background:#e3f1e8}
.flash.error{border-color:var(--alerta);background:#f8e4da}
.flash.aviso{border-color:#e0a000;background:#fdf3d0}

/* Tarjetas y tablas */
.card{background:var(--superficie);border:1px solid var(--linea);border-radius:10px;padding:1rem;margin-bottom:1rem}
.filtros{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;align-items:end}
.tabla-wrap{overflow-x:auto;background:var(--superficie);border:1px solid var(--linea);border-radius:10px}
table{border-collapse:collapse;width:100%;font-size:.95rem}
th,td{padding:.55rem .75rem;text-align:left;border-bottom:1px solid #e6e9e2;white-space:nowrap}
th{font:600 .85rem var(--fuente);color:var(--suave);background:#f7f8f5;position:sticky;top:0}
td.r,th.r{text-align:right;font-variant-numeric:tabular-nums}
tr.anulado td{color:#8a928b;text-decoration:line-through}
tfoot td{font-weight:600;background:#f7f8f5}
.vacio{padding:2rem 1rem;text-align:center;color:var(--suave)}

.pill{display:inline-block;padding:.1rem .55rem;border-radius:99px;font-size:.8rem;font-weight:600;background:#e6e9e2}
.pill.solicitado{background:#fdf3d0;color:#6b5100}
.pill.autorizado{background:#dcefe3;color:#1d5c37}
.pill.anulado{background:#eee;color:#666}
.mejor{color:var(--ok)} .peor{color:var(--alerta)}

/* Formularios */
label{display:block;font-weight:500;margin-bottom:.25rem;font-size:.95rem}
input[type=text],input[type=email],input[type=number],input[type=password],input[type=date],input[type=datetime-local],select,textarea{
  width:100%;padding:.65rem .7rem;font:inherit;border:1px solid #aeb5aa;border-radius:8px;background:#fff;color:var(--texto);min-height:44px}
input:focus,select:focus,textarea:focus{border-color:var(--acento)}
.campo{margin-bottom:1rem}
.ayuda{font-size:.85rem;color:var(--suave);margin-top:.25rem}
.check{display:flex;gap:.6rem;align-items:flex-start}
.check input{width:22px;height:22px;margin-top:.15rem;flex:none}
.check label{margin:0}
.grid2{display:grid;grid-template-columns:1fr;gap:0 1rem}
@media(min-width:720px){.grid2{grid-template-columns:1fr 1fr}}
.btn{display:inline-block;background:var(--acento);color:#fff;border:0;border-radius:8px;padding:.7rem 1.25rem;font:600 1rem var(--fuente);cursor:pointer;text-decoration:none;min-height:44px}
.btn:hover{background:var(--acento-osc)}
.btn.sec{background:#fff;color:var(--acento);border:1px solid var(--acento)}
.btn.peligro{background:var(--marca)}
.acciones{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}

/* Tarjetas KPI (como .lectores de Combustible Rochell) */
.lectores{background:var(--tinta);border-radius:12px;padding:1rem 1.1rem;margin-bottom:1rem;border-bottom:6px solid var(--marca);
  display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.25rem}
@media(min-width:900px){.lectores{grid-template-columns:repeat(4,1fr)}}
.lec{min-width:0}
.lec span{display:block;font-size:.85rem;color:#cfe0f5}
.lec b{display:block;font:700 1.7rem/1.15 var(--fuente-num);font-variant-numeric:tabular-nums;color:#fff;overflow-wrap:anywhere}
.lec .dl-n{display:block;font-size:.85rem;color:#cfe0f5;margin-top:.15rem}
.lec b.rojo{color:#ffb3b3}

.dash{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr)}
@media(min-width:900px){.dash{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)} .dash .span2{grid-column:1/-1}}
.dash .card{margin-bottom:0}
.dash h2{margin-bottom:.6rem}

.seg-claro{display:inline-flex;background:#e6e9e2;border-radius:8px;padding:3px}
.seg-claro a{padding:.3rem .75rem;border-radius:6px;text-decoration:none;color:var(--texto);font-weight:500;font-size:.9rem}
.seg-claro a.on{background:#fff;box-shadow:0 0 0 1px var(--linea);font-weight:600}

.rank{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
.rk-top{display:flex;justify-content:space-between;gap:.75rem;align-items:baseline;flex-wrap:wrap}
.rk-l small{color:var(--suave)}
.rk-v{font-size:.9rem;color:var(--suave)}
.rk-b{background:#e6e9e2;border-radius:99px;height:8px;overflow:hidden;margin-top:.25rem}
.rk-b i{display:block;height:100%;background:var(--acento);border-radius:99px}

.chip{display:inline-block;font-size:.72rem;font-weight:600;padding:.05rem .45rem;border-radius:99px;margin-left:.35rem}
.chip.peor{background:#f8e4da;color:var(--alerta)} .chip.mejor{background:#dcefe3;color:var(--ok)}
strong.peor{color:var(--alerta)}

.rangos{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}
.rangos>a,.rango-custom summary{display:inline-block;padding:.45rem .85rem;border:1px solid #aeb5aa;border-radius:99px;background:#fff;color:var(--texto);text-decoration:none;cursor:pointer;font-weight:500;min-height:38px}
.rangos>a.on,.rango-custom.on summary{background:var(--tinta);color:#fff;border-color:var(--tinta)}
.rango-custom summary{list-style:none} .rango-custom summary::-webkit-details-marker{display:none}
.rango-custom[open]{flex-basis:100%}

.pendientes{border-left:5px solid #e0a000;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}

/* Login */
.login{max-width:380px;margin:12vh auto 0}
.login h1{font-size:2rem}
.login h1 span{color:var(--acento)}

@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Ajustes para pantallas angostas */
.lec b{white-space:nowrap;font-size:clamp(1.3rem,5.6vw,1.7rem)}
@media(min-width:900px){.lec b{font-size:1.7rem}}
@media(max-width:640px){
  .sub-in .tabs{flex:1 1 100%;order:3}
  .hide-sm{display:none}
  .wrap{padding-left:.75rem;padding-right:.75rem}
  th,td{padding:.5rem .5rem}
}
@media(max-width:640px){
  .lectores{grid-template-columns:1fr 1fr}
}
/* Cycle target (inc/meta_ciclos.php): % of 5 cycles/min — green ≥ 95 %, yellow 80–94 %, red < 80 % */
.meta-pct{display:inline-block;min-width:3.2em;text-align:center;font-weight:700;font-variant-numeric:tabular-nums;padding:.05rem .45rem;border-radius:99px}
.meta-pct.ok{background:#dcefe3;color:#1d5c37} .meta-pct.medio{background:#fdf3d0;color:#6b5100} .meta-pct.bajo{background:#f8e4da;color:#8a2a05}
.meta-pct.sin{color:var(--suave);font-weight:400}
.meta-det{color:var(--suave);font-variant-numeric:tabular-nums;white-space:nowrap}
