:root{
  --rr-bg: #f6f8fb;
  --rr-card: #ffffff;
  --rr-border: #e8edf3;
  --rr-text: #1f2937;
  --rr-muted: #6b7280;
  --rr-primary: #0d6efd;
  --rr-primary-soft: rgba(13,110,253,.10);
  --rr-success: #198754;
  --rr-danger: #dc3545;
  --rr-shadow: 0 16px 40px rgba(15, 23, 42, 0.08);
  --rr-radius: 22px;
}

body.reset-request-page{
  min-height: 100vh;
  background:
    radial-gradient(circle at top left, rgba(13,110,253,.08), transparent 28%),
    radial-gradient(circle at top right, rgba(25,135,84,.06), transparent 22%),
    var(--rr-bg);
  color: var(--rr-text);
}

.reset-shell{
  width: 100%;
  max-width: 760px;
  margin: 0 auto;
  padding: 24px 0;
}

.reset-brand{
  text-align: center;
}

.reset-logo{
  display: flex;
  justify-content: center;
  align-items: center;
}

.reset-logo-fallback{
  width: 74px;
  height: 74px;
  border-radius: 22px;
  display: grid;
  place-items: center;
  font-size: 2rem;
  color: #0b5ed7;
  background:
    radial-gradient(circle at 30% 25%, rgba(255,255,255,.9), rgba(255,255,255,0) 42%),
    linear-gradient(135deg, #e8f1ff 0%, #cfe2ff 48%, #b6d4fe 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.35),
    0 14px 26px rgba(15, 23, 42, 0.10);
}

.reset-title{
  font-weight: 800;
  letter-spacing: -.02em;
  color: var(--rr-text);
}

.reset-subtitle{
  color: var(--rr-muted);
  font-size: .98rem;
  max-width: 560px;
  margin: 0 auto;
}

.reset-card{
  border: 1px solid var(--rr-border);
  border-radius: var(--rr-radius);
  background: var(--rr-card);
  box-shadow: var(--rr-shadow);
  overflow: hidden;
}

.reset-request-page .form-label{
  color: var(--rr-text);
}

.reset-request-page .form-control{
  min-height: 54px;
  border-radius: 14px;
  border: 1px solid #d9e2ec;
  box-shadow: none;
}

.reset-request-page .form-control:focus{
  border-color: rgba(13,110,253,.45);
  box-shadow: 0 0 0 .2rem rgba(13,110,253,.12);
}

.form-help{
  font-size: .9rem;
  color: var(--rr-muted);
}

.reset-submit{
  min-height: 52px;
  font-weight: 700;
  box-shadow: 0 12px 24px rgba(13,110,253,.18);
}

.reset-footer{
  color: var(--rr-muted);
  font-size: .9rem;
}

.reset-request-page .alert{
  border-radius: 18px;
}

@media (max-width: 767.98px){
  .reset-shell{
    padding-top: 8px;
  }

  .reset-card .card-body{
    padding: 22px 18px !important;
  }

  .reset-logo-fallback{
    width: 64px;
    height: 64px;
    border-radius: 18px;
    font-size: 1.7rem;
  }

  .reset-title{
    font-size: 1.7rem;
  }
}