.checkin-hero{overflow:hidden}.checkin-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}.checkin-kpis>div{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.checkin-kpis span{display:block;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.checkin-kpis strong{display:block;font-size:28px;margin-top:4px}.checkin-tools{display:grid;grid-template-columns:1fr 1fr;gap:14px}.checkin-search,.checkin-scan-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px}.checkin-search input{min-width:240px;flex:1}.scanner-shell{position:relative;margin-top:14px;overflow:hidden;border-radius:14px;background:#000;aspect-ratio:4/3;max-width:520px}.scanner-shell video{width:100%;height:100%;object-fit:cover}.scanner-guide{position:absolute;inset:20%;border:3px solid rgba(255,255,255,.9);border-radius:16px;box-shadow:0 0 0 999px rgba(0,0,0,.24)}.checkin-roster{display:grid;gap:8px;margin-top:14px}.checkin-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.checkin-row.is-checked{background:var(--surface-2)}.checkin-person{display:grid;gap:3px;min-width:0}.checkin-person strong{font-size:15px}.checkin-person span,.checkin-person small{color:var(--muted);overflow-wrap:anywhere}.checkin-status{display:grid;justify-items:end;gap:4px;text-align:right}.compact{padding:7px 10px;font-size:12px}@media(max-width:760px){.checkin-tools{grid-template-columns:1fr}.checkin-kpis{grid-template-columns:repeat(3,1fr)}.checkin-row{align-items:flex-start}.checkin-person small{display:none}}@media(max-width:480px){.checkin-kpis{grid-template-columns:1fr}.checkin-row{display:grid}.checkin-action,.checkin-action button{width:100%}.checkin-status{justify-items:stretch;text-align:left}}.checkin-row-buttons{display:flex;gap:7px;align-items:center}.checkin-qr-dialog{border:0;border-radius:18px;padding:0;max-width:min(92vw,380px);box-shadow:0 24px 80px rgba(0,0,0,.28)}.checkin-qr-dialog::backdrop{background:rgba(0,0,0,.55)}.checkin-qr-shell{position:relative;padding:24px;text-align:center;background:var(--surface);color:var(--ink)}.checkin-qr-shell h2{margin:8px 0 12px}.checkin-qr-mount{display:flex;justify-content:center;margin:0 auto 12px;min-height:276px;align-items:center}.checkin-qr-mount img,.checkin-qr-mount canvas{display:block;background:#fff;border-radius:10px;padding:8px;max-width:100%;height:auto}.checkin-qr-shell>strong{font-size:18px;letter-spacing:.06em}.checkin-file-input{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}.checkin-ios-hint{margin:10px 0 0;padding:10px 12px;border-radius:10px;background:var(--surface-2);font-size:13px;line-height:1.4}.scanner-tip{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);padding:7px 10px;border-radius:999px;background:rgba(0,0,0,.58);color:#fff;font-size:12px;font-weight:700;white-space:nowrap}.checkin-search input{font-size:16px;min-height:44px}.checkin-scan-actions button,.checkin-search button,.checkin-row-buttons button,.checkin-status button{min-height:44px;touch-action:manipulation}.checkin-row{min-height:62px}.checkin-person strong{font-size:16px}.checkin-person span{font-size:13px}.checkin-action{flex:0 0 auto}.checkin-qr-shell{padding-bottom:calc(24px + env(safe-area-inset-bottom));padding-left:calc(24px + env(safe-area-inset-left));padding-right:calc(24px + env(safe-area-inset-right))}@supports(padding:max(0px)){.checkin-hero,.checkin-tools,.checkin-roster{scroll-margin-top:max(12px,env(safe-area-inset-top))}}@media(max-width:820px){.checkin-tools{grid-template-columns:1fr}.checkin-row{padding:14px}.checkin-row-buttons{gap:10px}.checkin-row-buttons .primary-button{min-width:112px}.scanner-shell{max-width:none;width:100%;aspect-ratio:4/3}.checkin-search{display:grid;grid-template-columns:minmax(0,1fr) auto}.checkin-search #clearCheckinSearch{grid-column:1/-1}.checkin-kpis strong{font-size:26px}}@media(min-width:821px) and (max-width:1366px) and (pointer:coarse){.checkin-tools{grid-template-columns:1.05fr .95fr}.checkin-row{padding:14px 16px}.checkin-row-buttons button{min-width:92px}.scanner-shell{max-width:620px}}@media(max-width:540px){.checkin-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.checkin-kpis>div{padding:10px}.checkin-kpis strong{font-size:22px}.checkin-kpis span{font-size:9px}.checkin-search{grid-template-columns:1fr}.checkin-search button{width:100%}.checkin-row{gap:10px}.checkin-row-buttons{display:grid;grid-template-columns:.72fr 1.28fr;width:100%}.checkin-row-buttons button{width:100%;min-width:0}.checkin-status{width:100%}.checkin-status .badge{justify-self:start}.scanner-guide{inset:14%}.scanner-tip{bottom:10px}}.checkin-grade-group{margin-top:22px}.checkin-grade-group:first-child{margin-top:0}.checkin-grade-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;padding:0 2px 10px;border-bottom:1px solid var(--line)}.checkin-grade-heading .eyebrow{margin:0 0 4px}.checkin-grade-heading h3{margin:0;font-size:20px}.checkin-grade-list{display:grid;gap:8px;margin-top:10px}@media(max-width:540px){.checkin-grade-heading{align-items:flex-start;flex-direction:column;gap:8px}.checkin-grade-heading .badge{align-self:flex-start}}.checkin-roster-card{overflow:hidden}.checkin-grade-tabs{display:flex;gap:18px;align-items:end;border-bottom:1px solid var(--line);overflow-x:auto;overscroll-behavior-inline:contain}.checkin-grade-tab{position:relative;flex:0 0 auto;min-height:44px;padding:0 2px;border:0;background:transparent;color:var(--muted);font-weight:750}.checkin-grade-tab:hover{color:var(--blue)}.checkin-grade-tab.is-active{color:var(--blue)}.checkin-grade-tab.is-active::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--blue);border-radius:2px 2px 0 0}.checkin-roster-search{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:10px;align-items:center;margin-top:14px;padding:0 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.checkin-roster-search:focus-within{border-color:#8bb9f2;box-shadow:0 0 0 3px rgba(24,104,213,.12)}.checkin-roster-search input[type="search"]{min-width:0;width:100%;border:0;box-shadow:none;padding-left:0;padding-right:0;background:transparent}.checkin-roster-search input[type="search"]:focus{box-shadow:none}.checkin-search-icon{color:var(--muted);font-size:18px}.checkin-search-clear{border:0;background:transparent;color:var(--blue);font-size:12px;font-weight:750;padding:0 4px;min-height:36px}.checkin-shown-count{justify-self:end}.checkin-roster{margin-top:14px}@media(max-width:640px){.checkin-grade-tabs{gap:14px}.checkin-grade-tab{font-size:13px}.checkin-roster-search{grid-template-columns:auto minmax(0,1fr) auto}.checkin-search-clear{display:none}.checkin-shown-count{grid-column:3}.checkin-roster-search input[type="search"]{font-size:16px}}
.checkin-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
.checkin-row.is-present{border-color:rgba(36,99,170,.45);box-shadow:inset 4px 0 0 rgba(36,99,170,.55)}
.checkin-confirm-dialog{border:0;border-radius:18px;padding:0;max-width:min(92vw,440px);box-shadow:0 24px 80px rgba(0,0,0,.28)}
.checkin-confirm-dialog::backdrop{background:rgba(0,0,0,.55)}
.checkin-confirm-shell{padding:24px;background:var(--surface);color:var(--ink)}
.checkin-confirm-shell h2{margin:8px 0}.checkin-confirm-shell p{line-height:1.5}
.checkin-confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
.checkin-archive summary{display:flex;align-items:baseline;justify-content:space-between;gap:12px;cursor:pointer}
.checkin-archive summary span{font-size:12px;color:var(--muted)}
.checkin-archive-list{display:grid;gap:8px;margin-top:14px}
.checkin-archive-list>div{display:grid;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}
.checkin-archive-list span,.checkin-archive-list small{color:var(--muted)}
@media(max-width:760px){.checkin-kpis{grid-template-columns:repeat(2,1fr)}.checkin-archive summary{display:grid}.checkin-confirm-actions{display:grid}.checkin-confirm-actions button{width:100%}}


.checkin-scan-feedback{margin-top:14px;padding:16px 18px;border:2px solid #b8c7d6;border-radius:12px;background:#eef3f8;color:#243747;font-size:18px;font-weight:750;line-height:1.45;overflow-wrap:anywhere}.checkin-scan-feedback[hidden]{display:none}.checkin-scan-feedback[data-state="success"]{border-color:#168449;background:#e5f7ec;color:#126338}.checkin-scan-feedback[data-state="error"]{border-color:#bd3232;background:#fff0f0;color:#932525}.checkin-scan-feedback[data-state="busy"]{border-color:#2b6bb5;background:#edf5ff;color:#214f85}
