:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:#0f172a;background:#f8fafc;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;min-width:100%}body{min-height:100vh}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;background:linear-gradient(135deg,#f8fafc,#eef2ff)}.card{background:#ffffffe0;border:1px solid rgba(148,163,184,.25);border-radius:18px;box-shadow:0 12px 30px #0f172a0f}input,select,textarea{width:100%;border:1px solid #cbd5e1;border-radius:12px;padding:.8rem .9rem;background:#fff;color:#0f172a}button{cursor:pointer}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}@media(max-width:720px){.grid-2{grid-template-columns:1fr}}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(420px,60%) 1fr;background:#f8fafc}.login-intro{min-height:100vh;display:flex;flex-direction:column;padding:3.6rem 5.7rem 3rem;color:#fff;background:linear-gradient(145deg,#03071c,color-mix(in srgb,var(--school-primary) 35%,#101b4e) 48%,color-mix(in srgb,var(--school-accent) 26%,#282d79));border-radius:0 0 24px 24px}.login-brand{display:flex;align-items:center;gap:1rem}.login-brand img{width:64px;height:64px;padding:.25rem;object-fit:contain;background:#fff;border-radius:10px}.login-brand strong{display:block;font-size:1.45rem;line-height:1.1}.login-brand span{display:block;margin-top:.35rem;font-size:.95rem}.login-brand-light{width:fit-content;padding:.9rem 1.25rem;border:1px solid rgba(151,181,255,.25);border-radius:18px;background:#ffffff14}.login-brand-light span{color:#adc7f0}.login-intro-copy{margin:auto 0;max-width:650px}.login-intro-copy h1{max-width:600px;margin:0;font-size:clamp(2.25rem,3.7vw,3.45rem);line-height:1.08;letter-spacing:-.02em}.login-intro-copy p{max-width:630px;margin:1.4rem 0 0;color:#c4d8ff;font-size:1.05rem;line-height:1.9}.login-intro-footer{margin:0;color:#adc7f0;font-size:.9rem}.login-form-side{display:flex;align-items:center;justify-content:center;padding:3rem}.login-form-wrap{width:min(100%,510px)}.login-brand-centered{display:grid;justify-items:center;gap:.65rem;margin-bottom:3rem;text-align:center}.login-brand-centered img{width:90px;height:90px;border:1px solid #c5dafe;border-radius:17px;box-shadow:0 8px 18px #2563eb1f}.login-brand-dark{color:#07122e}.login-brand-dark strong{font-size:2rem}.login-brand-dark span{color:#263b60;font-size:1rem}.login-form{padding:2.5rem 2.25rem 2.3rem;border:0;border-radius:18px;background:#fff;box-shadow:0 18px 30px #0f172a21}.login-field+.login-field{margin-top:1.45rem}.login-field label{display:block;margin-bottom:.65rem;color:#102550;font-size:.9rem;font-weight:600}.login-input-wrap{display:flex;align-items:center;gap:.7rem;min-height:56px;padding:0 .9rem;border:1px solid #c5d1e4;border-radius:10px;background:#eaf2ff;color:#91a5c2}.login-input-wrap:focus-within{border-color:#3670e7;box-shadow:0 0 0 3px #3670e724}.login-input-wrap input{min-width:0;padding:0;border:0;outline:0;background:transparent;color:#081532}.login-input-wrap input::placeholder{color:#081532;opacity:1}.login-input-wrap input:focus{box-shadow:none}.password-toggle{display:inline-flex;padding:.2rem;border:0;background:transparent;color:#8fa3bf}.login-submit{width:100%;margin-top:1.5rem;padding:1.05rem 1.2rem;border:0;border-radius:10px;background:linear-gradient(100deg,var(--school-primary),color-mix(in srgb,var(--school-primary) 72%,var(--school-accent)));color:#fff;font-weight:800;box-shadow:0 10px 18px color-mix(in srgb,var(--school-primary) 24%,transparent)}.login-submit:hover{filter:brightness(1.06)}.login-error{margin-top:1rem;padding:.75rem .9rem;border-radius:8px;background:#fff0f0;color:#b42318;font-size:.85rem}.login-copyright{margin:2rem 0 0;color:#54708f;text-align:center;font-size:.88rem}@media(max-width:900px){.login-page{display:block}.login-intro{min-height:auto;padding:2rem 1.5rem 2.5rem;border-radius:0 0 24px 24px}.login-intro-copy{margin:4rem 0 2rem}.login-intro-copy h1{font-size:2.4rem}.login-intro-copy p{line-height:1.65}.login-form-side{padding:2.75rem 1.25rem}.login-brand-centered{margin-bottom:2rem}}
