.leave-balance { margin: 1.25rem 0; }
.leave-balance-heading, .absence-row { display: flex; justify-content: space-between; gap: 1rem; align-items: start; }
.leave-balance-heading h2, .absence-row h3 { margin-top: 0; }
.leave-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin: 1.5rem 0; }
.leave-stat { border-left: 4px solid var(--link); padding: .75rem 1rem; background: var(--soft); border-radius: .4rem; min-width: 0; }
.leave-stat span { display: block; color: var(--muted); font-size: .85rem; }
.leave-stat strong { display: block; font-size: 1.6rem; margin-top: .5rem; color: var(--heading); }
.leave-stat--remaining { border-color: var(--success-text); }
.leave-stat--used { border-color: var(--warning-text); }
.absence-row { margin-bottom: 1rem; overflow-wrap: anywhere; }
.absence-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.absence-actions { min-width: 0; max-width: 100%; align-items: start; }
.absence-rejection-form { min-width: 0; max-width: 100%; }
.absence-rejection-form summary { cursor: pointer; }
.absence-rejection-form form { width: min(24rem, 100%); margin-top: .75rem; }
.absence-rejection-form textarea { width: 100%; resize: vertical; margin-bottom: .75rem; }
.absence-rejection-reason { border-left: 3px solid var(--warning-text); padding: .75rem 1rem; background: var(--soft); border-radius: .4rem; margin-top: .75rem; }
.absence-plan-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
.absence-plan-columns > div { min-width: 0; }
.absence-plan h2 { margin-top: 0; }
.absence-plan select { max-width: 100%; }
.absence-plan textarea { resize: vertical; }
.absence-notes { white-space: pre-wrap; overflow-wrap: anywhere; }
.absence-handover summary { cursor: pointer; color: var(--link); padding: .5rem 0; }
@media (max-width: 900px) { .absence-plan-columns { grid-template-columns: minmax(0, 1fr); gap: 1rem; } }
@media (max-width: 900px) { .leave-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .leave-balance-heading, .absence-row { flex-direction: column; } .leave-stat { padding: .65rem; } .leave-stat strong { font-size: 1.3rem; } }
/* On phones the header button sits above empty fields; the form's own submit button remains. */
@media (max-width: 640px) { .page-heading-submit { display: none; } }
