/* CampusShield AI — private, responsive QR attendance */
.campus-attendance-panel{margin-top:14px;border:1px solid var(--border,#dce8df);background:var(--panel,#fff)}
.campus-attendance-panel h3{margin:0 0 6px;color:var(--text,#25454b)}
.campus-attendance-muted{color:var(--muted,#66766d);font-size:.86rem;line-height:1.55}
.campus-attendance-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:end}
.campus-attendance-sessions{display:grid;gap:10px;margin-top:14px}
.campus-attendance-session{display:flex;gap:12px;align-items:center;justify-content:space-between;min-width:0;padding:13px;border:1px solid var(--border,#dce8df);border-radius:13px;background:var(--surface,#f8fbf8)}
.campus-attendance-session>div:first-child{min-width:0}
.campus-attendance-session h4{margin:0 0 4px;font-size:.94rem;color:var(--text,#25454b)}
.campus-attendance-session p{margin:3px 0;font-size:.8rem;color:var(--muted,#66766d);overflow-wrap:anywhere}
.campus-attendance-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.campus-attendance-qr-shell{display:grid;justify-items:center;gap:12px;padding:18px;margin-top:14px;border:1px solid var(--border,#dce8df);border-radius:16px;background:#fff;color:#173b2a}
.campus-attendance-qr-shell>strong{text-align:center;font-size:1.05rem}
.campus-attendance-qr-shell svg{display:block;width:min(100%,310px);height:auto;aspect-ratio:1}
.campus-attendance-countdown{font-variant-numeric:tabular-nums;font-weight:800;color:#176b4c}
.campus-attendance-roster-wrap{width:100%;overflow-x:auto}
.campus-attendance-roster{width:100%;border-collapse:collapse;font-size:.84rem}
.campus-attendance-roster th,.campus-attendance-roster td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--border,#e2ebe4);white-space:nowrap}
.campus-attendance-status{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#eef2ef;color:#4a5e51;font-weight:750;font-size:.74rem;text-transform:capitalize}
.campus-attendance-status[data-status="present"]{background:#e8f7ee;color:#1a6941}
.campus-attendance-status[data-status="late"]{background:#fff3dc;color:#805719}
.campus-attendance-status[data-status="absent"]{background:#fcebea;color:#9b3330}
.campus-attendance-receipt{border:1px solid #b6dfc5;border-radius:13px;background:#f0faf3;padding:13px;color:#21573a}
.campus-attendance-receipt strong{display:block;margin-bottom:3px}
.campus-attendance-scanner{display:grid;gap:10px;margin-top:12px}
.campus-attendance-scanner video{width:100%;max-height:360px;background:#101a14;border-radius:14px;object-fit:cover}
.campus-attendance-message{min-height:1.4em}
.campus-attendance-message[data-kind="error"],#campus-attendance-deep-link-message[data-kind="error"]{color:#9b3330}
html[data-theme="dark"] .campus-attendance-panel{background:#132c20;border-color:#315342}
html[data-theme="dark"] .campus-attendance-session{background:#173b2a;border-color:#315342}
html[data-theme="dark"] .campus-attendance-session h4{color:#e5f2e9}
html[data-theme="dark"] .campus-attendance-session p,.dark .campus-attendance-session p{color:#bfd0c4}
html[data-theme="dark"] .campus-attendance-qr-shell{background:#fff;color:#173b2a}
@media(max-width:760px){
  .campus-attendance-form-grid{grid-template-columns:1fr}
  .campus-attendance-session{align-items:flex-start;flex-direction:column}
  .campus-attendance-session .campus-attendance-actions{width:100%}
  .campus-attendance-actions .btn{flex:1 1 auto}
  .campus-attendance-roster{min-width:520px}
}
@media(prefers-reduced-motion:reduce){.campus-attendance-panel *{scroll-behavior:auto!important;transition:none!important}}

.campus-attendance-edit-controls{display:grid;gap:6px;min-width:190px}
.campus-attendance-edit-controls select,.campus-attendance-edit-controls input{width:100%;min-width:0;min-height:36px;border:1px solid var(--attendance-line,#dce8e2);border-radius:8px;padding:7px 9px;background:#fff;color:var(--attendance-ink,#173b32);font:inherit;font-size:11px}
.campus-attendance-edit-controls .btn{min-height:34px;width:100%;padding:7px 10px}
