:root {
  --lmt-font-sans: "Nunito", sans-serif;
  --lmt-color-text: #383838;
  --lmt-color-text-muted: #667085;
  --lmt-color-surface: #ffffff;
  --lmt-color-surface-muted: #eaebef;
  --lmt-color-border: #d0d5dd;
  --lmt-color-primary: #7031a0;
  --lmt-color-primary-hover: #5b2784;
  --lmt-color-primary-soft: #f4ebff;
  --lmt-color-danger: #b42318;
  --lmt-shadow-card: 0 4px 8px rgba(0, 0, 0, 0.2);
  --lmt-radius-card: 20px;
  --lmt-radius-pill: 999px;
  --lmt-font-size-sm: 14px;
  --lmt-font-size-base: 16px;
  --lmt-font-size-lg: 18px;
  --lmt-button-height: 42px;
  --lmt-button-padding-x: 18px;
  --lmt-button-font-size: 16px;
  --lmt-button-font-weight: 400;
  --lmt-button-transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;
}

.lumentor-wrap,
.lumentor-boxed-panel,
#mentor_profile_form,
#mentee_profile_form,
.mentor-booking,
.chat-popup,
#message-inbox.inbox-card,
.availability-card,
.sidebar,
#lmt-notifications-panel,
.custom-register-form,
.lumentor-rv-dialog {
  font-family: var(--lmt-font-sans);
  color: var(--lmt-color-text);
}

.lmt-button-primary,
.lmt-button-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--lmt-button-height);
  padding: 10px var(--lmt-button-padding-x);
  border-radius: var(--lmt-radius-pill);
  font-family: var(--lmt-font-sans);
  font-size: var(--lmt-button-font-size);
  font-weight: var(--lmt-button-font-weight);
  line-height: 1.2;
  text-decoration: none;
  border: 1px solid transparent;
  cursor: pointer;
  transition: var(--lmt-button-transition);
  box-shadow: none;
  box-sizing: border-box;
  transform: none !important;
  appearance: none;
  -webkit-appearance: none;
}

.lmt-button-primary,
.lmt-btn,
.register-button,
.agree-button,
#mentor_submit_button,
#mentee_submit_button,
#crop-avatar-button,
#address_lookup_button,
.custom-message-btn.fl-button,
#mentor-meetup.fl-button,
.custom-modal-content .fl-button,
.chat-input button,
.confirm-booking-button,
.join-meeting-btn,
.rate-meetup-btn,
.cancel-meetup-btn,
.submit-feedback-btn,
.save-notes-btn,
.save-availability,
.lmt-notif-btn,
.lumentor-rv-dialog button[type="submit"],
button.cancel-option,
button#cancel-yes,
button#reschedule-submit,
button#proposal-accept {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--lmt-button-height);
  padding: 10px var(--lmt-button-padding-x);
  border-radius: var(--lmt-radius-pill) !important;
  font-family: var(--lmt-font-sans);
  font-size: var(--lmt-button-font-size);
  font-weight: var(--lmt-button-font-weight);
  line-height: 1.2;
  text-decoration: none;
  background: var(--lmt-color-primary);
  color: #fff !important;
  border: 1px solid var(--lmt-color-primary);
  cursor: pointer;
  transition: var(--lmt-button-transition);
  box-shadow: none;
  box-sizing: border-box;
  transform: none !important;
  appearance: none;
  -webkit-appearance: none;
}

.lmt-button-primary:hover,
.lmt-btn:hover,
.register-button:hover,
.agree-button:hover,
#mentor_submit_button:hover,
#mentee_submit_button:hover,
#crop-avatar-button:hover,
#address_lookup_button:hover,
.custom-message-btn.fl-button:hover,
#mentor-meetup.fl-button:hover,
.custom-modal-content .fl-button:hover,
.join-meeting-btn:hover,
.rate-meetup-btn:hover,
.cancel-meetup-btn:hover,
.submit-feedback-btn:hover,
.save-notes-btn:hover,
.save-availability:hover,
.lmt-notif-btn:hover,
.lumentor-rv-dialog button[type="submit"]:hover,
button.cancel-option:hover,
button#cancel-yes:hover,
button#reschedule-submit:hover,
button#proposal-accept:hover {
  background: var(--lmt-color-primary-hover) !important;
  border-color: var(--lmt-color-primary-hover) !important;
  color: #fff !important;
  transform: none !important;
}

.lmt-button-secondary,
.clear-availability,
.toggle-button,
.btn-decline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--lmt-button-height);
  padding: 10px var(--lmt-button-padding-x);
  border-radius: var(--lmt-radius-pill) !important;
  font-family: var(--lmt-font-sans);
  font-size: var(--lmt-button-font-size);
  font-weight: var(--lmt-button-font-weight);
  line-height: 1.2;
  text-decoration: none;
  background: var(--lmt-color-surface-muted);
  color: var(--lmt-color-text) !important;
  border: 1px solid transparent;
  cursor: pointer;
  transition: var(--lmt-button-transition);
  box-shadow: none;
  box-sizing: border-box;
  transform: none !important;
  appearance: none;
  -webkit-appearance: none;
}

.lmt-button-secondary:hover,
.clear-availability:hover,
.btn-decline:hover {
  background: #d9dae3 !important;
  border-color: transparent !important;
  color: var(--lmt-color-text) !important;
  transform: none !important;
}

#cancel-step-1 button.cancel-option.lmt-change-cancel-option {
  background: var(--lmt-color-surface-muted) !important;
  border-color: transparent !important;
  color: var(--lmt-color-text) !important;
}

#cancel-step-1 button.cancel-option.lmt-change-cancel-option:hover {
  background: #d9dae3 !important;
  border-color: transparent !important;
  color: var(--lmt-color-text) !important;
}

.toggle-button {
  font-size: 14px;
}

.toggle-button:hover,
.toggle-button.selected {
  background: var(--lmt-color-primary) !important;
  border-color: var(--lmt-color-primary) !important;
  color: #fff !important;
  transform: none !important;
}

.lmt-back-button,
.lmt-btn.lmt-back,
button.cancel-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--lmt-button-height);
  padding: 10px var(--lmt-button-padding-x);
  border-radius: var(--lmt-radius-pill) !important;
  font-family: var(--lmt-font-sans) !important;
  font-size: var(--lmt-button-font-size);
  font-weight: var(--lmt-button-font-weight);
  line-height: 1.2;
  text-decoration: none !important;
  background: var(--lmt-color-surface-muted) !important;
  color: var(--lmt-color-text) !important;
  border: 1px solid transparent !important;
  cursor: pointer;
  transition: var(--lmt-button-transition);
  box-shadow: none !important;
  box-sizing: border-box;
  transform: none !important;
  appearance: none;
  -webkit-appearance: none;
}

.lmt-back-button:hover,
.lmt-back-button:focus-visible,
.lmt-btn.lmt-back:hover,
.lmt-btn.lmt-back:focus-visible,
button.cancel-back:hover,
button.cancel-back:focus-visible {
  background: #d9dae3 !important;
  color: var(--lmt-color-text) !important;
  border-color: transparent !important;
  text-decoration: none !important;
  transform: none !important;
}

:where(
  .lumentor-wrap,
  .lumentor-boxed-panel,
  #mentor_profile_form,
  #mentee_profile_form,
  .mentor-booking,
  .chat-popup,
  #message-inbox.inbox-card,
  .availability-card,
  .sidebar,
  #lmt-notifications-panel,
  .custom-register-form,
  .lumentor-rv-dialog
) :where(
  a,
  button,
  [role="button"],
  [tabindex]:not([tabindex="-1"]),
  .expand-toggle-text,
  .mark-noshow-text,
  .proposal-pill,
  .rescheduled-pill,
  .open-reschedule-directly,
  .lmt-notif-markread,
  .lmt-link-action
):focus {
  outline: none !important;
  box-shadow: none !important;
}

:where(
  .lumentor-wrap,
  .lumentor-boxed-panel,
  #mentor_profile_form,
  #mentee_profile_form,
  .mentor-booking,
  .chat-popup,
  #message-inbox.inbox-card,
  .availability-card,
  .sidebar,
  #lmt-notifications-panel,
  .custom-register-form,
  .lumentor-rv-dialog
) :where(
  a,
  button,
  [role="button"],
  [tabindex]:not([tabindex="-1"]),
  .expand-toggle-text,
  .mark-noshow-text,
  .proposal-pill,
  .rescheduled-pill,
  .open-reschedule-directly,
  .lmt-notif-markread,
  .lmt-link-action
):focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

body.lmt-using-keyboard :where(
  .lumentor-wrap,
  .lumentor-boxed-panel,
  #mentor_profile_form,
  #mentee_profile_form,
  .mentor-booking,
  .chat-popup,
  #message-inbox.inbox-card,
  .availability-card,
  .sidebar,
  #lmt-notifications-panel,
  .custom-register-form,
  .lumentor-rv-dialog
) :where(
  a,
  button,
  [role="button"],
  [tabindex]:not([tabindex="-1"]),
  .expand-toggle-text,
  .mark-noshow-text,
  .proposal-pill,
  .rescheduled-pill,
  .open-reschedule-directly,
  .lmt-notif-markread,
  .lmt-link-action
):focus-visible {
  outline: 2px solid rgba(112, 49, 160, 0.45) !important;
  outline-offset: 2px;
  border-radius: 8px;
}

:where(
  #search-results,
  .similar-mentors,
  .mentor-cardholder,
  .mentor-image
) a:focus,
:where(
  #search-results,
  .similar-mentors,
  .mentor-cardholder,
  .mentor-image
) a:focus img {
  outline: none !important;
  box-shadow: none !important;
}

:where(
  #search-results,
  .similar-mentors,
  .mentor-cardholder,
  .mentor-image
) a:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

body.lmt-using-keyboard :where(
  #search-results,
  .similar-mentors,
  .mentor-cardholder,
  .mentor-image
) a:focus-visible {
  outline: 2px solid rgba(112, 49, 160, 0.45) !important;
  outline-offset: 3px;
  border-radius: 25px;
}

button[disabled],
input[disabled],
.is-busy,
.is-loading {
  opacity: 0.7;
  cursor: not-allowed !important;
  pointer-events: none !important;
}

.lmt-loading-state {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 0;
  color: var(--lmt-color-primary);
  font-size: 14px;
}

.lmt-spinner {
  width: 18px;
  height: 18px;
  border: 3px solid rgba(112, 49, 160, 0.18);
  border-top-color: var(--lmt-color-primary);
  border-radius: 50%;
  animation: lmt-spin 0.8s linear infinite;
  flex: 0 0 auto;
}

@keyframes lmt-spin {
  to {
    transform: rotate(360deg);
  }
}

.lmt-modal-overlay {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  z-index: 2147483000 !important;
}

.lmt-modal-card {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: min(500px, 95%);
  background: #fff;
  padding: 24px;
  border-radius: 12px;
  box-shadow: var(--lmt-shadow-card);
  font-family: var(--lmt-font-sans);
  color: var(--lmt-color-text);
  z-index: 2147483001;
}

.lmt-modal-card.lmt-modal-card-compact {
  width: min(350px, 95%);
}

.lmt-modal-card.lmt-modal-card-medium {
  width: min(700px, 95%);
}

.lmt-modal-card.lmt-modal-card-wide {
  width: min(800px, 95%);
}

.lmt-modal-title-center {
  text-align: center;
}

.lmt-modal-copy {
  margin-top: 0;
}

.lmt-modal-intro {
  margin-bottom: 20px;
  color: #555;
}

.lmt-button-row {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.lmt-button-row.lmt-button-row-end {
  justify-content: flex-end;
}

.lmt-button-row-center {
  justify-content: center;
}

.lmt-modal-action-right {
  display: flex !important;
  width: fit-content;
  margin-left: auto !important;
}

.lmt-modal-card .frm_submit {
  text-align: right;
}

.lmt-modal-card .frm_submit button,
.lmt-modal-card .frm_submit input[type="submit"] {
  margin-left: auto;
}

.lmt-stack-gap-sm {
  margin-top: 10px;
}

.lmt-stack-gap-md {
  margin-top: 16px;
}

.lmt-text-muted {
  color: var(--lmt-color-text-muted);
}

.lmt-text-sm {
  font-size: var(--lmt-font-size-sm);
}

.lmt-text-base {
  font-size: var(--lmt-font-size-base);
}

.lmt-text-lg {
  font-size: var(--lmt-font-size-lg);
}

.lmt-link-action {
  cursor: pointer;
  color: var(--lmt-color-primary);
  text-decoration: none;
  font-size: 14px;
}

.lmt-link-action:hover {
  text-decoration: underline;
}

.lmt-link-action-right {
  display: block;
  width: 100%;
  text-align: right;
}

.lmt-form-validation {
  display: none;
  margin: 0 0 1.1rem;
  color: var(--lmt-color-danger);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
}

.lmt-form-refresh-note {
  margin-top: 0.5rem;
  color: var(--lmt-color-text-muted);
  font-size: 0.95rem;
}

.lmt-button-center {
  display: block;
  margin: 10px auto 0;
}

.lmt-panel-notice {
  background: #f9f9f9;
  border-left: 4px solid #1E561F;
  padding: 10px;
  margin: 15px 0;
  font-size: 16px;
}

.custom-modal-close,
.lumentor-rv-close {
  position: absolute;
  top: -12px;
  right: -12px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  line-height: 1;
  font-size: 22px;
  font-weight: 700;
  color: var(--lmt-color-primary) !important;
  background: #fff;
  border: 2px solid var(--lmt-color-primary);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
  z-index: 2147483002;
}

.custom-modal-close:hover,
.lumentor-rv-close:hover {
  background: var(--lmt-color-primary);
  color: #fff !important;
}

.lumentor-rv-dialog h3 {
  margin-top: 0;
  margin-bottom: 10px;
}

.lumentor-rv-dialog input[type="email"] {
  width: 100%;
  padding: 10px 12px;
  margin-bottom: 12px;
  box-sizing: border-box;
}

.agree-button {
  display: block;
  margin: 20px auto;
}

.custom-register-form .form-group1 {
  display: flex;
  align-items: center;
  gap: 8px;
}

.custom-register-form .form-group1 input[type="checkbox"] {
  width: 16px;
  height: 16px;
  cursor: pointer;
}

#password-feedback,
#terms-warning {
  font-size: 14px;
}

#password-feedback {
  margin-top: 5px;
  color: #333;
}

#terms-warning {
  margin-bottom: 10px;
}

.lmt-inline-message {
  margin-top: 10px;
}

.lmt-scroll-panel {
  max-height: 500px;
  overflow-y: auto;
  padding: 10px;
}

.lmt-status-banner {
  margin-bottom: 1rem;
  padding: 0.9rem 1rem;
  background: #f4f4f4;
  border-left: 4px solid var(--lmt-color-primary);
  color: #333;
  font-weight: 600;
}

.lmt-inline-flex-gap {
  display: flex;
  gap: 8px;
}

.lmt-row-align-center {
  align-items: center;
}

.lmt-image-preview {
  max-width: 100px;
  padding: 5px;
  border: 0;
}

.lmt-success-check {
  display: none;
  margin-left: 10px;
  color: green;
  font-size: 18px;
}

.lmt-crop-shell {
  display: none;
  margin-top: 20px;
}

.lmt-crop-frame {
  width: 100%;
  max-width: 300px;
  margin: auto;
}

.lmt-crop-frame img {
  max-width: 100%;
  display: block;
}

.lmt-error-inline {
  display: none;
  color: red;
  font-size: 0.9em;
}

body.modal-open {
  overflow: hidden;
}
