/* EXMEC Registro - uses the theme tokens when present (--ex-*), with light defaults. */
.exr{--r-ink:var(--ex-ink,#14160F);--r-muted:var(--ex-muted,#4B5145);--r-line:var(--ex-line,#DDE1D6);--r-bg:var(--ex-surface,#fff);--r-soft:var(--ex-soft,#F3F5EF);--r-lime:var(--ex-lime,#C1FF72);--r-green:var(--ex-green,#4F8A10);--r-dark:var(--ex-dark,#1C1E1A);color:var(--r-ink);font-size:1rem}
.exr *{box-sizing:border-box}
.exr-note{border-radius:12px;padding:14px 16px;margin:0 0 18px;line-height:1.5}
.exr-note--ok{background:color-mix(in srgb,var(--r-lime) 30%,var(--r-bg));border:1px solid var(--r-green)}
.exr-note--err{background:#FDECEC;border:1px solid #C62828;color:#7A1414}
.exr-form{display:grid;gap:22px}
.exr-legend{font-weight:800;font-size:1.05rem;margin:0 0 12px;padding:0}
.exr fieldset{border:0;margin:0;padding:0;min-width:0}
.exr-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}
.exr-grid .exr-legend{grid-column:1/-1}
.exr-field{display:grid;grid-template-columns:auto 1fr;column-gap:5px;row-gap:6px;align-items:baseline;font-weight:600;font-size:.95rem}
.exr-field>:not(.exr-req):not(.exr-opt){grid-column:1/-1}
.exr-field--wide{grid-column:1/-1}
.exr-field small{font-weight:400;color:var(--r-muted);font-size:.82rem}
.exr-field input,.exr-field select,.exr-ci-search input{font:inherit;font-weight:400;padding:12px 14px;border:1.5px solid var(--r-line);border-radius:10px;background:var(--r-bg);color:var(--r-ink);min-height:48px;width:100%}
.exr-field input:focus,.exr-field select:focus,.exr-ci-search input:focus{outline:3px solid color-mix(in srgb,var(--r-lime) 70%,transparent);border-color:var(--r-green)}
.exr-field [aria-invalid=true]{border-color:#C62828}
.exr-err{color:#C62828;font-weight:600;font-size:.85rem}
.exr-req{color:#C62828}.exr-opt{color:var(--r-muted);font-weight:400}
.exr-interests{display:flex;flex-wrap:wrap;gap:10px}
.exr-interests .exr-legend{width:100%}
.exr-chip{position:relative;cursor:pointer}
.exr-chip input{position:absolute;opacity:0;inset:0}
.exr-chip span{display:inline-block;padding:10px 16px;border:1.5px solid var(--r-line);border-radius:999px;font-weight:600;font-size:.92rem;background:var(--r-bg)}
.exr-chip input:checked+span{background:var(--r-lime);border-color:var(--r-lime);color:#14160F}
.exr-chip input:focus-visible+span{outline:3px solid var(--r-green)}
/* Course booking: one radio card per course, one choice per day */
.exr-courses{display:grid;gap:14px}
.exr-courses .exr-legend{margin:0}
.exr-courses__intro{margin:-6px 0 0}
.exr-day{display:grid;gap:8px}
.exr-day__title{font-weight:800;font-size:.95rem;color:var(--r-green);margin:0 0 6px;padding:0;text-transform:uppercase;letter-spacing:.06em}
.exr-day__title span{color:var(--r-muted);font-weight:700;white-space:nowrap}
.exr-course{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1.5px solid var(--r-line);border-radius:14px;background:var(--r-bg);cursor:pointer;transition:border-color .15s,background-color .15s}
.exr-course:hover{border-color:var(--r-green)}
.exr-course input{width:20px;height:20px;flex:0 0 auto;accent-color:var(--r-green);margin:0}
.exr-course:has(input:checked){border-color:var(--r-green);background:color-mix(in srgb,var(--r-lime) 22%,var(--r-bg))}
.exr-course:has(input:focus-visible){outline:3px solid color-mix(in srgb,var(--r-lime) 70%,transparent)}
.exr-course__photo{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:0 0 auto;border:2px solid var(--r-lime)}
.exr-course__text{display:grid;gap:2px;min-width:0;line-height:1.3}
.exr-course__text b{font-size:.98rem}
.exr-course__text small{color:var(--r-muted);font-size:.84rem}
.exr-course__hall{justify-self:start;background:var(--r-lime);color:#14160F;font-weight:800;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:2px 9px}
.exr-course--none{background:var(--r-soft)}
.exr-day[aria-describedby] .exr-course{border-color:#E5A3A3}
/* Booked courses on the ticket */
.exr-ticket__courses{margin:18px 0 0;display:grid;gap:8px;text-align:left}
.exr-ticket__courses-title{margin:0 0 2px;font-weight:800;font-size:.95rem;text-align:center}
.exr-tc{display:flex;align-items:center;gap:12px;border:1px solid #E3E6DD;border-radius:14px;padding:10px 12px;background:#fff}
.exr-tc img{width:52px;height:52px;border-radius:50%;object-fit:cover;flex:0 0 auto;border:2px solid #C1FF72}
.exr-tc__day{display:block;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#4F8A10}
.exr-tc b{display:block;font-size:.95rem;line-height:1.3;color:#14160F}
.exr-tc small{color:#4B5145;font-size:.82rem}
.exr-tc--none{background:#F3F5EF}
.exr-consents{display:grid;gap:12px}
.exr-check{display:flex;gap:12px;align-items:flex-start;line-height:1.45;font-size:.92rem;cursor:pointer}
.exr-check input{width:22px;height:22px;margin-top:1px;accent-color:var(--r-green);flex:0 0 auto}
.exr-check a{color:var(--r-green)}
.exr-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.exr-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:14px 22px;border-radius:12px;border:0;font:inherit;font-weight:800;font-size:1rem;text-decoration:none;cursor:pointer;text-align:center}
.exr-btn--primary{background:var(--r-lime);color:#14160F}
.exr-btn--primary:hover{filter:brightness(.95)}
.exr-btn--wa{background:#25D366;color:#fff}
.exr-btn--dark{background:var(--r-dark);color:#fff}
.exr-form .exr-btn--primary{width:100%;font-size:1.08rem}
.exr-small{font-size:.86rem;color:var(--r-muted);line-height:1.5}
.exr-center{text-align:center}
.exr-empty{text-align:center;padding:24px;background:var(--r-soft);border-radius:16px}
/* Ticket */
.exr-ticket-wrap{max-width:520px;margin:0 auto}
.exr-ticket{background:var(--r-bg);border:1px solid var(--r-line);border-radius:22px;overflow:hidden;box-shadow:0 18px 40px rgba(20,22,15,.12)}
.exr-ticket__head{background:#1C1E1A;color:#fff;padding:22px 24px}
.exr-ticket__brand{margin:0;font-size:2.1rem;font-weight:900;font-style:italic;letter-spacing:.5px;line-height:1}
.exr-ticket__brand span{color:#C1FF72}
.exr-ticket__brand small{font-size:.8rem;font-style:normal;font-weight:600;letter-spacing:.3em;color:#C9CDC4;margin-left:6px}
.exr-ticket__when{margin:8px 0 0;color:#C1FF72;font-weight:700;font-size:.95rem}
.exr-ticket__body{padding:24px;text-align:center;background:#fff;color:#14160F}
.exr-ticket__qr{display:block;margin:0 auto;width:min(260px,70vw);height:auto;image-rendering:pixelated;border:2px solid #E3E6DD;border-radius:16px;padding:8px}
.exr-ticket__name{margin:14px 0 2px;font-size:1.35rem;font-weight:800}
.exr-ticket__code{margin:0;color:#4B5145}
.exr-ticket__code strong{letter-spacing:.18em;color:#14160F}
.exr-ticket__type{margin:10px 0 0;font-size:.88rem;color:#4F8A10;font-weight:700}
.exr-ticket__used{margin:10px auto 0;display:inline-block;background:#E8F5E9;color:#2E7D32;font-weight:800;border-radius:999px;padding:4px 12px}
.exr-actions{display:grid;gap:10px;margin:18px 0 10px}
.exr-pulse{animation:exrPulse 1.2s ease-in-out 4}
@keyframes exrPulse{50%{box-shadow:0 0 0 8px color-mix(in srgb,var(--r-lime) 55%,transparent)}}
@media (prefers-reduced-motion:reduce){.exr-pulse{animation:none}}
/* Check-in */
.exr-checkin{max-width:640px;margin:0 auto}
.exr-ci-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 12px}
.exr-ci-count{margin:0;font-size:1.05rem}
.exr-ci-count strong{font-size:1.6rem}
.exr-ci-cam{position:relative;border-radius:16px;overflow:hidden;background:#000;aspect-ratio:4/3}
.exr-ci-cam video{width:100%;height:100%;object-fit:cover;display:block}
.exr-ci-frame{position:absolute;inset:18% 22%;border:4px solid #C1FF72;border-radius:18px;box-shadow:0 0 0 999px rgba(0,0,0,.25)}
.exr-ci-result{margin:12px 0;padding:16px;border-radius:14px;background:var(--r-soft);font-size:1.05rem;display:flex;flex-direction:column;gap:4px;min-height:72px}
.exr-ci-result strong{font-size:1.3rem}
.exr-ci-result.is-ok{background:#E8F5E9;border:2px solid #2E7D32}
.exr-ci-result.is-warn{background:#FFF4E0;border:2px solid #B26A00}
.exr-ci-result.is-bad{background:#FDECEC;border:2px solid #C62828}
.exr-ci-search{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin:8px 0}
.exr-ci-search label{display:flex;flex-direction:column;gap:6px;font-weight:600}
.exr-ci-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.exr-ci-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--r-line);border-radius:12px}
.exr-ci-list em{color:#2E7D32;font-weight:700;font-style:normal}
@media (max-width:640px){.exr-grid{grid-template-columns:1fr}.exr-ci-search{grid-template-columns:1fr}}
