/* ucli-material.css: Material for MkDocs mapped onto the ucli kit (Plain).
   Loaded after ucli-kit/tokens.css and ucli-kit/base.css, and after Material's own CSS, so equal
   specificity wins. Plain rules: hairlines, no shadows, no gradients, one radius, ink only. */

/* ---- Material variables -> kit tokens (light and dark: the kit tokens already switch) ---- */
[data-md-color-scheme="default"],
[data-md-color-scheme="slate"] {
  --md-default-bg-color: var(--u-paper);
  --md-default-fg-color: var(--u-ink);
  --md-default-fg-color--light: var(--u-ink-2);
  --md-default-fg-color--lighter: var(--u-ink-2);
  --md-default-fg-color--lightest: var(--u-rule);
  --md-primary-fg-color: var(--u-paper);
  --md-primary-fg-color--dark: var(--u-paper);
  --md-primary-fg-color--light: var(--u-paper);
  --md-primary-bg-color: var(--u-ink);
  --md-primary-bg-color--light: var(--u-ink-2);
  --md-accent-fg-color: var(--u-ink);
  --md-accent-fg-color--transparent: var(--u-paper-2);
  --md-accent-bg-color: var(--u-ink);
  --md-typeset-color: var(--u-ink);
  --md-typeset-a-color: var(--u-ink);
  --md-typeset-mark-color: transparent;
  --md-typeset-kbd-color: var(--u-paper-2);
  --md-typeset-kbd-accent-color: var(--u-paper-2);
  --md-typeset-kbd-border-color: var(--u-rule-strong);
  --md-typeset-table-color: var(--u-rule);
  --md-typeset-table-color--light: var(--u-paper-2);
  --md-code-bg-color: var(--u-paper-2);
  --md-code-fg-color: var(--u-ink);
  --md-code-hl-color: var(--u-paper-2);
  --md-code-hl-color--light: var(--u-paper-2);
  --md-code-hl-number-color: var(--u-ink);
  --md-code-hl-special-color: var(--u-ink);
  --md-code-hl-function-color: var(--u-ink);
  --md-code-hl-constant-color: var(--u-ink);
  --md-code-hl-keyword-color: var(--u-ink);
  --md-code-hl-string-color: var(--u-ink);
  --md-code-hl-name-color: var(--u-ink);
  --md-code-hl-operator-color: var(--u-ink);
  --md-code-hl-punctuation-color: var(--u-ink-2);
  --md-code-hl-comment-color: var(--u-ink-2);
  --md-code-hl-generic-color: var(--u-ink);
  --md-code-hl-variable-color: var(--u-ink);
  --md-admonition-fg-color: var(--u-ink);
  --md-admonition-bg-color: var(--u-paper-2);
  --md-footer-fg-color: var(--u-ink);
  --md-footer-bg-color: var(--u-paper);
  --md-shadow-z1: none;
  --md-shadow-z2: none;
  --md-shadow-z3: none;
  --md-text-font: "Schibsted Grotesk", "Schibsted Fallback";
  --md-code-font: "JetBrains Mono", "JetBrains Fallback";
}

/* Material grows the root font at 1600px and up; the kit's px sizes do not. */
html { font-size: 125%; background: var(--u-paper); }
body { font-size: 16px; font-feature-settings: normal; }
.md-typeset { font-size: 16px; line-height: 1.6; color: var(--u-ink); }

/* ---- Top bar (kit markup inside Material's header element) ---- */
.u-header.md-header { position: relative; z-index: 4; height: auto; box-shadow: none; background: var(--u-paper); color: var(--u-ink); }
.u-header.md-header--shadow { box-shadow: none; }
.u-header .u-header__tools { gap: 8px; }
.u-header .md-header__button { margin: 0; padding: 0; opacity: 1; color: var(--u-ink); }
.md-header__button:hover { opacity: 1; }
.u-header .md-header__option { display: flex; max-width: none; margin: 0; }
.u-header .md-header__option .md-header__button[for^="__palette"],
.u-header .md-header__button[for="__search"] {
  width: 36px; height: 36px; flex: none; border: 1px solid var(--u-rule-strong); background: transparent;
  color: var(--u-ink); border-radius: var(--u-radius); display: grid; place-items: center; cursor: pointer;
}
.u-header .md-header__option .md-header__button[for^="__palette"][hidden] { display: none; }
.u-header .md-header__button svg { width: 18px; height: 18px; fill: currentColor; }
.u-header .md-header__button.md-icon::before { display: none; }
@media screen and (min-width: 60em) { .u-header .md-header__button[for="__search"] { display: none; } }
.u-header .u-header__brand { color: var(--u-ink); }
.u-header a:hover { opacity: 1; }
.u-header :focus-visible { outline: 2px solid var(--u-ink); outline-offset: 2px; }
.md-option:focus-visible + label, .md-option.focus-visible + label { outline: 2px solid var(--u-ink); outline-offset: 2px; }
.md-skip { background: var(--u-ink); color: var(--u-paper); border-radius: 0; }

/* ---- Search (in the top bar) ---- */
.u-header .md-search { margin: 0; padding: 0; }
.u-header .md-search__icon { color: var(--u-ink-2); }
.u-header .md-search__form { box-shadow: none; background: var(--u-paper); }
.u-header .md-search__form:hover { background: var(--u-paper); }
.u-header .md-search__input { color: var(--u-ink); background: transparent; }
.u-header .md-search__input::placeholder { color: var(--u-ink-2); opacity: 1; }
@media screen and (min-width: 60em) {
  .u-header .md-search__form { height: 36px; border-radius: var(--u-radius); border: 1px solid var(--u-rule-strong); }
  .u-header .md-search__input { height: 34px; font-size: 15px; padding-left: 38px; }
  .u-header .md-search__suggest { padding-left: 38px; }
}
[data-md-toggle="search"]:checked ~ .u-header.md-header .md-header__option { max-width: none; opacity: 1; transition: none; }
.u-header .md-search__suggest { color: var(--u-ink-2); font-size: 15px; }
.u-header .md-search__output { background: var(--u-paper); border: 1px solid var(--u-rule-strong); border-radius: var(--u-radius); box-shadow: none; }
.u-header .md-search__scrollwrap { background: var(--u-paper); box-shadow: none; }
.u-header .md-search-result__meta { background: var(--u-paper-2); color: var(--u-ink-2); font-size: 14px; }
.u-header .md-search-result__link { outline: none; }
.u-header .md-search-result__link:hover, .u-header .md-search-result__link:focus { background: var(--u-paper-2); }
.u-header .md-search-result__article--document .md-search-result__title { font-weight: 600; color: var(--u-ink); }
.u-header .md-search-result__teaser { color: var(--u-ink-2); }
.u-header .md-search-result mark, .md-typeset mark { background: none; color: inherit; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 2px; }
.u-header .md-search__overlay { display: none; }
@media screen and (min-width: 60em) {
  [data-md-toggle="search"]:checked ~ .u-header.md-header .md-search__inner, .u-header .md-search__inner { width: 240px; }
  .u-header .md-search__output { right: 0; left: auto; width: min(34.4rem, calc(100vw - 32px)); }
  .u-header .md-search__scrollwrap { width: auto; }
  .u-header .md-search__icon[for="__search"] { left: 10px; top: 9px; }
  .u-header .md-search__form { width: 240px; }
}

/* ---- Layout ---- */
.md-main__inner.md-grid { max-width: 1160px; margin: 0 auto; padding: 36px 32px 56px; display: grid; grid-template-columns: 232px minmax(0, 1fr) 200px; gap: 56px; align-items: start; }
@media (max-width: 1100px) { .md-main__inner.md-grid { grid-template-columns: 220px minmax(0, 1fr); gap: 40px; } }
@media (max-width: 760px) { .md-main__inner.md-grid { grid-template-columns: minmax(0, 1fr); gap: 0; padding: 20px 16px 56px; } }
.md-main { flex-grow: 0; }
.md-container { display: block; }
.md-content { max-width: 70ch; min-width: 0; margin: 0; }
[dir] .md-main__inner .md-content > .md-content__inner.md-typeset { margin: 0; padding: 0; }
.md-content__inner::before { display: none; }
.md-content__inner::after { display: none; }
.md-sidebar { padding: 0; width: auto; height: auto; }
.md-sidebar--secondary { display: block; }
/* Material's script sets inline top and height from the (sticky) header it expects; ours scrolls away */
@media (min-width: 761px) { .md-sidebar { position: sticky; top: 0 !important; } .md-sidebar__scrollwrap { height: auto !important; max-height: 100vh; overflow-y: auto; } }
.md-sidebar__scrollwrap { scrollbar-width: thin; scrollbar-color: var(--u-rule-strong) transparent; margin: 0; }
.md-sidebar__inner { padding: 0 0 24px; }

/* ---- Breakpoint block: Material's drawer below 1220px is replaced (left column stays visible from 761px) ---- */
@media screen and (max-width: 76.234375em) {
  [dir] .md-sidebar--primary { left: auto; right: auto; height: auto; transform: none; box-shadow: none; background: none; z-index: auto; }
  .md-sidebar--primary .md-sidebar__scrollwrap { position: static; overflow: visible; height: auto; margin: 0; }
  [data-md-toggle="drawer"]:checked ~ .md-container .md-sidebar--primary { transform: none; box-shadow: none; }
  .md-nav--primary, .md-nav--primary .md-nav { position: static; height: auto; display: block; background: none; }
  .md-nav__toggle ~ .md-nav { opacity: 1; transform: none; visibility: visible; }
  .md-nav--primary .md-nav__title { display: none; }
  .md-nav--primary .md-nav__item { border-top: 0; font-size: inherit; line-height: inherit; }
  .md-nav--primary .md-nav__link { padding: 4px 10px; margin-top: 0; }
  .md-nav--primary .md-nav__title ~ .md-nav__list { box-shadow: none; overflow: visible; scroll-snap-type: none; }
}
@media screen and (min-width: 761px) and (max-width: 76.234375em) {
  [dir] .md-sidebar--primary { position: sticky; }
  .md-sidebar--primary .md-sidebar__scrollwrap { max-height: 100vh; overflow-y: auto; }
}
@media screen and (max-width: 760px) {
  [dir] .md-sidebar--primary { display: none; position: static; width: 100%; height: auto; transform: none; background: var(--u-paper); border: 1px solid var(--u-rule-strong); border-radius: var(--u-radius); margin: -16px 0 24px; padding: 12px 14px; }
  [data-md-toggle="drawer"]:checked ~ .md-container .md-sidebar--primary { display: block; }
  .md-header__button[for="__drawer"] { display: none; }
  html:not(.js) .md-sidebar--primary { display: block; }
}
@media screen and (max-width: 59.984375em) {
  .md-nav--primary .md-nav__link[for="__toc"], .md-nav--primary .md-nav__link[for="__toc"] ~ .md-nav { display: none; }
  .md-nav--primary .md-nav__link[for="__toc"] + .md-nav__link { display: block; }
  .md-nav__source { display: none; }
}
.md-overlay { display: none; }
.md-nav--primary > .md-nav__title { display: none; }
@media (max-width: 1100px) { .md-sidebar--secondary:not([hidden]) { display: none; } }

/* ---- Menu button (phones) ---- */
.u-menu:focus-visible { outline: 2px solid var(--u-ink); outline-offset: 2px; }
.u-menu { min-height: 0; }

/* ---- Left navigation ---- */
.md-nav { font-size: 15px; line-height: 1.5; color: var(--u-ink-2); }
[dir] .md-nav--primary .md-nav__list { padding: 0; }
.md-nav--primary .md-nav__item { padding: 0; }
.md-nav--primary .md-nav__link { color: var(--u-ink-2); text-decoration: none; border-radius: var(--u-radius); margin: 0 0 0 -10px; padding: 4px 10px; gap: 0; transition: none; }
.md-nav--primary .md-nav__link:hover { color: var(--u-ink); }
.md-nav--primary .md-nav__link--active, .md-nav--primary .md-nav__link[aria-current] { color: var(--u-ink); font-weight: 600; background: var(--u-paper-2); }
.md-nav--primary .md-nav__item--nested > .md-nav__link--active { background: none; }
.md-nav__icon { display: none; }
.md-nav__toggle ~ .md-nav { display: block; opacity: 1; visibility: visible; grid-template-rows: none; }
.md-nav--primary label.md-nav__link { pointer-events: none; }
.md-nav--primary label.md-nav__link[for="__toc"] { pointer-events: auto; }
.md-nav--primary .md-nav__item--section { display: block; margin: 0 0 20px; }
.md-nav--primary .md-nav__item--section > label.md-nav__link { font-size: 13px; font-weight: 600; color: var(--u-ink); padding: 0 0 4px 10px; margin: 0 0 0 -10px; }
.md-nav--primary .md-nav__item--section > .md-nav { box-shadow: none; }
.md-nav--primary .md-nav__item--section > .md-nav > .md-nav__list { margin: 0; }
.md-nav--primary .md-nav__item--nested:not(.md-nav__item--section) > label.md-nav__link { font-weight: 600; color: var(--u-ink); padding: 8px 10px 4px; }
.md-nav--primary .md-nav .md-nav { margin: 2px 0 4px 10px; padding-left: 8px; border-left: 1px solid var(--u-rule); }
.md-nav--primary .md-nav__item--section > .md-nav, .md-nav--primary .md-nav__item--section > .md-nav.md-nav { margin: 0; padding-left: 0; border-left: 0; }
.md-nav--primary > .md-nav__list > .md-nav__item:not(.md-nav__item--nested) { margin-bottom: 16px; }
.md-nav--primary .md-nav .md-nav .md-nav__title { display: none; }
.md-nav--secondary .md-nav__title { box-shadow: none; background: none; position: static; }

/* ---- On this page ---- */
.md-nav--secondary { font-size: 14px; }
.md-nav--secondary .md-nav__title { font-weight: 600; font-size: 14px; color: var(--u-ink); margin: 0 0 8px; padding: 0; }
.md-nav--secondary .md-nav__list { border-left: 1px solid var(--u-rule); padding: 0; }
.md-nav--secondary .md-nav__link { display: block; padding: 3px 0 3px 12px; margin: 0 0 0 -1px; color: var(--u-ink-2); text-decoration: none; border-left: 2px solid transparent; border-radius: 0; font-weight: 400; background: none; }
.md-nav--secondary .md-nav__link:hover { color: var(--u-ink); }
.md-nav--secondary .md-nav__link--active { color: var(--u-ink); border-left-color: var(--u-ink); font-weight: 400; background: none; }
.md-nav--secondary .md-nav__list .md-nav__list { border: 0; margin: 0; padding: 0; }
.md-nav--secondary .md-nav__item { padding: 0; margin: 0; }
.md-nav--secondary .md-nav { margin: 0; padding: 0; }
.md-nav--secondary .md-nav .md-nav .md-nav__link { padding-left: 24px; }
.md-nav--secondary .md-nav__link { margin-top: 0; }

/* ---- Focus ---- */
.md-typeset :focus-visible, .md-nav :focus-visible, .md-code__button.focus-visible, .md-code__button:focus-visible { outline: 2px solid var(--u-ink); outline-offset: 2px; }

/* ---- Breadcrumbs ---- */
.md-path { font-size: 14px; color: var(--u-ink-2); margin: 0 0 14px; padding: 0; }
.md-path__list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.md-path__item { display: flex; gap: 8px; margin: 0; }
.md-path__link { color: var(--u-ink-2); text-decoration: none; }
.md-path__link:hover { color: var(--u-ink); text-decoration: underline; }
.md-path__item:not(:first-child)::before { content: "/"; background: none; -webkit-mask: none; mask: none; width: auto; height: auto; display: inline; margin: 0; color: var(--u-ink-2); }
.md-path__item:not(:first-child) { display: flex; }

/* ---- Article ---- */
.md-typeset h1 { font-family: var(--u-font-mono); font-size: var(--u-fs-h1-doc); line-height: 1.2; letter-spacing: -.02em; font-weight: 500; color: var(--u-ink); margin: 0 0 20px; }
.md-typeset h2 { font-size: 20px; line-height: 1.3; font-weight: 700; letter-spacing: normal; color: var(--u-ink); margin: 36px 0 10px; scroll-margin-top: 60px; }
.md-typeset h3 { font-size: 17px; line-height: 1.35; font-weight: 700; letter-spacing: normal; color: var(--u-ink); margin: 28px 0 8px; }
.md-typeset h4, .md-typeset h5, .md-typeset h6 { font-size: 16px; font-weight: 700; letter-spacing: normal; color: var(--u-ink); text-transform: none; margin: 22px 0 6px; }
.md-typeset p, .md-typeset ul, .md-typeset ol, .md-typeset dl { margin: 0 0 12px; }
.md-typeset ul li, .md-typeset ol li { margin-bottom: 4px; }
.md-typeset a:not(.headerlink):not(.md-clipboard):not(.md-button) { color: var(--u-ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; }
.md-typeset a:hover { color: var(--u-ink); }
.md-typeset .headerlink { color: var(--u-ink-2); }
.md-typeset hr { border-bottom: 1px solid var(--u-rule); margin: 28px 0; }
.md-typeset code, .md-typeset kbd, .md-typeset pre { font-family: var(--u-font-mono); font-size: 14px; }
.md-typeset :not(pre) > code { background: var(--u-paper-2); border-radius: 3px; padding: 1px 5px; font-size: .9em; color: var(--u-ink); }
.md-typeset kbd { box-shadow: none; border: 1px solid var(--u-rule-strong); border-radius: 3px; background: var(--u-paper-2); color: var(--u-ink); }
.md-typeset blockquote { border-left: 2px solid var(--u-rule-strong); color: var(--u-ink-2); padding-left: 16px; margin: 16px 0; }
.md-typeset img { border-radius: 0; }
.md-typeset del, .md-typeset ins { background: none; box-shadow: none; }

/* Code blocks: flat, hairline, copy button always visible */
.md-typeset .highlight, .md-typeset pre { margin: 12px 0 20px; }
.md-typeset .highlight pre, .md-typeset pre > code { background: var(--u-paper-2); border: 1px solid var(--u-rule); border-radius: var(--u-radius); box-shadow: none; }
.md-typeset pre > code { display: block; padding: 14px 16px; line-height: 1.6; }
.md-typeset .highlight pre { margin: 0; }
.md-typeset .highlight code { border: 0; background: none; }
.md-typeset .highlight span.filename { background: var(--u-paper-2); border-bottom: 1px solid var(--u-rule); }
.md-typeset .highlight .hll { background: var(--u-paper-2); box-shadow: none; }
.md-typeset .highlight .gp, .md-typeset .highlight .go { color: var(--u-ink-2); }
.md-code__button { color: var(--u-btn-fg); background: var(--u-btn-bg); border: 1px solid var(--u-rule-strong); border-radius: calc(var(--u-radius) - 2px); width: 30px; height: 30px; padding: 0; transition: none; display: grid; place-items: center; }
.md-code__button::after { width: 16px; height: 16px; margin: 0; }
.md-code__button:hover, .md-code__button.focus-visible { color: var(--u-btn-fg); }
.md-code__button--active { color: var(--u-btn-fg) !important; }
.md-code__nav { top: 6px; right: 6px; }
.md-code__content { box-shadow: none; }
.md-code__nav { background: none; box-shadow: none; opacity: 1; transition: none; }
.md-code__content:hover .md-code__nav, .md-code__content:focus-within .md-code__nav { opacity: 1; }

/* Tables */
.md-typeset__scrollwrap { margin: 12px 0 20px; }
.md-typeset table:not([class]) { display: table; width: 100%; font-size: 15px; border: 0; border-radius: 0; box-shadow: none; background: none; border-collapse: collapse; }
.md-typeset table:not([class]) th { background: none; color: var(--u-ink-2); font-size: 13px; font-weight: 600; text-align: left; min-width: 0; padding: 10px 16px 10px 0; border-bottom: 1px solid var(--u-rule); vertical-align: baseline; }
.md-typeset table:not([class]) td { padding: 10px 16px 10px 0; border-top: 0; border-bottom: 1px solid var(--u-rule); vertical-align: baseline; }
.md-typeset table:not([class]) th:last-child, .md-typeset table:not([class]) td:last-child { padding-right: 0; }
.md-typeset table:not([class]) tbody tr:hover { box-shadow: none; background: none; }
.md-typeset table:not([class]) td:first-child code { white-space: nowrap; }

/* Admonitions and details: one ink border, told apart by the title word */
.md-typeset .admonition, .md-typeset details { margin: 20px 0; padding: 12px 16px; border: 0; border-left: 3px solid var(--u-ink); border-radius: 0 var(--u-radius) var(--u-radius) 0; background: var(--u-paper-2); box-shadow: none; font-size: 16px; color: var(--u-ink); }
.md-typeset .admonition > :last-child, .md-typeset details > :last-child { margin-bottom: 0; }
.md-typeset .admonition-title, .md-typeset summary { margin: 0 0 2px; padding: 0; background: none; border: 0; font-weight: 600; font-size: 14px; color: var(--u-ink); position: static; }
.md-typeset .admonition-title::before, .md-typeset summary::before { display: none; }
.md-typeset summary { cursor: pointer; display: flex; justify-content: space-between; gap: 12px; }
.md-typeset summary::after { -webkit-mask: none; mask: none; background: none; content: "+"; width: auto; height: auto; position: static; font-family: var(--u-font-mono); font-weight: 400; color: var(--u-ink-2); transform: none; }
.md-typeset details[open] > summary::after { content: "\2212"; transform: none; }
.md-typeset details:not([open]) { padding-bottom: 12px; }
.md-typeset details:not([open]) > summary { margin-bottom: 0; }
.md-typeset .admonition.note, .md-typeset .admonition.tip, .md-typeset .admonition.warning, .md-typeset .admonition.danger,
.md-typeset .admonition.info, .md-typeset .admonition.example, .md-typeset .admonition.question, .md-typeset .admonition.success,
.md-typeset .admonition.failure, .md-typeset .admonition.bug, .md-typeset .admonition.abstract, .md-typeset .admonition.quote,
.md-typeset details.note, .md-typeset details.tip, .md-typeset details.warning, .md-typeset details.danger, .md-typeset details.info,
.md-typeset details.example, .md-typeset details.question, .md-typeset details.success, .md-typeset details.failure,
.md-typeset details.bug, .md-typeset details.abstract, .md-typeset details.quote { border-color: var(--u-ink); }

/* Tabs, task lists, footnotes */
.md-typeset .tabbed-set { box-shadow: none; border-radius: var(--u-radius); }
.md-typeset .tabbed-labels { box-shadow: 0 -1px 0 var(--u-rule) inset; }
.md-typeset .tabbed-labels > label { color: var(--u-ink-2); }
.md-typeset .tabbed-set > input:checked + label, .md-typeset .tabbed-labels > label:hover { color: var(--u-ink); }
.md-typeset .task-list-control .task-list-indicator::before { background-color: var(--u-ink-2); }
.md-typeset [type="checkbox"]:checked + .task-list-indicator::before { background-color: var(--u-ink); }
.md-typeset .footnote { color: var(--u-ink-2); font-size: 14px; }

/* Previous / next */
.u-pn { margin-top: 44px; }
.md-typeset .u-pn a, .u-pn a { color: var(--u-ink); text-decoration: none; }
.u-pn a:hover { text-decoration: underline; }
.u-pn a:last-child:not(:first-child) { text-align: right; }
.u-pn a:only-child:not(:first-child) { margin-left: auto; }

/* ---- Footer: kit footer, links underlined ---- */
.u-footer a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.u-footer a:hover { color: var(--u-ink); }
.md-footer, .md-footer-meta { display: none; }

/* ---- Material widgets that must not show ---- */
.md-top, .md-banner, .md-dialog { box-shadow: none; }
.md-dialog { border-radius: var(--u-radius); background: var(--u-ink); color: var(--u-paper); }
.md-source-file, .md-feedback { display: none; }
.md-search__overlay { border-radius: 0; }

@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }
.md-nav__title, .md-nav--primary .md-nav__title { box-shadow: none; }
