/*
 * Compatibility layer for current and future NGM plugins.
 * New plugins should wrap their interface in .ngm-ui or .ngm-plugin.
 */

/* Common NGM wrapper guesses / future-proof aliases */
.ngm-pulse,
.ngm-uniforms,
.ngm-repairs,
.ngm-maintenance,
.ngm-expenses,
.ngm-tours,
.ngm-playlist,
.ngm-timeclock,
.ngm-dashboard,
.ngm-report,
.ngm-form {
  font-family: var(--ngm-font-body);
  color: var(--ngm-ink);
}

.ngm-pulse h1, .ngm-pulse h2, .ngm-pulse h3,
.ngm-uniforms h1, .ngm-uniforms h2, .ngm-uniforms h3,
.ngm-repairs h1, .ngm-repairs h2, .ngm-repairs h3,
.ngm-maintenance h1, .ngm-maintenance h2, .ngm-maintenance h3,
.ngm-expenses h1, .ngm-expenses h2, .ngm-expenses h3,
.ngm-tours h1, .ngm-tours h2, .ngm-tours h3,
.ngm-playlist h1, .ngm-playlist h2, .ngm-playlist h3,
.ngm-timeclock h1, .ngm-timeclock h2, .ngm-timeclock h3 {
  font-family: var(--ngm-font-heading);
  color: var(--ngm-ink);
  font-weight: 500;
}

/* Generic plugin action buttons. These selectors are intentionally broad only inside NGM wrappers. */
.ngm-pulse button, .ngm-pulse .button,
.ngm-uniforms button, .ngm-uniforms .button,
.ngm-repairs button, .ngm-repairs .button,
.ngm-maintenance button, .ngm-maintenance .button,
.ngm-expenses button, .ngm-expenses .button,
.ngm-tours button, .ngm-tours .button,
.ngm-playlist button, .ngm-playlist .button,
.ngm-timeclock button, .ngm-timeclock .button {
  border-radius: var(--ngm-radius-pill);
  border: 1px solid var(--ngm-green);
  background: var(--ngm-green);
  color: var(--ngm-white);
  font-weight: 700;
  padding: 10px 18px;
  transition: background-color var(--ngm-ease), border-color var(--ngm-ease), color var(--ngm-ease), transform var(--ngm-ease);
}

.ngm-pulse button:hover, .ngm-pulse .button:hover,
.ngm-uniforms button:hover, .ngm-uniforms .button:hover,
.ngm-repairs button:hover, .ngm-repairs .button:hover,
.ngm-maintenance button:hover, .ngm-maintenance .button:hover,
.ngm-expenses button:hover, .ngm-expenses .button:hover,
.ngm-tours button:hover, .ngm-tours .button:hover,
.ngm-playlist button:hover, .ngm-playlist .button:hover,
.ngm-timeclock button:hover, .ngm-timeclock .button:hover {
  background: var(--ngm-gold-hover);
  border-color: #000;
  color: var(--ngm-ink);
  transform: translateY(-1px);
}

/* Preserve semantics for destructive actions */
.ngm-pulse .delete, .ngm-pulse .remove, .ngm-pulse .danger,
.ngm-uniforms .delete, .ngm-uniforms .remove, .ngm-uniforms .danger,
.ngm-repairs .delete, .ngm-repairs .remove, .ngm-repairs .danger,
.ngm-maintenance .delete, .ngm-maintenance .remove, .ngm-maintenance .danger,
.ngm-expenses .delete, .ngm-expenses .remove, .ngm-expenses .danger,
.ngm-tours .delete, .ngm-tours .remove, .ngm-tours .danger,
.ngm-playlist .delete, .ngm-playlist .remove, .ngm-playlist .danger,
.ngm-timeclock .delete, .ngm-timeclock .remove, .ngm-timeclock .danger {
  background: var(--ngm-danger) !important;
  border-color: var(--ngm-danger) !important;
  color: var(--ngm-white) !important;
}

/* Divi normalization */
.ngm-design-system .et_pb_button,
.ngm-design-system .et_pb_more_button,
.ngm-design-system .et_pb_contact_submit {
  border-radius: var(--ngm-radius-pill) !important;
  font-family: var(--ngm-font-ui) !important;
  font-weight: 700 !important;
}

.ngm-design-system .et_pb_button:hover,
.ngm-design-system .et_pb_more_button:hover,
.ngm-design-system .et_pb_contact_submit:hover {
  background: var(--ngm-gold-hover) !important;
  border-color: #000 !important;
  color: var(--ngm-ink) !important;
}
