/* Accessibility overrides for MkDocs Material header, tabs, and code tokens. */

:root {
  --qpyth-header-bg: #0b57a4;
  --qpyth-header-bg-dark: #083b73;
  --qpyth-header-fg: #ffffff;
  --qpyth-header-fg-muted: rgba(255, 255, 255, 0.92);
  --qpyth-code-constant: #4a2ea8;
  --qpyth-code-constant-dark: #c4b5fd;
  /* WCAG AA compliant link colors */
  --qpyth-link-color: #1565c0;
  --qpyth-link-color-dark: #64b5f6;
  --qpyth-link-hover: #0d47a1;
  --qpyth-link-hover-dark: #90caf9;
}

[data-md-color-scheme="default"] {
  --md-primary-fg-color: var(--qpyth-header-bg);
  --md-primary-fg-color--light: #2f6fb5;
  --md-primary-fg-color--dark: #083b73;
  --md-primary-bg-color: var(--qpyth-header-fg);
  --md-primary-bg-color--light: rgba(255, 255, 255, 0.92);
  --md-typeset-a-color: var(--qpyth-link-color);
}

[data-md-color-scheme="slate"] {
  --md-primary-fg-color: var(--qpyth-header-bg-dark);
  --md-primary-fg-color--light: #2f6fb5;
  --md-primary-fg-color--dark: #06284d;
  --md-primary-bg-color: var(--qpyth-header-fg);
  --md-primary-bg-color--light: rgba(255, 255, 255, 0.92);
  --md-typeset-a-color: var(--qpyth-link-color-dark);
}

/* Header contrast fixes */
.md-header__topic,
.md-header__topic .md-ellipsis,
.md-header__source,
.md-source,
.md-source__repository {
  color: var(--qpyth-header-fg-muted);
}

.md-header__topic:first-child,
.md-header__topic[data-md-component="header-topic"],
.md-header__topic[data-md-component="header-topic"] .md-ellipsis,
.md-source:focus,
.md-source:hover,
.md-source__repository {
  color: var(--qpyth-header-fg);
}

.md-tabs__link {
  color: var(--qpyth-header-fg-muted);
  opacity: 0.92;
}

.md-tabs__link:focus,
.md-tabs__link:hover,
.md-tabs__item--active .md-tabs__link {
  color: var(--qpyth-header-fg);
  opacity: 1;
}

/* WCAG AA: Navigation link contrast - minimum 4.5:1 */
.md-nav__link {
  color: #424242;
}

.md-nav__link--active,
.md-nav__link--active .md-ellipsis {
  color: #1565c0;
  font-weight: 600;
}

.md-nav__link:focus,
.md-nav__link:hover {
  color: #0d47a1;
}

/* Dark mode navigation contrast */
[data-md-color-scheme="slate"] .md-nav__link {
  color: #b0bec5;
}

[data-md-color-scheme="slate"] .md-nav__link--active,
[data-md-color-scheme="slate"] .md-nav__link--active .md-ellipsis {
  color: #64b5f6;
}

[data-md-color-scheme="slate"] .md-nav__link:focus,
[data-md-color-scheme="slate"] .md-nav__link:hover {
  color: #90caf9;
}

/* WCAG AA: Inline link contrast - minimum 4.5:1 */
.md-typeset a {
  color: var(--qpyth-link-color);
  text-decoration: underline;
  text-decoration-color: rgba(21, 101, 192, 0.4);
  text-underline-offset: 2px;
}

.md-typeset a:focus,
.md-typeset a:hover {
  color: var(--qpyth-link-hover);
  text-decoration-color: var(--qpyth-link-hover);
}

[data-md-color-scheme="slate"] .md-typeset a {
  color: var(--qpyth-link-color-dark);
  text-decoration-color: rgba(100, 181, 246, 0.4);
}

[data-md-color-scheme="slate"] .md-typeset a:focus,
[data-md-color-scheme="slate"] .md-typeset a:hover {
  color: var(--qpyth-link-hover-dark);
  text-decoration-color: var(--qpyth-link-hover-dark);
}

/* WCAG AA: List link contrast */
.md-typeset ul a,
.md-typeset ol a {
  color: var(--qpyth-link-color);
}

.md-typeset ul a:focus,
.md-typeset ul a:hover,
.md-typeset ol a:focus,
.md-typeset ol a:hover {
  color: var(--qpyth-link-hover);
}

[data-md-color-scheme="slate"] .md-typeset ul a,
[data-md-color-scheme="slate"] .md-typeset ol a {
  color: var(--qpyth-link-color-dark);
}

[data-md-color-scheme="slate"] .md-typeset ul a:focus,
[data-md-color-scheme="slate"] .md-typeset ul a:hover,
[data-md-color-scheme="slate"] .md-typeset ol a:focus,
[data-md-color-scheme="slate"] .md-typeset ol a:hover {
  color: var(--qpyth-link-hover-dark);
}

/* WCAG AA: Paragraph link contrast */
.md-typeset p a {
  color: var(--qpyth-link-color);
  font-weight: 500;
}

.md-typeset p a:focus,
.md-typeset p a:hover {
  color: var(--qpyth-link-hover);
}

[data-md-color-scheme="slate"] .md-typeset p a {
  color: var(--qpyth-link-color-dark);
}

[data-md-color-scheme="slate"] .md-typeset p a:focus,
[data-md-color-scheme="slate"] .md-typeset p a:hover {
  color: var(--qpyth-link-hover-dark);
}

/* Code syntax highlighting contrast */
[data-md-color-scheme="default"] .md-typeset .highlight .nb,
[data-md-color-scheme="default"] .md-typeset .highlight .bp,
[data-md-color-scheme="default"] .md-typeset .highlight .no {
  color: var(--qpyth-code-constant);
}

[data-md-color-scheme="slate"] .md-typeset .highlight .nb,
[data-md-color-scheme="slate"] .md-typeset .highlight .bp,
[data-md-color-scheme="slate"] .md-typeset .highlight .no {
  color: var(--qpyth-code-constant-dark);
}

/* Focus states for accessibility */
.md-nav__link:focus,
.md-typeset a:focus {
  outline: 2px solid var(--qpyth-link-color);
  outline-offset: 2px;
}

[data-md-color-scheme="slate"] .md-nav__link:focus,
[data-md-color-scheme="slate"] .md-typeset a:focus {
  outline-color: var(--qpyth-link-color-dark);
}