:root {
  --auth-primary: #d76f61;
  --auth-primary-dark: #b95348;
  --auth-navy: #26354d;
  --auth-muted: #7b8798;
  --auth-border: #e1e7ef;
}
body.bg-gradient-primary {
  min-height: 100vh;
  background:
    radial-gradient(circle at 15% 20%, rgba(215,111,97,.18), transparent 28%),
    radial-gradient(circle at 85% 80%, rgba(89,112,145,.18), transparent 30%),
    linear-gradient(135deg, #edf1f7 0%, #f9fafc 52%, #eef2f7 100%) !important;
  display: flex;
  align-items: center;
  font-family: Nunito, sans-serif;
}
body.bg-gradient-primary:before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  background-image: linear-gradient(rgba(38,53,77,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(38,53,77,.025) 1px, transparent 1px);
  background-size: 32px 32px;
}
body.bg-gradient-primary > .container { position: relative; z-index: 1; }
body.bg-gradient-primary .row.justify-content-center { justify-content: center !important; }
body.bg-gradient-primary .card {
  border: 1px solid rgba(255,255,255,.8) !important;
  border-radius: 20px;
  box-shadow: 0 22px 60px rgba(38,53,77,.14) !important;
  overflow: hidden;
  background: rgba(255,255,255,.96);
}
body.bg-gradient-primary .card .p-5 { padding: 2.7rem !important; }
body.bg-gradient-primary .text-center img { max-height: 82px; width: auto; margin-bottom: 18px; }
body.bg-gradient-primary h1 { color: var(--auth-navy) !important; font-weight: 800; letter-spacing: -.02em; }
body.bg-gradient-primary h1:after { content: ''; display: block; width: 38px; height: 3px; margin: 13px auto 24px; border-radius: 5px; background: var(--auth-primary); }
body.bg-gradient-primary .form-control-user {
  height: 52px;
  padding: .8rem 1.15rem !important;
  color: var(--auth-navy);
  background: #f8fafc;
  border: 1px solid var(--auth-border);
  border-radius: 11px !important;
  font-size: .9rem !important;
}
body.bg-gradient-primary .form-control-user:focus { background: #fff; border-color: var(--auth-primary); box-shadow: 0 0 0 4px rgba(215,111,97,.11); }
body.bg-gradient-primary .btn-primary {
  min-height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: linear-gradient(105deg, var(--auth-primary), #c45f54) !important;
  border: 0;
  border-radius: 11px !important;
  font-weight: 700;
  box-shadow: 0 9px 20px rgba(215,111,97,.24);
  transition: transform .18s ease, box-shadow .18s ease;
}
body.bg-gradient-primary .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 12px 25px rgba(215,111,97,.32); }
body.bg-gradient-primary hr { border-color: #edf0f4; margin: 1.7rem 0; }
body.bg-gradient-primary a { color: var(--auth-primary-dark); font-weight: 700; }
body.bg-gradient-primary .login_error { padding: 9px 12px; color: #c64e54 !important; background: #fff0f1; border-radius: 8px; font-size: .82rem; }
body.bg-gradient-primary .required_class { border-color: #d74f56 !important; box-shadow: 0 0 0 3px rgba(215,79,86,.1); }
@media (max-width: 576px) {
  body.bg-gradient-primary .card .p-5 { padding: 2rem 1.35rem !important; }
  body.bg-gradient-primary .card { border-radius: 16px; }
}
