/* Brand greens for Material (primary/accent = custom).
 *
 * Light header: deep forest. Accent: mid green for links/CTAs.
 * Dark header: near-black green. Accent: mint for contrast on slate.
 */
:root,
[data-md-color-scheme="default"] {
  --md-primary-fg-color: #1b4332;
  --md-primary-fg-color--light: #2d6a4f;
  --md-primary-fg-color--dark: #081c15;
  --md-primary-bg-color: #ffffff;
  --md-accent-fg-color: #2d6a4f;
  --md-accent-fg-color--transparent: rgba(45, 106, 79, 0.12);
  --md-typeset-a-color: #2d6a4f;

  /* Light theme: dark text on white */
  --md-default-fg-color: #16202a;
  --md-default-fg-color--light: #3a4650;
  --md-default-fg-color--lighter: #5d6975;
  --md-default-fg-color--lightest: #d9e0e6;
  --md-default-bg-color: #ffffff;
  --md-default-bg-color--light: #f6faf7;
  --md-default-bg-color--lighter: #ffffff;
  --md-default-bg-color--lightest: #ffffff;
  --md-code-bg-color: #f3f5f7;
  --md-code-fg-color: #16202a;
  --md-typeset-color: #16202a;
  --md-typeset-table-color: #16202a;

  --fmsg-ink: #16202a;
  --fmsg-muted: #5d6975;
  --fmsg-line: #d5e0d9;
  --fmsg-paper: #ffffff;
  --fmsg-accent: #2d6a4f;
  --fmsg-code: #f3f5f7;
}

/* Dark theme: light text on near-black */
[data-md-color-scheme="slate"] {
  --md-primary-fg-color: #0d1f17;
  --md-primary-fg-color--light: #2d6a4f;
  --md-primary-fg-color--dark: #050f0a;
  --md-primary-bg-color: #e8edf1;
  --md-accent-fg-color: #95d5b2;
  --md-accent-fg-color--transparent: rgba(149, 213, 178, 0.14);
  --md-typeset-a-color: #95d5b2;

  --md-default-fg-color: #e8edf1;
  --md-default-fg-color--light: #b1bbc4;
  --md-default-fg-color--lighter: #8a96a1;
  --md-default-fg-color--lightest: #3a4650;
  --md-default-bg-color: #0b1218;
  --md-default-bg-color--light: #121a22;
  --md-default-bg-color--lighter: #182028;
  --md-default-bg-color--lightest: #222c35;
  --md-code-bg-color: #121a22;
  --md-code-fg-color: #e8edf1;
  --md-typeset-color: #e8edf1;
  --md-typeset-table-color: #e8edf1;
  --md-footer-bg-color: #050a0f;
  --md-footer-bg-color--dark: #000000;

  --fmsg-ink: #e8edf1;
  --fmsg-muted: #b1bbc4;
  --fmsg-line: #2a3540;
  --fmsg-paper: #0b1218;
  --fmsg-accent: #95d5b2;
  --fmsg-code: #121a22;
}

/* Slightly roomier reading column for long specifications. */
.md-typeset {
  font-size: 0.78rem;
  line-height: 1.68;
  color: var(--md-typeset-color);
}

.md-typeset h1 {
  font-weight: 700;
  letter-spacing: -0.025em;
  color: var(--fmsg-ink);
}

.md-typeset h2,
.md-typeset h3,
.md-typeset h4 {
  color: var(--fmsg-ink);
}

.md-typeset h2 {
  margin-top: 2.2em;
}

.md-typeset table:not([class]) {
  font-size: 0.72rem;
  color: var(--fmsg-ink);
}

.md-typeset code {
  word-break: break-word;
}

/* Header: no logo icon; page title ALL CAPS */
.md-header__button.md-logo {
  display: none;
}

.md-header__title {
  font-weight: 700;
  letter-spacing: -0.02em;
  margin-left: 0.4rem;
}

/* Active page title in the top bar (second topic slot). */
.md-header__topic:nth-child(2) .md-ellipsis,
.md-header__topic[data-md-component="header-topic"] .md-ellipsis {
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 0.78em;
}

/* Drawer: also hide logo mark next to site name */
.md-nav__button.md-logo {
  display: none;
}

/* Left nav: clearer section labels (Specification, Standards, …). */
.md-nav__item--section > .md-nav__link {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--fmsg-muted);
}

.md-nav--primary .md-nav__title {
  background: transparent;
  box-shadow: none;
}

/* Landing page */
.landing-eyebrow {
  color: var(--fmsg-accent);
  font-size: 0.78rem;
  font-weight: 750;
  letter-spacing: 0.12em;
  margin: 0 0 0.25rem;
  text-transform: uppercase;
}

.md-typeset .landing-lead {
  color: var(--fmsg-ink);
  font-size: clamp(1.15rem, 2.4vw, 1.45rem);
  font-weight: 450;
  line-height: 1.45;
  max-width: 46rem;
  margin: 0.4rem 0 0;
}

.landing-actions {
  margin-bottom: 2.5rem;
  margin-top: 1.5rem;
}

.landing-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 1.3rem 0;
}

.standards-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.landing-card {
  border: 1px solid var(--fmsg-line);
  border-radius: 0.4rem;
  background: var(--md-default-bg-color);
  color: var(--fmsg-ink) !important;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  min-height: 10.5rem;
  padding: 1.15rem 1.2rem;
  text-decoration: none !important;
  transition: border-color 120ms ease, transform 120ms ease, box-shadow 120ms ease;
}

.landing-card:hover,
.landing-card:focus {
  border-color: var(--fmsg-accent);
  box-shadow: 0 6px 18px rgba(27, 67, 50, 0.1);
  color: var(--fmsg-ink) !important;
  transform: translateY(-2px);
}

.landing-card-label {
  color: var(--fmsg-accent);
  font-size: 0.72rem;
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.landing-card strong {
  font-size: 1.02rem;
  font-weight: 700;
}

.landing-card span:last-child {
  color: var(--fmsg-muted);
  font-size: 0.9rem;
  line-height: 1.5;
}

.section-link {
  display: inline-block;
  font-weight: 700;
  margin-top: 0.25rem;
}

.document-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  margin: 1.5rem 0;
}

.document-actions a {
  border: 1px solid var(--fmsg-accent);
  border-radius: 0.3rem;
  color: var(--fmsg-accent) !important;
  display: inline-block;
  font-weight: 650;
  padding: 0.6rem 0.95rem;
  text-decoration: none !important;
}

.document-actions a:hover,
.document-actions a:focus {
  background: var(--md-accent-fg-color--transparent);
}

.document-actions .primary-action {
  background: var(--fmsg-accent);
  border-color: var(--fmsg-accent);
  color: #fff !important;
}

.document-actions .primary-action:hover,
.document-actions .primary-action:focus {
  filter: brightness(1.05);
}

.pdf-viewer {
  border: 1px solid var(--fmsg-line);
  border-radius: 0.25rem;
  height: min(75vh, 900px);
  width: 100%;
}

/* Protocol diagrams and setup images scale cleanly. */
.md-typeset img,
.md-typeset picture img {
  border-radius: 0.2rem;
}

.md-typeset picture {
  display: block;
  margin: 1rem 0;
}

/*
 * Dual theme images (Material data-md-color-scheme = default | slate).
 * fmsg-for-light / fmsg-for-dark hold the pair after JS reverses labeled
 * light/dark sources when both are present.
 */
.md-typeset .fmsg-scheme-image {
  display: block;
  margin: 1rem 0;
}

.md-typeset .fmsg-scheme-image img {
  margin: 0;
  max-width: 100%;
  height: auto;
}

.md-typeset .fmsg-scheme-image .fmsg-for-dark {
  display: none;
}

[data-md-color-scheme="slate"] .md-typeset .fmsg-scheme-image .fmsg-for-light {
  display: none;
}

[data-md-color-scheme="slate"] .md-typeset .fmsg-scheme-image .fmsg-for-dark {
  display: inline-block;
}

/* Homepage: larger title without competing with Material chrome. */
.homepage-title-tight .md-typeset h1 {
  font-size: clamp(2.4rem, 7vw, 3.6rem);
  letter-spacing: -0.035em;
  margin-bottom: 0.4rem;
}

@media (max-width: 767px) {
  .landing-grid,
  .standards-grid {
    grid-template-columns: 1fr;
  }

  .landing-card {
    min-height: 0;
  }

  .pdf-viewer {
    height: 65vh;
  }
}
