/* SunuMind — shared application palette. Scientific canvas colours remain semantic. */
html[data-sunumind-palette] {
  color-scheme: light;
  --sunu-paper: #f5f5ee;
  --sunu-surface: #fffef8;
  --sunu-soft: #e9eee2;
  --sunu-ink: #173c34;
  --sunu-muted: #5a6b61;
  --sunu-line: #d4ddcf;
  --sunu-primary: #23664e;
  --sunu-accent: #98542f;
  --sunu-positive: #23664e;
  --sunu-danger: #ad4936;
  --sunu-info: #286f76;
  --sunu-shadow: 0 8px 28px #173c3410;
  --bg: var(--sunu-paper) !important;
  --bg-dark: var(--sunu-paper) !important;
  --bg-base: var(--sunu-paper) !important;
  --bg-gradient: linear-gradient(var(--sunu-paper), var(--sunu-paper)) !important;
  --nav-bg: var(--sunu-surface) !important;
  --code-bg: var(--sunu-soft) !important;
  --bg-primary: var(--sunu-paper) !important;
  --bg-secondary: var(--sunu-soft) !important;
  --bg-card: var(--sunu-surface) !important;
  --bg-card-hover: var(--sunu-soft) !important;
  --card-bg: var(--sunu-surface) !important;
  --card-inner: var(--sunu-soft) !important;
  --card-alt: var(--sunu-soft) !important;
  --card-hover: var(--sunu-soft) !important;
  --panel: var(--sunu-surface) !important;
  --panel2: var(--sunu-soft) !important;
  --surface: var(--sunu-surface) !important;
  --paper: var(--sunu-paper) !important;
  --ink: var(--sunu-ink) !important;
  --text: var(--sunu-ink) !important;
  --text-main: var(--sunu-ink) !important;
  --text-primary: var(--sunu-ink) !important;
  --text-secondary: var(--sunu-muted) !important;
  --text-muted: var(--sunu-muted) !important;
  --text-bright: var(--sunu-ink) !important;
  --text-dim: var(--sunu-muted) !important;
  --muted: var(--sunu-muted) !important;
  --border: var(--sunu-line) !important;
  --border-color: var(--sunu-line) !important;
  --border-glass: var(--sunu-line) !important;
  --border-hover: #94ab91 !important;
  --border-bright: #94ab91 !important;
  --border-vif: var(--sunu-primary) !important;
  --border-glow: var(--sunu-line) !important;
  --line: var(--sunu-line) !important;
  --bordure: var(--sunu-line) !important;
  --green: var(--sunu-primary) !important;
  --green-primary: var(--sunu-primary) !important;
  --green-neon: var(--sunu-primary) !important;
  --emerald-deep: var(--sunu-primary) !important;
  --emerald-neon: var(--sunu-primary) !important;
  --accent-green: var(--sunu-primary) !important;
  --accent-teal: var(--sunu-primary) !important;
  --accent-purple: var(--sunu-primary) !important;
  --purple-accent: var(--sunu-primary) !important;
  --neon-beige: var(--sunu-ink) !important;
  --neon-caramel: var(--sunu-accent) !important;
  --neon-cognac: var(--sunu-accent) !important;
  --neon-moka: var(--sunu-muted) !important;
  --neon-emerald: var(--sunu-primary) !important;
  --emerald: var(--sunu-primary) !important;
  --emerald-light: var(--sunu-primary) !important;
  --sapphire: var(--sunu-info) !important;
  --ruby: var(--sunu-danger) !important;
  --neon-gold: var(--sunu-accent) !important;
  --neon-green: var(--sunu-positive) !important;
  --neon-senegal-green: var(--sunu-positive) !important;
  --neon-red: var(--sunu-danger) !important;
  --accent-gold: var(--sunu-accent) !important;
  --gold: var(--sunu-accent) !important;
  --yellow-accent: var(--sunu-accent) !important;
  --champagne: var(--sunu-accent) !important;
  --yellow: var(--sunu-accent) !important;
  --orange: var(--sunu-accent) !important;
  --pink: var(--sunu-primary) !important;
  --purple: var(--sunu-primary) !important;
  --cyan: var(--sunu-info) !important;
  --accent-blue: var(--sunu-info) !important;
  --blue-info: var(--sunu-info) !important;
  --accent-red: var(--sunu-danger) !important;
  --red-accent: var(--sunu-danger) !important;
  --red: var(--sunu-danger) !important;
  --shadow: var(--sunu-shadow) !important;
  --shadow-card: var(--sunu-shadow) !important;
  --shadow-glow: none !important;
  --glow-caramel: none !important;
  --glow-gold: none !important;
  --glow-beige: none !important;
  --glow-emerald: none !important;
  --glow-sapphire: none !important;
  --glow-ruby: none !important;
  --title-glow: none !important;
  --heading-glow: none !important;
  --scanline-opacity: 0 !important;
}
/* Optional dark mode, set by /js/sunumind-mode.js on pages that load it. */
html[data-sunumind-palette][data-sunumind-mode="dark"] {
  color-scheme: dark;
  --sunu-paper: #0f1714;
  --sunu-surface: #16211d;
  --sunu-soft: #1e2b26;
  --sunu-ink: #e2eae3;
  --sunu-muted: #9daea4;
  --sunu-line: #2b3a34;
  --sunu-primary: #5daf8a;
  --sunu-accent: #e0a066;
  --sunu-positive: #6cc39a;
  --sunu-danger: #e57d6c;
  --sunu-info: #6bb8be;
  --sunu-shadow: 0 8px 28px #00000055;
  --border-hover: #4c6358 !important;
  --border-bright: #4c6358 !important;
}
html[data-sunumind-palette] body { background: var(--sunu-paper) !important; color: var(--sunu-ink) !important; }
html[data-sunumind-palette] [data-mode-toggle]::before { content: "\263E\FE0E"; }
html[data-sunumind-palette][data-sunumind-mode="dark"] [data-mode-toggle]::before { content: "\2600\FE0E"; }
html[data-sunumind-palette] :is(.header-bar,.topbar,.bottom-nav,.nav-bar,.dock,body > header) { background: var(--sunu-surface) !important; color: var(--sunu-ink); border-color: var(--sunu-line) !important; }
html[data-sunumind-palette] :is(.card,.card-face,.panel,.module-card,.stat-card,.stat,.question-card,.question-panel,.quiz-arena,.modal-card,.glass-card,.lesson-card,.flashcard,.settings-card,.hero-card,.mission-card) { background: var(--sunu-surface) !important; color: var(--sunu-ink) !important; border-color: var(--sunu-line) !important; box-shadow: var(--sunu-shadow); }
html[data-sunumind-palette] :is(.brand,.brand-name,.logo,.hero-title,h1,h2,h3) { color: var(--sunu-ink); }
html[data-sunumind-palette] :is(.title-grad,.title-gradient,.gradient-text,.text-transparent,[class~="bg-clip-text"]) { background: none !important; color: var(--sunu-ink) !important; -webkit-text-fill-color: var(--sunu-ink) !important; }
html[data-sunumind-palette] :is(.btn-primary,.primary-btn,.primary-action,.home-primary,.play-button,.btn-start,.btn-check) { background: var(--sunu-primary) !important; color: var(--sunu-surface) !important; border-color: var(--sunu-primary) !important; box-shadow: none; }
html[data-sunumind-palette] :is(.mode-btn,.chip-btn,.nav-btn,.tab-btn,.filter-btn,.btn-secondary) { color: var(--sunu-ink); border-color: var(--sunu-line); }
html[data-sunumind-palette] :is(.mode-btn.active,.chip-btn.active,.tab-btn.active,.filter-btn.active,.nav-btn.active,.bottom-nav .active) { background: var(--sunu-primary) !important; color: var(--sunu-surface) !important; border-color: var(--sunu-primary) !important; }
html[data-sunumind-palette] :is(input,select,textarea) { color: var(--sunu-ink); accent-color: var(--sunu-primary); border-color: var(--sunu-line); }
html[data-sunumind-palette] :is(input:not([type=range]):not([type=checkbox]):not([type=radio]),select,textarea) { background-color: var(--sunu-surface) !important; }
html[data-sunumind-palette] :is(button,a,input,select,textarea,summary):focus-visible { outline: 3px solid var(--sunu-accent) !important; outline-offset: 3px; }
html[data-sunumind-palette] :is(.muted,.subtitle,.subtext,.hero-sub,.text-secondary) { color: var(--sunu-muted) !important; }
html[data-sunumind-palette] :is(.conseil-box,.hint-box,.notice,.panel-tip,.exam-feedback) { background: var(--sunu-soft); color: var(--sunu-ink); border-color: var(--sunu-line); }
html[data-sunumind-palette] :is(.progress-fill,.xp-bar-fill,.progress-bar-fill) { background: var(--sunu-primary) !important; box-shadow: none !important; }
html[data-sunumind-palette] :is(.correct,.success,.answer-correct) { color: var(--sunu-positive); border-color: var(--sunu-positive); }
html[data-sunumind-palette] :is(.incorrect,.error,.answer-wrong) { color: var(--sunu-danger); border-color: var(--sunu-danger); }
/* Legacy Tailwind screens use the same surfaces, text and action colours. */
html[data-sunumind-palette] :is([class~="bg-gray-950"],[class*="bg-gray-950/"],[class~="bg-gray-900"],[class*="bg-gray-900/"],[class~="bg-slate-950"],[class~="bg-slate-900"],[class~="bg-zinc-900"]) { background: var(--sunu-surface) !important; }
html[data-sunumind-palette] :is([class~="bg-gray-800"],[class*="bg-gray-800/"],[class~="bg-gray-700"],[class~="bg-slate-800"],[class~="bg-slate-700"],[class~="bg-zinc-800"]) { background: var(--sunu-soft) !important; }
html[data-sunumind-palette] :is([class*="border-gray-"],[class*="border-slate-"],[class*="border-zinc-"]) { border-color: var(--sunu-line) !important; }
html[data-sunumind-palette] :is([class~="text-white"],[class~="text-gray-100"],[class~="text-gray-200"],[class~="text-slate-100"],[class~="text-slate-200"]) { color: var(--sunu-ink) !important; }
html[data-sunumind-palette] :is([class~="text-gray-300"],[class~="text-gray-400"],[class~="text-gray-500"],[class~="text-slate-300"],[class~="text-slate-400"],[class~="text-slate-500"]) { color: var(--sunu-muted) !important; }
html[data-sunumind-palette] :is([class*="text-emerald-"],[class*="text-green-"],[class*="text-purple-"],[class*="text-violet-"]) { color: var(--sunu-primary) !important; }
html[data-sunumind-palette] :is([class*="text-cyan-"],[class*="text-teal-"],[class*="text-sky-"],[class*="text-blue-"]) { color: var(--sunu-info) !important; }
html[data-sunumind-palette] :is([class*="text-amber-"],[class*="text-orange-"],[class*="text-yellow-"],[class*="text-pink-"]) { color: var(--sunu-accent) !important; }
html[data-sunumind-palette] :is([class*="text-red-"],[class*="text-rose-"]) { color: var(--sunu-danger) !important; }
html[data-sunumind-palette] :is([class*="bg-purple-9"],[class*="bg-emerald-9"],[class*="bg-green-9"],[class*="bg-cyan-9"],[class*="bg-blue-9"],[class*="bg-amber-9"],[class*="bg-red-9"],[class*="bg-purple-8"],[class*="bg-emerald-8"],[class*="bg-cyan-8"]) { background: var(--sunu-soft) !important; }
html[data-sunumind-palette] :is(button,a):is([class~="bg-purple-600"],[class~="bg-purple-500"],[class~="bg-blue-600"],[class~="bg-blue-500"],[class~="bg-cyan-600"],[class~="bg-cyan-500"],[class~="bg-emerald-600"],[class~="bg-emerald-500"],[class~="bg-green-600"],[class~="bg-green-500"],[class~="bg-amber-600"],[class~="bg-amber-500"]) { background: var(--sunu-primary) !important; color: var(--sunu-surface) !important; border-color: var(--sunu-primary) !important; box-shadow: none !important; }
html[data-sunumind-palette] :is(button,a):is([class~="bg-purple-600"],[class~="bg-blue-600"],[class~="bg-cyan-600"],[class~="bg-emerald-600"],[class~="bg-green-600"]) * { color: inherit !important; }
/* One shared palette replaces the former per-app theme switches. */
html[data-sunumind-palette] :is(#themeBtn,#themeToggle,#cycleThemeBtn,[onclick*="cycleTheme"],[onclick*="toggleTheme"]) { display: none !important; }
html[data-sunumind-palette] #jokerHintBox,
html[data-sunumind-palette] #arenaAnswerBox { background: var(--sunu-soft) !important; color: var(--sunu-ink) !important; }
html[data-sunumind-palette] :is([style*="color: #82e0aa"],[style*="color: #84a98c"]) { color: var(--sunu-positive) !important; }
html[data-sunumind-palette] :is([style*="color: #ff9999"],[style*="color: #ff9b9b"]) { color: var(--sunu-danger) !important; }
html[data-sunumind-palette] :is(.stat-card,.mode-btn,.card,.card-face,.quiz-arena) { text-shadow: none !important; }
html[data-sunumind-palette] .top-nav { background: var(--sunu-surface) !important; border-color: var(--sunu-line) !important; }
html[data-sunumind-palette] :is(.sunumiles-box,.joker-btn,.xp-bar-bg) { background: var(--sunu-soft) !important; color: var(--sunu-ink) !important; }
html[data-sunumind-palette] :is(.nav-btn,.mode-btn:not(.active),.chip-btn:not(.active)) { background: var(--sunu-surface) !important; color: var(--sunu-ink) !important; }
html[data-sunumind-palette] .hero h1 span { text-shadow: none !important; }
html[data-sunumind-palette] .brand-mark { box-shadow: none !important; }
html[data-sunumind-palette] .action-card.primary { background: var(--sunu-primary) !important; border-color: var(--sunu-primary) !important; color: var(--sunu-surface) !important; }
html[data-sunumind-palette] .action-card.primary :is(b,small,span) { color: var(--sunu-surface) !important; }
html[data-sunumind-palette] .cockpit-tab-btn.active { background: var(--sunu-primary) !important; color: var(--sunu-surface) !important; box-shadow: none !important; }
html[data-sunumind-palette] :is(.stat-box,.usage-box) { background: var(--sunu-surface) !important; color: var(--sunu-ink); }
html[data-sunumind-palette] body::before,
html[data-sunumind-palette] body::after { background: none !important; box-shadow: none !important; }
html[data-sunumind-palette] #particles-canvas { display: none !important; }
