/* Modern, sleek theme overrides for MkDocs Material */

:root {
  --app-radius: 12px;
  --app-radius-sm: 8px;
  --app-shadow: 0 18px 40px rgba(15, 23, 42, 0.16);
  --app-shadow-sm: 0 8px 18px rgba(15, 23, 42, 0.12);
  --app-transition: 150ms ease;
}

[data-md-color-scheme="default"] {
  --app-bg: #f6f7fb;
  --app-surface: #ffffff;
  --app-elevated: #ffffff;
  --app-text: #1b1f2a;
  --app-muted: #5f6677;
  --app-border-color: #e1e6ef;
  --app-code-bg: #f0f2f7;
  --app-accent: #6366f1;
  --app-accent-strong: #4f46e5;
  --app-link: #4f46e5;
}

[data-md-color-scheme="slate"] {
  --app-bg: #0f1117;
  --app-surface: #141925;
  --app-elevated: #1a2030;
  --app-text: #e6e9f2;
  --app-muted: #9da6ba;
  --app-border-color: #293041;
  --app-code-bg: #1a2030;
  --app-accent: #8b8cf8;
  --app-accent-strong: #a5b4fc;
  --app-link: #a5b4fc;
  --app-shadow: 0 18px 40px rgba(0, 0, 0, 0.4);
  --app-shadow-sm: 0 8px 18px rgba(0, 0, 0, 0.35);
}

[data-md-color-scheme] {
  --md-default-bg-color: var(--app-bg);
  --md-default-fg-color: var(--app-text);
  --md-default-fg-color--light: var(--app-muted);
  --md-code-bg-color: var(--app-code-bg);
  --md-primary-fg-color: var(--app-accent);
  --md-primary-fg-color--light: var(--app-accent);
  --md-primary-fg-color--dark: var(--app-accent-strong);
  --md-accent-fg-color: var(--app-accent-strong);
}

html,
body {
  background-color: var(--app-bg);
  color: var(--app-text);
}

.md-header,
.md-tabs {
  background: var(--app-surface);
  border-bottom: 1px solid var(--app-border-color);
  box-shadow: var(--app-shadow-sm);
}

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

[data-md-color-scheme="default"] .md-header__button {
  color: var(--app-text);
}

[data-md-color-scheme="slate"] .md-header__button {
  color: var(--app-muted);
}

.md-sidebar__inner {
  background: transparent;
}

.md-nav__link {
  color: var(--app-muted);
  font-weight: 500;
  transition: color var(--app-transition), background var(--app-transition);
}

.md-nav__link--active,
.md-nav__item--active > .md-nav__link {
  color: var(--app-text);
  background: var(--app-elevated);
  border-radius: var(--app-radius-sm);
  box-shadow: var(--app-shadow-sm);
}

.md-nav__link:hover {
  color: var(--app-text);
  background: var(--app-elevated);
  border-radius: var(--app-radius-sm);
}

.md-typeset h1,
.md-typeset h2,
.md-typeset h3 {
  letter-spacing: 0.01em;
  font-weight: 700;
}

.md-typeset h1 {
  margin-bottom: 1rem;
}

.md-typeset a {
  color: var(--app-link);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
  transition: color var(--app-transition);
}

.md-typeset a:hover {
  color: var(--app-accent);
}

.md-typeset code {
  background: var(--app-code-bg);
  border: 1px solid var(--app-border-color);
  border-radius: var(--app-radius-sm);
  padding: 0.15em 0.35em;
  color: var(--app-text);
}

.md-typeset pre {
  background: var(--app-code-bg);
  border: 1px solid var(--app-border-color);
  border-radius: var(--app-radius);
  box-shadow: var(--app-shadow-sm);
}

.md-typeset pre code {
  color: var(--app-text);
}

.md-typeset .admonition,
.md-typeset details {
  border: 1px solid var(--app-border-color);
  border-radius: var(--app-radius);
  background: var(--app-elevated);
  box-shadow: var(--app-shadow-sm);
}

.md-typeset .admonition-title {
  background: transparent;
  color: var(--app-text);
  font-weight: 600;
}

.md-typeset table {
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid var(--app-border-color);
  border-radius: var(--app-radius);
  overflow: hidden;
  box-shadow: var(--app-shadow-sm);
}

.md-typeset table th,
.md-typeset table td {
  border-bottom: 1px solid var(--app-border-color);
  padding: 0.6rem 0.8rem;
}

.md-typeset table th {
  background: var(--app-code-bg);
  color: var(--app-text);
  font-weight: 600;
}

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

.md-button,
.md-typeset .md-button {
  border: none;
  border-radius: var(--app-radius-sm);
  background: var(--app-accent);
  color: #ffffff;
  font-weight: 600;
  letter-spacing: 0.01em;
  box-shadow: var(--app-shadow-sm);
  transition: transform var(--app-transition), box-shadow var(--app-transition);
}

.md-button:hover,
.md-typeset .md-button:hover {
  transform: translateY(-1px);
  box-shadow: var(--app-shadow);
}

.md-search__form {
  border: 1px solid var(--app-border-color);
  border-radius: var(--app-radius);
  background: var(--app-elevated);
  box-shadow: var(--app-shadow-sm);
}

.md-search__input {
  color: var(--app-text);
}

.md-search__icon svg {
  transform: scale(1);
}

.md-footer {
  background: var(--app-surface);
  border-top: 1px solid var(--app-border-color);
}

.md-typeset .md-card,
.md-typeset .md-typeset__table {
  border-radius: var(--app-radius);
  box-shadow: var(--app-shadow-sm);
}

@media screen and (max-width: 76.1875em) {
  .md-nav--primary .md-nav__link {
    border-radius: var(--app-radius-sm);
  }
}
