/* listados.css — Formato ÚNICO de los LISTADOS de la plataforma.
 *
 * Es el mismo aspecto de la biblioteca de «Prueba escrita»: la barra de
 * filtros es un panel claro con el rótulo en negrita justo encima de cada
 * control (y el buscador al final), y la tabla lleva el encabezado azul del
 * establecimiento, filas cebra y realce al pasar el cursor.
 *
 * Las apps con /portal-web/base.css ya traen estas reglas. Este archivo es
 * para las páginas que NO importan base.css y tienen su propio <style>
 * (Gestión curricular y Generador de pruebas LaTeX): así se ven igual sin
 * arrastrar todo el sistema de diseño de las apps.
 *
 * Va SIEMPRE junto a:
 *     <script src="/portal-web/filtros.js"></script>   (ordena los filtros)
 *     <script src="/portal-web/tablas.js"></script>    (ordena las columnas)
 *
 * Autor del programa: Samuel Sanhueza Toloza.
 */

/* ---------------------------------------------------------------------
   Barra de filtros
   --------------------------------------------------------------------- */
.filtros{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;margin-bottom:12px;}
.filtros .campo{display:flex;flex-direction:column;gap:4px;flex:1 1 160px;min-width:140px;margin:0;}
.filtros .campo.ancho{flex:2 1 240px;}

/* Formato estándar (lo pone solo filtros.js al ordenar la barra). */
/* Los nombres de los tokens cambian según la página (las apps usan --panel /
   --linea / --texto; el portal usa --tarjeta / --borde / --tinta), así que
   cada color se pide en cadena: primero el de las apps, luego el del portal y
   al final un valor fijo. Así el tema oscuro sigue funcionando en las dos. */
.filtros.filtros-std{display:flex !important;grid-template-columns:none !important;
  flex-wrap:wrap;gap:12px 16px;align-items:flex-end;
  background:var(--panel-2,var(--tarjeta,#f5f8fa));
  border:1px solid var(--linea,var(--borde,#e4e8f0));
  border-radius:var(--radio-sm,10px);padding:14px 16px;margin:8px 0 14px;}
.filtros.filtros-std .campo{display:flex;flex-direction:column;gap:4px;
  flex:1 1 170px;min-width:150px;}
.filtros.filtros-std .campo > label{flex:0 0 auto !important;display:block;
  width:auto;min-width:0;height:auto;min-height:0;margin:0 0 5px;padding:0;border:none;
  background:none;font-size:13.5px;font-weight:700;color:var(--texto,var(--tinta,#1d2433));
  text-transform:none;letter-spacing:0;}
.filtros.filtros-std .campo > select,
.filtros.filtros-std .campo > input{width:100%;height:40px;min-height:40px;
  box-sizing:border-box;font:inherit;font-size:14px;padding:8px 12px;
  border:1px solid var(--linea-fuerte,var(--borde,#cfd6e0));
  border-radius:var(--radio-sm,10px);
  background:var(--panel,var(--tarjeta,#fff));color:var(--texto,var(--tinta,#1d2433));}

/* ---------------------------------------------------------------------
   Tabla de listado
   --------------------------------------------------------------------- */
/* `data-tabla` = tabla del modelo de la plataforma (tablas.js le ordena las
   columnas). `.lista-simple` = solo el aspecto, para las tablas con columnas
   propias que no hay que reordenar. */
table[data-tabla],table.lista-simple{border-collapse:separate;border-spacing:0;width:100%;font-size:13px;}
table[data-tabla] thead th,table.lista-simple thead th,
table[data-tabla] > tr:first-child th,table.lista-simple > tr:first-child th,
table[data-tabla] > tbody > tr:first-child th,table.lista-simple > tbody > tr:first-child th{
  background:linear-gradient(135deg,var(--header-1,#0a2c3d),var(--header-2,#0e3a4f));
  color:var(--header-texto,#eef3ff);text-align:left;padding:11px 12px;
  font-weight:600;font-size:12px;letter-spacing:.02em;}
table[data-tabla] tbody td,table.lista-simple tbody td{padding:9px 12px;
  border-bottom:1px solid var(--linea,var(--borde,#e4e8f0));
  vertical-align:middle;color:var(--texto,var(--tinta,#1d2433));}
table[data-tabla] tbody tr:nth-child(even),
table.lista-simple tbody tr:nth-child(even){background:var(--raya,rgba(14,58,79,.035));}
table[data-tabla] tbody tr:hover,
table.lista-simple tbody tr:hover{background:var(--acento-suave,rgba(14,58,79,.08));}
table[data-tabla] tbody tr:last-child td,
table.lista-simple tbody tr:last-child td{border-bottom:none;}
