.attendance-metrics { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:24px; }
.attendance-entry-layout { margin-bottom:24px; }
.attendance-entry-layout .form-row { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px; }
.attendance-entry-layout .form-row>div { min-width:0; }
.attendance-entry-layout .selection>div { display:flex;gap:6px; }
.attendance-entry-layout .selection { gap:10px;flex-wrap:wrap; }
.attendance-entry-layout .student-check { min-width:0; }
.shell .student-check input[type="checkbox"] { min-height:18px;height:18px;width:18px; }
.attendance-metric strong { margin:12px 0 4px;font-size:30px; }
.attendance-metric strong small { font-size:14px;margin-left:8px;color:var(--muted);font-weight:400; }
.attendance-metric.leave strong { color:#006c3b; }
.attendance-metric.absent strong { color:#bf4148; }
.attendance-metric.late strong { color:#a76c12; }
.attendance-list .toolbar { border-bottom:1px solid var(--line);padding-bottom:22px; }
.attendance-list .toolbar>div { min-width:135px; }
.attendance-list .table-title { gap:16px;flex-wrap:wrap; }
.attendance-list .empty { padding:56px 20px; }
.attendance-list .empty p { margin:8px 0 0;font-size:13px; }
.attendance-record { border:1px solid var(--line);border-radius:12px;margin-bottom:14px;overflow:hidden; }
.attendance-record-main { padding:20px;display:flex;align-items:flex-start;gap:24px; }
.attendance-student { min-width:125px; }
.attendance-student strong { display:block;font-size:15px; }
.attendance-student small { display:block;font-size:12px;color:var(--muted);margin-top:4px; }
.attendance-record-detail { flex:1;min-width:0; }
.attendance-tags { display:flex;gap:8px 14px;align-items:center;flex-wrap:wrap;font-size:13px; }
.attendance-tags>strong { font-weight:500; }
.attendance-time-text { white-space:pre-wrap;overflow-wrap:anywhere; }
.attendance-kind { display:inline-block;font-weight:600;border-radius:6px;padding:3px 10px; }
.attendance-kind.leave { background:#eaf4ee;color:#006c3b; }
.attendance-kind.absent { background:#faebec;color:#b63f47; }
.attendance-kind.late { background:#fff4df;color:#99620e; }
.attendance-reason-text { margin:10px 0 0;overflow-wrap:anywhere;font-size:14px; }
.attendance-record-detail>.muted { margin:10px 0 0;font-size:12px; }
.attendance-record .actions { display:flex;gap:8px;flex-shrink:0; }
.attendance-record .actions button { padding:8px 12px;font-size:13px; }
.attendance-history { background:#f8faf8;border-top:1px solid var(--line);font-size:13px; }
.attendance-history>summary { padding:10px 20px;color:#49755b;cursor:pointer; }
.attendance-history-content { padding:0 20px; }
.attendance-history-item { padding:14px 0;border-top:1px solid var(--line);overflow-wrap:anywhere; }
.attendance-history-item time { color:var(--muted);margin-left:14px;font-size:12px; }
.attendance-history-item p { margin:7px 0;font-size:12px;white-space:pre-wrap; }
.attendance-history-item p>span { color:var(--muted); }
.attendance-void .attendance-tags>strong,.attendance-void .attendance-reason-text { text-decoration:line-through;color:#8b968e; }
.attendance-void { background:#fafbfa; }
.attendance-dialog { --blue:#006c3b;--muted:#718279;--line:#e1eae5;color:#233c31;font:15px/1.6 "PingFang SC","Microsoft YaHei",system-ui,sans-serif; }
.attendance-dialog h2 { margin:0 30px 8px 0;font-size:20px; }
.attendance-dialog input,.attendance-dialog select,.attendance-dialog button { min-height:48px;border-radius:10px; }
.attendance-dialog textarea { border-radius:10px; }
.attendance-dialog input:focus,.attendance-dialog textarea:focus,.attendance-dialog select:focus { outline:3px solid #006c3b22;border-color:#006c3b; }
.attendance-dialog .primary:hover { background:#00552f;border-color:#00552f; }
.attendance-dialog .attendance-students { padding:16px;border:1px solid #e1eae5;border-radius:12px;margin:20px 0;min-width:0; }
.attendance-dialog legend { padding:0 6px;font-weight:600;font-size:14px; }
.attendance-dialog .selection { margin-top:12px;gap:8px;flex-wrap:wrap; }
.attendance-dialog .selection>div { display:flex;gap:6px; }
.attendance-dialog .selection button { font-size:12px;padding:6px 10px; }
.attendance-dialog .students { grid-template-columns:repeat(2,minmax(0,1fr));max-height:210px; }
.attendance-dialog .student-check { font-size:13px;min-width:0; }
.attendance-dialog .student-check:has(input:checked) { background:#edf7f0;border-color:#6dad89; }
.attendance-dialog input[type="checkbox"] { min-height:18px;width:18px;height:18px;accent-color:#006c3b; }
.attendance-preview { margin-top:16px;background:#f0f7f2;border:1px solid #d9eade;color:#3c6c50;border-radius:10px;padding:12px 14px;font-size:13px;overflow-wrap:anywhere; }
.attendance-field-hint { margin:7px 0 0; }
#attendance-reason-field[hidden] { display:none; }
@media(max-width:767.98px) {
 .attendance-metrics { gap:8px;margin-bottom:18px; }
 .attendance-metric { padding:14px 10px; }
 .attendance-metric strong { font-size:25px; }
 .attendance-metric>small { font-size:10px; }
 .attendance-record-main { display:flex;flex-wrap:wrap;padding:16px;gap:14px; }
 .attendance-student { width:100%; }
 .attendance-record-detail { flex-basis:100%; }
 .attendance-record .actions { margin-left:auto; }
 .attendance-list .pagination { justify-content:space-between;gap:8px;flex-wrap:wrap; }
 .attendance-list .table-title h2 { margin:0; }
 .attendance-list .export-choice button { font-size:12px;padding:8px 12px; }
 .attendance-dialog .students { grid-template-columns:1fr; }
 .attendance-history-item time { display:block;margin:4px 0; }
 .attendance-history>summary { padding:10px 16px; }
}
