@font-face {
  font-family: "DepartureMono";
  src: url("DepartureMono-Regular.woff2") format("woff2"),
    url("DepartureMono-Regular.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* ── Kernel bestiary table ───────────────────────────────────────────────
   One pixel-bordered box per kernel type. Same double-bevel 9-slice
   technique as the SK pixel UI kit: a 96x96 source PNG with a black outer
   ring + olive inner ring baked in, sliced at 34px so the jagged pixel
   corners stay crisp instead of smearing when the box is resized.

   Each kernel is a plain, always-expanded row: no collapse, nothing to
   click, everything visible at once. */
.kernel-table {
  border-style: solid;
  border-width: 8px;
  border-radius: 0;
  image-rendering: pixelated;
  image-rendering: -moz-crisp-edges;
  image-rendering: crisp-edges;
  border-image: url("pixel-double-light.png") 34 stretch;
  background: var(--md-default-bg-color);
  font-family: "Asap", system-ui, -apple-system, "Segoe UI", sans-serif;
  margin: 1.5rem 0;
  overflow: hidden;
}

[data-md-color-scheme="slate"] .kernel-table {
  border-image: url("pixel-double-dark.png") 34 stretch;
}

.md-typeset .kernel-table .kernel-row {
  border-bottom: 1px dashed var(--sk-line);
}

.md-typeset .kernel-table .kernel-row:last-child {
  border-bottom: none;
}

.md-typeset .kernel-row__summary {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  padding: 10px 20px;
  font-size: 0.85rem;
  font-weight: 600;
}

.kernel-row__name a {
  color: var(--md-accent-fg-color);
  font-size: 0.7rem;
  font-weight: 400;
  text-decoration: none;
  border-bottom: 1px dashed var(--sk-muted);
}

.kernel-row__name a:hover {
  color: var(--md-accent-fg-color);
  border-bottom-color: currentColor;
}

.kernel-row__train--yes,
.kernel-row__infer--yes {
  color: var(--md-accent-fg-color);
}

.kernel-row__train--no,
.kernel-row__infer--no {
  color: var(--sk-muted);
  font-weight: 400;
}

.md-typeset .kernel-row__detail {
  padding: 0 20px 18px 20px;
  font-size: 0.8rem;
}

.md-typeset .kernel-row__detail p {
  margin: 0 0 0.85rem;
  line-height: 1.55;
  color: var(--md-default-fg-color);
}

.md-typeset .kernel-row__variants-label {
  margin: 0 0 4px;
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--sk-muted);
}

.md-typeset .kernel-row__actions {
  display: flex;
  justify-content: flex-end;
  margin: 0.85rem 0 0;
}

.md-typeset .request-btn {
  display: inline-block;
  padding: 6px 14px;
  border: 2px solid var(--md-accent-fg-color);
  border-radius: 0;
  background: var(--md-accent-fg-color);
  color: var(--md-default-bg-color);
  font-family: "Asap", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  text-decoration: none;
}

.md-typeset .request-btn:hover {
  background: transparent;
  color: var(--md-accent-fg-color);
}

/* ── Bestiary search ─────────────────────────────────────────────────────
   Filters .kernel-row entries client-side; see kernel-search.js. */
.md-typeset .kernel-search-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 1rem 0;
}

.md-typeset .kernel-search-bar input.kernel-search {
  margin: 0;
  flex: 1;
  max-width: none;
}

.md-typeset .kernel-search-bar .request-btn {
  flex: none;
  white-space: nowrap;
}

.md-typeset input.kernel-search {
  display: block;
  width: 100%;
  max-width: 400px;
  margin: 1rem 0;
  padding: 8px 12px;
  border: 2px solid var(--sk-line);
  border-radius: 0;
  background: var(--md-default-bg-color);
  color: var(--md-default-fg-color);
  font-family: "Asap", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 0.85rem;
}

.md-typeset input.kernel-search:focus {
  outline: none;
  border-color: var(--md-accent-fg-color);
}

.md-typeset .kernel-filter-toggle {
  cursor: pointer;
  background: transparent;
  color: var(--md-accent-fg-color);
}

.md-typeset .kernel-filter-toggle[hidden] {
  display: none;
}

.md-typeset .kernel-filter-toggle:hover,
.md-typeset .kernel-filter-toggle[aria-expanded="true"] {
  background: var(--md-accent-fg-color);
  color: var(--md-default-bg-color);
}

.md-typeset .kernel-filter-toggle span {
  display: inline-grid;
  min-width: 1.25rem;
  min-height: 1.25rem;
  margin-left: 4px;
  place-items: center;
  border: 1px solid currentColor;
}

.md-typeset .kernel-filter-panel {
  margin: -0.25rem 0 1rem;
  padding: 14px;
  border: 2px solid var(--sk-line);
  background: var(--sk-bg-soft);
}

.md-typeset .kernel-filter-panel[hidden],
.md-typeset .kernel-active-filters[hidden],
.md-typeset .kernel-empty-state[hidden] {
  display: none;
}

.md-typeset .kernel-filter-groups {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}

.md-typeset .kernel-filter-group {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: none;
}

.md-typeset .kernel-filter-group legend {
  width: 100%;
  margin-bottom: 8px;
  padding: 0 0 5px;
  border-bottom: 1px dashed var(--sk-line);
  color: var(--md-default-fg-color);
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.md-typeset .kernel-filter-option {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  margin: 5px 0;
  color: var(--md-default-fg-color);
  font-size: 0.72rem;
  cursor: pointer;
}

.md-typeset .kernel-filter-option:has(input:disabled) {
  color: var(--sk-muted);
  cursor: not-allowed;
  opacity: 0.55;
}

.md-typeset .kernel-filter-option input {
  width: 14px;
  height: 14px;
  margin: 0;
  accent-color: var(--md-accent-fg-color);
}

.md-typeset .kernel-filter-option__count {
  color: var(--sk-muted);
  font-family: "IBMPlexMono", ui-monospace, monospace;
  font-size: 0.65rem;
}

.md-typeset .kernel-active-filters__clear {
  padding: 0;
  border: none;
  background: transparent;
  color: var(--md-accent-fg-color);
  font: inherit;
  font-size: 0.7rem;
  text-decoration: underline;
  text-decoration-style: dashed;
  text-underline-offset: 3px;
  cursor: pointer;
}

.md-typeset .kernel-active-filters {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  margin: 0 0 1rem;
}

.md-typeset .kernel-filter-chip {
  padding: 5px 9px;
  border: 1px solid var(--md-accent-fg-color);
  border-radius: 0;
  background: var(--sk-bg-pill);
  color: var(--md-default-fg-color);
  font-family: "Asap", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 0.68rem;
  cursor: pointer;
}

.md-typeset .kernel-active-filters__clear {
  margin-left: auto;
}

.md-typeset .kernel-coverage-legend__heading {
  margin: 0.75rem 0 0.35rem;
  color: var(--md-default-fg-color);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.md-typeset .kernel-coverage-legend {
  display: grid;
  grid-template-columns: minmax(72px, auto) 1fr;
  margin: 0 0 2rem;
  border: none;
  background: transparent;
  font-family: "Asap", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 0.72rem;
  line-height: 1.4;
}

.md-typeset .kernel-coverage-legend__label {
  display: flex;
  align-items: center;
  padding: 6px 10px 6px 0;
  border-bottom: 1px dashed var(--sk-line);
  background: transparent;
  color: var(--sk-muted);
  font-size: 0.62rem;
  font-weight: 400;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.md-typeset .kernel-coverage-legend__statuses {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 13px;
  align-items: center;
  padding: 6px 10px;
  border-bottom: 1px dashed var(--sk-line);
  background: transparent;
}

.md-typeset .kernel-coverage-legend__explanation {
  grid-column: 1 / -1;
  padding: 8px 0;
  background: transparent;
  color: var(--sk-muted);
  font-size: 0.65rem;
  line-height: 1.4;
}

.md-typeset .kernel-coverage-legend__statement {
  display: block;
}

.md-typeset .kernel-coverage-legend__statement +
  .kernel-coverage-legend__statement {
  margin-top: 5px;
}

.md-typeset .kernel-mark {
  font-weight: 600;
}

.md-typeset .kernel-mark--supported {
  color: var(--md-accent-fg-color);
}

.md-typeset .kernel-mark--unsupported {
  color: var(--sk-muted);
}

.md-typeset .kernel-bolt {
  display: inline-block;
  width: 0.52em;
  height: 0.82em;
  margin: 0 0.12em;
  vertical-align: -0.05em;
  background: var(--sk-primary);
  clip-path: polygon(56% 0, 8% 55%, 42% 55%, 27% 100%, 92% 40%, 57% 40%);
}

.md-typeset .kernel-results-status {
  margin: 1rem 0 0.4rem;
  color: var(--sk-muted);
  font-size: 0.7rem;
}

.md-typeset .kernel-empty-state {
  margin: 1.5rem 0;
  padding: 20px;
  border: 2px dashed var(--sk-line);
  text-align: center;
}

.md-typeset .kernel-empty-state p {
  margin: 0 0 14px;
}

.md-typeset .kernel-empty-state .request-btn + .request-btn {
  margin-left: 8px;
}

.md-typeset table.variant-table {
  width: 100%;
  border: none;
  border-collapse: collapse;
  font-size: 0.72rem;
  margin: 0;
}

.md-typeset table.variant-table tr:hover {
  background: transparent;
}

.md-typeset table.variant-table th,
.md-typeset table.variant-table td {
  border: none;
  border-bottom: 1px dashed var(--sk-line);
  background: transparent;
  padding: 5px 10px 5px 0;
  text-align: left;
  font-weight: 400;
}

.md-typeset table.variant-table th {
  color: var(--sk-muted);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: 0.62rem;
}

.md-typeset table.variant-table tr:last-child td {
  border-bottom: none;
}

@media screen and (max-width: 44.9844em) {
  .md-typeset .kernel-search-bar {
    align-items: stretch;
    flex-wrap: wrap;
  }

  .md-typeset .kernel-search-bar input.kernel-search {
    flex-basis: 100%;
  }

  .md-typeset .kernel-search-bar .request-btn {
    flex: 1;
    text-align: center;
  }

  .md-typeset .kernel-filter-groups {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .md-typeset .kernel-active-filters__clear {
    width: 100%;
    margin-left: 0;
    text-align: left;
  }

  .md-typeset .kernel-empty-state .request-btn {
    display: block;
    width: 100%;
  }

  .md-typeset .kernel-empty-state .request-btn + .request-btn {
    margin: 8px 0 0;
  }
}
