:root{color:#12372a;background:#f7fffb;font-family:DM Sans,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}.eyebrow{color:#087f5b;font-size:.69rem;letter-spacing:.105em;font-weight:700;margin-bottom:.55rem}.school-mark{display:flex;align-items:center;gap:.7rem;color:#fff}.school-mark img{width:44px;height:44px;object-fit:contain;background:#fff;border-radius:50%;padding:2px}.school-mark strong,.school-mark small{display:block}.school-mark strong{font-size:.94rem}.school-mark small{opacity:.73;font-size:.68rem;margin-top:2px}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(350px,1.1fr) minmax(420px,.9fr);background:#fff}.login-brand{position:relative;overflow:hidden;padding:clamp(2rem,5vw,5rem);display:flex;flex-direction:column;background:linear-gradient(135deg,#087f5b,#12b886 55%,#20c997);color:#fff}.login-brand:after{content:"";position:absolute;inset:auto -25% -45% auto;width:530px;height:530px;border-radius:50%;background:#ffffff1c}.brand-copy{max-width:560px;margin:auto 0 3rem;position:relative;z-index:1}.brand-copy .eyebrow{color:#d8fff1}.brand-copy h1,.login-form h1,.welcome h2{font-family:Playfair Display,serif}.brand-copy h1{font-size:clamp(2.5rem,5vw,4.8rem);line-height:1.04;letter-spacing:-.04em;margin-bottom:1.2rem}.brand-copy p:last-child{font-size:1.08rem;max-width:430px;line-height:1.6;color:#e3fff5}.hero-logo{position:absolute;width:min(37vw,410px);right:-68px;bottom:-30px;opacity:.22;filter:drop-shadow(0 16px 25px #07523e)}.login-form-wrap{display:flex;flex-direction:column;justify-content:center;padding:clamp(1.7rem,6vw,6rem);background:linear-gradient(140deg,#fff,#f7fffb)}.login-form{width:min(100%,410px);margin:auto}.login-form h1{font-size:2.1rem;margin-bottom:.55rem;letter-spacing:-.025em}.subtle{color:#648074;line-height:1.5;margin-bottom:2rem}.login-form label{display:block;font-weight:600;font-size:.86rem;margin:1.1rem 0 .35rem}.login-form input{width:100%;border:1px solid #dcefE7;background:#fff;border-radius:10px;padding:.83rem .9rem;outline:none;transition:border .2s,box-shadow .2s}.login-form input:focus{border-color:#12b886;box-shadow:0 0 0 3px #c4f7e5}.password-field{position:relative;display:block}.password-field input{padding-right:3rem}.password-field button{position:absolute;border:0;background:transparent;color:#648074;right:.55rem;top:50%;transform:translateY(-50%);padding:.35rem;display:grid}.primary,.quick button{border:0;background:#087f5b;color:#fff;border-radius:10px;font-weight:700;padding:.9rem 1rem;display:flex;align-items:center;justify-content:center;gap:.55rem;transition:transform .2s,background .2s}.primary{width:100%;margin-top:1.75rem}.primary:hover:not(:disabled),.quick button:hover{background:#066b4d;transform:translateY(-1px)}.primary:disabled{opacity:.65;cursor:wait}.form-error{display:flex;align-items:center;gap:.45rem;background:#fff1f1;color:#b42318;border:1px solid #ffd4d1;padding:.7rem;border-radius:9px;font-size:.86rem}.dev-note{font-size:.74rem;color:#648074;text-align:center;margin:1.35rem 0}.dev-note code{color:#087f5b}footer{font-size:.72rem;color:#648074;text-align:center;margin-top:2rem}.portal{min-height:100vh;background:#f7fffb;display:grid;grid-template-columns:250px 1fr}.portal aside{background:#063e2f;padding:1.6rem 1rem;display:flex;flex-direction:column;min-height:100vh}.portal nav{display:grid;gap:.35rem;margin-top:3rem}.portal nav a,.logout{color:#c7e6db;text-decoration:none;display:flex;gap:.75rem;align-items:center;border-radius:9px;padding:.76rem .85rem;font-size:.9rem;border:0;background:transparent;text-align:left}.portal nav a.router-link-active,.portal nav a:hover{background:#0b7558;color:#fff}.logout{margin-top:auto;width:100%}.logout:hover{color:#fff;background:#ffffff1a}main{min-width:0}header{display:flex;align-items:center;gap:1rem;padding:1.55rem clamp(1.25rem,4vw,3.5rem);background:#ffffffc7;border-bottom:1px solid #dcefe7}header h1{font-size:1.2rem;margin:0}.menu{display:none;border:0;background:#e7f7f0;color:#087f5b;border-radius:8px;padding:.48rem}.user-dot{margin-left:auto;background:#d8f8eb;color:#087f5b;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:.79rem;font-weight:700}.dashboard{padding:clamp(1.25rem,4vw,3.5rem);max-width:1320px;margin:auto}.welcome{padding:clamp(1.5rem,3.5vw,3rem);background:linear-gradient(135deg,#087f5b,#12b886);color:#fff;border-radius:18px;display:flex;align-items:center;justify-content:space-between;overflow:hidden;min-height:220px;box-shadow:0 13px 28px #087f5b22}.welcome .eyebrow{color:#d5ffef}.welcome h2{font-size:clamp(1.85rem,3vw,2.8rem);max-width:570px;margin-bottom:.75rem;line-height:1.1}.welcome p:last-child{color:#e2fff4;max-width:540px}.welcome img{width:150px;object-fit:contain;filter:drop-shadow(0 8px 13px #005b4277)}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:1.3rem 0}.metric,.panel{background:#fff;border:1px solid #dcefe7;border-radius:14px;box-shadow:0 5px 18px #0c57300a}.metric{display:flex;gap:.85rem;align-items:center;padding:1.2rem;color:#087f5b}.metric div{display:grid;gap:.18rem}.metric span{font-size:.78rem;color:#648074}.metric strong{font-size:1.55rem;color:#12372a}.dashboard-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:1rem}.panel{padding:1.4rem}.panel-title{display:flex;justify-content:space-between;align-items:center}.panel h2{font-family:Playfair Display,serif;font-size:1.4rem;margin-bottom:1rem}.announcements>div{padding:1rem 0;border-top:1px solid #e9f4ef}.announcements h3{font-size:.94rem;margin:.5rem 0}.announcements p,.quick p{color:#648074;font-size:.84rem;margin:0}.priority{font-size:.65rem;font-weight:700;padding:.2rem .42rem;border-radius:20px}.priority.high{background:#fff0f0;color:#c92a2a}.priority.normal{background:#e3fff3;color:#087f5b}.priority.low{background:#edf5ff;color:#228be6}.quick{background:#effbf5}.quick button{margin-top:1.35rem;font-size:.85rem}.empty{color:#648074;font-size:.87rem}@media(max-width:900px){.login-page{grid-template-columns:1fr}.login-brand{min-height:280px;padding:2rem}.brand-copy{margin:auto 0}.brand-copy h1{font-size:2.7rem}.login-form-wrap{min-height:600px}.portal{display:block}.portal aside{position:fixed;width:260px;z-index:5;transform:translate(-100%);transition:transform .2s;box-shadow:10px 0 20px #002b1d33}.portal aside.open{transform:translate(0)}.menu{display:grid}.metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.login-brand{min-height:250px}.login-brand .school-mark{align-self:flex-start}.brand-copy h1{font-size:2.1rem}.brand-copy p:last-child{font-size:.92rem}.hero-logo{width:180px}.login-form-wrap{padding:2rem 1.3rem;min-height:calc(100vh - 250px)}.login-form h1{font-size:1.75rem}.welcome{min-height:0}.welcome img{width:86px}.welcome h2{font-size:1.7rem}.metrics,.dashboard-grid{grid-template-columns:1fr}.dashboard{padding:1.15rem}.portal header{padding:1rem}.portal header .eyebrow{font-size:.56rem}header h1{font-size:1rem}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}.logo-watermark{position:absolute;top:0;right:0;bottom:0;left:0;background:url(/assets/sbaa-logo.png) center / cover no-repeat;mix-blend-mode:multiply;opacity:.24;filter:grayscale(1) contrast(1.2);transform:scale(1.03);pointer-events:none}.login-brand:after{top:0;right:0;bottom:0;left:0;width:auto;height:auto;border-radius:0;background:linear-gradient(90deg,#03553d85,#087f5b1a)}.login-brand>.school-mark,.login-brand .brand-copy{position:relative;z-index:1}.account-link{font-size:.83rem;text-align:center;color:#648074;margin:1.25rem 0 0}.account-link a{color:#087f5b;font-weight:700;text-decoration:none}.account-link a:hover{text-decoration:underline}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.two-fields label{min-width:0}.password-rule{font-size:.72rem;display:flex;align-items:center;gap:.35rem;color:#648074;margin:.45rem 0 0}.password-rule.valid{color:#087f5b}.register-wrap{padding-block:2rem}@media(max-width:560px){.two-fields{grid-template-columns:1fr}}body{background:#f5f8f6;color:#12372a}:focus-visible{outline:3px solid #12b886;outline-offset:2px}.portal{background:#f5f8f6;grid-template-columns:250px minmax(0,1fr)}.portal-body{min-width:0;min-height:100vh;display:flex;flex-direction:column}.portal-body main{flex:1}.portal aside{background:#063e2f}.portal aside nav a[aria-current=page]{background:#0b7558;color:#fff}.portal aside nav a.router-link-active:not([aria-current=page]){background:transparent;color:#c7e6db}.portal aside nav a,.logout{min-height:44px}.nav-count{margin-left:auto;background:#d8f8eb;color:#063e2f;border-radius:20px;padding:2px 6px;font-size:.7rem;font-weight:700}.portal-header{background:#fffffff0}.portal-header h1{font-size:1.3rem;font-family:DM Sans,sans-serif}.header-bell{margin-left:auto;color:#087f5b;position:relative;min-width:44px;min-height:44px;display:grid;place-items:center;border-radius:10px}.header-bell:hover{background:#e7f7f0}.header-bell span{position:absolute;top:1px;right:0;background:#b32a2a;color:#fff;font-size:.67rem;min-width:18px;height:18px;border-radius:10px;display:grid;place-items:center}.portal-header .user-dot{margin-left:0;text-decoration:none;min-width:40px}.portal-footer{border-top:1px solid #dce7e0;padding:1rem;text-align:center;background:#fff}.skip-link{position:absolute;top:-100px;left:1rem;z-index:20;background:#fff;padding:.75rem;border-radius:8px}.skip-link:focus{top:1rem}.drawer-backdrop{display:none}.compact-welcome{min-height:0;padding:1.65rem 2rem;background:linear-gradient(110deg,#075c44,#087f5b);align-items:center}.compact-welcome h2{font-family:DM Sans,sans-serif;font-size:1.65rem;letter-spacing:-.03em;margin-bottom:.3rem}.compact-welcome .eyebrow{color:#d2f9e8}.compact-welcome p:last-of-type{margin:0 0 1rem;color:#e3f7ee}.compact-welcome img{width:96px;height:96px;border-radius:50%;background:#fff;object-fit:contain;padding:4px}.welcome-action,.secondary-link{display:inline-flex;align-items:center;gap:.45rem;text-decoration:none;font-weight:700;border-radius:8px}.welcome-action{background:#fff;color:#066b4d;padding:.6rem .85rem;font-size:.82rem}.secondary-link{color:#087f5b;margin-top:1rem}.metrics{grid-template-columns:repeat(auto-fit,minmax(185px,1fr))}.quick button{display:none}.page-heading{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.25rem}.page-heading h2{font-size:1.7rem;margin-bottom:.3rem}.page-heading p:last-child{color:#52675d;font-size:.9rem;margin:0}.content-page{display:grid;gap:1.15rem}.content-page .panel h2{font-family:DM Sans,sans-serif;font-size:1.1rem}.content-page .panel h3{font-size:.95rem;margin:.25rem 0}.content-page .panel p{color:#52675d;line-height:1.5}.content-page .panel-title{margin-bottom:1rem}.content-page .panel-title h2{margin:0}.content-page .panel-title span{color:#52675d;font-size:.8rem}.two-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.narrow-panel{max-width:600px}.stack-form{display:grid;gap:.9rem}.stack-form label,.toolbar label{display:grid;gap:.35rem;font-size:.83rem;font-weight:700;color:#12372a}.stack-form input,.stack-form select,.stack-form textarea,.toolbar input:not([type=checkbox]),.toolbar select{width:100%;min-height:44px;padding:.65rem .75rem;border:1px solid #dce7e0;border-radius:9px;background:#fff;color:#12372a;font:inherit}.stack-form textarea{min-height:100px;resize:vertical}.stack-form .primary{margin:0;width:max-content;min-height:44px}.toolbar{display:flex;align-items:end;gap:.7rem;flex-wrap:wrap;margin:1rem 0}.toolbar label{min-width:min(180px,100%);flex:1}.toolbar .check-label,.check-label{display:flex;align-items:center;gap:.45rem;font-weight:500}.toolbar input[type=checkbox],.check-label input{width:17px;height:17px}.secondary-button,.pagination button{min-height:44px;padding:.65rem 1rem;border-radius:9px;background:#fff;color:#087f5b;border:1px solid #a8d9c7;font-weight:700}.secondary-button:hover,.pagination button:hover:not(:disabled){background:#e8f8f0}.pagination button:disabled{opacity:.45;cursor:not-allowed}.pagination{display:flex;align-items:center;gap:.9rem;margin-top:1rem;font-size:.8rem;color:#52675d}.text-button{border:0;background:transparent;color:#087f5b;font-size:.82rem;font-weight:700;padding:.5rem;min-height:40px}.text-button:hover{text-decoration:underline}.record-list{border-top:1px solid #dce7e0}.record-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;border-bottom:1px solid #edf2ee;min-width:0}.record-row>div{min-width:0}.record-row strong,.record-row span,.record-row small{display:block;overflow-wrap:anywhere}.record-row span,.record-row small{color:#52675d;font-size:.8rem;margin-top:.2rem}.record-row p{margin:.4rem 0 0}.record-row.unread{background:#f1fbf6;padding-inline:.6rem;border-radius:8px}.item-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.8rem}.record-card{border:1px solid #dce7e0;border-radius:12px;padding:1rem;display:flex;flex-direction:column;justify-content:space-between}.record-card h3{margin:.35rem 0}.record-card p{font-size:.8rem;margin:.35rem 0}.record-card .text-button{align-self:start}.success-message{padding:.8rem 1rem;background:#e6f7ec;color:#0a6743;border:1px solid #bde8ce;border-radius:10px}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem}.day-column{min-width:0;border:1px solid #dce7e0;border-radius:10px;padding:.55rem;background:#fafdfb}.day-column.today{border-color:#087f5b;background:#f0fbf4}.day-column h3{font-size:.76rem;display:flex;justify-content:space-between;gap:.2rem}.day-column h3 span{color:#087f5b;font-size:.62rem}.class-card{background:#fff;border-left:3px solid #087f5b;border-radius:7px;padding:.55rem;margin:.5rem 0;box-shadow:0 2px 8px #12372a0a}.class-card strong{font-size:.72rem}.class-card h4{margin:.3rem 0;font-size:.86rem}.class-card p,.class-card small{font-size:.7rem;overflow-wrap:anywhere}.class-card .text-button{font-size:.7rem}.detail-list{margin:0}.detail-list div{display:grid;grid-template-columns:110px 1fr;padding:.6rem 0;border-bottom:1px solid #edf2ee;gap:.5rem}.detail-list dt{color:#52675d}.detail-list dd{margin:0;overflow-wrap:anywhere}@media(max-width:1100px){.week-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.portal aside{min-height:100vh}.portal aside.open{z-index:12}.drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:11;background:#09281d99;border:0}.portal-header{position:relative}.week-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.two-panel,.week-grid{grid-template-columns:1fr}.portal-header h1{font-size:1.1rem}.portal-header .eyebrow{font-size:.58rem}.content-page{gap:.8rem}.content-page .panel{padding:1rem}.compact-welcome{padding:1.25rem}.compact-welcome h2{font-size:1.35rem}.compact-welcome img{width:70px;height:70px}.record-row{align-items:start}.stack-form input,.stack-form select,.stack-form textarea,.toolbar input:not([type=checkbox]),.toolbar select,.login-form input{font-size:16px}.toolbar{align-items:stretch}.toolbar label,.toolbar button{width:100%}.portal-footer{font-size:.68rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;scroll-behavior:auto!important}}.login-options{text-align:right;font-size:.8rem;margin-top:.55rem}.login-options a{color:#087f5b;text-decoration:none;font-weight:700}.login-options a:hover{text-decoration:underline}.success-message{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.record-row .text-button{flex:0 0 auto;white-space:nowrap}.toolbar .check-label{min-width:0;flex:0 0 auto;display:flex;align-items:center}.toolbar .check-label input{width:18px;min-height:18px}.field-help,.password-hint{display:block;color:#52675d;font-size:.78rem;line-height:1.45;margin:.25rem 0 .5rem;font-weight:400}.stack-form .check-label{display:flex;align-items:center;gap:.55rem;flex-direction:row}.stack-form .check-label input{width:18px;min-height:18px;flex:0 0 18px}.text-button{min-height:44px}.password-checklist{display:grid;gap:.35rem}.password-checklist>label{margin:.8rem 0 0}.password-checklist>input,.password-checklist .password-field input{width:100%}.password-rules{list-style:none;padding:0;margin:.7rem 0 .15rem;display:grid;gap:.4rem}.password-rules li{display:flex;align-items:center;gap:.45rem;color:#52675d;font-size:.78rem}.password-rules li.valid{color:#087f5b;font-weight:700}.password-checklist .password-field button{min-width:44px;min-height:44px;right:0}.stack-form .password-checklist input{min-height:44px}.inline-actions{display:flex;gap:.35rem;align-items:center;flex-wrap:wrap}.inline-actions .text-button{white-space:normal}.check-label span{display:inline;overflow-wrap:normal}.profile-identity{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:#fff;border:1px solid #dce7e0;border-radius:14px}.profile-identity h2{margin:0 0 .35rem}.profile-identity p{margin:.4rem 0 0;color:#52675d;overflow-wrap:anywhere}.profile-avatar{display:grid;place-items:center;flex:0 0 58px;width:58px;height:58px;border-radius:50%;background:#d8f8eb;color:#076c4d;font-weight:700}.role-badge,.status-badge{display:inline-block!important;border-radius:30px;padding:.2rem .5rem;background:#e5f5ed;color:#075d42;font-size:.72rem!important;font-weight:700}.status-badge{background:#eef2ef;color:#385c4c}.account-card{align-items:flex-start}.bell-anchor{margin-left:auto;position:relative}.header-bell{margin-left:0;border:0;background:transparent}.bell-panel{position:absolute;z-index:15;right:0;top:calc(100% + 12px);width:min(370px,calc(100vw - 28px));max-height:min(650px,calc(100vh - 95px));overflow:auto;background:#fff;border:1px solid #dce7e0;border-radius:14px;box-shadow:0 16px 48px #0a35263d}.bell-panel-head{display:flex;justify-content:space-between;align-items:center;gap:.4rem;padding:.8rem 1rem;border-bottom:1px solid #e5eee9}.bell-panel .empty,.bell-panel .form-error{margin:1rem}.bell-list{display:grid}.bell-item{width:100%;display:flex;align-items:flex-start;text-align:left;gap:.7rem;background:#fff;border:0;border-bottom:1px solid #edf2ee;padding:.85rem 1rem;color:#12372a}.bell-item.unread{background:#effaf4}.bell-item:hover{background:#e6f7ee}.bell-item>span:last-child{min-width:0}.bell-item strong,.bell-item small{display:block}.bell-item strong{font-size:.84rem}.bell-item small{font-size:.72rem;color:#52675d;margin-top:.2rem;overflow-wrap:anywhere}.bell-item-icon{background:#d8f8eb;border-radius:8px;padding:.4rem;color:#087f5b}.bell-view-all{display:block;text-align:center;padding:.8rem;color:#087f5b;font-size:.83rem;font-weight:700;text-decoration:none}.attachment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.attachment-card{border:1px solid #dce7e0;border-radius:12px;overflow:hidden;background:#fff;min-width:0}.attachment-card>img{display:block;width:100%;height:185px;object-fit:contain;background:#f5f8f6}.attachment-card>div{padding:1rem}.attachment-card h3{margin:.7rem 0 .3rem}.attachment-card p{font-size:.84rem;overflow-wrap:anywhere}.attachment-card small{color:#52675d}.drop-zone{border:2px dashed #a8d9c7;border-radius:12px;padding:1rem;background:#f7fffb}.drop-zone label{margin:0}.drop-zone p{font-size:.78rem;margin:.4rem 0 0}.upload-preview img{max-width:100%;max-height:250px;object-fit:contain;display:block}.image-viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#08291ee6;display:grid;place-items:center;padding:1rem}.image-viewer>div{max-width:min(100%,1100px);max-height:100%;overflow:auto;background:#fff;border-radius:12px;padding:1rem}.image-viewer img{display:block;max-width:100%;max-height:75vh;object-fit:contain;margin:.8rem auto}.image-viewer p{margin:0;color:#12372a}@media(max-width:600px){.bell-panel{position:fixed;left:8px;right:8px;top:70px;width:auto;max-height:calc(100dvh - 80px)}.record-row.account-card{display:block}.record-row.account-card .inline-actions{margin-top:.6rem}.attachment-grid{grid-template-columns:1fr}.image-viewer{padding:.4rem}.image-viewer>div{width:100%}}@media(max-width:900px){.login-page{grid-template-columns:minmax(0,1fr);width:100%;max-width:100vw}.login-brand,.login-form-wrap,.brand-copy,.login-form{min-width:0;max-width:100%}.brand-copy h1,.brand-copy p{overflow-wrap:anywhere}}.registration-page .login-brand{justify-content:flex-start}.login-page:has(.register-wrap) .login-brand{justify-content:flex-start}.registration-page .brand-copy{margin:clamp(2rem,7vh,5rem) 0 0}.login-page:has(.register-wrap) .brand-copy{margin:clamp(2rem,7vh,5rem) 0 0}.registration-page .brand-copy h1{font-size:clamp(2.1rem,4.2vw,4rem);max-width:480px}.login-page:has(.register-wrap) .brand-copy h1{font-size:clamp(2.1rem,4.2vw,4rem);max-width:480px}.registration-page .login-form-wrap,.login-page .register-wrap{justify-content:flex-start;min-height:0;padding-block:clamp(1.5rem,3vw,3rem)}.registration-page .login-form,.register-wrap .login-form{margin:0 auto;width:min(100%,480px)}.registration-page .login-form .subtle,.register-wrap .login-form .subtle{margin-bottom:1rem}.registration-page .login-form label,.register-wrap .login-form label{margin-top:.6rem}.registration-page .login-form input,.register-wrap .login-form input{padding:.68rem .82rem}.password-checklist{gap:.3rem}.password-checklist>label{margin:.5rem 0 0}.password-rules{grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem .6rem;margin:.35rem 0 .25rem}.password-rules li,.password-match{font-size:.77rem}.password-match{display:flex;align-items:center;gap:.45rem;color:#52675d;margin:.1rem 0 0}.password-match.valid{color:#087f5b;font-weight:700}.password-checklist .password-hint{margin:.1rem 0 0}.portal{background:#f5faf7;color:#173d2c}.portal aside{background:#fff;border-right:1px solid #dcece3}.portal aside .school-mark{color:#173d2c}.portal aside .school-mark small{color:#587467;opacity:1}.portal nav{margin-top:2rem}.portal nav a,.portal .logout{color:#245640}.portal nav a:hover,.portal .logout:hover{background:#e8f7ef;color:#075d43}.portal aside nav a[aria-current=page],.portal nav a.router-link-active{background:#dff5e9;color:#075d43}.portal aside nav a.router-link-active:not([aria-current=page]){color:#245640}.account-nav{border-top:1px solid #e0eee5;margin-top:.65rem;padding-top:.8rem}.account-nav .eyebrow{padding-inline:.85rem;margin-bottom:.3rem}.portal .logout{margin-top:0;width:100%}.welcome,.compact-welcome{background:linear-gradient(135deg,#087f5b,#10a878 60%,#34c99a)}.profile-identity{min-width:0;flex-wrap:wrap;box-shadow:0 5px 18px #0c57300a}.profile-identity>div{min-width:0;flex:1}.profile-identity small{color:#52675d}.profile-avatar{width:68px;height:68px;flex-basis:68px;overflow:hidden}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-edit-button{margin-left:auto}.profile-name-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.profile-settings .panel{align-self:start}.profile-security h2{margin-bottom:1.2rem}.profile-security .stack-form{gap:1.1rem}.profile-security .secondary-button{margin-top:.4rem}.profile-actions{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.profile-actions .primary{width:auto}.photo-editor{display:grid;gap:.35rem;border:1px dashed #a8d9c7;border-radius:10px;padding:.8rem}.photo-editor input{max-width:100%;height:auto;padding:.5rem}.photo-editor .text-button{justify-self:start}.profile-confirmation{animation:confirm-in .2s ease-out}.avatar-anchor{position:relative}.portal-header .user-dot{border:0;min-width:44px;min-height:44px}.portal-header .user-dot{overflow:hidden;padding:0}.portal-header .user-dot img{width:100%;height:100%;object-fit:cover}.avatar-menu{position:absolute;z-index:18;right:0;top:calc(100% + 8px);min-width:170px;background:#fff;border:1px solid #dcece3;border-radius:12px;box-shadow:0 14px 34px #173d2c2b;padding:.35rem;animation:confirm-in .18s ease-out}.avatar-menu a,.avatar-menu button{display:flex;align-items:center;gap:.5rem;width:100%;min-height:44px;padding:.6rem .75rem;background:transparent;border:0;border-radius:8px;text-align:left;color:#173d2c;text-decoration:none;font:inherit}.avatar-menu a:hover,.avatar-menu button:hover{background:#e8f7ef}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:1rem;background:#0a3024a8}.confirm-dialog{width:min(100%,440px);max-height:calc(100dvh - 2rem);overflow:auto;background:#fff;border:1px solid #dcece3;border-radius:16px;padding:1.5rem;box-shadow:0 22px 60px #062e2459;animation:confirm-in .2s ease-out}.confirm-dialog h2{margin-bottom:.5rem;font-size:1.35rem}.confirm-dialog p{color:#52675d}.dialog-actions{display:flex;justify-content:flex-end;gap:.7rem;margin-top:1.25rem}.dialog-actions .primary{width:auto;margin:0;min-height:44px}.grade-select{display:grid;gap:.5rem;max-width:650px;font-weight:700}.grade-select select,.grade-editor input,.grade-editor select{min-height:44px;padding:.6rem;border:1px solid #cbded2;border-radius:9px;background:#fff;color:#173d2c;font:inherit}.content-page>*{min-width:0}.content-page .panel{min-width:0}.grade-select,.grade-select select{min-width:0;width:100%;max-width:100%}.grade-row{padding:1rem 0;border-top:1px solid #e3eee7;display:grid;gap:.75rem}.grade-row small{display:block;color:#52675d;margin-top:.25rem}.grade-editor{display:flex;align-items:end;gap:.7rem;flex-wrap:wrap}.grade-editor label{display:grid;gap:.3rem;font-size:.82rem;font-weight:700}.grade-editor input{width:120px}.grade-editor .secondary-button{min-width:120px}@keyframes confirm-in{0%{opacity:0;transform:translateY(6px) scale(.99)}to{opacity:1;transform:none}}@media(max-width:900px){.registration-page .login-brand{min-height:0}.registration-page .brand-copy{margin:2rem 0 0}.registration-page .login-form-wrap{min-height:0}.portal aside.open{background:#fff}}@media(max-width:900px){.login-page:has(.register-wrap) .login-brand{min-height:0}.login-page:has(.register-wrap) .brand-copy{margin:2rem 0 0}}@media(max-width:600px){.registration-page .login-brand{padding:1.3rem}.registration-page .brand-copy{margin:1.5rem 0 0}.registration-page .brand-copy h1{font-size:2rem}.registration-page .login-form-wrap{padding:1.4rem 1rem}.password-rules{grid-template-columns:1fr}.profile-name-grid{grid-template-columns:1fr;gap:.5rem}.profile-identity{display:grid;grid-template-columns:68px minmax(0,1fr);align-items:center}.profile-identity>div{overflow-wrap:anywhere}.profile-identity h2{font-size:1.2rem}.profile-edit-button{grid-column:1/-1;justify-self:start;margin:0}.dialog-actions{flex-wrap:wrap}.dialog-actions button{flex:1}.grade-editor,.grade-editor label,.grade-editor input,.grade-editor select,.grade-editor button{width:100%}.portal-header{gap:.45rem}}@media(prefers-reduced-motion:reduce){.avatar-menu,.confirm-dialog,.profile-confirmation{animation:none}}:root{--page:#f5faf7;--surface:#fff;--surface-soft:#f2faf5;--border:#dcece3;--text:#173d2c;--muted:#52675d;--accent:#087f5b;--accent-soft:#dff5e9;--field:#fff;--shadow:0 5px 18px #0c57300a;--button-primary:#075e49;--button-primary-hover:#064c3c;--button-primary-text:#fff;--button-secondary:#fff;--button-secondary-hover:#e8f8f0;--button-secondary-text:#075e49;--button-selected:#dff5e9;--button-selected-text:#064c3c;--button-danger:#9e2525;--button-danger-hover:#7c1d1d;--focus-ring:#bd6531;color-scheme:light}:root[data-resolved-theme=dark]{--page:#101d19;--surface:#1a2b24;--surface-soft:#21372e;--border:#3b5849;--text:#e7f5ec;--muted:#bed5c5;--accent:#79ddb2;--accent-soft:#284d3d;--field:#17271f;--shadow:0 10px 28px #0004;--button-primary:#126b50;--button-primary-hover:#168365;--button-primary-text:#fff;--button-secondary:#21372e;--button-secondary-hover:#2b4839;--button-secondary-text:#e7f5ec;--button-selected:#315943;--button-selected-text:#fff;--button-danger:#a82f30;--button-danger-hover:#bf393a;--focus-ring:#f3c46c;color-scheme:dark}html,body,#app,.portal{background:var(--page);color:var(--text)}.portal,.portal aside,.portal-header,.portal-footer,.panel,.metric,.profile-identity,.record-card,.attachment-card,.class-card,.day-column,.bell-panel,.bell-item,.avatar-menu,.confirm-dialog,.login-form-wrap,.image-viewer>div{background:var(--surface);color:var(--text);border-color:var(--border);box-shadow:var(--shadow)}.portal{background:var(--page)}.portal aside,.portal-header,.portal-footer{background:var(--surface)}.dashboard,.portal-body main,.content-page{color:var(--text)}.profile-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;align-items:start}.profile-column{display:grid;gap:1rem;align-content:start;min-width:0}.profile-column .narrow-panel{max-width:none}.profile-settings{display:grid;gap:1rem}.theme-options{display:flex;gap:.55rem;flex-wrap:wrap}.theme-options .selected{background:var(--accent-soft);border-color:var(--accent);color:var(--text)}.panel p,.content-page .panel p,.page-heading p:last-child,.subtle,.empty,.field-help,.password-hint,.account-link,.record-row span,.record-row small,.detail-list dt,.metric span,.quick p,.announcements p,.profile-identity p,.profile-identity small,.password-rules li,.password-match,.confirm-dialog p,.bell-item small{color:var(--muted)}.panel h2,.panel h3,.page-heading h2,.metric strong,.portal-header h1,.profile-identity h2,.detail-list dd,.record-row strong,.stack-form label,.toolbar label,.avatar-menu a,.avatar-menu button,.bell-item strong{color:var(--text)}.eyebrow,.text-button,.secondary-link,.login-options a,.account-link a,.bell-view-all{color:var(--accent)}.portal aside .school-mark,.portal nav a,.portal .logout,.header-bell{color:var(--text)}.portal aside .school-mark small{color:var(--muted)}.portal aside nav a[aria-current=page],.portal nav a.router-link-active,.portal nav a:hover,.portal .logout:hover,.avatar-menu a:hover,.avatar-menu button:hover,.bell-item:hover,.bell-item.unread,.record-row.unread,.quick,.day-column.today{background:var(--accent-soft);color:var(--text)}.secondary-button,.pagination button,.stack-form input,.stack-form select,.stack-form textarea,.toolbar input:not([type=checkbox]),.toolbar select,.login-form input,.grade-select select,.grade-editor input,.grade-editor select,.bell-item,.avatar-menu a,.avatar-menu button{background:var(--field);border-color:var(--border);color:var(--text)}.login-page,.login-form-wrap{background:var(--surface);color:var(--text)}.login-form h1{color:var(--text)}.drop-zone,.photo-editor{background:var(--surface-soft);border-color:var(--border)}.role-badge,.status-badge,.nav-count,.bell-item-icon{background:var(--accent-soft);color:var(--text)}.record-list,.record-row,.detail-list div,.announcements>div,.bell-panel-head,.bell-item,.account-nav{border-color:var(--border)}.primary{background:linear-gradient(110deg,#087f5b,#0d9a70);color:#fff;min-height:44px}.primary:hover:not(:disabled){background:linear-gradient(110deg,#066b4d,#087f5b)}.primary:active:not(:disabled),.secondary-button:active:not(:disabled){transform:translateY(1px)}.portal-header,.bell-panel,.avatar-menu,.confirm-dialog,.drawer-backdrop{transition:opacity .18s ease,transform .18s ease,background-color .18s ease}:root[data-resolved-theme=dark] .school-mark img,:root[data-resolved-theme=dark] .profile-avatar img,:root[data-resolved-theme=dark] .attachment-card img,:root[data-resolved-theme=dark] .compact-welcome img{filter:none}:root[data-resolved-theme=dark] .login-brand .brand-copy,:root[data-resolved-theme=dark] .welcome,:root[data-resolved-theme=dark] .welcome h2{color:#fff}:root[data-resolved-theme=dark] .form-error{background:#472623;color:#ffd5ce;border-color:#9e5148}:root[data-resolved-theme=dark] .success-message{background:#1e4633;color:#d5f8df;border-color:#4f9169}@media(max-width:900px){.profile-columns{grid-template-columns:1fr}}.primary,.quick button,.file-upload-label{background:var(--button-primary);color:var(--button-primary-text)!important;border-color:transparent;position:relative;isolation:isolate}.primary:hover:not(:disabled),.quick button:hover:not(:disabled),.file-upload-label:hover{background:var(--button-primary-hover);color:var(--button-primary-text)!important}.primary:active:not(:disabled),.secondary-button:active:not(:disabled),.pagination button:active:not(:disabled){transform:translateY(1px)}.secondary-button,.pagination button{background:var(--button-secondary);color:var(--button-secondary-text);border:1px solid var(--border)}.secondary-button:hover:not(:disabled),.pagination button:hover:not(:disabled){background:var(--button-secondary-hover);color:var(--button-secondary-text)}.theme-options .secondary-button.selected,.slot-grid .secondary-button.selected{background:var(--button-selected)!important;color:var(--button-selected-text)!important;border-color:var(--accent)}.theme-options .secondary-button.selected:hover,.slot-grid .secondary-button.selected:hover{background:var(--button-selected)!important;color:var(--button-selected-text)!important}.primary.destructive{background:var(--button-danger);color:#fff!important}.primary.destructive:hover:not(:disabled){background:var(--button-danger-hover);color:#fff!important}.text-button.destructive{color:var(--button-danger)!important}:root[data-resolved-theme=dark] .text-button.destructive{color:#faa!important}.text-button:hover:not(:disabled),.profile-tabs button:hover:not(:disabled){background:var(--accent-soft);color:var(--text);text-decoration:none}button:focus-visible,a:focus-visible,[role=button]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.65}button,.file-upload-label{transition:color .18s ease,background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}button:before,button:after,.file-upload-label:before,.file-upload-label:after{pointer-events:none}[aria-label="Account details"]{scroll-margin-top:1.5rem}.announcement-thumb{display:block;max-width:210px;max-height:145px;object-fit:contain;border-radius:9px;border:1px solid var(--border);margin:.65rem 0;background:var(--surface-soft)}.announcement-full-image{display:block;max-width:min(100%,720px);max-height:500px;object-fit:contain;border-radius:10px;border:1px solid var(--border);margin:.8rem 0;background:var(--surface-soft)}.announcement-preview{padding:1rem;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft);overflow-wrap:anywhere}.announcement-preview h3{margin:.35rem 0}.announcement-preview p:last-of-type{white-space:pre-wrap}.audience-field{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;border:1px solid var(--border);border-radius:10px;padding:.75rem 1rem}.audience-field legend{color:var(--text);font-weight:700;padding:0 .25rem}.audience-field .check-label{display:flex;align-items:center;gap:.4rem;text-transform:capitalize}.session-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 0;border-top:1px solid var(--border)}.session-row small{display:block;color:var(--muted);margin-top:.25rem}@media(prefers-reduced-motion:reduce){.portal-header,.bell-panel,.avatar-menu,.confirm-dialog,.drawer-backdrop{transition:none}}.portal-footer{margin:0;border-top:1px solid var(--border);padding:1rem clamp(1rem,3vw,2rem);display:grid;justify-items:center;align-content:center;gap:.25rem;text-align:center;background:var(--surface);color:var(--muted)}.portal-footer p{margin:0;line-height:1.35}.portal-footer nav{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;margin:.3rem 0 0}.portal-footer a,.legal-shell a{color:var(--accent)}.legal-shell{min-height:100vh;display:flex;flex-direction:column;background:var(--page);color:var(--text)}.legal-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;background:var(--surface);border-bottom:1px solid var(--border)}.legal-header nav{display:flex;gap:1rem;flex-wrap:wrap}.legal-content{width:min(100%,850px);padding:clamp(1.5rem,4vw,3rem);margin:auto;line-height:1.65}.legal-content h1{font-size:clamp(2rem,4vw,3rem)}.legal-content section{margin:1.6rem 0}.legal-content section h2{font-size:1.15rem}.legal-shell>.portal-footer{margin-top:auto}.profile-tabs{display:flex;gap:.4rem;overflow-x:auto;border-bottom:1px solid var(--border);scrollbar-width:thin}.profile-tabs button{flex:0 0 auto;min-height:48px;padding:.7rem 1rem;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted);font-weight:700}.profile-tabs button[aria-selected=true]{border-color:var(--accent);color:var(--accent)}.profile-sections{max-width:860px}.profile-column{display:grid;gap:1.25rem;align-content:start}.profile-column>.panel,.profile-settings>.panel{max-width:760px}.profile-overview{max-width:760px}.profile-page .panel{padding:clamp(1.25rem,2vw,1.5rem)}.profile-page .stack-form{gap:1.1rem}.profile-page .detail-list div{grid-template-columns:minmax(110px,180px) minmax(0,1fr)}.schedule-export-actions{display:flex;flex-wrap:wrap;gap:.5rem;width:100%}.schedule-export-actions button{min-width:180px}.destructive{color:#a32626!important}.primary.destructive{background:#a32626;color:#fff!important}.primary.destructive:hover{background:#811c1c}.account-nav>a{display:flex;align-items:center;gap:.75rem;min-height:44px;padding:.7rem .85rem;color:var(--text);text-decoration:none;border-radius:9px}.account-nav>a:hover,.account-nav>a[aria-current=page]{background:var(--accent-soft)}.account-nav .eyebrow:not(:first-child){margin-top:.8rem}.legal-header{padding:1rem clamp(1rem,4vw,3rem)}.legal-brand{display:flex;align-items:center;gap:.7rem;font-weight:800;text-decoration:none;color:var(--text)!important}.legal-brand img{object-fit:contain;border-radius:50%;background:#fff}.legal-content{width:min(100%,1060px);margin:0 auto;padding:clamp(1rem,3vw,2.5rem)}.legal-title{padding:clamp(1.2rem,3vw,2rem);border-radius:16px;background:var(--accent-soft)}.legal-title h1{margin:.2rem 0 .5rem}.legal-title>p:last-of-type{max-width:70ch}.legal-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;font-size:.83rem;color:var(--muted)}.legal-notice{border:1px solid #d9c695;background:#fff8e6;color:#574820;border-radius:12px;padding:1rem 1.2rem;margin:1.25rem 0}.legal-notice p{margin:.4rem 0 0}.legal-toc{float:left;width:215px;margin:1.2rem 2rem 1rem 0;padding:1rem;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.legal-toc summary{display:none}.legal-toc nav,.legal-toc:not([open]) nav{display:grid;gap:.55rem}.legal-toc a{font-size:.86rem;text-decoration:none}.legal-document{max-width:70ch;margin:1.5rem 0 0 auto;line-height:1.7}.legal-document section{padding-bottom:1.2rem;border-bottom:1px solid var(--border);scroll-margin-top:1.5rem}.legal-section-number{color:var(--accent);font-family:DM Sans,sans-serif;font-size:.82rem;margin-right:.35rem}.legal-document>p{margin-top:1.5rem}.about-intro{display:flex;align-items:center;gap:1.5rem}.about-intro img{width:110px;height:110px;object-fit:contain;border-radius:50%;background:#fff}.about-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.about-sections .panel{min-width:0}.about-copy{white-space:pre-line;overflow-wrap:anywhere;line-height:1.65}.about-editor{max-width:800px}.about-page .inline-actions{flex-wrap:wrap}@media(max-width:760px){.legal-header{flex-wrap:wrap}.legal-toc{float:none;width:100%;margin:1rem 0}.legal-toc summary{display:list-item;cursor:pointer;font-weight:700}.legal-toc:not([open]) nav{display:none}.legal-toc nav{padding-top:.75rem}.legal-document{max-width:100%}.about-sections{grid-template-columns:1fr}.about-intro{align-items:flex-start}.about-intro img{width:80px;height:80px}}@media(max-width:430px){.legal-header nav{gap:.6rem}.legal-header nav a{font-size:.82rem}.about-intro{flex-direction:column}.schedule-export-actions button{width:100%}.record-row.account-card{flex-wrap:wrap}.record-row.account-card>.inline-actions{flex-wrap:wrap}.profile-tabs button{padding-inline:.8rem}}@media print{.legal-header nav,.legal-toc,.portal-footer{display:none!important}.legal-shell{background:#fff;color:#111}.legal-content{width:100%;padding:0}.legal-title{background:#fff;border-bottom:2px solid #075e49;border-radius:0}.legal-document{max-width:100%;margin:0}.legal-notice{background:#fff;border-color:#999}.legal-document section{break-inside:avoid}}.slot-grid{display:flex;flex-wrap:wrap;gap:.55rem}.slot-grid .secondary-button.selected{background:var(--accent-soft);border-color:var(--accent)}.slot-grid .secondary-button small{display:block;font-size:.7rem}.slot-grid .secondary-button:disabled{opacity:.55;cursor:not-allowed}.public-app{min-height:100dvh;display:flex;flex-direction:column}.public-app>.login-page,.public-app>div:has(>.login-page){flex:1;min-height:0}.public-app .login-page{min-height:calc(100dvh - 94px)}.public-app .login-form-wrap>footer{display:none}.public-app>.portal-footer{margin-top:auto}.appointment-row{padding:1rem 0;border-bottom:1px solid var(--border);display:grid;gap:.7rem}.appointment-row>div:first-child{min-width:0}.appointment-row span,.appointment-row small{display:block;color:var(--muted);overflow-wrap:anywhere}.appointment-row p{margin:.35rem 0}.appointment-row .primary{width:auto;margin:0}.file-upload{border:2px dashed var(--border);border-radius:12px;background:var(--surface-soft);padding:1rem;display:grid;gap:.55rem;min-width:0}.file-upload.dragging{border-color:var(--accent);background:var(--accent-soft)}.file-upload-label{display:inline-flex!important;align-items:center;gap:.55rem;justify-self:start;width:auto;min-height:44px;padding:.65rem .9rem;border-radius:9px;background:linear-gradient(110deg,#087f5b,#0d9a70);color:#fff!important;font-weight:700;cursor:pointer;position:relative}.file-upload-label:hover{background:linear-gradient(110deg,#066b4d,#087f5b)}.file-upload-label:focus-within{outline:3px solid var(--accent);outline-offset:3px}.file-upload-label input{position:absolute!important;width:1px!important;height:1px!important;opacity:0;overflow:hidden;padding:0!important;border:0!important}.file-upload p{margin:0!important;color:var(--muted)}.file-upload-selected{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;min-width:0}.file-upload-selected strong{overflow-wrap:anywhere}.file-upload-selected span{color:var(--muted)}.file-upload-preview{display:block;max-width:100%;max-height:240px;object-fit:contain}.file-upload progress{width:100%;accent-color:var(--accent)}.account-card>div:first-child{min-width:0}.account-avatar{width:2.75rem;height:2.75rem;object-fit:cover;border-radius:50%;border:1px solid var(--border);float:left;margin-right:.75rem}.account-detail-heading{display:flex;align-items:center;gap:.75rem;min-width:0}.account-detail-heading .account-avatar{width:3.25rem;height:3.25rem;float:none;margin:0;flex:none}:root{--focus-ring:#087f5b;--focus-halo:#d9f6e9;--focus-border:#087f5b}:root[data-resolved-theme=dark]{--focus-ring:#8fe6bd;--focus-halo:#194735;--focus-border:#8fe6bd}:where(input,select,textarea,button,a,[role=button]):focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}:where(input,select,textarea):focus,:where(input,select,textarea):focus-visible{border-color:var(--focus-border)!important;box-shadow:0 0 0 3px var(--focus-halo)!important}:where(input,select,textarea)[aria-invalid=true]{border-color:#c04343!important}:where(input,select,textarea)[aria-invalid=true]:focus,:where(input,select,textarea)[aria-invalid=true]:focus-visible{border-color:#c04343!important;outline-color:#c04343;box-shadow:0 0 0 3px #c0434333!important}.file-upload-label:focus-within{outline:3px solid var(--focus-ring);outline-offset:2px}:where(input,select,textarea){transition:border-color .18s ease,box-shadow .18s ease,color .18s ease,background-color .18s ease}.portal aside{overflow-y:auto}.portal aside nav{margin-top:1.35rem;gap:.15rem}.portal aside .nav-group{display:grid;gap:.1rem;margin-top:.75rem}.portal aside .nav-group .eyebrow{padding:.2rem .85rem;margin:0;color:var(--accent);font-size:.62rem;line-height:1.3;text-transform:uppercase}.portal aside nav a,.portal .logout{padding:.54rem .85rem;min-height:42px}.portal aside .account-nav{margin-top:.8rem}.dashboard-context{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}.dashboard-context .panel h2{font-family:DM Sans,sans-serif;font-size:1.1rem}.dashboard-context .panel h3{font-size:.9rem;margin:1.3rem 0 .6rem}.dashboard-context ul{margin:0;padding-left:1.2rem}.dashboard-context li{font-size:.83rem;line-height:1.55;margin:.45rem 0}.dashboard-context li small{display:block;color:var(--muted)}.dashboard-action-links{display:flex;flex-wrap:wrap;gap:.5rem}.dashboard-action-links a{border:1px solid var(--border);border-radius:8px;padding:.5rem .7rem;color:var(--accent);text-decoration:none;font-size:.82rem;font-weight:700}@media(max-width:800px){.dashboard-context{grid-template-columns:1fr}}.portal aside .logout{margin-top:.45rem;justify-content:center;gap:.65rem;border:1px solid var(--border);border-radius:12px;background:var(--surface);font-weight:750;box-shadow:0 2px 8px #0b3d2910;transition:background .18s,transform .18s,box-shadow .18s}.portal aside .logout:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 18px #0b3d2920}.portal aside .logout:focus-visible,.account-link a:focus-visible,.register-wrap .success-message a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.profile-tabs{border:0;padding:.25rem;background:var(--accent-soft);border-radius:14px;gap:.2rem;width:max-content;max-width:100%}.profile-tabs button{border:0!important;border-radius:10px;min-height:44px}.profile-tabs button[aria-selected=true]{background:var(--surface);color:var(--accent);box-shadow:0 2px 9px #0b3d291a}.account-link a:hover{text-decoration:none;background:var(--accent-soft)}.account-link a{display:inline-flex;padding:.22rem .45rem;border-radius:7px;transition:background .18s}.register-wrap .success-message{display:flex;align-items:flex-start;flex-wrap:wrap;gap:.65rem;padding:1.15rem;border-radius:16px;line-height:1.55}.register-wrap .success-message a{display:inline-flex;align-items:center;justify-content:center;margin-left:auto;padding:.62rem .9rem;border-radius:10px;background:var(--accent);color:#fff;text-decoration:none;font-weight:800;white-space:nowrap;transition:filter .18s,transform .18s}.register-wrap .success-message a:hover{filter:brightness(.92);transform:translateY(-1px)}.register-wrap .registration-success{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.85rem;background:var(--accent-soft);color:var(--text);border-color:var(--border)}.registration-success>svg{color:var(--accent);margin-top:.15rem}.registration-success strong{display:block;font-size:1.07rem}.registration-success p{margin:.35rem 0 1rem;line-height:1.6}.register-wrap .registration-success a{margin:0;width:max-content;max-width:100%;gap:.5rem}.about-page{display:grid;gap:1.25rem}.about-page .panel{padding:clamp(1.25rem,2.6vw,2rem)}.about-hero{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:clamp(1.5rem,4vw,3rem);border-radius:24px;color:#fff;background:linear-gradient(125deg,#064832,#087f5b 62%,#18a879);box-shadow:0 18px 40px #06483224;overflow:hidden}.about-hero .eyebrow{color:#b8f6db}.about-hero h2{font-family:Playfair Display,serif;font-size:clamp(2rem,4vw,3.65rem);line-height:1.08;max-width:16ch;letter-spacing:-.035em}.about-hero-copy>p:not(.eyebrow){max-width:72ch;line-height:1.75;color:#effff6}.about-hero-year{display:inline-flex;margin-top:.8rem;padding:.5rem .8rem;border:1px solid #ffffff66;border-radius:999px;font-weight:700;font-size:.82rem}.about-hero-seal{display:grid;justify-items:center;gap:.5rem;flex:0 0 auto}.about-hero-seal img{width:clamp(120px,17vw,210px);aspect-ratio:1;object-fit:contain;border-radius:50%;background:#fff;padding:.55rem}.about-hero-seal small{color:#e4ffef}.about-history{max-width:85ch}.about-history p:last-child,.about-statement p:last-child,.about-policy p,.about-value-grid p,.about-list,.about-source{line-height:1.75}.about-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.about-statement{border-top:4px solid var(--accent)}.about-statement p:last-child{font-size:1.04rem}.about-section>h2{font-size:1.7rem}.about-value-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.about-value-grid .panel{min-width:0}.about-initial{display:grid;place-items:center;width:2.4rem;height:2.4rem;background:var(--accent-soft);color:var(--accent);border-radius:10px;font-weight:900}.about-value-grid h3{margin:1rem 0 .45rem}.about-value-grid p{color:var(--muted);font-size:.9rem}.about-list{padding-left:1.4rem;margin-bottom:0}.about-list li{padding:.35rem 0}.about-list li::marker{color:var(--accent);font-weight:800}.about-program{display:flex;align-items:flex-start;gap:1rem;min-height:120px}.about-program span{font-size:1.5rem;color:var(--accent)}.about-program h3{font-size:1.05rem;line-height:1.5}.about-policy summary{cursor:pointer;font-size:1.05rem;font-weight:800;list-style-position:inside}.about-policy[open] summary{margin-bottom:1rem}.about-source{color:var(--muted);font-size:.82rem;max-width:95ch}.about-services .inline-actions a{text-decoration:none}.about-editor{max-width:100%}@media(max-width:900px){.about-value-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.about-hero{flex-direction:column-reverse;align-items:flex-start}.about-hero-seal{justify-items:start}.about-hero-seal img{width:90px}.about-card-grid,.about-value-grid{grid-template-columns:1fr}.register-wrap .success-message a{margin-left:0;width:100%}}@media(prefers-reduced-motion:no-preference){.about-page .panel{animation:about-rise .3s ease both}@keyframes about-rise{0%{opacity:.75;transform:translateY(7px)}to{opacity:1;transform:none}}}
