.skip-link{position:fixed;left:12px;top:8px;transform:translateY(-160%);z-index:1000;background:#fff;color:#24372c;padding:10px 14px;border:2px solid #2f6043;border-radius:10px}
.skip-link:focus{transform:none}
.btn-primary{background:#3f7f59;border-color:#3f7f59;color:#fff}
.btn-primary:hover{background:#2f6043;border-color:#2f6043}
.badge-blue{color:#2f6aa0}.badge-amber{color:#8a5e15}.badge-rose,.btn-danger{color:#9e4148}.badge-green{color:#2f6043}
:where(button,a,input,select,textarea,summary):focus-visible{outline:3px solid #2f6043;outline-offset:3px}
@supports(height:100dvh){.app-shell,.sidebar,.main{height:100dvh}.modal{max-height:calc(100dvh - 40px)}@media(max-width:820px){.app-shell{height:auto;min-height:100dvh}.sidebar,.main{height:auto}}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.student-archive-modal .student-archive-actions{position:sticky;bottom:-22px;z-index:25;background:#fff;border-top:1px solid #dce9df;box-shadow:0 -5px 16px rgba(41,72,52,.06);margin:18px -22px -22px;padding:12px 22px calc(12px + env(safe-area-inset-bottom));flex-wrap:nowrap}
.student-archive-modal{scroll-padding-bottom:100px}
.student-archive-modal > .form-grid > .field{align-content:start}
@media(max-width:820px){.student-archive-modal .student-archive-actions{bottom:-22px}.student-archive-actions .btn{min-height:44px}}
.nav-group{position:relative;border-radius:14px;color:#52695c}
.nav-group>summary{display:flex;align-items:center;gap:15px;padding:16px 20px;cursor:pointer;font-weight:700;list-style:none;border-radius:14px}
.nav-group>summary::-webkit-details-marker{display:none}
.nav-group>summary:focus-visible{outline:2px solid #6ca987}
.nav-group.has-active>summary,.nav-group[open]>summary{background:#fff;color:#3e805c}
.nav-chevron{margin-left:auto}
.nav-submenu{padding:5px 0 10px 22px;background:#f2f8f3;border-radius:12px}
.nav-submenu .nav-btn{font-size:14px;padding:11px 16px;min-height:42px}
.nav-submenu .nav-icon:empty{display:none}
.student-more>summary{list-style:none;cursor:pointer}
.student-more-actions{display:flex;flex-wrap:wrap;gap:6px;padding:8px 0}
.student-action-group{align-items:flex-start;gap:6px}
.student-info-table td,.student-info-table th{padding:10px 8px}
.student-info-table td:first-child .settings-note{display:none}
.student-info-table td:first-child .badge{max-width:100%;white-space:normal;overflow-wrap:anywhere;font-size:11px}
.attendance-status-control{display:flex;flex-direction:column;min-width:0;align-items:stretch}
label.renewal-toggle{display:flex!important;width:max-content!important;max-width:100%;align-self:flex-start;align-items:center;gap:5px;border:0!important;border-radius:4px;padding:3px 4px!important;margin:4px 0 0!important;color:#39754e;background:transparent;font-size:12px!important;line-height:20px;cursor:pointer}
label.renewal-toggle input{width:15px!important;height:15px!important;min-width:15px;margin:0!important;accent-color:#6ba585}
.renewal-toggle:has(input:checked){background:#e2f0e5;font-weight:600}
@media(min-width:821px){.nav-group[open] .nav-submenu{position:absolute;left:100%;top:0;width:190px;z-index:100;padding:8px;box-shadow:0 8px 24px #243c3320;border:1px solid #d9e8dd}.sidebar{overflow:visible!important;z-index:9}.sidebar .nav{overflow:visible}}
@media(max-width:820px){.nav-submenu{padding-left:12px}.nav-group>summary{padding:12px}}
/* Today: occupied periods grow with lessons, empty periods stay one line. */
.home-day-agenda{margin-bottom:16px;margin-top:16px}
.home-day-period{display:grid;grid-template-columns:62px minmax(0,1fr);gap:12px;padding:14px 0;border-top:1px solid var(--line);align-items:start}
.home-day-period>strong{font-size:14px;color:var(--brand-deep);padding-top:8px}
.home-day-period.is-empty{padding:7px 0;align-items:center}
.home-day-period.is-empty>strong{padding-top:0}
.home-day-events{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:8px;min-width:0}
.home-day-event{display:flex;flex-direction:column;gap:5px;text-align:left;padding:12px;border:1px solid var(--line);border-radius:12px;cursor:pointer;font:inherit;min-width:0;overflow-wrap:anywhere}
.home-day-event small{opacity:.85}
.home-day-event:focus-visible{outline:2px solid var(--brand-deep);outline-offset:2px}
@media(max-width:820px){.home-day-period{grid-template-columns:42px minmax(0,1fr);gap:8px}.home-day-events{grid-template-columns:minmax(0,1fr)}}
.referral-record,.referral-redemption{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:8px 0;padding:10px;background:#f3f9f5;border-radius:10px}
.referral-record .select{width:220px;max-width:100%}.referral-record span{font-size:12px;color:#52695c}
.referral-redemption label{display:flex;align-items:center;gap:6px}.referral-redemption .input{width:100px}
.referral-student-picker{position:relative;width:280px;max-width:100%}.referral-student-picker>.input{width:100%}
[data-referral-results]:not([hidden]){display:grid;gap:3px;max-height:240px;overflow:auto;padding:6px;margin-top:4px;border:1px solid #c8dfd0;border-radius:10px;background:white}
[data-referral-results] button{display:grid;gap:3px;text-align:left;padding:9px;border:0;border-radius:6px;background:#f3f9f5;color:#24372c;cursor:pointer;font:inherit}
[data-referral-results] button:hover,[data-referral-results] button:focus-visible{background:#dceee2;outline:2px solid #6ea884;outline-offset:-2px}
[data-referral-results] small{color:#718177;font-size:12px}
