:root {
  --mymex-feedback-radius: 16px;
  --mymex-feedback-shadow: 0 14px 34px rgba(3, 20, 40, .12);
  --mymex-feedback-success-fg: #086948;
  --mymex-feedback-success-bg: #eafaf4;
  --mymex-feedback-success-line: #9fe2c9;
  --mymex-feedback-error-fg: #972f38;
  --mymex-feedback-error-bg: #fff0f1;
  --mymex-feedback-error-line: #f0b6b6;
  --mymex-feedback-info-fg: #075985;
  --mymex-feedback-info-bg: #eefaff;
  --mymex-feedback-info-line: #9bdcf5;
  --mymex-feedback-dark-bg: #071b32;
  --mymex-feedback-dark-surface: #0a2b4a;
  --mymex-feedback-dark-line: rgba(105, 205, 255, .28);
  --mymex-feedback-dark-text: #e7f8ff;
}

/* One visual language for inline outcomes across platform, tenant, builder,
   login, CRM, public and marketing surfaces. Layout-specific positioning is
   deliberately left to the owning component. */
:where(
  .tenant-notice,
  .ford-success,
  .ford-alert,
  .mymex-tenant-management-feedback,
  .platform-media-gallery-notice,
  .ford-builder-exit-status,
  .ford-builder-destination-help,
  .mymex-jarvis-voice-status,
  .mymex-jarvis-support-status,
  .tenant-integration-test-result,
  .tenant-integration-status,
  .mymex-site-share.is-error,
  .mymex-public-jarvis-message.is-error
) {
  box-sizing: border-box;
  border-radius: var(--mymex-feedback-radius);
  box-shadow: var(--mymex-feedback-shadow);
  font-weight: 750;
  line-height: 1.45;
}

:where(
  .tenant-notice-success,
  .ford-success,
  .mymex-tenant-management-feedback:not(.is-error),
  .platform-media-gallery-notice:not(.is-error),
  .ford-builder-exit-status[data-state="success"],
  .ford-builder-destination-help.is-success,
  .mymex-jarvis-voice-status.is-success,
  .mymex-jarvis-support-status.is-success,
  .tenant-integration-test-result.is-success,
  .tenant-integration-status.is-success
) {
  color: var(--mymex-feedback-success-fg);
  border-color: var(--mymex-feedback-success-line);
  background: linear-gradient(135deg, #f4fff9, var(--mymex-feedback-success-bg));
}

:where(
  .tenant-notice-error,
  .ford-alert,
  .mymex-tenant-management-feedback.is-error,
  .platform-media-gallery-notice.is-error,
  .ford-builder-exit-status:not([data-state]),
  .ford-builder-destination-help.is-error,
  .mymex-jarvis-voice-status.is-error,
  .mymex-jarvis-support-status.is-error,
  .tenant-integration-test-result.is-error,
  .tenant-integration-status.is-error,
  .mymex-site-share.is-error,
  .mymex-public-jarvis-message.is-error
) {
  color: var(--mymex-feedback-error-fg);
  border-color: var(--mymex-feedback-error-line);
  background: linear-gradient(135deg, #fff8f8, var(--mymex-feedback-error-bg));
}

:where(
  .ford-builder-exit-status[data-state="saving"],
  .mymex-jarvis-voice-status.is-loading,
  .mymex-jarvis-support-status.is-loading,
  .tenant-content-ai-status:not([hidden]),
  .tenant-media-status:not(:empty),
  .mymex-profile-copy-status:not(:empty),
  [data-blog-ai-status].is-loading
) {
  color: var(--mymex-feedback-dark-text);
  border-color: var(--mymex-feedback-dark-line);
  background: linear-gradient(135deg, var(--mymex-feedback-dark-bg), var(--mymex-feedback-dark-surface));
  box-shadow: 0 14px 34px rgba(3, 20, 40, .18);
}

/* Toasts keep their existing position and transitions while sharing the same
   surface, border, radius and contrast contract. */
:where(.toast, .ford-toast) {
  color: #f7fbff;
  border: 1px solid var(--mymex-feedback-dark-line);
  border-radius: var(--mymex-feedback-radius);
  background: linear-gradient(135deg, var(--mymex-feedback-dark-bg), var(--mymex-feedback-dark-surface));
  box-shadow: 0 18px 48px rgba(2, 12, 28, .28);
  font-weight: 750;
}

:where(
  [data-mymex-theme="dark"],
  [data-theme="dark"],
  [data-hub-theme="dark"],
  [data-content-theme="dark"]
) :where(
  .tenant-notice-success,
  .ford-success,
  .mymex-tenant-management-feedback:not(.is-error),
  .platform-media-gallery-notice:not(.is-error),
  .ford-builder-exit-status[data-state="success"],
  .ford-builder-destination-help.is-success,
  .mymex-jarvis-voice-status.is-success,
  .mymex-jarvis-support-status.is-success,
  .tenant-integration-test-result.is-success,
  .tenant-integration-status.is-success
) {
  color: #bff7df;
  border-color: rgba(57, 223, 166, .34);
  background: linear-gradient(135deg, rgba(8, 74, 54, .82), rgba(12, 51, 45, .92));
}

:where(
  [data-mymex-theme="dark"],
  [data-theme="dark"],
  [data-hub-theme="dark"],
  [data-content-theme="dark"]
) :where(
  .tenant-notice-error,
  .ford-alert,
  .mymex-tenant-management-feedback.is-error,
  .platform-media-gallery-notice.is-error,
  .ford-builder-exit-status:not([data-state]),
  .ford-builder-destination-help.is-error,
  .mymex-jarvis-voice-status.is-error,
  .mymex-jarvis-support-status.is-error,
  .tenant-integration-test-result.is-error,
  .tenant-integration-status.is-error,
  .mymex-site-share.is-error,
  .mymex-public-jarvis-message.is-error
) {
  color: #ffd0d2;
  border-color: rgba(255, 125, 130, .36);
  background: linear-gradient(135deg, rgba(91, 28, 34, .88), rgba(58, 23, 31, .94));
}

@media (max-width: 680px) {
  :where(
    .tenant-notice,
    .ford-success,
    .ford-alert,
    .mymex-tenant-management-feedback,
    .platform-media-gallery-notice,
    .ford-builder-exit-status,
    .ford-builder-destination-help,
    .mymex-jarvis-voice-status,
    .mymex-jarvis-support-status,
    .tenant-integration-test-result,
    .tenant-integration-status
  ) {
    border-radius: 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  :where(.toast, .ford-toast) {
    transition-duration: .01ms !important;
  }
}

.mymex-feedback-dialog {
  box-sizing: border-box;
  width: min(480px, calc(100vw - 32px));
  max-height: min(680px, calc(100dvh - 32px));
  margin: auto;
  padding: 34px;
  overflow: auto;
  border: 1px solid #d5e2ec;
  border-radius: 26px;
  color: #10243d;
  background: #fff;
  box-shadow: 0 34px 110px rgba(2, 15, 31, .4);
  text-align: center;
}
.mymex-feedback-dialog::backdrop { background: rgba(2, 15, 31, .7); backdrop-filter: blur(8px); }
.mymex-feedback-dialog__close { position: absolute; top: 14px; right: 14px; width: 42px; height: 42px; padding: 0; display: grid; place-items: center; border: 1px solid #d5e2ec; border-radius: 50%; color: #557087; background: #f7fafc; cursor: pointer; }
.mymex-feedback-dialog__close svg,.mymex-feedback-dialog__icon svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.mymex-feedback-dialog__icon { width: 66px; height: 66px; margin: 0 auto 16px; display: grid; place-items: center; border-radius: 21px; }
.mymex-feedback-dialog.is-success .mymex-feedback-dialog__icon { color: #087653; background: #e4f9ef; }
.mymex-feedback-dialog.is-error .mymex-feedback-dialog__icon { color: #a12f38; background: #fff0f1; }
.mymex-feedback-dialog > small { display: block; color: #0872bd; font-size: 11px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.mymex-feedback-dialog h2 { margin: 7px 0 10px; color: #10243d; font-size: clamp(25px, 5vw, 32px); line-height: 1.1; }
.mymex-feedback-dialog__messages { display: grid; gap: 8px; }
.mymex-feedback-dialog__messages p { margin: 0; color: #526b84; font-size: 15px; line-height: 1.55; }
.mymex-feedback-dialog__action { width: 100%; min-height: 50px; margin-top: 24px; padding: 12px 18px; border: 0; border-radius: 14px; color: #fff; background: linear-gradient(135deg, #075da6, #0b9ed2); font: 800 15px/1.2 inherit; cursor: pointer; box-shadow: 0 12px 28px rgba(7, 93, 166, .22); }
.mymex-feedback-dialog__action:focus-visible,.mymex-feedback-dialog__close:focus-visible { outline: 3px solid rgba(31, 172, 222, .3); outline-offset: 3px; }

@media (max-width: 560px) {
  .mymex-feedback-dialog { width: calc(100vw - 24px); padding: 28px 20px 22px; border-radius: 22px; }
  .mymex-feedback-dialog__icon { width: 58px; height: 58px; border-radius: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .mymex-feedback-dialog::backdrop { backdrop-filter: none; }
}
