.academy-auth{--auth-bg:#1b1032;--auth-surface:#291e40;--auth-text:#faf6ff;--auth-muted:#c6bbd8;--auth-accent:#ffd000;--auth-ink:#251500;--auth-border:#9688ab;--auth-line:#40344f;--auth-error:#ffbec9;color:var(--auth-text)}
.academy-auth .modal-dialog{max-width:480px;margin:28px auto;min-height:calc(100% - 56px)}
.academy-auth .modal-content{position:relative;background:var(--auth-bg);border:1px solid var(--auth-line);border-radius:28px;box-shadow:0 28px 90px rgba(0,0,0,.4);overflow:hidden;color:var(--auth-text)}
.academy-auth .academy-auth__close{position:absolute;top:16px;left:16px;z-index:2;display:grid;place-items:center;width:44px;height:44px;background:var(--auth-surface);color:var(--auth-muted);border:1px solid var(--auth-line);border-radius:50%;cursor:pointer;transition:background .18s ease}
.academy-auth__close svg{width:20px;height:20px}
.academy-auth__intro{text-align:center;padding:36px 32px 24px;background:radial-gradient(ellipse at top,rgba(123,78,190,.22),transparent 75%)}
.academy-auth__emblem{width:58px;height:58px;display:grid;place-items:center;margin:0 auto 20px;border:1px solid var(--auth-line);border-radius:18px;background:var(--auth-surface);color:var(--auth-accent)}
.academy-auth__emblem svg{width:32px;height:32px}
.academy-auth__eyebrow{display:block;color:var(--auth-accent);font-size:12px;font-weight:700;letter-spacing:.02em;margin-bottom:12px}
.academy-auth #academy-auth-title{color:var(--auth-text);font-size:28px;line-height:1.6;font-weight:900;margin:0 0 10px}
.academy-auth__intro p{color:var(--auth-muted);font-size:14px;line-height:2;margin:0}
.academy-auth .academy-auth__body{padding:0 32px 24px}
.academy-auth .login-box{padding:0!important;margin:0;border:0;background:transparent;color:var(--auth-text)}
.academy-auth .login-box label{font-size:14px;font-weight:600;color:var(--auth-text);margin-bottom:10px;text-align:start!important;line-height:1.8}
.academy-auth .login-box .form-group{margin-bottom:20px}
.academy-auth .login-box .form-control{height:54px;background:var(--auth-surface);color:var(--auth-text);border:1px solid var(--auth-border);border-radius:12px;padding:12px 16px;font-size:16px;box-shadow:none;transition:border-color .18s ease}
.academy-auth .login-box .form-control::placeholder{color:var(--auth-muted);opacity:1;font-size:14px}
.academy-auth .login-box .form-control:focus{border-color:var(--auth-accent);outline:2px solid var(--auth-accent);outline-offset:3px}
.academy-auth .login-box .btn-group{display:flex;width:100%;padding:5px;background:var(--auth-surface);border:1px solid var(--auth-line);border-radius:14px;gap:5px}
.academy-auth .login-box .btn-group .btn{flex:1;margin:0;padding:10px;border:0;border-radius:9px;color:var(--auth-muted);background:transparent;line-height:1.7;text-align:center!important;cursor:pointer}
.academy-auth .login-box .btn-group .btn.active{color:var(--auth-ink);background:var(--auth-accent);font-weight:800}
.academy-auth .login-box .btn-primary{min-height:54px;border:0;border-radius:12px;padding:12px 18px;background:var(--auth-accent);color:var(--auth-ink);font-weight:800;font-size:16px;line-height:1.8;box-shadow:none;transition:filter .18s ease}
.academy-auth .login-box .btn-primary:hover{filter:brightness(1.08)}
.academy-auth .login-box .btn-primary:disabled{opacity:.65}
.academy-auth .login-box .btn-link{color:var(--auth-accent);font-size:13px;min-height:44px;text-decoration:none;padding:8px 0}
.academy-auth .login-box .btn-link:disabled{color:var(--auth-muted)}
.academy-auth .login-box .otp-inputs{display:flex;justify-content:center;gap:10px;margin-top:14px;direction:ltr}
.academy-auth .login-box .otp-inputs input{width:calc((100% - 40px)/5);max-width:60px;height:60px;padding:4px;text-align:center;font-size:25px;font-weight:800;border-radius:12px;direction:ltr;margin:0}
.academy-auth .login-box .alert{display:none;margin:12px 0;padding:12px 16px;background:var(--auth-surface);border:1px solid var(--auth-error);border-radius:12px;color:var(--auth-error);font-size:13px;line-height:1.9}
.academy-auth .login-box .alert.show{display:block}
.academy-auth .login-box .hide{display:none!important}
.academy-auth :is(button,a,.btn):focus-visible{outline:2px solid var(--auth-accent);outline-offset:4px}
.academy-auth .login-box .btn-group .btn:focus-within{outline:2px solid var(--auth-accent);outline-offset:2px}
.academy-auth__footnote{display:flex;align-items:center;justify-content:center;gap:8px;padding:18px 24px;border-top:1px solid var(--auth-line);color:var(--auth-muted);font-size:12px;line-height:1.8;text-align:center}
.academy-auth__footnote svg{width:16px;height:16px;flex-shrink:0}
.academy-auth__signed-in{text-align:center;padding:16px;color:var(--auth-text)}
@media(max-width:520px){.academy-auth .modal-dialog{margin:16px;min-height:calc(100% - 32px)}.academy-auth__intro{padding:28px 22px 22px}.academy-auth .academy-auth__body{padding:0 22px 24px}.academy-auth #academy-auth-title{font-size:25px}.academy-auth .login-box .otp-inputs{gap:8px}.academy-auth .login-box .otp-inputs input{width:calc((100% - 32px)/5);height:54px}.academy-auth .academy-auth__close{top:12px;left:12px}}
@media(prefers-reduced-motion:reduce){.academy-auth,.academy-auth *{transition:none!important;animation:none!important}}
/* Keep the modal's field surfaces above the site's legacy global input rules. */
#login.academy-auth{--auth-input:#302442;--auth-input-focus:#392b4d;--auth-input-border:#a291b8;color-scheme:dark}
#login.academy-auth .login-box input.form-control,#login.academy-auth .login-box select.form-control{background:var(--auth-input)!important;color:var(--auth-text)!important;border:1px solid var(--auth-input-border)!important;border-radius:12px!important;box-shadow:inset 0 2px 5px rgba(0,0,0,.18)!important;caret-color:var(--auth-accent);transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease}
#login.academy-auth .login-box input.form-control:hover,#login.academy-auth .login-box select.form-control:hover{border-color:var(--auth-muted)!important}
#login.academy-auth .login-box input.form-control:focus,#login.academy-auth .login-box select.form-control:focus{background:var(--auth-input-focus)!important;border-color:var(--auth-accent)!important;outline:2px solid var(--auth-accent);outline-offset:3px;box-shadow:0 0 0 5px rgba(255,208,0,.09)!important}
#login.academy-auth .login-box input.form-control::placeholder{color:var(--auth-muted)!important;opacity:.85}
#login.academy-auth .login-box input.form-control:-webkit-autofill,#login.academy-auth .login-box input.form-control:-webkit-autofill:hover,#login.academy-auth .login-box input.form-control:-webkit-autofill:focus{-webkit-text-fill-color:var(--auth-text)!important;-webkit-box-shadow:0 0 0 1000px var(--auth-input) inset!important;caret-color:var(--auth-accent)}
#login.academy-auth .login-box select.form-control option{background:var(--auth-input);color:var(--auth-text)}
