/**
 * Visorbet - Dark Theme for Paid Memberships Pro (PMPro)
 * Harmonized with Visorbet Brand Identity:
 * Background: #020617 (Deep Slate)
 * Cards / Boxes: #0f172a (Slate 900)
 * Borders: #1e293b / #334155
 * Typography: #f8fafc (White / Crisp) & #cbd5e1
 * Accents: #0284c7 (Visorbet Blue), #38bdf8 (Cyan), #f59e0b (Amber Gold)
 */

/* 1. Global CSS Custom Properties Override */
:root,
html,
body {
  --pmpro--color--base: #0f172a !important;
  --pmpro--color--base-2: #1e293b !important;
  --pmpro--color--contrast: #f8fafc !important;
  --pmpro--color--accent: #0284c7 !important;
  --pmpro--color--accent--variation: #38bdf8 !important;
  --pmpro--color--border: #334155 !important;
  --pmpro--color--border--variation: #1e293b !important;
  --pmpro--box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.6), 0 0 15px rgba(2, 132, 199, 0.08) !important;
  --pmpro--base--border-radius: 12px !important;
  --pmpro--btn--border-radius: 8px !important;
}

/* 2. Page & Body Dark Background */
body.pmpro-body,
body.pmpro-levels,
body.pmpro-checkout,
body.pmpro-confirmation,
body.pmpro-account,
body.pmpro-billing,
body.pmpro-cancel,
body.pmpro-orders,
body.pmpro-invoice,
body.pmpro-login,
body:has(.pmpro) {
  background-color: #020617 !important;
  color: #f8fafc !important;
}

body.pmpro-body .site-main,
body.pmpro-body .page-content,
body.pmpro-body #content,
body.pmpro-body article.page,
body.pmpro-body .entry-content,
body:has(.pmpro) .site-main,
body:has(.pmpro) .page-content,
body:has(.pmpro) #content {
  background-color: transparent !important;
  color: #f8fafc !important;
}

/* 3. Main PMPro Wrapper & Headers */
.pmpro {
  color: #f8fafc !important;
  max-width: 1040px !important;
  margin: 30px auto !important;
  padding: 0 15px !important;
}

.pmpro h1,
.pmpro h2,
.pmpro h3,
.pmpro h4,
.pmpro h5,
.pmpro .pmpro_section_title,
.pmpro .pmpro_card_title {
  color: #ffffff !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em !important;
}

.pmpro p,
.pmpro li,
.pmpro span:not(.pmpro_btn):not(.pmpro_tag) {
  color: #cbd5e1 !important;
}

.pmpro a {
  color: #38bdf8 !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
}

.pmpro a:hover {
  color: #7dd3fc !important;
  text-decoration: underline !important;
}

/* 4. PMPro Cards, Boxes and Fieldsets */
.pmpro .pmpro_card,
.pmpro_card,
.pmpro .pmpro_box,
.pmpro_box,
.pmpro_section {
  background-color: #0f172a !important;
  border: 1.5px solid #1e293b !important;
  border-radius: 14px !important;
  box-shadow: 0 12px 30px -8px rgba(0, 0, 0, 0.7), 0 0 15px rgba(2, 132, 199, 0.08) !important;
  margin-bottom: 24px !important;
  overflow: hidden !important;
}

.pmpro .pmpro_card_title {
  background-color: #0f172a !important;
  color: #ffffff !important;
  border-bottom: 1.5px solid #1e293b !important;
  padding: 20px 24px !important;
  font-size: 20px !important;
}

.pmpro .pmpro_card_content {
  padding: 24px !important;
  background-color: #0f172a !important;
}

/* 5. Form Fields, Inputs & Labels */
.pmpro .pmpro_form_label,
.pmpro label {
  color: #f8fafc !important;
  font-weight: 700 !important;
  font-size: 13.5px !important;
  margin-bottom: 6px !important;
  display: block !important;
}

.pmpro .pmpro_asterisk,
.pmpro .required {
  color: #f59e0b !important;
  font-weight: bold !important;
}

.pmpro .pmpro_form_hint,
.pmpro small {
  color: #94a3b8 !important;
  font-size: 12.5px !important;
  margin-top: 4px !important;
  display: block !important;
}

.pmpro input[type="text"],
.pmpro input[type="password"],
.pmpro input[type="email"],
.pmpro input[type="tel"],
.pmpro input[type="number"],
.pmpro input[type="date"],
.pmpro select,
.pmpro textarea,
.pmpro .pmpro_form_input {
  background-color: #020617 !important;
  color: #ffffff !important;
  border: 1.5px solid #334155 !important;
  border-radius: 8px !important;
  padding: 12px 14px !important;
  font-size: 15px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  transition: all 0.2s ease !important;
}

.pmpro input[type="text"]:focus,
.pmpro input[type="password"]:focus,
.pmpro input[type="email"]:focus,
.pmpro input[type="tel"]:focus,
.pmpro select:focus,
.pmpro textarea:focus,
.pmpro .pmpro_form_input:focus {
  border-color: #38bdf8 !important;
  background-color: #04091a !important;
  box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.25) !important;
  outline: none !important;
}

.pmpro input::placeholder,
.pmpro textarea::placeholder {
  color: #64748b !important;
}

/* Checkboxes and Radios */
.pmpro input[type="checkbox"],
.pmpro input[type="radio"] {
  accent-color: #0284c7 !important;
  width: 18px !important;
  height: 18px !important;
  cursor: pointer !important;
  vertical-align: middle !important;
  margin-right: 8px !important;
}

/* Password Toggle Icon */
.pmpro .pmpro_btn-password-toggle {
  background: #1e293b !important;
  border: 1px solid #334155 !important;
  border-radius: 6px !important;
  color: #38bdf8 !important;
  padding: 6px 12px !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  margin-top: 6px !important;
}

.pmpro .pmpro_btn-password-toggle svg {
  stroke: #38bdf8 !important;
}

.pmpro .pmpro_form_field-password-toggle-state {
  color: #94a3b8 !important;
  font-size: 12px !important;
}

/* 6. Pricing & Membership Levels Table */
.pmpro .pmpro_table,
.pmpro_levels_table,
.pmpro_table {
  background-color: #0f172a !important;
  border: 1px solid #1e293b !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  width: 100% !important;
  margin: 16px 0 !important;
}

.pmpro .pmpro_table thead th,
.pmpro_table th {
  background-color: #1e293b !important;
  color: #38bdf8 !important;
  font-weight: 800 !important;
  font-size: 13.5px !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  padding: 16px 20px !important;
  border-bottom: 2px solid #334155 !important;
  text-align: left !important;
}

.pmpro .pmpro_table tbody td,
.pmpro_table td {
  background-color: #0f172a !important;
  border-bottom: 1px solid #1e293b !important;
  color: #e2e8f0 !important;
  padding: 16px 20px !important;
  font-size: 14.5px !important;
  vertical-align: middle !important;
}

.pmpro .pmpro_table tbody tr:hover td {
  background-color: #131d36 !important;
}

.pmpro .pmpro_table tbody tr:last-child td {
  border-bottom: none !important;
}

.pmpro_level-price,
.pmpro_level-price strong {
  color: #f59e0b !important;
  font-weight: 800 !important;
  font-size: 17px !important;
}

.pmpro_level-expiration {
  color: #94a3b8 !important;
  font-size: 13px !important;
  margin-top: 4px !important;
}

/* 7. Buttons & Action Links */
.pmpro .pmpro_btn-select,
.pmpro .pmpro_btn-submit,
.pmpro .pmpro_btn-primary,
.pmpro input[type="submit"],
.pmpro button[type="submit"],
.pmpro .pmpro_btn:not(.pmpro_btn-secondary):not(.pmpro_btn-cancel):not(.pmpro_btn-plain) {
  background: #0284c7 !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: 8px !important;
  padding: 12px 24px !important;
  font-weight: 800 !important;
  font-size: 14.5px !important;
  letter-spacing: 0.5px !important;
  box-shadow: 0 4px 14px rgba(2, 132, 199, 0.4) !important;
  cursor: pointer !important;
  display: inline-block !important;
  text-align: center !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
}

.pmpro .pmpro_btn-select:hover,
.pmpro .pmpro_btn-submit:hover,
.pmpro .pmpro_btn-primary:hover,
.pmpro input[type="submit"]:hover,
.pmpro button[type="submit"]:hover {
  background: #0369a1 !important;
  color: #ffffff !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 20px rgba(2, 132, 199, 0.55) !important;
  text-decoration: none !important;
}

.pmpro .pmpro_btn-secondary,
.pmpro .pmpro_btn-cancel,
.pmpro a.pmpro_btn-secondary {
  background: #1e293b !important;
  color: #cbd5e1 !important;
  border: 1px solid #334155 !important;
  border-radius: 8px !important;
  padding: 10px 20px !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  display: inline-block !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
}

.pmpro .pmpro_btn-secondary:hover,
.pmpro .pmpro_btn-cancel:hover {
  background: #334155 !important;
  color: #ffffff !important;
  text-decoration: none !important;
}

/* 8. Account, Profile, Invoices & Orders */
.pmpro_account_section,
.pmpro_account-membership,
.pmpro_account-profile,
.pmpro_account-invoices,
.pmpro_account-links {
  background-color: #0f172a !important;
  border: 1.5px solid #1e293b !important;
  border-radius: 12px !important;
  padding: 20px !important;
  margin-bottom: 20px !important;
}

.pmpro .pmpro_actionlinks {
  margin-top: 16px !important;
  display: flex !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
}

.pmpro .pmpro_actionlinks a {
  background: #1e293b !important;
  border: 1px solid #334155 !important;
  color: #38bdf8 !important;
  padding: 7px 14px !important;
  border-radius: 6px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}

.pmpro .pmpro_actionlinks a:hover {
  background: #0284c7 !important;
  color: #ffffff !important;
  border-color: #0284c7 !important;
}

/* 9. Contextual Alert Messages */
.pmpro .pmpro_message,
.pmpro_message {
  border-radius: 10px !important;
  padding: 14px 20px !important;
  margin: 18px 0 !important;
  font-size: 14.5px !important;
  line-height: 1.5 !important;
}

.pmpro .pmpro_message.pmpro_success,
.pmpro_message.pmpro_success {
  background-color: #052e16 !important;
  border: 1.5px solid #15803d !important;
  color: #86efac !important;
}

.pmpro .pmpro_message.pmpro_error,
.pmpro_message.pmpro_error {
  background-color: #450a0a !important;
  border: 1.5px solid #dc2626 !important;
  color: #fca5a5 !important;
}

.pmpro .pmpro_message.pmpro_alert,
.pmpro_message.pmpro_alert {
  background-color: #422006 !important;
  border: 1.5px solid #d97706 !important;
  color: #fde68a !important;
}

.pmpro .pmpro_message:not(.pmpro_success):not(.pmpro_error):not(.pmpro_alert) {
  background-color: #082f49 !important;
  border: 1.5px solid #0284c7 !important;
  color: #7dd3fc !important;
}

/* 10. Terms, Licences & Special Blocks */
#pmpro_license,
.pmpro_checkout-field-tos {
  background-color: #020617 !important;
  color: #94a3b8 !important;
  border: 1.5px solid #334155 !important;
  border-radius: 8px !important;
  padding: 14px !important;
}

#other_discount_code_p {
  background: #020617 !important;
  border: 1px solid #1e293b !important;
  border-radius: 8px !important;
  padding: 12px !important;
  margin-top: 10px !important;
}
