/* Axonis Spec Corpus — newspaper theme modeled on nytimes.com.
   White paper, black ink, a blackletter nameplate, Franklin-gothic kickers/labels,
   and a ragged-right serif body. The left nav and right TOC are the paper's side
   rails and the chat is a clipped column — one broadsheet, full screen width.
   Brand green survives only as the link/active ink. */

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

/* ── palette: nytimes.com white over the inherited slate scheme ───────────── */
:root,
[data-md-color-scheme="slate"] {
  --md-default-bg-color: #ffffff;
  --md-default-bg-color--light: #f7f7f7;
  --md-default-fg-color: #121212;            /* NYT near-black ink */
  --md-default-fg-color--light: #363636;
  --md-default-fg-color--lighter: #5a5a5a;
  --md-default-fg-color--lightest: #999999;
  --md-primary-fg-color: #121212;
  --md-primary-fg-color--dark: #121212;
  --md-primary-bg-color: #ffffff;
  --md-primary-bg-color--light: #f7f7f7;
  --md-accent-fg-color: #176f3f;             /* brand green, darkened for paper */
  --md-typeset-color: #121212;
  --md-typeset-a-color: #121212;
  --md-code-bg-color: #f3f3f1;
  --md-code-fg-color: #1a1a1a;
  --md-footer-bg-color: #121212;
  --md-footer-fg-color: #ffffff;

  --md-text-font: "georgia";
  --md-code-font: "Roboto Mono";

  --ax-rule: #e2e2e2;                         /* NYT hairline */
  --ax-rule-mid: #cccccc;
  --ax-rule-strong: #121212;                  /* heavy black rule */
  --ax-name: "UnifrakturCook", "Old English Text MT", serif;   /* the nameplate */
  --ax-head: "Source Serif 4", Georgia, "Times New Roman", serif;
  --ax-kicker: "Libre Franklin", "Helvetica Neue", Arial, sans-serif;
  --ax-body: Georgia, "Times New Roman", serif;
}

html { background: var(--md-default-bg-color); }
body { font-family: var(--ax-body); }

/* ── full-width broadsheet: drop Material's 61rem reading column ───────────── */
.md-grid { max-width: none; }
.md-main__inner { margin-top: 0; }
.md-content { max-width: none; }
.md-content__inner { margin: 0 1.4rem 2.6rem; padding-top: 1.4rem; }
.md-content__inner::before { height: 0; }

/* ── masthead / nameplate ─────────────────────────────────────────────────── */
.md-header {
  position: sticky;
  background: var(--md-default-bg-color);
  color: var(--md-default-fg-color);
  box-shadow: none;
  border-bottom: 1px solid var(--ax-rule-strong);
}
.md-header__inner {
  flex-direction: column;
  align-items: stretch;
  padding: 0.3rem 1.4rem 0.35rem;
}
.md-header__title {
  margin: 0;
  text-align: center;
  line-height: 1;
}
.md-header__title .md-header__topic:first-child .md-ellipsis {
  font-family: var(--ax-name);
  font-weight: 700;
  font-size: 2.6rem;
  letter-spacing: 0.01em;
}
.md-header__title .md-ellipsis { white-space: normal; }
.md-header__button.md-logo { display: none; }       /* the nameplate is the logo */
.md-header__button { color: var(--md-default-fg-color); }

/* dateline rule under the nameplate */
.md-header__inner::after {
  content: "VOL. I · FEDERATED ENTITY RESOLUTION · SPECIFICATION OF RECORD · ALL THE SPECS FIT TO SHIP";
  display: block;
  margin: 0.2rem auto 0;
  padding: 0.22rem 0;
  border-top: 1px solid var(--ax-rule-strong);
  border-bottom: 1px solid var(--ax-rule-strong);
  max-width: 64rem;
  text-align: center;
  font-family: var(--ax-kicker);
  font-weight: 500;
  font-size: 0.55rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--md-default-fg-color--light);
}

/* search as a clipping */
.md-search__form {
  background: var(--md-default-bg-color--light);
  border: 1px solid var(--ax-rule-mid);
  box-shadow: none;
  border-radius: 0;
}
.md-search__input { color: var(--md-default-fg-color); font-family: var(--ax-kicker); }
.md-search__input::placeholder { color: var(--md-default-fg-color--lighter); }

/* ── side rails: left nav and right TOC as newspaper columns ──────────────── */
.md-sidebar { background: var(--md-default-bg-color); }
.md-sidebar--primary { border-right: 1px solid var(--ax-rule); }
.md-sidebar--secondary { border-left: 1px solid var(--ax-rule); }
.md-sidebar__scrollwrap { margin: 0 0.7rem; }

.md-nav {
  font-family: var(--ax-body);
  font-size: 0.68rem;
  color: var(--md-default-fg-color);
}
.md-nav__title {
  font-family: var(--ax-kicker);
  font-weight: 700;
  color: var(--md-default-fg-color);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.6rem;
  padding-bottom: 0.4rem;
  border-bottom: 2px solid var(--ax-rule-strong);
  box-shadow: none;
  background: transparent;
}
.md-nav__item--section > .md-nav__link {
  font-family: var(--ax-kicker);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--md-default-fg-color);
}
.md-nav__link { color: var(--md-default-fg-color--light); }
.md-nav__link:focus,
.md-nav__link:hover,
.md-nav__link--active,
.md-nav__link--active > .md-ellipsis { color: var(--md-accent-fg-color); }
.md-nav__item { border-bottom: 1px solid var(--ax-rule); }
.md-nav__item--section { border-bottom: none; }

.md-sidebar--secondary .md-nav__title {
  font-size: 0.52rem;
  letter-spacing: 0.16em;
}

/* tabs, if present, as a section banner */
.md-tabs {
  background: var(--md-default-bg-color);
  color: var(--md-default-fg-color);
  border-bottom: 1px solid var(--ax-rule);
}
.md-tabs__link { font-family: var(--ax-kicker); font-weight: 600; opacity: 1; }

/* ── body type: ragged-right serif, Franklin kickers, NYT rules ───────────── */
.md-typeset {
  font-family: var(--ax-body);
  font-size: 0.8rem;
  line-height: 1.62;
  color: var(--md-default-fg-color);
  text-align: left;
}
.md-typeset h1,
.md-typeset h2,
.md-typeset h3,
.md-typeset h4 {
  font-family: var(--ax-head);
  color: var(--md-default-fg-color);
  font-weight: 700;
}
.md-typeset h1 {
  font-size: 2.6rem;
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: -0.012em;
  margin: 0.2rem 0 0.5rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--ax-rule-strong);
}
.md-typeset h2 {
  font-size: 1.4rem;
  margin-top: 1.7rem;
  padding-top: 0.5rem;
  border-top: 1px solid var(--ax-rule);
}
.md-typeset h3 { font-size: 1.1rem; }
.md-typeset a { text-decoration-thickness: 1px; text-underline-offset: 2px; }
.md-typeset a:hover { color: var(--md-accent-fg-color); }

.md-typeset blockquote {
  border-left: 3px solid var(--ax-rule-strong);
  color: var(--md-default-fg-color--light);
  font-style: italic;
}
.md-typeset hr { border-bottom: 1px solid var(--ax-rule); }

/* tables read like box-scores */
.md-typeset table:not([class]) {
  border: 1px solid var(--ax-rule-mid);
  font-family: var(--ax-kicker);
  font-size: 0.7rem;
  box-shadow: none;
}
.md-typeset table:not([class]) th {
  background: var(--md-default-fg-color);
  color: var(--md-default-bg-color);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
}
.md-typeset table:not([class]) td { border-top: 1px solid var(--ax-rule); }

.md-typeset code {
  background: var(--md-code-bg-color);
  color: var(--md-code-fg-color);
  border-radius: 0;
}
.md-typeset pre > code { border: 1px solid var(--ax-rule); }

/* admonitions as boxed sidebars */
.md-typeset .admonition,
.md-typeset details {
  border: 1px solid var(--ax-rule-mid);
  border-left: 4px solid var(--ax-rule-strong);
  border-radius: 0;
  box-shadow: none;
  background: var(--md-default-bg-color--light);
  font-size: 0.74rem;
}
.md-typeset .admonition-title { font-family: var(--ax-kicker); font-weight: 700; }

/* homepage tier lists as a multi-column sections index */
.md-typeset h2 + ul {
  column-width: 17rem;
  column-gap: 2rem;
  column-rule: 1px solid var(--ax-rule);
}
.md-typeset h2 + ul > li { break-inside: avoid; }

/* footer colophon */
.md-footer-meta { background: var(--md-footer-bg-color); }
.md-footer { color: var(--md-footer-fg-color); }

/* ── chat: a clipped column pinned to the page, not a chrome bubble ────────── */
#axonis-chat-toggle {
  position: fixed; right: 1.4rem; bottom: 1.4rem; z-index: 99;
  background: var(--md-default-fg-color); color: var(--md-default-bg-color);
  border: none; border-radius: 0;
  padding: 0.55rem 1.1rem; cursor: pointer;
  font-family: var(--ax-kicker); font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase; font-size: 0.62rem;
}
#axonis-chat-toggle:hover { background: var(--md-accent-fg-color); }
#axonis-chat-panel {
  position: fixed; right: 1.4rem; bottom: 4.2rem; z-index: 99;
  width: 24rem; max-width: 92vw; height: 32rem; display: none;
  flex-direction: column;
  background: var(--md-default-bg-color);
  border: 1px solid var(--ax-rule-strong);
  border-radius: 0;
  box-shadow: 0 12px 36px rgba(0,0,0,.22);
}
#axonis-chat-panel.open { display: flex; }
#axonis-chat-panel::before {
  content: "ASK THE CORPUS";
  display: block;
  padding: 0.55rem 0.8rem 0.45rem;
  font-family: var(--ax-kicker); font-weight: 800;
  letter-spacing: 0.14em; font-size: 0.62rem;
  text-align: center;
  border-bottom: 2px solid var(--ax-rule-strong);
}
#axonis-chat-log {
  flex: 1; overflow-y: auto; padding: 0.8rem;
  font-family: var(--ax-body); font-size: 0.74rem;
  color: var(--md-default-fg-color);
}
#axonis-chat-log .turn-user {
  font-family: var(--ax-kicker); font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.08em;
  color: var(--md-accent-fg-color);
  margin: 0.5rem 0 0.1rem;
}
#axonis-chat-log .turn-bot { white-space: pre-wrap; margin-bottom: 0.6rem; }
#axonis-chat-controls {
  display: flex; gap: 0.4rem; padding: 0.6rem;
  border-top: 1px solid var(--ax-rule);
}
#axonis-chat-input {
  flex: 1; background: var(--md-default-bg-color--light);
  color: var(--md-default-fg-color);
  border: 1px solid var(--ax-rule-mid); border-radius: 0;
  padding: 0.45rem; font-family: var(--ax-body); font-size: 0.74rem;
}
#axonis-chat-send,
#axonis-chat-auth button {
  background: var(--md-default-fg-color); color: var(--md-default-bg-color);
  border: none; border-radius: 0; padding: 0 0.9rem; cursor: pointer;
  font-family: var(--ax-kicker); font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.6rem;
}
#axonis-chat-send:hover,
#axonis-chat-auth button:hover { background: var(--md-accent-fg-color); }
#axonis-chat-auth {
  display: flex; align-items: center; gap: 0.5rem;
  padding: 0.5rem 0.6rem; border-bottom: 1px solid var(--ax-rule);
  font-family: var(--ax-kicker); font-size: 0.62rem;
}
#axonis-chat-auth #axonis-chat-logout {
  background: transparent; color: var(--md-default-fg-color--light);
  border: 1px solid var(--ax-rule-mid); padding: 0.3rem 0.6rem;
}
.axonis-chat-signed { color: var(--md-accent-fg-color); font-weight: 700; }
