/* Accessibility CSS - Central control for accessibility settings */

/* CSS Variables for accessibility customization */
:root {
  /* Theme: default (app theme), dark, light, high-contrast */
  --a11y-theme: 'default';

  /* Colorblind mode: none, deuteranopia, protanopia, tritanopia */
  --a11y-colorblind-mode: 'none';

  /* Font size multiplier (0.85, 0.95, 1, 1.3) */
  --a11y-font-size: 1;

  /* Font weight: normal = 400, bold = 700 */
  --a11y-font-weight: 400;

  /* Letter spacing in em */
  --a11y-letter-spacing: 0;

  /* Line spacing multiplier */
  --a11y-line-spacing: 1;
}

/* Default theme (app theme: dark background with teal accent) */
html[data-a11y-theme="default"] {
  --bg-color: #0b0d0e !important;
  --card-bg: #131618 !important;
  --text-color: #e4e6e8 !important;
  --text-muted: #636b71 !important;
  --text-dim: #2e3336 !important;
  --surface: #131618 !important;
  --surface2: #1a1d1f !important;
  --surface3: #212426 !important;
  --border: rgba(255,255,255,0.06) !important;
  --border2: rgba(255,255,255,0.11) !important;
  --accent-color: #4CC5BA !important;
  --accent-hover: #3ab0a6 !important;
  --accent-dim: rgba(76, 197, 186, 0.12) !important;
  --red: #e05c5c !important;
  --red-dim: rgba(224, 92, 92, 0.15) !important;
}

html[data-a11y-theme="default"] * {
  --text-color: #e4e6e8 !important;
  --text-muted: #636b71 !important;
  --text-dim: #2e3336 !important;
}

/* Apply dyslexia-friendly font */
[data-a11y-dyslexia-font="true"] {
  --a11y-font-family: 'Atkinson Hyperlegible', 'Comic Sans MS', sans-serif;
}

/* Reduce motion globally */
[data-a11y-reduce-motion="true"] * {
  animation-duration: 0.01ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: 0.01ms !important;
  scroll-behavior: auto !important;
}

/* Background shade - lerp between black and dark grey */
[data-a11y-bg-shade] {
  --bg-shade: var(--a11y-bg-shade);
}

/* Light theme with colorblind support */
html[data-a11y-theme="light"] {
  --bg-color: #ffffff !important;
  --card-bg: #f8f9fa !important;
  --text-color: #1a1a1a !important;
  --text-muted: #4a4a4a !important;
  --text-dim: #333333 !important;
  --surface: #f5f5f5 !important;
  --surface2: #eeeeee !important;
  --surface3: #e8e8e8 !important;
  --border: rgba(0, 0, 0, 0.08) !important;
  --border2: rgba(0, 0, 0, 0.12) !important;
  --accent-color: #4CC5BA !important;
  --accent-hover: #3ab0a6 !important;
  --accent-dim: rgba(76, 197, 186, 0.12) !important;
  --red: #e05c5c !important;
  --red-dim: rgba(224, 92, 92, 0.15) !important;
}

html[data-a11y-theme="light"] * {
  --bg-color: #ffffff !important;
  --card-bg: #f8f9fa !important;
  --text-color: #1a1a1a !important;
  --text-muted: #4a4a4a !important;
  --text-dim: #333333 !important;
  --surface: #f5f5f5 !important;
  --surface2: #eeeeee !important;
  --surface3: #e8e8e8 !important;
  --border: rgba(0, 0, 0, 0.08) !important;
  --border2: rgba(0, 0, 0, 0.12) !important;
}

/* High contrast theme (black & white only) */
html[data-a11y-theme="high-contrast"],
html[data-a11y-theme="high-contrast"] * {
  --bg-color: #000000 !important;
  --card-bg: #000000 !important;
  --text-color: #ffffff !important;
  --text-muted: #ffffff !important;
  --text-dim: #ffffff !important;
  --surface: #1a1a1a !important;
  --surface2: #333333 !important;
  --surface3: #4d4d4d !important;
  --border: rgba(255, 255, 255, 0.8) !important;
  --border2: rgba(255, 255, 255, 1) !important;
}

/* Colorblind mode adjustments - Deuteranopia (Red-Green: use Blue & Orange) */
html[data-a11y-colorblind-mode="deuteranopia"] {
  --accent-color: #de8f05 !important;
  --accent-hover: #b86f00 !important;
  --accent-dim: rgba(222, 143, 5, 0.12) !important;
  --red: #0173b2 !important;
  --red-dim: rgba(1, 115, 178, 0.15) !important;
}

html[data-a11y-colorblind-mode="deuteranopia"] * {
  --accent-color: #de8f05 !important;
  --accent-hover: #b86f00 !important;
  --accent-dim: rgba(222, 143, 5, 0.12) !important;
  --red: #0173b2 !important;
  --red-dim: rgba(1, 115, 178, 0.15) !important;
}

/* Colorblind mode adjustments - Protanopia (Red-Green: same as Deuteranopia) */
html[data-a11y-colorblind-mode="protanopia"] {
  --accent-color: #de8f05 !important;
  --accent-hover: #b86f00 !important;
  --accent-dim: rgba(222, 143, 5, 0.12) !important;
  --red: #0173b2 !important;
  --red-dim: rgba(1, 115, 178, 0.15) !important;
}

html[data-a11y-colorblind-mode="protanopia"] * {
  --accent-color: #de8f05 !important;
  --accent-hover: #b86f00 !important;
  --accent-dim: rgba(222, 143, 5, 0.12) !important;
  --red: #0173b2 !important;
  --red-dim: rgba(1, 115, 178, 0.15) !important;
}

/* Colorblind mode adjustments - Tritanopia (Blue-Yellow: use Teal & Red) */
html[data-a11y-colorblind-mode="tritanopia"] {
  --accent-color: #4CC5BA !important;
  --accent-hover: #3ab0a6 !important;
  --accent-dim: rgba(76, 197, 186, 0.12) !important;
  --red: #e05c5c !important;
  --red-dim: rgba(224, 92, 92, 0.15) !important;
}

html[data-a11y-colorblind-mode="tritanopia"] * {
  --accent-color: #4CC5BA !important;
  --accent-hover: #3ab0a6 !important;
  --accent-dim: rgba(76, 197, 186, 0.12) !important;
  --red: #e05c5c !important;
  --red-dim: rgba(224, 92, 92, 0.15) !important;
}

/* Background shade adjustment */
[data-a11y-bg-shade] {
  --bg-shade-value: var(--a11y-bg-shade);
}

/* Apply accessibility overrides to text elements only */
body,
p,
span,
div,
h1,
h2,
h3,
h4,
h5,
h6,
a,
button,
input,
select,
textarea,
label {
  font-size: calc(1em * var(--a11y-font-size)) !important;
  font-weight: var(--a11y-font-weight) !important;
  letter-spacing: var(--a11y-letter-spacing) !important;
  line-height: calc(1.5 * var(--a11y-line-spacing)) !important;
}

/* Exclude icon fonts completely */
i,
svg,
.fa,
.fas,
.far,
.fal,
.fab,
[class*="icon"] {
  font-weight: normal !important;
  letter-spacing: normal !important;
  line-height: normal !important;
  font-family: FontAwesome, 'Font Awesome 5 Free', 'Font Awesome 5 Brands' !important;
}

/* Ensure text has sufficient contrast in high-contrast mode */
[data-a11y-high-contrast="true"] * {
  text-shadow: none !important;
}

/* Increase focus indicator visibility */
[data-a11y-high-contrast="true"] button:focus,
[data-a11y-high-contrast="true"] input:focus,
[data-a11y-high-contrast="true"] select:focus,
[data-a11y-high-contrast="true"] a:focus {
  outline: 3px solid var(--accent-color) !important;
  outline-offset: 2px !important;
}

/* Reduce animation when motion reduction is enabled */
[data-a11y-reduce-motion="true"] * {
  animation-duration: 0.01ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: 0.01ms !important;
  scroll-behavior: auto !important;
}
