:root {
  --partner-green: #4caf50;
  --partner-green-dark: #2e7d32;
  --partner-ink: #17231f;
  --partner-muted: #63716b;
  --partner-line: #e2e9e5;
  --partner-surface: #ffffff;
  --partner-bg: #f4f7f5;
  --partner-radius: 16px;
}

body {
  font-family: 'Lato', sans-serif !important;
}

button,
input,
select,
textarea {
  font-family: 'Lato', sans-serif !important;
}

/* Shared authentication surfaces */
.login-card,
.login-form-wrapper,
.register-card,
.form-card,
.registration-card {
  border: 1px solid var(--partner-line) !important;
  border-radius: var(--partner-radius) !important;
  box-shadow: 0 20px 52px rgba(23, 59, 37, .12) !important;
}

.main-content > .form-card {
  border-radius: 0 16px 16px 0 !important;
}

.register-container > .register-card {
  border-radius: 0 16px 16px 0 !important;
}

.register-container > .register-header {
  border-radius: 16px 0 0 16px !important;
}

.main-content > .benefits-section {
  border-radius: 16px 0 0 16px !important;
}

.login-card,
.login-form-wrapper,
.register-card,
.form-card,
.registration-card {
  background: var(--partner-surface) !important;
}

.btn-primary,
.btn-glow,
.submit-btn,
.login-button,
button[type='submit'] {
  background: linear-gradient(135deg, var(--partner-green), var(--partner-green-dark)) !important;
  border-color: transparent !important;
  color: #fff !important;
  box-shadow: 0 10px 24px rgba(46, 125, 50, .22) !important;
}

.btn-primary:hover,
.btn-glow:hover,
.submit-btn:hover,
.login-button:hover,
button[type='submit']:hover {
  background: linear-gradient(135deg, #66bb6a, var(--partner-green-dark)) !important;
  transform: translateY(-1px);
}

input:focus,
select:focus,
textarea:focus,
.form-input:focus,
.form-textarea:focus {
  border-color: var(--partner-green) !important;
  box-shadow: 0 0 0 3px rgba(76, 175, 80, .12) !important;
  outline: none;
}

/* Shared branded background */
.sp-login-page,
.page-shell,
body:has(.register-container),
body:has(.registration-container) {
  background: radial-gradient(42rem 26rem at 88% -8%, rgba(76, 175, 80, .16), transparent 68%), linear-gradient(135deg, #edf7ef 0%, var(--partner-bg) 100%) !important;
}

/* Small brand marks */
.sp-brand-logo,
.register-logo,
.join-logo,
.brand-logo {
  filter: none !important;
}

@media (max-width: 760px) {
  .login-panel,
  .login-container,
  .main-content {
    grid-template-columns: 1fr !important;
  }

  .login-hero,
  .brand-card {
    display: none !important;
  }

  .login-form-wrapper,
  .login-card,
  .register-card,
  .form-card,
  .registration-card {
    padding: 1.25rem !important;
  }

  .main-content > .form-card,
  .main-content > .benefits-section,
  .register-container > .register-card,
  .register-container > .register-header {
    border-radius: 16px !important;
  }
}
