@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/PlusJakartaSans-400.woff2') format('woff2')}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/PlusJakartaSans-700.woff2') format('woff2')}
:root{--pf-v5-global--FontFamily--sans-serif:'Plus Jakarta Sans',sans-serif;--pf-v5-global--primary-color--100:#0D2063;--pf-v5-global--primary-color--200:#091847}
html,body{font-family:'Plus Jakarta Sans',sans-serif;background:#f6f7f9!important;color:#262b34}
body{background-image:none!important}.pf-v5-c-login__container{padding-top:35px;padding-bottom:35px}
#kc-header-wrapper{font-family:'Plus Jakarta Sans',sans-serif;font-size:20px;font-weight:700;color:#0D2063;text-transform:none;letter-spacing:-.03em;padding-top:15px;text-align:center}
#kc-header-wrapper:before{content:'';display:block;width:70px;height:85px;margin:0 auto 18px;background:url('../img/school-logo.png') center/contain no-repeat}
.pf-v5-c-login__main{border:1px solid #e6e2d8;border-top:4px solid #a8923a;border-radius:5px;box-shadow:0 8px 30px #0918470a}
h1,h2,#kc-page-title{font-family:'Plus Jakarta Sans',sans-serif!important;font-weight:700!important;color:#0D2063!important;letter-spacing:-.03em}
input{font-family:'Plus Jakarta Sans',sans-serif!important}#kc-login,#kc-register,#kc-reset-password,.pf-v5-c-button.pf-m-primary{background:#0D2063!important;border-color:#0D2063!important;color:#fff!important;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;border-radius:4px}
a{color:#0D2063}.pf-v5-c-login__footer{color:#78808e}#kc-info-wrapper{background:#faf8f0;border-color:#e5dbb5}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #a8923a;outline-offset:3px}

/* Match the Staff Access welcome page while retaining Keycloak's secure forms. */
html,body{min-height:100%;margin:0;color-scheme:light}
body#keycloak-bg{display:grid;grid-template-columns:42% 58%;min-height:100vh;background:#f5f5f5!important}
.school-brand{background:#0d2063;color:white;padding:44px 55px;display:flex;flex-direction:column;min-height:100vh;position:relative;overflow:hidden}
.school-brand-heading{display:flex;align-items:center;gap:15px;position:relative;z-index:1}
.school-brand-heading img{background:white;border-radius:4px;padding:4px;object-fit:contain}
.school-brand-heading strong{display:block;font-size:18px;font-weight:700;letter-spacing:-.4px}
.school-brand-heading small{display:block;font-size:10px;color:#ffffffb3;margin-top:7px;letter-spacing:1px;text-transform:uppercase}
.school-brand-message{margin:auto 0;max-width:390px;padding:60px 0;position:relative;z-index:1}
.school-eyebrow{font-size:10px;font-weight:700;letter-spacing:1.7px;color:#d8c990}
.school-brand-message h2{font-size:42px!important;line-height:1.18!important;letter-spacing:-.035em!important;color:white!important;margin:24px 0;font-weight:700!important}
.school-brand-message p{font-size:14px;line-height:1.9;color:#ffffffcc;margin:0 0 28px}
.school-systems{display:flex;flex-wrap:wrap;gap:9px}.school-systems span{border:1px solid #ffffff33;padding:8px 11px;border-radius:4px;font-size:11px}
.school-copyright{font-size:10px;line-height:1.8;color:#ffffff80}
.school-brand:after{content:'';position:absolute;width:450px;height:450px;border:1px solid #ffffff0d;border-radius:50%;bottom:-220px;right:-240px;pointer-events:none}
body>.pf-v5-c-login{min-height:100vh;background:none;padding:45px;display:flex;align-items:center;justify-content:center}
.pf-v5-c-login__container{display:block;width:100%;max-width:430px;padding:0;margin:0;grid-template-columns:none}
#kc-header{display:none}
.pf-v5-c-login__main{background:white;border:1px solid #eceef2;border-radius:6px;box-shadow:none;padding:33px;width:100%}
.pf-v5-c-login__main-header,.pf-v5-c-login__main-body,.pf-v5-c-login__main-footer{padding:0}
.pf-v5-c-login__main-header{margin-bottom:24px}
#kc-page-title{font-size:26px!important;color:#171b21!important;text-align:left;line-height:1.3}
.pf-v5-c-form{gap:20px}.pf-v5-c-form__label-text{font-size:12px;color:#39404c;font-weight:700}
.pf-v5-c-form-control{border-radius:4px;border-color:#d5dae2;background:white}
#kc-login{min-height:46px;font-size:13px;margin-top:4px}
#kc-form-options,.pf-v5-c-form__helper-text{font-size:12px;color:#78808e}
#kc-form-buttons{margin-top:20px}
@media(max-width:1100px){.school-brand{padding:40px}.school-brand-message h2{font-size:36px!important}body>.pf-v5-c-login{padding:30px}}
@media(max-width:760px){body#keycloak-bg{grid-template-columns:1fr}.school-brand{min-height:auto;padding:25px}.school-brand-heading img{width:40px;height:47px}.school-brand-heading strong{font-size:16px}.school-brand-message{padding:30px 0 0;margin:0;max-width:none}.school-brand-message h2{font-size:30px!important;margin:16px 0}.school-brand-message p{font-size:12px;margin-bottom:18px}.school-eyebrow{font-size:9px}.school-copyright{display:none}.school-systems{gap:6px}.school-systems span{font-size:10px;padding:6px 8px}body>.pf-v5-c-login{min-height:auto;padding:28px 18px;align-items:flex-start}.pf-v5-c-login__main{padding:25px}.pf-v5-c-login__container{max-width:440px}}

/* Complete form controls independently of PatternFly underline and dark-mode defaults. */
body .pf-v5-c-login__main{padding:40px;border:1px solid #e3e7ef;border-radius:14px;box-shadow:0 18px 55px #0d206309}
.school-form-eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:700;color:#968033;margin-bottom:16px}
#kc-page-title{font-size:27px!important;letter-spacing:-1px!important;line-height:1.3!important;margin:0}
.school-form-intro{font-size:13px;color:#747e90;line-height:1.7;margin:12px 0 0}
body .pf-v5-c-login__main-header{margin-bottom:30px}
body .pf-v5-c-form__group-label{padding-bottom:9px}
body .pf-v5-c-form__label-text{font-size:12px;font-weight:700;color:#33405a}
body .pf-v5-c-form-control{display:block!important;background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;--pf-v5-c-form-control--after--BorderBottomWidth:0}
body .pf-v5-c-form-control:before,body .pf-v5-c-form-control:after{display:none!important}
body .pf-v5-c-form-control>input{display:block;width:100%;height:49px;padding:0 14px!important;border:1px solid #ccd3e0!important;border-radius:7px!important;background:#fafbfd!important;color:#202c45!important;font-size:14px!important;box-shadow:none;outline:none!important;transition:border-color .15s,box-shadow .15s}
body .pf-v5-c-form-control>input:focus{border-color:#52679c!important;box-shadow:0 0 0 3px #0d206310;background:white!important}
body .pf-v5-c-form-control>input[aria-invalid=true]{border-color:#bd413c!important}
body .pf-v5-c-input-group{display:flex!important;position:relative;gap:0;background:none!important;border:none!important}
body .pf-v5-c-input-group__item.pf-m-fill{flex:1;min-width:0}
body .pf-v5-c-input-group__item:has([data-password-toggle]){position:absolute;right:5px;top:5px;bottom:5px;z-index:2}
body .pf-v5-c-input-group input{padding-right:48px!important}
body button[data-password-toggle]{height:39px!important;width:39px!important;min-width:39px!important;padding:0!important;display:grid;place-items:center;border:0!important;border-radius:5px!important;background:transparent!important;color:#68758d!important;box-shadow:none!important}
body button[data-password-toggle]:before,body button[data-password-toggle]:after{display:none!important}
body button[data-password-toggle]:hover{background:#eaf0f8!important;color:#0d2063!important}
body .pf-v5-c-form__helper-text{margin-top:14px}
body .pf-v5-c-helper-text{gap:12px;align-items:center}
body .pf-v5-c-check{display:inline-flex;align-items:center;gap:8px;grid-template-columns:none;margin:0}
body .pf-v5-c-check__input{width:15px;height:15px;margin:0;accent-color:#0d2063}
body .pf-v5-c-check__label{font-size:12px!important;color:#536079!important;line-height:1.5}
body .pf-v5-c-helper-text__item-text a{font-size:12px;font-weight:600;color:#0d2063;text-decoration:none}
body .pf-v5-c-helper-text__item-text a:hover{text-decoration:underline}
body #kc-login{height:48px;min-height:48px;border-radius:7px!important;background:#0d2063!important;border:1px solid #0d2063!important;font-size:13px;font-weight:700;box-shadow:0 4px 10px #0d206315;transition:background .15s,transform .15s}
body #kc-login:hover{background:#192f78!important;transform:translateY(-1px)}
body #kc-login:before,body #kc-login:after{display:none!important}
body .pf-v5-c-form__actions{padding-top:5px}
body .pf-v5-c-login__main-footer:empty{display:none}
@media(max-width:760px){body .pf-v5-c-login__main{padding:28px 24px;border-radius:10px}#kc-page-title{font-size:25px!important}.school-form-intro{font-size:12px}.school-form-eyebrow{font-size:9px}body .pf-v5-c-check__label,body .pf-v5-c-helper-text__item-text a{font-size:11px!important}}
body .pf-v5-c-login__main-header{display:block!important}

/* Shared controls across sign in, recovery, password setup and identity messages. */
body .pf-v5-c-login__main .pf-v5-c-button.pf-m-primary{min-height:48px;padding:12px 20px;border:1px solid #0d2063!important;border-radius:7px!important;background:#0d2063!important;color:white!important;font-family:inherit;font-size:13px;font-weight:700;line-height:1.5;box-shadow:0 4px 10px #0d206315;transition:background .15s}
body .pf-v5-c-login__main .pf-v5-c-button.pf-m-primary:hover{background:#192f78!important}
body .pf-v5-c-login__main .pf-v5-c-button:before,body .pf-v5-c-login__main .pf-v5-c-button:after{display:none!important}
body .pf-v5-c-login__main .pf-v5-c-button.pf-m-secondary{padding:12px 20px;min-height:48px;border:1px solid #ccd3e0;border-radius:7px;background:white;color:#0d2063;font-size:13px;font-weight:700}
body .pf-v5-c-login__main .pf-v5-c-button.pf-m-link{display:inline-flex;justify-content:center;align-items:center;gap:7px;min-height:40px;padding:8px 0;background:transparent;color:#0d2063;font-size:12px;font-weight:600;text-decoration:none}
body .pf-v5-c-login__main .pf-v5-c-button.pf-m-link:hover{text-decoration:underline}
body .pf-v5-c-login__main .pf-v5-c-form__actions{display:flex;flex-direction:column;gap:12px;align-items:stretch;margin-top:4px}
body #kc-form-buttons{margin-top:0}
body #kc-info{margin:24px 0 0;padding:0;background:transparent;border:0}
body #kc-info-wrapper{margin:0;padding:16px;background:#f7f8fc;border:1px solid #e4e8f0;border-radius:7px;font-size:12px;line-height:1.8;color:#66738b}
body .pf-v5-c-login__main-footer{margin:0;background:transparent}
body .pf-v5-c-login__main-footer-band{background:transparent;padding:0;margin:0}
body .pf-v5-c-login__main-footer-helper-text,body .instruction,body #kc-info-message,body #kc-error-message{font-size:13px;line-height:1.8;color:#66738b}
body .pf-v5-c-login__main a{color:#0d2063}
body .pf-v5-c-login__main a:focus-visible,body .pf-v5-c-login__main button:focus-visible{outline:2px solid #a8923a;outline-offset:3px}
body .pf-v5-c-alert{border:1px solid #dce4ef;border-radius:7px;background:#f1f5fc;color:#33496c;padding:14px;margin:0 0 20px;font-size:12px;line-height:1.7;box-shadow:none}
body .pf-v5-c-alert.pf-m-danger{background:#fff3f2;border-color:#f1cfcc;color:#a13227}
body .pf-v5-c-alert.pf-m-warning{background:#fff9ec;border-color:#e9ddb8;color:#796120}
body .pf-v5-c-alert.pf-m-success{background:#eef7ef;border-color:#cfe3d2;color:#2e5f38}
body .pf-v5-c-helper-text__item.pf-m-error,body .pf-v5-c-helper-text__item.pf-m-error .pf-v5-c-helper-text__item-text{font-size:12px;color:#a13227}
body .pf-v5-c-login__main .pf-v5-c-content,body .pf-v5-c-login__main .pf-v5-c-content p{font-size:13px;line-height:1.8;color:#66738b}
body .pf-v5-c-login__main .pf-v5-c-form__actions{margin-left:0;margin-right:0;width:100%}
body .pf-v5-c-login__main .pf-v5-c-form__actions>.pf-v5-c-button{width:100%;margin:0;box-sizing:border-box}
@media(max-width:760px){body#keycloak-bg{grid-template-rows:auto auto!important;align-content:start}.school-brand{height:auto!important;overflow:visible;flex-shrink:0}.school-brand-message{flex-shrink:0}.school-brand:after{display:none}}

/* Identity forms use the same custom check and select treatment as the portal. */
body .pf-v5-c-check__input{appearance:none;display:inline-grid;place-content:center;flex-shrink:0;width:17px;height:17px;border:1px solid #aeb9cd;border-radius:4px;background:white;cursor:pointer}
body .pf-v5-c-check__input:checked{background:#0d2063;border-color:#0d2063}
body .pf-v5-c-check__input:checked:after{content:'';width:8px;height:4px;border:solid white;border-width:0 0 2px 2px;transform:rotate(-45deg);margin-top:-2px}
body .pf-v5-c-check__input:focus-visible{outline:2px solid #a8923a;outline-offset:3px}
body .pf-v5-c-login__main select{appearance:none;min-height:45px;border:1px solid #ccd3e0;border-radius:7px;background:#fafbfd;color:#202c45;padding:10px 14px;font:inherit}
@supports(appearance:base-select){body .pf-v5-c-login__main select,body .pf-v5-c-login__main select::picker(select){appearance:base-select}body .pf-v5-c-login__main select::picker(select){padding:5px;border:1px solid #dce2ed;border-radius:8px;background:white;box-shadow:0 12px 30px #0d206319}body .pf-v5-c-login__main option{padding:10px 12px;border-radius:5px}body .pf-v5-c-login__main option:checked,body .pf-v5-c-login__main option:hover{background:#edf0f8;color:#0d2063}}
@media(forced-colors:active){body .pf-v5-c-check__input{appearance:auto}}
/* Flat identity screens share the portal's border and focus treatment. */
*,*::before,*::after{box-shadow:none!important;text-shadow:none!important}
body .pf-v5-c-form-control>input:focus{outline:2px solid #52679c!important;outline-offset:2px}
body .pf-v5-c-login__main select::picker(select){box-shadow:none!important}
