:root{--faculty:#007680;--oak:#404827;--eucalyptus:#008776;--acacia:#81bb26;--heliconia:#f08013;--ink:#233a57;--paper:#fff;--surface:#f4f7f7;--border:#d8e2e2;--danger:#9f1239;--shadow:0 18px 45px rgba(35,58,87,.12);font-family:"DIN Pro","Acherus Grotesque",Arial,sans-serif;color:var(--oak)}
*{box-sizing:border-box}body{margin:0;background:var(--surface);line-height:1.5}h1,h2,p{margin-top:0}h1{font-size:clamp(1.8rem,4vw,2.5rem);line-height:1.12}button,input{font:inherit}.topbar{height:72px;background:var(--paper);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:40}.brand,.login-brand,.user-menu{display:flex;align-items:center;gap:12px}.brand img{width:138px;height:auto}.login-brand img{width:190px;height:auto}.user-menu form{margin:0}.user-profile-link,.link-button{color:var(--faculty);font-weight:700}.user-profile-link{text-decoration:none}.user-profile-link:hover,.link-button:hover{text-decoration:underline}.user-profile-link:focus-visible,.link-button:focus-visible,.menu-toggle:focus-visible,.sidebar a:focus-visible{outline:3px solid var(--acacia);outline-offset:3px}.link-button{border:0;background:none;cursor:pointer}.menu-toggle{display:none;border:0;border-radius:8px;background:transparent;color:var(--oak);padding:10px;cursor:pointer}.menu-toggle span{display:block;width:24px;height:2px;background:currentColor;margin:5px 0}.app-shell{display:grid;grid-template-columns:230px 1fr;min-height:calc(100vh - 72px)}.sidebar{background:var(--oak);padding:28px 18px;display:flex;flex-direction:column;gap:8px}.sidebar a,.sidebar span{color:white;text-decoration:none;padding:11px 14px;border-radius:8px}.sidebar span{opacity:.68}.sidebar .active{background:var(--faculty);opacity:1}.content{padding:40px;max-width:1280px;width:100%;margin:0 auto}.page-heading{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:30px}.eyebrow{text-transform:uppercase;color:var(--faculty);font-size:.78rem;font-weight:800;letter-spacing:.14em}.primary-button{border:0;border-radius:8px;background:var(--faculty);color:white;font-weight:700;padding:12px 20px;cursor:pointer}.primary-button:hover{background:var(--eucalyptus)}.primary-button:disabled{opacity:.55;cursor:not-allowed}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.stat-card,.panel{background:var(--paper);border:1px solid var(--border);border-top:5px solid var(--faculty);border-radius:12px;padding:24px;box-shadow:0 8px 22px rgba(35,58,87,.06)}.stat-card.accent{border-top-color:var(--acacia)}.stat-card.warm{border-top-color:var(--heliconia)}.stat-card span,.stat-card small{display:block}.stat-card strong{display:block;font-size:2.4rem;color:var(--ink);margin:8px 0}.panel{margin-top:22px;border-top-width:1px}.guest-page{min-height:100vh;background:linear-gradient(135deg,var(--oak),var(--faculty));display:grid;place-items:center;padding:24px}.guest-shell{width:min(100%,460px)}.login-card{background:var(--paper);border-radius:16px;padding:36px;box-shadow:var(--shadow)}.login-brand{margin-bottom:28px}.login-card form{display:grid;gap:18px}.login-card label{font-weight:700}.login-card input{display:block;width:100%;margin-top:7px;border:1px solid #aebcbc;border-radius:8px;padding:12px}.login-card input:focus{outline:3px solid rgba(0,118,128,.2);border-color:var(--faculty)}.alert{background:#fff1f2;color:var(--danger);border:1px solid #fecdd3;padding:12px;border-radius:8px;margin-bottom:18px}
.alert.success{background:#ecfdf5;color:#166534;border-color:#bbf7d0}.form-panel{max-width:680px;margin-bottom:22px}.form-panel form{display:grid;gap:16px}.form-panel label{font-weight:700}.form-panel input:not([type="hidden"]),.form-panel select,.form-panel textarea{display:block;width:100%;max-width:100%;box-sizing:border-box;margin-top:7px;border:1px solid #aebcbc;border-radius:8px;padding:12px;background:var(--paper)}.form-panel input:disabled{background:#eef3f3;color:var(--oak)}
@media(max-width:800px){.topbar{padding:0 18px}.brand{gap:8px}.brand img{width:112px}.brand span{display:none}.menu-toggle{display:block;order:2}.user-menu{order:3;gap:8px}.user-profile-link{display:block;max-width:14ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:30;top:72px;bottom:0;left:0;width:min(280px,85vw);padding:28px 18px;transform:translateX(-100%);transition:transform .2s ease;box-shadow:var(--shadow)}.sidebar.is-open{transform:translateX(0)}.sidebar-overlay{position:fixed;z-index:20;inset:72px 0 0;background:rgba(35,58,87,.42)}.content{padding:24px}.stats-grid{grid-template-columns:1fr}.page-heading{flex-direction:column}}
@media(max-width:400px){.topbar{padding:0 12px}.brand img{width:88px}.menu-toggle{padding:8px}.user-menu{gap:4px;font-size:.875rem}.user-profile-link{max-width:8ch}}
.secondary-button,.danger-button{display:inline-block;border:1px solid var(--faculty);border-radius:8px;background:var(--paper);color:var(--faculty);font-weight:700;padding:10px 16px;text-decoration:none;cursor:pointer}.secondary-button:hover{background:#e4f3f3}.danger-button{border-color:var(--danger);color:var(--danger)}.danger-button:hover{background:#fff1f2}.heading-actions{display:flex;gap:10px;flex-wrap:wrap}.filters-panel{margin-bottom:22px}.student-filters,.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.student-filters label,.form-grid label,.inline-form label,.retire-form label{font-weight:700}.student-filters input,.student-filters select,.form-grid input,.form-grid select,.inline-form input,.inline-form select,.retire-form input{display:block;width:100%;margin-top:7px;border:1px solid #aebcbc;border-radius:8px;padding:10px;background:var(--paper)}.student-filters .checkbox-label{display:flex;align-items:center;gap:8px;font-weight:400}.student-filters .checkbox-label input{width:auto;margin:0}.filter-actions{display:flex;align-items:end;gap:16px}.filter-actions a{color:var(--faculty);font-weight:700}.table-panel{overflow:hidden}.table-heading{display:flex;justify-content:space-between;gap:16px;align-items:baseline;margin-bottom:16px}.table-heading p{margin:0}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 12px;border-bottom:1px solid var(--border);vertical-align:top}th{font-size:.84rem;color:var(--oak)}td small{display:block;margin-top:3px;color:#52605e}.table-link{color:var(--faculty);font-weight:700}.status{display:inline-block;border-radius:99px;padding:3px 9px;font-size:.82rem;font-weight:700}.status-active{color:#166534;background:#dcfce7}.status-inactive{color:#6b3434;background:#fef2f2}.empty-state{padding:18px;background:#f4f7f7;border-radius:8px}.pagination{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:20px}.pagination a{color:var(--faculty);font-weight:700}.form-grid .full-width{grid-column:1/-1}.form-panel select{font:inherit}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:22px}.details-list{margin:0}.details-list div{display:grid;grid-template-columns:minmax(130px,.8fr) 1.2fr;gap:12px;padding:11px 0;border-bottom:1px solid var(--border)}.details-list div:last-child{border-bottom:0}.details-list dt{font-weight:700}.details-list dd{margin:0}.assignments-panel{margin-bottom:22px}.assignment-list{display:grid;gap:12px}.assignment-card{display:flex;justify-content:space-between;gap:20px;border:1px solid var(--border);border-left:4px solid var(--faculty);border-radius:8px;padding:16px}.assignment-card h3,.assignment-card p{margin-bottom:6px}.assignment-inactive{border-left-color:#899391;opacity:.82}.assignment-actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.assignment-actions details{width:100%}.assignment-actions summary{cursor:pointer;color:var(--faculty);font-weight:700;text-align:right}.inline-form,.retire-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-top:10px}.inline-form label,.retire-form label{min-width:180px;flex:1}.assignment-create{border-top:1px solid var(--border);margin-top:22px;padding-top:22px}.assignment-create h3{margin-bottom:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:800px){.student-filters,.form-grid,.detail-grid{grid-template-columns:1fr}.form-grid .full-width{grid-column:auto}.filter-actions{align-items:center}.assignment-card{flex-direction:column}.assignment-actions{align-items:stretch}.assignment-actions summary{text-align:left}.inline-form,.retire-form{align-items:stretch;flex-direction:column}.inline-form label,.retire-form label{min-width:0}.inline-form .secondary-button,.retire-form .danger-button{width:100%}}
@media(max-width:620px){.table-scroll{overflow:visible}table,thead,tbody,tr,th,td{display:block}thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}tr{border:1px solid var(--border);border-radius:8px;padding:8px;margin-bottom:12px}td{border:0;display:grid;grid-template-columns:42% 1fr;gap:10px;padding:7px}td::before{content:attr(data-label);font-weight:700}td:last-child{display:block;padding-top:10px}.pagination{flex-wrap:wrap}.details-list div{grid-template-columns:1fr}.heading-actions{width:100%}.heading-actions a{flex:1;text-align:center}}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--acacia);outline-offset:3px}
.subnav{display:flex;gap:8px;margin:-12px 0 22px}.subnav a{padding:8px 12px;color:var(--faculty);font-weight:700;text-decoration:none;border-radius:8px}.subnav .active{background:#e4f3f3}.status-form{margin-top:18px}.catalog-list{padding-left:20px}.catalog-list li{margin:8px 0}.catalog-list a{color:var(--faculty);font-weight:700}.color-swatch{display:inline-block;width:16px;height:16px;border:1px solid var(--border);border-radius:3px;vertical-align:-3px;margin-right:5px}
.case-filters{display:grid;grid-template-columns:2fr 1fr auto;gap:16px}.case-filters label{font-weight:700}.case-filters input,.case-filters select{display:block;width:100%;margin-top:7px;border:1px solid #aebcbc;border-radius:8px;padding:10px;background:var(--paper)}.case-status-open{color:#155e75;background:#cffafe}.case-status-in_progress{color:#854d0e;background:#fef3c7}.case-status-closed{color:#166534;background:#dcfce7}.case-status-cancelled{color:#6b3434;background:#fef2f2}.case-reason{overflow-wrap:anywhere;margin-bottom:0}.case-transition{max-width:680px}
@media(max-width:800px){.case-filters{grid-template-columns:1fr}}
.appointment-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.appointment-filters label{font-weight:700}.appointment-filters input,.appointment-filters select{display:block;width:100%;margin-top:7px;border:1px solid #aebcbc;border-radius:8px;padding:10px;background:var(--paper)}.appointment-status-scheduled{color:#155e75;background:#cffafe}.appointment-status-completed{color:#166534;background:#dcfce7}.appointment-status-cancelled{color:#6b3434;background:#fef2f2}.appointment-status-no_show{color:#854d0e;background:#fef3c7}.appointment-transition form{margin:0}
@media(max-width:1000px){.appointment-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:800px){.appointment-filters{grid-template-columns:1fr}}
