.journal-table { --journal-columns: minmax(0, 21fr) minmax(0, 30fr) minmax(0, 31fr) minmax(0, 18fr); gap: 0; border: 1px solid var(--line); border-radius: 14px; background: var(--panel); overflow: clip; }
.journal-table-heading { display: grid; grid-template-columns: var(--journal-columns); background: var(--soft); color: var(--muted); font-size: 12px; }
.journal-table-heading > span { padding: 13px 14px; }
.attendance-list.journal-table .journal-student { display: grid; grid-template-columns: var(--journal-columns); align-items: start; gap: 0; padding: 14px 0; margin: 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; box-shadow: none; background: var(--journal-row, var(--panel)); }
.journal-table .journal-student > [role=cell] { min-width: 0; padding: 0 14px; }
.journal-table .journal-student .student-main { background: none; border: 0; border-radius: 0; gap: 0; align-items: start; }
.journal-table .student-name { text-underline-offset: 3px; }
.journal-balance { display: block; margin-top: 6px; font-size: 12px; line-height: 18px; color: var(--muted); font-variant-numeric: tabular-nums; }
.journal-balance > span { display: block; }
.journal-balance [data-balance-label] { min-height: 18px; }
.journal-balance.negative { color: light-dark(#954b35, #efb39c); }
.journal-table .journal-mark { display: block; border: 0; margin: 0; }
.journal-status-buttons { display: flex; gap: 6px; }
.journal-status-buttons .button { padding: 8px 10px; min-height: 38px; white-space: nowrap; font-size: 12px; }
.journal-status-buttons .button::before { content: '✓'; display: inline-block; width: 14px; visibility: hidden; }
.journal-status-buttons .button[aria-pressed=true] { background: var(--selected-control); border-color: var(--selected-control); color: var(--selected-control-text); }
.journal-status-buttons .button[aria-pressed=true]::before { visibility: visible; }
.journal-absence { display: flex; flex-wrap: wrap; align-content: start; gap: 5px 12px; padding-top: 10px; min-height: 38px; font-size: 12px; color: var(--muted); }
.journal-absence[aria-hidden=true] { visibility: hidden; pointer-events: none; }
.journal-absence label { display: flex; align-items: center; gap: 5px; white-space: nowrap; }
.journal-table .journal-absence input[type=radio] { appearance: auto; width: 16px; height: 16px; min-width: 16px; min-height: 16px; padding: 0; margin: 0; flex: 0 0 16px; }
.journal-table .journal-accounting { display: flex; flex-wrap: wrap; align-items: start; gap: 10px 16px; padding-top: 9px; }
.journal-table .charge-toggle, .journal-table .trial-toggle { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 12px; color: var(--muted); white-space: nowrap; }
.journal-table .charge-toggle input, .journal-table .trial-toggle input { margin: 0; padding: 0; width: 17px; height: 17px; min-width: 17px; min-height: 17px; flex: 0 0 17px; }
.journal-table .journal-student > .journal-accounting { padding-top: 10px; }
.journal-table .journal-student > .student-main { padding-top: 4px; }
.journal-table .journal-student-tools { grid-column: 4; gap: 10px; justify-items: stretch; }
.journal-table .lesson-student-note { width: 100%; }
.journal-table .lesson-student-note > summary { margin: 0; min-height: 40px; justify-content: center; font-size: 12px; padding: 8px; }
.journal-table .journal-student:has(.lesson-student-note[open]) .journal-student-tools { grid-column: 1 / -1; padding-top: 12px; }
.journal-table .lesson-student-note[open] > summary { width: fit-content; margin-left: auto; }
.journal-table .journal-guest-heading { padding: 14px; margin: 0; border-top: 1px solid var(--line); background: var(--soft); font-size: 15px; }
.journal-table .journal-student:focus-within { --journal-row: color-mix(in srgb, var(--panel) 97%, var(--text)); }
@media (hover:hover) { .journal-table .journal-student:hover { --journal-row: color-mix(in srgb, var(--panel) 97%, var(--text)); } }
@media (max-width: 1000px) and (min-width: 701px) {
  .journal-table { --journal-columns: minmax(0, 22fr) minmax(0, 28fr) minmax(0, 29fr) minmax(0, 21fr); }
  .journal-table-heading > span, .journal-table .journal-student > [role=cell] { padding-inline: 10px; }
  .journal-status-buttons .button { padding-inline: 7px; }
}
@media (max-width: 700px) {
  .journal-table-heading { display: none; }
  .attendance-list.journal-table .journal-student { grid-template-columns: minmax(0,1fr) 140px; gap: 12px 8px; padding: 14px 12px; }
  .journal-table .journal-student > [role=cell] { padding: 0; }
  .journal-table .journal-mark:not(.journal-accounting) { grid-column: 1 / -1; grid-row: 2; }
  .journal-table .journal-accounting { grid-column: 1 / -1; grid-row: 3; }
  .journal-table .journal-student-tools { grid-column: 2; grid-row: 1; }
  .journal-table .journal-student:has(.lesson-student-note[open]) .journal-student-tools { grid-row: 4; }
  .journal-table .journal-balance [data-balance-label] { height: 36px; }
}
@media (pointer:coarse) { .journal-status-buttons .button, .journal-table .charge-toggle, .journal-table .trial-toggle, .journal-absence label { min-height: 44px; } }
