/* Attendance month calendar (AttendanceCalendar.jsx). */
.att-cal{display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:var(--radius-md);background:var(--surface-1)}
.att-cal-head{display:flex;align-items:center;gap:10px}
.att-cal-title{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}
.att-cal-title strong{font-size:15px;color:var(--text-hi)}
.att-cal-summary{font-size:11px;color:var(--text-lo)}
.att-cal-nav{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--hairline-strong);border-radius:50%;background:var(--surface-2);color:var(--text-hi);cursor:pointer}
.att-cal-nav:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.att-cal-nav:disabled{opacity:.35;cursor:default}
.att-cal-grid{display:flex;flex-direction:column;gap:4px}
.att-cal-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.att-cal-weekdays span{font-size:10px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:var(--text-lo);text-align:center;padding:4px 0}
.att-cal-cell{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;min-height:56px;padding:6px 2px 4px;border:1px solid transparent;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-mid);font:inherit;font-size:13px;cursor:default}
.att-cal-cell.is-empty{background:transparent}
.att-cal-cell.is-future{opacity:.45}
.att-cal-cell.is-today{border-color:var(--accent)}
.att-cal-cell.is-present{color:var(--text-hi);cursor:pointer}
.att-cal-cell.is-present:hover,.att-cal-cell.is-selected{background:color-mix(in srgb,var(--accent) 14%,var(--surface-2))}
.att-cal-cell.is-selected{border-color:var(--accent)}
.att-cal-cell:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.att-cal-day{font-weight:600;line-height:1}
.att-cal-dots{display:flex;gap:3px}
.att-cal-dots i{width:6px;height:6px;border-radius:50%;background:var(--accent);display:block}
.att-cal-time{font-size:10px;color:var(--text-lo);line-height:1;white-space:nowrap}
.att-cal-cell.is-present .att-cal-time{color:var(--text-mid)}
.att-cal-detail{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--hairline-strong);font-size:13px;color:var(--text-mid)}
.att-cal-detail strong{color:var(--text-hi)}
.att-cal-detail ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:2px}
.att-cal-empty{margin:0;font-size:12px;color:var(--text-lo);text-align:center}
.att-cal-error{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:var(--radius-sm);background:rgba(255,77,77,.08);color:var(--danger);font-size:13px}
@media(max-width:600px){.att-cal{padding:10px}.att-cal-cell{min-height:48px;font-size:12px}.att-cal-time{font-size:9px}}
