.portal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.portal-hero{background:linear-gradient(130deg,#e9f2fa,#ebf3fa)}
.portal-numbers{display:flex;gap:44px;margin:28px 0}
.portal-numbers strong{font-size:48px;line-height:1.2;display:block;font-weight:600}
.portal-numbers span,.portal-mini-stats span{display:block;color:#636d76;font-size:14px;margin-top:6px}
.portal-toolbar,.portal-links{display:flex;gap:16px;flex-wrap:wrap;margin:20px 0}
.portal-students{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:28px 0}
.portal-students h2{margin-top:0}
.portal-mini-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:20px 0;border-top:1px solid #d7e5f2;border-bottom:1px solid #d7e5f2}
.portal-mini-stats strong{font-size:28px}
.portal-pill{background:#e3eef8;border-radius:100px;padding:8px 14px;color:#27455e;font-size:13px;white-space:nowrap}
.portal-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin-top:24px}
.calendar-weekday{text-align:center;color:#677a8b;padding:8px}
.calendar-day{min-height:115px;padding:12px;border:1px solid #d8e6f2;border-radius:10px;color:#263644;display:flex;flex-direction:column;gap:5px;background:#f8fbfd}
.calendar-day span{font-size:12px}
.calendar-day.outside{opacity:.35}.calendar-day.today{outline:2px solid #446785;outline-offset:1px}
.calendar-day.level-1{background:#e0edf8}.calendar-day.level-2{background:#c6daec}.calendar-day.level-3{background:#adc2d5}.calendar-day.level-4{background:#84a2bc}
.portal-event{display:grid;grid-template-columns:150px 1fr;gap:20px;border-bottom:1px solid #d8e8f6;padding:15px 0}
.portal-event p{margin:5px 0;overflow-wrap:anywhere}
.focused-page main{max-width:900px;margin:0 auto;padding:24px 18px}
@media(max-width:850px){.portal-grid,.portal-students{grid-template-columns:1fr}.calendar-day{min-height:90px;padding:7px}.calendar-day span{font-size:10px}.portal-calendar{gap:4px}.portal-event{grid-template-columns:1fr;gap:5px}header{flex-wrap:wrap}header nav{flex-wrap:wrap}}
@media(max-width:440px){.portal-mini-stats{grid-template-columns:repeat(2,1fr)}.calendar-day{min-height:75px}.calendar-day span{font-size:9px}.portal-numbers strong{font-size:40px}.portal-calendar{gap:3px}}
