/* ==========================================================================
   Nine Fives — Dawn Theme Overrides for MkDocs Material
   Source: Shopify Dawn theme (nf_shopify_dawn_theme)
   ========================================================================== */

/* ---------- Font Loading ---------- */
@import url('https://fonts.googleapis.com/css2?family=Assistant:wght@400;600;700&family=JetBrains+Mono:wght@400;500&display=swap');

/* ==========================================================================
   Light Mode (Dawn Scheme 1)
   ========================================================================== */
[data-md-color-scheme="default"] {
  --md-default-bg-color: #FFFFFF;
  --md-default-fg-color: #121212;
  --md-default-fg-color--light: #333333;
  --md-default-fg-color--lighter: #555555;
  --md-default-fg-color--lightest: #E5E5E5;

  --md-primary-fg-color: #121212;
  --md-primary-fg-color--light: #333333;
  --md-primary-fg-color--dark: #000000;
  --md-primary-bg-color: #FFFFFF;
  --md-primary-bg-color--light: #FAFAFA;

  --md-accent-fg-color: #121212;
  --md-accent-fg-color--transparent: rgba(18, 18, 18, 0.1);
  --md-accent-bg-color: #FFFFFF;

  --md-code-bg-color: #F8F8F8;
  --md-code-fg-color: #121212;
  --md-code-hl-color: rgba(18, 18, 18, 0.06);

  --md-typeset-color: #333333;
  --md-typeset-a-color: #121212;

  --md-typeset-font-family: 'Assistant', sans-serif;
  --md-code-font-family: 'JetBrains Mono', monospace;

  /* Dawn-specific tokens */
  --dawn-sidebar-bg: #FAFAFA;
  --dawn-sidebar-border: #E5E5E5;
  --dawn-code-border: #E5E5E5;
  --dawn-admonition-bg: #F3F3F3;
  --dawn-admonition-border: #121212;
  --dawn-table-border: #E5E5E5;
  --dawn-table-header-bg: #FAFAFA;
  --dawn-table-stripe-bg: #FAFAFA;
  --dawn-nav-active-bg: rgba(18, 18, 18, 0.04);
  --dawn-shadow-color: rgba(18, 18, 18, 0.05);
}

/* ==========================================================================
   Dark Mode (Dawn Scheme 4)
   ========================================================================== */
[data-md-color-scheme="slate"] {
  --md-default-bg-color: #121212;
  --md-default-fg-color: #FFFFFF;
  --md-default-fg-color--light: #CCCCCC;
  --md-default-fg-color--lighter: #999999;
  --md-default-fg-color--lightest: #2A2A2A;

  --md-primary-fg-color: #FFFFFF;
  --md-primary-fg-color--light: #CCCCCC;
  --md-primary-fg-color--dark: #FFFFFF;
  --md-primary-bg-color: #121212;
  --md-primary-bg-color--light: #0E0E0E;

  --md-accent-fg-color: #FFFFFF;
  --md-accent-fg-color--transparent: rgba(255, 255, 255, 0.1);
  --md-accent-bg-color: #121212;

  --md-code-bg-color: #1A1A1A;
  --md-code-fg-color: #FFFFFF;
  --md-code-hl-color: rgba(255, 255, 255, 0.06);

  --md-typeset-color: #CCCCCC;
  --md-typeset-a-color: #FFFFFF;

  --md-typeset-font-family: 'Assistant', sans-serif;
  --md-code-font-family: 'JetBrains Mono', monospace;

  /* Dawn-specific tokens */
  --dawn-sidebar-bg: #0E0E0E;
  --dawn-sidebar-border: #2A2A2A;
  --dawn-code-border: #2A2A2A;
  --dawn-admonition-bg: #1A1A1A;
  --dawn-admonition-border: #FFFFFF;
  --dawn-table-border: #2A2A2A;
  --dawn-table-header-bg: #1A1A1A;
  --dawn-table-stripe-bg: #161616;
  --dawn-nav-active-bg: rgba(255, 255, 255, 0.05);
  --dawn-shadow-color: rgba(0, 0, 0, 0.3);
}

/* ==========================================================================
   Typography
   ========================================================================== */
.md-typeset {
  font-family: var(--md-typeset-font-family);
  letter-spacing: 0.06rem;
  line-height: 1.65;
}

.md-typeset h1 {
  font-weight: 700;
  letter-spacing: -0.01rem;
}

.md-typeset h2 {
  font-weight: 700;
  letter-spacing: -0.01rem;
}

.md-typeset h3 {
  font-weight: 700;
  letter-spacing: 0;
}

.md-typeset h4,
.md-typeset h5,
.md-typeset h6 {
  font-weight: 600;
  letter-spacing: 0;
}

.md-typeset code,
.md-typeset pre,
.md-typeset kbd {
  font-family: var(--md-code-font-family);
}

/* ==========================================================================
   Header
   ========================================================================== */
.md-header {
  background-color: var(--md-primary-fg-color);
  color: var(--md-primary-bg-color);
  box-shadow: none;
}

.md-header__title {
  font-family: var(--md-typeset-font-family);
  font-weight: 700;
  letter-spacing: 0.02rem;
}

/* ==========================================================================
   Sidebar / Navigation
   ========================================================================== */
.md-sidebar {
  background-color: var(--dawn-sidebar-bg);
  border-right: 1px solid var(--dawn-sidebar-border);
}

.md-nav__title {
  font-family: var(--md-typeset-font-family);
  font-weight: 700;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08rem;
}

.md-nav__item .md-nav__link {
  font-family: var(--md-typeset-font-family);
  font-size: 0.85rem;
  border-radius: 0;
  border-left: 2px solid transparent;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

.md-nav__item .md-nav__link--active,
.md-nav__item .md-nav__link:is([href], [for]):hover {
  border-left-color: var(--md-primary-fg-color);
  background-color: var(--dawn-nav-active-bg);
}

/* ==========================================================================
   Code Blocks
   ========================================================================== */
.md-typeset code {
  border-radius: 0;
  border: 1px solid var(--dawn-code-border);
  font-size: 0.85em;
}

.md-typeset pre {
  border-radius: 0;
}

.md-typeset pre > code {
  border-radius: 0;
  border: 1px solid var(--dawn-code-border);
  font-size: 0.85em;
}

.highlight {
  border-radius: 0;
}

.highlight code {
  border: none;
}

/* Copy button */
.md-clipboard {
  border-radius: 0;
}

/* ==========================================================================
   Admonitions
   ========================================================================== */
.md-typeset .admonition,
.md-typeset details {
  border: none !important;
  border-left: 3px solid var(--dawn-admonition-border) !important;
  border-radius: 0 !important;
  background-color: var(--dawn-admonition-bg) !important;
  box-shadow: none !important;
  font-size: 0.9rem;
}

.md-typeset .admonition-title,
.md-typeset summary {
  background-color: transparent;
  border: none;
  font-weight: 700;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.06rem;
  padding-left: 1rem;
}

/* Remove default admonition icons */
.md-typeset .admonition-title::before,
.md-typeset summary::before {
  display: none;
}

/* Remove colored left borders on specific admonition types — use uniform style */
.md-typeset .admonition.note,
.md-typeset .admonition.info,
.md-typeset .admonition.tip,
.md-typeset .admonition.warning,
.md-typeset .admonition.danger,
.md-typeset .admonition.example,
.md-typeset .admonition.quote,
.md-typeset .admonition.abstract,
.md-typeset .admonition.success,
.md-typeset .admonition.question,
.md-typeset .admonition.failure,
.md-typeset .admonition.bug {
  border-color: var(--dawn-admonition-border) !important;
}

/* Override Material's per-type title colors */
.md-typeset .note > .admonition-title,
.md-typeset .info > .admonition-title,
.md-typeset .tip > .admonition-title,
.md-typeset .warning > .admonition-title,
.md-typeset .danger > .admonition-title,
.md-typeset .example > .admonition-title,
.md-typeset .quote > .admonition-title,
.md-typeset .abstract > .admonition-title,
.md-typeset .success > .admonition-title,
.md-typeset .question > .admonition-title,
.md-typeset .failure > .admonition-title,
.md-typeset .bug > .admonition-title {
  background-color: transparent !important;
}

/* ==========================================================================
   Tables
   ========================================================================== */
.md-typeset table:not([class]) {
  border: none;
  border-radius: 0;
  box-shadow: none;
}

.md-typeset table:not([class]) th {
  background-color: var(--dawn-table-header-bg);
  font-weight: 700;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05rem;
  border-bottom: 2px solid var(--dawn-table-border);
  color: var(--md-default-fg-color--lighter);
}

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

.md-typeset table:not([class]) tr:nth-child(even) {
  background-color: var(--dawn-table-stripe-bg);
}

/* Remove vertical borders */
.md-typeset table:not([class]) th,
.md-typeset table:not([class]) td {
  border-left: none;
  border-right: none;
}

/* ==========================================================================
   Search
   ========================================================================== */
.md-search__input {
  font-family: var(--md-typeset-font-family);
  border-radius: 0;
}

.md-search-result {
  font-family: var(--md-typeset-font-family);
}

.md-search-result__link {
  border-radius: 0;
}

/* ==========================================================================
   Footer
   ========================================================================== */
.md-footer {
  background-color: var(--md-primary-fg-color);
  color: var(--md-primary-bg-color);
}

.md-footer a {
  color: var(--md-primary-bg-color);
}

/* ==========================================================================
   Buttons (in content)
   ========================================================================== */
.md-typeset .md-button {
  font-family: var(--md-typeset-font-family);
  font-weight: 600;
  letter-spacing: 0.06rem;
  border-radius: 0;
  border-width: 1px;
  padding: 0.45rem 1.2rem;
}

.md-typeset .md-button--primary {
  background-color: var(--md-primary-fg-color);
  color: var(--md-primary-bg-color);
  border-color: var(--md-primary-fg-color);
}

.md-typeset .md-button--primary:hover {
  background-color: var(--md-primary-fg-color);
  opacity: 0.85;
}

/* ==========================================================================
   Tabs
   ========================================================================== */
.md-typeset .tabbed-labels > label {
  font-family: var(--md-typeset-font-family);
  border-radius: 0;
}

/* ==========================================================================
   Back-to-top button
   ========================================================================== */
.md-top {
  border-radius: 0;
  background-color: var(--md-primary-fg-color);
  color: var(--md-primary-bg-color);
}

/* ==========================================================================
   Global border-radius reset (Dawn uses 0px)
   ========================================================================== */
.md-typeset .admonition,
.md-typeset details,
.md-typeset .tabbed-set,
.md-typeset .highlight,
.md-typeset pre,
.md-typeset code,
.md-typeset .md-button,
.md-search__input,
.md-search-result__link,
.md-top,
.md-clipboard {
  border-radius: 0 !important;
}

/* ==========================================================================
   Syntax Highlighting (Pygments)
   ========================================================================== */

/* Light mode syntax */
[data-md-color-scheme="default"] .highlight .k,
[data-md-color-scheme="default"] .highlight .kd,
[data-md-color-scheme="default"] .highlight .kn,
[data-md-color-scheme="default"] .highlight .kp,
[data-md-color-scheme="default"] .highlight .kr,
[data-md-color-scheme="default"] .highlight .kt {
  color: #7c3aed;
}

[data-md-color-scheme="default"] .highlight .s,
[data-md-color-scheme="default"] .highlight .s1,
[data-md-color-scheme="default"] .highlight .s2,
[data-md-color-scheme="default"] .highlight .sa,
[data-md-color-scheme="default"] .highlight .sb,
[data-md-color-scheme="default"] .highlight .sc,
[data-md-color-scheme="default"] .highlight .dl,
[data-md-color-scheme="default"] .highlight .sd,
[data-md-color-scheme="default"] .highlight .se,
[data-md-color-scheme="default"] .highlight .sh,
[data-md-color-scheme="default"] .highlight .si,
[data-md-color-scheme="default"] .highlight .sx {
  color: #059669;
}

[data-md-color-scheme="default"] .highlight .c,
[data-md-color-scheme="default"] .highlight .c1,
[data-md-color-scheme="default"] .highlight .ch,
[data-md-color-scheme="default"] .highlight .cm,
[data-md-color-scheme="default"] .highlight .cp,
[data-md-color-scheme="default"] .highlight .cpf,
[data-md-color-scheme="default"] .highlight .cs {
  color: #9ca3af;
}

/* Dark mode syntax */
[data-md-color-scheme="slate"] .highlight .k,
[data-md-color-scheme="slate"] .highlight .kd,
[data-md-color-scheme="slate"] .highlight .kn,
[data-md-color-scheme="slate"] .highlight .kp,
[data-md-color-scheme="slate"] .highlight .kr,
[data-md-color-scheme="slate"] .highlight .kt {
  color: #c084fc;
}

[data-md-color-scheme="slate"] .highlight .s,
[data-md-color-scheme="slate"] .highlight .s1,
[data-md-color-scheme="slate"] .highlight .s2,
[data-md-color-scheme="slate"] .highlight .sa,
[data-md-color-scheme="slate"] .highlight .sb,
[data-md-color-scheme="slate"] .highlight .sc,
[data-md-color-scheme="slate"] .highlight .dl,
[data-md-color-scheme="slate"] .highlight .sd,
[data-md-color-scheme="slate"] .highlight .se,
[data-md-color-scheme="slate"] .highlight .sh,
[data-md-color-scheme="slate"] .highlight .si,
[data-md-color-scheme="slate"] .highlight .sx {
  color: #34d399;
}

[data-md-color-scheme="slate"] .highlight .c,
[data-md-color-scheme="slate"] .highlight .c1,
[data-md-color-scheme="slate"] .highlight .ch,
[data-md-color-scheme="slate"] .highlight .cm,
[data-md-color-scheme="slate"] .highlight .cp,
[data-md-color-scheme="slate"] .highlight .cpf,
[data-md-color-scheme="slate"] .highlight .cs {
  color: #6b7280;
}
