body.login-page{margin:0;min-height:100svh;padding:48px 24px;color:#080a2d;font-family:Plus Jakarta Sans,sans-serif;background:radial-gradient(ellipse at 25% 45%,#d7eaff 0,transparent 56%),radial-gradient(ellipse at 90% 60%,#d9ebff 0,transparent 55%),#f3faff}.login-page .login-card{width:100%;max-width:520px;padding:30px 34px 26px;border:1px solid #fff;border-radius:30px;background:#fffffff0;box-shadow:0 20px 64px #72abed30}.login-card>div:first-child{margin-bottom:26px;gap:14px}.login-card .login-brand-mark{width:64px;height:64px;border-radius:18px;object-fit:cover}.login-card strong{font-size:25px;line-height:1.3}.login-card small{font-size:16px;color:#5876ac}#openAdminModalBtn{display:flex;align-items:center;justify-content:center;gap:9px;padding:11px 16px;border:1px solid #93b6ff;background:transparent;color:#165dff;font-size:13px;white-space:nowrap}#openAdminModalBtn svg{position:static;width:20px;height:20px}.login-card h1{font-size:40px;line-height:1.2;letter-spacing:-1.8px;margin:0 0 10px}.login-card h1+p{color:#4b6aa6;font-size:17px;line-height:1.5;margin-bottom:20px}.login-page form>div:not(:last-child){margin-bottom:25px}.login-page label{color:#3d5d96;font-size:15px;margin-bottom:8px}.login-field{position:relative}.login-page .login-field input{box-sizing:border-box;width:100%;height:50px;padding:12px 46px 12px 48px;border:1px solid #9ebeff;border-radius:15px;background:linear-gradient(115deg,#f7faff,#eff6fd);color:#182b52;font:inherit;font-size:16px;outline:none}.login-page input::placeholder{color:#6a86bd;opacity:1}.login-page input:focus{background:#fff;border-color:#2463ff;box-shadow:0 0 0 4px #2463ff18}.login-field>.field-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:#405f99;width:22px;height:22px;pointer-events:none}.login-page #togglePassword,.login-page #toggleAdminPassword{position:absolute;right:12px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:36px;height:36px;border:0;padding:5px;background:transparent;color:#405f99;cursor:pointer}.login-page button:focus-visible{outline:3px solid #2b65ff;outline-offset:4px}.login-page .login-submit{min-height:52px;font-size:17px;gap:12px;transition:box-shadow .2s,background .2s}#teacherSubmitBtn{margin-top:3px;background:linear-gradient(110deg,#ffbd08,#ffb800);border:1px solid #ffd954;color:#151200;box-shadow:0 14px 26px #ffbc0933}#teacherSubmitBtn:hover{background:#f5ae00;box-shadow:0 14px 30px #ffbc0955}.login-card>form+p{display:flex;align-items:center;gap:18px;margin-top:28px;color:#7b98d1;font-size:16px}.login-card>form+p:before,.login-card>form+p:after{content:"";flex:1;height:1px;background:#d2e2ff}.login-card [data-school-year]{margin-top:10px;font-size:17px;color:#1763ff}.login-page #error,.login-page #adminError{color:#f02a3c;font-size:15px;line-height:1.5;margin:0 0 20px}#adminLoginModal{box-sizing:border-box;position:fixed;inset:0;margin:auto;width:500px;max-width:calc(100% - 32px);max-height:calc(100svh - 32px);border:1px solid #fff;border-radius:26px;padding:0;background:#fffffffa;color:#080a2d;box-shadow:0 24px 60px #507eb638}#adminLoginModal::backdrop{background:#c8e1ff18;backdrop-filter:blur(2px)}#adminLoginModal>div{padding:34px 35px}#adminLoginModal>div>div:first-child{align-items:flex-start;margin-bottom:27px}#adminLoginModal h2{font-size:30px;letter-spacing:-1.3px;padding-right:24px}#adminModalDescription{font-size:17px;line-height:1.5;color:#5876ac;margin-top:7px}#closeAdminModalBtn{position:absolute;right:23px;top:26px;width:42px;height:42px;border:1px solid #ccd8ec;background:#f1f4f7;color:#141823;font-size:25px;font-weight:400}#adminLoginModal .login-field input{font-size:16px}#adminLoginForm>div:last-child{gap:14px;padding-top:9px}#cancelAdminModalBtn{min-height:57px;background:#edf0f4;border:1px solid #cbd6e9;color:#101331;font-size:17px}#adminSubmitBtn{background:#205bff;border:1px solid #3b75ff;font-size:17px;box-shadow:0 12px 24px #1763ff30}#adminSubmitBtn:hover{background:#144be0}@media(min-width:1100px){body.login-page:has(#adminLoginModal[open]) .login-card{transform:translate(-80px)}#adminLoginModal[open]{left:min(calc(50% + 110px),calc(100% - 532px));right:auto;top:50%;bottom:auto;margin:0;transform:translateY(-50%)}}@media(max-width:600px){body.login-page{padding:24px 16px}.login-page .login-card{padding:27px 24px;border-radius:24px}.login-card .login-brand-mark{width:58px;height:58px;border-radius:17px}.login-card strong{font-size:22px}.login-card small{font-size:14px}#openAdminModalBtn{padding:10px 12px;font-size:12px;gap:5px}#openAdminModalBtn svg{width:18px;height:18px}.login-card>div:first-child{gap:8px;margin-bottom:30px}.login-card h1{font-size:36px;letter-spacing:-1.5px}.login-card h1+p{font-size:17px;margin-bottom:26px}.login-page .login-field input{font-size:16px}.login-card>form+p{font-size:12px;gap:12px}#adminLoginModal>div{padding:28px 24px}#adminLoginModal h2{font-size:26px}#adminModalDescription{font-size:15px;padding-right:12px}#adminSubmitBtn{font-size:14px}}@media(prefers-reduced-motion:reduce){.login-page .login-submit{transition:none}}#closeAdminModalBtn{display:grid;place-items:center;padding:0;line-height:1}#closeAdminModalBtn svg{display:block}#toggleAdminPassword .admin-eye-off,#toggleAdminPassword[aria-pressed=true] .admin-eye-open{display:none}#toggleAdminPassword[aria-pressed=true] .admin-eye-off{display:block}.login-cubes{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0}.login-page .login-card{position:relative;z-index:1}.floating-cube{--cube-top:#bfc8e2;--cube-left:#81a2c1;--cube-right:#a4b8d9;position:absolute;width:88px;height:98px;opacity:.5;filter:drop-shadow(0 18px 16px #81a2c126);animation:cube-drift 10s ease-in-out infinite}.floating-cube i{position:absolute;inset:0}.floating-cube i:nth-child(1){background:var(--cube-top);clip-path:polygon(50% 0,100% 25%,50% 50%,0 25%)}.floating-cube i:nth-child(2){background:var(--cube-left);clip-path:polygon(0 25%,50% 50%,50% 100%,0 75%)}.floating-cube i:nth-child(3){background:var(--cube-right);clip-path:polygon(50% 50%,100% 25%,100% 75%,50% 100%)}.floating-cube:nth-child(1){left:10%;top:18%;transform:rotate(-12deg)}.floating-cube:nth-child(2){right:12%;top:14%;width:58px;height:65px;animation-delay:-3s;--cube-top:#ffe5a0;--cube-left:#feb705;--cube-right:#ffd35c}.floating-cube:nth-child(3){left:19%;bottom:13%;width:52px;height:58px;animation-delay:-6s}.floating-cube:nth-child(4){right:8%;bottom:20%;width:112px;height:125px;animation-delay:-2s;opacity:.32}.floating-cube:nth-child(5){left:4%;top:56%;width:30px;height:34px;animation-delay:-7s;--cube-top:#ffe5a0;--cube-left:#feb705;--cube-right:#ffd35c}.floating-cube:nth-child(6){right:26%;bottom:6%;width:35px;height:39px;animation-delay:-4s;opacity:.3}@keyframes cube-drift{0%,to{translate:0 0;rotate:-8deg}50%{translate:8px -22px;rotate:6deg}}@media(max-width:700px){.floating-cube{opacity:.24}.floating-cube:nth-child(1){left:-28px;top:6%}.floating-cube:nth-child(4){right:-38px;bottom:5%}.floating-cube:nth-child(3),.floating-cube:nth-child(6){display:none}}.floating-cube{--cube-top:#27b6dc;--cube-left:#12a6cf;--cube-right:#0092b8;width:100px;height:112px;opacity:.8;filter:drop-shadow(0 14px 18px #2c3a4f0c);animation:unity-cube-bob 6.3s ease-in-out infinite,unity-cube-tilt 8.4s ease-in-out infinite}.floating-cube:nth-child(1){left:-32px;top:30%;width:150px;height:168px;transform:rotate(-14deg)}.floating-cube:nth-child(2){right:9%;top:10%;width:40px;height:45px;--cube-top:#27b6dc;--cube-left:#12a6cf;--cube-right:#0092b8}.floating-cube:nth-child(3){left:16%;bottom:9%;width:105px;height:118px;transform:rotate(16deg)}.floating-cube:nth-child(4){right:-28px;bottom:24%;width:128px;height:144px;opacity:.8;--cube-top:#ffbd08;--cube-left:#ff9d30;--cube-right:#ffad21;transform:rotate(-12deg)}.floating-cube:nth-child(5){left:22%;top:8%;width:32px;height:36px;opacity:.45;--cube-top:#ffce51;--cube-left:#ff9d30;--cube-right:#ffad21}.floating-cube:nth-child(6){right:23%;bottom:8%;opacity:.45}@keyframes unity-cube-bob{0%,to{translate:0 -16px}50%{translate:0 16px}}@keyframes unity-cube-tilt{0%,to{rotate:-7deg}50%{rotate:7deg}}@media(max-width:700px){.floating-cube{opacity:.45}.floating-cube:nth-child(1){left:-55px;top:20%;width:110px;height:124px}.floating-cube:nth-child(4){right:-50px;bottom:8%;width:110px;height:124px;opacity:.45}}@media(prefers-reduced-motion:reduce){.floating-cube{animation:none}}
