/* SimBricks design system → pydata-sphinx-theme mapping.
   Tokens from the SimBricks design system (zinc neutrals, single teal accent,
   hairline 1px borders, small radii, flat subtle shadows, system-ui type).
   Keep in sync with the design-system styles.css. */

:root {
  /* Design-system tokens */
  --sb-primary: #0d9488;
  --sb-primary-hover: #0f766e;
  --sb-primary-ink: #0f766e;
  --sb-primary-fg: #ffffff;
  --sb-primary-soft: #f0fdfa;
  --sb-info: #2563eb;
  --sb-info-ink: #1d4ed8;
  --sb-info-soft: #eff6ff;
  --sb-success: #16a34a;
  --sb-success-soft: #f0fdf4;
  --sb-danger: #dc2626;
  --sb-danger-soft: #fef2f2;
  --sb-background: #ffffff;
  --sb-foreground: #09090b;
  --sb-muted: #f4f4f5;
  --sb-muted-foreground: #71717a;
  --sb-border: #e4e4e7;
  --sb-zinc-50: #fafafa;
  --sb-zinc-100: #f4f4f5;
  --sb-zinc-200: #e4e4e7;
  --sb-zinc-300: #d4d4d8;
  --sb-zinc-400: #a1a1aa;
  --sb-zinc-500: #71717a;
  --sb-zinc-600: #52525b;
  --sb-zinc-700: #3f3f46;
  --sb-zinc-800: #27272a;
  --sb-zinc-900: #18181b;
  --sb-zinc-950: #09090b;
  --sb-radius-sm: 0.375rem;
  --sb-radius-md: 0.5rem;
  --sb-radius-base: 0.625rem;
  --sb-radius-lg: 0.75rem;
  --sb-radius-pill: 9999px;
  --sb-shadow-xs: 0 1px 2px 0 rgb(9 9 11 / 0.05);
  --sb-shadow-sm: 0 1px 3px 0 rgb(9 9 11 / 0.08), 0 1px 2px -1px rgb(9 9 11 / 0.08);
  --sb-font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
    Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;

  /* Typography */
  --pst-font-family-base: var(--sb-font-sans);
  --pst-font-family-heading: var(--sb-font-sans);
}

/* ---------- Light mode (canonical design-system palette) ---------- */
html[data-theme="light"] {
  --pst-color-primary: var(--sb-primary);
  --pst-color-secondary: var(--sb-primary-hover);
  --pst-color-accent: var(--sb-primary);
  --pst-color-link: var(--sb-primary-ink);
  --pst-color-link-hover: var(--sb-primary);
  --pst-color-inline-code-links: var(--sb-primary-ink);

  --pst-color-background: var(--sb-background);
  --pst-color-on-background: var(--sb-background);
  --pst-color-surface: var(--sb-muted);
  --pst-color-on-surface: var(--sb-foreground);
  --pst-color-border: var(--sb-border);
  --pst-color-shadow: rgb(9 9 11 / 0.08);

  --pst-color-text-base: var(--sb-foreground);
  --pst-color-text-muted: var(--sb-muted-foreground);
  --pst-color-heading-color: var(--sb-foreground);

  --pst-color-info: var(--sb-info);
  --pst-color-info-bg: var(--sb-info-soft);
  --pst-color-success: var(--sb-success);
  --pst-color-success-bg: var(--sb-success-soft);
  --pst-color-danger: var(--sb-danger);
  --pst-color-danger-bg: var(--sb-danger-soft);
  --pst-color-attention: var(--sb-danger);
  --pst-color-attention-bg: var(--sb-danger-soft);

  --pst-color-inline-code: var(--sb-primary-ink);
  --pst-color-target: var(--sb-primary-soft);
  --pst-color-table-row-hover-bg: var(--sb-primary-soft);
}

/* ---------- Dark mode (derived from the zinc scale; teal lightened one
   step for contrast on dark surfaces) ---------- */
html[data-theme="dark"] {
  --pst-color-primary: #2dd4bf;
  --pst-color-secondary: #5eead4;
  --pst-color-accent: #2dd4bf;
  --pst-color-link: #2dd4bf;
  --pst-color-link-hover: #5eead4;

  --pst-color-background: var(--sb-zinc-950);
  --pst-color-on-background: var(--sb-zinc-900);
  --pst-color-surface: var(--sb-zinc-900);
  --pst-color-on-surface: var(--sb-zinc-100);
  --pst-color-border: var(--sb-zinc-800);
  --pst-color-shadow: rgb(0 0 0 / 0.4);

  --pst-color-text-base: var(--sb-zinc-100);
  --pst-color-text-muted: var(--sb-zinc-400);
  --pst-color-heading-color: var(--sb-zinc-50);

  --pst-color-inline-code: #5eead4;
  --pst-color-target: rgba(13, 148, 136, 0.15);
  --pst-color-table-row-hover-bg: rgba(13, 148, 136, 0.12);
}

/* ---------- Typography ---------- */
body {
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: -0.006em;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: 600;
  letter-spacing: -0.006em;
}

/* Small uppercase labels (sidebar captions, nav sections) */
.bd-sidebar-primary .caption-text,
nav.bd-links p.bd-links__title,
.bd-sidebar-secondary .onthispage {
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--pst-color-text-muted);
}

/* ---------- Components: hairline borders, small radii, flat shadows ---------- */

/* Code blocks */
div.highlight, pre {
  border: 1px solid var(--pst-color-border);
  border-radius: var(--sb-radius-md);
  box-shadow: none;
}

code.literal {
  border: 1px solid var(--pst-color-border);
  border-radius: var(--sb-radius-sm);
  background-color: var(--pst-color-surface);
}

/* Admonitions: card-like, no heavy shadow */
div.admonition,
.admonition {
  border: 1px solid var(--pst-color-border);
  border-left-width: 3px;
  border-radius: var(--sb-radius-md);
  box-shadow: var(--sb-shadow-xs);
}

/* Tables: hairline borders */
table.table {
  border: 1px solid var(--pst-color-border);
  border-radius: var(--sb-radius-md);
}

table.table td, table.table th {
  border-color: var(--pst-color-border);
}

/* Buttons and search field: 0.625rem radius, never a pill */
.btn,
button.btn,
.bd-search .form-control,
.search-button-field {
  border-radius: var(--sb-radius-base);
}

/* Chips / badges may be pills */
.badge {
  border-radius: var(--sb-radius-pill);
}

/* Header: flat, hairline bottom border */
.bd-header {
  box-shadow: none;
  border-bottom: 1px solid var(--pst-color-border);
}

/* ---------- Layout fixes (kept from previous custom.css) ---------- */
.wy-side-nav-search {
  background-color: rgba(255, 255, 255, .95);
}

.bd-header .navbar-header-items__start {
  flex-shrink: unset !important;
}

.navbar-brand {
  flex-shrink: unset !important;
  margin-right: 15px;
}
