/* ══════════════════════════════════════════════════════════════
   Array HQ — MkDocs Material color-variable bridge
   Binds Material's --md-* variables to canonical semantic tokens
   defined in tokens.css. NEVER bind to primitives directly here.

   Source palette: @powered-by-array/tokens (blue-anchored brand)
   ══════════════════════════════════════════════════════════════ */


/* ── Light Scheme: "array" ─────────────────────────────────── */

[data-md-color-scheme="array"] {

  /* Primary chrome (header, top bar, footer band) — deep navy anchor */
  --md-primary-fg-color:        var(--color-brand-dark-anchor);
  --md-primary-fg-color--light: var(--color-blue-400);
  --md-primary-fg-color--dark:  var(--color-brand-dark-anchor);
  --md-primary-bg-color:        var(--color-neutral-50);
  --md-primary-bg-color--light: rgba(250, 250, 250, 0.7);

  /* Accent — hovers, buttons, scrollbars (blue, not purple) */
  --md-accent-fg-color:              var(--color-semantic-accent-brand-primary);
  --md-accent-fg-color--transparent: rgba(52, 98, 223, 0.1);
  --md-accent-bg-color:              var(--color-neutral-0);
  --md-accent-bg-color--light:       rgba(255, 255, 255, 0.7);

  /* Default surface & text */
  --md-default-fg-color:           var(--color-semantic-fg-primary);
  --md-default-fg-color--light:    var(--color-semantic-fg-muted);
  --md-default-fg-color--lighter:  var(--color-neutral-400);
  --md-default-fg-color--lightest: var(--color-neutral-200);
  --md-default-bg-color:           var(--color-semantic-bg-base);
  --md-default-bg-color--light:    rgba(250, 250, 250, 0.7);
  --md-default-bg-color--lighter:  rgba(250, 250, 250, 0.3);
  --md-default-bg-color--lightest: rgba(250, 250, 250, 0.07);

  /* Code blocks */
  --md-code-fg-color:          var(--color-neutral-900);
  --md-code-bg-color:          var(--color-blue-50);
  --md-code-hl-color:          rgba(106, 155, 255, 0.2);
  --md-code-hl-keyword-color:  var(--color-blue-700);
  --md-code-hl-string-color:   var(--color-green-700);
  --md-code-hl-number-color:   var(--color-blue-500);
  --md-code-hl-comment-color:  var(--color-neutral-400);
  --md-code-hl-function-color: var(--color-blue-500);
  --md-code-hl-special-color:  var(--color-blue-700);
  --md-code-hl-constant-color: var(--color-blue-500);
  --md-code-hl-name-color:     var(--color-blue-700);

  /* Typeset */
  --md-typeset-color:       var(--color-semantic-fg-primary);
  --md-typeset-a-color:     var(--color-semantic-accent-link);
  --md-typeset-del-color:   rgba(255, 71, 73, 0.15);
  --md-typeset-ins-color:   rgba(32, 212, 152, 0.15);
  --md-typeset-mark-color:  rgba(237, 178, 0, 0.25);
  --md-typeset-table-color: rgba(24, 26, 28, 0.12);

  /* Footer */
  --md-footer-fg-color:          var(--color-neutral-50);
  --md-footer-fg-color--light:   rgba(250, 250, 250, 0.7);
  --md-footer-fg-color--lighter: rgba(250, 250, 250, 0.3);
  --md-footer-bg-color:          var(--color-brand-dark-anchor);
  --md-footer-bg-color--dark:    var(--color-brand-dark-anchor);

  /* Warning bar */
  --md-warning-fg-color: var(--color-yellow-800);
  --md-warning-bg-color: var(--color-yellow-50);
}


/* ── Dark Scheme: "array-dark" ─────────────────────────────── */

[data-md-color-scheme="array-dark"] {

  /* Primary chrome — keep the deep anchor consistent in dark mode */
  --md-primary-fg-color:        var(--color-brand-dark-anchor);
  --md-primary-fg-color--light: var(--color-blue-400);
  --md-primary-fg-color--dark:  var(--color-neutral-950);
  --md-primary-bg-color:        var(--color-brand-dark-anchor);
  --md-primary-bg-color--light: rgba(8, 12, 22, 0.7);

  /* Accent shifts to blue-300 for legibility on dark */
  --md-accent-fg-color:              var(--color-blue-300);
  --md-accent-fg-color--transparent: rgba(106, 155, 255, 0.1);
  --md-accent-bg-color:              var(--color-brand-dark-anchor);
  --md-accent-bg-color--light:       rgba(8, 12, 22, 0.7);

  --md-default-fg-color:           var(--color-semantic-fg-primary);
  --md-default-fg-color--light:    var(--color-neutral-200);
  --md-default-fg-color--lighter:  var(--color-neutral-300);
  --md-default-fg-color--lightest: var(--color-neutral-500);
  --md-default-bg-color:           var(--color-semantic-bg-base);
  --md-default-bg-color--light:    var(--color-semantic-bg-raised);
  --md-default-bg-color--lighter:  var(--color-semantic-bg-overlay);
  --md-default-bg-color--lightest: var(--color-semantic-bg-elevated);

  --md-code-fg-color:          var(--color-neutral-100);
  --md-code-bg-color:          var(--color-surface-navy-1);
  --md-code-hl-color:          rgba(106, 155, 255, 0.2);
  --md-code-hl-keyword-color:  var(--color-blue-300);
  --md-code-hl-string-color:   var(--color-green-400);
  --md-code-hl-number-color:   var(--color-blue-300);
  --md-code-hl-comment-color:  var(--color-neutral-300);
  --md-code-hl-function-color: var(--color-blue-300);
  --md-code-hl-special-color:  var(--color-blue-400);
  --md-code-hl-constant-color: var(--color-blue-300);
  --md-code-hl-name-color:     var(--color-blue-400);

  --md-typeset-color:       var(--color-neutral-50);
  --md-typeset-a-color:     var(--color-semantic-accent-link);
  --md-typeset-del-color:   rgba(255, 71, 73, 0.15);
  --md-typeset-ins-color:   rgba(32, 212, 152, 0.15);
  --md-typeset-mark-color:  rgba(237, 178, 0, 0.25);
  --md-typeset-table-color: rgba(250, 250, 250, 0.12);

  --md-footer-fg-color:          var(--color-neutral-50);
  --md-footer-fg-color--light:   rgba(250, 250, 250, 0.7);
  --md-footer-fg-color--lighter: rgba(250, 250, 250, 0.3);
  --md-footer-bg-color:          var(--color-brand-dark-anchor);
  --md-footer-bg-color--dark:    var(--color-brand-dark-anchor);

  --md-warning-fg-color: var(--color-yellow-800);
  --md-warning-bg-color: var(--color-yellow-50);
}


/* ══════════════════════════════════════════════════════════════
   Element-level overrides — bound to semantic tokens only
   ══════════════════════════════════════════════════════════════ */

/* ── Links: hover, active, visited ─────────────────────────── */

[data-md-color-scheme="array"] .md-typeset a:hover  { color: var(--color-blue-700); }
[data-md-color-scheme="array"] .md-typeset a:active { color: var(--color-blue-800); }
[data-md-color-scheme="array"] .md-typeset a:visited { color: var(--color-blue-700); }
[data-md-color-scheme="array-dark"] .md-typeset a:hover { color: var(--color-blue-200); }

/* ── Left sidebar nav ──────────────────────────────────────── */

[data-md-color-scheme="array"] .md-nav__link {
  color: var(--color-neutral-700);
}
[data-md-color-scheme="array"] .md-nav__link:hover {
  color: var(--color-semantic-accent-brand-primary);
  background-color: rgba(52, 98, 223, 0.06);
  border-radius: var(--array-radius-sm);
  transition: background-color 0.15s ease, color 0.15s ease;
}
[data-md-color-scheme="array"] .md-nav__link--active,
[data-md-color-scheme="array"] .md-nav__link--active:hover {
  color: var(--color-semantic-accent-brand-primary);
}
[data-md-color-scheme="array"] .md-nav__link--active {
  border-left: 3px solid var(--color-semantic-accent-brand-primary);
  padding-left: calc(0.6rem - 3px);
}
[data-md-color-scheme="array"] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb {
  background-color: rgba(52, 98, 223, 0.3);
}
[data-md-color-scheme="array"] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover {
  background-color: var(--color-semantic-accent-brand-primary);
}

[data-md-color-scheme="array-dark"] .md-nav__link:hover {
  color: var(--color-blue-300);
  background-color: rgba(106, 155, 255, 0.1);
  border-radius: var(--array-radius-sm);
  transition: background-color 0.15s ease, color 0.15s ease;
}

/* ── Navigation tabs ───────────────────────────────────────── */

[data-md-color-scheme="array"] .md-tabs__link--active,
[data-md-color-scheme="array-dark"] .md-tabs__link--active {
  border-bottom: 2px solid var(--color-blue-400);
}

/* ── Right sidebar TOC ─────────────────────────────────────── */

[data-md-color-scheme="array"] .md-sidebar--secondary .md-nav__link {
  color: var(--color-semantic-fg-muted);
}
[data-md-color-scheme="array"] .md-sidebar--secondary .md-nav__link:hover {
  color: var(--color-semantic-accent-brand-primary);
}
[data-md-color-scheme="array"] .md-sidebar--secondary .md-nav__link--active {
  color: var(--color-semantic-accent-brand-primary);
  border-left: 2px solid var(--color-semantic-accent-brand-primary);
}

/* ── Inline code ──────────────────────────────────────────── */

[data-md-color-scheme="array"] .md-typeset code {
  background-color: var(--color-blue-50);
  color: var(--color-neutral-900);
  border: 1px solid var(--color-blue-100);
}
[data-md-color-scheme="array-dark"] .md-typeset code {
  background-color: var(--color-surface-navy-1);
  color: var(--color-neutral-100);
  border: 1px solid var(--color-surface-navy-2);
}

/* ── Tables ───────────────────────────────────────────────── */

[data-md-color-scheme="array"] .md-typeset table:not([class]) th {
  background-color: var(--color-neutral-50);
  color: var(--color-neutral-700);
  border-bottom: 2px solid var(--color-neutral-300);
}
[data-md-color-scheme="array"] .md-typeset table:not([class]) td {
  border-bottom: 1px solid rgba(184, 188, 192, 0.5);
}
[data-md-color-scheme="array"] .md-typeset table:not([class]) tr:hover td {
  background-color: rgba(236, 242, 255, 0.5);
}

/* ══════════════════════════════════════════════════════════════
   Admonitions
   ══════════════════════════════════════════════════════════════ */

/* Note / Info */
[data-md-color-scheme="array"] .md-typeset .admonition.note,
[data-md-color-scheme="array"] .md-typeset details.note,
[data-md-color-scheme="array"] .md-typeset .admonition.info,
[data-md-color-scheme="array"] .md-typeset details.info {
  border-color: var(--color-blue-300);
  background-color: var(--color-blue-50);
}
[data-md-color-scheme="array"] .md-typeset .note > .admonition-title,
[data-md-color-scheme="array"] .md-typeset .note > summary,
[data-md-color-scheme="array"] .md-typeset .info > .admonition-title,
[data-md-color-scheme="array"] .md-typeset .info > summary {
  background-color: rgba(106, 155, 255, 0.15);
  border-color: var(--color-blue-300);
  color: var(--color-blue-500);
}

/* Tip / Success */
[data-md-color-scheme="array"] .md-typeset .admonition.tip,
[data-md-color-scheme="array"] .md-typeset details.tip,
[data-md-color-scheme="array"] .md-typeset .admonition.success,
[data-md-color-scheme="array"] .md-typeset details.success {
  border-color: var(--color-green-500);
  background-color: var(--color-green-50);
}
[data-md-color-scheme="array"] .md-typeset .tip > .admonition-title,
[data-md-color-scheme="array"] .md-typeset .tip > summary,
[data-md-color-scheme="array"] .md-typeset .success > .admonition-title,
[data-md-color-scheme="array"] .md-typeset .success > summary {
  background-color: rgba(32, 212, 152, 0.15);
  border-color: var(--color-green-500);
  color: var(--color-green-700);
}

/* Warning */
[data-md-color-scheme="array"] .md-typeset .admonition.warning,
[data-md-color-scheme="array"] .md-typeset details.warning {
  border-color: var(--color-yellow-500);
  background-color: var(--color-yellow-50);
}
[data-md-color-scheme="array"] .md-typeset .warning > .admonition-title,
[data-md-color-scheme="array"] .md-typeset .warning > summary {
  background-color: rgba(237, 178, 0, 0.15);
  border-color: var(--color-yellow-500);
  color: var(--color-yellow-800);
}

/* Danger */
[data-md-color-scheme="array"] .md-typeset .admonition.danger,
[data-md-color-scheme="array"] .md-typeset details.danger {
  border-color: var(--color-red-500);
  background-color: var(--color-red-50);
}
[data-md-color-scheme="array"] .md-typeset .danger > .admonition-title,
[data-md-color-scheme="array"] .md-typeset .danger > summary {
  background-color: rgba(255, 71, 73, 0.15);
  border-color: var(--color-red-500);
  color: var(--color-red-700);
}

/* Abstract / Summary */
[data-md-color-scheme="array"] .md-typeset .admonition.abstract,
[data-md-color-scheme="array"] .md-typeset details.abstract,
[data-md-color-scheme="array"] .md-typeset .admonition.summary,
[data-md-color-scheme="array"] .md-typeset details.summary {
  border-color: var(--color-blue-400);
  background-color: var(--color-blue-50);
}
[data-md-color-scheme="array"] .md-typeset .abstract > .admonition-title,
[data-md-color-scheme="array"] .md-typeset .abstract > summary,
[data-md-color-scheme="array"] .md-typeset .summary > .admonition-title,
[data-md-color-scheme="array"] .md-typeset .summary > summary {
  background-color: rgba(75, 125, 252, 0.15);
  border-color: var(--color-blue-400);
  color: var(--color-blue-700);
}

/* Example — yellow accent (brand highlight) */
[data-md-color-scheme="array"] .md-typeset .admonition.example,
[data-md-color-scheme="array"] .md-typeset details.example {
  border-color: var(--color-yellow-500);
  background-color: var(--color-yellow-50);
}
[data-md-color-scheme="array"] .md-typeset .example > .admonition-title,
[data-md-color-scheme="array"] .md-typeset .example > summary {
  background-color: rgba(237, 178, 0, 0.15);
  border-color: var(--color-yellow-500);
  color: var(--color-yellow-800);
}

/* Quote */
[data-md-color-scheme="array"] .md-typeset .admonition.quote,
[data-md-color-scheme="array"] .md-typeset details.quote {
  border-color: var(--color-neutral-400);
  background-color: var(--color-neutral-50);
}
[data-md-color-scheme="array"] .md-typeset .quote > .admonition-title,
[data-md-color-scheme="array"] .md-typeset .quote > summary {
  background-color: rgba(122, 129, 136, 0.1);
  border-color: var(--color-neutral-400);
  color: var(--color-neutral-700);
}

/* ── Search modal ─────────────────────────────────────────── */

[data-md-color-scheme="array"] .md-search__input:focus {
  border-color: var(--color-semantic-accent-brand-primary);
}
[data-md-color-scheme="array"] .md-search-result__link:hover {
  background-color: var(--color-blue-50);
}

/* ── Announcement bar ─────────────────────────────────────── */

[data-md-color-scheme="array"] .md-banner {
  background-color: var(--color-semantic-accent-brand-primary);
  color: var(--color-neutral-0);
}
[data-md-color-scheme="array"] .md-banner a {
  color: var(--color-neutral-0);
  text-decoration: underline;
}

/* ── Footer link hover ────────────────────────────────────── */

.md-footer a:hover { color: var(--color-blue-300); }
.md-footer .md-icon:hover { color: var(--color-neutral-50); }


/* ══════════════════════════════════════════════════════════════
   Material Admonition CSS var overrides
   ══════════════════════════════════════════════════════════════ */

[data-md-color-scheme="array"] {
  --md-admonition-fg-color--note:     var(--color-neutral-900);
  --md-admonition-bg-color--note:     var(--color-blue-50);
  --md-admonition-fg-color--info:     var(--color-neutral-900);
  --md-admonition-bg-color--info:     var(--color-blue-50);
  --md-admonition-fg-color--tip:      var(--color-neutral-900);
  --md-admonition-bg-color--tip:      var(--color-green-50);
  --md-admonition-fg-color--success:  var(--color-neutral-900);
  --md-admonition-bg-color--success:  var(--color-green-50);
  --md-admonition-fg-color--warning:  var(--color-neutral-900);
  --md-admonition-bg-color--warning:  var(--color-yellow-50);
  --md-admonition-fg-color--danger:   var(--color-neutral-900);
  --md-admonition-bg-color--danger:   var(--color-red-50);
  --md-admonition-fg-color--abstract: var(--color-neutral-900);
  --md-admonition-bg-color--abstract: var(--color-blue-50);
  --md-admonition-fg-color--example:  var(--color-neutral-900);
  --md-admonition-bg-color--example:  var(--color-yellow-50);
  --md-admonition-fg-color--quote:    var(--color-neutral-900);
  --md-admonition-bg-color--quote:    var(--color-neutral-50);
}


/* ══════════════════════════════════════════════════════════════
   Logo sizing
   ══════════════════════════════════════════════════════════════ */

.md-header__button.md-logo img,
.md-header__button.md-logo svg {
  height: 28px;
  width: auto;
}
