/* TSO v2.5.5 — branded WordPress password recovery screens and confirmation flow. */
body.login-action-lostpassword,
body.login-action-retrievepassword,
body.login-action-rp,
body.login-action-resetpass,
body.login-action-checkemail,
body.tso-password-reset-done {
  --tso-login-navy:#031a31;
  --tso-login-deep:#010d19;
  --tso-login-blue:#003087;
  --tso-login-gold:#ffd700;
  --tso-login-white:#fff;
  --tso-login-muted:#c9d6e5;
  min-height:100vh;
  margin:0;
  padding:34px 18px 24px;
  box-sizing:border-box;
  background:
    radial-gradient(circle at 15% 14%,rgba(255,215,0,.10),transparent 22%),
    radial-gradient(circle at 78% 26%,rgba(0,48,135,.52),transparent 36%),
    linear-gradient(145deg,#010d19 0%,#06233f 50%,#001c48 100%);
  background-attachment:fixed;
  color:#fff;
  font-family:Arial,Helvetica,sans-serif;
}
body.login-action-lostpassword *,
body.login-action-retrievepassword *,
body.login-action-rp *,
body.login-action-resetpass *,
body.login-action-checkemail *,
body.tso-password-reset-done *{box-sizing:border-box}

body.login-action-lostpassword:before,
body.login-action-retrievepassword:before,
body.login-action-rp:before,
body.login-action-resetpass:before,
body.login-action-checkemail:before,
body.tso-password-reset-done:before{
  content:"";
  position:fixed;
  inset:auto 0 0;
  height:42%;
  pointer-events:none;
  opacity:.16;
  background:
    linear-gradient(180deg,transparent,rgba(0,0,0,.72)),
    repeating-linear-gradient(165deg,transparent 0 46px,rgba(255,255,255,.04) 47px 48px);
}

body.login-action-lostpassword #login,
body.login-action-retrievepassword #login,
body.login-action-rp #login,
body.login-action-resetpass #login,
body.login-action-checkemail #login,
body.tso-password-reset-done #login{
  position:relative;
  z-index:2;
  width:min(1120px,100%);
  margin:0 auto;
  padding:28px 32px 30px;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);
  grid-template-areas:
    "intro mascot"
    "form mascot"
    "nav mascot"
    "back mascot";
  gap:0 48px;
  border:1px solid rgba(255,215,0,.42);
  border-radius:30px;
  overflow:hidden;
  background:linear-gradient(135deg,rgba(3,26,49,.97),rgba(0,48,135,.88));
  box-shadow:0 30px 90px rgba(0,0,0,.48);
}

body.login-action-lostpassword #login:after,
body.login-action-retrievepassword #login:after,
body.login-action-rp #login:after,
body.login-action-resetpass #login:after,
body.login-action-checkemail #login:after,
body.tso-password-reset-done #login:after{
  content:"";
  position:absolute;
  width:330px;
  height:330px;
  right:-100px;
  bottom:-170px;
  border-radius:50%;
  background:rgba(255,215,0,.06);
  pointer-events:none;
}

body.login-action-lostpassword #login > h1,
body.login-action-retrievepassword #login > h1,
body.login-action-rp #login > h1,
body.login-action-resetpass #login > h1,
body.login-action-checkemail #login > h1,
body.tso-password-reset-done #login > h1{display:none}

.tso-password-intro{grid-area:intro;padding:10px 2px 20px;align-self:start}
.tso-password-kicker{display:block;color:var(--tso-login-gold);font-size:.76rem;font-weight:900;letter-spacing:.16em;margin-bottom:8px}
.tso-password-intro h1{
  all:unset;
  display:block;
  color:#fff;
  font-size:clamp(2.1rem,4vw,4rem);
  font-weight:950;
  line-height:.98;
  letter-spacing:-.045em;
  margin-bottom:18px;
}
.tso-password-intro p{margin:0;color:#e8eef7;font-size:1.05rem;line-height:1.7;max-width:620px}

.tso-password-mascot{
  grid-area:mascot;
  align-self:end;
  min-height:520px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  position:relative;
  padding-top:0;
}
.tso-password-mascot img{display:block;width:min(440px,100%);height:auto;margin:auto auto -46px;filter:drop-shadow(0 24px 32px rgba(0,0,0,.30))}
.tso-password-thought{
  position:relative;
  max-width:330px;
  margin:0 0 -20px 20px;
  padding:18px 24px;
  border:4px solid #071d33;
  border-radius:44% 56% 49% 51% / 54% 48% 52% 46%;
  background:#fff;
  color:#071d33;
  font-size:clamp(1rem,2vw,1.45rem);
  line-height:1.12;
  font-weight:950;
  text-align:center;
  transform:rotate(-2deg);
  box-shadow:0 12px 30px rgba(0,0,0,.24);
  z-index:3;
}
.tso-password-thought:after,
.tso-password-thought:before{content:"";position:absolute;border:3px solid #071d33;background:#fff;border-radius:50%}
.tso-password-thought:after{width:20px;height:20px;left:42%;bottom:-30px}
.tso-password-thought:before{width:10px;height:10px;left:37%;bottom:-48px}

body.login-action-lostpassword #login form,
body.login-action-retrievepassword #login form,
body.login-action-rp #login form,
body.login-action-resetpass #login form{
  grid-area:form;
  margin:0;
  padding:24px;
  border:1px solid rgba(255,215,0,.26);
  border-radius:18px;
  background:rgba(1,13,25,.45);
  box-shadow:none;
}
body.login-action-checkemail #login form,
body.tso-password-reset-done #login form{display:none}

body.login-action-lostpassword #login form label,
body.login-action-retrievepassword #login form label,
body.login-action-rp #login form label,
body.login-action-resetpass #login form label{
  color:#fff;
  font-weight:850;
  font-size:.94rem;
}

body.login-action-lostpassword #login input[type="text"],
body.login-action-lostpassword #login input[type="email"],
body.login-action-retrievepassword #login input[type="text"],
body.login-action-retrievepassword #login input[type="email"],
body.login-action-rp #login input[type="text"],
body.login-action-rp #login input[type="password"],
body.login-action-resetpass #login input[type="text"],
body.login-action-resetpass #login input[type="password"]{
  width:100%;
  min-height:52px;
  margin:9px 0 18px;
  padding:10px 14px;
  border:2px solid rgba(255,215,0,.72);
  border-radius:11px;
  background:#fff;
  color:#071d33;
  box-shadow:none;
  font-size:1rem;
}
body.login-action-lostpassword #login input:focus,
body.login-action-retrievepassword #login input:focus,
body.login-action-rp #login input:focus,
body.login-action-resetpass #login input:focus{
  border-color:#fff;
  box-shadow:0 0 0 4px rgba(255,215,0,.22);
  outline:0;
}

body.login-action-lostpassword #login .button-primary,
body.login-action-retrievepassword #login .button-primary,
body.login-action-rp #login .button-primary,
body.login-action-resetpass #login .button-primary{
  min-height:50px;
  padding:0 24px;
  border:1px solid #ffd700;
  border-radius:999px;
  background:linear-gradient(180deg,#ffe94b,#ffd700);
  color:#071d33;
  font-size:.96rem;
  font-weight:950;
  text-shadow:none;
  box-shadow:0 7px 0 #b59800,0 12px 24px rgba(0,0,0,.20);
  transition:transform .18s ease,box-shadow .18s ease;
}
body.login-action-lostpassword #login .button-primary:hover,
body.login-action-retrievepassword #login .button-primary:hover,
body.login-action-rp #login .button-primary:hover,
body.login-action-resetpass #login .button-primary:hover{
  background:#fff;
  color:#071d33;
  border-color:#fff;
  transform:translateY(-2px);
  box-shadow:0 9px 0 #b59800,0 16px 28px rgba(0,0,0,.26);
}

body.login-action-lostpassword #login #nav,
body.login-action-retrievepassword #login #nav,
body.login-action-rp #login #nav,
body.login-action-resetpass #login #nav,
body.login-action-checkemail #login #nav,
body.tso-password-reset-done #login #nav{
  grid-area:nav;
  margin:20px 0 0;
  padding:0 4px;
  color:#c9d6e5;
}
body.login-action-lostpassword #login #backtoblog,
body.login-action-retrievepassword #login #backtoblog,
body.login-action-rp #login #backtoblog,
body.login-action-resetpass #login #backtoblog,
body.login-action-checkemail #login #backtoblog,
body.tso-password-reset-done #login #backtoblog{
  grid-area:back;
  margin:10px 0 0;
  padding:0 4px;
}
body.login-action-lostpassword #login #nav a,
body.login-action-lostpassword #login #backtoblog a,
body.login-action-retrievepassword #login #nav a,
body.login-action-retrievepassword #login #backtoblog a,
body.login-action-rp #login #nav a,
body.login-action-rp #login #backtoblog a,
body.login-action-resetpass #login #nav a,
body.login-action-resetpass #login #backtoblog a,
body.login-action-checkemail #login #nav a,
body.login-action-checkemail #login #backtoblog a,
body.tso-password-reset-done #login #nav a,
body.tso-password-reset-done #login #backtoblog a{
  color:#ffd700;
  font-weight:850;
  text-decoration:none;
}
body.login-action-lostpassword #login #nav a:hover,
body.login-action-lostpassword #login #backtoblog a:hover,
body.login-action-retrievepassword #login #nav a:hover,
body.login-action-retrievepassword #login #backtoblog a:hover,
body.login-action-rp #login #nav a:hover,
body.login-action-rp #login #backtoblog a:hover,
body.login-action-resetpass #login #nav a:hover,
body.login-action-resetpass #login #backtoblog a:hover,
body.login-action-checkemail #login #nav a:hover,
body.login-action-checkemail #login #backtoblog a:hover,
body.tso-password-reset-done #login #nav a:hover,
body.tso-password-reset-done #login #backtoblog a:hover{color:#fff}

body.login-action-lostpassword #login_error,
body.login-action-retrievepassword #login_error,
body.login-action-rp #login_error,
body.login-action-resetpass #login_error,
body.login-action-checkemail #login_error,
body.tso-password-reset-done #login_error,
body.login-action-lostpassword #login .message,
body.login-action-retrievepassword #login .message,
body.login-action-rp #login .message,
body.login-action-resetpass #login .message,
body.login-action-checkemail #login .message,
body.tso-password-reset-done #login .message{
  grid-column:1;
  margin:0 0 18px;
  padding:14px 16px;
  border:1px solid rgba(255,215,0,.4);
  border-left:5px solid #ffd700;
  border-radius:12px;
  background:rgba(255,255,255,.09);
  color:#fff;
  box-shadow:none;
}
body.login-action-lostpassword .language-switcher,
body.login-action-retrievepassword .language-switcher,
body.login-action-rp .language-switcher,
body.login-action-resetpass .language-switcher,
body.login-action-checkemail .language-switcher,
body.tso-password-reset-done .language-switcher{display:none}

.tso-password-footer{
  position:relative;
  z-index:2;
  width:min(1120px,100%);
  margin:16px auto 0;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:10px 20px;
  flex-wrap:wrap;
  color:#c9d6e5;
  font-size:.86rem;
  text-align:center;
}
.tso-password-footer strong{color:#ffd700;text-transform:uppercase;letter-spacing:.06em}
.tso-password-footer a{color:#fff;text-decoration:none;font-weight:800}
.tso-password-footer a:hover{color:#ffd700}

@media(max-width:820px){
  body.login-action-lostpassword,
  body.login-action-retrievepassword,
  body.login-action-rp,
  body.login-action-resetpass,
  body.login-action-checkemail,
  body.tso-password-reset-done{padding:16px 10px}
  body.login-action-lostpassword #login,
  body.login-action-retrievepassword #login,
  body.login-action-rp #login,
  body.login-action-resetpass #login,
  body.login-action-checkemail #login,
body.tso-password-reset-done #login{
    padding:20px;
    grid-template-columns:1fr;
    grid-template-areas:"intro" "mascot" "form" "nav" "back";
    border-radius:22px;
  }
  .tso-password-intro h1{font-size:2.45rem}
  .tso-password-mascot{min-height:0;padding:12px 0 28px}
  .tso-password-thought{font-size:1rem;max-width:260px;margin-bottom:-10px}
  .tso-password-mascot img{width:min(310px,78vw);margin:0 auto -30px}
}

@media(prefers-reduced-motion:reduce){
  body.login-action-lostpassword #login .button-primary,
  body.login-action-retrievepassword #login .button-primary,
  body.login-action-rp #login .button-primary,
  body.login-action-resetpass #login .button-primary{transition:none}
}


/* v2.5.4: WordPress reset success/errors must remain visible inside the TSO layout. */
.tso-password-core-message{
  grid-column:1;
  grid-row:auto;
  align-self:start;
}
.tso-password-core-message:empty{display:none}
.tso-password-core-message .message,
.tso-password-core-message #login_error{
  margin:0 0 18px !important;
}
.tso-password-core-message .message a,
.tso-password-core-message #login_error a{
  color:#ffd700 !important;
  font-weight:900;
}
.tso-password-core-message .message a:hover,
.tso-password-core-message #login_error a:hover{color:#fff !important}


/* v2.5.5 confirmation states */
.tso-password-signin-button{
  display:inline-flex;align-items:center;justify-content:center;min-height:52px;margin-top:26px;padding:0 28px;
  border:1px solid #ffd700;border-radius:999px;background:linear-gradient(180deg,#ffe94b,#ffd700);
  color:#071d33!important;text-decoration:none!important;font-weight:950;font-size:1rem;
  box-shadow:0 7px 0 #b59800,0 12px 24px rgba(0,0,0,.20);
  transition:transform .18s ease,box-shadow .18s ease;
}
.tso-password-signin-button:hover{transform:translateY(-2px);background:#fff;border-color:#fff;color:#071d33!important;box-shadow:0 9px 0 #b59800,0 16px 28px rgba(0,0,0,.26)}
body.tso-password-reset-done #login form,
body.tso-password-reset-done #login #nav,
body.tso-password-reset-done #login #backtoblog,
body.login-action-checkemail #login #nav,
body.login-action-checkemail #login #backtoblog,
body.tso-password-reset-done #login #backtoblog{display:none!important}

/* v2.5.7 explicit recovery status screens */
body.tso-password-check-email #login form,
body.tso-password-reset-done #login form{display:none!important}

body.tso-password-check-email #login #nav,
body.tso-password-check-email #login #backtoblog,
body.tso-password-reset-done #login #nav,
body.tso-password-reset-done #login #backtoblog{display:none!important}

.tso-password-signin-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  margin-top:24px;
  padding:0 24px;
  border:1px solid #ffd700;
  border-radius:999px;
  background:linear-gradient(180deg,#ffe94b,#ffd700);
  color:#071d33!important;
  font-weight:950;
  text-decoration:none!important;
  box-shadow:0 7px 0 #b59800,0 12px 24px rgba(0,0,0,.20);
}
.tso-password-signin-button:hover{background:#fff;border-color:#fff;transform:translateY(-2px)}

body.tso-password-reset-failed #login #login_error,
body.tso-password-reset-failed #login .message,
body.tso-password-reset-failed #login .notice{
  grid-column:1;
  margin:0 0 18px;
  border-left:4px solid #ffd700;
  border-radius:10px;
  background:#fff;
  color:#071d33;
}


/* v2.5.9 — TSO owns the recovery status copy. Do not show WordPress's duplicate
   "check your email ... login page" notice on the confirmation screen. */
body.tso-password-check-email #login > .message,
body.tso-password-check-email #login > #login_error,
body.tso-password-check-email #login > .notice {
  display:none !important;
}

/* Friendly presentation for a genuine password-reset error. */
body.tso-password-reset-failed #login #login_error {
  padding:16px 18px !important;
  line-height:1.55;
}
body.tso-password-reset-failed #login #login_error .tso-password-error-heading,
.tso-password-error-heading {
  display:inline-block;
  margin-bottom:5px;
  color:#071d33;
  font-weight:950;
}
body.tso-password-reset-failed #login #login_error a {
  color:#003087 !important;
  font-weight:900;
  text-decoration:underline;
  text-underline-offset:3px;
}
