:root {
  --fondo: #f6f7f9;
  --tarjeta: #ffffff;
  --texto: #1b1f24;
  --sutil: #5b6470;
  --borde: #d9dde3;
  --acento: #1f5fbf;
  --acento-texto: #ffffff;
  --bien: #1d7a46;
  --mal: #b3261e;
  --gris: #6b7280;
  --aviso: #fff4d6;
  color-scheme: light dark;
}
@media (prefers-color-scheme: dark) {
  :root {
    --fondo: #14171b;
    --tarjeta: #1d2127;
    --texto: #e7eaee;
    --sutil: #9aa3ad;
    --borde: #313740;
    --acento: #5b9bf0;
    --acento-texto: #0b1220;
    --bien: #57c98a;
    --mal: #f08a82;
    --gris: #9aa3ad;
    --aviso: #3a3220;
  }
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body {
  margin: 0;
  background: var(--fondo);
  color: var(--texto);
  font: 15px/1.45 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
h1 { font-size: 1.35rem; margin: 0; }
h2 { font-size: 1.1rem; margin: 0 0 .75rem; }
h3 { font-size: 1rem; margin: 0 0 .5rem; }
h4 { font-size: .95rem; margin: 1rem 0 .25rem; }
a { color: var(--acento); }
.marca { margin: 0; font-size: .8rem; color: var(--sutil); text-transform: uppercase; letter-spacing: .04em; }
.barra {
  display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap;
  padding: 1rem 16px; border-bottom: 1px solid var(--borde); background: var(--tarjeta);
}
.barra-acciones { display: flex; gap: .75rem; align-items: center; flex-wrap: wrap; }
.columnas {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; padding: 1rem 16px;
}
@media (max-width: 1100px) { .columnas { grid-template-columns: minmax(0, 1fr); } }
.columna { min-width: 0; }
.tarjeta {
  background: var(--tarjeta); border: 1px solid var(--borde); border-radius: 8px; padding: 1rem; margin-bottom: 1rem;
}
.vacia { color: var(--sutil); }
.etiqueta { margin: 0; font-size: .8rem; color: var(--sutil); }
.reloj { margin: .25rem 0; font-size: 1.5rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.fase { margin: .25rem 0; font-size: 1.2rem; font-weight: 600; }
.sutil { color: var(--sutil); font-size: .88rem; }
.botonera, .fila { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; margin: .5rem 0; }
.entre { justify-content: space-between; }
.pila { display: flex; flex-direction: column; gap: .35rem; }
button {
  font: inherit; padding: .45rem .8rem; border-radius: 6px; border: 1px solid var(--acento);
  background: var(--acento); color: var(--acento-texto); cursor: pointer;
}
button.secundario { background: transparent; color: var(--acento); }
button:disabled { opacity: .5; cursor: not-allowed; }
input, select {
  font: inherit; padding: .4rem .5rem; border-radius: 6px; border: 1px solid var(--borde);
  background: var(--fondo); color: var(--texto); min-width: 0;
}
.fila input, .fila select { flex: 1 1 10rem; }
.tabla { width: 100%; border-collapse: collapse; font-size: .9rem; }
.tabla th, .tabla td { text-align: left; padding: .3rem .25rem; border-bottom: 1px solid var(--borde); vertical-align: top; }
.lista, .salud { list-style: none; padding: 0; margin: .25rem 0; font-size: .9rem; }
.lista li, .salud li { padding: .25rem 0; border-bottom: 1px solid var(--borde); overflow-wrap: anywhere; }
.bien { color: var(--bien); }
.mal { color: var(--mal); }
.gris { color: var(--gris); }
.error { color: var(--mal); }
.resultado { min-height: 1.2em; font-size: .9rem; }
.chip { padding: .2rem .6rem; border-radius: 999px; background: var(--aviso); font-size: .85rem; }
.oculto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.login { display: grid; place-items: center; padding: 3rem 16px; }
.login-tarjeta { width: min(26rem, 100%); display: flex; flex-direction: column; gap: .5rem; }
dialog {
  border: 1px solid var(--borde); border-radius: 10px; background: var(--tarjeta); color: var(--texto);
  width: min(40rem, calc(100vw - 32px)); padding: 0;
}
dialog::backdrop { background: rgb(0 0 0 / 45%); }
.dialogo { padding: 1.25rem; }
.casilla { display: flex; gap: .5rem; align-items: center; margin: .75rem 0; }
/* /estado-publico */
.publico-main { max-width: 40rem; margin: 0 auto; padding: 1.5rem 16px; }
.aviso { background: var(--aviso); padding: .6rem .75rem; border-radius: 6px; }
.aviso-salto { font-weight: 600; }
button.mini { padding: .1rem .45rem; font-size: .8rem; }
/* /tarjetas: fichas para imprimir (A4, dos por fila) */
.tarjetas-main { padding: 1rem 16px; }
.fichas { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(22rem, 100%), 1fr)); gap: 1rem; margin-bottom: 1.5rem; }
.ficha { background: var(--tarjeta); border: 1px dashed var(--borde); border-radius: 8px; padding: .9rem 1rem; break-inside: avoid; }
.ficha header { display: flex; justify-content: space-between; gap: .5rem; align-items: baseline; }
.ficha-rol { margin: 0; font-weight: 600; }
.ficha-id { margin: 0; color: var(--sutil); font-size: .8rem; }
.ficha-briefing { margin: .35rem 0; font-size: .88rem; }
.ficha-datos { width: 100%; border-collapse: collapse; font-size: .9rem; }
.ficha-datos th { text-align: left; color: var(--sutil); font-weight: 500; padding: .15rem .5rem .15rem 0; width: 6.5rem; vertical-align: top; }
.ficha-datos td { padding: .15rem 0; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.ficha-enlace { font-size: .85rem; overflow-wrap: anywhere; }
.ficha-pie { margin: .35rem 0 0; font-size: .75rem; color: var(--sutil); }
@media print {
  :root { --fondo: #fff; --tarjeta: #fff; --texto: #000; --sutil: #444; --borde: #999; }
  body { font-size: 11pt; background: #fff; }
  .no-imprimir { display: none !important; }
  .tarjetas-main { padding: 0; }
  .fichas { grid-template-columns: repeat(2, 1fr); gap: 6mm; }
  .salto { break-before: page; }
  @page { size: A4; margin: 12mm; }
}
