/* Low-Stimulation Mode */
body.low-stimulus {
  --bg-primary: #F5F5F0;
  --bg-surface: #FCFCFA;
  --bg-subtle: #ECECE6;
  --bg-card: #FCFCFA;
  --bg-accent-soft: #E5E9E7;
  --bg-lavender-soft: #E8E8EC;
  --bg-amber-soft: #EFECE6;
  --bg-blue-soft: #E6EAEF;
  --text-primary: #2B2F33;
  --text-secondary: #4A5056;
  --text-muted: #6C7278;
  --brand-primary: #3C5A50;
  --brand-primary-hover: #2E453D;
  --brand-secondary: #57526D;
  --brand-tertiary: #876C4B;
  --border-subtle: #D8D8D0;
  --border-card: #D8D8D0;
  --shadow-sm: none;
  --shadow-md: none;
  --shadow-lg: 0 2px 6px rgba(0,0,0,0.05);
}
body.low-stimulus * { animation: none !important; transition: none !important; }

/* Dyslexia-Friendly Mode */
body.dyslexia-font {
  --font-family: 'Lexend', 'Comic Sans MS', sans-serif;
  --font-heading: 'Lexend', 'Comic Sans MS', sans-serif;
  --letter-spacing-base: 0.04em;
  --line-height-base: 1.8;
}

/* High-Contrast AAA Mode */
body.high-contrast {
  --bg-primary: #0F172A;
  --bg-surface: #1E293B;
  --bg-subtle: #334155;
  --bg-card: #1E293B;
  --bg-accent-soft: #14352D;
  --bg-lavender-soft: #2D2545;
  --bg-blue-soft: #1E3A8A;
  --bg-amber-soft: #452D12;
  --text-primary: #F8FAFC;
  --text-secondary: #E2E8F0;
  --text-muted: #CBD5E1;
  --text-inverse: #0F172A;
  --brand-primary: #34D399;
  --brand-primary-hover: #10B981;
  --brand-secondary: #C084FC;
  --brand-tertiary: #FBBF24;
  --border-subtle: #475569;
  --border-card: #64748B;
  --border-focus: #FBBF24;
  --focus-ring: 3px solid #FBBF24;
}
body.high-contrast a { color: #38BDF8; text-decoration-thickness: 2px; }
body.high-contrast .btn-primary { background-color: #34D399; color: #0F172A; font-weight: 700; }

body.font-scale-lg { font-size: 1.15rem; }
body.font-scale-xl { font-size: 1.3rem; }

/* A11y Toolbar */
.a11y-bar {
  background-color: var(--bg-surface);
  border-bottom: 1px solid var(--border-subtle);
  padding: 0.4rem 0;
  font-size: 0.85rem;
  color: var(--text-secondary);
}
.a11y-bar .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.a11y-controls { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.a11y-btn {
  background: var(--bg-subtle);
  border: 1px solid var(--border-subtle);
  color: var(--text-primary);
  font-family: var(--font-family);
  font-size: 0.8rem;
  padding: 0.25rem 0.6rem;
  border-radius: var(--radius-sm);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  transition: all 0.2s ease;
}
.a11y-btn:hover { background: var(--bg-accent-soft); border-color: var(--brand-primary); }
.a11y-btn.active { background: var(--brand-primary); color: var(--text-inverse); border-color: var(--brand-primary); }

/* Screen reader only helper */
.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* Accessible focus visible styles */
:focus-visible {
    outline: 3px solid var(--primary) !important;
    outline-offset: 2px !important;
    border-radius: 4px !important;
}

/* Enhanced center-aligned skip link */
.skip-link {
    position: absolute;
    top: -1000px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--primary);
    color: white !important;
    padding: 1rem 2rem;
    z-index: 10000;
    font-weight: 700;
    border-radius: 8px;
    text-decoration: none;
    box-shadow: 0 4px 16px rgba(0,0,0,0.15);
    transition: top 0.2s ease;
}

.skip-link:focus {
    top: 1rem;
}
