/* ══════════════════════════════════════
   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: 16px !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: 44px !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: 18px !important;
  color: rgba(255,255,255,.55) !important;
  line-height: 1.7 !important;
  max-width: 320px;
  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: 34px !important;
  font-weight: 700 !important;
  color: #fff !important;
  letter-spacing: -.5px;
  line-height: 1;
}

.login_stat_label {
  font-size: 17px !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: 34px !important;
  font-weight: 700 !important;
  color: #0B1F4B !important;
  margin-bottom: 4px !important;
  letter-spacing: -.3px;
}

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

#mensajes { margin-bottom: 24px; }

/* Estilo base (asumimos éxito si no hay clase de error) */
#mensajes div, #mensajes p { 
  padding: 12px 16px; 
  border-radius: 8px; 
  background: rgba(16,185,129,0.05); 
  border: 1px solid rgba(16,185,129,0.2); 
  color: #059669; 
  font-weight: 600; 
  font-size: 15px;
  margin-bottom: 8px;
  display: block;
}

/* Sobreescribir si es un mensaje de error */
#mensajes .errorMessage, #mensajes .error-msg, #mensajes .error, #mensajes .error-message { 
  background: rgba(217,27,27,0.05) !important; 
  border: 1px solid rgba(217,27,27,0.2) !important; 
  color: #D91B1B !important; 
}

/* Clases explícitas de éxito (por si acaso) */
#mensajes .successMessage, #mensajes .success-msg, #mensajes .success, #mensajes .success-message, #mensajes .noticeMessage, #mensajes .notice { 
  background: rgba(16,185,129,0.05) !important; 
  border: 1px solid rgba(16,185,129,0.2) !important; 
  color: #059669 !important; 
}

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

.field_label {
  font-size: 18px !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: 18px !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: 19px !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: 17px !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; }
}
/* ══════════════════════════════════════
   Registro 2025 — Lado claro con formatos
════════════════════════════════════════ */
#registro_nuevo {
  display: grid !important;
  grid-template-columns: 1fr 1.2fr !important;
  min-height: 100vh !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
}

.reg_left {
  background: #F7F5F0 !important;
  padding: 52px 44px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  position: relative;
  overflow: hidden;
  min-height: 100vh;
  border-right: 1px solid #E5E2DA;
}

.reg_left::before {
  content: '';
  position: absolute;
  bottom: -80px; right: -80px;
  width: 280px; height: 280px;
  border-radius: 50%;
  background: rgba(217,27,27,.06);
  pointer-events: none;
}

/* Tarjetas de formatos */
.reg_formats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 20px;
  position: relative;
  z-index: 1;
}

.reg_fc {
  border-radius: 14px;
  height: 90px;
  display: flex;
  align-items: flex-end;
  padding: 10px 12px;
  transition: transform .2s;
}
.reg_fc:hover { transform: translateY(-2px); }

.reg_fc_fb  { background: #1877F2; }
.reg_fc_ig  { background: linear-gradient(135deg, #833ab4, #fd1d1d, #fcb045); }
.reg_fc_wa  { background: #25D366; }
.reg_fc_ppt { background: #C8902A; }

.reg_fc_badge {
  background: rgba(255,255,255,.25);
  border-radius: 5px;
  padding: 3px 8px;
  font-size: 11px;
  color: #fff;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

/* Stats */
.reg_stats {
  display: flex;
  gap: 20px;
  padding: 16px 0;
  border-top: 1px solid #E5E2DA;
  border-bottom: 1px solid #E5E2DA;
  margin-top: auto;
  margin-bottom: 20px;
  position: relative;
  z-index: 1;
}

.reg_stat_num {
  font-family: 'Sora', sans-serif;
  font-size: 24px;
  font-weight: 700;
  color: #0B1F4B;
  line-height: 1;
}

.reg_stat_label {
  font-size: 13px;
  color: #9CA3AF;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-top: 2px;
}

/* Testimonial */
.reg_testimonial {
  background: #fff;
  border-radius: 14px;
  padding: 18px 20px;
  border: 1px solid #E5E2DA;
  position: relative;
  z-index: 1;
}

.reg_stars {
  color: #F59E0B;
  font-size: 14px;
  letter-spacing: 1px;
  margin-bottom: 8px;
}

.reg_quote {
  font-size: 16px;
  color: #374151;
  line-height: 1.6;
  font-style: italic;
  margin-bottom: 12px;
}

.reg_author {
  display: flex;
  align-items: center;
  gap: 10px;
}

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

.reg_author_name {
  font-size: 15px;
  font-weight: 600;
  color: #0B1F4B;
}

.reg_author_sub {
  font-size: 12px;
  color: #9CA3AF;
}

.reg_right {
  background: #fff !important;
  padding: 44px 52px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  overflow-y: auto;
  min-height: 100vh;
}

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

#registro_nuevo .login_form_sub {
  font-size: 18px !important;
  color: #6B7280 !important;
  margin-bottom: 28px !important;
}

.reg_row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

#registro_nuevo .field_group { margin-bottom: 16px !important; }

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

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

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

.reg_check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 6px;
  margin-bottom: 4px;
}

.reg_check input[type="checkbox"] {
  width: 18px; height: 18px;
  flex-shrink: 0;
  margin-top: 2px;
  cursor: pointer;
  accent-color: #1A3C8F;
}

.reg_check_label {
  font-size: 16px;
  color: #6B7280;
  line-height: 1.6;
}

.reg_check_label a { color: #1A3C8F; text-decoration: none; }

#registro_nuevo .btn_primary {
  font-size: 19px !important;
  padding: 15px !important;
  background: #D91B1B !important;
  display: block !important;
}

.field_error { color: #D91B1B !important; font-size: 13px !important; font-weight: 600 !important; margin-top: 5px !important; min-height: 18px; }

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