:root{--ink:#183e35;--accent:#24735e;--paper:#f4f5f1;--line:#e1e7e2}body{font-family:system-ui,-apple-system,sans-serif;background:var(--paper);color:#243c34;font-size:.94rem}a{color:#246e59;text-decoration:none}a:hover{text-decoration:underline}h1{font-size:1.95rem;font-weight:650;letter-spacing:-.06rem;margin:5px 0}h2{font-size:1.18rem;font-weight:650}h3{font-size:1.05rem;font-weight:600}.sidebar{position:fixed;inset:0 auto 0 0;width:236px;background:var(--ink);color:#fff;padding:30px 22px;display:flex;flex-direction:column}.brand{font-size:1.3rem;font-weight:700;display:flex;align-items:center;gap:12px;color:white}.brand-mark{display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;border-radius:12px;background:#add4b1;color:#173e32;font-size:1.5rem;font-weight:800}.nav-label{font-size:.61rem;letter-spacing:.12em;color:#a2bdb3;margin:38px 10px 14px}.sidebar nav a{display:block;color:#d3e0d9;padding:10px 12px;border-radius:7px;margin:3px 0;font-size:.88rem}.sidebar nav a:hover,.sidebar nav a.selected{background:#31584a;color:white;text-decoration:none}.sidebar-bottom{margin-top:auto;padding-top:24px;font-size:.75rem}.sidebar-bottom a{color:#d3e0d9}.workspace{margin-left:236px;padding:38px 36px;max-width:1900px}.login-workspace{max-width:1000px;margin:auto;padding:40px 24px}.page-header,.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.page-header{margin-bottom:28px}.eyebrow{font-size:.64rem;letter-spacing:.15em;color:#7e9387;font-weight:700}.mode-badge{font-size:.74rem;border:1px solid #c9dcc9;background:#e8f0df;padding:8px 12px;border-radius:25px;color:#456440}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px;box-shadow:0 2px 3px #193e3503}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:24px 0 30px}.stat span{color:#78897e;font-size:.83rem}.stat strong{display:block;margin-top:13px;font-size:2rem;font-weight:650;letter-spacing:-.05em}.toolbar{margin-bottom:18px}.toolbar p,.toolbar h2{margin-bottom:0}.period-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.period-card{display:block;color:inherit}.period-card:hover{border-color:#97b69f;text-decoration:none;box-shadow:0 3px 14px #244c3510}.period-card h3{margin-top:20px}.period-card p{font-size:.82rem;color:#78897e}.period-card div{font-size:.76rem}.btn{font-size:.83rem;padding:.6rem 1rem;border-radius:7px;font-weight:550}.btn-sm{padding:.35rem .65rem;font-size:.76rem}.btn-primary{--bs-btn-bg:#24735e;--bs-btn-border-color:#24735e;--bs-btn-hover-bg:#1b5948;--bs-btn-hover-border-color:#1b5948;--bs-btn-active-bg:#1b5948;--bs-btn-active-border-color:#1b5948}.btn-outline-secondary{--bs-btn-color:#4f6c5b;--bs-btn-border-color:#cfdbd1;--bs-btn-hover-bg:#eaf0e9;--bs-btn-hover-color:#183e35;--bs-btn-hover-border-color:#a2b9a8}.badge{font-weight:550;padding:7px 10px;border-radius:6px;background:#edf1ed;color:#5d7165;font-size:.7rem}.status-active,.status-paid,.status-succeeded,.status-planned{background:#e5f2e7;color:#28723e}.status-draft,.status-uncertain,.status-partial,.status-started,.status-processing{background:#fff2d5;color:#8b651c}.status-finalized,.status-completed{background:#e4eef9;color:#3b638b}.status-failed,.status-cancelled{background:#f9e7e3;color:#a44938}.status-day_off,.status-closed{background:#ececef;color:#6e6e80}.table{vertical-align:middle;font-size:.82rem;--bs-table-border-color:#edf0eb;margin-bottom:0}.table thead th{background:#f7f9f5;font-size:.69rem;letter-spacing:.02em;color:#7c8c81;font-weight:650;padding:13px 12px;white-space:nowrap}.table td{padding:17px 12px}.participant-table{min-width:1050px}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:12px;align-items:end}.filters label,.inline-form label{font-size:.76rem;color:#6c8072}.filters .form-control,.filters .form-select{margin-top:6px;font-size:.8rem}.inline-form{display:flex;flex-wrap:wrap;gap:14px;align-items:end}.inline-form>.form-control{max-width:200px}.form-control,.form-select{font-size:.9rem;padding:.65rem .8rem;border-color:#d8e0d7}.form-control:focus,.form-select:focus{border-color:#75a18b;box-shadow:0 0 0 .2rem #24735e12}.form-label{font-size:.85rem;font-weight:550}.form-panel{max-width:820px}.login-panel{max-width:460px;margin:50px auto}.selection-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.log-row{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line)}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.date-grid{display:flex;flex-wrap:wrap;gap:8px}.date-grid span{background:#f2f5ef;border-radius:5px;padding:8px;font-size:.8rem}.mail-body{white-space:pre-wrap;font-family:inherit;font-size:.9rem;margin-top:18px}.page-intro{color:#718277}footer{font-size:.7rem;color:#90a092;margin-top:44px}hr{border-color:var(--line);margin:24px 0}@media(max-width:1000px){.sidebar{width:200px;padding:25px 16px}.workspace{margin-left:200px;padding:28px 20px}.stats{gap:12px}.settings-grid{grid-template-columns:1fr}}@media(max-width:700px){.sidebar{position:relative;width:auto;padding:16px}.sidebar nav{display:flex;overflow:auto;gap:2px;margin-top:14px}.sidebar nav a{white-space:nowrap;padding:8px 10px}.nav-label{display:none}.sidebar-bottom{display:flex;align-items:center;justify-content:space-between;padding-top:12px}.sidebar-bottom form .mt-3{margin-top:0!important}.workspace{margin-left:0;padding:24px 14px}.page-header{gap:12px}h1{font-size:1.6rem}.panel{padding:18px}.stats{grid-template-columns:1fr}.stat{display:flex;justify-content:space-between;align-items:center}.stat strong{margin-top:0;font-size:1.65rem}.mode-badge{font-size:.65rem}.filters{grid-template-columns:1fr 1fr}.inline-form{align-items:stretch;flex-direction:column}.inline-form>.form-control{max-width:none}.selection-actions .btn{width:100%}.settings-grid{display:block}.settings-grid .panel{margin-bottom:18px}}
.course-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0}.course-fields label{min-width:0}.course-fields .form-control{margin-top:6px}#course-management fieldset{min-width:0}#course-management details summary{cursor:pointer;padding:10px 0;font-weight:550}@media(max-width:700px){.course-fields{grid-template-columns:1fr}}
.enrollment-actions-bar{position:sticky;top:0;z-index:20;background:#fff;padding:14px 0;border-bottom:1px solid var(--line);box-shadow:0 7px 12px -10px #183e3540;margin-bottom:12px}.enrollment-actions-bar .toolbar{margin-bottom:10px}.enrollment-actions-bar .selection-actions{margin-top:0}.enrollment-actions-bar [data-selection-note]{margin-bottom:10px}@media(max-width:700px){.enrollment-actions-bar{padding:10px 0}.enrollment-actions-bar .selection-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.enrollment-actions-bar .selection-actions .btn{width:100%;min-width:0;padding:.5rem;font-size:.76rem}}
.table td.amount-cell{padding:0}.amount-editor-link{display:block;padding:17px 12px;color:inherit;min-height:100%}.amount-editor-link:hover{background:#edf5ef;text-decoration:none}.amount-editor-link:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.amount-dialog{width:min(460px,calc(100vw - 28px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid var(--line);border-radius:12px;padding:24px;color:var(--ink);box-shadow:0 16px 60px #183e3540}.amount-dialog::backdrop{background:#132d2766}.amount-dialog-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.invoice-preview-dialog{background:#fff;width:min(720px,calc(100vw - 28px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid var(--line);border-radius:12px;padding:24px;color:var(--ink);box-shadow:0 16px 60px #183e3540}.invoice-preview-dialog::backdrop{background:#132d2766}.invoice-preview-dialog .mail-body{overflow-wrap:anywhere;white-space:pre-wrap}

.batch-email-row{cursor:pointer}.batch-email-row:hover>td,.batch-email-expanded>td{background:#f2f7f1}.batch-email-toggle{border:0;background:transparent;color:var(--accent);text-align:left;padding:0;font:inherit}.batch-email-toggle small{font-size:.72rem}.batch-email-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}.batch-email-details>td{background:#f7f9f5;padding:22px}.batch-email-details article{max-width:900px}.batch-email-details .mail-body{overflow-wrap:anywhere;word-break:break-word;margin-bottom:0}

.invoice-table{min-width:1250px}.invoice-column-filters .form-control,.invoice-column-filters .form-select{font-size:.76rem;min-width:100px;padding:.4rem}.invoice-column-filters th{vertical-align:top}.status-action{background:#fff2d5;color:#8b651c}

.payment-status-action{display:flex;align-items:center;gap:8px;white-space:nowrap}.payment-paid-icon{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;padding:7px}.payment-paid-icon:disabled{opacity:.4}

.payment-paid-icon[aria-busy="true"]{opacity:.55;pointer-events:none}

.status-open{background:#fce4e4;color:#943a3a}

.form-field-label{display:flex;align-items:baseline;gap:.4rem;position:relative;flex-wrap:wrap}
.field-info{display:inline-flex;align-self:center}
.field-info-button{display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--accent);padding:5px;cursor:help;border-radius:50%}
.field-info-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.field-tooltip{position:absolute;z-index:50;left:0;top:100%;width:max-content;max-width:min(26rem,100%);padding:.65rem .8rem;border-radius:8px;background:#183e35;color:#fff;font-size:.85rem;line-height:1.45;box-shadow:0 4px 16px #0002;visibility:hidden;opacity:0;pointer-events:none}
.field-info:hover .field-tooltip,.field-info:focus-within .field-tooltip{visibility:visible;opacity:1;pointer-events:auto}
.form-checkbox-error{border:1px solid #dc3545;border-radius:6px;padding:.6rem}

/* Course navigation keeps native disclosure controls usable without JavaScript. */
.sidebar nav details {margin: .25rem 0;}
.sidebar nav summary {cursor:pointer; padding:.65rem .8rem; border-radius:.5rem; color:#eef5f0; overflow-wrap:anywhere;}
.sidebar nav details details {margin-left:.65rem; border-left:1px solid #ffffff30;}
.sidebar nav details a {margin-left:.5rem; font-size:.9rem;}
.sidebar nav summary small {display:block; font-size:.7rem; opacity:.8; margin-top:.2rem;}
.sidebar nav .selected {background:#ffffff20; font-weight:600;}
.course-context {padding:.8rem 1rem; margin-bottom:1.25rem; background:#e5efe7; border-radius:.6rem;}
.course-tabs {display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1.25rem; border-bottom:1px solid #d5dfd8; padding-bottom:.6rem;}
.course-tabs a {padding:.55rem .85rem; border-radius:.4rem;}
.course-tabs a.active {background:#246448; color:white;}
.mobile-navigation {display:none;}
@media(max-width:800px) {
 .mobile-navigation {display:block; background:#173e2e; color:white; padding:.8rem 1rem;}
 .mobile-navigation summary {cursor:pointer;}
 .sidebar {display:none;}
 body:has(.mobile-navigation[open]) .sidebar {display:block; position:relative; width:100%; height:auto; max-height:70vh; overflow-y:auto;}
 .workspace {margin-left:0;}
}

.sidebar {overflow-y:auto;}
@media(max-width:800px) {.sidebar nav{display:block;overflow:visible;} .sidebar nav a{white-space:normal;} }

/* The arrow toggles the native disclosure; the course name is a separate link. */
.sidebar nav .nav-course > summary {display:flex;align-items:stretch;list-style:none;padding:0;}
.sidebar nav .nav-course > summary::-webkit-details-marker {display:none;}
.course-toggle-arrow {display:flex;align-items:center;justify-content:center;flex:0 0 32px;min-height:44px;}
.course-toggle-arrow::before {content:"▸";}
.nav-course[open] > summary > .course-toggle-arrow::before {content:"▾";}
.sidebar nav .nav-course > summary > .course-name-link {flex:1;min-width:0;margin:0;padding:.65rem .4rem;}
.sidebar nav .nav-course > summary > .course-name-link:focus-visible {outline:2px solid #add4b1;outline-offset:-2px;}

.course-breadcrumb {font-size:.78rem;color:#738679;margin-bottom:.6rem;}
.course-header-meta {margin:.6rem 0 0;color:#6c8072;font-size:.82rem;}
.page-header-actions {display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.course-information {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 2rem;margin:1.2rem 0 0;}
.course-information dt {font-size:.76rem;font-weight:500;color:#75867b;margin-bottom:.25rem;}
.course-information dd {margin:0;overflow-wrap:anywhere;}
.course-financial-summary {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;}
.course-financial-summary span {display:block;font-size:.76rem;color:#75867b;}
.course-financial-summary strong {display:block;font-size:1.1rem;margin-top:.4rem;}
.course-edit-actions {position:sticky;bottom:12px;z-index:25;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 18px;margin:16px 0;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 4px 20px #183e3515;}
.course-edit-actions.has-changes {border-color:#9cb9a4;background:#f3f8f1;}
.course-edit-actions [role=status] {font-size:.85rem;}
.course-code-help summary {cursor:pointer;font-size:.78rem;}
.course-code-help p {padding-top:.8rem;}
.course-change {border-bottom:1px solid var(--line);padding:12px 0;}
.course-change p {white-space:pre-wrap;overflow-wrap:anywhere;margin:.3rem 0;}
.course-change p:first-of-type {color:#75867b;}
.course-key-figures {margin-top:0;}
@media(max-width:700px) {.course-information{grid-template-columns:1fr;}.course-financial-summary{grid-template-columns:repeat(2,minmax(0,1fr));}.course-edit-actions{bottom:0;}.page-header-actions .mode-badge{display:none;}}

.course-field-title {display:flex;align-items:center;gap:6px;}
.course-pencil {display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;color:var(--accent);border-radius:5px;width:30px;height:30px;padding:5px;}
.course-pencil:hover,.course-pencil:focus-visible {background:#e5efe7;outline:2px solid #add4b1;}
.course-top-save {position:sticky;top:0;z-index:25;display:flex;justify-content:space-between;align-items:center;gap:12px;background:#edf5eb;border:1px solid #b6cdb8;padding:12px 18px;border-radius:8px;margin-bottom:18px;}
.course-top-save[hidden] {display:none;}
.course-field-changed {color:var(--accent);font-weight:600;}

.payment-invoice-choice{flex:1 1 360px;min-width:0;max-width:100%}.payment-invoice-choice select{width:100%;min-width:0}.payment-balance{flex-basis:100%;font-size:.82rem;color:#6c8072;overflow-wrap:anywhere}.payment-balance:empty{display:none}
@media(max-width:700px){.payment-invoice-choice{flex:initial;width:100%;}}

.expense-form-panel{max-width:960px}.expense-text{white-space:pre-wrap;overflow-wrap:anywhere}.expense-description{max-width:320px;overflow-wrap:anywhere}.expense-wide{grid-column:1/-1}.expense-attachments legend{font-size:1rem;font-weight:600}.expense-attachment-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.expense-attachment-row a{max-width:100%;overflow-wrap:anywhere}.expense-attachment-row span{font-size:.75rem;color:#6c8072}.expense-history{padding:14px 0;border-bottom:1px solid var(--line)}.expense-history summary{cursor:pointer;overflow-wrap:anywhere}.expense-status-submitted{background:#e4eef9;color:#3b638b}.expense-status-approved,.expense-status-paid{background:#e5f2e7;color:#28723e}.expense-status-rejected{background:#f9e7e3;color:#a44938}.expense-status-draft{background:#fff2d5;color:#8b651c}

.claimant-picker{position:relative;min-width:0}.claimant-options{position:absolute;top:calc(1.5em + 48px);left:0;right:0;z-index:30;max-height:260px;overflow-y:auto;list-style:none;padding:4px;margin:0;background:#fff;border:1px solid #a2b9a8;border-radius:7px;box-shadow:0 6px 20px #183e3520}.claimant-options li{padding:10px;cursor:pointer;overflow-wrap:anywhere}.claimant-options li:hover,.claimant-options li[aria-selected=true]{background:#e5efe7}.claimant-options small{display:block;color:#6c8072;font-size:.75rem}
.claimant-picker>.form-control{margin-top:6px}

.trainer-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.trainer-stats .stat strong{font-size:1.6rem}.trainer-stats .stat small{font-size:.7rem;margin-top:.5rem}.trainer-calculation{padding:14px;border:1px solid var(--line);background:#edf5eb;border-radius:8px;overflow-wrap:anywhere}.trainer-stats .stat{min-width:0}@media(max-width:1100px){.trainer-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.trainer-stats{grid-template-columns:1fr}}

.association-years-panel{grid-column:1 / -1}
.association-years-panel form{max-width:36rem}
