/*
 * Tema de Checkea sobre Bootstrap 5.3 (sin compilar Sass): solo se sobrescriben variables CSS y unos
 * pocos componentes. Las vistas siguen usando clases estándar de Bootstrap; no hay clases de tema
 * que recordar salvo las del layout (.marca, .pie) y la portada (.portada-*).
 *
 * Dirección: libro de registro. Papel cálido, tinta oscura, líneas finas en lugar de sombras,
 * cifras tabulares (horas y minutos alineados) y un solo color de acento.
 */

/* Fuentes propias (wwwroot/fuentes, licencia OFL en OFL.txt): solo el subconjunto latino, que cubre el
 * español. IBM Plex Sans es variable (un archivo para 400–600). */
@font-face {
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("../fuentes/ibm-plex-sans-latin.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fuentes/ibm-plex-mono-500-latin.woff2") format("woff2");
}

:root {
  /* Paleta */
  --ck-tinta: #17202a;
  --ck-tinta-rgb: 23, 32, 42;
  --ck-tenue: #646a71;
  --ck-papel: #f6f5f1;
  --ck-superficie: #ffffff;
  --ck-linea: #e4e2db;
  --ck-linea-fuerte: #cdcac0;

  --ck-primario: #1e4d5c;
  --ck-primario-rgb: 30, 77, 92;
  --ck-primario-hover: #163b47;
  --ck-primario-suave: #e8eff1;

  --ck-exito: #2e6a46;
  --ck-exito-rgb: 46, 106, 70;
  --ck-exito-hover: #24543a;
  --ck-advertencia: #b07a0c;
  --ck-advertencia-rgb: 176, 122, 12;
  --ck-peligro: #a5332b;
  --ck-peligro-rgb: 165, 51, 43;
  --ck-peligro-hover: #8a2a23;
  --ck-info: #2f5d84;
  --ck-info-rgb: 47, 93, 132;

  --ck-fuente: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --ck-fuente-mono: "IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;
  --ck-anillo: 0 0 0 .2rem rgba(var(--ck-primario-rgb), .22);

  /* Bootstrap */
  --bs-body-font-family: var(--ck-fuente);
  --bs-body-font-size: .9375rem;
  --bs-body-line-height: 1.55;
  --bs-body-color: var(--ck-tinta);
  --bs-body-color-rgb: var(--ck-tinta-rgb);
  --bs-body-bg: var(--ck-papel);
  --bs-emphasis-color: var(--ck-tinta);
  --bs-secondary-color: var(--ck-tenue);
  --bs-tertiary-bg: #efeee9;
  --bs-heading-color: var(--ck-tinta);

  --bs-primary: var(--ck-primario);
  --bs-primary-rgb: var(--ck-primario-rgb);
  --bs-success: var(--ck-exito);
  --bs-success-rgb: var(--ck-exito-rgb);
  --bs-warning: var(--ck-advertencia);
  --bs-warning-rgb: var(--ck-advertencia-rgb);
  --bs-danger: var(--ck-peligro);
  --bs-danger-rgb: var(--ck-peligro-rgb);
  --bs-info: var(--ck-info);
  --bs-info-rgb: var(--ck-info-rgb);
  --bs-secondary: var(--ck-tenue);
  --bs-secondary-rgb: 100, 106, 113;
  --bs-light: #efeee9;
  --bs-light-rgb: 239, 238, 233;

  --bs-primary-text-emphasis: #143440;
  --bs-primary-bg-subtle: var(--ck-primario-suave);
  --bs-primary-border-subtle: #c3d4d9;
  --bs-success-text-emphasis: #1f4a31;
  --bs-success-bg-subtle: #e9f2ec;
  --bs-success-border-subtle: #c4dccd;
  --bs-warning-text-emphasis: #5e4206;
  --bs-warning-bg-subtle: #fbf4e2;
  --bs-warning-border-subtle: #ecd9a8;
  --bs-danger-text-emphasis: #6e211c;
  --bs-danger-bg-subtle: #f9eae8;
  --bs-danger-border-subtle: #ebc5c1;
  --bs-info-text-emphasis: #1f3f5a;
  --bs-info-bg-subtle: #eaf0f6;
  --bs-info-border-subtle: #c6d5e4;
  --bs-secondary-text-emphasis: #3d4248;
  --bs-secondary-bg-subtle: #efeee9;
  --bs-secondary-border-subtle: var(--ck-linea);

  --bs-link-color: var(--ck-primario);
  --bs-link-color-rgb: var(--ck-primario-rgb);
  --bs-link-hover-color: var(--ck-primario-hover);
  --bs-link-hover-color-rgb: 22, 59, 71;

  --bs-border-color: var(--ck-linea);
  --bs-border-color-translucent: var(--ck-linea);
  --bs-border-radius: .375rem;
  --bs-border-radius-sm: .25rem;
  --bs-border-radius-lg: .5rem;
  --bs-focus-ring-color: rgba(var(--ck-primario-rgb), .22);
}

/* ---------- Base ---------- */

body {
  background-color: var(--ck-papel);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
  font-weight: 600;
  letter-spacing: -.012em;
}

.h3, h1.h3 { font-size: 1.5rem; }
.h6 { letter-spacing: 0; }

/* Subtítulos de sección en mayúsculas (los formularios usan .h6.text-uppercase.text-muted). */
.text-uppercase.h6, h2.text-uppercase {
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .08em;
  color: var(--ck-tenue) !important;
}

.lead { font-weight: 400; color: var(--ck-tenue); }

a { text-underline-offset: .18em; text-decoration-thickness: 1px; }

::selection { background: rgba(var(--ck-primario-rgb), .16); }

/* Horas, minutos, folios y fechas alineados en columnas. */
table, .badge, .list-group, .form-control, code, .progress {
  font-variant-numeric: tabular-nums;
}

code { color: var(--ck-tinta); font-family: var(--ck-fuente-mono); font-size: .85em; }

hr { border-color: var(--ck-linea); opacity: 1; }

:focus-visible { outline: 2px solid rgba(var(--ck-primario-rgb), .55); outline-offset: 2px; }

/* El resumen de validación se renderiza vacío (para la validación del cliente); sin errores no se muestra. */
.validation-summary-valid {
  display: none;
}

/* ---------- Superficies: líneas finas en lugar de sombras ---------- */

.shadow-sm { box-shadow: 0 1px 2px rgba(var(--ck-tinta-rgb), .04) !important; }
.shadow { box-shadow: 0 4px 16px rgba(var(--ck-tinta-rgb), .07) !important; }

.card {
  --bs-card-border-color: var(--ck-linea);
  --bs-card-cap-bg: transparent;
  --bs-card-bg: var(--ck-superficie);
}

/* Tarjetas que son enlaces (accesos del inicio). */
a.card {
  color: inherit;
  transition: border-color .15s ease, transform .15s ease;
}
a.card:hover { border-color: var(--ck-linea-fuerte); transform: translateY(-1px); }
a.card h2::after {
  content: "→";
  display: inline-block;
  margin-left: .35em;
  color: var(--ck-tenue);
  transition: transform .15s ease, color .15s ease;
}
a.card:hover h2::after { transform: translateX(3px); color: var(--ck-primario); }

.list-group {
  --bs-list-group-border-color: var(--ck-linea);
  --bs-list-group-bg: var(--ck-superficie);
  --bs-list-group-action-hover-bg: #faf9f6;
  --bs-list-group-action-active-bg: var(--ck-papel);
  --bs-list-group-active-bg: var(--ck-primario);
  --bs-list-group-active-border-color: var(--ck-primario);
}
.list-group-item { padding: .8rem 1rem; }

/* ---------- Botones ---------- */

.btn {
  --bs-btn-font-weight: 500;
  --bs-btn-padding-x: .9rem;
  --bs-btn-focus-box-shadow: var(--ck-anillo);
  letter-spacing: .005em;
}
.btn-sm { --bs-btn-padding-x: .65rem; }
.btn-lg { --bs-btn-font-size: 1.05rem; --bs-btn-padding-y: .65rem; }

.btn-primary {
  --bs-btn-bg: var(--ck-primario);
  --bs-btn-border-color: var(--ck-primario);
  --bs-btn-hover-bg: var(--ck-primario-hover);
  --bs-btn-hover-border-color: var(--ck-primario-hover);
  --bs-btn-active-bg: var(--ck-primario-hover);
  --bs-btn-active-border-color: var(--ck-primario-hover);
  --bs-btn-disabled-bg: var(--ck-primario);
  --bs-btn-disabled-border-color: var(--ck-primario);
}
.btn-success {
  --bs-btn-bg: var(--ck-exito);
  --bs-btn-border-color: var(--ck-exito);
  --bs-btn-hover-bg: var(--ck-exito-hover);
  --bs-btn-hover-border-color: var(--ck-exito-hover);
  --bs-btn-active-bg: var(--ck-exito-hover);
  --bs-btn-active-border-color: var(--ck-exito-hover);
  --bs-btn-disabled-bg: var(--ck-exito);
  --bs-btn-disabled-border-color: var(--ck-exito);
}
.btn-danger {
  --bs-btn-bg: var(--ck-peligro);
  --bs-btn-border-color: var(--ck-peligro);
  --bs-btn-hover-bg: var(--ck-peligro-hover);
  --bs-btn-hover-border-color: var(--ck-peligro-hover);
  --bs-btn-active-bg: var(--ck-peligro-hover);
  --bs-btn-active-border-color: var(--ck-peligro-hover);
  --bs-btn-disabled-bg: var(--ck-peligro);
  --bs-btn-disabled-border-color: var(--ck-peligro);
}
.btn-outline-primary {
  --bs-btn-color: var(--ck-primario);
  --bs-btn-border-color: rgba(var(--ck-primario-rgb), .45);
  --bs-btn-hover-bg: var(--ck-primario);
  --bs-btn-hover-border-color: var(--ck-primario);
  --bs-btn-active-bg: var(--ck-primario-hover);
  --bs-btn-active-border-color: var(--ck-primario-hover);
  --bs-btn-disabled-color: var(--ck-primario);
  --bs-btn-disabled-border-color: rgba(var(--ck-primario-rgb), .45);
}
.btn-outline-secondary {
  --bs-btn-color: var(--ck-tinta);
  --bs-btn-border-color: var(--ck-linea-fuerte);
  --bs-btn-hover-color: var(--ck-tinta);
  --bs-btn-hover-bg: var(--bs-tertiary-bg);
  --bs-btn-hover-border-color: var(--ck-linea-fuerte);
  --bs-btn-active-color: var(--ck-tinta);
  --bs-btn-active-bg: #e7e5df;
  --bs-btn-active-border-color: var(--ck-linea-fuerte);
  --bs-btn-disabled-color: var(--ck-tenue);
  --bs-btn-disabled-border-color: var(--ck-linea);
  background-color: var(--ck-superficie);
}
.btn-outline-danger {
  --bs-btn-color: var(--ck-peligro);
  --bs-btn-border-color: rgba(var(--ck-peligro-rgb), .45);
  --bs-btn-hover-bg: var(--ck-peligro);
  --bs-btn-hover-border-color: var(--ck-peligro);
  --bs-btn-active-bg: var(--ck-peligro-hover);
  --bs-btn-active-border-color: var(--ck-peligro-hover);
}
.btn-outline-success {
  --bs-btn-color: var(--ck-exito);
  --bs-btn-border-color: rgba(var(--ck-exito-rgb), .45);
  --bs-btn-hover-bg: var(--ck-exito);
  --bs-btn-hover-border-color: var(--ck-exito);
  --bs-btn-active-bg: var(--ck-exito-hover);
  --bs-btn-active-border-color: var(--ck-exito-hover);
}
.btn-light {
  --bs-btn-bg: var(--ck-superficie);
  --bs-btn-border-color: var(--ck-superficie);
  --bs-btn-color: var(--ck-tinta);
}
.btn-link {
  --bs-btn-color: var(--ck-primario);
  --bs-btn-hover-color: var(--ck-primario-hover);
  --bs-btn-font-weight: 500;
  --bs-btn-focus-shadow-rgb: var(--ck-primario-rgb);
}
.btn-link.text-muted:hover { color: var(--ck-tinta) !important; }

/* ---------- Formularios ---------- */

.form-label { font-weight: 500; font-size: .875rem; margin-bottom: .35rem; }
.form-label.small { font-size: .8rem; color: var(--ck-tenue); }
.form-text { color: var(--ck-tenue); font-size: .8rem; }

.form-control, .form-select {
  border-color: var(--ck-linea-fuerte);
  background-color: var(--ck-superficie);
}
.form-control::placeholder { color: #9a9ea3; }
.form-control:focus, .form-select:focus {
  border-color: rgba(var(--ck-primario-rgb), .6);
  box-shadow: var(--ck-anillo);
}
.form-control:disabled, .form-control[readonly], .form-select:disabled {
  background-color: var(--bs-tertiary-bg);
}
.form-check-input { border-color: var(--ck-linea-fuerte); }
.form-check-input:checked {
  background-color: var(--ck-primario);
  border-color: var(--ck-primario);
}
.form-check-input:focus { border-color: rgba(var(--ck-primario-rgb), .6); box-shadow: var(--ck-anillo); }
.form-check-input[type=checkbox]:indeterminate { background-color: var(--ck-primario); border-color: var(--ck-primario); }
.form-switch .form-check-input:focus {
  --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%2830, 77, 92, 0.5%29'/%3e%3c/svg%3e");
}

.input-group-text { background-color: var(--bs-tertiary-bg); border-color: var(--ck-linea-fuerte); }

/* ---------- Tablas: renglones de libro ---------- */

.table {
  --bs-table-bg: var(--ck-superficie);
  --bs-table-border-color: var(--ck-linea);
  --bs-table-striped-bg: #faf9f6;
  --bs-table-hover-bg: #f5f4ef;
  border: 1px solid var(--ck-linea);
  border-radius: var(--bs-border-radius);
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
}
.table > :not(caption) > * > * { padding: .55rem .75rem; }
.table-sm > :not(caption) > * > * { padding: .4rem .6rem; }
.table > tbody > tr:last-child > * { border-bottom-width: 0; }
.table thead th {
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ck-tenue);
  background-color: #fbfaf7;
  border-bottom-color: var(--ck-linea-fuerte);
  white-space: nowrap;
}
.table-responsive > .table { margin-bottom: 0; }
/* Tablas anidadas dentro de una tarjeta: sin marco doble. */
.card .table { border: 0; border-radius: 0; }

/* ---------- Insignias, avisos, progreso ---------- */

.badge {
  --bs-badge-font-weight: 600;
  --bs-badge-padding-x: .5em;
  --bs-badge-padding-y: .3em;
  letter-spacing: .02em;
}
/* Las insignias de color sólido pasan a tono suave con texto oscuro: menos ruido en listas largas. */
.badge.text-bg-success { color: var(--bs-success-text-emphasis) !important; background-color: var(--bs-success-bg-subtle) !important; box-shadow: inset 0 0 0 1px var(--bs-success-border-subtle); }
.badge.text-bg-warning { color: var(--bs-warning-text-emphasis) !important; background-color: var(--bs-warning-bg-subtle) !important; box-shadow: inset 0 0 0 1px var(--bs-warning-border-subtle); }
.badge.text-bg-info { color: var(--bs-info-text-emphasis) !important; background-color: var(--bs-info-bg-subtle) !important; box-shadow: inset 0 0 0 1px var(--bs-info-border-subtle); }
.badge.text-bg-secondary, .badge.text-bg-light { color: var(--bs-secondary-text-emphasis) !important; background-color: var(--bs-secondary-bg-subtle) !important; box-shadow: inset 0 0 0 1px var(--ck-linea-fuerte); }
.badge.text-bg-primary { color: var(--bs-primary-text-emphasis) !important; background-color: var(--bs-primary-bg-subtle) !important; box-shadow: inset 0 0 0 1px var(--bs-primary-border-subtle); }
.badge.text-bg-danger:not(.rounded-pill) { color: var(--bs-danger-text-emphasis) !important; background-color: var(--bs-danger-bg-subtle) !important; box-shadow: inset 0 0 0 1px var(--bs-danger-border-subtle); }

.alert {
  --bs-alert-padding-y: .8rem;
  --bs-alert-padding-x: 1rem;
  border-left-width: 3px;
}
.alert-success { border-left-color: var(--ck-exito); }
.alert-warning { border-left-color: var(--ck-advertencia); }
.alert-danger { border-left-color: var(--ck-peligro); }
.alert-info { border-left-color: var(--ck-info); }
.alert-primary { border-left-color: var(--ck-primario); }

.progress { --bs-progress-bg: var(--ck-linea); --bs-progress-bar-bg: var(--ck-primario); }

.dropdown-menu {
  --bs-dropdown-border-color: var(--ck-linea);
  --bs-dropdown-link-active-bg: var(--ck-primario);
  --bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);
  --bs-dropdown-font-size: .9rem;
  --bs-dropdown-item-padding-y: .4rem;
  box-shadow: 0 8px 24px rgba(var(--ck-tinta-rgb), .08);
}

.nav-tabs { --bs-nav-tabs-border-color: var(--ck-linea); --bs-nav-tabs-link-active-border-color: var(--ck-linea) var(--ck-linea) var(--ck-superficie); --bs-nav-tabs-link-active-bg: var(--ck-superficie); }
.nav-pills { --bs-nav-pills-link-active-bg: var(--ck-primario); }
.pagination { --bs-pagination-active-bg: var(--ck-primario); --bs-pagination-active-border-color: var(--ck-primario); --bs-pagination-color: var(--ck-primario); --bs-pagination-focus-box-shadow: var(--ck-anillo); }

/* ---------- Layout ---------- */

.barra {
  background-color: var(--ck-superficie);
  border-bottom: 1px solid var(--ck-linea);
  --bs-navbar-padding-y: .55rem;
  --bs-navbar-color: var(--ck-tenue);
  --bs-navbar-hover-color: var(--ck-tinta);
  --bs-navbar-active-color: var(--ck-tinta);
  --bs-navbar-nav-link-padding-x: .7rem;
  --bs-navbar-toggler-border-color: var(--ck-linea-fuerte);
  --bs-navbar-toggler-focus-width: .15rem;
}
.barra .nav-link { font-size: .9rem; font-weight: 500; position: relative; }
@media (min-width: 768px) {
  .barra .navbar-nav > .nav-item > .nav-link.active::before {
    content: "";
    position: absolute;
    left: var(--bs-navbar-nav-link-padding-x);
    right: var(--bs-navbar-nav-link-padding-x);
    bottom: calc(-1 * var(--bs-navbar-padding-y) - 1px);
    height: 2px;
    background: var(--ck-primario);
  }
}
@media (max-width: 767.98px) {
  .barra .navbar-collapse { padding: .5rem 0 .25rem; }
  .barra .nav-link.active { color: var(--ck-primario); }
  .barra .navbar-collapse form { padding-top: .75rem; margin-top: .5rem; border-top: 1px solid var(--ck-linea); }
}
.barra .navbar-text { color: var(--ck-tenue); }
.barra .badge.rounded-pill { font-size: .68rem; vertical-align: .1em; }

.marca {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-weight: 600;
  font-size: 1.05rem;
  letter-spacing: -.01em;
  color: var(--ck-tinta) !important;
  margin-right: 1.5rem;
}
.marca svg { flex: none; }

.usuario {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-size: .85rem;
  color: var(--ck-tenue);
}
.usuario-inicial {
  display: inline-grid;
  place-items: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 50%;
  background: var(--ck-primario-suave);
  color: var(--ck-primario);
  font-weight: 600;
  font-size: .8rem;
  text-transform: uppercase;
}

/* Avisos de la cuenta bajo la barra (suscripción, correo, conformidad). */
header .border-bottom { border-color: var(--ck-linea) !important; }
header .bg-danger.text-white { background-color: var(--ck-peligro) !important; }

main.contenido {
  animation: aparecer .28s ease-out both;
}
@keyframes aparecer {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  main.contenido { animation: none; }
  a.card, a.card h2::after { transition: none; }
}

.pie {
  border-top: 1px solid var(--ck-linea);
  color: var(--ck-tenue);
  font-size: .8rem;
}

/* ---------- Checar: el reloj es la pieza central ---------- */

#reloj {
  font-family: var(--ck-fuente-mono);
  font-weight: 500 !important;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.04em;
  font-size: clamp(3.75rem, 18vw, 5.5rem);
}
#form-checar .btn-lg.w-100 {
  border-radius: var(--bs-border-radius-lg);
  letter-spacing: .01em;
  box-shadow: 0 1px 0 rgba(var(--ck-tinta-rgb), .08), 0 6px 18px rgba(var(--ck-tinta-rgb), .08) !important;
}

/* ---------- Portada (Home/Bienvenida) ---------- */

.portada { padding: 3rem 0 2rem; }
@media (min-width: 992px) { .portada { padding: 5rem 0 3rem; } }

.portada-etiqueta {
  display: inline-block;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ck-primario);
  margin-bottom: 1rem;
}
.portada-titulo {
  font-size: clamp(2rem, 4.6vw, 3.1rem);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: -.028em;
  margin-bottom: 1.25rem;
}
.portada-texto { font-size: 1.1rem; color: var(--ck-tenue); max-width: 34rem; }

.portada-puntos {
  list-style: none;
  padding: 0;
  margin: 2rem 0 0;
  display: grid;
  gap: .6rem;
  font-size: .925rem;
}
.portada-puntos li { display: flex; gap: .6rem; align-items: baseline; }
.portada-puntos li::before {
  content: "";
  flex: none;
  width: .5rem;
  height: .5rem;
  border: 1.5px solid var(--ck-primario);
  border-radius: 1px;
  transform: translateY(-.05em);
}

/* Hoja de registro de muestra: ilustra el producto sin capturas que mantener. */
.hoja {
  background: var(--ck-superficie);
  border: 1px solid var(--ck-linea);
  border-radius: var(--bs-border-radius-lg);
  box-shadow: 0 1px 0 rgba(var(--ck-tinta-rgb), .03), 0 18px 40px -18px rgba(var(--ck-tinta-rgb), .18);
  overflow: hidden;
  font-size: .85rem;
}
.hoja-encabezado {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: .9rem 1.1rem;
  border-bottom: 1px solid var(--ck-linea);
}
.hoja-encabezado strong { font-weight: 600; }
.hoja-encabezado span { color: var(--ck-tenue); font-size: .78rem; }
.hoja-renglon {
  display: grid;
  grid-template-columns: 1fr auto auto auto;
  gap: 1rem;
  align-items: center;
  padding: .6rem 1.1rem;
  border-bottom: 1px solid var(--ck-linea);
}
.hoja-renglon:last-child { border-bottom: 0; }
.hoja-renglon.titulos {
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--ck-tenue);
  background: #fbfaf7;
}
.hoja-hora {
  font-family: var(--ck-fuente-mono);
  font-variant-numeric: tabular-nums;
  min-width: 3.2rem;
  text-align: right;
}
.hoja-he { min-width: 4.5rem; text-align: right; }
.hoja-pie {
  display: flex;
  justify-content: space-between;
  padding: .75rem 1.1rem;
  background: #fbfaf7;
  border-top: 1px solid var(--ck-linea-fuerte);
  font-size: .8rem;
  color: var(--ck-tenue);
}
.hoja-pie strong { color: var(--ck-tinta); font-family: var(--ck-fuente-mono); font-weight: 500; }

@media (max-width: 400px) {
  .hoja-renglon { gap: .5rem; padding-inline: .8rem; }
  .hoja-hora { min-width: 2.8rem; }
  .hoja-he { min-width: 3.6rem; }
}
.hoja-renglon.titulos .hoja-hora { font-family: inherit; }

/* Enlaces dentro de listas: sin subrayado hasta pasar el cursor. */
.list-group-item a, .alert a { font-weight: 500; }
.list-group-item a:not(:hover) { text-decoration: none; }
