body {
  font-family: system-ui, sans-serif;
  max-width: 42rem;
  margin: 2rem auto;
  padding: 0 1rem;
  color: #1a1a1a;
}
header h1 { font-size: 1.25rem; border-bottom: 2px solid #ccc; padding-bottom: 0.5rem; }
label { display: block; margin: 0.75rem 0; }
input[type="email"] { padding: 0.4rem; width: 20rem; max-width: 100%; }
button { padding: 0.5rem 1rem; cursor: pointer; }
table { border-collapse: collapse; margin: 1rem 0; width: 100%; }
th, td { border: 1px solid #ccc; padding: 0.3rem 0.6rem; text-align: left; }
tr.weekend td { background: #eee; color: #555; }
tr.holiday td { background: #fff3cd; }
tr.voided td { color: #595959; text-decoration: line-through; }
tr.inactive td { color: #595959; }
td.low-credits { background: #f8d7da; font-weight: bold; }
.errors { color: #a00; }
.flash { background: #d4edda; border: 1px solid #1a7a1a; padding: 0.5rem 0.75rem; }
.warning { background: #fff3cd; border: 1px solid #e0a800; padding: 0.5rem 0.75rem; }
.summary-box, .card {
  border: 1px solid #ccc;
  padding: 0.5rem 1rem;
  margin: 1rem 0;
  background: #fafafa;
}
.summary-box { position: sticky; top: 1rem; }
.summary-box h3 { margin-top: 0.5rem; }
.summary-box dl { display: grid; grid-template-columns: 1fr auto; gap: 0.1rem 1rem; margin: 0; }
.summary-box dd { margin: 0; text-align: right; }
form.inline { display: inline; }
input[type="number"] { width: 5rem; padding: 0.2rem; }
.auto-hours { color: #555; font-size: 0.85em; margin-left: 0.5rem; white-space: nowrap; }
