/* Página pública de verificación: una sola columna, pensada para el celular que escaneó el QR. */
:root {
  --fondo: #f5f4f9;
  --superficie: #ffffff;
  --texto: #1d1b2a;
  --tenue: #5d5a6e;
  --borde: #dedbe8;
  --marca: #5b36a9;
  --marca-texto: #ffffff;
  --ok-fondo: #e7f5ec;
  --ok-borde: #2e8a55;
  --ok-texto: #134a2c;
  --curso-fondo: #fdf3e2;
  --curso-borde: #c27c0e;
  --curso-texto: #5c3a05;
  --error-fondo: #fbeceb;
  --error-borde: #c0392b;
  --error-texto: #6b1a12;
  --radio: 10px;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root {
    --fondo: #15131d;
    --superficie: #1f1c2a;
    --texto: #ece9f5;
    --tenue: #a7a2bb;
    --borde: #34304a;
    --marca: #a58bea;
    --marca-texto: #15131d;
    --ok-fondo: #13281c;
    --ok-borde: #4fbf7f;
    --ok-texto: #b9ecce;
    --curso-fondo: #2c220f;
    --curso-borde: #e0a43a;
    --curso-texto: #f3d9a6;
    --error-fondo: #2e1614;
    --error-borde: #e06b5d;
    --error-texto: #f5c2bb;
    color-scheme: dark;
  }
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--fondo);
  color: var(--texto);
  font: 16px/1.5 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
.marco { max-width: 640px; margin: 0 auto; padding: 0 16px; }
.oculto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.tenue { color: var(--tenue); }
.chico { font-size: 14px; }
h1 { font-size: 22px; line-height: 1.25; margin: 0 0 6px; }
h2 { font-size: 18px; margin: 0 0 6px; }
h3 { font-size: 16px; margin: 18px 0 8px; }
p { margin: 0 0 10px; }

.barra { background: var(--superficie); border-bottom: 1px solid var(--borde); }
.barra__interior { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding-top: 14px; padding-bottom: 14px; flex-wrap: wrap; }
.marca { font-weight: 700; letter-spacing: 0.01em; display: inline-flex; align-items: center; gap: 8px; }
.marca__punto { width: 12px; height: 12px; border-radius: 3px; background: var(--marca); display: inline-block; }
.barra__titulo { color: var(--tenue); font-size: 14px; }

main { padding-top: 20px; padding-bottom: 12px; }
.tarjeta { background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio); padding: 18px; margin-bottom: 14px; }

.codigo-actual { margin: 0 0 10px; color: var(--tenue); font-size: 14px; }
.codigo-actual strong { color: var(--texto); font-family: ui-monospace, "SF Mono", Menlo, monospace; letter-spacing: 0.04em; overflow-wrap: anywhere; }

.estado { border-left: 4px solid var(--borde); padding: 4px 0 4px 12px; margin-bottom: 14px; display: grid; gap: 2px; }
.estado__titulo { font-size: 20px; }
.estado__detalle { color: var(--tenue); font-size: 14px; }
.estado--ok { border-color: var(--ok-borde); }
.estado--ok .estado__titulo { color: var(--ok-borde); }
.estado--curso { border-color: var(--curso-borde); }
.estado--curso .estado__titulo { color: var(--curso-borde); }

.datos { margin: 0 0 12px; display: grid; gap: 8px; }
.datos > div { display: grid; grid-template-columns: 110px 1fr; gap: 10px; }
.datos dt { color: var(--tenue); font-size: 14px; }
.datos dd { margin: 0; overflow-wrap: anywhere; }
.datos--firma { margin: 8px 0 4px; }

.fila-codigo { display: flex; gap: 8px; flex-wrap: wrap; margin: 12px 0 4px; }
.fila-codigo input {
  flex: 1 1 220px; min-width: 0; font: inherit; font-family: ui-monospace, "SF Mono", Menlo, monospace; letter-spacing: 0.04em;
  padding: 10px 12px; border: 1px solid var(--borde); border-radius: 8px; background: var(--fondo); color: var(--texto); text-transform: uppercase;
}
.boton {
  font: inherit; font-weight: 600; border: 1px solid var(--marca); background: var(--marca); color: var(--marca-texto);
  border-radius: 8px; padding: 10px 16px; cursor: pointer; min-height: 44px; display: inline-flex; align-items: center; justify-content: center;
}
.boton--secundario { background: transparent; color: var(--marca); }
.boton:focus-visible, .fila-codigo input:focus-visible, .selector:focus-within { outline: 3px solid var(--marca); outline-offset: 2px; }
.selector { position: relative; margin: 6px 0; }
.selector input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; }

.aviso { border-radius: 8px; padding: 12px 14px; margin: 12px 0 0; border-left: 4px solid; }
.aviso p { margin: 4px 0 0; }
.aviso--ok { background: var(--ok-fondo); border-color: var(--ok-borde); color: var(--ok-texto); }
.aviso--error { background: var(--error-fondo); border-color: var(--error-borde); color: var(--error-texto); }
.tarjeta.aviso { margin-top: 0; }

.firmas { list-style: none; counter-reset: firma; margin: 0; padding: 0; display: grid; gap: 10px; }
.firma { border: 1px solid var(--borde); border-radius: 8px; padding: 12px 14px; counter-increment: firma; }
.firma--alerta { border-color: var(--error-borde); background: var(--error-fondo); }
.firma__cabeza { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.firma__cabeza strong::before { content: counter(firma) ". "; color: var(--tenue); font-weight: 400; }
.etiqueta { font-size: 13px; color: var(--tenue); border: 1px solid var(--borde); border-radius: 999px; padding: 1px 9px; }
.texto-alerta { color: var(--error-texto); font-weight: 600; }

.pie { padding-top: 6px; padding-bottom: 28px; }
