/* Barbacana brand palette
 *
 * Sampled from the Barbacana fortress logo — white castle on royal blue.
 * Overrides Material's CSS custom properties for both light and dark schemes.
 */

:root {
  /* Brand blues — Barbacana royal blue */
  --bb-primary:        #1A4FBE;
  --bb-primary-dark:   #153F97;
  --bb-primary-light:  #4A78D2;   /* reserved for dark-scheme foregrounds */
  --bb-primary-muted:  rgba(26, 79, 190, 0.10);

  /* Severity palette (shared across schemes) */
  --bb-critical: #E24B4A;
  --bb-high:     #EB7240;
  --bb-medium:   #F2B348;
  --bb-low:      #3CC18D;
  --bb-info:     #5AA3E6;
}

/* ─── Light scheme ───────────────────────────────────────── */
[data-md-color-scheme="default"] {
  --bb-bg:            #F6F8FC;
  --bb-surface:       #E6ECF4;
  --bb-text:          #14213D;
  --bb-text-2:        #5A6B87;
  --bb-border:        rgba(71, 96, 133, 0.28);
  --bb-border-strong: rgba(71, 96, 133, 0.50);

  --md-primary-fg-color:        var(--bb-primary);
  --md-primary-fg-color--light: var(--bb-primary);
  --md-primary-fg-color--dark:  var(--bb-primary-dark);
  --md-primary-bg-color:        #FFFFFF;
  --md-primary-bg-color--light: rgba(255, 255, 255, 0.7);

  --md-accent-fg-color:              var(--bb-primary-dark);
  --md-accent-fg-color--transparent: var(--bb-primary-muted);
  --md-accent-bg-color:              #FFFFFF;
  --md-accent-bg-color--light:       rgba(255, 255, 255, 0.7);

  --md-default-bg-color:           var(--bb-bg);
  --md-default-fg-color:           var(--bb-text);
  --md-default-fg-color--light:    var(--bb-text-2);
  --md-default-fg-color--lighter:  rgba(90, 107, 135, 0.40);
  --md-default-fg-color--lightest: rgba(90, 107, 135, 0.15);

  --md-typeset-a-color:     var(--bb-primary);

  --md-code-bg-color:       var(--bb-surface);
  --md-code-fg-color:       var(--bb-text);

  --md-footer-bg-color:       var(--bb-text);
  --md-footer-bg-color--dark: #0B1220;
}

/* ─── Dark scheme (slate) ────────────────────────────────── */
[data-md-color-scheme="slate"] {
  --bb-bg:            #0F1724;
  --bb-surface:       #172236;
  --bb-text:          #E6ECF4;
  --bb-text-2:        #8AA0BE;
  --bb-border:        rgba(138, 160, 190, 0.22);
  --bb-border-strong: rgba(138, 160, 190, 0.44);

  /* Primary shifts lighter in dark mode so it stays legible as a link color */
  --md-primary-fg-color:        var(--bb-primary-light);
  --md-primary-fg-color--light: var(--bb-primary-light);
  --md-primary-fg-color--dark:  var(--bb-primary);
  --md-primary-bg-color:        #FFFFFF;
  --md-primary-bg-color--light: rgba(255, 255, 255, 0.7);

  --md-accent-fg-color:              var(--bb-primary-light);
  --md-accent-fg-color--transparent: rgba(74, 120, 210, 0.15);
  --md-accent-bg-color:              #FFFFFF;
  --md-accent-bg-color--light:       rgba(255, 255, 255, 0.7);

  --md-default-bg-color:           var(--bb-bg);
  --md-default-fg-color:           var(--bb-text);
  --md-default-fg-color--light:    var(--bb-text-2);
  --md-default-fg-color--lighter:  rgba(138, 160, 190, 0.40);
  --md-default-fg-color--lightest: rgba(138, 160, 190, 0.15);

  --md-typeset-a-color:     var(--bb-primary-light);

  --md-code-bg-color:       var(--bb-surface);
  --md-code-fg-color:       var(--bb-text);

  --md-footer-bg-color:       #0B1220;
  --md-footer-bg-color--dark: #070C16;
}

/* ─── Shared components (theme-agnostic, driven by --bb-* tokens) ─── */

/* Cards / panels on the landing page */
.md-typeset .grid.cards > :is(ul, ol) > li,
.md-typeset .grid > .card {
  background-color: var(--bb-surface);
  border: 1px solid var(--bb-border);
  border-radius: 6px;
}

/* Admonitions: recolor accents with the severity palette */
.md-typeset .admonition.danger,
.md-typeset details.danger {
  border-color: var(--bb-critical);
}
.md-typeset .danger > .admonition-title,
.md-typeset .danger > summary {
  background-color: rgba(226, 75, 74, 0.10);
  border-color: var(--bb-critical);
}
.md-typeset .danger > .admonition-title::before,
.md-typeset .danger > summary::before {
  background-color: var(--bb-critical);
}

.md-typeset .admonition.warning,
.md-typeset details.warning {
  border-color: var(--bb-high);
}
.md-typeset .warning > .admonition-title,
.md-typeset .warning > summary {
  background-color: rgba(235, 114, 64, 0.10);
  border-color: var(--bb-high);
}
.md-typeset .warning > .admonition-title::before,
.md-typeset .warning > summary::before {
  background-color: var(--bb-high);
}

.md-typeset .admonition.tip,
.md-typeset details.tip {
  border-color: var(--bb-low);
}
.md-typeset .tip > .admonition-title,
.md-typeset .tip > summary {
  background-color: rgba(60, 193, 141, 0.10);
  border-color: var(--bb-low);
}
.md-typeset .tip > .admonition-title::before,
.md-typeset .tip > summary::before {
  background-color: var(--bb-low);
}

.md-typeset .admonition.info,
.md-typeset details.info,
.md-typeset .admonition.note,
.md-typeset details.note {
  border-color: var(--bb-info);
}
.md-typeset :is(.info, .note) > .admonition-title,
.md-typeset :is(.info, .note) > summary {
  background-color: rgba(90, 163, 230, 0.10);
  border-color: var(--bb-info);
}
.md-typeset :is(.info, .note) > .admonition-title::before,
.md-typeset :is(.info, .note) > summary::before {
  background-color: var(--bb-info);
}

/* Tables: subtle borders in both schemes */
.md-typeset table:not([class]) {
  border: 1px solid var(--bb-border);
}
.md-typeset table:not([class]) th {
  background-color: var(--bb-surface);
  color: var(--bb-text);
}
