/* Tarn theme for Zensical (zensical-tarn) — GENERATED from design/tokens.json
   by scripts/build_css.py. Do not edit by hand. Loaded by the theme's main.html. */

:root {
  --md-default-bg-color: #eae5df;
  --md-default-bg-color--light: #dfdad3;
  --md-default-fg-color: #17202c;
  --md-default-fg-color--light: #3e4a5a;
  --md-default-fg-color--lighter: #4f5b6b;
  --md-default-fg-color--lightest: #ccc6bf;
  --tarn-brand: #1a54b0;
  --tarn-brand-tint: #d2e1f7;
  --tarn-brand-strong: #13448c;
  --tarn-on-brand: #ffffff;
  --md-typeset-color: #17202c;
  --md-typeset-mark-color: #fbeaa8;
  --md-typeset-table-color: #ccc6bf;
  --md-typeset-table-color--light: #ddd8d1;
  --md-typeset-kbd-color: #f7f5f1;
  --md-typeset-kbd-accent-color: #f7f5f1;
  --md-typeset-kbd-border-color: #7a736b;
  --md-code-bg-color: #dfdad3;
  --md-code-fg-color: #17202c;
  --md-code-hl-color: #1a54b0;
  --md-code-hl-color--light: #ccd9ec;
  --md-code-hl-keyword-color: #1b4e9f;
  --md-code-hl-string-color: #23633b;
  --md-code-hl-number-color: #88460c;
  --md-code-hl-constant-color: #88460c;
  --md-code-hl-function-color: #663893;
  --md-code-hl-name-color: #17202c;
  --md-code-hl-variable-color: #17202c;
  --md-code-hl-special-color: #88460c;
  --md-code-hl-operator-color: #3e4a5a;
  --md-code-hl-punctuation-color: #3e4a5a;
  --md-code-hl-comment-color: #4f5b6a;
  --md-code-hl-generic-color: #4f5b6a;
  --md-footer-bg-color: #dfdad3;
  --md-footer-bg-color--dark: #dfdad3;
  --md-footer-fg-color: #17202c;
  --md-footer-fg-color--light: #3e4a5a;
  --md-footer-fg-color--lighter: #4f5b6b;
  --md-admonition-bg-color: #eae5df;
  --md-admonition-fg-color: #17202c;
  --tarn-line: #ccc6bf;
  --tarn-line-strong: #7a736b;
  --tarn-raised: #f7f5f1;
  --tarn-hover: #ddd8d1;
  --tarn-inline-bg: #d9d3cc;
  --tarn-inline-ink: #642b87;
  --tarn-info: #1a54b0;
  --tarn-info-tint: #d2e1f7;
  --tarn-success: #256a3f;
  --tarn-success-tint: #cee7d4;
  --tarn-warning: #7c4f00;
  --tarn-warning-tint: #f4e1ba;
  --tarn-danger: #a42929;
  --tarn-danger-tint: #f6d7d5;
  --tarn-neutral: #3e4a5a;
  --tarn-neutral-tint: #dfdad3;
  --tarn-tutorial: #256a3f;
  --tarn-tutorial-tint: #cee7d4;
  --tarn-howto: #1a54b0;
  --tarn-howto-tint: #d2e1f7;
  --tarn-reference: #435163;
  --tarn-reference-tint: #d7dde4;
  --tarn-explanation: #7e5107;
  --tarn-explanation-tint: #f1dfc0;
  --tarn-shadow: 0 8px 24px rgba(23, 32, 44, 0.12), 0 1px 3px rgba(23, 32, 44, 0.08);
}

/* Light: scheme "default" */
[data-md-color-scheme="default"] {
  --md-default-bg-color: #eae5df;
  --md-default-bg-color--light: #dfdad3;
  --md-default-fg-color: #17202c;
  --md-default-fg-color--light: #3e4a5a;
  --md-default-fg-color--lighter: #4f5b6b;
  --md-default-fg-color--lightest: #ccc6bf;
  --tarn-brand: #1a54b0;
  --tarn-brand-tint: #d2e1f7;
  --tarn-brand-strong: #13448c;
  --tarn-on-brand: #ffffff;
  --md-typeset-color: #17202c;
  --md-typeset-mark-color: #fbeaa8;
  --md-typeset-table-color: #ccc6bf;
  --md-typeset-table-color--light: #ddd8d1;
  --md-typeset-kbd-color: #f7f5f1;
  --md-typeset-kbd-accent-color: #f7f5f1;
  --md-typeset-kbd-border-color: #7a736b;
  --md-code-bg-color: #dfdad3;
  --md-code-fg-color: #17202c;
  --md-code-hl-color: #1a54b0;
  --md-code-hl-color--light: #ccd9ec;
  --md-code-hl-keyword-color: #1b4e9f;
  --md-code-hl-string-color: #23633b;
  --md-code-hl-number-color: #88460c;
  --md-code-hl-constant-color: #88460c;
  --md-code-hl-function-color: #663893;
  --md-code-hl-name-color: #17202c;
  --md-code-hl-variable-color: #17202c;
  --md-code-hl-special-color: #88460c;
  --md-code-hl-operator-color: #3e4a5a;
  --md-code-hl-punctuation-color: #3e4a5a;
  --md-code-hl-comment-color: #4f5b6a;
  --md-code-hl-generic-color: #4f5b6a;
  --md-footer-bg-color: #dfdad3;
  --md-footer-bg-color--dark: #dfdad3;
  --md-footer-fg-color: #17202c;
  --md-footer-fg-color--light: #3e4a5a;
  --md-footer-fg-color--lighter: #4f5b6b;
  --md-admonition-bg-color: #eae5df;
  --md-admonition-fg-color: #17202c;
  --tarn-line: #ccc6bf;
  --tarn-line-strong: #7a736b;
  --tarn-raised: #f7f5f1;
  --tarn-hover: #ddd8d1;
  --tarn-inline-bg: #d9d3cc;
  --tarn-inline-ink: #642b87;
  --tarn-info: #1a54b0;
  --tarn-info-tint: #d2e1f7;
  --tarn-success: #256a3f;
  --tarn-success-tint: #cee7d4;
  --tarn-warning: #7c4f00;
  --tarn-warning-tint: #f4e1ba;
  --tarn-danger: #a42929;
  --tarn-danger-tint: #f6d7d5;
  --tarn-neutral: #3e4a5a;
  --tarn-neutral-tint: #dfdad3;
  --tarn-tutorial: #256a3f;
  --tarn-tutorial-tint: #cee7d4;
  --tarn-howto: #1a54b0;
  --tarn-howto-tint: #d2e1f7;
  --tarn-reference: #435163;
  --tarn-reference-tint: #d7dde4;
  --tarn-explanation: #7e5107;
  --tarn-explanation-tint: #f1dfc0;
  --tarn-shadow: 0 8px 24px rgba(23, 32, 44, 0.12), 0 1px 3px rgba(23, 32, 44, 0.08);
}

/* Dark: scheme "slate" (starlit indigo) */
[data-md-color-scheme="slate"] {
  --md-hue: 268;
  --md-default-bg-color: #141a36;
  --md-default-bg-color--light: #0b1028;
  --md-default-fg-color: #e7e9ee;
  --md-default-fg-color--light: #bfc2d0;
  --md-default-fg-color--lighter: #979aad;
  --md-default-fg-color--lightest: #2c344f;
  --tarn-brand: #8fb4f8;
  --tarn-brand-tint: #1a2c53;
  --tarn-brand-strong: #b3cfff;
  --tarn-on-brand: #0b1023;
  --md-typeset-color: #e7e9ee;
  --md-typeset-mark-color: #604914;
  --md-typeset-table-color: #2c344f;
  --md-typeset-table-color--light: #1e2543;
  --md-typeset-kbd-color: #202847;
  --md-typeset-kbd-accent-color: #202847;
  --md-typeset-kbd-border-color: #777f9b;
  --md-code-bg-color: #0b1028;
  --md-code-fg-color: #e7e9ee;
  --md-code-hl-color: #8fb4f8;
  --md-code-hl-color--light: #122246;
  --md-code-hl-keyword-color: #8eb8fe;
  --md-code-hl-string-color: #81d39f;
  --md-code-hl-number-color: #efaf6f;
  --md-code-hl-constant-color: #efaf6f;
  --md-code-hl-function-color: #cbafed;
  --md-code-hl-name-color: #e7e9ee;
  --md-code-hl-variable-color: #e7e9ee;
  --md-code-hl-special-color: #efaf6f;
  --md-code-hl-operator-color: #bfc2d0;
  --md-code-hl-punctuation-color: #bfc2d0;
  --md-code-hl-comment-color: #8c91a8;
  --md-code-hl-generic-color: #8c91a8;
  --md-footer-bg-color: #0b1028;
  --md-footer-bg-color--dark: #0b1028;
  --md-footer-fg-color: #e7e9ee;
  --md-footer-fg-color--light: #bfc2d0;
  --md-footer-fg-color--lighter: #979aad;
  --md-admonition-bg-color: #141a36;
  --md-admonition-fg-color: #e7e9ee;
  --tarn-line: #2c344f;
  --tarn-line-strong: #777f9b;
  --tarn-raised: #202847;
  --tarn-hover: #1e2543;
  --tarn-inline-bg: #2c2f42;
  --tarn-inline-ink: #d0cdea;
  --tarn-info: #8fb4f8;
  --tarn-info-tint: #1a2c53;
  --tarn-success: #6ecf9a;
  --tarn-success-tint: #0f3023;
  --tarn-warning: #f0ba59;
  --tarn-warning-tint: #372508;
  --tarn-danger: #f58b88;
  --tarn-danger-tint: #401c20;
  --tarn-neutral: #bfc2d0;
  --tarn-neutral-tint: #0b1028;
  --tarn-tutorial: #6ecf9a;
  --tarn-tutorial-tint: #0f3023;
  --tarn-howto: #8fb4f8;
  --tarn-howto-tint: #1a2c53;
  --tarn-reference: #b0b7cb;
  --tarn-reference-tint: #262b3b;
  --tarn-explanation: #ebb16c;
  --tarn-explanation-tint: #392310;
  --tarn-shadow: 0 8px 24px rgba(4, 6, 20, 0.55), 0 0 0 1px #2c344f;
  color-scheme: dark;
}

/* Preserve named upstream palettes; Tarn supplies the custom palette and no-palette fallback. */
body:not([data-md-color-primary]), [data-md-color-primary="custom"] {
  --md-primary-fg-color: var(--tarn-brand);
  --md-primary-fg-color--light: var(--tarn-brand-tint);
  --md-primary-fg-color--dark: var(--tarn-brand-strong);
  --md-primary-bg-color: var(--tarn-on-brand);
  --md-typeset-a-color: var(--tarn-brand);
}
body:not([data-md-color-accent]), [data-md-color-accent="custom"] {
  --md-accent-fg-color: var(--tarn-brand-strong);
  --md-accent-fg-color--transparent: var(--tarn-brand-tint);
  --md-accent-bg-color: var(--tarn-on-brand);
}

/* ---- Structure: one ground, hairline-separated ---- */
.md-header, .md-header--shadow { background-color: var(--md-default-bg-color); color: var(--md-default-fg-color);
  box-shadow: inset 0 -1px 0 var(--tarn-line); }
.md-main, .md-container { background-color: var(--md-default-bg-color); }
.md-footer-meta { background-color: var(--md-footer-bg-color); border-top: 1px solid var(--tarn-line); }
.md-typeset { font-size: .8rem; line-height: 1.7; }
.md-typeset h1 { font-size: 1.7rem; line-height: 1.18; font-weight: 700; letter-spacing: -0.01em; color: var(--md-default-fg-color); margin: .3rem 0 1.2rem; }
.md-typeset h2 { font-size: 1.25rem; line-height: 1.28; font-weight: 600; letter-spacing: 0; margin-top: 1.6rem; }
.md-typeset h3 { font-size: 1rem; line-height: 1.4; font-weight: 600; }
.md-typeset h4 { font-size: .85rem; font-weight: 700; }
.md-content__inner > p, .md-content__inner > ul, .md-content__inner > ol { max-width: 42rem; }
.md-typeset :is(p, li, td, dd, .admonition) > a:not(.md-button) { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .18em;
  text-decoration-color: color-mix(in srgb, currentColor 35%, transparent); }
.md-typeset :is(p, li, td, dd, .admonition) > a:not(.md-button):hover { color: var(--md-accent-fg-color); text-decoration-color: currentColor; }
.md-sidebar--primary .md-nav__link--active { color: var(--md-primary-fg-color); font-weight: 600; }
.md-sidebar--primary .md-nav__item .md-nav__link--active { background: var(--md-primary-fg-color--light); border-radius: 6px; }
:focus-visible { outline: 2px solid var(--md-primary-fg-color); outline-offset: 2px; }

/* ---- Navigation tabs: type attributes come from partials/tarn.html ---- */
.md-tabs { background-color: var(--md-default-bg-color); color: var(--md-default-fg-color--light);
  box-shadow: inset 0 -1px 0 var(--tarn-line); }
.md-tabs__list { display: flex; }
.md-tabs__link { opacity: 1; color: var(--md-default-fg-color--light); font-weight: 500; }
.md-tabs__link:hover { color: var(--md-default-fg-color); }
.md-tabs__item--active { border-bottom: 2px solid var(--tarn-tab, var(--md-default-fg-color)); font-weight: 600; }
.md-tabs__item--active .md-tabs__link { color: var(--md-default-fg-color); }
.md-tabs__item[data-tarn-type="tutorial"] { --tarn-tab: var(--tarn-tutorial); }
.md-tabs__item[data-tarn-type="howto"] { --tarn-tab: var(--tarn-howto); }
.md-tabs__item[data-tarn-type="reference"] { --tarn-tab: var(--tarn-reference); }
.md-tabs__item[data-tarn-type="explanation"] { --tarn-tab: var(--tarn-explanation); }
.md-tabs__item:is([data-tarn-type="tutorial"],[data-tarn-type="howto"],[data-tarn-type="reference"],[data-tarn-type="explanation"]) .md-tabs__link::before { content: ""; flex: none; align-self: center; width: 6px; height: 6px;
  margin-right: .4rem; border-radius: 50%; background: var(--tarn-tab); }
.md-tabs__item[data-tarn-type="secondary"] .md-tabs__link { color: var(--md-default-fg-color--lighter); font-weight: 400; }
.md-tabs__item[data-tarn-type="secondary"].md-tabs__item--active .md-tabs__link { color: var(--md-default-fg-color); font-weight: 500; }
.md-tabs__item:not([data-tarn-type="secondary"]) + .md-tabs__item[data-tarn-type="secondary"] { margin-left: auto; }


/* Sidebar section colours use the same classification as tabs and badges. */
.md-nav--primary > .md-nav__list > .md-nav__item[data-tarn-type="tutorial"] { --tarn-tab: var(--tarn-tutorial); }
.md-nav--primary > .md-nav__list > .md-nav__item[data-tarn-type="howto"] { --tarn-tab: var(--tarn-howto); }
.md-nav--primary > .md-nav__list > .md-nav__item[data-tarn-type="reference"] { --tarn-tab: var(--tarn-reference); }
.md-nav--primary > .md-nav__list > .md-nav__item[data-tarn-type="explanation"] { --tarn-tab: var(--tarn-explanation); }
.md-nav--primary > .md-nav__list > .md-nav__item:is([data-tarn-type="tutorial"],[data-tarn-type="howto"],[data-tarn-type="reference"],[data-tarn-type="explanation"]) > .md-nav__link:not(.md-nav__container) > .md-ellipsis::before,
.md-nav--primary > .md-nav__list > .md-nav__item:is([data-tarn-type="tutorial"],[data-tarn-type="howto"],[data-tarn-type="reference"],[data-tarn-type="explanation"]) > .md-nav__container > .md-nav__link:first-child > .md-ellipsis::before {
  content: ""; display: inline-block; vertical-align: middle; width: 6px; height: 6px;
  margin: -2px .3rem 0 0; border-radius: 50%; background: var(--tarn-tab); }
.md-nav--primary > .md-nav__list > .md-nav__item[data-tarn-type="secondary"] > .md-nav__link, .md-nav--primary > .md-nav__list > .md-nav__item[data-tarn-type="secondary"] > .md-nav__container > .md-nav__link {
  color: var(--md-default-fg-color--lighter); }
.md-nav--primary > .md-nav__list > .md-nav__item:not([data-tarn-type="secondary"]) + .md-nav__item[data-tarn-type="secondary"] { margin-top: 1rem; padding-top: .6rem; border-top: 1px solid var(--tarn-line); }
/* Match Zensical's desktop breakpoint: tabbed sidebars show only the active section. */
@media screen and (min-width: 76.25em) {
  .md-nav--primary.md-nav--lifted > .md-nav__list > .md-nav__item:not([data-tarn-type="secondary"]) + .md-nav__item[data-tarn-type="secondary"] { margin-top: 0; padding-top: 0; border-top: 0; }
}
/* ---- Code ---- */
.md-typeset pre > code, .md-typeset .highlight { border-radius: 6px; }
.md-typeset .highlight { box-shadow: inset 0 0 0 1px var(--tarn-line); }
.md-typeset .highlight .filename { background: var(--md-code-bg-color); font-weight: 500; color: var(--md-default-fg-color--light);
  border-bottom: 1px solid var(--tarn-line); font-size: .65rem; }
.md-typeset .highlight .c, .md-typeset .highlight .c1, .md-typeset .highlight .cm { font-style: italic; }
.md-typeset .linenos, .md-typeset .linenodiv a, .md-typeset .highlight .linenos a { color: var(--md-default-fg-color--lighter); text-decoration: none; }
/* Inline code: plum in light mode, lavender-silver in dark, on a distinct background chip */
.md-typeset :not(pre, .highlight) > code { color: var(--tarn-inline-ink); background-color: var(--tarn-inline-bg);
  border-radius: 4px; padding: .12em .38em; font-weight: 500; }
.md-typeset a > code, .md-typeset a:hover > code { color: inherit; }
.md-typeset h1 code, .md-typeset h2 code, .md-typeset h3 code { font-weight: inherit; }

/* ---- Buttons ---- */
.md-typeset .md-button { border-radius: 6px; border: 1px solid var(--tarn-line-strong); color: var(--md-default-fg-color);
  background: transparent; font-weight: 600; padding: .5em 1.1em; }
.md-typeset .md-button--primary { background: var(--md-primary-fg-color); border-color: var(--md-primary-fg-color); color: var(--md-primary-bg-color); }
.md-typeset .md-button:is(:hover, :focus) { background: var(--md-primary-fg-color--dark); border-color: var(--md-primary-fg-color--dark); color: var(--md-primary-bg-color); }

/* ---- Admonitions: five tones for the twelve types ---- */
.md-typeset :is(.admonition, details) { --tarn-t: var(--tarn-info); --tarn-t-tint: var(--tarn-info-tint);
  border: 1px solid color-mix(in srgb, var(--tarn-t) 30%, transparent); border-radius: 6px; box-shadow: none;
  font-size: .75rem; color: var(--md-default-fg-color--light); }
.md-typeset :is(.admonition, details):is(.tip, .hint, .important, .success, .check, .done) { --tarn-t: var(--tarn-success); --tarn-t-tint: var(--tarn-success-tint); }
.md-typeset :is(.admonition, details):is(.warning, .caution, .attention, .question, .help, .faq) { --tarn-t: var(--tarn-warning); --tarn-t-tint: var(--tarn-warning-tint); }
.md-typeset :is(.admonition, details):is(.danger, .error, .failure, .fail, .missing, .bug) { --tarn-t: var(--tarn-danger); --tarn-t-tint: var(--tarn-danger-tint); }
.md-typeset :is(.admonition, details):is(.example, .quote, .cite) { --tarn-t: var(--tarn-neutral); --tarn-t-tint: var(--tarn-neutral-tint); border-color: var(--tarn-line); }
.md-typeset :is(.admonition, details)[class] { background-color: var(--tarn-t-tint); }
.md-typeset :is(.admonition-title, summary) { background: transparent !important; font-weight: 600; color: var(--tarn-t); }
.md-typeset :is(.admonition-title, summary)::before { background-color: var(--tarn-t) !important; }
.md-typeset details > summary::after { color: var(--tarn-t) !important; }

/* ---- Tables ---- */
.md-typeset table:not([class]) { border: 1px solid var(--tarn-line); border-radius: 6px; box-shadow: none; font-size: .75rem; }
.md-typeset table:not([class]) th { background: var(--md-default-bg-color--light); font-weight: 600; }
.md-typeset table:not([class]) tr:hover { background: var(--tarn-hover); box-shadow: none; }

/* ---- Diátaxis badge (rendered by overrides/main.html) ---- */
.tarn-dtx { display: inline-flex; align-items: center; gap: .35em; font-size: .575rem; font-weight: 700; letter-spacing: .06em;
  text-transform: uppercase; padding: .2em .6em; border-radius: 4px; color: var(--c); background: var(--t); }
.tarn-dtx::before { content: ""; width: .5em; height: .5em; border-radius: 50%; background: currentColor; }
.tarn-dtx--tutorial { --c: var(--tarn-tutorial); --t: var(--tarn-tutorial-tint); }
.tarn-dtx--howto { --c: var(--tarn-howto); --t: var(--tarn-howto-tint); }
.tarn-dtx--reference { --c: var(--tarn-reference); --t: var(--tarn-reference-tint); }
.tarn-dtx--explanation { --c: var(--tarn-explanation); --t: var(--tarn-explanation-tint); }
