/* Sand paper and forest green; colour marks actions and the selected day. */
:root {
  --bg: #f6f3ec;
  --panel: #fffefa;
  --text: #26312b;
  --muted: #596158;
  --line: #cfd3c9;
  --accent: #31594b;
  --accent-hover: #254438;
  --accent-soft: #e8eee6;
  --header-bg: #e8eee6;
  --selected-bg: #f0f4ed;
  --rule: #7d8d7e;
  --panel-shadow: 0 12px 34px #1e443b0d, 0 2px 5px #1e443b05;
}
.auth-brand { color: var(--accent); }
.sidebar .brand, .mobile-brand { color: var(--panel); }
.sidebar .nav.active { color: var(--accent); }
.primary { background: var(--accent); border-color: var(--accent); box-shadow: 0 2px 0 var(--accent-hover); }
.primary:hover:not(:disabled) { background: var(--accent-hover); border-color: var(--accent-hover); }
.secondary { background: var(--panel); border-color: var(--line); }
.secondary:hover:not(:disabled) { background: var(--accent-soft); border-color: var(--rule); }
input, select { border-color: var(--rule); background: var(--panel); }
input:focus, select:focus { border-color: var(--accent); }
input[type=checkbox], .meal-toggle input { accent-color: var(--accent); }
:focus-visible { outline-color: var(--accent); }
.sidebar :focus-visible, .mobile-header :focus-visible { outline-color: var(--panel); }
::selection { background: var(--accent); color: #fff; }
.week-buttons button[aria-pressed="true"], .week-buttons button[aria-pressed="true"]:hover:not(:disabled) { background: var(--accent); color: var(--panel); border-color: var(--accent); box-shadow: 0 2px 5px #1e443b26; }
.schedule-table, .schedule-table .student-name { background: var(--panel); }
.schedule-table th, .schedule-table th.student-name { background: var(--header-bg); }
.schedule-table td, .schedule-table th { border-bottom-color: var(--line); }
.schedule-table .selected-day { background: var(--selected-bg); }
.schedule-table th.selected-day { background: var(--accent-soft); box-shadow: inset 0 2px var(--accent); }
.schedule-table .is-dirty { background: var(--accent-soft); box-shadow: inset 2px 0 var(--accent); }
.template-lock[aria-pressed="true"] { background: var(--header-bg); border-color: var(--rule); }
.name-sort, #name-sort-arrow { color: var(--accent); }
@media (max-width: 900px) {
  .sidebar .brand { color: var(--accent); }
  .sidebar :focus-visible { outline-color: var(--accent); }
  .sidebar .nav:hover { color: var(--accent); border-color: var(--line); }
  .sidebar .nav.active { background: var(--accent-soft); box-shadow: none; border-color: var(--line); }
}
@media (max-width: 600px) {
  .schedule-table th.student-name { background: transparent; }
  .schedule-table .student-name { background: transparent; }
  .schedule-table .meal-cell { background: var(--panel); }
  .schedule-table .meal-cell.selected-day { background: var(--selected-bg); }
  .schedule-table .meal-cell.is-dirty { background: var(--accent-soft); }
}
