/* Decorative application icons share the purple palette. Lesson diagrams keep
   their own colors; filled controls keep contrasting ink. */

:root[data-theme] :is(.ui-icon, .card-icon, .side-icon, .dev-card-symbol, .re-symbol, .robotics-pillar-icon, .assistant-welcome-icon, .request-detail-icon, .inference-stage-icon, .cheat-mono, .external-icon, .arrow, .back-to-top, .side-toggle) {
  --icon-color: var(--icon-bright, #c4b5fd);
  color: var(--icon-color);
}
:root[data-theme='vercel-light'] :is(.ui-icon, .card-icon, .side-icon, .dev-card-symbol, .re-symbol, .robotics-pillar-icon, .assistant-welcome-icon, .request-detail-icon, .inference-stage-icon, .cheat-mono, .external-icon, .arrow, .back-to-top, .side-toggle) {
  --icon-color: var(--icon-ink, #6d28d9);
}
:root[data-theme] :is(.card-icon, .side-icon, .dev-card-symbol, .re-symbol, .robotics-pillar-icon, .assistant-welcome-icon, .request-detail-icon, .inference-stage-icon):has(> .ui-icon),
:root[data-theme] .cheat-mono {
  border-color: color-mix(in srgb, var(--icon-color) 48%, var(--panel));
  background-color: var(--panel);
  background-image: linear-gradient(135deg, color-mix(in srgb, var(--icon-color) 14%, transparent), color-mix(in srgb, var(--icon-color) 4%, transparent));
}
:root[data-theme] .ai-eng-cover-icon::before { background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 14%,var(--panel)),color-mix(in srgb,var(--accent) 4%,var(--panel))); }
/* Entry actions use the same theme-aware icon palette as their surface. */
:root[data-theme] .primary-button .ui-icon { color: var(--icon-color); }
:root[data-theme='vercel-light'] .primary-button .ui-icon { color: var(--icon-color); }
@media (forced-colors: active) {
  :root[data-theme] .ui-icon { color: CanvasText; }
  :root[data-theme] .primary-button .ui-icon { color: ButtonText; }
}

:root[data-theme] .page-actions .back-to-top { color: var(--icon-color); }
:root[data-theme] .page-actions .back-to-top,
:root[data-theme] .page-actions .back-to-top .ui-icon { color:var(--accent); }
:root[data-theme] .side-toggle span { color: inherit; }

.search-trigger .ui-icon { width: 18px; height: 18px; }

:root[data-theme] body .card-bottom .arrow { color: var(--icon-color); }

:root[data-theme] .diagram .diagram-actions button[data-action] { color: var(--accent); }
:root[data-theme] .diagram-control-label { background:linear-gradient(135deg,#c4b5fd,#818cf8); background-clip:text; color:transparent; }
:root[data-theme='vercel-light'] .diagram-control-label { background-image:linear-gradient(135deg,#6d28d9,#4f46e5); }

:root[data-theme] .ui-icon {
  stroke: url(#purple-gradient);
}
:root[data-theme="vercel-light"] .ui-icon {
  stroke: url(#purple-gradient-light);
}

:root[data-theme] #decode-open .ui-icon { color:var(--accent); }

/* Navigation and external-link arrows share the application's purple gradients. */
:root[data-theme] :is(.ui-icon[data-icon^="arrow-"], .ui-icon[data-icon^="chevron-"], .external-icon, .arrow) {
  --icon-bright:#c4b5fd;
  --icon-ink:#6d28d9;
  color:var(--icon-color);
}
:root[data-theme] .ui-icon:is([data-icon^="arrow-"], [data-icon^="chevron-"]) { stroke:url(#purple-gradient); }
:root[data-theme='vercel-light'] .ui-icon:is([data-icon^="arrow-"], [data-icon^="chevron-"]) { stroke:url(#purple-gradient-light); }
/* Filled send controls retain contrasting ink over their purple surface. */
:root[data-theme] #assistant-send .ui-icon { stroke:currentColor; }
@media (forced-colors:active) {
  :root[data-theme] .ui-icon, :root[data-theme] .ui-icon:is([data-icon^="arrow-"], [data-icon^="chevron-"]) { color:CanvasText; stroke:CanvasText; }
  :root[data-theme] #assistant-send .ui-icon { color:ButtonText; stroke:ButtonText; }
  :root[data-theme] .diagram-control-label { background:none; color:ButtonText; }
  :root[data-theme] :is(.card-icon,.side-icon,.dev-card-symbol,.re-symbol,.robotics-pillar-icon,.assistant-welcome-icon,.request-detail-icon,.inference-stage-icon,.cheat-mono) { background:Canvas; border-color:CanvasText; color:CanvasText; }
  :root[data-theme] .ai-eng-cover-icon::before { background:Canvas; border-color:CanvasText; }
}
