/* The ADCR reading page (/rulebook/<version>/spec/) and its PDF.
   Generated markup: apps/website/scripts/build_rulebook_doc.py.
   Screen: the site palette on #1a1a1a. Print: light paper, copper accents.

   Contrast (WCAG 2 relative luminance, computed):
     screen  #d1d5db on #1a1a1a 11.8:1 (body) | #a6a8b1 7.3:1 (muted)
             #e6a98c on #1a1a1a  8.6:1 (links, labels) | #f5f5f5 16.0:1 (headings)
             #e6a98c on #222222  7.9:1 (table head)
     print   #1c1c1e on #ffffff 17.0:1 (body) | #4a4c55 8.6:1 (muted)
             #8a4527 on #ffffff  7.1:1 (copper text) | #8a4527 on #f6ece5 6.1:1
             #e6a98c is used on paper only for rules and bars, never for text. */

.adcr-doc {
  --adcr-ink: #d1d5db;
  --adcr-strong: #f5f5f5;
  --adcr-muted: #a6a8b1;
  --adcr-accent: #e6a98c;
  --adcr-line: rgba(255, 255, 255, 0.1);
  --adcr-panel: rgba(255, 255, 255, 0.03);
  --adcr-head: #222222;
  --adcr-code: rgba(255, 255, 255, 0.08);
}

.adcr-cover { display: none; }

.adcr-main {
  max-width: 80rem;
  margin: 0 auto;
  padding: calc(var(--ce-nav-h, 65px) + var(--ce-space, 3rem)) var(--ce-gutter, 1rem) var(--ce-space, 3rem);
  color: var(--adcr-ink);
  font-family: 'DM Sans', sans-serif;
  font-size: 1.25rem; /* the site's reading size (extra.css --ce-measure) */
  line-height: 1.7;
}

.adcr-head { margin-bottom: 2.5rem; max-width: none; }
.adcr-eyebrow {
  margin: 0 0 0.75rem;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--adcr-muted);
}
.adcr-eyebrow a { color: var(--adcr-accent); text-decoration: none; }
.adcr-eyebrow a:hover { text-decoration: underline; }
.adcr-head h1 {
  margin: 0 0 1.25rem;
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 700;
  font-size: 2rem;
  line-height: 1.2;
  color: var(--adcr-strong);
}
@media (min-width: 768px) { .adcr-head h1 { font-size: 2.6rem; } }
.adcr-preamble p { margin: 0 0 0.6rem; color: var(--adcr-ink); }
.adcr-preamble strong { color: var(--adcr-strong); }
.adcr-preamble a { color: var(--adcr-accent); text-decoration: none; }
.adcr-preamble a:hover { text-decoration: underline; }
.adcr-body a.rule-ref { white-space: nowrap; }

.adcr-facts {
  margin: 1.5rem 0 0;
  padding: 1rem 1.25rem;
  border: 1px solid var(--adcr-line);
  border-radius: 0.9rem;
  background: var(--adcr-panel);
  display: grid;
  gap: 0.6rem;
}
.adcr-facts div { display: grid; gap: 0.15rem; }
@media (min-width: 640px) { .adcr-facts div { grid-template-columns: 8rem 1fr; gap: 1rem; } }
.adcr-facts dt { color: var(--adcr-muted); font-size: 0.875rem; }
.adcr-facts dd { margin: 0; color: var(--adcr-ink); overflow-wrap: anywhere; }

.adcr-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; margin-top: 1.75rem; }
.adcr-btn-secondary {
  display: inline-block;
  padding: 0.85rem 1.75rem;
  border: 1px solid rgba(230, 169, 140, 0.4);
  border-radius: 0.75rem;
  color: var(--adcr-accent);
  font-weight: 600;
  text-align: center;
  text-decoration: none;
  transition: background-color 0.2s ease;
}
.adcr-btn-secondary:hover { background: rgba(230, 169, 140, 0.1); }

/* Contents: a sticky column on wide screens, a disclosure on phones. */
.adcr-toc-mobile {
  max-width: var(--ce-measure, 40rem);
  margin: 0 0 2rem;
  border: 1px solid var(--adcr-line);
  border-radius: 0.9rem;
  background: var(--adcr-panel);
}
.adcr-toc-mobile summary {
  cursor: pointer;
  padding: 0.85rem 1.1rem;
  font-weight: 600;
  color: var(--adcr-strong);
}
.adcr-toc-mobile .toc-list { padding: 0 1.1rem 1rem; }
.adcr-toc { display: none; }
.adcr-layout { display: block; }
/* One side menu (2026-10-23): the rulebook's pages on the left. The
   contents list stays in the article, under the title, closed. It is not
   a second column. */
@media (min-width: 768px) {
  .adcr-main {
    display: grid;
    grid-template-columns: 16rem minmax(0, 1fr);
    grid-template-areas: "nav head" "nav jump" "nav body";
    grid-template-rows: auto auto 1fr;
    column-gap: var(--ce-pane-gap, 2rem);
    align-items: start;
    justify-content: start;
  }
  .adcr-layout { display: contents; }
  .adcr-head { grid-area: head; }
  .adcr-body { grid-area: body; }
  .adcr-main > .adcr-toc-mobile { grid-area: jump; }
  .adcr-main > .ce-secnav { grid-area: nav; }
  .adcr-main.has-nav > .ce-secnav {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
    position: sticky;
    top: calc(var(--ce-nav-h, 65px) + var(--ce-space, 3rem));
    align-self: start;
    max-height: calc(100vh - var(--ce-nav-h, 65px) - 2 * var(--ce-space, 3rem));
    overflow-y: auto;
  }
}
.adcr-toc-title {
  margin: 0 0 0.75rem;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.8125rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--adcr-muted);
}
.toc-list { list-style: none; margin: 0; padding: 0; font-size: 0.875rem; line-height: 1.45; }
.toc-list li { margin: 0 0 0.4rem; }
.toc-list .toc-l3 { padding-left: 0.9rem; }
.toc-list a { color: var(--adcr-ink); text-decoration: none; display: flex; gap: 0.5rem; }
.toc-list a:hover { color: var(--adcr-accent); }
.toc-list .toc-l2 > a { color: var(--adcr-strong); font-weight: 500; }
.toc-list .toc-l2 > a:hover { color: var(--adcr-accent); }
.toc-page { display: none; }

/* The rulebook text. */
.adcr-body { min-width: 0; max-width: none; }
/* One reading column for every block, the site's own (extra.css
   --ce-measure, 2026-10-23); wide tables scroll inside .table-wrap. */
.adcr-body p { margin: 0 0 1rem; }
.adcr-body h2, .adcr-body h3 { scroll-margin-top: 5.5rem; font-family: 'Space Grotesk', sans-serif; color: var(--adcr-strong); }
.adcr-body h2 { margin: 3rem 0 1.25rem; padding-top: 1.5rem; border-top: 1px solid var(--adcr-line); font-size: 1.6rem; line-height: 1.25; font-weight: 700; }
.adcr-body .spec-section:first-child h2 { margin-top: 0; padding-top: 0; border-top: 0; }
.adcr-body h3 { margin: 2rem 0 0.9rem; font-size: 1.2rem; line-height: 1.3; font-weight: 600; }
.heading-link { color: inherit; text-decoration: none; }
.heading-link:hover { color: var(--adcr-accent); }
.adcr-body strong { color: var(--adcr-strong); font-weight: 600; }
.adcr-body a { color: var(--adcr-accent); text-decoration: none; }
.adcr-body a:hover { text-decoration: underline; }
.adcr-body a.heading-link { color: inherit; }
.adcr-body ul, .adcr-body ol { margin: 0 0 1rem; padding-left: 1.4rem; }
.adcr-body ul { list-style: disc; }
.adcr-body ol { list-style: decimal; }
.adcr-body li { margin: 0 0 0.5rem; }
.adcr-body li::marker { color: var(--adcr-accent); }
.adcr-doc code {
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.85em;
  padding: 0.05em 0.3em;
  border-radius: 0.3rem;
  background: var(--adcr-code);
  overflow-wrap: anywhere;
}

.rule { scroll-margin-top: 5.5rem; padding-left: 0.9rem; border-left: 2px solid rgba(230, 169, 140, 0.35); }
.rule:target { border-left-color: var(--adcr-accent); background: rgba(230, 169, 140, 0.06); }
.rule-label {
  font-family: 'JetBrains Mono', monospace;
  font-weight: 500;
  font-size: 0.92em;
  color: var(--adcr-accent);
}
.adcr-body a.rule-label { color: var(--adcr-accent); }

/* Tables wrap their text; a table too wide for the screen scrolls inside its
   own frame, never the page. */
.table-wrap {
  margin: 0 0 1.5rem;
  overflow-x: auto;
  border: 1px solid var(--adcr-line);
  border-radius: 0.75rem;
}
.table-wrap:focus-visible { outline: 2px solid var(--adcr-accent); outline-offset: 2px; }
.table-wrap table { width: 100%; border-collapse: collapse; font-size: 0.875rem; line-height: 1.5; }
.table-wrap th, .table-wrap td {
  padding: 0.6rem 0.8rem;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid var(--adcr-line);
  overflow-wrap: break-word;
}
.table-wrap thead th { background: var(--adcr-head); color: var(--adcr-accent); font-weight: 600; }
.table-wrap tbody tr:last-child td { border-bottom: 0; }
.table-wrap td code { white-space: normal; overflow-wrap: break-word; }
.table-wrap table.cols-5 { min-width: 56rem; }
.table-wrap table.cols-5 th:first-child { width: 20%; }
.table-wrap table.cols-4 { min-width: 40rem; }
.table-wrap table.cols-3 { min-width: 32rem; }

@media (max-width: 639px) {
  .table-wrap table.cols-3 { min-width: 30rem; }
}

/* ------------------------------------------------------------------------
   Print: the PDF. Light paper, copper accents, brand fonts.
   ------------------------------------------------------------------------ */

@page {
  size: A4;
  margin: 20mm 17mm 18mm 17mm;
  @top-left {
    content: "ADCR 0.1.0";
    font-family: 'JetBrains Mono', monospace;
    font-size: 8pt;
    color: #8a4527;
  }
  @top-right {
    content: "The AI Decision Check Record";
    font-family: 'DM Sans', sans-serif;
    font-size: 8pt;
    color: #4a4c55;
  }
  @bottom-right {
    content: "Page " counter(page) " of " counter(pages);
    font-family: 'DM Sans', sans-serif;
    font-size: 8pt;
    color: #4a4c55;
  }
  @bottom-left {
    content: "complyedge.io/rulebook/0.1.0/spec/";
    font-family: 'DM Sans', sans-serif;
    font-size: 8pt;
    color: #4a4c55;
  }
}

@media print {
  .adcr-doc {
    --adcr-ink: #1c1c1e;
    --adcr-strong: #1c1c1e;
    --adcr-muted: #4a4c55;
    --adcr-accent: #8a4527;
    --adcr-line: #dad6d2;
    --adcr-panel: #ffffff;
    --adcr-head: #f6ece5;
    --adcr-code: #f3efeb;
  }
  html, body.adcr-doc { background: #ffffff !important; color: #1c1c1e; }
  body.adcr-doc { font-size: 10pt; }
  .adcr-doc nav[data-site-header], .adcr-doc footer, #ce-consent, .ce-consent-card,
  .adcr-toc-mobile, .adcr-actions, .adcr-eyebrow, .adcr-facts, .ce-secnav, [data-site-modal], dialog { display: none !important; }
  .adcr-head { max-width: none; margin: 0 0 6mm; }
  .adcr-head h1 { margin: 0 0 5mm; font-size: 17pt; line-height: 1.25; color: #1c1c1e; }
  .adcr-preamble p { margin: 0 0 2mm; font-size: 9.5pt; color: #1c1c1e; }
  .adcr-preamble a { color: #8a4527; text-decoration: none; }

  .adcr-cover {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 240mm;
    break-after: page;
    padding: 0 6mm;
    border-left: 4mm solid #e6a98c;
    font-family: 'DM Sans', sans-serif;
    color: #1c1c1e;
  }
  .cover-kicker {
    margin: 0 0 6mm;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10pt;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #8a4527;
  }
  .cover-name { margin: 0; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 64pt; line-height: 1; letter-spacing: -0.02em; color: #1c1c1e; }
  .cover-title { margin: 4mm 0 0; font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 22pt; line-height: 1.2; color: #1c1c1e; }
  .cover-sub { margin: 3mm 0 12mm; font-size: 13pt; color: #4a4c55; }
  .cover-meta { margin: 0; padding: 6mm 0 0; border-top: 0.6mm solid #e6a98c; display: grid; gap: 2.6mm; font-size: 10pt; line-height: 1.45; }
  .cover-meta div { display: grid; grid-template-columns: 28mm 1fr; gap: 4mm; }
  .cover-meta dt { color: #4a4c55; }
  .cover-meta dd { margin: 0; color: #1c1c1e; overflow-wrap: anywhere; }
  .cover-meta code { background: #f3efeb; color: #1c1c1e; }
  .cover-note { margin: 12mm 0 0; font-size: 9pt; color: #4a4c55; }

  .adcr-main { display: block; max-width: none; padding: 0; color: #1c1c1e; font-size: 10pt; line-height: 1.5; }
  .adcr-layout { display: block; }

  .adcr-toc {
    display: block;
    position: static;
    max-height: none;
    overflow: visible;
    padding: 0;
    break-after: page;
  }
  .adcr-toc-title {
    margin: 0 0 4mm;
    padding-bottom: 2.5mm;
    border-bottom: 0.6mm solid #e6a98c;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 18pt;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
    color: #1c1c1e;
  }
  .toc-list { font-size: 9pt; line-height: 1.3; }
  .toc-list li { margin: 0 0 0.9mm; break-inside: avoid; }
  .toc-list .toc-l2 { margin-top: 1.8mm; }
  .toc-list .toc-l3 { padding-left: 6mm; }
  .toc-list a { color: #1c1c1e; display: flex; align-items: baseline; }
  .toc-list .toc-l2 > a { color: #1c1c1e; font-weight: 600; }
  .toc-text { flex: 1 1 auto; }
  .toc-page {
    display: inline-block;
    min-width: 8mm;
    text-align: right;
    font-variant-numeric: tabular-nums;
    color: #8a4527;
  }

  .adcr-body { max-width: none; }
  .adcr-body p, .adcr-body li { max-width: none; orphans: 3; widows: 3; }
  .adcr-body h2 {
    margin: 0 0 4mm;
    padding: 0 0 2.5mm;
    border-top: 0;
    border-bottom: 0.6mm solid #e6a98c;
    font-size: 16pt;
    color: #1c1c1e;
    break-after: avoid;
  }
  .adcr-body .spec-section { break-before: page; }
  .adcr-body .spec-section:first-child { break-before: auto; }
  .adcr-body h3 { margin: 6mm 0 2.5mm; font-size: 12pt; color: #1c1c1e; break-after: avoid; }
  .adcr-body a, .adcr-body a.rule-ref { color: #8a4527; }
  .rule { border-left: 0.6mm solid #e6a98c; padding-left: 3mm; }
  .rule-label, .adcr-body a.rule-label { color: #8a4527; }
  .adcr-doc code { background: #f3efeb; color: #1c1c1e; padding: 0 0.12em; }

  .table-wrap { overflow: visible; border: 0; border-radius: 0; }
  .table-wrap table { border-top: 0.3mm solid #dad6d2; }
  .table-wrap table { font-size: 8pt; line-height: 1.35; }
  .table-wrap table.cols-5, .table-wrap table.cols-4, .table-wrap table.cols-3 { min-width: 0; }
  .table-wrap table.cols-5 { font-size: 7.4pt; }
  .table-wrap table.cols-5 th:first-child { width: 22%; }
  .table-wrap thead { display: table-header-group; }
  .table-wrap tr { break-inside: avoid; page-break-inside: avoid; }
  .table-wrap th, .table-wrap td { padding: 1.4mm 1.8mm; border-bottom: 0.3mm solid #dad6d2; }
  .table-wrap thead th { background: #f6ece5; color: #8a4527; }
  .table-wrap td code { font-size: 0.95em; }
}
