.attendance-status{display:inline-flex;align-items:center;padding:6px 11px;border:1px solid;border-radius:8px;font-size:12px;line-height:1.5;font-weight:600;white-space:nowrap}
.attendance-status.status-complete{color:#166534;background:#dcfce7;border-color:#86c99b}
.attendance-status.status-pending-out{color:#92400e;background:#fef3c7;border-color:#dca653}
.attendance-status.status-absent{color:#991b1b;background:#fee2e2;border-color:#e99696}
.attendance-status.status-upcoming{color:#1e40af;background:#dbeafe;border-color:#93b4e9}
.attendance-status-legend{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:16px 0}.attendance-status-legend .attendance-status{font-size:11px;padding:4px 9px}
.reason-legend{border:2px solid #7c3aed;border-radius:8px;background:#faf5ff;color:#6b21a8;font-size:12px;padding:4px 10px}
.attendance-results{border-collapse:collapse;width:100%}.attendance-results tr.attendance-has-reason>td{background:#faf7ff;border-top:2px solid #8b5cf6;border-bottom:2px solid #8b5cf6}.attendance-results tr.attendance-has-reason>td:first-child{border-left:2px solid #8b5cf6}.attendance-results tr.attendance-has-reason>td:last-child{border-right:2px solid #8b5cf6}
.attendance-reason-detail{min-width:120px;max-width:280px;overflow-wrap:anywhere}.attendance-reason-detail strong{display:block;color:#5b21b6}.attendance-reason-detail small{display:block;color:#68537b}.reason-caption{display:block;font-size:10px;color:#76549a;margin-bottom:3px}
@media print{.attendance-status{-webkit-print-color-adjust:exact;print-color-adjust:exact}.attendance-results tr.attendance-has-reason>td{border-color:#555;background:#fff}.attendance-status-legend{break-inside:avoid}.reason-legend{border-color:#555;background:#fff;color:#333}.attendance-reason-detail strong{color:#222}}
