.attendance-tools{display:flex;justify-content:space-between;gap:16px;margin-bottom:14px;min-width:0}.attendance-filters{display:grid;grid-template-columns:2fr repeat(4,minmax(0,1fr));gap:10px;flex:1;min-width:0}.attendance-filters label{display:grid;align-content:end;min-width:0;font-size:11px;font-weight:700;color:var(--muted)}.attendance-filters input,.attendance-filters select{width:100%;min-width:0;height:42px;padding:9px;border:1px solid var(--line);border-radius:8px;background:#fff;margin-top:4px}.attendance-search-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.attendance-search-control button,.attendance-actions button{min-height:42px;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:white;white-space:nowrap}.attendance-search-control button{margin-top:4px;background:var(--brand);border-color:var(--brand);color:#fff;font-weight:700}.attendance-actions{display:flex;gap:8px;align-items:end;min-width:0}.attendance-actions .primary{width:auto;background:var(--brand)}.attendance-summary{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:14px}.attendance-summary .card{padding:13px}.attendance-summary span{display:block;font-size:11px;color:var(--muted);min-height:26px}.attendance-summary strong{font-size:24px}.attendance-mobile{display:none}.attendance-empty{display:grid;justify-items:center;gap:5px;padding:34px 12px;text-align:center}.attendance-empty span{color:var(--muted);font-size:13px}.policy-list{display:grid;gap:10px}.policy-list article{border:1px solid var(--line);padding:14px;border-radius:10px}.policy-list span,.policy-list small{display:block;color:var(--muted)}.qr-card{text-align:center}.qr-card svg{width:min(50mm,100%);height:auto;display:block;margin:auto;background:#fff}.qr-card small{display:block;max-width:430px;margin:10px auto}.qr-card button{margin:14px;padding:10px}.table-wrap button,.attendance-mobile button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:6px;margin:2px}
.attendance-combobox{position:relative;min-width:0}.attendance-suggestions{position:absolute;z-index:20;top:100%;left:0;right:0;max-height:min(360px,50vh);overflow:auto;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 10px 24px #142e2730}.attendance-suggestions button{display:grid;width:100%;min-height:54px;padding:10px 12px;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left;white-space:normal;overflow-wrap:anywhere;cursor:pointer}.attendance-suggestions button:hover,.attendance-suggestions button.active{background:#edf7f3}.attendance-suggestions span,.attendance-suggestions small{margin-top:3px;color:var(--muted);font-size:11px}.attendance-suggestion-state{padding:14px;color:var(--muted);font-size:12px}.attendance-tools,.attendance-actions,.attendance-search-control{max-width:100%}
@media(max-width:1000px){.attendance-tools{display:block}.attendance-actions{margin-top:12px}.attendance-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.attendance-search{grid-column:span 2}.attendance-summary{grid-template-columns:repeat(3,1fr)}}
@media(max-width:650px){.attendance-tools{padding:14px}.attendance-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-filters .attendance-search{grid-column:1/-1}.attendance-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-actions .primary{grid-column:1/-1;width:100%}.attendance-actions button{width:100%;min-width:0;white-space:normal}.attendance-summary{grid-template-columns:repeat(2,minmax(0,1fr))}#attendanceRecords>.table-wrap{display:none}.attendance-mobile{display:grid;gap:10px}.attendance-mobile article{min-width:0;border:1px solid var(--line);border-radius:10px;padding:13px}.attendance-mobile header{height:auto;display:flex;align-items:start;gap:8px}.attendance-mobile header>div{min-width:0;overflow-wrap:anywhere}.attendance-mobile header small{display:block;color:var(--muted);margin-top:4px}.attendance-mobile dl{display:grid;grid-template-columns:1fr 1fr;gap:8px}.attendance-mobile dt{font-size:10px;text-transform:uppercase;color:var(--muted)}.attendance-mobile dd{margin:3px 0;overflow-wrap:anywhere}.attendance-mobile button{max-width:100%;padding:9px}}
@media(max-width:349px){.attendance-filters{grid-template-columns:1fr}.attendance-filters .attendance-search{grid-column:auto}.attendance-search-control{grid-template-columns:minmax(0,1fr) auto}.attendance-actions{grid-template-columns:1fr}.attendance-actions .primary{grid-column:auto}}

/* Phase 2 authenticated QR scanner */
.scanner-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.5fr);gap:14px}.scanner-card>label,.scanner-card details label{display:grid;gap:6px;font-size:12px;font-weight:700}.scanner-card select,.scanner-card input{width:100%;padding:11px;border:1px solid var(--line);border-radius:9px;background:#fff}.camera-frame{position:relative;min-height:280px;margin:14px 0;background:#071613;border-radius:14px;overflow:hidden;display:grid;place-items:center;color:#fff}.camera-frame video{width:100%;max-height:65vh;object-fit:contain}.scan-guide{position:absolute;width:min(68%,320px);aspect-ratio:1;border:3px solid #fff;border-radius:14px;box-shadow:0 0 0 999px #0016;pointer-events:none}.camera-frame #cameraState{position:absolute;inset:auto 10px 10px;padding:9px 12px;background:#000d;border-radius:8px;display:grid;gap:2px}.camera-frame #cameraState span{font-size:12px}.camera-frame #cameraState.error{background:#7b1f1fe8}.scanner-controls{display:flex;gap:9px;margin:12px 0}.scanner-controls button{width:auto;min-height:44px;padding:10px 16px;border:1px solid var(--line);border-radius:9px;cursor:pointer}.scanner-state,.scan-confirm,.scan-success{margin-top:12px;padding:13px;border-radius:10px;background:#f3f8f6}.scan-success{background:#e8f7ef;color:var(--good)}.scan-confirm dl{display:grid;gap:8px}.scan-confirm dl div{display:grid;grid-template-columns:140px 1fr}.scan-confirm dt{color:var(--muted);font-size:11px;text-transform:uppercase}.scan-confirm dd{margin:0}.recent-scans p{padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}
@media(max-width:760px){.scanner-layout{grid-template-columns:1fr}.camera-frame{min-height:240px}.scanner-controls{display:grid;grid-template-columns:1fr 1fr}.scanner-controls button{width:100%}}

@media print{.qr-card svg{width:50mm!important;height:50mm!important}.qr-card button,.qr-card small,.qr-card p{display:none!important}}

/* Desktop attendance toolbar: prioritize employee lookup while keeping secondary actions compact. */
@media (min-width:1001px){
  .attendance-filters{grid-template-columns:minmax(260px,2.6fr) repeat(4,minmax(90px,1fr))}
  .attendance-actions{gap:6px}
  #manualAttendance,#attendancePolicies{padding-inline:10px;font-size:13px}
}
