/* ============================================================================
   login-refresh.css  —  Unified refreshed auth pages
   Applies to: login, register, forgot_password, reset_password
   Loaded ONLY on those 4 views, AFTER style.bundle.css, and REPLACES the old
   page styles (login.css / register.css / forgot_password.css) for them.
   Everything is scoped under .lp-auth so it cannot leak into the platform.

   Zoom note: these standalone pages do NOT load platform-fluid.css, so the
   platform's intentional html{zoom:.8} does not apply here. We pin html{zoom:1}
   so the auth pages render at 100% while the rest of the platform keeps .8.
   ============================================================================ */

html { zoom: 1; }
body { margin: 0; background: #1E3059; }

.lp-auth {
  --navy-900:#1E3059; --navy-700:#28406e; --accent:#00A1E4; --accent-soft:#E0F2F8;
  --ink-900:#1E3059; --ink-500:#5d6b85; --ink-300:#8a93a6; --line:#e4e8f0;
  --font:'General Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-family:var(--font); color:var(--ink-900);
  min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:radial-gradient(130% 120% at 50% 28%, #294071 0%, #1E3059 58%);
  padding:40px 20px;
}
.lp-auth, .lp-auth *{ box-sizing:border-box; }

/* ---- layout shell ---- */
.lp-stack{ position:relative; z-index:1; width:min(424px,100%); display:flex; flex-direction:column; align-items:center; }
.lp-stack--wide{ width:min(600px,100%); }
.lp-card{ width:100%; background:#fff; border-radius:22px; padding:40px 40px 34px; box-shadow:0 24px 70px rgba(8,16,40,.40); }
@media (max-width:600px){ .lp-card{ padding:30px 22px 26px; border-radius:18px; } }

/* ---- logo + heading ---- */
.lp-logo{ display:flex; justify-content:center; margin-bottom:24px; }
.lp-logo img{ max-width:225px; width:100%; height:auto; display:block; }
.lp-title{ margin:0; text-align:center; font-size:26px; font-weight:600; letter-spacing:-.01em; color:var(--ink-900); }
.lp-sub{ margin:9px 0 0; text-align:center; color:var(--ink-500); font-size:14.5px; line-height:1.5; }
.lp-form{ margin-top:24px; }

/* ---- fields ---- */
.lp-field{ position:relative; margin-bottom:13px; }
.lp-field .lp-ico{ position:absolute; left:15px; top:50%; transform:translateY(-50%); color:var(--ink-300); display:flex; pointer-events:none; }
.lp-field .lp-eye{ left:auto; right:14px; pointer-events:auto; cursor:pointer; }
.lp-auth .form-control{
  width:100%; height:52px !important; border:1.5px solid var(--line) !important; border-radius:12px !important;
  background:#fff !important; padding:0 16px 0 44px !important;
  font-family:var(--font); font-size:15px; color:var(--ink-900) !important; box-shadow:none !important;
  transition:border-color .15s, box-shadow .15s;
}
.lp-field.has-eye .form-control{ padding-right:44px !important; }
.lp-auth .form-control::placeholder{ color:var(--ink-300); opacity:1; }
.lp-auth .form-control:focus{
  outline:none; border-color:var(--accent) !important;
  box-shadow:0 0 0 3px var(--accent-soft) !important; background:#fff !important;
}

/* ---- register 2-column grid (keeps Bootstrap .row/.col-md-6) ---- */
.lp-auth .row{ margin-left:-7px; margin-right:-7px; }
.lp-auth .row > [class*="col-"]{ padding-left:7px; padding-right:7px; }
.lp-auth .form-group{ margin:0 0 13px; }
.lp-auth .form-group .lp-field{ margin-bottom:0; }

/* ---- forgot link ---- */
.lp-forgot{ text-align:right; margin:2px 0 20px; }
.lp-auth a#forgot_password, .lp-forgot a{
  color:var(--accent) !important; font-weight:500; font-size:13.5px;
  font-family:var(--font) !important; text-decoration:none; margin:0;
}
.lp-forgot a:hover{ text-decoration:underline; }

/* ---- primary button -> navy pill ---- */
.lp-auth .btn, .lp-auth input[type="submit"]{
  width:100%; height:54px; border:none !important; border-radius:999px !important;
  background:var(--navy-900) !important; color:#fff !important;
  font-family:var(--font) !important; font-weight:600; font-size:16px; cursor:pointer;
  box-shadow:none !important; transition:background .15s; margin-top:4px;
}
.lp-auth .btn:hover, .lp-auth input[type="submit"]:hover{ background:var(--navy-700) !important; }

/* ---- secondary links / alt actions ---- */
.lp-alt{ text-align:center; font-size:14px; color:var(--ink-500); margin-top:20px; }
.lp-auth a#signup_link, .lp-auth a#signin_link, .lp-alt a{
  color:var(--navy-900); font-weight:600; text-decoration:none; font-family:var(--font);
}
.lp-alt a:hover{ text-decoration:underline; }
.lp-alt .lp-guest{ display:inline-block; margin-bottom:6px; color:var(--accent); }

/* ---- divider ---- */
.lp-divider{ display:flex; align-items:center; gap:12px; margin:22px 0 16px; color:var(--ink-300); font-size:12px; }
.lp-divider::before, .lp-divider::after{ content:""; flex:1; height:1px; background:var(--line); }

/* ---- errors + alerts ---- */
.lp-err{ color:#D64545; font-size:13px; margin:6px 2px 0; text-align:left; }
.lp-auth [id$="_error"]{ display:block; color:#D64545; font-size:12.5px; margin:5px 2px 0; text-align:left; }
.lp-auth .alert{ border:none; border-radius:12px; padding:12px 16px; font-size:14px; margin-bottom:16px; }
.lp-auth .alert-success{ background:#E5F6EC; color:#1E7C4B; }
.lp-auth .alert-danger{ background:#FBE9E9; color:#B23636; }

/* ---- copyright ---- */
.lp-copy{ position:relative; z-index:1; margin-top:22px; color:rgba(255,255,255,.5); font-size:12px; letter-spacing:.02em; }
