/* Family and school-life pages (parents, admissions, fees, homework, behaviour, infirmary, cover, meetings, documents, dashboard). */
.bar-row:not(:has(.bar)){grid-template-columns:minmax(0,1fr) auto}
.badge-good{display:inline-block;border-radius:6px;padding:1px 7px;font-size:.74rem;font-weight:700;background:#dcf2e3;color:#1d6b3a}
body.dark .badge-good{background:#1f4a32;color:#bdebcd}
.full{grid-column:1/-1}
.fam-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:18px}
.fam-card{margin:0}.fam-card h2{margin:0;font-size:1.25rem}.fam-card h2 a{text-decoration:none}
.fam-facts{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;margin:16px 0 0;font-size:.9rem}.fam-facts dt{color:var(--muted)}.fam-facts dd{margin:0;text-align:right}
.fam-callout{border-left:4px solid var(--accent)}
.fam-credentials table code{font-size:.95rem}
.fam-link{display:flex;justify-content:space-between;gap:8px;align-items:start;margin-bottom:6px}.fam-link form{display:inline}
.fam-mini-form{display:grid;gap:6px;margin-top:8px;min-width:220px}.fam-mini-form input,.fam-mini-form select{padding:7px 9px}
.fam-kind{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;font-weight:700;flex:none}.fam-achievement{background:#fff3cf}.fam-incident{background:#fde2df;color:#9b2318}
.fam-dialog{width:min(720px,calc(100vw - 32px));border:1px solid var(--line);border-radius:12px;padding:24px;background:var(--paper);color:var(--ink)}.fam-dialog::backdrop{background:#0006}
.hw-state{font-size:.74rem;padding:3px 9px;border-radius:20px;white-space:nowrap;background:var(--wash);color:var(--accent);font-weight:600}
.hw-missing{background:#fde2df;color:#9b2318}.hw-late{background:#fff1d6;color:#8a5600}.hw-reviewed{background:#dcf2e3;color:#1d6b3a}.hw-pending{background:var(--wash);color:var(--muted)}
.hw-reviews{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:16px}.hw-review{margin:0}.hw-review h3{margin:0}.hw-review-form label{margin-top:8px}
.fees-sheet td.num,.fees-sheet th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.fees-sheet tr.is-paid td.num{color:var(--ok,#1d6b3a);font-weight:700}.fees-sheet tr.is-due td.num{color:var(--warn,#8a5600);font-weight:700}
.invoice-cell{white-space:nowrap}.invoice-cell details{display:inline-block}.invoice-cell details form{display:flex;flex-direction:column;gap:4px;margin-top:6px}
.cover-form{display:flex;flex-wrap:wrap;gap:6px}.cover-form input{flex:1 1 140px;padding:7px 9px}
tr.is-due td:first-child{box-shadow:inset 3px 0 0 var(--warn,#c98a1a)}
.meeting-grid td.is-booked{background:var(--wash)}
.slot-list{display:flex;flex-wrap:wrap;gap:8px}.slot-form{display:flex;gap:4px}.slot-form select{width:auto;padding:6px}.slot{display:inline-flex;align-items:center;min-height:38px;padding:6px 12px;border:1px solid var(--line);border-radius:7px;font-weight:600;font-size:.88rem}
.slot-taken{color:var(--muted);text-decoration:line-through;opacity:.6}.slot-mine{background:var(--accent);color:var(--paper);border-color:var(--accent)}
.apply-page{max-width:980px;margin:auto}.apply-logo{width:72px;height:auto;display:block;margin-bottom:14px}.apply-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
@media(max-width:800px){.fam-facts{grid-template-columns:1fr}.fam-facts dd{text-align:left;margin-bottom:6px}}
