/**
 * Placement region for contextual status messages (core drupal.message / BigPipe).
 * Child `.messages` blocks keep bordered callout styling below.
 */
.theme-appgenie [data-drupal-messages] {
  display: flex;
  flex-direction: column;
  gap: var(--sp-4);
  margin-block-end: var(--sp-6);
  max-inline-size: 100%;
  box-sizing: border-box;
}

.theme-appgenie .messages-wrapper,
.theme-appgenie .messages {
  padding-block: var(--sp-5);
  padding-inline: var(--sp-8);
}

.theme-appgenie .messages:not(:last-child) {
  margin-block-end: var(--sp-4);
}

.theme-appgenie [data-drupal-messages] .messages {
  margin-block-end: 0;
}

.theme-appgenie .messages-list {
  padding: 0;
  margin-block: var(--sp-4);
}

.theme-appgenie .messages.messages--status {
  border: 1px solid var(--mint-300);
  background: var(--success-soft-bg);
  color: var(--ink-800);
}

.theme-appgenie .messages.messages--warning {
  border: 1px solid var(--gold-300);
  background: var(--warning-soft-bg);
  color: var(--ink-800);
}

.theme-appgenie .messages.messages--error {
  border: 1px solid var(--danger);
  background: var(--danger-soft-bg);
  color: var(--ink-800);
}

.theme-appgenie .messages.messages--notice {
  border: 1px solid var(--border-strong);
  background: var(--bg-elev);
  color: var(--ink-800);
}

.theme-appgenie .messages:not(.messages--popup) {
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-sm);
}

/**
 * Fallback when core modules/system/templates/status-messages.html.twig is used
 * (bare [role="contentinfo"] without .messages). Our override adds classes; until
 * cache clears or Twig picks it up, :has() keeps callouts recognizable.
 */

.theme-appgenie [data-drupal-messages]
  > div[role="contentinfo"]:not(.messages):has(div[role="alert"]) {
  border: 1px solid var(--danger);
  background: var(--danger-soft-bg);
  color: var(--ink-800);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-sm);
  padding-block: var(--sp-5);
  padding-inline: var(--sp-8);
  margin-block-end: 0;
}

.theme-appgenie [data-drupal-messages]
  > div[role="contentinfo"]:not(.messages):has(.job-opportunity-documents-async-queued) {
  border: 1px solid var(--mint-300);
  background: var(--success-soft-bg);
  color: var(--ink-800);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-sm);
  padding-block: var(--sp-5);
  padding-inline: var(--sp-8);
  margin-block-end: 0;
}

.theme-appgenie [data-drupal-messages]
  > div[role="contentinfo"]:not(.messages):not(:has(div[role="alert"])):not(
    :has(.job-opportunity-documents-async-queued)
  ) {
  border: 1px solid var(--border-strong);
  background: var(--bg-elev);
  color: var(--ink-800);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-sm);
  padding-block: var(--sp-5);
  padding-inline: var(--sp-8);
  margin-block-end: 0;
}
