:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;--color-bg:#fff;--color-bg-alt:#f6f4ee;--color-text:#262620;--color-text-muted:#6b6a5d;--color-border:#ddd7c7;--color-green:#2f6b4f;--color-green-dark:#234f3a;--color-green-light:#e7f1ec;--color-brown:#8a5a3d;--color-brown-dark:#6a4530;--color-brown-light:#f3e9de;--color-error:#b3261e;--color-error-light:#fbeae9;--color-success:#2f6b4f;--color-warning:#9a5b12;--color-warning-light:#fbf0e0;--radius:6px;--radius-lg:10px;--shadow-sm:0 1px 2px #2626200f;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:18px}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);margin:0;padding:0;line-height:1.5}h1,h2,h3{color:var(--color-green-dark);line-height:1.25}h2{border-top:1px solid var(--color-border);margin-top:2rem;padding-top:.5rem}a{color:var(--color-green);text-decoration:none}a:hover{color:var(--color-green-dark);text-decoration:underline}main{padding:0 1.5rem 3rem}.app-header{background:var(--color-bg-alt);border-bottom:2px solid var(--color-brown)}.app-header__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;width:100%;margin:0 auto;padding:.75rem 1.5rem;display:flex}.app-header__brand{color:var(--color-green-dark);font-size:1.1rem;font-weight:700}.app-header__brand:hover{color:var(--color-green);text-decoration:none}.app-header__nav{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.app-header__nav a{color:var(--color-text);font-weight:500}.app-header__nav a:hover{color:var(--color-green)}.app-header__nav-link--active{text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--color-brown);text-decoration-color:var(--color-brown);font-weight:700;color:var(--color-green-dark)!important}.app-header__user{color:var(--color-text-muted);font-size:.85rem}.page{width:100%;margin:2rem auto}.page--sm{max-width:480px}.page--md{max-width:680px}.page--lg{width:100%}.page--dashboard{width:90%}.page--enroll{max-width:1000px}.page--center{text-align:center}.breadcrumb{color:var(--color-text-muted);align-items:center;gap:.3rem;margin-bottom:.75rem;font-size:.85rem;font-weight:500;display:inline-flex}.breadcrumb:hover{color:var(--color-green-dark)}.actions{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.75rem 0 1.25rem;display:flex}.actions a.btn,.actions a.btn--ghost{text-decoration:none}.card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1rem 1.25rem}.card-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:1.5rem;display:grid}.card-grid>.card{grid-column:span 1}.card h3{margin:0 0 .35rem}.card-link{color:inherit;display:block}.card-link:hover{border-color:var(--color-green);text-decoration:none}.card-link p{color:var(--color-text-muted);margin:0;font-size:.9rem}.fact-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1.1rem 1.5rem;margin:1rem 0 1.5rem;display:grid}.fact__label{color:var(--color-text-muted);font-size:.8rem;display:block}.fact__value{margin-top:.2rem;font-weight:500;display:block}.empty-state{color:var(--color-text-muted);padding:.5rem 0;font-style:italic}.badge{white-space:nowrap;border-radius:999px;align-items:center;padding:.15rem .6rem;font-size:.8rem;font-weight:600;line-height:1.6;display:inline-flex}.badge--neutral{background:var(--color-bg-alt);color:var(--color-text-muted)}.badge--green{background:var(--color-green-light);color:var(--color-green-dark)}.badge--brown{background:var(--color-brown-light);color:var(--color-brown-dark)}.badge--error{background:var(--color-error-light);color:var(--color-error)}.badge--warning{background:var(--color-warning-light);color:var(--color-warning)}.section-heading{align-items:center;gap:.6rem;display:flex}.panel{border-radius:var(--radius-lg);border:1px solid var(--color-border);overflow:hidden}.panel--overdue{border-color:var(--color-error)}.panel--overdue th{background:var(--color-error-light);color:var(--color-error)}.panel table,.panel .empty-state{border:none;margin:0}.panel .empty-state{padding:.75rem 1rem}.calendar-nav{justify-content:space-between;align-items:center;gap:.75rem;margin:1.25rem 0 .75rem;display:flex}.calendar-nav h2{border:none;margin:0;padding:0}.calendar-scroll{overflow-x:auto}.calendar{background:var(--color-border);border:1px solid var(--color-border);border-radius:var(--radius-lg);grid-template-columns:repeat(7,minmax(110px,1fr));gap:1px;display:grid;overflow:hidden}.calendar__weekday{background:var(--color-bg-alt);color:var(--color-text-muted);text-align:center;padding:.4rem .5rem;font-size:.75rem;font-weight:600}.calendar__cell{background:var(--color-bg);flex-direction:column;gap:.25rem;min-height:92px;padding:.35rem;display:flex}.calendar__cell--outside{background:var(--color-bg-alt)}.calendar__cell--outside .calendar__date{color:var(--color-border)}.calendar__cell--today{box-shadow:inset 0 0 0 2px var(--color-green)}.calendar__date{color:var(--color-text-muted);font-size:.8rem;font-weight:600}.cal-chip{white-space:nowrap;text-overflow:ellipsis;border-radius:4px;padding:.1rem .35rem;font-size:.72rem;font-weight:500;text-decoration:none;display:block;overflow:hidden}.cal-chip:hover{text-decoration:underline}.cal-chip--error{background:var(--color-error-light);color:var(--color-error)}.cal-chip--green{background:var(--color-green-light);color:var(--color-green-dark)}.cal-chip--neutral{background:var(--color-bg-alt);color:var(--color-text);border:1px solid var(--color-border)}label{color:var(--color-text);flex-direction:column;align-items:stretch;gap:.35rem;font-weight:500;display:flex}input,select,textarea{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-text);width:100%;padding:.5rem .65rem;font-family:inherit;font-size:1rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--color-green);outline-offset:1px;border-color:var(--color-green)}button,.btn{border-radius:var(--radius);border:1px solid var(--color-green);background:var(--color-green);color:#fff;cursor:pointer;padding:.5rem 1rem;font-family:inherit;font-size:.95rem;font-weight:600}button:hover,.btn:hover{background:var(--color-green-dark);border-color:var(--color-green-dark)}button:disabled,.btn:disabled{background:var(--color-text-muted);border-color:var(--color-text-muted);cursor:not-allowed}.btn--ghost{color:var(--color-brown-dark);border:1px solid var(--color-brown);background:0 0}.btn--ghost:hover{background:var(--color-brown-light);border-color:var(--color-brown-dark);color:var(--color-brown-dark)}.btn--accent{background:var(--color-brown);border-color:var(--color-brown)}.btn--accent:hover{background:var(--color-brown-dark);border-color:var(--color-brown-dark)}table{border-collapse:collapse;background:var(--color-bg);width:100%}th,td{border:1px solid var(--color-border);text-align:left;padding:.5rem .75rem}th{background:var(--color-bg-alt);color:var(--color-green-dark);font-weight:600}tr:hover td{background:var(--color-green-light)}.text-error{color:var(--color-error)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-muted{color:var(--color-text-muted)}dt{color:var(--color-text-muted);margin-top:.6rem;font-size:.85rem}dd{margin:0;font-weight:500}@media print{.app-header,nav,.no-print{display:none!important}}
