/* FINAL V22 — camera really first + zero React DOM surgery */
[data-v22-shadow-shell="1"]{display:none!important}
body.v22-admin-route main.admin-mobile-main{animation:none!important;transition:none!important}

/* Camera route page: keep page title first, then scanner immediately. Event selector,
   counters and attendance lists all sit below the scanner. */
body.v22-camera-route main.admin-mobile-main .mx-auto.space-y-5:has(> .mobile-scanner-box){
  display:flex!important;
  flex-direction:column!important;
  gap:16px!important;
}
body.v22-camera-route main.admin-mobile-main .mx-auto.space-y-5:has(> .mobile-scanner-box) > :first-child{order:-200!important}
body.v22-camera-route main.admin-mobile-main .mx-auto.space-y-5:has(> .mobile-scanner-box) > .mobile-scanner-box{order:-150!important}
body.v22-camera-route main.admin-mobile-main .mx-auto.space-y-5:has(> .mobile-scanner-box) > :not(:first-child):not(.mobile-scanner-box){order:0!important}

/* Scanner itself: scanned result dropdown may appear above the live camera after a scan.
   Otherwise the viewport is the first visible scanner element. */
body.v22-camera-route .mobile-scanner-box{display:flex!important;flex-direction:column!important;gap:12px!important;overflow:visible!important}
body.v22-camera-route .v21-scan-result-details{order:-30!important;width:100%!important;overflow:hidden!important;border:1px solid rgba(34,197,94,.32)!important;border-radius:16px!important;background:rgba(17,24,39,.92)!important}
body.v22-camera-route .v21-camera-card{order:0!important;display:flex!important;flex-direction:column!important;gap:11px!important;overflow:visible!important;padding:14px!important}
body.v22-camera-route .v21-camera-viewport{order:-100!important;width:min(100%,620px)!important;max-width:620px!important;margin:0 auto 4px!important;position:relative!important;z-index:1!important;border-radius:24px!important;box-shadow:0 16px 50px rgba(0,0,0,.28)!important}
body.v22-camera-route .v21-in-camera-result{display:none!important}
body.v22-camera-route .v21-camera-status{order:10!important;margin:0!important}
body.v22-camera-route .v21-camera-selector{order:20!important;margin:0!important}
body.v22-camera-route .v21-camera-actions{order:30!important;margin:0!important}
body.v22-camera-route .v21-camera-error{order:40!important}
body.v22-camera-route .v21-camera-note{order:50!important}
body.v22-camera-route .v21-camera-actions button{min-height:48px!important}

body.v22-camera-route .v21-scan-result-details>summary{list-style:none!important;min-height:50px!important;padding:0 14px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;cursor:pointer!important;color:#fff!important;font-size:12px!important;font-weight:900!important;background:rgba(34,197,94,.07)!important}
body.v22-camera-route .v21-scan-result-details>summary::-webkit-details-marker{display:none!important}
body.v22-camera-route .v21-result-chevron{transition:transform .18s ease!important}
body.v22-camera-route .v21-scan-result-details[open] .v21-result-chevron{transform:rotate(180deg)!important}
body.v22-camera-route .v21-scan-result-body{padding-top:10px!important}

@media (max-width:640px){
  body.v22-camera-route .v21-camera-card{padding:8px!important;border-radius:20px!important}
  body.v22-camera-route .v21-camera-viewport{width:100%!important;max-width:none!important;border-radius:20px!important}
  body.v22-camera-route main.admin-mobile-main .mx-auto.space-y-5:has(> .mobile-scanner-box){gap:12px!important}
}

/* FINAL V23 — complete current-event ledger on admin dashboard */
.v23-dashboard-report{position:relative;z-index:1}
.v23-excel-btn{min-height:42px;padding:0 15px;border:1px solid rgba(34,197,94,.45);border-radius:12px;background:rgba(34,197,94,.12);color:#86efac;font-size:12px;font-weight:900;cursor:pointer;transition:.18s ease}
.v23-excel-btn:hover{background:rgba(34,197,94,.2);border-color:#22c55e}.v23-excel-btn:disabled{opacity:.5;cursor:not-allowed}
.v23-report-select,.v23-report-search{width:100%;min-height:42px;border:1px solid var(--border,#2a303b);border-radius:12px;background:#11161f;color:#f5f7fb;padding:0 12px;font:inherit;font-size:12px;outline:none}
.v23-report-select:focus,.v23-report-search:focus{border-color:rgba(239,68,68,.7);box-shadow:0 0 0 3px rgba(239,68,68,.08)}
.v23-kpi{display:inline-flex;align-items:center;gap:4px;border:1px solid rgba(148,163,184,.2);border-radius:999px;background:rgba(148,163,184,.07);padding:6px 10px;font-weight:800}.v23-kpi.v23-danger{border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.08);color:#fca5a5}
.v23-report-table{width:100%;min-width:1060px;border-collapse:collapse;font-size:11px}.v23-report-table th{background:#151b25;color:#aeb7c5;text-align:right;font-weight:900;padding:11px;border-bottom:1px solid rgba(148,163,184,.16);white-space:nowrap}.v23-report-table td{padding:10px 11px;border-bottom:1px solid rgba(148,163,184,.11);vertical-align:middle}.v23-report-table tbody tr:hover{background:rgba(255,255,255,.025)}
.v23-report-table td b,.v23-report-table td small,.v23-ok small,.v23-vio small{display:block}.v23-report-table td small{margin-top:3px;color:#8f99a8;font-size:10px;white-space:nowrap}
.v23-photo-pair{display:flex;align-items:center;gap:6px}.v23-photo-pair img,.v23-photo-empty{width:44px;height:44px;flex:0 0 44px;border-radius:10px;border:1px solid rgba(148,163,184,.22);object-fit:cover;background:#0b0f15}.v23-photo-empty{display:grid;place-items:center;color:#778195;font-size:9px}
.v23-ok{color:#4ade80;font-weight:900}.v23-muted{color:#778195}.v23-vio{display:inline-grid;min-width:34px;place-items:center;border:1px solid rgba(239,68,68,.45);border-radius:10px;background:rgba(239,68,68,.1);padding:4px 7px;color:#fca5a5;font-weight:900}.v23-vio small{max-width:190px;overflow:hidden;text-overflow:ellipsis;color:#fca5a5}
.v23-profile-link{display:inline-flex;min-height:34px;align-items:center;justify-content:center;border:1px solid rgba(239,68,68,.32);border-radius:10px;padding:0 10px;color:#fff;font-weight:900;white-space:nowrap}.v23-profile-link:hover{background:rgba(239,68,68,.12);color:#f87171}
@media(max-width:640px){.v23-dashboard-report{padding:14px!important}.v23-excel-btn{width:100%}.v23-report-table{min-width:920px}.v23-photo-pair img,.v23-photo-empty{width:38px;height:38px;flex-basis:38px}}
