/* Alkonos Sphinx theme — chrome + content, driven entirely by the design
   tokens declared in alkonos-tokens.css. Structural layout (flex skeleton,
   responsive sidebars) comes from sphinx-basic-ng's skeleton.css; this file
   only supplies the visual language. */

/* ── Base ───────────────────────────────────────────────────── */

body {
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--fg-1);
  background: var(--bg-page);
  -webkit-font-smoothing: antialiased;
}

html,
body {
  max-width: 100%;
  overflow-x: clip;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

img,
svg {
  max-width: 100%;
}

a {
  color: var(--fg-link);
  text-decoration: none;
  transition: color var(--dur-1) var(--ease-out),
    border-color var(--dur-1) var(--ease-out),
    background var(--dur-1) var(--ease-out);
}

a:hover {
  color: var(--fg-link-hover);
}

/* ── Header ─────────────────────────────────────────────────── */

.sb-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: color-mix(in srgb, var(--bg-surface) 86%, transparent);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--border-3);
}

.sb-header__inner {
  position: relative;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: var(--space-3);
  height: var(--space-9);
  box-sizing: border-box;
  padding: 0 var(--space-4);
}

.alk-brand {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--fg-1);
}

.alk-brand:hover {
  color: var(--fg-1);
}

.alk-mark {
  width: var(--space-5);
  height: var(--space-5);
  color: var(--fg-1);
  align-self: center;
}

.alk-wordmark {
  font: 600 var(--fs-body-sm) / 1 var(--font-sans);
  letter-spacing: 0.16em;
}

.alk-brand-sub {
  font: 500 var(--fs-caption) / 1 var(--font-mono);
  color: var(--fg-3);
}

.alk-header-spacer {
  flex: 1;
}

.alk-nav-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--space-8);
  height: var(--space-8);
  margin-right: calc(-1 * var(--space-2));
  color: var(--fg-2);
  cursor: pointer;
}

.alk-nav-toggle svg {
  width: var(--space-5);
  height: var(--space-5);
}

.alk-header-search {
  position: absolute;
  left: 50%;
  width: min(28rem, 40vw);
  transform: translateX(-50%);
}

.search-container {
  position: relative;
  width: 100%;
  margin: 0;
}

.search-input {
  width: 100%;
  height: var(--space-7);
  border: 1px solid var(--border-1);
  border-radius: var(--radius-2);
  background: var(--bg-surface);
  color: var(--fg-1);
  padding: 0 var(--space-11) 0 var(--space-2\.5);
  font: 400 var(--fs-body-sm) / 1 var(--font-sans);
}

.search-input::placeholder {
  color: var(--fg-5);
}

.search-input:focus {
  outline: none;
  border-color: var(--border-focus);
  box-shadow: var(--shadow-focus-ring);
}

.search-shortcut {
  position: absolute;
  top: 50%;
  right: var(--space-2);
  transform: translateY(-50%);
  border: 1px solid var(--border-2);
  border-radius: var(--radius-1);
  background: var(--bg-raised);
  color: var(--fg-4);
  padding: 0 var(--space-1\.5);
  font: 500 var(--fs-caption) / var(--space-5) var(--font-mono);
  pointer-events: none;
}

.search-input:focus + .search-shortcut {
  color: var(--fg-2);
  border-color: var(--border-focus);
}

.alk-theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--space-7);
  height: var(--space-7);
  border: 0;
  border-radius: var(--radius-2);
  background: transparent;
  color: var(--fg-3);
  cursor: pointer;
  transition: background var(--dur-1) var(--ease-out),
    color var(--dur-1) var(--ease-out),
    transform var(--dur-1) var(--ease-out);
}

.alk-theme-toggle:hover {
  background: var(--bg-raised);
  color: var(--fg-1);
}

.alk-theme-toggle:active {
  transform: scale(0.98);
}

.alk-theme-toggle svg {
  width: var(--space-4);
  height: var(--space-4);
}

.alk-icon-moon {
  display: none;
}

.dark .alk-icon-moon {
  display: block;
}

.dark .alk-icon-sun {
  display: none;
}

/* ── Primary sidebar (global nav) ───────────────────────────── */

.sb-sidebar-primary {
  background: var(--bg-page);
  border-right: 1px solid var(--border-3);
  width: 17rem;
}

.alk-sidebar-inner {
  width: 100%;
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  padding: var(--space-4) var(--space-3) var(--space-6);
  scrollbar-width: none;
}
.alk-sidebar-inner::-webkit-scrollbar {
  display: none;
}

.alk-nav > ul:first-child,
.alk-nav > .caption:first-child {
  margin-top: 0;
}

.alk-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.alk-nav li {
  margin: 2px 0;
}

.alk-nav a {
  display: block;
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-2);
  color: var(--fg-3);
  font: 450 var(--fs-body-sm) / 1.35 var(--font-sans);
  transition: background var(--dur-1) var(--ease-out),
    color var(--dur-1) var(--ease-out),
    box-shadow var(--dur-1) var(--ease-out);
}

.alk-nav a:hover {
  background: var(--bg-raised);
  color: var(--fg-1);
}

.alk-nav li.current > a,
.alk-nav a.current {
  background: var(--bg-raised);
  box-shadow: inset 2px 0 0 var(--bg-signal);
  color: var(--fg-1);
  font-weight: 600;
}

.alk-nav .caption {
  display: block;
  margin: var(--space-6) 0 var(--space-2);
  padding: 0 var(--space-3);
  color: var(--fg-4);
  font: 650 var(--fs-overline) / var(--lh-overline) var(--font-sans);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.alk-nav .caption + ul {
  padding-bottom: var(--space-2);
}

.alk-nav ul ul {
  margin: var(--space-1) 0 var(--space-2) var(--space-4);
  padding-left: var(--space-2);
  border-left: 1px solid var(--border-2);
}

/* ── Collapsible nav (fold past depth 2) ────────────────────── */

.alk-nav li.alk-has-children {
  position: relative;
}

.alk-nav li.alk-has-children > a {
  padding-left: calc(var(--space-3) + 14px);
}

.alk-nav-fold {
  position: absolute;
  left: 0;
  top: 0.4rem;
  width: 16px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  background: none;
  color: var(--fg-4);
  cursor: pointer;
}

.alk-nav-fold::before {
  content: "";
  width: 0;
  height: 0;
  border-left: 4px solid currentColor;
  border-top: 3.5px solid transparent;
  border-bottom: 3.5px solid transparent;
  transition: transform 0.12s ease;
}

.alk-nav-fold:hover {
  color: var(--fg-1);
}

.alk-nav li:not(.alk-collapsed).alk-has-children > .alk-nav-fold::before {
  transform: rotate(90deg);
}

.alk-nav li.alk-collapsed > ul {
  display: none;
}

/* ── Secondary sidebar (page TOC) ───────────────────────────── */

.sb-sidebar-secondary {
  background: var(--bg-page);
  border-left: 1px solid var(--border-3);
  width: 15rem;
}

.alk-toc {
  width: 100%;
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  padding: var(--space-4) var(--space-4) var(--space-6);
}

.alk-toc-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
  padding: 0 var(--space-2);
}

.alk-toc-title {
  margin: 0;
  color: var(--fg-4);
  font: 650 var(--fs-overline) / var(--lh-overline) var(--font-sans);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.alk-toc ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.alk-toc a {
  position: relative;
  display: block;
  padding: var(--space-1\.5) var(--space-2);
  border-radius: var(--radius-2);
  color: var(--fg-3);
  font-size: var(--fs-body-sm);
  line-height: var(--lh-body-sm);
}

.alk-toc a:hover {
  background: var(--bg-raised);
  color: var(--fg-1);
}

.alk-toc > ul > li > a {
  color: var(--fg-2);
  font-weight: 600;
}

.alk-toc a.alk-toc-active {
  color: var(--fg-link-hover);
  font-weight: 600;
}

.alk-toc ul ul {
  margin: var(--space-1) 0 0 var(--space-2);
  padding-left: var(--space-3);
  border-left: 1px solid var(--border-2);
}

.alk-toc ul ul li {
  position: relative;
}

.alk-toc ul ul li::before {
  position: absolute;
  top: 1rem;
  left: calc(-1 * var(--space-3));
  width: var(--space-2);
  border-top: 1px solid var(--border-2);
  content: "";
}

.alk-toc ul ul a.alk-toc-active::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc(-1 * var(--space-3) - 1px);
  width: 2px;
  border-radius: 1px;
  background: var(--bg-signal);
  content: "";
}

/* Desktop: pin both sidebars below the sticky header and scroll within. */
@media (min-width: 59rem) {
  .sb-sidebar-secondary {
    position: sticky;
    top: var(--space-9);
    align-self: flex-start;
    height: calc(100vh - var(--space-9));
  }
  .alk-toc-collapsed .sb-sidebar-secondary {
    display: none;
  }
  .alk-toc-collapsed .alk-toc-toggle--bar {
    display: inline-flex;
  }
}

@media (min-width: 76rem) {
  .sb-sidebar-primary {
    position: sticky;
    top: var(--space-9);
    align-self: flex-start;
    height: calc(100vh - var(--space-9));
  }
}

/* ── Article ────────────────────────────────────────────────── */

.sb-article {
  padding-top: var(--space-8);
  padding-bottom: var(--space-10);
  color: var(--fg-2);
}

.sb-container,
.sb-container__inner,
.sb-main,
.sb-content,
.sb-article-container {
  min-width: 0;
  max-width: 100%;
}

.sb-content {
  gap: var(--space-4);
}

/* Use the available horizontal space: the article fills the content column
   instead of the skeleton's fixed ≤50rem widths, while flowing prose keeps a
   readable measure (~80ch) and wide blocks span the full width. */
.sb-article-container {
  flex: 1 1 auto;
}

.sb-article,
.match-content-width {
  width: auto;
  max-width: none;
  overflow-wrap: break-word;
}


.sb-article p,
.sb-article li,
.sb-article blockquote,
.sb-article .alkonos-lead {
  max-width: 52rem;
}

/* Widen the centered page shell on large screens (skeleton caps it at 88rem). */
@media (min-width: 88rem) {
  .sb-page-width {
    width: 100%;
    max-width: 124rem;
    box-sizing: border-box;
    padding-left: 0;
    padding-right: var(--space-4);
  }
}

.sb-header__inner.sb-page-width {
  padding-left: var(--space-4);
  padding-right: var(--space-4);
}

.sb-article h1,
.sb-article h2,
.sb-article h3,
.sb-article h4,
.sb-article h5 {
  color: var(--fg-1);
  font-family: var(--font-sans);
  font-weight: 600;
}

.sb-article h1 {
  margin: 0 0 var(--space-5);
  font-size: var(--fs-h1);
  line-height: var(--lh-h1);
  letter-spacing: var(--tr-h1);
}

.sb-article h2 {
  margin: var(--space-8) 0 var(--space-3);
  padding-bottom: var(--space-2);
  border-bottom: 1px solid var(--border-3);
  font-size: var(--fs-h2);
  line-height: var(--lh-h2);
  letter-spacing: var(--tr-h2);
}

.sb-article h3 {
  margin: var(--space-5) 0 var(--space-2);
  font-size: var(--fs-h3);
  line-height: var(--lh-h3);
  letter-spacing: var(--tr-h3);
}

.sb-article h4 {
  margin: var(--space-4) 0 var(--space-1\.5);
  font-size: var(--fs-h4);
  line-height: var(--lh-h4);
  letter-spacing: var(--tr-h4);
}

.sb-article p,
.sb-article li {
  font-size: var(--fs-body);
  line-height: var(--lh-body);
}

.sb-article a {
  color: var(--fg-link);
  text-decoration: underline;
  text-decoration-color: var(--border-2);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}

.sb-article a:hover {
  color: var(--fg-link-hover);
  text-decoration-color: var(--fg-link-hover);
}

.sb-article a.headerlink {
  text-decoration: none;
  color: var(--fg-5);
  padding-left: var(--space-2);
  opacity: 0;
  transition: opacity var(--dur-1) var(--ease-out);
}

.sb-article h1:hover .headerlink,
.sb-article h2:hover .headerlink,
.sb-article h3:hover .headerlink,
.sb-article h4:hover .headerlink {
  opacity: 1;
}

/* ── Inline + block code ────────────────────────────────────── */

.sb-article :not(pre) > code,
.sb-article code.literal {
  border: 1px solid var(--border-3);
  border-radius: var(--radius-2);
  background: var(--bg-raised);
  color: var(--signal-700);
  font-family: var(--font-mono);
  font-size: 0.9em;
  padding: 0.1em var(--space-1);
}

.dark .sb-article :not(pre) > code,
.dark .sb-article code.literal {
  color: var(--signal-300);
}

.sb-article .highlight {
  border: 1px solid var(--code-border);
  border-radius: var(--radius-4);
  background: var(--code-bg);
}

.sb-article .highlight pre {
  margin: 0;
  padding: var(--space-4);
  background: transparent;
  color: var(--code-fg);
  font: 400 var(--fs-mono) / var(--lh-mono) var(--font-mono);
  overflow-x: auto;
}

/* Copybutton */
.sb-article .highlight button.copybtn {
  border-radius: var(--radius-2);
  background: var(--night-3);
  color: var(--night-fg-2);
  border: 1px solid var(--night-5);
}

.sb-article .highlight button.copybtn:hover {
  background: var(--night-4);
  color: var(--night-fg-1);
}

/* ── Admonitions ────────────────────────────────────────────── */

.sb-article .admonition,
.sb-article div.topic {
  margin: var(--space-5) 0;
  border: 1px solid var(--border-1);
  border-left: var(--space-1) solid var(--signal-500);
  border-radius: var(--radius-4);
  background: var(--bg-surface);
  padding: 0;
  overflow: hidden;
}

.sb-article .admonition > .admonition-title {
  margin: 0;
  padding: var(--space-2) var(--space-4);
  background: var(--bg-raised);
  color: var(--fg-1);
  font: 600 var(--fs-body-sm) / var(--lh-body-sm) var(--font-sans);
}

.sb-article .admonition > :not(.admonition-title) {
  padding: 0 var(--space-4);
}

.sb-article .admonition > :last-child {
  margin-bottom: var(--space-3);
}

.sb-article .admonition.note,
.sb-article .admonition.hint,
.sb-article .admonition.tip {
  border-left-color: var(--info);
}

.sb-article .admonition.warning,
.sb-article .admonition.caution,
.sb-article .admonition.attention {
  border-left-color: var(--medium);
}

.sb-article .admonition.danger,
.sb-article .admonition.error {
  border-left-color: var(--critical);
}

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

.sb-article table.docutils {
  display: block;
  width: max-content;
  max-width: 100%;
  overflow-x: auto;
  border-collapse: collapse;
  border: 1px solid var(--border-1);
  border-radius: var(--radius-3);
  font-size: var(--fs-body-sm);
}

.sb-article table.docutils th,
.sb-article table.docutils td {
  border: 1px solid var(--border-3);
  padding: var(--space-2) var(--space-3);
  text-align: left;
  vertical-align: top;
}

.sb-article table.docutils thead th {
  background: var(--bg-raised);
  color: var(--fg-1);
  font-weight: 600;
}

.sb-article table.docutils tbody tr:hover {
  background: var(--bg-raised);
}

/* ── Python / autodoc2 API signatures ───────────────────────── */

.sb-article dl.py > dt,
.sb-article dl.std > dt.sig,
.sb-article dl.c > dt {
  display: block;
  margin: var(--space-5) 0 var(--space-2);
  padding: var(--space-2) var(--space-3);
  border: 1px solid var(--border-1);
  border-left: var(--space-1) solid var(--signal-500);
  border-radius: var(--radius-3);
  background: var(--bg-raised);
  color: var(--fg-1);
  font-family: var(--font-mono);
  font-size: var(--fs-body-sm);
  line-height: var(--lh-mono);
  overflow-x: auto;
}

.sb-article dl.py dd {
  margin: var(--space-2) 0 var(--space-5);
  padding-left: var(--space-4);
  border-left: 1px solid var(--border-3);
}

.sb-article .sig-name,
.sb-article .sig-name .pre {
  color: var(--signal-700);
  font-weight: 600;
}

.dark .sb-article .sig-name,
.dark .sb-article .sig-name .pre {
  color: var(--signal-300);
}

.sb-article .sig-prename,
.sb-article .sig-prename .pre {
  color: var(--fg-3);
  font-weight: 400;
}

.sb-article .sig-param,
.sb-article .sig-paren,
.sb-article .o {
  color: var(--fg-2);
}

.sb-article .property,
.sb-article em.property {
  color: var(--fg-3);
  font-style: normal;
}

.sb-article .viewcode-link,
.sb-article .headerlink {
  font-weight: 400;
}

/* ── sphinx-design cards / grids ────────────────────────────── */

.sb-article .sd-card {
  border: 1px solid var(--border-1);
  border-radius: var(--radius-4);
  background: var(--bg-surface);
  box-shadow: none;
  transition: border-color var(--dur-1) var(--ease-out),
    background var(--dur-1) var(--ease-out);
}

.sb-article .sd-card.sd-card-hover:hover {
  border-color: var(--border-2);
  background: var(--bg-raised);
  transform: none;
}

.sb-article .sd-card-title {
  color: var(--fg-1);
  font: 600 var(--fs-h4) / var(--lh-h4) var(--font-sans);
  letter-spacing: var(--tr-h4);
}

.sb-article .sd-card-body a,
.sb-article .sd-card .sd-card-text {
  border: 0;
}

.sb-article .sd-card .sd-card-text {
  color: var(--fg-3);
  font-size: var(--fs-body-sm);
  line-height: var(--lh-body-sm);
}

/* ── Landing hero + repo map ────────────────────────────────── */

.sb-article .alkonos-hero {
  margin: 0 0 var(--space-9);
  padding: var(--space-8);
  border: 1px solid var(--border-1);
  border-radius: var(--radius-5);
  background: linear-gradient(135deg, var(--bg-surface), var(--bg-raised));
}

.sb-article .alkonos-hero h1 {
  margin: 0 0 var(--space-4);
  max-width: 720px;
  font-size: var(--fs-display);
  line-height: var(--lh-display);
  letter-spacing: var(--tr-display);
}

.alkonos-eyebrow {
  margin-bottom: var(--space-4);
  color: var(--fg-3);
  font: 600 var(--fs-overline) / var(--lh-overline) var(--font-sans);
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.alkonos-lead {
  max-width: 640px;
  margin: 0;
  color: var(--fg-3);
  font-size: var(--fs-h4);
  line-height: var(--lh-body);
}

.alkonos-repo-map {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--space-3);
  margin-top: var(--space-5);
}

.alkonos-repo-map > div {
  border: 1px solid var(--border-1);
  border-radius: var(--radius-3);
  background: var(--bg-surface);
  padding: var(--space-4);
}

.alkonos-repo-map strong {
  display: block;
  margin-bottom: var(--space-1\.5);
  color: var(--fg-1);
  font: 600 var(--fs-body-sm) / 1 var(--font-sans);
}

.alkonos-repo-map p {
  margin: 0;
  color: var(--fg-3);
  font: 400 var(--fs-caption) / var(--lh-caption) var(--font-mono);
}

/* ── Prev / next ────────────────────────────────────────────── */

.sb-header-article,
.sb-footer-article {
  box-sizing: border-box;
  padding-left: var(--space-3);
  padding-right: var(--space-3);
}

@media (min-width: 32rem) {
  .sb-header-article,
  .sb-footer-article {
    padding-left: var(--space-5);
    padding-right: var(--space-5);
  }
}

.alk-prev-next {
  display: flex;
  gap: var(--space-3);
  margin-top: var(--space-9);
  padding-top: var(--space-5);
  border-top: 1px solid var(--border-3);
}

.alk-pn {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  flex: 1;
  padding: var(--space-3) var(--space-4);
  border: 1px solid var(--border-1);
  border-radius: var(--radius-4);
  background: var(--bg-surface);
}

.alk-pn--next {
  text-align: right;
  align-items: flex-end;
}

.alk-pn:hover {
  border-color: var(--border-2);
  background: var(--bg-raised);
}

.alk-pn-label {
  color: var(--fg-4);
  font: 500 var(--fs-overline) / 1 var(--font-sans);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.alk-pn-title {
  color: var(--fg-1);
  font: 600 var(--fs-body-sm) / var(--lh-body-sm) var(--font-sans);
}

.alk-pn:hover .alk-pn-title {
  color: var(--fg-link-hover);
}

/* ── Semantic trees ─────────────────────────────────────────── */

.alkonos-tree {
  margin: var(--space-6) 0;
  border: 1px solid var(--border-1);
  border-radius: var(--radius-4);
  background: var(--bg-surface);
  padding: var(--space-5);
}

.alkonos-tree-title {
  margin: 0 0 var(--space-4);
  color: var(--fg-1);
  font: 600 var(--fs-h4) / var(--lh-h4) var(--font-sans);
  letter-spacing: var(--tr-h4);
}

.alkonos-tree ul {
  list-style: none;
  margin: 0;
  padding-left: var(--space-5);
}

.alkonos-tree > ul,
.alkonos-tree-root {
  padding-left: 0;
}

.alkonos-tree-children {
  position: relative;
  margin-top: var(--space-2);
  border-left: 1px solid var(--border-3);
}

.alkonos-tree-item {
  position: relative;
  margin: var(--space-2) 0 0;
  padding-left: var(--space-4);
}

.alkonos-tree-root > .alkonos-tree-item {
  padding-left: 0;
}

.alkonos-tree-children > .alkonos-tree-item::before {
  content: "";
  position: absolute;
  top: 0.9rem;
  left: 0;
  width: var(--space-3);
  border-top: 1px solid var(--border-3);
}

.alkonos-tree-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--space-2);
  margin: 0;
  color: var(--fg-2);
  font-size: var(--fs-body-sm);
  line-height: var(--lh-body-sm);
}

.alkonos-tree-label {
  color: var(--fg-1);
  font-family: var(--font-mono);
  font-weight: 600;
}

.alkonos-tree-label a {
  color: var(--fg-link);
}

.alkonos-tree-label a:hover {
  color: var(--fg-link-hover);
  text-decoration: underline;
}

.alkonos-tree-desc {
  color: var(--fg-3);
}

.alkonos-tree-desc::before {
  content: "—";
  margin-right: var(--space-2);
  color: var(--fg-4);
}

.alkonos-tree-badge {
  border: 1px solid var(--border-2);
  border-radius: var(--radius-2);
  background: var(--bg-raised);
  color: var(--fg-3);
  padding: 0 var(--space-1\.5);
  font: 600 var(--fs-caption) / var(--lh-caption) var(--font-sans);
  letter-spacing: 0.08em;
}

.alkonos-tree-badge--domain {
  border-color: color-mix(in srgb, var(--signal-500) 35%, var(--border-2));
  color: var(--signal-600);
}

.alkonos-tree-badge--interface {
  border-color: color-mix(in srgb, var(--info) 35%, var(--border-2));
  color: var(--info);
}

.alkonos-tree-badge--application {
  border-color: color-mix(in srgb, var(--medium) 35%, var(--border-2));
  color: var(--medium);
}

.alkonos-tree-badge--foundation {
  border-color: color-mix(in srgb, var(--resolved) 35%, var(--border-2));
  color: var(--resolved);
}

.alkonos-tree--compact {
  padding: var(--space-4);
}

.alkonos-tree--compact .alkonos-tree-item {
  margin-top: var(--space-1);
}

/* ── Footer ─────────────────────────────────────────────────── */

.sb-footer-content {
  border-top: 1px solid var(--border-3);
  margin-top: var(--space-8);
}

.alk-footer {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  justify-content: space-between;
  padding: var(--space-5);
  color: var(--fg-4);
  font: 500 var(--fs-caption) / 1 var(--font-mono);
}

.alk-footer-updated {
  margin-left: auto;
  text-align: right;
}

/* ── Search results page ────────────────────────────────────── */

#search-results h2 {
  margin-top: var(--space-6);
}

#search-results ul.search li {
  border-bottom: 1px solid var(--border-3);
  padding: var(--space-3) 0;
}

@media (max-width: 52rem) {
  .alk-brand-sub {
    display: none;
  }
}

@media (max-width: 41.99rem) {
  .sb-header__inner {
    gap: var(--space-1\.5);
    padding-right: var(--space-2);
    padding-left: var(--space-2);
  }

  .alk-header-search {
    display: none;
  }

  .sb-article,
  .match-content-width {
    padding-right: var(--space-3);
    padding-left: var(--space-3);
  }
}
/* ── Mobile drawers inherit skeleton positioning; just surface them ── */

@media (max-width: 75.99rem) {
  .sb-sidebar-primary {
    top: var(--space-9);
    height: calc(100% - var(--space-9));
    background: var(--bg-surface);
    box-shadow: var(--shadow-3);
  }
}

@media (max-width: 58.99rem) {
  .sb-sidebar-secondary {
    top: var(--space-9);
    height: calc(100% - var(--space-9));
    background: var(--bg-surface);
    box-shadow: var(--shadow-3);
  }
}


.alk-collapse-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--space-7);
  height: var(--space-7);
  flex: 0 0 var(--space-7);
  border: 0;
  border-radius: var(--radius-2);
  background: transparent;
  color: var(--fg-4);
  cursor: pointer;
  transition: background var(--dur-1) var(--ease-out),
    color var(--dur-1) var(--ease-out);
}

.alk-collapse-toggle:hover {
  background: var(--bg-raised);
  color: var(--fg-1);
}

.alk-collapse-toggle svg {
  width: var(--space-4);
  height: var(--space-4);
  transition: transform var(--dur-2) var(--ease-out);
}


/* TOC toggle that lives on the right of the topbar, shown only when the TOC
   sidebar is collapsed (the in-sidebar toggle handles the expanded state). */
.alk-toc-toggle--bar {
  display: none;
}

/* Right (page-contents) collapse button: desktop only, mirrors the left. */
.alk-collapse-toggle--right {
  display: none;
}

@media (min-width: 59rem) {
  .alk-collapse-toggle--right {
    display: inline-flex;
  }
}
