/**
 * EKM dark-mode text fallback guard — terminal ink tokens for var() chains.
 * Prevents light-theme --c-ink (#1C1814) resolving on dark surfaces when
 * --text-primary / --msg-bubble-* tokens are stale or unset.
 * Pair with syncPortalTextSemanticAliases() after readability gate.
 *
 * Incoming message bubbles: NEVER fall through to --c-ink / --text-primary here.
 * Bubble fg/bg is owned by --msg-bubble-theirs-* tokens (theme engine + applyMessageSurfaceTokens).
 * Prose inherits from the bubble shell via color:inherit in index.html.
 */

:root {
  --ekm-fg-primary-fallback: #1a1a18;
  --ekm-fg-secondary-fallback: #3a3835;
  --ekm-fg-muted-fallback: #5f5b52;
  --ekm-fg-label-fallback: #5f5b52;
  --ekm-incoming-bubble-fg-fallback: #3a3835;
  --ekm-incoming-bubble-reimage-fg-fallback: #ece9e3;
}

html[data-dark] {
  --ekm-fg-primary-fallback: #ece9e3;
  --ekm-fg-secondary-fallback: #b8b3a8;
  --ekm-fg-muted-fallback: #a39c8f;
  --ekm-fg-label-fallback: #b8b3a8;
  --ekm-incoming-bubble-fg-fallback: #ece9e3;
  --ekm-incoming-bubble-reimage-fg-fallback: #ece9e3;
}

/* Shared card primitive — never inherit wrong ink on dark elevated surfaces */
html[data-dark] .ekm-card,
html[data-dark] .pds-card,
html[data-dark] .pds-page .card,
html[data-dark] .pq-card,
html[data-dark] .ma-card,
html[data-dark] .ma-kpi,
html[data-dark] .ma-att-card,
html[data-dark] .wf-reimage-stat-card,
html[data-dark] .wf-reimage-widget,
html[data-dark] .modal {
  color: var(--text-primary, var(--c-ink, var(--ekm-fg-primary-fallback)));
}

/*
 * Theme preview swatches only — live bubbles use index.html token rules.
 */
html[data-dark] .theme-preview-bubble.theirs {
  color: var(--msg-bubble-theirs-fg, var(--ekm-incoming-bubble-fg-fallback));
}

/*
 * Messages reimage hub — fixed dark incoming surface on all themes.
 * Must beat html[data-dark] .msg-bubble.theirs for bg + fg together.
 */
html[data-dark] .msg-hub-reimage-layout .msg-bubble.theirs,
html:not([data-dark]) .msg-hub-reimage-layout .msg-bubble.theirs {
  background: var(--msg-bubble-theirs-reimage-bg, #2a2a32);
  border-color: #3a3a44;
  color: var(
    --msg-bubble-theirs-reimage-fg,
    var(--ekm-incoming-bubble-reimage-fg-fallback)
  );
}

/* Patient queue / pulse surfaces */
html[data-dark] .pq-card,
html[data-dark] .pq-card-name,
html[data-dark] .pq-card-comment,
html[data-dark] .pq-rev-text,
html[data-dark] .pq-chat-panel,
html[data-dark] .pq-chat-head h3,
html[data-dark] .pq-mi-item,
html[data-dark] .pulse-row-title {
  color: var(
    --pq-surface-text,
    var(--text-primary, var(--c-ink, var(--ekm-fg-primary-fallback)))
  );
}

html[data-dark] .pq-card-desc,
html[data-dark] .pq-card-meta,
html[data-dark] .pq-card-section-label,
html[data-dark] .pq-phase-name,
html[data-dark] .pq-phase-sub {
  color: var(
    --c-label,
    var(--text-secondary, var(--c-ink2, var(--ekm-fg-label-fallback)))
  );
}

/* Settings / theme personalization swatches */
html[data-dark] #settings-appearance-card .theme-swatch > div:last-child {
  color: var(--text-primary, var(--c-ink, var(--ekm-fg-primary-fallback))) !important;
}
