[hidden]{display:none !important}
/* Vista Gestion - hoja de estilos simple y funcional */
:root{
  --fondo:#f5f6f8; --panel:#fff; --texto:#1f2933; --suave:#6b7280;
  --linea:#e3e6ea; --acento:#1f6feb; --ok:#158a4a; --mal:#b42318; --aviso:#8a5a00;
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  background:var(--fondo);color:var(--texto);font-size:15px}
h1,h2,h3{margin:0 0 .6rem}
h2{font-size:1.4rem}
h3{font-size:1.1rem;margin-top:1.6rem}
small{color:var(--suave);font-weight:400}

/* ---------- login ---------- */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}
.tarjeta-login{background:var(--panel);padding:2rem;border-radius:12px;width:100%;max-width:380px;
  box-shadow:0 6px 24px rgba(0,0,0,.08);display:flex;flex-direction:column;gap:.8rem}
.tarjeta-login .sub{margin:0 0 .5rem;color:var(--suave)}
.tarjeta-login label{display:flex;flex-direction:column;font-size:.85rem;color:var(--suave);gap:.25rem}
.tarjeta-login input[type=text],.tarjeta-login input[type=password]{padding:.6rem;font-size:1rem;
  border:1px solid var(--linea);border-radius:8px}
.recordar{flex-direction:row!important;align-items:center;gap:.5rem!important;color:var(--texto)!important}
.nota{font-size:.78rem;color:var(--suave);margin:.4rem 0 0;line-height:1.4}

/* ---------- estructura ---------- */
.cabecera{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;background:var(--panel);
  padding:.7rem 1rem;border-bottom:1px solid var(--linea);position:sticky;top:0;z-index:10}
#menu{display:flex;gap:.25rem;flex-wrap:wrap;flex:1}
#menu button{border:0;background:transparent;padding:.5rem .7rem;border-radius:8px;cursor:pointer;
  font-size:.9rem;color:var(--suave)}
#menu button:hover{background:var(--fondo);color:var(--texto)}
#menu button.activo{background:var(--acento);color:#fff}
.usuario{display:flex;align-items:center;gap:.6rem;font-size:.85rem;color:var(--suave)}
main{padding:1.2rem;max-width:1400px;margin:0 auto}

/* ---------- tarjetas ---------- */
.tarjetas{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.7rem;margin-bottom:1rem}
.tarjeta{background:var(--panel);border:1px solid var(--linea);border-radius:10px;padding:.8rem}
.tarjeta span{display:block;font-size:.78rem;color:var(--suave);margin-bottom:.3rem}
.tarjeta strong{font-size:1.3rem}
.tarjeta.ok strong{color:var(--ok)}
.tarjeta.mal strong{color:var(--mal)}

/* ---------- formularios ---------- */
.formulario{background:var(--panel);border:1px solid var(--linea);border-radius:10px;padding:1rem;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.7rem;margin-bottom:1.2rem}
.formulario label{display:flex;flex-direction:column;font-size:.8rem;color:var(--suave);gap:.25rem}
.formulario label.check{flex-direction:row;align-items:center;gap:.4rem}
.formulario input,.formulario select{padding:.5rem;border:1px solid var(--linea);border-radius:8px;
  font-size:.95rem;background:#fff;color:var(--texto)}
.formulario button{align-self:end}
.filtros{display:flex;gap:.7rem;flex-wrap:wrap;align-items:end;margin:.8rem 0}
.filtros label{display:flex;flex-direction:column;font-size:.8rem;color:var(--suave);gap:.25rem}
.filtros input{padding:.45rem;border:1px solid var(--linea);border-radius:8px}

/* ---------- botones ---------- */
.btn{padding:.55rem .9rem;border:1px solid var(--linea);background:#fff;border-radius:8px;
  cursor:pointer;font-size:.9rem;color:var(--texto)}
.btn:hover{background:var(--fondo)}
.btn.primario{background:var(--acento);border-color:var(--acento);color:#fff}
.btn.primario:hover{filter:brightness(1.08)}
.btn.menor{padding:.3rem .5rem;font-size:.78rem}

/* ---------- tablas ---------- */
.tabla{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--linea);
  border-radius:10px;overflow:hidden;margin-bottom:1rem;font-size:.88rem}
.tabla th,.tabla td{padding:.5rem .6rem;text-align:left;border-bottom:1px solid var(--linea);vertical-align:top}
.tabla th{background:#fafbfc;font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;color:var(--suave)}
.tabla td.num,.tabla th.num{text-align:right;white-space:nowrap}
.tabla tr:last-child td{border-bottom:0}
.tabla tr.mejor{background:#eefaf2}
.tabla tr.mejor td{font-weight:500}

/* ---------- varios ---------- */
.ok{color:var(--ok)}
.mal{color:var(--mal)}
.error{color:var(--mal);font-size:.9rem}
.total{background:var(--panel);border:1px solid var(--linea);border-radius:8px;padding:.6rem .8rem}
.alerta{background:#fff8e6;border:1px solid #f0d68a;color:var(--aviso);padding:.7rem .9rem;
  border-radius:8px;margin-bottom:1rem;font-size:.88rem}
.alerta ul{margin:.4rem 0 0;padding-left:1.2rem}
.avisos-lista{background:var(--panel);border:1px solid var(--linea);border-radius:10px;
  padding:.8rem 1.2rem;list-style:none;margin:0 0 1rem}
.avisos-lista li{padding:.25rem 0;font-size:.9rem}
.cargando{color:var(--suave)}

/* notificaciones flotantes */
.avisos{position:fixed;right:1rem;bottom:1rem;display:flex;flex-direction:column;gap:.5rem;z-index:50}
.aviso{background:#1f2933;color:#fff;padding:.6rem .9rem;border-radius:8px;font-size:.88rem;
  box-shadow:0 4px 14px rgba(0,0,0,.2);max-width:340px}
.aviso.error{background:var(--mal)}

/* dialogo de contrasena */
dialog{border:0;border-radius:12px;padding:1.4rem;box-shadow:0 10px 40px rgba(0,0,0,.25);max-width:340px}
dialog::backdrop{background:rgba(15,23,42,.55)}
dialog input{width:100%;padding:.6rem;border:1px solid var(--linea);border-radius:8px;margin:.6rem 0}
dialog menu{display:flex;gap:.5rem;justify-content:flex-end;padding:0;margin:.6rem 0 0}
dialog .sub{font-size:.82rem;color:var(--suave);margin:.2rem 0 0}

@media (max-width:640px){
  main{padding:.7rem}
  .tabla{font-size:.8rem}
}
