.attendance-main { max-width: 720px; }
.attendance-form, .attendance-result { margin-top: 24px; padding: 24px; border: 1px solid var(--border); border-radius: 18px; background: var(--surface); }
.attendance-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.attendance-grid label { display: grid; gap: 8px; color: var(--text); font-size: 14px; font-weight: 600; }
.attendance-grid input { width: 100%; min-height: 48px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); color: var(--text); font: inherit; }
.attendance-actions { display: flex; justify-content: flex-end; margin-top: 22px; }
.attendance-actions button { min-height: 48px; }
.attendance-error { margin: 16px 0 0; color: var(--danger, #b42318); }
.attendance-result h2 { margin: 0 0 16px; font-size: 20px; }
.attendance-result #attendance-output { margin: 0; font-size: 30px; font-weight: 700; }
.attendance-result dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 18px 0 0; }
.attendance-result dl div { padding: 16px; border: 1px solid var(--border); border-radius: 12px; }
.attendance-result dt { color: var(--muted); font-size: 14px; }
.attendance-result dd { margin: 4px 0 0; font-size: 18px; font-weight: 700; }
@media (max-width: 560px) {
  .attendance-form, .attendance-result { padding: 18px; }
  .attendance-grid, .attendance-result dl { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .attendance-actions { justify-content: stretch; }
  .attendance-actions button { width: 100%; }
}
