/* =====================================================================
   Firevyzer — Material for MkDocs brand theme
   Display: Source Serif 4  ·  UI: IBM Plex Sans  ·  Data: IBM Plex Mono
   Neutral, dense-reading layout with a terracotta accent.
   ===================================================================== */

@import url("https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,ital,wght@8..60,0,400;8..60,0,500;8..60,0,600;8..60,1,400&display=swap");

/* ---- Light scheme -------------------------------------------------- */
[data-md-color-scheme="default"] {
  /* header / footer surfaces (kept neutral, not a terracotta slab) */
  --md-primary-fg-color:        #FBF9F3;
  --md-primary-fg-color--light: #FBF9F3;
  --md-primary-fg-color--dark:  #EFEBE0;
  --md-primary-bg-color:        #211F1A;   /* text + icons on header   */
  --md-primary-bg-color--light: #6B6557;

  /* terracotta accent drives links, focus, selection */
  --md-accent-fg-color:         #A94E2E;
  --md-accent-fg-color--transparent: rgba(169,78,46,.1);

  --md-default-bg-color:        #FAF8F2;   /* page background          */
  --md-default-fg-color:        #211F1A;
  --md-default-fg-color--light: #4A463E;
  --md-default-fg-color--lighter:#837D70;
  --md-default-fg-color--lightest:#E2DED2;

  --md-typeset-a-color:         #A94E2E;
  --md-typeset-mark-color:      #F6E9E1;

  --md-code-bg-color:           #F1EEE5;
  --md-code-fg-color:           #45413A;

  --md-footer-bg-color:         #211F1A;
  --md-footer-bg-color--dark:   #1A1813;

  --fv-surface:                 #FFFFFF;
  --fv-hairline:                #E7E3D8;
  --fv-allow:                   #4F7A52;
  --fv-deny:                    #B14A3C;
  --fv-select:                  #4C6E93;
}

/* ---- Dark scheme (warm slate) ------------------------------------- */
[data-md-color-scheme="slate"] {
  --md-hue: 32;

  --md-primary-fg-color:        #1F1C17;
  --md-primary-fg-color--light: #2A2620;
  --md-primary-fg-color--dark:  #16130F;
  --md-primary-bg-color:        #EDE9DF;
  --md-primary-bg-color--light: #A8A293;

  --md-accent-fg-color:         #E0906C;
  --md-accent-fg-color--transparent: rgba(224,144,108,.14);

  --md-default-bg-color:        #1A1813;
  --md-default-fg-color:        #E9E4D9;
  --md-default-fg-color--light: #C5BFB1;
  --md-default-fg-color--lighter:#928C7F;
  --md-default-fg-color--lightest:#3A352D;

  --md-typeset-a-color:         #E0906C;
  --md-typeset-mark-color:      rgba(194,97,61,.30);

  --md-code-bg-color:           #23201A;
  --md-code-fg-color:           #D8D2C5;

  --md-footer-bg-color:         #16130F;
  --md-footer-bg-color--dark:   #110F0B;

  --fv-surface:                 #211E18;
  --fv-hairline:                #332F28;
  --fv-allow:                   #7FA982;
  --fv-deny:                    #D98A78;
  --fv-select:                  #8AA6C6;
}

/* ---- Typography ---------------------------------------------------- */
.md-typeset h1,
.md-typeset h2,
.md-typeset h3,
.md-typeset h4,
.md-header__title,
.md-nav__title {
  font-family: "Source Serif 4", Georgia, "Times New Roman", serif;
  letter-spacing: -.012em;
}
.md-typeset h1 {
  font-weight: 600;
  color: var(--md-default-fg-color);
  font-size: 2.05rem;
  line-height: 1.15;
  margin-bottom: .5em;
}
.md-typeset h2 { font-weight: 600; margin-top: 2.2em; }
.md-typeset h3 { font-weight: 600; }

/* a hairline under each H2 for rhythm in dense pages */
.md-typeset h2 {
  padding-bottom: .25em;
  border-bottom: 1px solid var(--fv-hairline);
}

/* slightly roomier measure + body color */
.md-typeset {
  font-size: .80rem;
  line-height: 1.7;
  color: var(--md-default-fg-color--light);
}
.md-grid { max-width: 64rem; }

/* ---- Header ------------------------------------------------------- */
.md-header {
  border-bottom: 1px solid var(--fv-hairline);
  box-shadow: none;
}
.md-header__title { font-weight: 600; font-size: 1.05rem; }
[dir="ltr"] .md-header__title { margin-left: .8rem; }

/* ---- Links & inline code ------------------------------------------ */
.md-typeset a { text-underline-offset: 2px; }
.md-typeset code {
  border-radius: 4px;
  padding: .12em .4em;
  font-size: .82em;
}

/* ---- Nav (sidebar) ------------------------------------------------- */
.md-nav { font-size: .72rem; }
.md-nav__item .md-nav__link--active,
.md-nav__link--active { color: var(--md-accent-fg-color); font-weight: 600; }
.md-nav__title { font-size: .72rem; }

/* section labels in the left nav */
.md-nav--lifted > .md-nav__list > .md-nav__item--section > .md-nav__link {
  color: var(--md-default-fg-color--lighter);
  font-size: .66rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  font-family: "IBM Plex Sans", sans-serif;
}

/* ---- Grid cards (home page) --------------------------------------- */
.md-typeset .grid.cards > ul > li,
.md-typeset .grid > .card {
  border: 1px solid var(--fv-hairline);
  border-radius: 12px;
  background: var(--fv-surface);
  padding: 1rem 1.1rem;
  box-shadow: 0 1px 2px rgba(40,34,26,.05);
  transition: border-color .15s, box-shadow .15s, transform .04s;
}
.md-typeset .grid.cards > ul > li:hover {
  border-color: var(--md-accent-fg-color);
  box-shadow: 0 8px 26px rgba(40,34,26,.10);
}
.md-typeset .grid.cards > ul > li > hr {
  margin: .6rem 0;
  background: var(--fv-hairline);
}
.md-typeset .grid.cards .twemoji,
.md-typeset .grid.cards svg { color: var(--md-accent-fg-color); }

/* ---- Admonitions: brand the common ones --------------------------- */
.md-typeset .admonition,
.md-typeset details {
  border-radius: 10px;
  border-left-width: 3px;
  font-size: .76rem;
}
.md-typeset .admonition.note,
.md-typeset details.note { border-color: var(--fv-select); }
.md-typeset .note > .admonition-title,
.md-typeset .note > summary {
  background: color-mix(in srgb, var(--fv-select) 12%, transparent);
}
.md-typeset .admonition.tip > .admonition-title,
.md-typeset .admonition.success > .admonition-title {
  background: color-mix(in srgb, var(--fv-allow) 14%, transparent);
}
.md-typeset .admonition.tip,
.md-typeset .admonition.success { border-color: var(--fv-allow); }
.md-typeset .admonition.warning > .admonition-title,
.md-typeset .admonition.danger > .admonition-title {
  background: color-mix(in srgb, var(--fv-deny) 14%, transparent);
}
.md-typeset .admonition.warning,
.md-typeset .admonition.danger { border-color: var(--fv-deny); }

/* ---- Tables ------------------------------------------------------- */
.md-typeset table:not([class]) {
  border: 1px solid var(--fv-hairline);
  border-radius: 10px;
  font-size: .72rem;
}
.md-typeset table:not([class]) th {
  background: var(--md-primary-fg-color--dark);
  font-family: "IBM Plex Sans", sans-serif;
  font-weight: 600;
  color: var(--md-default-fg-color);
}

/* ---- Verdict helper classes (use in pages via {.allow}/{.deny}) --- */
.md-typeset .allow { color: var(--fv-allow); font-weight: 600; }
.md-typeset .deny  { color: var(--fv-deny);  font-weight: 600; }

/* ---- Footer ------------------------------------------------------- */
.md-footer-meta { font-size: .7rem; }

/* ---- Scrollbar polish (webkit) ------------------------------------ */
.md-sidebar__scrollwrap::-webkit-scrollbar { width: 6px; }
.md-sidebar__scrollwrap::-webkit-scrollbar-thumb {
  background: var(--fv-hairline); border-radius: 6px;
}
