/* ══════════════════════════════════════
   RE/MAX Design — Login 2025
   Basado en mockup exacto
════════════════════════════════════════ */

* { box-sizing: border-box; }

#rx_nav { display: none !important; }

#pagina {
  margin: 0;
  padding: 0;
  min-height: 100vh;
}

#rx_main {
  padding: 0 !important;
  margin: 0 !important;
}

#registro.section {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  min-height: 100vh !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  text-align: left !important;
}

/* ── Panel izquierdo navy ── */
.login_left {
  background: #0B1F4B !important;
  padding: 56px 52px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  position: relative;
  overflow: hidden;
  text-align: left;
  min-height: 100vh;
}

.login_left::before {
  content: '';
  position: absolute;
  top: -80px; right: -80px;
  width: 320px; height: 320px;
  border-radius: 50%;
  background: rgba(217,27,27,.1);
  pointer-events: none;
}

.login_left::after {
  content: '';
  position: absolute;
  bottom: -60px; left: -60px;
  width: 250px; height: 250px;
  border-radius: 50%;
  background: rgba(255,255,255,.03);
  pointer-events: none;
}

/* Brand top */
.login_brand {
  display: flex !important;
  align-items: center;
  gap: 12px;
  position: relative;
  z-index: 1;
}

.login_brand_badge {
  width: 48px !important;
  height: 48px !important;
  background: #D91B1B !important;
  border-radius: 12px !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  font-family: 'Sora', sans-serif !important;
  font-size: 21px !important;
  font-weight: 700 !important;
  color: #fff !important;
  flex-shrink: 0;
}

.login_brand_name {
  font-family: 'Sora', sans-serif !important;
  font-weight: 700 !important;
  font-size: 23px !important;
  color: #fff !important;
  line-height: 1.1;
}

.login_brand_sub {
  font-size: 15px !important;
  color: rgba(255,255,255,.4) !important;
  font-weight: 300;
  margin-top: 2px;
}

/* Hero medio */
.login_hero {
  position: relative;
  z-index: 1;
}

.login_hero_title {
  font-family: 'Sora', sans-serif !important;
  font-size: 40px !important;
  font-weight: 700 !important;
  color: #fff !important;
  line-height: 1.2 !important;
  margin-bottom: 14px !important;
  letter-spacing: -.4px !important;
  text-align: left !important;
}

.login_hero_desc {
  font-size: 17px !important;
  color: rgba(255,255,255,.55) !important;
  line-height: 1.7 !important;
  text-align: left;
  margin: 0;
  display: block;
}

/* Stats abajo */
.login_stats {
  display: flex !important;
  gap: 36px !important;
  position: relative;
  z-index: 1;
}

.login_stat_num {
  font-family: 'Sora', sans-serif !important;
  font-size: 30px !important;
  font-weight: 700 !important;
  color: #fff !important;
  letter-spacing: -.5px;
  line-height: 1;
}

.login_stat_label {
  font-size: 13px !important;
  color: rgba(255,255,255,.4) !important;
  text-transform: uppercase;
  letter-spacing: .1em;
  margin-top: 2px;
}

/* ── Panel derecho blanco ── */
.login_right {
  background: #fff !important;
  padding: 56px 52px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  text-align: left;
  min-height: 100vh;
}

.login_form_title {
  font-family: 'Sora', sans-serif !important;
  font-size: 30px !important;
  font-weight: 700 !important;
  color: #0B1F4B !important;
  margin-bottom: 4px !important;
  letter-spacing: -.3px;
}

.login_form_sub {
  font-size: 17px !important;
  color: #6B7280 !important;
  margin-bottom: 36px !important;
}

#mensajes { display: none; }

.field_group { margin-bottom: 20px !important; }

.field_label {
  font-size: 17px !important;
  font-weight: 600 !important;
  color: #0B1F4B !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  margin-bottom: 8px !important;
  display: block !important;
}

.field_input {
  width: 100% !important;
  border: 1.5px solid #E5E2DA !important;
  border-radius: 11px !important;
  padding: 13px 16px !important;
  font-size: 17px !important;
  font-family: 'DM Sans', sans-serif !important;
  color: #1A1A2E !important;
  background: #FAFAF8 !important;
  transition: all .2s !important;
  outline: none !important;
  display: block !important;
}

.field_input:focus {
  border-color: #1A3C8F !important;
  background: #fff !important;
  box-shadow: 0 0 0 3px rgba(26,60,143,.08) !important;
}

.field_input::placeholder { color: #C4C0B8 !important; }

.btn_primary {
  width: 100% !important;
  background: #D91B1B !important;
  color: #fff !important;
  border: none !important;
  border-radius: 11px !important;
  padding: 15px !important;
  font-family: 'Sora', sans-serif !important;
  font-size: 17px !important;
  font-weight: 600 !important;
  cursor: pointer;
  letter-spacing: .03em;
  margin-top: 8px !important;
  transition: all .2s;
  box-shadow: 0 4px 14px rgba(217,27,27,.3);
  display: block !important;
}

.btn_primary:hover {
  background: #F03535 !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(217,27,27,.38);
}

.login_links {
  display: flex !important;
  justify-content: space-between !important;
  margin-top: 18px !important;
}

.login_links a {
  font-size: 16px !important;
  color: #1A3C8F !important;
  text-decoration: none;
  transition: opacity .15s;
}

.login_links a:hover { opacity: .7; }

@media (max-width: 768px) {
  #registro.section { grid-template-columns: 1fr !important; }
  .login_left { display: none !important; }
  .login_right { padding: 48px 28px !important; min-height: 100vh; }
}