:root {
  --md-text-font: "Avenir Next", "Segoe UI", sans-serif;
  --md-code-font: "SFMono-Regular", "IBM Plex Mono", "Menlo", monospace;

  /* Startup-ish: white canvas + sharp black + teal accent. */
  --md-primary-fg-color: #0b0f19;
  --md-primary-bg-color: #ffffff;
  --md-accent-fg-color: #00a7a0;
}

.md-header__title, .md-header__topic {
  font-weight: 700;
  letter-spacing: 0.02em;
}

.md-typeset h1 {
  letter-spacing: -0.02em;
}

/* Redoc embeds need more room than the default Material content column. */
.openapi-page {
  width: 100%;
}

.redoc-frame {
  display: block;
  width: 100%;
  min-height: calc(100vh - 14rem);
  border: 1px solid rgba(0, 0, 0, 0.12);
  background: #fff;
}

/*
 * Redoc works best full-width. When the OpenAPI page is open we:
 * - hide MkDocs' primary nav to avoid "double sidebars" (MkDocs + Redoc)
 * - expand the content grid so Redoc has enough horizontal space
 *
 * `:has()` is supported in modern browsers; if unsupported, the page still works
 * (just with less space).
 */
.md-container:has(.openapi-page) .md-sidebar--primary {
  display: none;
}

.md-container:has(.openapi-page) .md-main__inner {
  margin-left: 0;
}

.md-main__inner:has(.openapi-page) {
  max-width: none;
}

/* Fallback for browsers without :has(): JS toggles .has-redoc on <body>. */
body.has-redoc .md-sidebar--primary {
  display: none;
}

body.has-redoc .md-grid {
  max-width: none;
}

body.has-redoc .md-main__inner {
  margin-left: 0;
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}

body.has-redoc .md-content__inner {
  margin: 0;
}
