/* Semantic color contracts shared by public pages, customer portal and workspace.
 * Decorative gradients remain component-specific. Text and actions use these tokens. */
:root, html[data-theme="dark"] {
  --dt-link: #8bd1ff;
  --dt-text-muted: #b0c4df;
  --dt-action: #1154bb;
  --dt-on-action: #ffffff;
}
html[data-theme="light"] {
  --dt-link: #1458b5;
  --dt-text-muted: #4c627e;
}
.dt-v17-client-layout {
  --v17-muted: var(--dt-text-muted);
  --v17-blue: var(--dt-link);
}
html[data-theme="light"] :is(.dt31, .dt31-home, .dt31-home-featured) {
  --p-blue: var(--dt-link);
  --p-muted: var(--dt-text-muted);
}
html[data-theme="light"] :is(.section-light, .section-soft) .eyebrow,
html[data-theme="light"] :is(.text-link, .dt-v11-service-type),
html[data-theme="light"] .brand-premium .brand-wordmark b { color: var(--dt-link); }
html[data-theme="light"] .brand-premium .brand-wordmark small,
html[data-theme="light"] .portal-topline > span { color: var(--dt-text-muted); }
html[data-theme="dark"] :is(.small-chip, .auth-help, .eyebrow.dark),
html[data-theme="dark"] .dt-v11-service-info details summary,
html[data-theme="dark"] .data-table a,
html[data-theme="dark"] .dt-v21-notifications-counter b,
html[data-theme="dark"] .dt-v21-filter.is-current { color: var(--dt-link); }
html[data-theme="dark"] .auth-card label { color: var(--fg); }
.dt-form-header span { background: var(--dt-action); color: var(--dt-on-action); }
.dt-v17-client-layout :is(.dt-v17-kicker, .dt-v17-text-link,
  .dt-v17-progress-line strong, .dt-v17-project-foot > span,
  .dt-v17-empty > a, .dt-v17-bottom > a, .dt-v18-profile-intro-note > a,
  .dt-v18-profile-links > a) { color: var(--dt-link); }
html[data-theme="dark"] .dt-v21-notifications-filters a.is-current { color: var(--dt-link); }
html[data-theme="dark"] #instagram #igBadge { color: #ffc1ed; }
html[data-theme="dark"] .dt-person-choice label { color: var(--fg); }
