:root{
  --massy-azul:#003865;
  --massy-celeste:#00A3E0;
  --gris:#6b7280;
  --bg:#f5f7fa;
  --card:#ffffff;
  --borde:#e5e7eb;

  /* tonos de resalto derivados */
  --row-hover-bg: rgba(0,163,224,0.10); /* celeste muy suave */
  --row-focus-bg: rgba(0,163,224,0.16);
  --row-left-accent: var(--massy-celeste);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:#1f2937}

.menu-superior{background:var(--massy-azul);padding:8px 12px;position:sticky;top:0;z-index:50}
.dropbtn{background:var(--massy-azul);color:#fff;border:1px solid rgba(255,255,255,.2);padding:8px 12px;border-radius:6px;cursor:pointer}
.dropdown{position:relative;display:inline-block}
.dropdown-content{display:none;position:absolute;background:#fff;min-width:220px;box-shadow:0 6px 18px rgba(0,0,0,.15);border-radius:8px;overflow:hidden}
.dropdown:hover .dropdown-content{display:block}
.dropdown-content a{color:#111;padding:10px 14px;text-decoration:none;display:block;border-bottom:1px solid #f1f5f9}
.dropdown-content a:hover{background:#f8fafc}

.logo-container{display:flex;justify-content:center;margin:16px 0 6px}
.logo{height:64px;object-fit:contain}

h1{text-align:center;color:var(--massy-azul);margin:8px 0}

.container{max-width:1100px;margin:0 auto;background:var(--card);border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,.08);padding:18px}

/* Formulario */
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:10px}
#searchForm input{padding:10px;border:1px solid var(--borde);border-radius:8px}
#searchForm input.disabled{background:#eef2f7;cursor:not-allowed}
#searchForm button{padding:10px 12px;border:none;border-radius:8px;background:var(--massy-azul);color:#fff;cursor:pointer}
#searchForm .btn-secondary{background:#475569}
#searchForm .btn-secondary:hover{filter:brightness(1.05)}
#searchForm button:hover{filter:brightness(1.1)}

/* Masivo */
.bulk-toggle{margin:6px 0 4px}
.chk{display:flex;gap:8px;align-items:center;user-select:none}
.bulk-box{margin-top:6px;border:1px solid var(--borde);background:#fff;padding:12px;border-radius:10px}
.bulk-box textarea{width:100%;padding:10px;border:1px solid var(--borde);border-radius:8px;resize:vertical}
.row{display:flex;align-items:center;gap:12px;margin-top:8px}
.row.wrap{flex-wrap:wrap}
.muted{color:#6b7280;font-size:12px}

/* Loader */
.loader{
  width:36px;height:36px;border-radius:50%;
  border:4px solid #e2e8f0;border-top-color:var(--massy-celeste);
  margin:14px auto;animation:spin 1s linear infinite
}
@keyframes spin{to{transform:rotate(360deg)}}

/* Mensajes */
.message{margin:10px 0;padding:10px;border-radius:8px;background:#ecfeff;color:#0c4a6e;border:1px solid #a5f3fc}

/* Resultados */
.tabla-resultados{width:100%;border-collapse:collapse;margin-top:10px}
.tabla-resultados th,.tabla-resultados td{padding:10px;border:1px solid var(--borde);font-size:14px;text-align:left}
.tabla-resultados th{background:var(--massy-azul);color:#fff;position:sticky;top:0}
.tabla-resultados tr:nth-child(even){background:#f9fafb}

/* --- Resalto de fila completa al pasar el mouse (estilo revisión de caso) --- */
.tabla-resultados tbody tr {
  transition: background-color .15s ease, box-shadow .15s ease;
  outline: none; /* gestionamos foco manualmente */
}
.tabla-resultados tbody tr.row-hover:hover {
  background: var(--row-hover-bg);
  box-shadow: inset 4px 0 0 0 var(--row-left-accent);
}
.tabla-resultados tbody tr.row-hover:focus-within,
.tabla-resultados tbody tr.row-hover:focus {
  background: var(--row-focus-bg);
  box-shadow: inset 4px 0 0 0 var(--row-left-accent);
}

/* Indicador visual de foco accesible */
.tabla-resultados tbody tr.row-hover:focus-visible {
  outline: 2px solid var(--massy-celeste);
  outline-offset: -2px;
}

/* Enlaces dentro de la tabla */
.tabla-resultados a.download-link {
  text-decoration: none;
  font-weight: 600;
}
.tabla-resultados a.download-link:hover {
  text-decoration: underline;
}

/* Paginación */
.pagination{display:flex;justify-content:center;gap:10px;align-items:center;margin:18px 0}
.pagination button{padding:8px 12px;border:none;border-radius:8px;background:var(--massy-azul);color:#fff;cursor:pointer}
.pagination button:disabled{opacity:.6;cursor:not-allowed}

/* Footer */
.footer{max-width:1100px;margin:18px auto;color:#64748b;font-size:12px;text-align:center}

@media(max-width:900px){
  .grid-4{grid-template-columns:repeat(2,1fr)}
}
