:root{--auth-bg:#1f7cc1;--auth-bg-image:none;--auth-panel-bg:#f7f7f7;--auth-panel-border:#7e8ca7;--auth-text:#21242b;--auth-blue:#2c83c5;--auth-orange:#ffc768;--auth-line:#2c3548;--auth-input-border:#3f4654;--auth-shadow:0 14px 24px #0b142559}.auth-page{background-color:var(--auth-bg);background-image:var(--auth-bg-image);min-height:100dvh;color:var(--auth-text);font-family:var(--font-body);background-position:50%;background-repeat:no-repeat;background-size:cover;flex-direction:column;justify-content:center;align-items:center;gap:0;margin:0;padding:1.2rem 1.2rem .5rem;display:flex;overflow:hidden auto}.auth-tutor-page{justify-content:flex-start;padding-top:5.2rem}.auth-selector-page,.auth-student-page{justify-content:center;align-items:center;height:100dvh;min-height:0}.auth-selector-page .auth-shell,.auth-student-page .auth-shell{margin-top:0}.auth-brand{color:#fff;z-index:6;flex-direction:column;align-items:flex-start;line-height:1;display:flex;position:fixed;top:1.6rem;left:1.6rem}.auth-brand-title{letter-spacing:.02em;font-size:clamp(1.8rem,1.5vw + 1.2rem,2.6rem);font-weight:900}.auth-brand-subtitle{margin-top:.15rem;margin-left:3rem;font-size:clamp(.58rem,.3vw + .5rem,.75rem);font-weight:700}.auth-settings{color:#fff;cursor:pointer;z-index:6;background:0 0;border:0;border-radius:50%;width:3.2rem;height:3.2rem;padding:.35rem;position:fixed;top:1.4rem;right:1.8rem}.auth-settings svg{fill:currentColor;width:100%;height:100%;display:block}.auth-settings:hover{color:var(--auth-orange)}.auth-settings:focus-visible{outline-offset:3px;outline:3px solid #111827}.auth-shell{width:min(100%,620px)}.auth-banner-title{background:var(--auth-orange);text-align:center;width:min(94%,470px);font-family:var(--font-title);letter-spacing:.03em;color:#0e1117;border:3px solid #1f2f46;border-radius:14px;margin:0 auto 1rem;padding:.3rem .8rem .42rem;font-size:clamp(1.25rem,1.05vw + .8rem,2rem);font-weight:400}.auth-card{background:var(--auth-panel-bg);border:2px solid var(--auth-panel-border);width:min(100%,510px);box-shadow:var(--auth-shadow);border-radius:24px;margin:0 auto;padding:1.05rem 1.25rem}.auth-back-link{color:#2b3548;align-items:center;gap:.45rem;margin-bottom:.5rem;font-size:2rem;text-decoration:none;display:inline-flex}.auth-back-text{text-underline-offset:2px;font-size:1.2rem;font-weight:600;text-decoration:underline}.auth-back-icon{background:var(--auth-blue);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:2.2rem;height:2.2rem;display:inline-flex}.auth-back-icon svg{fill:currentColor;width:1.4rem;height:1.4rem}.auth-intro{text-align:center;font-family:var(--font-subtitle);color:#232936;margin:0 0 .8rem;font-size:clamp(1rem,.85vw + .62rem,1.36rem);font-weight:400}.auth-location{color:#222a39;text-align:center;background:#f6fbff;border:3px solid #2f82c6;border-radius:999px;width:fit-content;max-width:100%;margin:0 auto .95rem;padding:.24rem .8rem .29rem;font-size:clamp(.86rem,.38vw + .72rem,1.02rem);font-weight:600;line-height:1.2}.auth-location a{color:#2f82c6;text-underline-offset:2px;font-weight:800}.auth-error{color:#a12622;background:#ffefec;border:1px solid #e5887f;border-radius:10px;margin-bottom:.7rem;padding:.5rem .7rem;font-size:.92rem;font-weight:700}.auth-field{margin-bottom:.55rem}.auth-label{color:#1f2635;margin-bottom:.18rem;font-size:clamp(.8rem,.36vw + .66rem,1.02rem);font-weight:800;display:block}.auth-input{border:3px solid var(--auth-input-border);color:#1e2330;background:#fff;border-radius:8px;width:100%;min-height:2.6rem;padding:.58rem .75rem;font-size:clamp(.95rem,.45vw + .78rem,1.28rem)}.auth-input::placeholder{color:#686f7b}.auth-input-student-username{text-transform:uppercase}.auth-input:focus{border-color:#245f9b;outline:0;box-shadow:0 0 0 3px #245f9b2b}.auth-password-wrap{position:relative}.auth-input-password{background:#fff;padding-right:3rem}.auth-toggle-password{color:#2f3645;cursor:pointer;background:0 0;border:0;width:2rem;height:2rem;padding:0;position:absolute;top:50%;right:.55rem;transform:translateY(-50%)}.auth-toggle-password svg{fill:currentColor;width:100%;height:100%}.auth-toggle-password .eye-closed,.auth-toggle-password.is-visible .eye-open{display:none}.auth-toggle-password.is-visible .eye-closed{display:block}.auth-forgot-link{color:#272f40;text-underline-offset:2px;margin:.12rem 0 1rem;font-size:clamp(.85rem,.31vw + .72rem,1.03rem);font-weight:800;display:inline-block}.auth-button{background:var(--auth-blue);color:#fff;letter-spacing:.02em;cursor:pointer;border:3px solid #1f3857;border-radius:999px;width:min(100%,12.3rem);margin:0 auto 1rem;padding:.48rem 1.15rem .58rem;font-size:clamp(1.52rem,1.2vw + 1rem,2.2rem);font-weight:900;line-height:1;display:block}.auth-button:hover{background:#236ca5}.auth-divider{border:0;border-top:3px solid var(--auth-line);margin:.75rem 0}.auth-register-title{text-align:center;font-family:var(--font-subtitle);color:#272c39;margin:0;font-size:clamp(.95rem,.47vw + .77rem,1.22rem);font-weight:400}.auth-register-button{color:#fff;cursor:pointer;text-align:center;background:#2f7fbe;border:2px solid #235178;border-radius:999px;margin:.45rem auto .2rem;padding:.2rem .85rem;font-size:clamp(.95rem,.45vw + .7rem,1.24rem);font-weight:800;line-height:1;text-decoration:none;display:block}.auth-register-button:hover{background:#266da4}.auth-selector-actions{gap:.7rem;margin:.6rem 0 .9rem;display:grid}.auth-selector-button{letter-spacing:.01em;width:min(100%,21rem);margin:0 auto;padding:.58rem 1rem;font-size:clamp(1rem,.56vw + .8rem,1.3rem);font-weight:900}.auth-selector-page .auth-shell{width:min(100%,560px);transform:translateY(-1rem)}.auth-selector-page .auth-banner-title{letter-spacing:.02em;width:min(92%,190px);margin-bottom:.92rem;padding:.23rem .8rem .33rem;font-size:clamp(2rem,1vw + 1.6rem,2.35rem)}.auth-selector-card{border-radius:20px;width:min(100%,455px);padding:1.45rem 1.05rem 1.05rem}.auth-selector-page .auth-intro{margin:0 0 1.3rem;font-size:clamp(1.05rem,.5vw + .9rem,1.18rem);font-weight:400}.auth-selector-page .auth-selector-actions{gap:.62rem;margin:0 0 1.05rem}.auth-selector-page .auth-selector-button{width:min(100%,385px);font-family:var(--font-body);background:#2f7fba;border-width:3px;border-color:#213447;border-radius:6px;align-items:center;gap:.65rem;margin:0 auto;padding:.56rem .72rem;font-size:clamp(1.1rem,.5vw + .92rem,1.15rem);font-weight:500;display:flex}.auth-selector-page .auth-selector-button:hover{background:#2a74aa}.auth-selector-icon{color:#fff;flex:none;width:2.2rem;height:2rem}.auth-selector-icon svg{fill:currentColor;width:100%;height:100%}.auth-selector-page .auth-divider{border-top-width:2px;margin:.95rem 0 .75rem}.auth-selector-register-title{margin-bottom:.38rem;font-size:clamp(1.06rem,.48vw + .9rem,1.2rem)}.auth-selector-register-button{width:min(100%,190px);font-family:var(--font-body);text-underline-offset:2px;background:#2e82be;border-width:2px;border-color:#234f71;justify-content:center;align-items:center;gap:.32rem;margin:.35rem auto 0;padding:.28rem .78rem;font-size:clamp(1.04rem,.43vw + .88rem,1.15rem);font-weight:700;text-decoration:underline;display:flex}.auth-selector-register-icon{color:#fff;flex:none;width:1.45rem;height:1.45rem}.auth-selector-register-icon svg{fill:currentColor;width:100%;height:100%}.auth-tutor-page .auth-shell{width:min(100%,560px);margin-top:.2rem}.auth-tutor-page .auth-banner-title{width:min(92%,350px);margin-bottom:.95rem;padding:.25rem .75rem .34rem;font-size:clamp(1.45rem,.5vw + 1.25rem,1.78rem)}.auth-tutor-page .auth-card{border-radius:22px;width:min(100%,510px);margin-bottom:0;padding:.95rem 1.1rem .8rem}.auth-tutor-page .auth-back-link{margin-bottom:.65rem}.auth-tutor-page .auth-back-text{font-size:1.45rem;font-weight:700}.auth-tutor-page .auth-intro{font-family:var(--font-subtitle);margin:0 0 .7rem;font-size:clamp(1.3rem,.65vw + 1.08rem,1.72rem);font-weight:400}.auth-tutor-page .auth-location{background:#f7fcff;border-width:3px;margin-bottom:.95rem;padding:.25rem .86rem .28rem;font-size:clamp(.9rem,.32vw + .79rem,1.03rem)}.auth-tutor-page .auth-field{margin-bottom:.5rem}.auth-tutor-page .auth-label{margin-bottom:.2rem;font-size:clamp(.95rem,.42vw + .8rem,1.22rem)}.auth-tutor-page .auth-input{border-width:3px;min-height:3.25rem;padding:.58rem .72rem;font-size:clamp(1.02rem,.48vw + .85rem,1.38rem)}.auth-tutor-page .auth-input-password{background:#ffd9a3}.auth-tutor-page .auth-toggle-password{color:#1b1f2b}.auth-tutor-page .auth-forgot-link{margin:.08rem 0 1.05rem;font-size:clamp(.95rem,.32vw + .83rem,1.16rem);font-weight:900}.auth-tutor-page .auth-button{width:min(100%,11.8rem);font-family:var(--font-body);margin-bottom:.9rem;padding:.42rem 1.08rem .5rem;font-size:clamp(2rem,.95vw + 1.66rem,2.4rem);font-weight:700}.auth-tutor-page .auth-divider{border-top-width:3px;margin:.7rem 0}.auth-tutor-register-title{font-family:var(--font-subtitle);margin-bottom:.33rem;font-size:clamp(1.1rem,.45vw + .94rem,1.32rem);font-weight:400}.auth-tutor-register-button{width:min(100%,200px);font-family:var(--font-body);text-underline-offset:2px;justify-content:center;align-items:center;gap:.3rem;margin:.28rem auto .68rem;padding:.28rem .82rem;font-size:clamp(1.06rem,.42vw + .9rem,1.18rem);font-weight:700;text-decoration:underline;display:flex}.auth-divider-bottom{margin-top:0;margin-bottom:.45rem}.auth-tutor-page .auth-terms{color:#666b75;font-size:clamp(.92rem,.35vw + .79rem,1.05rem);line-height:1.32}.auth-tutor-page .auth-terms a{color:#666b75;font-weight:900}.auth-student-page .auth-shell{width:min(100%,560px)}.auth-student-page .auth-banner-title{width:min(92%,390px);margin-bottom:.95rem;padding:.25rem .8rem .34rem;font-size:clamp(1.34rem,.5vw + 1.16rem,1.65rem)}.auth-student-card{border-radius:22px;width:min(100%,455px);padding:.95rem 1.05rem 1rem}.auth-student-page .auth-back-link{gap:.28rem;margin-bottom:.5rem}.auth-student-page .auth-back-icon{color:#2f82c6;background:0 0;border-radius:0;width:1.75rem;height:1.75rem}.auth-student-page .auth-back-icon svg{width:100%;height:100%}.auth-student-page .auth-back-text{color:#202734;font-size:1.34rem}.auth-student-page .auth-location{margin-bottom:.85rem;padding:.24rem .84rem .28rem;font-size:clamp(.88rem,.31vw + .78rem,1rem)}.auth-student-field{margin-bottom:.72rem}.auth-student-page .auth-label{margin-bottom:.2rem;font-size:clamp(1.06rem,.37vw + .93rem,1.25rem)}.auth-student-page .auth-input{border-width:3px;min-height:3.35rem;padding:.58rem .68rem;font-size:clamp(1.04rem,.44vw + .88rem,1.25rem)}.auth-student-page .auth-input-student-code{background:#ffdca8;width:min(100%,310px);margin:0 auto;display:block}.auth-student-divider{border-top-width:3px;margin:.86rem 0 .98rem}.auth-student-intro{margin:0 0 .72rem;font-size:clamp(1.2rem,.55vw + 1.01rem,1.54rem)}.auth-student-join-button{letter-spacing:.01em;width:min(100%,260px);margin:.16rem auto 0;padding:.38rem 1rem .46rem;font-size:clamp(1.5rem,.56vw + 1.28rem,1.82rem)}.auth-student-join-button:disabled{color:#8eb6d6;cursor:not-allowed;background:#2f7fbe;border-color:#1f3857}.auth-visually-hidden{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.auth-terms{color:#5c616a;margin:0;font-size:clamp(.86rem,.3vw + .76rem,1.02rem);line-height:1.34}.auth-terms a{color:#5c616a;text-underline-offset:2px;font-weight:800;text-decoration-thickness:2px}.auth-remember{cursor:pointer;align-items:center;gap:.5rem;margin:.25rem 0 1rem;font-size:.95rem;font-weight:700;display:inline-flex}.auth-remember input{width:1.1rem;height:1.1rem}.auth-toggle-password:focus-visible,.auth-button:focus-visible,.auth-remember input:focus-visible{outline-offset:3px;outline:3px solid #111827}.auth-link-disabled{cursor:not-allowed;opacity:.75;text-decoration:underline}.auth-student-notice{text-align:center;color:#5c616a;margin:.2rem 0 .65rem;font-size:.92rem;font-weight:700}@media (width<=900px){.auth-brand-title{font-size:1.85rem}.auth-brand-subtitle{margin-left:2.15rem}.auth-settings{width:2.7rem;height:2.7rem}.auth-banner-title{font-size:clamp(1.34rem,3.8vw,1.9rem)}}@media (width<=640px){.auth-page{padding:5.5rem .6rem 1rem}.auth-selector-page,.auth-student-page{justify-content:center;align-items:center;height:auto;min-height:100dvh}.auth-selector-page .auth-shell,.auth-student-page .auth-shell{margin-top:0}.auth-brand{top:1rem;left:.8rem}.auth-settings{top:.95rem;right:.9rem}.auth-card{border-radius:18px;padding:.95rem .85rem 1rem}.auth-back-link{margin-bottom:.35rem}.auth-divider{margin:.58rem 0}.auth-tutor-page .auth-back-text{font-size:1.08rem}.auth-student-page .auth-back-text{font-size:1.02rem}}
