/*
  Kovent documentation theme.
  Tokens are the same oklch values as KADLS in design/ui/kovent-next-supervision,
  so the docs and the product cannot drift apart.
*/

@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');

:root {
  --kovent-font-sans: 'Plus Jakarta Sans', system-ui, sans-serif;
  --kovent-font-mono: 'JetBrains Mono', ui-monospace, monospace;
}

/* Light — the primary expression, matching the product canvas */
[data-md-color-scheme='default'] {
  color-scheme: light;

  --kovent-gold: oklch(0.62 0.12 88);
  --kovent-gold-muted: oklch(0.55 0.09 88);
  --kovent-surface: oklch(1 0 0);
  --kovent-border: oklch(0.9 0.01 250);
  --kovent-raised: oklch(0.975 0.006 250);

  --md-default-bg-color: oklch(0.97 0.004 250);
  --md-default-fg-color: oklch(0.22 0.03 260);
  --md-default-fg-color--light: oklch(0.52 0.02 260);
  --md-default-fg-color--lighter: oklch(0.66 0.018 258);
  --md-default-fg-color--lightest: oklch(0.8 0.012 254);
  --md-default-bg-color--light: oklch(1 0 0);
  --md-default-bg-color--lighter: oklch(0.975 0.006 250);
  --md-default-bg-color--lightest: oklch(0.94 0.008 250);

  --md-code-bg-color: oklch(0.965 0.006 250);
  --md-code-fg-color: oklch(0.26 0.03 260);
  --md-header-bg-color: oklch(1 0 0 / 92%);
  --md-header-fg-color: oklch(0.22 0.03 260);
  --md-footer-bg-color: oklch(0.97 0.004 250);
  --md-footer-fg-color: oklch(0.52 0.02 260);

  --md-primary-fg-color: oklch(0.62 0.12 88);
  --md-primary-fg-color--light: oklch(0.7 0.11 88);
  --md-primary-fg-color--dark: oklch(0.5 0.1 88);
  --md-accent-fg-color: oklch(0.55 0.1 88);
  --md-typeset-a-color: oklch(0.53 0.1 88);
  --md-typeset-mark-color: oklch(0.96 0.04 92);
  --md-admonition-bg-color: oklch(1 0 0);
  --md-admonition-fg-color: oklch(0.22 0.03 260);
}

/* Dark */
[data-md-color-scheme='slate'] {
  color-scheme: dark;

  --kovent-gold: oklch(0.78 0.13 89);
  --kovent-gold-muted: oklch(0.62 0.1 89);
  --kovent-surface: oklch(0.21 0.028 260);
  --kovent-border: oklch(0.3 0.024 259);
  --kovent-raised: oklch(0.25 0.028 259);

  --md-default-bg-color: oklch(0.17 0.028 261);
  --md-default-fg-color: oklch(0.95 0.006 250);
  --md-default-fg-color--light: oklch(0.67 0.02 256);
  --md-default-fg-color--lighter: oklch(0.55 0.02 258);
  --md-default-fg-color--lightest: oklch(0.42 0.024 259);
  --md-default-bg-color--light: oklch(0.21 0.028 260);
  --md-default-bg-color--lighter: oklch(0.25 0.028 259);
  --md-default-bg-color--lightest: oklch(0.29 0.028 259);

  --md-code-bg-color: oklch(0.21 0.028 260);
  --md-code-fg-color: oklch(0.93 0.006 250);
  --md-header-bg-color: oklch(0.19 0.028 261 / 92%);
  --md-header-fg-color: oklch(0.95 0.006 250);
  --md-footer-bg-color: oklch(0.19 0.028 261);
  --md-footer-fg-color: oklch(0.67 0.02 256);

  --md-primary-fg-color: oklch(0.78 0.13 89);
  --md-primary-fg-color--light: oklch(0.85 0.11 89);
  --md-primary-fg-color--dark: oklch(0.62 0.11 89);
  --md-accent-fg-color: oklch(0.82 0.12 89);
  --md-typeset-a-color: oklch(0.8 0.12 89);
  --md-typeset-mark-color: oklch(0.29 0.05 90);
  --md-admonition-bg-color: oklch(0.21 0.028 260);
  --md-admonition-fg-color: oklch(0.95 0.006 250);
}

/*
  Chrome. Material paints the header with the primary colour by default, which would
  make gold the theme rather than the accent. The header is a surface with a hairline,
  like the product's top bar.
*/
.md-header {
  background-color: var(--md-header-bg-color);
  color: var(--md-header-fg-color);
  border-bottom: 1px solid var(--kovent-border);
  backdrop-filter: blur(12px);
  box-shadow: none;
}

.md-header__title {
  font-weight: 600;
  letter-spacing: -0.01em;
}

/* Search sits on a muted fill rather than a translucent wash on gold */
.md-search__form {
  background-color: var(--md-default-bg-color--lightest);
  border: 1px solid var(--kovent-border);
  border-radius: 0.5rem;
  box-shadow: none;
}

.md-search__form:hover {
  background-color: var(--md-default-bg-color--lighter);
}

.md-search__input::placeholder,
.md-search__icon {
  color: var(--md-default-fg-color--light);
}

[data-md-toggle='search']:checked ~ .md-header .md-search__form {
  border-radius: 0.5rem 0.5rem 0 0;
}

.md-sidebar {
  border-right: 1px solid var(--kovent-border);
}

.md-sidebar--secondary {
  border-right: 0;
  border-left: 1px solid var(--kovent-border);
}

/* Typography — sans for prose, mono reserved for references and figures */
body,
.md-typeset {
  font-family: var(--kovent-font-sans);
  -webkit-font-smoothing: antialiased;
}

.md-typeset h1,
.md-typeset h2,
.md-typeset h3,
.md-typeset h4 {
  font-weight: 600;
  letter-spacing: -0.02em;
}

.md-typeset h1 {
  color: var(--md-default-fg-color);
}

.md-typeset code,
.md-typeset pre code {
  font-family: var(--kovent-font-mono);
  font-size: 0.82em;
}

.md-typeset :not(pre) > code {
  border: 1px solid var(--kovent-border);
  border-radius: 0.25rem;
  padding: 0.1em 0.35em;
}

/* Tables carry most of the spec detail, so they get the hairline treatment */
.md-typeset table:not([class]) {
  border: 1px solid var(--kovent-border);
  border-radius: 0.5rem;
  font-size: 0.78rem;
  overflow: hidden;
}

.md-typeset table:not([class]) th {
  background: var(--kovent-raised);
  font-weight: 600;
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--md-default-fg-color--light);
}

.md-typeset table:not([class]) td {
  border-top: 1px solid var(--kovent-border);
}

/* Section labels in the nav — the one place mono earns its keep */
.md-nav__item--section > .md-nav__link {
  font-family: var(--kovent-font-mono);
  font-size: 0.66rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--kovent-gold-muted);
}

/* Home and overview cards */
.kovent-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 0.75rem;
  margin: 1.5rem 0;
}

.kovent-card {
  display: block;
  padding: 1.1rem 1.25rem;
  border: 1px solid var(--kovent-border);
  border-radius: 0.5rem;
  background: var(--kovent-surface);
  text-decoration: none !important;
  transition:
    border-color 0.15s ease,
    background 0.15s ease;
}

.kovent-card:hover {
  border-color: var(--kovent-gold);
  background: var(--kovent-raised);
}

.kovent-card h3 {
  font-family: var(--kovent-font-mono);
  font-size: 0.76rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--kovent-gold);
  margin: 0 0 0.4rem;
}

.kovent-card p {
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--md-default-fg-color--light);
  margin: 0;
}

.kovent-eyebrow {
  font-family: var(--kovent-font-mono);
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--kovent-gold);
  margin-bottom: 0.6rem;
}

.kovent-lead {
  font-size: 1.1rem;
  line-height: 1.6;
  color: var(--md-default-fg-color);
  max-width: 44rem;
}

/* Status metadata blockquote at the head of doctrine and spec pages */
.md-typeset blockquote {
  border-left: 2px solid var(--kovent-gold);
  color: var(--md-default-fg-color--light);
}

.md-typeset blockquote > p {
  font-size: 0.8rem;
}

.md-search-result__meta {
  font-family: var(--kovent-font-mono);
  font-size: 0.68rem;
}
