/*
 * Global brand-color compatibility layer.
 * Historical templates keep class names such as `purple` and `violet`, but
 * brand, selection, focus and informational accents render in the shared blue scale.
 */

:root,
body[data-ui-system="research-console"] {
  --purple: var(--ui-color-primary-500, #4b8ce8);
  --purple-soft: var(--ui-color-primary-50, #f5f9ff);
  --pm-purple: var(--ui-color-primary-600, #1769e0);
  --ta-purple: var(--ui-color-primary-600, #1769e0);
  --topic-purple: var(--ui-color-primary-600, #1769e0);
}

/* Navigation, tabs and focus states */
body[data-ui-system="research-console"] .nav-item.active,
body[data-ui-system="research-console"] .sidebar-v2 .nav-item.active,
body[data-ui-system="research-console"].role-internal_student .sidebar-v2 .nav-item.active,
body[data-ui-system="research-console"].role-external_student .sidebar-v2 .nav-item.active,
body[data-ui-system="research-console"].role-internal_student .student-flat-nav .nav-item.active,
body[data-ui-system="research-console"].role-external_student .student-flat-nav .nav-item.active,
body[data-ui-system="research-console"] .doc-sidebar-compact a.active,
body[data-ui-system="research-console"] .doc-sidebar-compact a:hover {
  border-color: var(--ui-color-primary-300, #b7d5fa) !important;
  background: var(--ui-color-primary-50, #f5f9ff) !important;
  color: var(--ui-color-primary-600, #1769e0) !important;
  box-shadow: none !important;
}

body[data-ui-system="research-console"] .nav-item.active .nav-icon,
body[data-ui-system="research-console"] .nav-item.active .nav-caret,
body[data-ui-system="research-console"] .menu-group.active .menu-group-title,
body[data-ui-system="research-console"] .menu-group.active .menu-title-icon {
  color: var(--ui-color-primary-600, #1769e0) !important;
}

body[data-ui-system="research-console"] :is(input, select, textarea, button, a):focus-visible {
  outline-color: var(--ui-color-primary-600, #1769e0);
}

/* Legacy purple/violet icon and badge variants now use the blue family. */
body[data-ui-system="research-console"] :is(
  .badge-purple,
  .tag-purple,
  .metric-icon.purple,
  .shortcut-icon.purple,
  .student-stat-card.tone-purple .stat-icon,
  .student-item-icon.purple,
  .student-action-icon.purple,
  .tone-purple .twb-kpi-icon,
  .tone-violet .twb-kpi-icon,
  .rw-purple .rw-iconbox,
  .rw-iconbox.purple,
  .rw-focus-card.purple .mini-icon,
  .rw-priority-item.purple .rw-priority-icon,
  .achievement-type-mark.purple,
  .achievement-kpi-icon.purple,
  .achievement-flow-step.purple .achievement-flow-icon,
  .achievement-quick-tile.purple span,
  .achievement-register-card.purple .achievement-register-icon,
  .achievement-type-summary.software > span,
  .approval-kpi-card.tone-purple .approval-kpi-icon,
  .approval-type-chip.tone-purple,
  .project-kpi-card.tone-purple .project-kpi-icon,
  .topic-approval-kpi.tone-purple .topic-approval-kpi-icon,
  .student-kpi-card.tone-purple .student-kpi-icon,
  .tone-purple .analytics-kpi-icon,
  .sp-chip.purple,
  .gd2-status.finalized,
  .gd2-archive-version,
  .member-inline-pill.source,
  .award-system-member-state
  ,.sh-icon-violet
  ,.st-revision
  ,.user-badge
  ,.pill.identity
  ,.pd-task-meta .tone-reviewing
  ,.ttd-stage-chip
  ,.achievement-relation-cell.tone-graduation span
) {
  border-color: var(--ui-color-primary-200, #d6e8ff) !important;
  background: var(--ui-color-primary-50, #f5f9ff) !important;
  color: var(--ui-color-primary-600, #1769e0) !important;
}

/* Cards retain neutral text while the old violet wash becomes restrained blue. */
body[data-ui-system="research-console"] :is(
  .student-stat-card.tone-purple,
  .admin-workbench-kpi.tone-purple,
  .stats-kpi-card.tone-purple
) {
  border-color: var(--ui-color-primary-200, #d6e8ff) !important;
  background: linear-gradient(180deg, var(--ui-color-primary-50, #f5f9ff) 0%, #fff 100%) !important;
}

/* Progress, chart and calendar marks that formerly rendered violet. */
body[data-ui-system="research-console"] :is(
  .bar-fill.purple,
  .rank-track i.purple,
  .topic-prog-fill.purple,
  .achievement-flow-step.purple .achievement-flow-line,
  .student-dot.purple,
  .student-agenda-line.purple
  ,.sh-agenda-marker.purple
  ,.pd-task-rail.tone-reviewing
  ,.grad-stage-seg.done
) {
  background: var(--ui-color-primary-600, #1769e0) !important;
}

body[data-ui-system="research-console"] :is(
  .rw-calendar-event.purple,
  .gd2-step.result,
  .topic-phase-step.is-active
) {
  border-color: var(--ui-color-primary-300, #b7d5fa) !important;
  background: var(--ui-color-primary-50, #f5f9ff) !important;
  color: var(--ui-color-primary-600, #1769e0) !important;
}

body[data-ui-system="research-console"] .gd2-step.result .gd2-dot {
  border-color: var(--ui-color-primary-600, #1769e0) !important;
  background: var(--ui-color-primary-600, #1769e0) !important;
}

body[data-ui-system="research-console"] .grad-card:hover {
  border-color: var(--ui-color-primary-300, #b7d5fa) !important;
  box-shadow: 0 4px 20px rgba(23, 105, 224, 0.10) !important;
}

body[data-ui-system="research-console"] .grad-stage-lbl.done {
  color: var(--ui-color-primary-600, #1769e0) !important;
}

/* Student-home mentor message formerly carried a separate violet mini-theme. */
body[data-ui-system="research-console"] .sh-mentor-message {
  border-color: var(--ui-color-primary-200, #d6e8ff) !important;
  background: var(--ui-color-primary-50, #f5f9ff) !important;
}

body[data-ui-system="research-console"] .sh-mentor-message:hover,
body[data-ui-system="research-console"] .sh-mentor-message-read:hover {
  border-color: var(--ui-color-primary-300, #b7d5fa) !important;
  box-shadow: 0 8px 20px rgba(23, 105, 224, 0.08) !important;
}

body[data-ui-system="research-console"] :is(
  .sh-mentor-role-mark,
  .sh-mentor-person > em,
  .sh-message-context-icon
) {
  background: var(--ui-color-primary-100, #eaf3ff) !important;
  color: var(--ui-color-primary-600, #1769e0) !important;
}

body[data-ui-system="research-console"] :is(
  .sh-mentor-meta small,
  .sh-mentor-content > small,
  .sh-message-context-copy small,
  .sh-message-arrow
) {
  color: var(--ui-color-text-muted, #667085) !important;
}

body[data-ui-system="research-console"] :is(
  .sh-mentor-message blockquote,
  .sh-message-context-copy strong,
  .sh-mentor-read-copy strong
) {
  color: var(--ui-color-text, #101828) !important;
}

body[data-ui-system="research-console"] .sh-message-context {
  border-top-color: var(--ui-color-primary-100, #eaf3ff) !important;
}

body[data-ui-system="research-console"] .hub-donut {
  --purple: var(--ui-color-primary-400, #82b2f2) !important;
}

/* Inline-template status styles need an explicit compatibility override. */
body[data-ui-system="research-console"] .status-badge[style*="#ede9fe"],
body[data-ui-system="research-console"] .status-badge[style*="#EDE9FE"] {
  background: var(--ui-color-primary-50, #f5f9ff) !important;
  color: var(--ui-color-primary-600, #1769e0) !important;
}

body[data-ui-system="research-console"] [style*="background:#6d28d9"],
body[data-ui-system="research-console"] [style*="background: #6d28d9"],
body[data-ui-system="research-console"] [style*="background:#7c3aed"],
body[data-ui-system="research-console"] [style*="background: #7c3aed"],
body[data-ui-system="research-console"] [style*="background:#4f46e5"],
body[data-ui-system="research-console"] [style*="background: #4f46e5"] {
  border-color: var(--ui-color-primary-600, #1769e0) !important;
  background: var(--ui-color-primary-600, #1769e0) !important;
}
