/* Formulario de inscripción: móvil primero, sin dependencias. El CSP no permite estilos inline. */
:root { --fondo: #14161a; --panel: #1c1f26; --texto: #e5e7eb; --suave: #9ca3af; --borde: #2f3340;
        --acento: #f59e0b; --error: #f87171; }
@media (prefers-color-scheme: light) {
  :root { --fondo: #f5f6f8; --panel: #ffffff; --texto: #111827; --suave: #6b7280; --borde: #d1d5db;
          --acento: #b45309; --error: #b91c1c; }
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--fondo); color: var(--texto); font: 16px/1.45 system-ui, sans-serif; }
main { max-width: 34rem; margin: 0 auto; padding: 1rem 16px 3rem; }
h1 { font-size: 1.5rem; margin: .5rem 0 1rem; }
h2 { font-size: 1.2rem; }
.campo { margin-bottom: 1rem; }
label { display: block; margin-bottom: .25rem; font-weight: 600; }
.req { color: var(--error); }
input[type="text"], input[type="email"], input[type="tel"], select {
  width: 100%; padding: .65rem .75rem; font-size: 1rem; color: var(--texto);
  background: var(--panel); border: 1px solid var(--borde); border-radius: 8px; }
input:focus, select:focus, button:focus-visible { outline: 2px solid var(--acento); outline-offset: 1px; }
.consentimiento label { font-weight: 400; display: flex; gap: .6rem; align-items: flex-start; }
.consentimiento input { margin-top: .3rem; flex: none; }
/* Segunda elección de la residencia (otra provincia / otro país) y textos legales desplegables. */
.segunda { margin-top: .6rem; }
.segunda label { font-weight: 400; }
.texto-legal { margin: .5rem 0 0 1.9rem; }
.texto-legal summary { cursor: pointer; color: var(--acento); }
.texto-legal .texto { white-space: pre-line; color: var(--suave); font-size: .9rem; margin-top: .4rem;
                      max-height: 40vh; overflow-y: auto; }
fieldset { border: 1px solid var(--borde); border-radius: 8px; margin: 0 0 1rem; padding: .75rem; }
button { padding: .75rem 1.25rem; font-size: 1rem; font-weight: 600; color: #111; background: var(--acento);
         border: 0; border-radius: 8px; cursor: pointer; }
button[disabled] { opacity: .6; cursor: default; }
.error { color: var(--error); font-size: .9rem; min-height: 1.1em; display: block; }
.aviso { background: var(--panel); border: 1px solid var(--borde); border-radius: 8px; padding: 1rem; }
.ayuda { color: var(--suave); font-size: .9rem; }
.codigo { font-size: 2.5rem; font-weight: 700; letter-spacing: .3rem; margin: .25rem 0 .75rem; }
.oculto { display: none; }
[hidden] { display: none !important; }
/* El señuelo para bots: fuera de pantalla (no display:none, que algunos bots detectan). */
.trampa { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }
#lista-inscripciones { list-style: none; margin: 0; padding: 0; }
#lista-inscripciones li { background: var(--panel); border: 1px solid var(--borde); border-radius: 8px;
                          padding: .75rem; margin-bottom: .6rem; display: flex; flex-wrap: wrap;
                          gap: .5rem 1rem; align-items: center; justify-content: space-between; }
.item-nombre { font-weight: 600; }
.item-estado { color: var(--suave); font-size: .9rem; }
.item-codigo { font-size: 1.4rem; font-weight: 700; letter-spacing: .15rem; }
/* Spec 009 RF5: "te están llamando" tiene que verse de lejos y en el bolsillo. */
#lista-inscripciones li.estado-llamado { border: 3px solid var(--acento); background: #3a2410;
  animation: llamado-pulso 1.2s ease-in-out infinite; }
.llamado-aviso { flex: 1 1 100%; }
.llamado-titulo { font-size: 1.6rem; font-weight: 800; line-height: 1.15; color: #fff;
  animation: llamado-salto 1.2s ease-in-out infinite; }
.llamado-texto { margin-top: .25rem; color: #fde7c7; }
li.estado-llamado .item-codigo { font-size: 2.6rem; letter-spacing: .3rem; color: #fff; }
li.estado-llamado .item-nombre { color: #fff; }
li.estado-llamado .item-estado { display: none; }          /* ya lo dice el aviso */
li.estado-llamado button { background: #fff; color: #111; }
@keyframes llamado-pulso {
  0%, 100% { box-shadow: 0 0 0 0 rgba(245, 158, 11, .75); }
  50% { box-shadow: 0 0 0 14px rgba(245, 158, 11, 0); }
}
@keyframes llamado-salto {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.04); }
}
@media (prefers-color-scheme: light) {
  #lista-inscripciones li.estado-llamado { background: #b45309; }
}
@media (prefers-reduced-motion: reduce) {
  #lista-inscripciones li.estado-llamado, .llamado-titulo { animation: none; }
}
