/* 교시별 출석 체크(테스트, 2026-10-21 — src/ui/attendanceCheckUI.js). PC(index.html)·폰(mobile.html)이 함께 읽는다. */
.ac-root { position: relative; display: flex; flex-direction: column; min-height: 0; flex: 1; }
.ac-root.ac-busy { opacity: .7; pointer-events: none; }
.ac-top { display: flex; flex-direction: column; gap: 8px; padding-bottom: 10px; border-bottom: 1px solid var(--border-color); }
.ac-row { display: flex; align-items: center; gap: 10px; }
.ac-date, .ac-sel, .ac-q {
  padding: 8px 10px; border-radius: 10px; font-size: 14px; font-weight: 600;
  border: 1px solid var(--border-color); background: var(--card-bg); color: var(--text-main); min-width: 0;
}
.ac-clock { font-size: 13px; font-weight: 800; color: var(--text-muted); }
.ac-note { font-size: 12px; font-weight: 700; color: #b45309; }
.ac-note:empty { display: none; }
.ac-periods { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 2px; }
.ac-pchip {
  flex-shrink: 0; display: flex; align-items: center; gap: 5px; padding: 7px 11px; border-radius: 999px;
  border: 1px solid var(--border-color); background: var(--card-bg); color: var(--text-main);
  font-size: 13.5px; font-weight: 800; cursor: pointer;
}
.ac-pchip small { font-weight: 600; color: var(--text-muted); }
.ac-pchip.on { background: var(--primary-color); border-color: var(--primary-color); color: #fff; }
.ac-pchip.on small { color: rgba(255, 255, 255, .85); }
.ac-now { font-size: 10.5px; font-weight: 800; padding: 1px 6px; border-radius: 999px; background: #ef4444; color: #fff; }
.ac-filters { display: flex; gap: 6px; }
.ac-filters .ac-q { flex: 1; }
.ac-muted { font-size: 13px; color: var(--text-muted); }
.ac-list { flex: 1; overflow-y: auto; padding-top: 8px; }
.ac-empty { padding: 30px 0; text-align: center; color: var(--text-muted); font-weight: 700; }
.ac-sec { margin-bottom: 14px; }
.ac-sec-h { font-size: 12.5px; font-weight: 800; color: var(--text-muted); margin: 4px 2px 6px; }
.ac-sec.warn .ac-sec-h { color: #dc2626; }
.ac-item {
  display: flex; align-items: center; gap: 6px; padding: 4px 4px 4px 0; margin-bottom: 5px;
  border: 1px solid var(--border-color); border-radius: 12px; background: var(--card-bg);
}
.ac-item.overdue { border-color: rgba(239, 68, 68, .55); background: rgba(239, 68, 68, .05); }
.ac-main {
  flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 1px;
  padding: 8px 10px; background: none; border: 0; text-align: left; cursor: pointer; color: var(--text-main);
}
.ac-name { font-size: 15px; font-weight: 800; }
.ac-sub { font-size: 12px; font-weight: 600; color: var(--text-muted); }
.ac-right { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; flex-shrink: 0; }
.ac-pill { display: inline-flex; align-items: center; gap: 3px; font-size: 12px; font-weight: 800; padding: 3px 8px; border-radius: 8px; white-space: nowrap; }
.ac-pill svg { width: 12px; height: 12px; }
.ac-pill.ok { color: #059669; background: rgba(16, 185, 129, .14); }
.ac-pill.late { color: #b45309; background: rgba(245, 158, 11, .16); }
.ac-pill.bad { color: #dc2626; background: rgba(239, 68, 68, .12); }
.ac-pill.miss { color: #fff; background: #ef4444; }
.ac-pill.none { color: var(--text-muted); background: var(--bg-hover, rgba(100, 116, 139, .1)); }
.ac-pill.pre { color: #475569; background: rgba(100, 116, 139, .14); max-width: 170px; overflow: hidden; text-overflow: ellipsis; }
.ac-kakao { display: flex; gap: 3px; flex-wrap: wrap; justify-content: flex-end; }
.ac-kpill { font-size: 10.5px; font-weight: 800; padding: 1px 5px; border-radius: 6px; color: #64748b; background: var(--bg-hover, rgba(100, 116, 139, .1)); }
.ac-kpill.k-sent { color: #059669; }
.ac-kpill.k-failed { color: #dc2626; }
.ac-more { flex-shrink: 0; width: 34px; height: 34px; border: 0; border-radius: 8px; background: none; color: var(--text-muted); cursor: pointer; display: flex; align-items: center; justify-content: center; }
.ac-more:hover { background: var(--bg-hover, rgba(100, 116, 139, .1)); }
.ac-more svg { width: 18px; height: 18px; }
/* 고르는 창은 화면에 고정해 띄운다 — 예전엔 목록 안(absolute)에 있어서 폰에서 스크롤한 만큼 어긋나 보였다. */
.ac-sheet { position: fixed; inset: 0; z-index: 4000; background: rgba(15, 23, 42, .45); display: flex; align-items: flex-end; justify-content: center; padding-bottom: env(safe-area-inset-bottom, 0px); }
.ac-sheet[hidden] { display: none; }
.ac-sheet-panel { width: min(440px, 100%); margin: 10px; padding: 14px; border-radius: 14px; background: var(--card-bg); color: var(--text-main); box-shadow: 0 12px 30px rgba(0, 0, 0, .25); display: flex; flex-direction: column; gap: 10px; }
.ac-sheet-h { font-size: 15px; font-weight: 800; }
.ac-sheet-t { font-size: 13px; font-weight: 600; color: var(--text-muted); line-height: 1.45; }
.ac-reason { padding: 9px 10px; border-radius: 10px; border: 1px solid var(--border-color); background: var(--card-bg); color: var(--text-main); font-size: 14px; }
.ac-sheet-btns { display: flex; gap: 6px; flex-wrap: wrap; }
.ac-sheet-btns.col { flex-direction: column; }
.ac-btn small { font-weight: 600; opacity: .7; }
.ac-guide { font-size: 12px; font-weight: 600; color: var(--text-muted); line-height: 1.45; }
.ac-guide b { color: var(--text-main); }
.ac-btn { flex: 1; padding: 10px 12px; border-radius: 10px; font-size: 14px; font-weight: 800; border: 1px solid var(--border-color); background: var(--card-bg); color: var(--text-main); cursor: pointer; }
.ac-btn.primary { background: var(--primary-color); border-color: var(--primary-color); color: #fff; }
.ac-btn.danger { color: #dc2626; border-color: rgba(239, 68, 68, .5); }
.ac-btn.ghost { border-color: transparent; color: var(--text-muted); }
/* PC 띄움 창 */
.ac-panel { width: min(760px, 100%); height: min(860px, 100%); }
.ac-panel .rb-head h2 svg { color: var(--primary-color); }
.ac-badge { font-size: 11px; font-weight: 800; padding: 2px 7px; border-radius: 999px; color: #b45309; background: rgba(245, 158, 11, .16); }
.ac-host { flex: 1; min-height: 0; display: flex; flex-direction: column; padding: 0 20px 16px; }
/* 폰 시트 */
.m-ac-host { display: flex; flex-direction: column; height: 100%; }
/* 남은 미체크 한꺼번에 확인(2026-10-21) */
.ac-sec-h { display: flex; align-items: center; gap: 6px; }
.ac-bulk { margin-left: auto; padding: 4px 10px; border-radius: 8px; border: 1px solid rgba(239, 68, 68, .5); background: rgba(239, 68, 68, .08); color: #dc2626; font-size: 12px; font-weight: 800; cursor: pointer; }
.ac-bulk-list { max-height: 46vh; overflow-y: auto; display: flex; flex-direction: column; gap: 4px; }
.ac-bulk-row { display: flex; align-items: center; gap: 8px; padding: 7px 8px; border: 1px solid var(--border-color); border-radius: 10px; cursor: pointer; }
.ac-bulk-row input { width: 18px; height: 18px; flex-shrink: 0; }
.ac-bulk-row .ac-sub { flex: 1; min-width: 0; }
.ac-btn:disabled { opacity: .5; }
