/* Reparacionmovil – Auth portal v1.3.1 (single column) */



:root {

  --rpm-auth-blue: #0b69f6;

  --rpm-auth-blue-dark: #0954c5;

  --rpm-auth-ink: #0f172a;

  --rpm-auth-muted: #64748b;

  --rpm-auth-line: #e2e8f0;

  --rpm-auth-ease: cubic-bezier(0.22, 1, 0.36, 1);

}



body#authentication,
body#module-repairphone_google-register,
body.rpm-auth-page-active {

  background: #f1f5f9;

}



body#authentication .wrapper,
body#module-repairphone_google-register .wrapper,
body.rpm-auth-page-active .wrapper {

  background: transparent;

}



.rpm-auth-page {

  max-width: 100% !important;

  width: 100%;

  padding-left: 0 !important;

  padding-right: 0 !important;

}



.rpm-auth-page .page-content--general {

  padding-top: 0;

  padding-bottom: 0;

}



.rpm-auth-page #center-column.page--full-width {

  padding-left: 0;

  padding-right: 0;

}



/* Portal */

.rpm-auth-portal {

  position: relative;

  overflow: hidden;

  padding: clamp(1.25rem, 3vw, 2.5rem) 0 clamp(2rem, 4vw, 3rem);

}



.rpm-auth-portal__bg {

  position: absolute;

  inset: 0;

  pointer-events: none;

  background:

    radial-gradient(ellipse 70% 50% at 50% 0%, rgb(11 105 246 / 7%), transparent 60%),

    linear-gradient(180deg, #f8fafc 0%, #eef2ff 100%);

}



.rpm-auth-portal__orb {

  position: absolute;

  border-radius: 50%;

  filter: blur(42px);

  opacity: 0.45;

  animation: rpm-auth-float 9s var(--rpm-auth-ease) infinite alternate;

}



.rpm-auth-portal__orb--1 {

  width: 240px;

  height: 240px;

  top: -50px;

  left: 15%;

  background: rgb(59 130 246 / 18%);

}



.rpm-auth-portal__orb--2 {

  width: 200px;

  height: 200px;

  right: 12%;

  top: 20%;

  background: rgb(34 197 94 / 10%);

  animation-delay: -4s;

}



@keyframes rpm-auth-float {

  from { transform: translate3d(0, 0, 0); }

  to { transform: translate3d(10px, -14px, 0); }

}



.rpm-auth-portal__container {

  position: relative;

  z-index: 1;

  width: min(100%, 560px);

  margin: 0 auto;

  padding: 0 clamp(1rem, 3vw, 1.5rem);

}



/* Intro header */

.rpm-auth-portal__intro {

  margin-bottom: 1.35rem;

  text-align: center;

}



.rpm-auth-portal__eyebrow {

  margin: 0 0 0.45rem;

  font-size: 0.72rem;

  font-weight: 800;

  letter-spacing: 0.09em;

  text-transform: uppercase;

  color: var(--rpm-auth-blue);

}



.rpm-auth-portal__intro-title {

  margin: 0 0 0.55rem;

  font-size: clamp(1.45rem, 4vw, 1.85rem);

  line-height: 1.15;

  font-weight: 800;

  color: var(--rpm-auth-ink);

  letter-spacing: -0.02em;

}



.rpm-auth-portal__intro-lead {

  margin: 0 auto;

  max-width: 32rem;

  font-size: 0.94rem;

  line-height: 1.5;

  color: var(--rpm-auth-muted);

}



/* Login card */

.rpm-auth-portal__single {

  display: flex;

  flex-direction: column;

  gap: 1rem;

}



.rpm-auth-portal__card {

  width: 100%;

  padding: clamp(1.35rem, 4vw, 2rem);

  border-radius: 22px;

  background: #fff;

  border: 1px solid rgb(15 23 42 / 6%);

  box-shadow: 0 18px 44px rgb(15 23 42 / 8%);

}



.rpm-auth-portal__card-header {

  margin-bottom: 1.15rem;

  text-align: center;

}



.rpm-auth-portal__card-badge {

  display: inline-grid;

  place-items: center;

  width: 52px;

  height: 52px;

  margin-bottom: 0.75rem;

  border-radius: 15px;

  color: var(--rpm-auth-blue);

  background: linear-gradient(145deg, #eff6ff, #fff);

  border: 1px solid rgb(11 105 246 / 14%);

  box-shadow: 0 8px 20px rgb(11 105 246 / 10%);

}



.rpm-auth-portal__card-title {

  margin: 0 0 0.35rem;

  font-size: clamp(1.25rem, 3vw, 1.5rem);

  font-weight: 800;

  color: var(--rpm-auth-ink);

}



.rpm-auth-portal__card-subtitle {

  margin: 0;

  font-size: 0.9rem;

  line-height: 1.45;

  color: var(--rpm-auth-muted);

}



/* Form */

.rpm-auth-portal__form .form-label,

.rpm-auth-portal .rpm-auth__form .form-label {

  font-weight: 600;

  color: #334155;

}



.rpm-auth-portal__form .form-control,

.rpm-auth-portal .rpm-auth__form .form-control {

  min-height: 52px;

  border-radius: 12px;

  border-color: #d5dbe3;

  padding: 0.75rem 1rem;

  font-size: 1rem;

  transition: border-color 0.2s ease, box-shadow 0.2s ease;

}



.rpm-auth-portal__form .form-control:focus,

.rpm-auth-portal .rpm-auth__form .form-control:focus {

  border-color: var(--rpm-auth-blue);

  box-shadow: 0 0 0 0.2rem rgb(11 105 246 / 14%);

}



.rpm-auth-portal__form .buttons-wrapper,

.rpm-auth-portal .rpm-auth__form .buttons-wrapper {

  display: grid;

  gap: 0.75rem;

  margin-top: 1.25rem;

}



.rpm-auth-portal__form .buttons-wrapper--split,

.rpm-auth-portal .rpm-auth__form .buttons-wrapper--split {

  grid-template-columns: 1fr;

}



.rpm-auth-portal__form .buttons-wrapper .btn,

.rpm-auth-portal .rpm-auth__form .buttons-wrapper .btn {

  min-height: 52px;

  border-radius: 12px;

  font-weight: 700;

  width: 100%;

}



.rpm-auth-portal__form .buttons-wrapper .btn-primary,

.rpm-auth-portal .rpm-auth__form .buttons-wrapper .btn-primary {

  order: 1;

  background: linear-gradient(135deg, var(--rpm-auth-blue) 0%, var(--rpm-auth-blue-dark) 100%);

  border: 0;

  box-shadow: 0 10px 24px rgb(11 105 246 / 22%);

  transition: transform 0.2s var(--rpm-auth-ease), box-shadow 0.2s ease;

}



.rpm-auth-portal__form .buttons-wrapper .btn-primary:hover,

.rpm-auth-portal .rpm-auth__form .buttons-wrapper .btn-primary:hover {

  transform: translateY(-1px);

  box-shadow: 0 14px 28px rgb(11 105 246 / 28%);

}



.rpm-auth-portal__form .buttons-wrapper .btn-basic,

.rpm-auth-portal .rpm-auth__form .buttons-wrapper .btn-basic {

  order: 2;

  color: var(--rpm-auth-blue);

  background: transparent;

  border: 0;

  text-decoration: underline;

  text-underline-offset: 3px;

  min-height: auto;

  padding: 0.35rem 0;

}



/* Register CTA */

.rpm-auth-portal__register {

  margin-top: 1.25rem;

  padding: 1.1rem 1.2rem;

  border-radius: 14px;

  text-align: center;

  background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);

  border: 1px solid rgb(15 23 42 / 6%);

}



.rpm-auth-portal__register-label {

  margin: 0 0 0.7rem;

  font-size: 0.92rem;

  font-weight: 600;

  color: #475569;

}



.rpm-auth-portal__register-btn {

  width: 100%;

  min-height: 52px;

  border-radius: 12px !important;

  font-weight: 700;

  border-width: 2px !important;

  transition: transform 0.2s var(--rpm-auth-ease), box-shadow 0.2s ease;

}



.rpm-auth-portal__register-btn:hover {

  transform: translateY(-1px);

  box-shadow: 0 8px 20px rgb(11 105 246 / 12%);

}



/* Benefit chips below card */

.rpm-auth-portal__chips {

  display: grid;

  grid-template-columns: repeat(3, 1fr);

  gap: 0.55rem;

  margin: 0;

  padding: 0;

  list-style: none;

}



.rpm-auth-portal__chip {

  display: flex;

  flex-direction: column;

  align-items: center;

  gap: 0.4rem;

  padding: 0.75rem 0.5rem;

  border-radius: 14px;

  font-size: 0.72rem;

  font-weight: 700;

  line-height: 1.3;

  text-align: center;

  color: #475569;

  background: rgb(255 255 255 / 72%);

  border: 1px solid rgb(15 23 42 / 6%);

  backdrop-filter: blur(4px);

}



.rpm-auth-portal__chip-icon {

  width: 34px;

  height: 34px;

  display: grid;

  place-items: center;

  border-radius: 10px;

  color: var(--rpm-auth-blue);

  background: #eff6ff;

}



.rpm-auth-portal .login__register-prompt h2,

.rpm-auth-portal__register h2 {

  display: none;

}



.rpm-auth-portal__social .rpg-google-login__divider {

  margin: 0.95rem 0 1.15rem;

}



/* Animations */

.rpm-auth-portal__reveal {

  opacity: 0;

  transform: translateY(14px);

  transition: opacity 0.5s var(--rpm-auth-ease), transform 0.5s var(--rpm-auth-ease);

}



.rpm-auth-portal.is-ready .rpm-auth-portal__reveal,

.rpm-auth-portal.is-ready .rpm-auth-portal__reveal--panel,

.rpm-auth-portal.is-ready .rpm-auth-portal__reveal--chips {

  opacity: 1;

  transform: translateY(0);

}



.rpm-auth-portal.is-ready .rpm-auth-portal__reveal--panel { transition-delay: 0.1s; }

.rpm-auth-portal.is-ready .rpm-auth-portal__reveal--chips { transition-delay: 0.2s; }



@media (prefers-reduced-motion: reduce) {

  .rpm-auth-portal__orb { animation: none; }

  .rpm-auth-portal__reveal { opacity: 1; transform: none; transition: none; }

}



.rpm-auth:not(.rpm-auth-portal__card) {

  width: 100%;

  max-width: 100%;

}



@media (max-width: 575.98px) {

  .rpm-auth-portal__chips {

    grid-template-columns: 1fr;

  }



  .rpm-auth-portal__chip {

    flex-direction: row;

    justify-content: flex-start;

    text-align: left;

    font-size: 0.8rem;

    padding: 0.7rem 0.85rem;

  }



  .rpm-auth-portal__card {

    padding: 1.2rem;

    border-radius: 18px;

  }

}



/* Register portal */

.rpm-register-page #center-column.page--full-width {

  width: 100%;

  max-width: 720px;

  margin-left: auto;

  margin-right: auto;

  padding-left: clamp(1rem, 3vw, 1.5rem);

  padding-right: clamp(1rem, 3vw, 1.5rem);

}



.rpm-auth-portal__container--register {

  width: 100%;

  max-width: 680px;

  margin-left: auto;

  margin-right: auto;

}



.rpm-register-page .page-header,

.rpm-register-page h1.h1 {

  display: none;

}



.rpm-auth-portal--register .register-form hr,

.rpm-auth-portal--register .register-form__login-prompt {

  display: none;

}



.rpm-auth-portal--register:not(.is-ready) .rpm-auth-portal__reveal {

  opacity: 1;

  transform: none;

}



.rpm-auth-portal__hooks-top:empty {

  display: none;

}



.rpm-auth-portal--register #customer-form > section {

  display: block;

}



.rpm-auth-portal--register .form-group {

  margin-bottom: 1rem;

}



.rpm-auth-portal--register .form-text,

.rpm-auth-portal--register .form-control-comment {

  margin-top: 0.35rem;

  font-size: 0.8rem;

  color: var(--rpm-auth-muted);

}



.rpm-auth-portal--register .custom-radio,

.rpm-auth-portal--register .custom-checkbox {

  margin-bottom: 0.35rem;

}



.rpm-auth-portal--register .custom-control-label {

  font-weight: 600;

  color: #334155;

}



.rpm-auth-portal--register .field-password-policy,

.rpm-auth-portal--register [data-ps-ref="password-field"] .progress {

  margin-top: 0.5rem;

}



/* Password feedback must stay in normal flow (theme.css floats .password-requirements) */

.rpm-auth-portal--register [data-ps-ref="password-field"],

.rpm-auth-portal--register [data-ps-ref="password-feedback-container"] {

  display: flow-root;

}



.rpm-auth-portal--register .password-requirements {

  float: none;

  display: grid;

  width: 100%;

  clear: both;

}



.rpm-auth-portal--register .alert {

  border-radius: 12px;

  margin-bottom: 1rem;

}



.rpm-auth-portal--register .form-group:has(.customer_privacy),

.rpm-auth-portal--register .form-group:has([name="customer_privacy"]),

.rpm-auth-portal--register .form-group:has([name="psgdpr"]),

.rpm-auth-portal--register .mb-3:has([name="customer_privacy"]),

.rpm-auth-portal--register .mb-3:has([name="psgdpr"]) {

  clear: both;

  padding: 0.9rem 1rem;

  border-radius: 12px;

  background: #f8fafc;

  border: 1px solid rgb(15 23 42 / 6%);

}



.rpm-auth-portal--register .mb-3:has([name="customer_privacy"]) .form-check,

.rpm-auth-portal--register .mb-3:has([name="psgdpr"]) .form-check {

  display: flex;

  gap: 0.65rem;

  align-items: flex-start;

}



.rpm-auth-portal--register .mb-3:has([name="customer_privacy"]) .form-check-input,

.rpm-auth-portal--register .mb-3:has([name="psgdpr"]) .form-check-input {

  float: none;

  flex-shrink: 0;

  margin-top: 0.15rem;

}



.rpm-auth-portal--register .mb-3:has([name="customer_privacy"]) .form-check-label,

.rpm-auth-portal--register .mb-3:has([name="psgdpr"]) .form-check-label {

  display: block;

}



.rpm-auth-portal--register .form-group:has(.customer_privacy) p,

.rpm-auth-portal--register .form-group:has([name="customer_privacy"]) p,

.rpm-auth-portal--register .form-group:has([name="psgdpr"]) p,

.rpm-auth-portal--register .mb-3:has([name="customer_privacy"]) p,

.rpm-auth-portal--register .mb-3:has([name="psgdpr"]) p {

  margin-bottom: 0;

  font-size: 0.82rem;

  line-height: 1.5;

  color: var(--rpm-auth-muted);

}



.rpm-auth-portal--register #customer-form .buttons-wrapper {

  grid-column: 1 / -1;

  margin-top: 0.35rem;

}



.rpm-auth-portal--register #customer-form .form-control-submit {

  width: 100%;

}



/* Login prompt (register page footer) */

.rpm-auth-portal__login-prompt {

  margin-top: 1.25rem;

  padding: 1.1rem 1.2rem;

  border-radius: 14px;

  text-align: center;

  background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);

  border: 1px solid rgb(15 23 42 / 6%);

}



.rpm-auth-portal__login-label {

  margin: 0 0 0.7rem;

  font-size: 0.92rem;

  font-weight: 600;

  color: #475569;

}



.rpm-auth-portal__login-btn {

  width: 100%;

  min-height: 52px;

  border-radius: 12px !important;

  font-weight: 700;

  border-width: 2px !important;

  transition: transform 0.2s var(--rpm-auth-ease), box-shadow 0.2s ease;

}



.rpm-auth-portal__login-btn:hover {

  transform: translateY(-1px);

  box-shadow: 0 8px 20px rgb(11 105 246 / 12%);

}

.rpm-verify-page .rpm-auth-portal__container {
  max-width: 560px;
}

.rpm-verify-page__email {
  margin: 0 0 1rem;
  padding: 0.85rem 1rem;
  border-radius: 12px;
  background: #f8fafc;
  font-size: 0.95rem;
}

.rpm-verify-page__steps {
  margin: 0 0 1.25rem;
  padding-left: 1.2rem;
  color: #475569;
  line-height: 1.55;
}

.rpm-verify-page__resend {
  margin-bottom: 1rem;
}

.rpm-verify-page__badge--success {
  color: #16a34a;
  background: rgb(22 163 74 / 10%);
}

.rpm-verify-page__badge--error {
  color: #dc2626;
  background: rgb(220 38 38 / 10%);
}

.rpm-captcha-register {
  margin-top: 1rem;
}

.rpm-captcha-register__note {
  margin: 0.5rem 0 0;
  font-size: 0.78rem;
  color: #64748b;
}


