/* ============================================================
 * AENET KGRID — GENERATED FILE. DO NOT HAND-EDIT.
 * Source of truth: design/kgrid/*.json  (aenet.kgrid.v1)
 * Regenerate with: npm run kgrid:build
 * ============================================================ */

/* ------------------------------------------------------------------
 * 1. KGRID tokens (derived from kgrid.contract.json)
 * ------------------------------------------------------------------ */
:root {
  --k-unit: 4px;
  --k-space-K1: 4px;
  --k-space-K2: 8px;
  --k-space-K3: 12px;
  --k-space-K4: 16px;
  --k-space-K6: 24px;
  --k-space-K8: 32px;
  --k-space-K12: 48px;
  --k-space-K16: 64px;
  --k-space-K24: 96px;
  --k-size-K1: 4px;
  --k-size-K2: 8px;
  --k-size-K3: 12px;
  --k-size-K4: 16px;
  --k-size-K6: 24px;
  --k-size-K8: 32px;
  --k-size-K12: 48px;
  --k-size-K16: 64px;
  --k-size-K24: 96px;
  --k-shell-max: 1800px;
  --k-page-gutter: clamp(16px, 2vw, 32px);
  --k-grid-gap: var(--k-unit);
  --k-header-h: var(--k-size-K16);
  --k-context-h: auto;
  --k-reading-width: 72ch;
  --k-data-width: 1200px;
  --k-visual-width: 1440px;
  --surface-0: var(--bg);
  --surface-1: var(--panel);
  --surface-2: var(--panel-2);
  --surface-overlay: rgba(8, 12, 18, 0.96);
  --border-subtle: var(--border);
  --border-standard: var(--border-strong);
  --border-active: var(--rgbm-navigation);
  --type-display: var(--fgrid-display-size);
  --type-h1: var(--fgrid-page-title-size);
  --type-h2: var(--fgrid-section-size);
  --type-body: var(--fgrid-body-size);
  --type-code: var(--mono);
}

/* ------------------------------------------------------------------
 * 2. PublicViewport — every public page uses this single container.
 * ------------------------------------------------------------------ */
body[data-template] .wrap,
body[data-template] main.content-field {
  width: 100%;
  max-width: var(--k-shell-max);
  margin-inline: auto;
  padding-inline: var(--k-page-gutter);
}

/* ------------------------------------------------------------------
 * 3. Global vertical stack alignment (N00–N50) — INV-KGRID-001
 * ------------------------------------------------------------------ */
body[data-template] header.site[data-global-header] { grid-row: 1; }
body[data-template] .context-bar { grid-row: 2; }
body[data-template] main.content-field { grid-row: 3; min-height: 0; }
body[data-template] footer.site { grid-row: 4; }
body[data-template] .knav-launcher,
body[data-template] #aenet-overlay-root { position: fixed; z-index: var(--z-knav, 1100); }

/* Page header standard (N20 — PageHeader anatomy) */
body[data-template] main.content-field > .page-head {
  margin: 0;
  min-width: 0;
}

/* Content width roles (§20) */
body[data-template] .article-body,
body[data-template] [data-kgrid-slot="CONTENT"] article { max-width: var(--k-reading-width); }
body[data-template] [data-kgrid-slot="TABLE"] { max-width: var(--k-data-width); }
body[data-template] [data-kgrid-slot="MAIN_VISUAL"],
body[data-template] [data-kgrid-slot="CANVAS"] { max-width: var(--k-visual-width); }

/* Inspector / rail standards (§37–§38) */
body[data-template] [data-kgrid-slot="INFO"],
body[data-template] [data-kgrid-slot="TITLE"],
body[data-template] [data-kgrid-slot="NAV_RAIL"] {
  border-right: 1px solid var(--border-subtle);
  padding-right: var(--k-space-K4);
}
body[data-template] [data-kgrid-slot="INSPECTOR"] {
  border-left: 1px solid var(--border-subtle);
  padding-left: var(--k-space-K4);
}

/* ------------------------------------------------------------------
 * 4. PageWorkspace templates — desktop 24 columns
 * ------------------------------------------------------------------ */
/* T01 — OVERVIEW (Home, system overview, landing summaries.) */
body[data-template="T01"] main.content-field {
  display: grid;
  grid-template-columns: repeat(24, minmax(0, 1fr));
  grid-auto-flow: row;
  grid-auto-rows: minmax(auto, auto);
  gap: var(--k-grid-gap);
  align-content: start;
}
body[data-template="T01"] main.content-field > .page-head,
body[data-template="T01"] main.content-field > section,
body[data-template="T01"] main.content-field > div {
  min-width: 0;
}
body[data-template="T01"] main.content-field > *:not([data-kslot]) { grid-column: 1 / -1; }
    body[data-template="T01"] main.content-field > [data-kslot="HERO"] { grid-column: 1 / 25; align-self: start; }
    body[data-template="T01"] main.content-field > [data-kslot="PRIMARY"] { grid-column: 1 / 17; align-self: start; }
    body[data-template="T01"] main.content-field > [data-kslot="SECONDARY"] { grid-column: 17 / 25; align-self: start; }
    body[data-template="T01"] main.content-field > [data-kslot="RELATED"] { grid-column: 1 / 25; align-self: start; }
    body[data-template="T01"] main.content-field > [data-kslot="PRIMARY"] { grid-column: 1 / 25; }
    body[data-template="T01"] main.content-field > [data-kslot="SECONDARY"] { grid-column: 17 / 25; }
    body[data-template="T01"] main.content-field:has(> [data-kslot="SECONDARY"]) > [data-kslot="PRIMARY"] { grid-column: 1 / 17; }

/* T02 — SYSTEM (Wallet, future Account / Mail / Accounting. Info rail + main content + related systems.) */
body[data-template="T02"] main.content-field {
  display: grid;
  grid-template-columns: repeat(24, minmax(0, 1fr));
  grid-auto-flow: row;
  grid-auto-rows: minmax(auto, auto);
  gap: var(--k-grid-gap);
  align-content: start;
}
body[data-template="T02"] main.content-field > .page-head,
body[data-template="T02"] main.content-field > section,
body[data-template="T02"] main.content-field > div {
  min-width: 0;
}
body[data-template="T02"] main.content-field > *:not([data-kslot]) { grid-column: 1 / -1; }
    body[data-template="T02"] main.content-field > [data-kslot="HEADER"] { grid-column: 1 / 25; align-self: start; }
    body[data-template="T02"] main.content-field > [data-kslot="INFO"] { grid-column: 1 / 7; align-self: start; }
    body[data-template="T02"] main.content-field > [data-kslot="MAIN"] { grid-column: 7 / 25; align-self: start; }
    body[data-template="T02"] main.content-field > [data-kslot="RELATED"] { grid-column: 1 / 25; align-self: start; }

/* T03 — ARCHITECTURE (Architecture pages — intro/page-context rail (5 cols) + main visual (19 cols), then full architecture sections. Reference implementation of the A/B/C/D/N/L/S coordinate fabric.) */
body[data-template="T03"] main.content-field {
  display: grid;
  grid-template-columns: repeat(24, minmax(0, 1fr));
  grid-auto-flow: row;
  grid-auto-rows: minmax(auto, auto);
  gap: var(--k-grid-gap);
  align-content: start;
}
body[data-template="T03"] main.content-field > .page-head,
body[data-template="T03"] main.content-field > section,
body[data-template="T03"] main.content-field > div {
  min-width: 0;
}
body[data-template="T03"] main.content-field > *:not([data-kslot]) { grid-column: 1 / -1; }
    body[data-template="T03"] main.content-field > [data-kslot="TITLE"] { grid-column: 1 / 6; align-self: start; }
    body[data-template="T03"] main.content-field > [data-kslot="MAIN_VISUAL"] { grid-column: 6 / 25; align-self: start; }
    body[data-template="T03"] main.content-field > [data-kslot="CONTENT"] { grid-column: 1 / 25; align-self: start; }
    body[data-template="T03"] main.content-field > [data-kslot="RELATED"] { grid-column: 1 / 25; align-self: start; }

/* T04 — INDEX / DIRECTORY (Systems, research index, developer index — filter, domain sections, compact directory.) */
body[data-template="T04"] main.content-field {
  display: grid;
  grid-template-columns: repeat(24, minmax(0, 1fr));
  grid-auto-flow: row;
  grid-auto-rows: minmax(auto, auto);
  gap: var(--k-grid-gap);
  align-content: start;
}
body[data-template="T04"] main.content-field > .page-head,
body[data-template="T04"] main.content-field > section,
body[data-template="T04"] main.content-field > div {
  min-width: 0;
}
body[data-template="T04"] main.content-field > *:not([data-kslot]) { grid-column: 1 / -1; }
    body[data-template="T04"] main.content-field > [data-kslot="FILTER"] { grid-column: 1 / 25; align-self: start; }
    body[data-template="T04"] main.content-field > [data-kslot="SECTIONS"] { grid-column: 1 / 25; align-self: start; }
    body[data-template="T04"] main.content-field > [data-kslot="DIRECTORY"] { grid-column: 1 / 25; align-self: start; }

/* T05 — ARTICLE / RESEARCH (Research, protocol, glossary detail — content + optional TOC rail.) */
body[data-template="T05"] main.content-field {
  display: grid;
  grid-template-columns: repeat(24, minmax(0, 1fr));
  grid-auto-flow: row;
  grid-auto-rows: minmax(auto, auto);
  gap: var(--k-grid-gap);
  align-content: start;
}
body[data-template="T05"] main.content-field > .page-head,
body[data-template="T05"] main.content-field > section,
body[data-template="T05"] main.content-field > div {
  min-width: 0;
}
body[data-template="T05"] main.content-field > *:not([data-kslot]) { grid-column: 1 / -1; }
    body[data-template="T05"] main.content-field > [data-kslot="CONTENT"] { grid-column: 1 / 19; align-self: start; }
    body[data-template="T05"] main.content-field > [data-kslot="TOC"] { grid-column: 19 / 25; align-self: start; }
    body[data-template="T05"] main.content-field > [data-kslot="CONTENT"] { grid-column: 1 / 25; }
    body[data-template="T05"] main.content-field:has(> [data-kslot="TOC"]) > [data-kslot="CONTENT"] { grid-column: 1 / 19; }
    body[data-template="T05"] main.content-field:has(> [data-kslot="TOC"]) > [data-kslot="TOC"] { grid-column: 19 / 25; }

/* T06 — MAP / CANVAS (System map, architecture visual, integration map — large canvas + optional inspector.) */
body[data-template="T06"] main.content-field {
  display: grid;
  grid-template-columns: repeat(24, minmax(0, 1fr));
  grid-auto-flow: row;
  grid-auto-rows: minmax(auto, auto);
  gap: var(--k-grid-gap);
  align-content: start;
}
body[data-template="T06"] main.content-field > .page-head,
body[data-template="T06"] main.content-field > section,
body[data-template="T06"] main.content-field > div {
  min-width: 0;
}
body[data-template="T06"] main.content-field > *:not([data-kslot]) { grid-column: 1 / -1; }
    body[data-template="T06"] main.content-field > [data-kslot="CANVAS"] { grid-column: 1 / 19; align-self: start; }
    body[data-template="T06"] main.content-field > [data-kslot="INSPECTOR"] { grid-column: 19 / 25; align-self: start; }

/* T07 — EVIDENCE (Development, evidence, status — timeline / table / verification.) */
body[data-template="T07"] main.content-field {
  display: grid;
  grid-template-columns: repeat(24, minmax(0, 1fr));
  grid-auto-flow: row;
  grid-auto-rows: minmax(auto, auto);
  gap: var(--k-grid-gap);
  align-content: start;
}
body[data-template="T07"] main.content-field > .page-head,
body[data-template="T07"] main.content-field > section,
body[data-template="T07"] main.content-field > div {
  min-width: 0;
}
body[data-template="T07"] main.content-field > *:not([data-kslot]) { grid-column: 1 / -1; }
    body[data-template="T07"] main.content-field > [data-kslot="TIMELINE"] { grid-column: 1 / 11; align-self: start; }
    body[data-template="T07"] main.content-field > [data-kslot="TABLE"] { grid-column: 11 / 25; align-self: start; }
    body[data-template="T07"] main.content-field > [data-kslot="EVIDENCE"] { grid-column: 1 / 25; align-self: start; }

/* T08 — API / DEVELOPER (API, contracts, SDK — navigation rail + documentation content.) */
body[data-template="T08"] main.content-field {
  display: grid;
  grid-template-columns: repeat(24, minmax(0, 1fr));
  grid-auto-flow: row;
  grid-auto-rows: minmax(auto, auto);
  gap: var(--k-grid-gap);
  align-content: start;
}
body[data-template="T08"] main.content-field > .page-head,
body[data-template="T08"] main.content-field > section,
body[data-template="T08"] main.content-field > div {
  min-width: 0;
}
body[data-template="T08"] main.content-field > *:not([data-kslot]) { grid-column: 1 / -1; }
    body[data-template="T08"] main.content-field > [data-kslot="NAV_RAIL"] { grid-column: 1 / 6; align-self: start; }
    body[data-template="T08"] main.content-field > [data-kslot="DOCS"] { grid-column: 6 / 25; align-self: start; }

/* ------------------------------------------------------------------
 * 5. Tablet — 12 columns (RECOMPOSE, not shrink)
 * ------------------------------------------------------------------ */
@media (min-width: 768px) and (max-width: 1199px) {
body[data-template="T01"] main.content-field {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}
      body[data-template="T01"] main.content-field > [data-kslot="HERO"] { grid-column: 1 / 13; }
      body[data-template="T01"] main.content-field > [data-kslot="PRIMARY"] { grid-column: 1 / 13; }
      body[data-template="T01"] main.content-field > [data-kslot="SECONDARY"] { grid-column: 1 / 13; }
      body[data-template="T01"] main.content-field > [data-kslot="RELATED"] { grid-column: 1 / 13; }

body[data-template="T02"] main.content-field {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}
      body[data-template="T02"] main.content-field > [data-kslot="HEADER"] { grid-column: 1 / 13; }
      body[data-template="T02"] main.content-field > [data-kslot="INFO"] { grid-column: 1 / 13; }
      body[data-template="T02"] main.content-field > [data-kslot="MAIN"] { grid-column: 1 / 13; }
      body[data-template="T02"] main.content-field > [data-kslot="RELATED"] { grid-column: 1 / 13; }

body[data-template="T03"] main.content-field {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}
      body[data-template="T03"] main.content-field > [data-kslot="TITLE"] { grid-column: 1 / 13; }
      body[data-template="T03"] main.content-field > [data-kslot="MAIN_VISUAL"] { grid-column: 1 / 13; }
      body[data-template="T03"] main.content-field > [data-kslot="CONTENT"] { grid-column: 1 / 13; }
      body[data-template="T03"] main.content-field > [data-kslot="RELATED"] { grid-column: 1 / 13; }

body[data-template="T04"] main.content-field {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}
      body[data-template="T04"] main.content-field > [data-kslot="FILTER"] { grid-column: 1 / 13; }
      body[data-template="T04"] main.content-field > [data-kslot="SECTIONS"] { grid-column: 1 / 13; }
      body[data-template="T04"] main.content-field > [data-kslot="DIRECTORY"] { grid-column: 1 / 13; }

body[data-template="T05"] main.content-field {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}
      body[data-template="T05"] main.content-field > [data-kslot="CONTENT"] { grid-column: 1 / 13; }
      body[data-template="T05"] main.content-field > [data-kslot="TOC"] { grid-column: 1 / 13; }

body[data-template="T06"] main.content-field {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}
      body[data-template="T06"] main.content-field > [data-kslot="CANVAS"] { grid-column: 1 / 13; }
      body[data-template="T06"] main.content-field > [data-kslot="INSPECTOR"] { grid-column: 1 / 13; }

body[data-template="T07"] main.content-field {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}
      body[data-template="T07"] main.content-field > [data-kslot="TIMELINE"] { grid-column: 1 / 13; }
      body[data-template="T07"] main.content-field > [data-kslot="TABLE"] { grid-column: 1 / 13; }
      body[data-template="T07"] main.content-field > [data-kslot="EVIDENCE"] { grid-column: 1 / 13; }

body[data-template="T08"] main.content-field {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}
      body[data-template="T08"] main.content-field > [data-kslot="NAV_RAIL"] { grid-column: 1 / 13; }
      body[data-template="T08"] main.content-field > [data-kslot="DOCS"] { grid-column: 1 / 13; }
  body[data-template] [data-kgrid-slot="INFO"],
  body[data-template] [data-kgrid-slot="TITLE"],
  body[data-template] [data-kgrid-slot="NAV_RAIL"],
  body[data-template] [data-kgrid-slot="INSPECTOR"] {
    border-right: 0;
    border-left: 0;
    padding-right: 0;
    padding-left: 0;
  }
}

/* ------------------------------------------------------------------
 * 6. Mobile — 4 columns
 * ------------------------------------------------------------------ */
@media (max-width: 767px) {
body[data-template="T01"] main.content-field {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
      body[data-template="T01"] main.content-field > [data-kslot="HERO"] { grid-column: 1 / 5; }
      body[data-template="T01"] main.content-field > [data-kslot="PRIMARY"] { grid-column: 1 / 5; }
      body[data-template="T01"] main.content-field > [data-kslot="SECONDARY"] { grid-column: 1 / 5; }
      body[data-template="T01"] main.content-field > [data-kslot="RELATED"] { grid-column: 1 / 5; }

body[data-template="T02"] main.content-field {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
      body[data-template="T02"] main.content-field > [data-kslot="HEADER"] { grid-column: 1 / 5; }
      body[data-template="T02"] main.content-field > [data-kslot="INFO"] { grid-column: 1 / 5; }
      body[data-template="T02"] main.content-field > [data-kslot="MAIN"] { grid-column: 1 / 5; }
      body[data-template="T02"] main.content-field > [data-kslot="RELATED"] { grid-column: 1 / 5; }

body[data-template="T03"] main.content-field {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
      body[data-template="T03"] main.content-field > [data-kslot="TITLE"] { grid-column: 1 / 5; }
      body[data-template="T03"] main.content-field > [data-kslot="MAIN_VISUAL"] { grid-column: 1 / 5; }
      body[data-template="T03"] main.content-field > [data-kslot="CONTENT"] { grid-column: 1 / 5; }
      body[data-template="T03"] main.content-field > [data-kslot="RELATED"] { grid-column: 1 / 5; }

body[data-template="T04"] main.content-field {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
      body[data-template="T04"] main.content-field > [data-kslot="FILTER"] { grid-column: 1 / 5; }
      body[data-template="T04"] main.content-field > [data-kslot="SECTIONS"] { grid-column: 1 / 5; }
      body[data-template="T04"] main.content-field > [data-kslot="DIRECTORY"] { grid-column: 1 / 5; }

body[data-template="T05"] main.content-field {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
      body[data-template="T05"] main.content-field > [data-kslot="CONTENT"] { grid-column: 1 / 5; }
      body[data-template="T05"] main.content-field > [data-kslot="TOC"] { grid-column: 1 / 5; }

body[data-template="T06"] main.content-field {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
      body[data-template="T06"] main.content-field > [data-kslot="CANVAS"] { grid-column: 1 / 5; }
      body[data-template="T06"] main.content-field > [data-kslot="INSPECTOR"] { grid-column: 1 / 5; }

body[data-template="T07"] main.content-field {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
      body[data-template="T07"] main.content-field > [data-kslot="TIMELINE"] { grid-column: 1 / 5; }
      body[data-template="T07"] main.content-field > [data-kslot="TABLE"] { grid-column: 1 / 5; }
      body[data-template="T07"] main.content-field > [data-kslot="EVIDENCE"] { grid-column: 1 / 5; }

body[data-template="T08"] main.content-field {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
      body[data-template="T08"] main.content-field > [data-kslot="NAV_RAIL"] { grid-column: 1 / 5; }
      body[data-template="T08"] main.content-field > [data-kslot="DOCS"] { grid-column: 1 / 5; }
  body[data-template] main.content-field {
    gap: var(--k-space-K3);
  }
  body[data-template] [data-kgrid-slot="INFO"],
  body[data-template] [data-kgrid-slot="TITLE"],
  body[data-template] [data-kgrid-slot="NAV_RAIL"],
  body[data-template] [data-kgrid-slot="INSPECTOR"] {
    border: 0;
    padding: 0;
  }
}

/* ------------------------------------------------------------------
 * 7. Flowing-page guarantee — KGRID pages never trap the document in a
 *    fixed viewport (height policy §35, no fixed-viewport hacks §69).
 *    Legacy fixed "workstation" shells are neutralized here.
 * ------------------------------------------------------------------ */
html:has(body[data-template]) { height: auto; overflow: visible; }
body[data-template] { height: auto; overflow: visible; min-width: 0; }

/* No page may override the shell (INV-KGRID-002/003/008) — these rules are
 * last in the cascade on purpose; page-scoped geometry is forbidden to
 * fight them. */
body[data-template] { overflow-x: clip; }
