/* ADC Rally: public site, admin and scanner styles. System fonts only, no webfont downloads. */
:root{
  --adc:#0a7a3d;--adc-dark:#064e2a;--adc-accent:#f2b705;--adc-rgb:10,122,61;
  --ink:#14291c;--muted:#5b6e62;--soft:#f3f7f4;--line:#e1ebe4;--card:#fff;
  --radius:16px;--shadow:0 10px 30px rgba(20,41,28,.08);--shadow-sm:0 2px 10px rgba(20,41,28,.06);
  --bs-primary:var(--adc);--bs-primary-rgb:var(--adc-rgb);--bs-link-color:var(--adc);--bs-link-hover-color:var(--adc-dark);
  --bs-body-font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;
  --bs-body-color:var(--ink);--bs-body-bg:#fff;--bs-border-radius:.65rem;
}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-size:1rem;line-height:1.6;color:var(--ink);background:#fff;text-rendering:optimizeLegibility}
body.bare,body.admin-body{background:var(--soft)}
h1,h2,h3,h4{font-weight:800;letter-spacing:-.015em;line-height:1.2;color:var(--ink)}
a{text-decoration:none}a:hover{text-decoration:underline}
img{max-width:100%;height:auto}
.text-adc{color:var(--adc)!important}.text-gold{color:var(--adc-accent)!important}
.text-white-75{color:rgba(255,255,255,.78)}
.skip{position:absolute;left:-999px;top:8px;background:#fff;padding:8px 14px;border-radius:8px;z-index:3000}.skip:focus{left:8px}
:focus-visible{outline:3px solid rgba(var(--adc-rgb),.45);outline-offset:2px}

/* buttons */
.btn{font-weight:700;border-radius:.8rem;padding:.6rem 1.25rem;transition:transform .08s,box-shadow .15s,background-color .15s}
.btn:active{transform:translateY(1px)}
.btn-lg{padding:.85rem 1.6rem;font-size:1.05rem;border-radius:.95rem}
.btn-sm{padding:.4rem .85rem;border-radius:.65rem}
.btn-adc{background:var(--adc);border-color:var(--adc);color:#fff}
.btn-adc:hover,.btn-adc:focus{background:var(--adc-dark);border-color:var(--adc-dark);color:#fff;text-decoration:none}
.btn-outline-adc{border:2px solid var(--adc);color:var(--adc);background:transparent}
.btn-outline-adc:hover{background:var(--adc);color:#fff;text-decoration:none}
.btn-gold{background:var(--adc-accent);border-color:var(--adc-accent);color:#2b2200;box-shadow:0 8px 20px -8px rgba(0,0,0,.35)}
.btn-gold:hover{background:#ffcc2a;border-color:#ffcc2a;color:#2b2200;text-decoration:none;transform:translateY(-1px)}
.btn-whatsapp{background:#25d366;border-color:#25d366;color:#052e16}.btn-whatsapp:hover{background:#1ebe5b;color:#052e16;text-decoration:none}
.btn-outline-light:hover{color:var(--adc-dark)}
.btn-adc:disabled,.btn-adc.disabled{opacity:.6}

/* navbar */
.site-nav{background:rgba(255,255,255,.92);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line);padding:.55rem 0}
.brand-logo{border-radius:50%;object-fit:cover;background:#fff}
.brand-text{display:flex;flex-direction:column;line-height:1.1}
.brand-text strong{font-size:1.15rem;color:var(--adc-dark);letter-spacing:.02em}
.brand-text small{font-size:.7rem;color:var(--muted);font-weight:600;max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.site-nav .nav-link{font-weight:600;color:var(--ink);padding:.5rem .85rem!important;border-radius:.6rem;white-space:nowrap}
.site-nav .nav-link:hover{background:var(--soft);color:var(--adc);text-decoration:none}
.lang-pill{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;font-weight:700;color:var(--adc-dark);background:var(--soft);border:1px solid var(--line);padding:.38rem .75rem;border-radius:2rem}
.lang-pill:hover{background:#e7f1ea;text-decoration:none}
@media (max-width:1199.98px){.site-nav .navbar-collapse{padding:.5rem 0 .75rem}}

/* hero */
.hero{position:relative;overflow:hidden;color:#fff;padding:4.5rem 0 5rem;
  background:linear-gradient(135deg,var(--adc-dark) 0%,var(--adc) 70%,color-mix(in srgb,var(--adc) 70%,#fff) 130%)}
.hero::before{content:"";position:absolute;inset:0;background-image:var(--hero-img,none);background-size:cover;background-position:center;opacity:.18;mix-blend-mode:luminosity}
.hero-shape{position:absolute;border-radius:50%;filter:blur(2px);pointer-events:none}
.hero-shape.s1{width:520px;height:520px;right:-160px;top:-180px;background:radial-gradient(circle,rgba(242,183,5,.35),transparent 65%)}
.hero-shape.s2{width:420px;height:420px;left:-140px;bottom:-200px;background:radial-gradient(circle,rgba(255,255,255,.14),transparent 65%)}
.hero-badge{display:inline-flex;align-items:center;gap:.45rem;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);padding:.4rem .9rem;border-radius:2rem;font-weight:700;font-size:.85rem;margin-bottom:1.1rem}
.hero-title{color:#fff;font-size:clamp(2rem,5.2vw,3.6rem);font-weight:900;line-height:1.08;margin-bottom:1rem}
.hero-sub{font-size:clamp(1.02rem,1.8vw,1.22rem);color:rgba(255,255,255,.88);max-width:600px}
.slogan-pill{display:inline-flex;align-items:center;gap:.5rem;background:var(--adc-accent);color:#2b2200;font-weight:800;padding:.5rem 1.1rem;border-radius:2rem;margin-top:.5rem;box-shadow:0 8px 20px -10px rgba(0,0,0,.5)}
.hero-meta{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;font-weight:600;color:rgba(255,255,255,.92)}
.hero-meta i{color:var(--adc-accent);margin-right:.25rem}
.countdown{display:flex;gap:.65rem;flex-wrap:wrap}
.cd-box{min-width:78px;text-align:center;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);border-radius:14px;padding:.65rem .5rem;backdrop-filter:blur(4px)}
.cd-box b{display:block;font-size:1.9rem;font-weight:900;line-height:1;font-variant-numeric:tabular-nums}
.cd-box span{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;opacity:.85}
.cd-live{font-size:1.3rem;font-weight:800;color:var(--adc-accent)}
.date-tba{display:inline-flex;gap:.5rem;align-items:center;background:rgba(255,255,255,.12);padding:.6rem 1rem;border-radius:12px;font-weight:700}
.ticket-card{background:#fff;color:var(--ink);border-radius:22px;overflow:hidden;box-shadow:0 30px 60px -20px rgba(0,0,0,.45);transform:rotate(1.2deg);max-width:440px;margin-inline:auto}
.ticket-head{background:var(--adc-accent);color:#2b2200;font-weight:800;text-align:center;padding:.65rem;letter-spacing:.04em;text-transform:uppercase;font-size:.82rem}
.ticket-body{padding:1.4rem 1.2rem;display:grid;gap:1.1rem}
.ticket-person{display:flex;align-items:center;gap:1rem}
.tp-name{font-weight:800;font-size:1.25rem;line-height:1.15}.tp-role{color:var(--muted);font-weight:600;font-size:.9rem}
.ticket-foot{display:block;background:var(--adc);color:#fff;text-align:center;padding:.9rem;font-weight:800}
.ticket-foot:hover{background:var(--adc-dark);color:#fff;text-decoration:none}
.avatar{width:88px;height:88px;border-radius:50%;object-fit:cover;flex:none;border:4px solid #fff;box-shadow:0 6px 16px rgba(20,41,28,.18)}
.avatar-ph{display:grid;place-items:center;background:linear-gradient(135deg,var(--adc),var(--adc-dark));color:#fff;font-weight:800;font-size:1.6rem;letter-spacing:.02em}
.avatar-lg{width:84px;height:84px}.avatar-md{width:96px;height:96px;margin:0 auto .6rem}.avatar-xl{width:150px;height:150px;font-size:2.6rem;margin:-0px auto .9rem}

/* sections */
.sec{padding:4.5rem 0}.sec-tight{padding:2.5rem 0 4rem}
.sec-alt{background:var(--soft)}
.sec-dark{background:linear-gradient(160deg,var(--adc-dark),#0b2c1a);color:#fff}
.sec-head{max-width:680px;margin:0 auto 2.5rem}
.eyebrow{display:inline-block;text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;font-weight:800;color:var(--adc);margin-bottom:.5rem}
.sec h2{font-size:clamp(1.7rem,3.4vw,2.4rem);font-weight:900}
.prose p{margin-bottom:1rem}.prose.small p{font-size:.95rem}
.counter-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:2rem;box-shadow:var(--shadow);margin-top:-3.5rem;position:relative}
.big-num{font-size:clamp(2.6rem,6vw,4rem);font-weight:900;color:var(--adc-dark);line-height:1;font-variant-numeric:tabular-nums}
.prog-lg{height:14px;border-radius:10px;background:#e8f0ea}
.prog-lg .progress-bar{background:linear-gradient(90deg,var(--adc),var(--adc-accent));border-radius:10px;transition:width 1.2s ease}
.state-chip{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:.65rem .8rem}
.state-chip b{font-size:.9rem}.state-chip span{font-weight:800;color:var(--adc-dark);font-variant-numeric:tabular-nums}
.mini-bar{height:5px;border-radius:5px;background:#dfe9e2;margin-top:.45rem;overflow:hidden}.mini-bar i{display:block;height:100%;background:var(--adc);border-radius:5px}

.step-card,.benefit-card,.org-card,.news-card,.cand-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;height:100%;transition:transform .15s,box-shadow .15s}
.step-card:hover,.benefit-card:hover,.org-card:hover,.news-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.step-card{position:relative;text-align:center}.step-card h3,.benefit-card h3{font-size:1.1rem;margin:.9rem 0 .35rem}.step-card p,.benefit-card p{color:var(--muted);margin:0;font-size:.95rem}
.step-no{position:absolute;top:12px;left:14px;font-weight:900;color:#d7e6dc;font-size:1.8rem;line-height:1}
.icon-bubble{width:58px;height:58px;border-radius:16px;display:inline-grid;place-items:center;background:rgba(var(--adc-rgb),.1);color:var(--adc);font-size:1.6rem}
.icon-bubble.lg{width:66px;height:66px;font-size:1.9rem}
.benefit-card{text-align:center}
.about-logo{display:grid;place-items:center;gap:1rem;text-align:center;background:#fff;border:1px solid var(--line);border-radius:24px;padding:2.2rem;font-weight:800;color:var(--adc-dark)}
.about-logo img{width:130px;height:130px;object-fit:contain}
.cand-card{text-align:center;padding:2rem 1.6rem}.cand-card h3{font-size:1.5rem;margin:.1rem 0 .8rem}
.cand-role{display:inline-block;background:rgba(var(--adc-rgb),.1);color:var(--adc);font-weight:800;font-size:.8rem;padding:.25rem .8rem;border-radius:2rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.4rem}
.org-card{text-align:center;padding:1.3rem 1rem}.org-card h3{font-size:1rem;margin:.1rem 0}.org-role{color:var(--adc);font-weight:700;font-size:.85rem}.org-state,.org-phone{font-size:.82rem;color:var(--muted);display:block;margin-top:.15rem}
.news-card time{font-size:.8rem;color:var(--muted);font-weight:700}.news-card h3{font-size:1.1rem;margin:.4rem 0}.news-card p{margin:0;color:var(--muted)}
.gallery{columns:3 220px;column-gap:14px}.gallery figure{margin:0 0 14px;break-inside:avoid;border-radius:14px;overflow:hidden;position:relative;background:#e9efe9}
.gallery img{width:100%;display:block}.gallery figcaption{position:absolute;inset:auto 0 0;padding:.6rem .8rem;color:#fff;font-size:.85rem;background:linear-gradient(transparent,rgba(0,0,0,.65))}
.info-list{list-style:none;padding:0;margin:1.5rem 0 0;display:grid;gap:.9rem}
.info-list li{display:flex;gap:.9rem;align-items:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);padding:.85rem 1rem;border-radius:14px}
.info-list i{font-size:1.4rem;color:var(--adc-accent)}.info-list small{display:block;opacity:.75;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}.info-list b{font-size:1.05rem}
.timeline{list-style:none;padding:0;margin:0;border-left:2px solid rgba(255,255,255,.25)}
.timeline li{position:relative;padding:.35rem 0 .35rem 1.2rem;display:flex;gap:1rem}.timeline li::before{content:"";position:absolute;left:-6px;top:.85rem;width:10px;height:10px;border-radius:50%;background:var(--adc-accent)}
.timeline b{min-width:84px;color:var(--adc-accent)}
.panel-light{background:#fff;color:var(--ink);border-radius:20px;padding:1.6rem;box-shadow:0 20px 40px -20px rgba(0,0,0,.5)}
.checklist{list-style:none;padding:0;margin:1rem 0}.checklist li{display:flex;gap:.65rem;padding:.55rem 0;border-bottom:1px dashed var(--line)}.checklist li:last-child{border:0}.checklist i{color:var(--adc);font-size:1.2rem}
.rules-list{list-style:none;padding:0;margin:1rem 0 0;display:grid;gap:.7rem}.rules-list li{display:flex;gap:.8rem;background:#fff;border:1px solid var(--line);padding:.85rem 1rem;border-radius:12px}.rules-list i{color:var(--adc);font-size:1.25rem}
.panel-alert{background:#fff7e0;border:1px solid #f3dfa2;border-radius:16px;padding:1.2rem}
.faq .accordion-item{border:1px solid var(--line);border-radius:14px!important;margin-bottom:.7rem;overflow:hidden;background:#fff}
.faq .accordion-button{font-weight:700;padding:1.05rem 1.2rem;background:#fff;color:var(--ink);box-shadow:none}
.faq .accordion-button:not(.collapsed){color:var(--adc-dark);background:rgba(var(--adc-rgb),.07)}
.faq .accordion-body p:last-child{margin:0}
.cta-band{background:linear-gradient(135deg,var(--adc-dark),var(--adc));color:#fff}
.contact-list{list-style:none;padding:0;margin:0;display:grid;gap:.7rem}.contact-list li{display:flex;gap:.8rem;align-items:center;color:#fff}.contact-list i{width:42px;height:42px;display:grid;place-items:center;background:rgba(255,255,255,.14);border-radius:12px;font-size:1.1rem}.contact-list a{color:#fff;font-weight:600}
.site-footer{background:#0b1f13;color:rgba(255,255,255,.82);padding:2.5rem 0 1.5rem}.site-footer hr{border-color:rgba(255,255,255,.14)}
.site-footer a{color:rgba(255,255,255,.8)}.site-footer a:hover{color:#fff}.slogan-line{color:var(--adc-accent);font-weight:700;font-size:.9rem}
.social{display:flex;gap:.55rem;justify-content:flex-end;flex-wrap:wrap}.social a{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:rgba(255,255,255,.1);font-size:1.15rem}.social a:hover{background:var(--adc);text-decoration:none}
.foot-meta{color:rgba(255,255,255,.6)}

/* party people */
.person-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem 1rem 1.2rem;height:100%;text-align:center;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex;flex-direction:column;align-items:center}
.person-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.person-card.has-bio{cursor:pointer}.person-card.has-bio:hover{border-color:var(--adc)}
.person-card h3{font-size:1.02rem;margin:.1rem 0 .15rem;line-height:1.25}
.person-card .avatar-md{width:104px;height:104px;margin:0 auto .7rem}
.person-role{color:var(--adc);font-weight:700;font-size:.88rem;line-height:1.3}
.status-chip{display:inline-block;margin-top:.5rem;background:rgba(var(--adc-rgb),.1);color:var(--adc-dark);font-weight:700;font-size:.72rem;letter-spacing:.03em;text-transform:uppercase;padding:.25rem .7rem;border-radius:2rem}
.person-state{margin-top:.45rem;font-size:.8rem;color:var(--muted)}
.person-more{margin-top:auto;padding-top:.7rem;font-size:.8rem;font-weight:700;color:var(--adc)}
.people-tools{display:grid;gap:1rem;max-width:880px;margin:0 auto}
.people-search{box-shadow:var(--shadow-sm);border-radius:.9rem}
.filter-pills{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}
.fpill{border:2px solid #cfdcd3;background:#fff;color:var(--ink);font-weight:700;font-size:.85rem;border-radius:2rem;padding:.4rem .95rem;cursor:pointer;transition:all .12s}
.fpill b{font-weight:800;opacity:.65;margin-left:.2rem}.fpill:hover{border-color:var(--adc)}
.fpill.active{background:var(--adc);border-color:var(--adc);color:#fff}
.person-col[hidden]{display:none!important}
.person-modal{border:0;border-radius:22px;overflow:hidden}.person-modal .avatar{width:140px;height:140px;margin:0 auto}.person-modal .avatar-ph{font-size:2.6rem}

/* inner pages */
.page-hero{color:#fff;background:linear-gradient(135deg,var(--adc-dark),var(--adc));padding:3rem 0 4.2rem;text-align:center}
.page-hero h1{color:#fff;font-size:clamp(1.7rem,4vw,2.6rem);font-weight:900;margin-bottom:.4rem}.page-hero p{color:rgba(255,255,255,.88);max-width:560px;margin:0 auto}
.page-hero .hero-badge{margin-bottom:.8rem}
.page-hero + .sec .form-card{margin-top:-3rem;position:relative}
.form-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:2rem;box-shadow:var(--shadow)}
@media(max-width:575.98px){.form-card{padding:1.35rem 1.1rem;border-radius:18px}.sec{padding:3.2rem 0}.counter-card{padding:1.4rem 1.1rem}
  .hero{padding:3rem 0 4.2rem}.hero .btn-lg{width:100%}.cd-box{min-width:0;flex:1}.cd-box b{font-size:1.6rem}.countdown{flex-wrap:nowrap;gap:.45rem}
  .success-banner{flex-direction:column;text-align:center}.pass-actions .btn{width:100%}.reg-actions .btn{flex:1}}
.form-label{font-weight:700;font-size:.92rem;margin-bottom:.35rem}.form-text{font-size:.82rem}.opt{font-weight:400;color:var(--muted)}
.form-control,.form-select{border-radius:.75rem;border:1.5px solid #cfdcd3;padding-top:.7rem;padding-bottom:.7rem}
.form-control:focus,.form-select:focus{border-color:var(--adc);box-shadow:0 0 0 .25rem rgba(var(--adc-rgb),.15)}
.input-group-text{background:var(--soft);border:1.5px solid #cfdcd3;color:var(--adc);border-radius:.75rem}
.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{font-size:1.05rem}
.nin-input{letter-spacing:.12em;font-variant-numeric:tabular-nums}.nin-count{font-size:.8rem;min-width:62px;justify-content:center;color:var(--muted)}.nin-count.ok{color:var(--adc);font-weight:800}
.invalid-feedback{font-weight:600}.is-invalid{border-color:#dc3545!important}
.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.reg-steps{display:flex;list-style:none;padding:0;margin:0 0 1.6rem;counter-reset:x}
.reg-steps li{flex:1;text-align:center;font-size:.78rem;font-weight:700;color:var(--muted);position:relative}
.reg-steps li span{width:34px;height:34px;display:grid;place-items:center;margin:0 auto .3rem;border-radius:50%;background:#fff;border:2px solid var(--line);position:relative;z-index:1;font-size:.95rem}
.reg-steps li:not(:last-child)::after{content:"";position:absolute;top:16px;left:calc(50% + 20px);right:calc(-50% + 20px);height:3px;background:var(--line);border-radius:3px}
.reg-steps li.active span{background:var(--adc);border-color:var(--adc);color:#fff;box-shadow:0 0 0 5px rgba(var(--adc-rgb),.15)}.reg-steps li.active{color:var(--adc-dark)}
.reg-steps li.done span{background:var(--adc-accent);border-color:var(--adc-accent);color:#2b2200}.reg-steps li.done::after{background:var(--adc-accent)}
.rstep{border:0;padding:0;margin:0;min-width:0;animation:fadeUp .25s ease}.rstep[hidden]{display:none}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.pills{display:flex;flex-wrap:wrap;gap:.5rem}
.pill{display:inline-flex;align-items:center;justify-content:center;padding:.6rem 1.2rem;border:2px solid #cfdcd3;border-radius:2rem;font-weight:700;cursor:pointer;background:#fff;transition:all .12s;user-select:none}
.pill:hover{border-color:var(--adc)}.btn-check:checked+.pill{background:var(--adc);border-color:var(--adc);color:#fff;box-shadow:0 6px 14px -6px rgba(var(--adc-rgb),.7)}
.btn-check:focus-visible+.pill{outline:3px solid rgba(var(--adc-rgb),.4);outline-offset:2px}
.pill-lg{min-width:68px;padding:.75rem 1rem;border-radius:.9rem;font-size:1.05rem}
.review-box{background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:1rem 1.1rem}
.review-box h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:.6rem}
.review-box dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem}.review-box dt{color:var(--muted);font-weight:600;font-size:.88rem}.review-box dd{margin:0;font-weight:700;word-break:break-word}
.consent .form-check-input{width:1.35em;height:1.35em;margin-top:.15em;border:2px solid #9db5a5}.consent .form-check-input:checked{background-color:var(--adc);border-color:var(--adc)}.consent label{font-size:.9rem;padding-left:.2rem}
.reg-actions{display:flex;gap:.75rem;margin-top:1.6rem;align-items:center}
.trust-row{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1.4rem;margin-top:1.2rem;color:var(--muted);font-size:.85rem;font-weight:600}.trust-row i{color:var(--adc)}
.big-status{width:92px;height:92px;border-radius:50%;margin:0 auto 1rem;display:grid;place-items:center;font-size:3rem;color:#fff}.big-status.ok{background:var(--adc);box-shadow:0 0 0 12px rgba(var(--adc-rgb),.14)}.big-status.bad{background:#c0392b;box-shadow:0 0 0 12px rgba(192,57,43,.14)}
.reg-chip{display:inline-block;font-family:ui-monospace,Consolas,monospace;font-weight:800;background:var(--soft);border:1px dashed #9db5a5;padding:.4rem .9rem;border-radius:.6rem;margin:.4rem 0 1rem;letter-spacing:.04em}
.err-code{font-size:4.5rem;font-weight:900;color:var(--adc);line-height:1;margin-bottom:.5rem}

/* pass */
.success-banner{display:flex;gap:1.1rem;align-items:center;background:linear-gradient(135deg,var(--adc-dark),var(--adc));color:#fff;border-radius:20px;padding:1.4rem 1.6rem;margin-bottom:1.6rem;box-shadow:var(--shadow)}
.success-banner h1{color:#fff;font-size:1.5rem;margin:0 0 .2rem}.success-banner p{margin:0;color:rgba(255,255,255,.88)}
.check-anim{flex:none;width:62px;height:62px;border-radius:50%;background:var(--adc-accent);color:#2b2200;display:grid;place-items:center;font-size:2rem;animation:pop .5s cubic-bezier(.2,1.4,.4,1)}
@keyframes pop{from{transform:scale(.2);opacity:0}to{transform:none;opacity:1}}
.pass-card{background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 22px 50px -18px rgba(20,41,28,.45);border:1px solid var(--line);max-width:420px;margin-inline:auto}
.pass-head{display:flex;gap:.8rem;align-items:center;background:linear-gradient(135deg,var(--adc-dark),var(--adc));color:#fff;padding:.9rem 1.1rem}
.pass-head img{border-radius:50%;background:#fff}.pass-head b{display:block;font-size:1.05rem}.pass-head small{opacity:.85;font-size:.76rem;line-height:1.2;display:block}
.pass-body{padding:1.4rem 1.3rem 1rem;text-align:center}
.pass-qr{width:min(260px,72vw);margin:0 auto;padding:6px;background:#fff;border:2px solid var(--adc-dark);border-radius:16px}.pass-qr svg{display:block;width:100%;height:auto}
.pass-reg{margin:.9rem 0}.pass-reg small{display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700}
.pass-reg b{font-family:ui-monospace,Consolas,monospace;font-size:1.22rem;color:var(--adc-dark);letter-spacing:.03em}
.pass-dl{margin:0;text-align:left;border-top:1px dashed #cdd9d0;padding-top:.8rem}.pass-dl>div{display:flex;justify-content:space-between;gap:1rem;padding:.28rem 0}
.pass-dl dt{color:var(--muted);font-weight:600;font-size:.82rem}.pass-dl dd{margin:0;font-weight:700;text-align:right;font-size:.92rem}
.pass-foot{background:var(--soft);padding:.75rem 1.1rem;font-size:.78rem;color:var(--muted);text-align:center;border-top:1px solid var(--line)}
.info-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.1rem 1.2rem;margin-bottom:1rem}.info-card h2{font-size:.95rem;font-weight:800;margin-bottom:.7rem}
.next-steps{padding-left:1.2rem;margin-bottom:.8rem}.next-steps li{margin-bottom:.3rem}
.point-row{padding:.55rem 0;border-bottom:1px dashed var(--line);font-size:.92rem}.point-row:last-child{border:0}.point-row i{color:var(--adc)}
.btn-check:checked + .pill i{color:inherit}

/* ===== ADMIN ===== */
.admin-shell{display:flex;min-height:100vh}
.side{width:264px;flex:none;background:#0b1f13;color:#cfe0d5;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}
.side-brand{display:flex;gap:.7rem;align-items:center;padding:1.1rem 1.2rem;color:#fff;border-bottom:1px solid rgba(255,255,255,.08)}.side-brand img{border-radius:50%;background:#fff}.side-brand b{display:block;line-height:1.1}.side-brand small{color:#8fb09b;font-size:.72rem}
.side-nav{padding:.8rem .7rem;display:grid;gap:2px}.side-nav .grp{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:#6f8f7b;padding:.9rem .7rem .3rem}
.side-nav a{display:flex;align-items:center;gap:.7rem;color:#cfe0d5;padding:.62rem .8rem;border-radius:.7rem;font-weight:600;font-size:.93rem}
.side-nav a i{font-size:1.1rem;width:1.3rem;text-align:center;opacity:.9}.side-nav a:hover{background:rgba(255,255,255,.07);color:#fff;text-decoration:none}
.side-nav a.active{background:var(--adc);color:#fff;box-shadow:0 8px 18px -10px #000}
.admin-main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;gap:.8rem;background:#fff;border-bottom:1px solid var(--line);padding:.7rem 1.2rem;position:sticky;top:0;z-index:20}
.topbar h1{font-size:1.15rem;margin:0;font-weight:800}.topbar .grow{flex:1}
.user-chip{display:flex;align-items:center;gap:.55rem;padding:.25rem .7rem .25rem .3rem;border:1px solid var(--line);border-radius:2rem;background:var(--soft);font-weight:600;font-size:.88rem}
.user-chip .av{width:30px;height:30px;border-radius:50%;background:var(--adc);color:#fff;display:grid;place-items:center;font-size:.8rem;font-weight:800}
.admin-content{padding:1.4rem;max-width:1400px;width:100%}
.kpi{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.1rem 1.2rem;height:100%;box-shadow:var(--shadow-sm);display:flex;gap:.9rem;align-items:center}
.kpi .ic{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-size:1.4rem;background:rgba(var(--adc-rgb),.1);color:var(--adc);flex:none}
.kpi .ic.gold{background:rgba(242,183,5,.18);color:#9a7400}.kpi .ic.red{background:rgba(192,57,43,.12);color:#c0392b}.kpi .ic.blue{background:rgba(37,99,235,.1);color:#2563eb}
.kpi b{display:block;font-size:1.6rem;line-height:1.1;font-variant-numeric:tabular-nums}.kpi span{color:var(--muted);font-size:.82rem;font-weight:600}
.panel{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-sm);margin-bottom:1.2rem}
.panel-h{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.9rem 1.2rem;border-bottom:1px solid var(--line);font-weight:800}.panel-h small{font-weight:600;color:var(--muted)}
.panel-b{padding:1.2rem}
.table{--bs-table-bg:transparent;margin:0}.table th{font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:800;white-space:nowrap;border-bottom-width:1px;background:var(--soft)}
.table td{vertical-align:middle;font-size:.92rem}.table-hover tbody tr:hover{background:#f7faf8}
.mono{font-family:ui-monospace,Consolas,monospace;font-size:.86rem}
.badge-s{display:inline-block;padding:.22rem .6rem;border-radius:2rem;font-size:.74rem;font-weight:800;letter-spacing:.02em}
.badge-s.registered{background:#e3f4ea;color:#14602f}.badge-s.collected{background:#e4e9f5;color:#2b3f7a}.badge-s.flagged{background:#fff1d6;color:#8a5a00}.badge-s.void{background:#fde4e1;color:#9b1c10}
.bars{display:flex;align-items:flex-end;gap:6px;height:160px;padding-top:10px}.bars .b{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;height:100%;min-width:0}
.bars .b i{display:block;width:100%;max-width:34px;background:linear-gradient(var(--adc),var(--adc-dark));border-radius:6px 6px 2px 2px;min-height:3px}.bars .b span{font-size:.65rem;color:var(--muted)}.bars .b em{font-style:normal;font-size:.7rem;font-weight:800}
.hbar{height:8px;background:#e6eee9;border-radius:8px;overflow:hidden}.hbar i{display:block;height:100%;background:var(--adc);border-radius:8px}
.checklist-setup{list-style:none;padding:0;margin:0}.checklist-setup li{display:flex;gap:.7rem;align-items:center;padding:.55rem 0;border-bottom:1px dashed var(--line)}.checklist-setup li:last-child{border:0}
.checklist-setup .dot{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:.8rem;flex:none;background:#fde4e1;color:#c0392b}.checklist-setup .done .dot{background:#e3f4ea;color:var(--adc)}
.repeater-item{background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:1rem;margin-bottom:.9rem;position:relative}
.repeater-item .rtools{position:absolute;right:.6rem;top:.6rem;display:flex;gap:.3rem}
.bi-tabs .nav-link{padding:.25rem .7rem;font-size:.8rem;font-weight:700}
.img-thumb{width:84px;height:84px;object-fit:cover;border-radius:12px;border:1px solid var(--line);background:#fff}
.sidebar-toggle{display:none}
@media (max-width:991.98px){
  .side{position:fixed;left:0;top:0;bottom:0;z-index:1040;transform:translateX(-100%);transition:transform .22s;width:270px}
  .side.open{transform:none;box-shadow:0 0 0 100vmax rgba(0,0,0,.45)}
  .sidebar-toggle{display:inline-flex}
  .admin-content{padding:1rem .85rem}
}

/* login */
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:1.2rem;background:linear-gradient(135deg,var(--adc-dark),var(--adc))}
.login-card{width:100%;max-width:420px;background:#fff;border-radius:22px;padding:2rem 1.7rem;box-shadow:0 30px 60px -20px rgba(0,0,0,.5)}
.login-card .logo{display:block;margin:0 auto .8rem;width:76px;height:76px;border-radius:50%}

/* ===== SCANNER ===== */
body.scanner{background:#0b1f13;color:#fff;overscroll-behavior:none}
.sc-wrap{max-width:560px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}
.sc-top{display:flex;align-items:center;gap:.6rem;padding:.7rem .9rem;background:#0f2a1a;border-bottom:1px solid rgba(255,255,255,.08)}
.sc-top .t{flex:1;min-width:0}.sc-top .t b{display:block;font-size:.95rem}.sc-top .t small{color:#8fb09b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.sc-top a,.sc-top button.ico{color:#fff;background:rgba(255,255,255,.1);border:0;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:1.2rem}
.sc-net{width:10px;height:10px;border-radius:50%;background:#2ecc71;box-shadow:0 0 0 3px rgba(46,204,113,.25)}.sc-net.off{background:#e74c3c;box-shadow:0 0 0 3px rgba(231,76,60,.25)}
.sc-cam{position:relative;flex:1;min-height:320px;background:#000;overflow:hidden}
.sc-cam video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sc-frame{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}
.sc-frame i{width:min(68vw,300px);aspect-ratio:1;border-radius:24px;box-shadow:0 0 0 100vmax rgba(0,0,0,.5);border:3px solid var(--adc-accent);position:relative}
.sc-frame i::after{content:"";position:absolute;left:8px;right:8px;top:0;height:3px;background:var(--adc-accent);box-shadow:0 0 14px var(--adc-accent);animation:scan 2s linear infinite}
@keyframes scan{0%{top:6px}50%{top:calc(100% - 9px)}100%{top:6px}}
.sc-hint{position:absolute;left:0;right:0;bottom:14px;text-align:center;font-weight:600;text-shadow:0 1px 6px #000;padding:0 1rem}
.sc-start{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:1.5rem;background:#0b1f13}
.sc-bar{display:flex;gap:.6rem;padding:.8rem .9rem;background:#0f2a1a}
.sc-bar .btn{flex:1}
.sc-result{position:fixed;inset:0;z-index:50;display:flex;flex-direction:column;padding:1.1rem;overflow-y:auto;animation:fadeUp .18s ease}
.sc-result[hidden]{display:none}
.sc-result.ok{background:#0d6b36}.sc-result.bad{background:#a82a1e}.sc-result.warn{background:#a86b00}.sc-result.neutral{background:#3b4a42}
.sc-res-inner{max-width:520px;width:100%;margin:auto;text-align:center}
.sc-res-ic{font-size:4.6rem;line-height:1}
.sc-res-title{font-size:2rem;font-weight:900;letter-spacing:.01em;margin:.3rem 0 .2rem}
.sc-res-sub{opacity:.92;font-weight:600;margin-bottom:1rem}
.sc-person{background:rgba(0,0,0,.22);border-radius:18px;padding:1rem 1.1rem;text-align:left;margin:1rem 0}
.sc-person .nm{font-size:1.45rem;font-weight:800;line-height:1.15;margin-bottom:.4rem}
.sc-person .rg{font-family:ui-monospace,Consolas,monospace;font-weight:800;font-size:1.12rem;letter-spacing:.04em;background:rgba(255,255,255,.14);display:inline-block;padding:.2rem .6rem;border-radius:.5rem;margin-bottom:.6rem}
.sc-person dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.25rem .9rem}.sc-person dt{opacity:.75;font-weight:600;font-size:.85rem}.sc-person dd{margin:0;font-weight:700;text-align:right}
.sc-actions{display:grid;gap:.7rem}
.sc-actions .btn{padding:1rem;font-size:1.15rem;border-radius:1rem}
.btn-issue{background:var(--adc-accent);color:#2b2200;border:0;font-weight:900}.btn-issue:hover{background:#ffd23e;color:#2b2200}
.sc-modal{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.6);display:grid;place-items:center;padding:1rem}.sc-modal[hidden]{display:none}
.sc-modal .box{background:#fff;color:var(--ink);border-radius:20px;padding:1.4rem;width:100%;max-width:420px}

/* print: only the pass */
@media print{
  body *{visibility:hidden}
  #passCard,#passCard *{visibility:visible}
  #passCard{position:absolute;left:50%;top:0;transform:translateX(-50%);box-shadow:none;border:1px solid #999;width:380px;max-width:none}
  .site-nav,.site-footer{display:none!important}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* ---------- one person / support group switch, ID box, group people ---------- */
.mode-switch{display:flex;gap:.4rem;background:#fff;border:1px solid var(--line);border-radius:1rem;padding:.3rem;margin:0 0 1rem;box-shadow:0 6px 18px -12px rgba(20,41,28,.35)}
.mode-switch a{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem .8rem;border-radius:.75rem;font-weight:800;font-size:.95rem;color:var(--muted);text-decoration:none;text-align:center;line-height:1.2}
.mode-switch a:hover{color:var(--adc-dark);background:var(--soft)}
.mode-switch a.active{background:var(--adc);color:#fff;box-shadow:0 8px 16px -8px rgba(var(--adc-rgb),.7)}
.id-box{background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:1rem 1.05rem}
.id-box .form-control,.id-box .input-group-text{background:#fff}
.vin-input,.id-input,.pr-vin{text-transform:uppercase;letter-spacing:.06em}
.person-row{background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:.9rem 1rem 1rem;margin-bottom:.85rem}
.person-row.has-err{border-color:#e4a2a2}
.person-row .pr-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.6rem}
.person-row .pr-title{font-size:.95rem}
.person-row .form-control,.person-row .form-select{font-size:.95rem}
.group-card .reg-chip{display:inline-block;font-size:.85rem}
.member-list{max-height:560px;overflow:auto}
.member-row{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--line);flex-wrap:wrap}
.member-row:last-child{border-bottom:0}
.member-row .mr-no{width:28px;height:28px;border-radius:50%;background:var(--soft);display:grid;place-items:center;font-size:.78rem;font-weight:800;color:var(--muted);flex:none}
.member-row .mr-main{flex:1 1 200px;min-width:0}
.member-row .mr-name{font-weight:800;word-break:break-word}
.member-row .mr-act{display:flex;gap:.4rem;flex:none}
@media(max-width:575.98px){.member-row .mr-act{width:100%;justify-content:flex-end}.mode-switch a{font-size:.85rem;padding:.65rem .4rem}}
/* the switch takes over the overlap with the page header that the form card normally has */
.page-hero + .sec .mode-switch{margin-top:-3rem;position:relative;z-index:2}
.page-hero + .sec .mode-switch ~ .form-card{margin-top:0}
