/*
 * Darja Rihla: Living Dossier 01, Zero Trust After Login
 * File: dr-post-zero-trust-after-login.css
 * Loaded by: functions.php, dr_enqueue_zero_trust_after_login(), slug-gated.
 * Scope: #dr-zt-dossier only. No global selectors.
 *
 * Owns: dossier presentation (masthead and its background layer, chapter
 *       figures, confidence marks, Then/Now table,
 *       engine, object map, attack/defense rows with control limits,
 *       simulator, reflection list, ledger, record).
 * Does not own: TOC, reading progress, reveal, theme toggle, page shell.
 *       Those stay with dr-single-post.css/js and the theme toggle.
 *
 * Cascade note: dr-post-base.css is unlayered and uses
 * body.dr-family-post .wp-block-post-content ... (0,2,2). The ID scope here
 * wins without !important. The shared rules that set strong to #fff and
 * em to #dbe9f3 are neutralized inside this scope only.
 *
 * Naming: dr-ld-* = Living Dossier pattern candidates (not yet shared).
 *         dr-zt-* = specific to this Zero Trust dossier.
 */

/* Reading face for narrative prose: Source Sans 3, the face of the Continuity
   Project prose (dr-systems.css). Same request URL as dr-systems.css, so the
   browser can reuse the cached font CSS. Must stay above every rule. */
@import url('https://fonts.googleapis.com/css2?family=Source+Sans+3:opsz,wght@8..60,400;8..60,500;8..60,600;8..60,650&display=swap');

/* ---------------------------------------------------------------------------
   1. Tokens: light is the base, dark follows the site toggle
   --------------------------------------------------------------------------- */

#dr-zt-dossier {
  --ld-bg: #fbf8f2;
  --ld-surface: #ffffff;
  --ld-surface-2: #f3eee4;
  --ld-ink: #13202a;
  --ld-ink-2: #2c3a44;
  --ld-muted: #4f5d68;
  --ld-line: rgba(19, 32, 42, 0.13);
  --ld-line-2: rgba(19, 32, 42, 0.24);
  --ld-signal: #0a6378;
  --ld-signal-2: #1f9fc0;
  --ld-signal-wash: rgba(31, 159, 192, 0.1);
  --ld-gold: #7a5714;
  --ld-gold-wash: rgba(178, 132, 45, 0.12);
  --ld-attack: #9e2c3a;
  --ld-attack-wash: rgba(158, 44, 58, 0.07);
  --ld-allow: #1a6a45;
  --ld-challenge: #7a5714;
  --ld-restrict: #93460f;
  --ld-deny: #9e2c3a;
  --ld-grid: rgba(10, 99, 120, 0.06);
  --ld-shadow: 0 18px 48px rgba(19, 32, 42, 0.08);
  --ld-radius: 14px;
  --ld-radius-lg: 22px;
  --ld-font-display: var(--dr-font-display, "Playfair Display", Georgia, serif);
  --ld-font-ui: var(--dr-font-body, "Inter", system-ui, -apple-system, "Segoe UI", sans-serif);
  --ld-font-mono: var(--dr-font-mono, "DM Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);
  --ld-prose: 44rem;
  /* Reading layer, taken from the Continuity Project prose:
     face from dr-systems.css, size and leading from the dr-typography.css p rule. */
  --ld-font-reading: "Source Sans 3", "Source Sans Pro", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ld-reading-size: clamp(1rem, 3vw, 1.125rem);
  --ld-reading-leading: 1.7;
  --ld-space: clamp(56px, 8vw, 104px);
  /* Masthead veil over the background image. Opacity is set so that
     --ld-muted text keeps at least 4.5:1 even over a worst-case image pixel
     (calculation, not a WCAG audit). Lower values show more image. */
  --ld-masthead-veil: rgba(255, 255, 255, 0.88);
  /* Plate behind chapter figures while the WebP loads (images are dark). */
  --ld-figure-plate: #0b1824;
}

html[data-theme="dark"] #dr-zt-dossier,
body.theme-dark #dr-zt-dossier {
  --ld-bg: #08131d;
  --ld-surface: #0d1b28;
  --ld-surface-2: #112333;
  --ld-ink: #eaf2f7;
  --ld-ink-2: #c7d4dd;
  --ld-muted: #9db0bd;
  --ld-line: rgba(124, 234, 255, 0.13);
  --ld-line-2: rgba(124, 234, 255, 0.26);
  --ld-signal: #7ceaff;
  --ld-signal-2: #63d8e6;
  --ld-signal-wash: rgba(124, 234, 255, 0.08);
  --ld-gold: #e2c07f;
  --ld-gold-wash: rgba(226, 192, 127, 0.1);
  --ld-attack: #ff97a5;
  --ld-attack-wash: rgba(255, 151, 165, 0.08);
  --ld-allow: #67d7a5;
  --ld-challenge: #f0c36a;
  --ld-restrict: #f4a874;
  --ld-deny: #ff97a5;
  --ld-grid: rgba(124, 234, 255, 0.05);
  --ld-shadow: 0 24px 60px rgba(0, 0, 0, 0.34);
  --ld-masthead-veil: rgba(13, 27, 40, 0.9);
}

/* ---------------------------------------------------------------------------
   2. Root and typography reset inside the dossier
   --------------------------------------------------------------------------- */

#dr-zt-dossier {
  container: dr-zt / inline-size;
  position: relative;
  box-sizing: border-box;
  margin-block: clamp(8px, 2vw, 24px) clamp(32px, 5vw, 64px);
  padding: clamp(18px, 4vw, 56px) clamp(14px, 3.6vw, 56px);
  border: 1px solid var(--ld-line);
  border-radius: var(--ld-radius-lg);
  background-color: var(--ld-bg);
  background-image:
    linear-gradient(var(--ld-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--ld-grid) 1px, transparent 1px);
  background-size: 32px 32px;
  background-position: -1px -1px;
  color: var(--ld-ink-2);
  font-family: var(--ld-font-ui);
  font-size: 1.0625rem;
  line-height: 1.75;
  overflow-wrap: break-word;
}

#dr-zt-dossier *,
#dr-zt-dossier *::before,
#dr-zt-dossier *::after {
  box-sizing: border-box;
}

#dr-zt-dossier p,
#dr-zt-dossier li,
#dr-zt-dossier dd {
  color: var(--ld-ink-2);
  font-size: inherit;
  line-height: 1.75;
}

/* Narrative prose uses the reading layer (section 3). Without it, p and li
   would take the shared serif from dr-typography.css.
   Data components use the UI face for legibility at small sizes.
   :where() keeps this at ID-only specificity so component classes still win. */
#dr-zt-dossier :where(.dr-ld-legend, .dr-ld-timeline, .dr-zt-engine, .dr-zt-objects, .dr-zt-paths, .dr-zt-sim, .wp-block-table, .dr-ld-ledger, .dr-ld-record) :where(p, li, dd, dt, td, th, span, strong, label, legend, figcaption) {
  font-family: var(--ld-font-ui);
}

#dr-zt-dossier strong,
#dr-zt-dossier b {
  color: var(--ld-ink);
  font-weight: 700;
}

#dr-zt-dossier em {
  color: inherit;
}

#dr-zt-dossier a {
  color: var(--ld-signal);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

#dr-zt-dossier a:hover {
  color: var(--ld-gold);
  opacity: 1;
}

#dr-zt-dossier :is(a, button, input, summary):focus-visible {
  outline: 3px solid var(--ld-signal-2);
  outline-offset: 3px;
  border-radius: 4px;
}

#dr-zt-dossier h2,
#dr-zt-dossier h3 {
  color: var(--ld-ink);
  font-family: var(--ld-font-display);
  letter-spacing: -0.01em;
  text-wrap: balance;
}

#dr-zt-dossier ul,
#dr-zt-dossier ol {
  padding-left: 1.25rem;
}

#dr-zt-dossier li::marker {
  color: var(--ld-signal);
}

/* ---------------------------------------------------------------------------
   3. Sections and prose column
   --------------------------------------------------------------------------- */

#dr-zt-dossier .dr-ld-section {
  counter-increment: dr-ld-section;
  margin: var(--ld-space) 0 0;
  padding: 0;
}

#dr-zt-dossier {
  counter-reset: dr-ld-section;
}

#dr-zt-dossier .dr-ld-section > :is(p, ul, ol, h2, h3, .wp-block-quote):not(.dr-ld-ledger) {
  max-width: var(--ld-prose);
  margin-inline: auto;
}

#dr-zt-dossier .dr-ld-section > p {
  margin-block: 0 1.1em;
}

/* Reading layer: narrative paragraphs and the three prose lists. Question
   lists and the ledger are not matched; the thesis keeps the display face.
   :where() keeps specificity at (1,1,x), so the confidence-mark rule still
   sets its own size and leading. */
#dr-zt-dossier .dr-ld-section > p:where(:not(.dr-ld-thesis)),
#dr-zt-dossier .dr-ld-section > ul:where(.dr-ld-properties, .dr-ld-reflection) > li,
#dr-zt-dossier .dr-ld-section > ol:where(.dr-ld-takeaways) > li {
  font-family: var(--ld-font-reading);
  font-size: var(--ld-reading-size);
  line-height: var(--ld-reading-leading);
}

#dr-zt-dossier .dr-ld-section > h2 {
  margin-block: 0 0.7em;
  padding: 0;
  border: 0;
  font-size: clamp(1.75rem, 1.2rem + 2.2vw, 2.6rem);
  font-weight: 700;
  line-height: 1.12;
  scroll-margin-top: 96px;
}

#dr-zt-dossier .dr-ld-section > h2::before {
  content: counter(dr-ld-section, decimal-leading-zero);
  content: counter(dr-ld-section, decimal-leading-zero) / "";
  display: block;
  margin-bottom: 0.55rem;
  color: var(--ld-signal);
  font-family: var(--ld-font-mono);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.2em;
}

#dr-zt-dossier .dr-ld-section > h3 {
  margin-block: 2em 0.55em;
  font-size: clamp(1.25rem, 1.05rem + 0.8vw, 1.5rem);
  font-weight: 700;
  line-height: 1.25;
}

#dr-zt-dossier .dr-ld-section > ul,
#dr-zt-dossier .dr-ld-section > ol {
  margin-block: 0 1.4em;
}

#dr-zt-dossier .dr-ld-section > ul > li,
#dr-zt-dossier .dr-ld-section > ol > li {
  margin-bottom: 0.6em;
}

/* Visually hidden text that stays available to assistive technology */
#dr-zt-dossier .dr-ld-vh {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* Evidence references: inline, compact, never color-only */
#dr-zt-dossier a.dr-ld-ref {
  display: inline-block;
  margin-inline: 0.1em;
  padding: 0 0.42em;
  border: 1px solid var(--ld-line-2);
  border-radius: 999px;
  background: var(--ld-surface);
  color: var(--ld-signal);
  font-family: var(--ld-font-mono);
  font-size: 0.72em;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.04em;
  text-decoration: none;
  vertical-align: 0.12em;
  white-space: nowrap;
}

#dr-zt-dossier a.dr-ld-ref:hover {
  border-color: var(--ld-signal);
  color: var(--ld-ink);
}

/* ---------------------------------------------------------------------------
   3b. Chapter figures
   Eight WebP illustrations in Custom HTML blocks. Each one follows the prose
   that introduces it. The dossier owns their width (not the prose column):
   4:3 diagrams sit at a medium width, 16:9 images use the section width.
   No float, no link, no hover, no animation. The img width/height
   attributes reserve the box before the file arrives.
   --------------------------------------------------------------------------- */

#dr-zt-dossier .dr-ld-figure {
  max-width: 100%;
  margin: clamp(28px, 5vw, 56px) auto;
  padding: clamp(6px, 1vw, 10px);
  border: 1px solid var(--ld-line);
  border-radius: var(--ld-radius);
  background: var(--ld-surface);
}

#dr-zt-dossier .dr-ld-figure--diagram {
  max-width: 52rem;
}

#dr-zt-dossier .dr-ld-figure--wide {
  max-width: 100%;
}

#dr-zt-dossier .dr-ld-figure img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0;
  border: 0;
  border-radius: calc(var(--ld-radius) - 6px);
  background-color: var(--ld-figure-plate);
  box-shadow: none;
}

#dr-zt-dossier .dr-ld-figure__caption {
  margin: 0;
  padding: 12px 4px 2px;
  color: var(--ld-muted);
  font-family: var(--ld-font-ui);
  font-size: 0.875rem;
  font-style: normal;
  line-height: 1.55;
  text-align: left;
}

/* ---------------------------------------------------------------------------
   4. Masthead: provenance strip and confidence legend
   --------------------------------------------------------------------------- */

#dr-zt-dossier .dr-ld-masthead {
  display: grid;
  gap: clamp(20px, 3vw, 36px);
  margin: 0;
  padding: clamp(18px, 3.4vw, 40px);
  border: 1px solid var(--ld-line-2);
  border-radius: var(--ld-radius);
  background:
    radial-gradient(circle at 92% 0%, var(--ld-signal-wash), transparent 42%),
    linear-gradient(var(--ld-masthead-veil), var(--ld-masthead-veil)),
    url("https://darjarihla.com/wp-content/uploads/2026/10/zero-trust-after-login-background.webp") center / cover no-repeat,
    var(--ld-surface);
  box-shadow: var(--ld-shadow);
}

#dr-zt-dossier .dr-ld-kicker {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin: 0 0 14px;
  color: var(--ld-signal);
  font-family: var(--ld-font-mono);
  font-size: 0.74rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  line-height: 1.5;
  text-transform: uppercase;
}

#dr-zt-dossier .dr-ld-kicker span + span::before {
  content: "/";
  margin-right: 14px;
  color: var(--ld-muted);
}

#dr-zt-dossier .dr-ld-masthead__h1 {
  margin: 0 0 12px;
  color: var(--ld-ink);
  font-family: var(--ld-font-display);
  font-size: clamp(1.45rem, 1.1rem + 1.35vw, 1.95rem);
  font-weight: 700;
  line-height: 1.3;
  text-wrap: balance;
}

#dr-zt-dossier .dr-ld-masthead__title {
  margin: 0 0 14px;
  color: var(--ld-ink);
  font-family: var(--ld-font-display);
  font-size: clamp(1.25rem, 1rem + 1.1vw, 1.65rem);
  font-weight: 600;
  line-height: 1.35;
  text-wrap: balance;
}

#dr-zt-dossier .dr-ld-lead {
  max-width: 46rem;
  margin: 0;
  font-family: var(--ld-font-reading);
  font-size: var(--ld-reading-size);
  line-height: var(--ld-reading-leading);
}

#dr-zt-dossier .dr-ld-masthead__thesis {
  max-width: 46rem;
  margin: 18px 0 0;
  padding-left: 16px;
  border-left: 3px solid var(--ld-signal);
  color: var(--ld-ink);
  font-family: var(--ld-font-display);
  font-size: clamp(1.08rem, 0.98rem + 0.45vw, 1.25rem);
  font-weight: 600;
  line-height: 1.45;
}

#dr-zt-dossier .dr-ld-timeline {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

#dr-zt-dossier .dr-ld-timeline__item {
  position: relative;
  display: grid;
  gap: 2px;
  margin: 0;
  padding: 0 0 18px 26px;
  border-left: 2px solid var(--ld-line-2);
}

#dr-zt-dossier .dr-ld-timeline__item:last-child {
  padding-bottom: 0;
  border-left-style: dashed;
}

#dr-zt-dossier .dr-ld-timeline__item::before {
  content: "";
  position: absolute;
  top: 6px;
  left: -7px;
  width: 12px;
  height: 12px;
  border: 2px solid var(--ld-gold);
  border-radius: 50%;
  background: var(--ld-surface);
}

#dr-zt-dossier .dr-ld-timeline__item--current::before {
  border-color: var(--ld-signal);
  background: var(--ld-signal);
}

#dr-zt-dossier .dr-ld-timeline__item--next::before {
  border-style: dashed;
  border-color: var(--ld-muted);
}

#dr-zt-dossier .dr-ld-timeline__label {
  color: var(--ld-muted);
  font-family: var(--ld-font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

#dr-zt-dossier .dr-ld-timeline time,
#dr-zt-dossier .dr-ld-timeline__when {
  color: var(--ld-ink);
  font-family: var(--ld-font-display);
  font-size: 1.12rem;
  font-weight: 700;
  line-height: 1.3;
}

#dr-zt-dossier .dr-ld-timeline__note {
  color: var(--ld-ink-2);
  font-size: 0.94rem;
  line-height: 1.55;
}

#dr-zt-dossier .dr-ld-legend {
  padding-top: clamp(16px, 2.4vw, 24px);
  border-top: 1px solid var(--ld-line);
}

#dr-zt-dossier .dr-ld-legend__title {
  margin: 0 0 10px;
  color: var(--ld-ink);
  font-family: var(--ld-font-mono);
  font-size: 0.74rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

#dr-zt-dossier .dr-ld-legend__list {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#dr-zt-dossier .dr-ld-legend__list li {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.55;
}

/* Chips, shared by legend, marks and object cards */
#dr-zt-dossier .dr-ld-chip {
  display: inline-block;
  margin-right: 6px;
  padding: 1px 9px;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-family: var(--ld-font-mono);
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.7;
  text-transform: uppercase;
  vertical-align: 0.1em;
  white-space: nowrap;
}

#dr-zt-dossier .dr-ld-chip--emerging { color: var(--ld-gold); }
#dr-zt-dossier .dr-ld-chip--interpretation { color: var(--ld-ink); }
#dr-zt-dossier .dr-ld-chip--ref { color: var(--ld-signal); text-transform: none; }

/* ---------------------------------------------------------------------------
   5. Confidence marks (paragraph blocks with a className)
   --------------------------------------------------------------------------- */

#dr-zt-dossier .dr-ld-section > p.dr-ld-mark {
  margin-block: 1.6em;
  padding: 16px 18px 16px 20px;
  border: 1px solid var(--ld-line);
  border-left: 4px solid var(--ld-ink);
  border-radius: 0 var(--ld-radius) var(--ld-radius) 0;
  background: var(--ld-surface);
  font-size: 0.98rem;
  line-height: 1.7;
}

#dr-zt-dossier p.dr-ld-mark > strong:first-child {
  display: block;
  margin-bottom: 4px;
  font-family: var(--ld-font-mono);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

#dr-zt-dossier p.dr-ld-mark--emerging { border-left-color: var(--ld-gold); background: linear-gradient(90deg, var(--ld-gold-wash), transparent 70%), var(--ld-surface); }
#dr-zt-dossier p.dr-ld-mark--emerging > strong:first-child { color: var(--ld-gold); }
#dr-zt-dossier p.dr-ld-mark--interpretation { border-left-style: double; border-left-width: 5px; }
#dr-zt-dossier p.dr-ld-mark--interpretation > strong:first-child { color: var(--ld-ink); }

/* ---------------------------------------------------------------------------
   6. Archive quote and thesis
   --------------------------------------------------------------------------- */

#dr-zt-dossier .wp-block-quote.dr-ld-archive-quote {
  margin-block: 1.4em 1.6em;
  padding: 18px 22px;
  border: 0;
  border-left: 3px solid var(--ld-gold);
  border-radius: 0 var(--ld-radius) var(--ld-radius) 0;
  background: var(--ld-gold-wash);
  box-shadow: none;
}

#dr-zt-dossier .dr-ld-archive-quote p {
  margin: 0;
  color: var(--ld-ink);
  font-family: var(--ld-font-display);
  font-size: clamp(1.2rem, 1rem + 0.9vw, 1.5rem);
  font-style: italic;
  line-height: 1.4;
}

#dr-zt-dossier .dr-ld-archive-quote cite {
  display: block;
  margin-top: 10px;
  color: var(--ld-muted);
  font-family: var(--ld-font-mono);
  font-size: 0.74rem;
  font-style: normal;
  letter-spacing: 0.08em;
}

#dr-zt-dossier .dr-ld-section > p.dr-ld-thesis {
  margin-block: 0.4em 1em;
  padding: clamp(18px, 3vw, 30px) 0;
  border-block: 1px solid var(--ld-line-2);
  color: var(--ld-ink);
  font-family: var(--ld-font-display);
  font-size: clamp(1.4rem, 1.05rem + 1.6vw, 2.05rem);
  font-weight: 600;
  line-height: 1.3;
  text-wrap: balance;
}

#dr-zt-dossier ul.dr-ld-properties {
  padding: 0;
  list-style: none;
}

#dr-zt-dossier .dr-ld-section > ul.dr-ld-properties > li {
  margin: 0;
  padding: 10px 0;
  border-bottom: 1px solid var(--ld-line);
}

#dr-zt-dossier .dr-ld-section > ul.dr-ld-properties > li:last-child {
  border-bottom: 0;
}

/* ---------------------------------------------------------------------------
   7. Core table: Then/Now
   --------------------------------------------------------------------------- */

#dr-zt-dossier .wp-block-table.dr-ld-thennow {
  margin: 1.4em 0 1.6em;
  overflow: visible;
}

#dr-zt-dossier .wp-block-table table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid var(--ld-line-2);
  border-radius: var(--ld-radius);
  background: var(--ld-surface);
  overflow: hidden;
  font-size: 0.96rem;
}

#dr-zt-dossier .wp-block-table th,
#dr-zt-dossier .wp-block-table td {
  padding: 14px 16px;
  border: 0;
  border-bottom: 1px solid var(--ld-line);
  color: var(--ld-ink-2);
  line-height: 1.6;
  opacity: 1;
  text-align: left;
  vertical-align: top;
}

#dr-zt-dossier .wp-block-table tbody tr:last-child td {
  border-bottom: 0;
}

#dr-zt-dossier .wp-block-table thead th {
  background: var(--ld-surface-2);
  color: var(--ld-ink);
  font-family: var(--ld-font-mono);
  font-size: 0.74rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

#dr-zt-dossier .wp-block-table td:first-child {
  color: var(--ld-ink);
  font-weight: 700;
}

#dr-zt-dossier .dr-ld-thennow td:nth-child(2) {
  color: var(--ld-muted);
  font-family: var(--ld-font-display);
  font-style: italic;
}

#dr-zt-dossier .dr-ld-thennow td:nth-child(3) {
  background: linear-gradient(90deg, var(--ld-signal-wash), transparent);
}

#dr-zt-dossier .wp-block-table figcaption {
  margin-top: 10px;
  color: var(--ld-muted);
  font-family: var(--ld-font-mono);
  font-size: 0.74rem;
  letter-spacing: 0.04em;
  line-height: 1.6;
  text-align: left;
}

/* Narrow layout: rows become labelled cards. Header text repeated for sighted readers. */
@container dr-zt (max-width: 640px) {
  #dr-zt-dossier .wp-block-table table,
  #dr-zt-dossier .wp-block-table tbody,
  #dr-zt-dossier .wp-block-table tr,
  #dr-zt-dossier .wp-block-table td {
    display: block;
    width: 100%;
  }

  #dr-zt-dossier .wp-block-table table {
    position: relative;
  }

  #dr-zt-dossier .wp-block-table thead {
    position: absolute;
    top: 0;
    left: 0;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }

  #dr-zt-dossier .wp-block-table thead tr,
  #dr-zt-dossier .wp-block-table thead th {
    display: block;
    width: 1px;
    overflow: hidden;
  }

  #dr-zt-dossier .wp-block-table tr {
    border-bottom: 1px solid var(--ld-line-2);
  }

  #dr-zt-dossier .wp-block-table tbody tr:last-child {
    border-bottom: 0;
  }

  #dr-zt-dossier .wp-block-table td {
    padding: 4px 16px 10px;
    border-bottom: 0;
  }

  #dr-zt-dossier .wp-block-table td:first-child {
    padding-top: 14px;
    font-family: var(--ld-font-display);
    font-size: 1.05rem;
  }

  #dr-zt-dossier .wp-block-table td:last-child {
    padding-bottom: 16px;
  }

  #dr-zt-dossier .wp-block-table td:not(:first-child)::before {
    display: block;
    margin-bottom: 2px;
    color: var(--ld-muted);
    font-family: var(--ld-font-mono);
    font-size: 0.68rem;
    font-style: normal;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  #dr-zt-dossier .dr-ld-thennow td:nth-child(2)::before { content: "April 2026 article"; }
  #dr-zt-dossier .dr-ld-thennow td:nth-child(3)::before { content: "October 2026 dossier"; }
}

/* ---------------------------------------------------------------------------
   8. Trust Decision Engine
   --------------------------------------------------------------------------- */

#dr-zt-dossier .dr-zt-engine {
  display: grid;
  gap: 18px;
  margin: 1.8em 0 1.6em;
  padding: clamp(16px, 3vw, 32px);
  border: 1px solid var(--ld-line-2);
  border-radius: var(--ld-radius-lg);
  background: var(--ld-surface);
  box-shadow: var(--ld-shadow);
}

#dr-zt-dossier .dr-zt-engine__phase {
  display: grid;
  gap: 12px;
}

#dr-zt-dossier .dr-zt-engine__phase-label {
  margin: 0;
  color: var(--ld-ink-2);
  font-size: 0.92rem;
  line-height: 1.5;
}

#dr-zt-dossier .dr-zt-engine__phase-label span {
  display: inline-block;
  margin-right: 8px;
  color: var(--ld-signal);
  font-family: var(--ld-font-mono);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

#dr-zt-dossier .dr-zt-engine__phase--after .dr-zt-engine__phase-label span {
  color: var(--ld-gold);
}

#dr-zt-dossier .dr-zt-engine__stages {
  position: relative;
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#dr-zt-dossier .dr-zt-engine__stage {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 12px;
  align-content: start;
  margin: 0;
  padding: 12px 14px;
  border: 1px solid var(--ld-line);
  border-left: 3px solid var(--ld-signal);
  border-radius: 10px;
  background: var(--ld-bg);
}

#dr-zt-dossier .dr-zt-engine__phase--after .dr-zt-engine__stage {
  border-left-color: var(--ld-gold);
}

#dr-zt-dossier .dr-zt-engine__num {
  grid-row: span 2;
  color: var(--ld-signal);
  font-family: var(--ld-font-mono);
  font-size: 0.8rem;
  font-weight: 500;
  line-height: 1.9;
}

#dr-zt-dossier .dr-zt-engine__phase--after .dr-zt-engine__num {
  color: var(--ld-gold);
}

#dr-zt-dossier .dr-zt-engine__stage strong {
  color: var(--ld-ink);
  font-size: 1rem;
  line-height: 1.45;
}

#dr-zt-dossier .dr-zt-engine__stage strong + span {
  color: var(--ld-ink-2);
  font-size: 0.92rem;
  line-height: 1.5;
}

#dr-zt-dossier .dr-zt-engine__phase--after {
  padding: 14px;
  border: 1.5px dashed var(--ld-gold);
  border-radius: var(--ld-radius);
  background: var(--ld-gold-wash);
}

#dr-zt-dossier .dr-zt-engine__loop {
  margin: 0;
  color: var(--ld-gold);
  font-family: var(--ld-font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  line-height: 1.5;
}

#dr-zt-dossier .dr-zt-engine__loop span {
  margin-right: 4px;
  font-size: 1rem;
}

#dr-zt-dossier .dr-zt-engine__outcomes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#dr-zt-dossier .dr-zt-outcome {
  --ld-outcome: var(--ld-allow);
  display: grid;
  gap: 2px;
  margin: 0;
  padding: 10px 12px;
  border: 1px solid var(--ld-line);
  border-top: 3px solid var(--ld-outcome);
  border-radius: 10px;
  background: var(--ld-surface);
}

#dr-zt-dossier .dr-zt-outcome--challenge { --ld-outcome: var(--ld-challenge); }
#dr-zt-dossier .dr-zt-outcome--restrict { --ld-outcome: var(--ld-restrict); }
#dr-zt-dossier .dr-zt-outcome--deny { --ld-outcome: var(--ld-deny); }

#dr-zt-dossier .dr-zt-engine__outcomes strong {
  color: var(--ld-outcome);
  font-family: var(--ld-font-mono);
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

#dr-zt-dossier .dr-zt-engine__outcomes span {
  color: var(--ld-ink-2);
  font-size: 0.9rem;
  line-height: 1.45;
}

#dr-zt-dossier .dr-zt-engine figcaption {
  color: var(--ld-muted);
  font-family: var(--ld-font-mono);
  font-size: 0.74rem;
  letter-spacing: 0.04em;
  line-height: 1.6;
}

@container dr-zt (min-width: 760px) {
  #dr-zt-dossier .dr-zt-engine__stages {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px 22px;
  }

  /* Flow arrows between stages in the same row. Decorative only. */
  #dr-zt-dossier .dr-zt-engine__stage:not(:nth-child(3n))::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -18px;
    width: 14px;
    height: 2px;
    background: currentColor;
    color: var(--ld-line-2);
  }

  #dr-zt-dossier .dr-zt-engine__stages > .dr-zt-engine__stage:last-child::after {
    display: none;
  }

  #dr-zt-dossier .dr-zt-engine__outcomes {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* ---------------------------------------------------------------------------
   9. Five questions and the Trust Object Map
   --------------------------------------------------------------------------- */

#dr-zt-dossier ol.dr-ld-questions,
#dr-zt-dossier ol.dr-ld-agent-questions {
  padding: 0;
  list-style: none;
  counter-reset: dr-ld-q;
}

#dr-zt-dossier ol.dr-ld-agent-questions {
  counter-reset: dr-ld-q 5;
}

#dr-zt-dossier .dr-ld-section > ol.dr-ld-questions > li,
#dr-zt-dossier .dr-ld-section > ol.dr-ld-agent-questions > li {
  counter-increment: dr-ld-q;
  display: flex;
  align-items: baseline;
  gap: 14px;
  margin: 0;
  padding: 6px 0;
  color: var(--ld-ink);
  font-family: var(--ld-font-display);
  font-size: 1.12rem;
  font-weight: 600;
  line-height: 1.4;
}

#dr-zt-dossier ol.dr-ld-questions > li::before,
#dr-zt-dossier ol.dr-ld-agent-questions > li::before {
  content: counter(dr-ld-q, decimal-leading-zero);
  content: counter(dr-ld-q, decimal-leading-zero) / "";
  flex: none;
  color: var(--ld-signal);
  font-family: var(--ld-font-mono);
  font-size: 0.78rem;
  font-weight: 500;
}

#dr-zt-dossier .dr-zt-objects {
  display: grid;
  gap: 20px;
  margin: 1.8em 0 1.6em;
}

#dr-zt-dossier .dr-zt-chains {
  display: grid;
  gap: 14px;
  padding: clamp(14px, 2.4vw, 22px);
  border: 1px solid var(--ld-line-2);
  border-radius: var(--ld-radius);
  background: var(--ld-surface);
}

#dr-zt-dossier .dr-zt-chain__title {
  margin: 0 0 8px;
  color: var(--ld-muted);
  font-family: var(--ld-font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

#dr-zt-dossier .dr-zt-chain__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#dr-zt-dossier .dr-zt-chain__list > li {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: 0;
}

#dr-zt-dossier .dr-zt-chain__obj {
  padding: 4px 10px;
  border: 1px solid var(--ld-signal);
  border-radius: 999px;
  background: var(--ld-signal-wash);
  color: var(--ld-ink);
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.4;
}

#dr-zt-dossier .dr-zt-chain__obj--factory {
  border-color: var(--ld-attack);
  background: var(--ld-attack-wash);
}

#dr-zt-dossier .dr-zt-chain__obj--emerging {
  border-color: var(--ld-gold);
  border-style: dashed;
  background: var(--ld-gold-wash);
}

#dr-zt-dossier .dr-zt-chain__rel {
  color: var(--ld-muted);
  font-family: var(--ld-font-mono);
  font-size: 0.74rem;
  line-height: 1.4;
}

#dr-zt-dossier .dr-zt-chain__rel::after {
  content: " \2192";
  content: " \2192" / "";
  color: var(--ld-signal);
}

#dr-zt-dossier .dr-zt-objects__grid {
  display: grid;
  align-items: start;
  gap: 12px;
}

#dr-zt-dossier .dr-zt-object {
  display: grid;
  align-content: start;
  gap: 6px;
  margin: 0;
  padding: 16px 16px 14px;
  border: 1px solid var(--ld-line);
  border-top: 3px solid var(--ld-signal);
  border-radius: 12px;
  background: var(--ld-surface);
}

#dr-zt-dossier .dr-zt-object--transit { border-top-color: var(--ld-signal-2); }
#dr-zt-dossier .dr-zt-object--emerging { border-top-color: var(--ld-gold); border-top-style: dashed; }
#dr-zt-dossier .dr-zt-object--factory { border-top-color: var(--ld-attack); background: linear-gradient(180deg, var(--ld-attack-wash), transparent 40%), var(--ld-surface); }

#dr-zt-dossier .dr-zt-object__role {
  margin: 0;
  color: var(--ld-muted);
  font-family: var(--ld-font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  line-height: 1.6;
  text-transform: uppercase;
}

#dr-zt-dossier .dr-zt-object__role .dr-ld-chip {
  margin-left: 6px;
  font-size: 0.62rem;
}

#dr-zt-dossier .dr-zt-object h3 {
  margin: 0 0 4px;
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1.25;
}

#dr-zt-dossier .dr-zt-object .dr-zt-object__weak {
  margin: 0;
  color: var(--ld-ink);
  font-size: 0.95rem;
  line-height: 1.5;
}

#dr-zt-dossier .dr-zt-object__answers {
  margin: 4px 0 0;
}

#dr-zt-dossier .dr-zt-object__answers > summary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 6px 0;
  color: var(--ld-signal);
  font-family: var(--ld-font-mono);
  font-size: 0.74rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  list-style: none;
  cursor: pointer;
}

#dr-zt-dossier .dr-zt-object__answers > summary::-webkit-details-marker {
  display: none;
}

#dr-zt-dossier .dr-zt-object__answers > summary::before {
  content: "+";
  content: "+" / "";
  display: inline-grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-size: 0.9rem;
  line-height: 1;
}

#dr-zt-dossier .dr-zt-object__answers[open] > summary::before {
  content: "\2212";
  content: "\2212" / "";
}

#dr-zt-dossier .dr-zt-object dl {
  display: grid;
  gap: 8px;
  margin: 0;
}

#dr-zt-dossier .dr-zt-object dl > div {
  padding-top: 8px;
  border-top: 1px solid var(--ld-line);
}

#dr-zt-dossier .dr-zt-object dt {
  color: var(--ld-signal);
  font-family: var(--ld-font-mono);
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.5;
  text-transform: uppercase;
}

#dr-zt-dossier .dr-zt-object dd {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.55;
}

@container dr-zt (min-width: 640px) {
  #dr-zt-dossier .dr-zt-chains {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #dr-zt-dossier .dr-zt-objects__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@container dr-zt (min-width: 940px) {
  #dr-zt-dossier .dr-zt-objects__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* ---------------------------------------------------------------------------
   10. Attack path and defense path
   --------------------------------------------------------------------------- */

#dr-zt-dossier .dr-zt-paths {
  margin: 1.8em 0 1.6em;
  padding: clamp(14px, 2.6vw, 26px);
  border: 1px solid var(--ld-line-2);
  border-radius: var(--ld-radius-lg);
  background: var(--ld-surface);
  box-shadow: var(--ld-shadow);
}

#dr-zt-dossier .dr-zt-paths__toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 16px;
}

#dr-zt-dossier .dr-zt-paths__toolbar[hidden] {
  display: none;
}

#dr-zt-dossier .dr-zt-paths__btn {
  min-height: 44px;
  padding: 8px 16px;
  border: 1px solid var(--ld-line-2);
  border-radius: 999px;
  background: var(--ld-bg);
  color: var(--ld-ink);
  font-family: var(--ld-font-mono);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.3;
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

#dr-zt-dossier .dr-zt-paths__btn[aria-pressed="true"] {
  border-color: var(--ld-ink);
  background: var(--ld-ink);
  color: var(--ld-bg);
}

#dr-zt-dossier .dr-zt-paths__btn[data-view="attack"][aria-pressed="true"] {
  border-color: var(--ld-attack);
  background: var(--ld-attack);
  color: var(--ld-surface);
}

#dr-zt-dossier .dr-zt-paths__btn[data-view="defense"][aria-pressed="true"] {
  border-color: var(--ld-signal);
  background: var(--ld-signal);
  color: var(--ld-surface);
}

#dr-zt-dossier .dr-zt-paths__head {
  display: none;
}

#dr-zt-dossier .dr-zt-paths__rows {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#dr-zt-dossier .dr-zt-paths__row {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0 0 12px;
  border-bottom: 1px solid var(--ld-line);
}

#dr-zt-dossier .dr-zt-paths__row:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

#dr-zt-dossier .dr-zt-paths__stage {
  margin: 0;
  color: var(--ld-ink);
  font-family: var(--ld-font-display);
  font-size: 1.08rem;
  font-weight: 700;
  line-height: 1.35;
}

#dr-zt-dossier .dr-zt-paths__cell {
  padding: 10px 12px;
  border: 1px solid var(--ld-line);
  border-left-width: 3px;
  border-radius: 8px;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}

#dr-zt-dossier .dr-zt-paths__cell--attack {
  border-left-color: var(--ld-attack);
  background: var(--ld-attack-wash);
}

#dr-zt-dossier .dr-zt-paths__cell--defense {
  border-left-color: var(--ld-signal);
  background: var(--ld-signal-wash);
}

#dr-zt-dossier .dr-zt-paths__cell p {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.55;
}

#dr-zt-dossier .dr-zt-paths__cell p.dr-zt-paths__side {
  margin-bottom: 2px;
  font-family: var(--ld-font-mono);
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  line-height: 1.5;
  text-transform: uppercase;
}

#dr-zt-dossier .dr-zt-paths__cell--attack .dr-zt-paths__side { color: var(--ld-attack); }
#dr-zt-dossier .dr-zt-paths__cell--defense .dr-zt-paths__side { color: var(--ld-signal); }

#dr-zt-dossier .dr-zt-paths__cell p.dr-zt-paths__limit {
  margin-top: 8px;
  padding-top: 6px;
  border-top: 1px dashed var(--ld-line-2);
  color: var(--ld-ink-2);
  font-size: 0.86rem;
  line-height: 1.5;
}

#dr-zt-dossier .dr-zt-paths__limit > span {
  margin-right: 6px;
  color: var(--ld-attack);
  font-family: var(--ld-font-mono);
  font-size: 0.66rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* The last row sits outside the identity chain: no identity control sees it. */
#dr-zt-dossier .dr-zt-paths__row--outside {
  margin-top: 6px;
  padding-top: 14px;
  border-top: 1px dashed var(--ld-line-2);
}

#dr-zt-dossier .dr-zt-paths__row--outside .dr-zt-paths__stage {
  color: var(--ld-attack);
}

/* Emphasis states. The other path stays readable at full text contrast. */
#dr-zt-dossier .dr-zt-paths[data-view="attack"] .dr-zt-paths__cell--defense,
#dr-zt-dossier .dr-zt-paths[data-view="defense"] .dr-zt-paths__cell--attack {
  border-color: var(--ld-line);
  border-left-color: var(--ld-line-2);
  background: transparent;
}

#dr-zt-dossier .dr-zt-paths[data-view="attack"] .dr-zt-paths__cell--attack {
  border-color: var(--ld-attack);
  box-shadow: inset 0 0 0 1px var(--ld-attack);
}

#dr-zt-dossier .dr-zt-paths[data-view="defense"] .dr-zt-paths__cell--defense {
  border-color: var(--ld-signal);
  box-shadow: inset 0 0 0 1px var(--ld-signal);
}

@container dr-zt (min-width: 760px) {
  #dr-zt-dossier .dr-zt-paths__head {
    display: grid;
    grid-template-columns: 9.5rem minmax(0, 1fr) minmax(0, 1fr);
    gap: 12px;
    padding: 0 0 8px;
    border-bottom: 1px solid var(--ld-line-2);
    margin-bottom: 10px;
    color: var(--ld-muted);
    font-family: var(--ld-font-mono);
    font-size: 0.72rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
  }

  #dr-zt-dossier .dr-zt-paths__row {
    grid-template-columns: 9.5rem minmax(0, 1fr) minmax(0, 1fr);
    gap: 12px;
    align-items: stretch;
  }

  #dr-zt-dossier .dr-zt-paths__stage {
    align-self: center;
  }

  #dr-zt-dossier .dr-zt-paths__cell p.dr-zt-paths__side {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }

  #dr-zt-dossier .dr-zt-paths__cell--attack {
    position: relative;
  }

  /* A short connector from the attack move to the control that breaks it. */
  #dr-zt-dossier .dr-zt-paths__cell--attack::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -13px;
    width: 12px;
    height: 2px;
    background: var(--ld-line-2);
  }
}

/* ---------------------------------------------------------------------------
   11. Trust Decision Simulator
   --------------------------------------------------------------------------- */

#dr-zt-dossier .dr-zt-sim {
  display: grid;
  gap: 18px;
  margin: 1.8em 0 0;
  padding: clamp(14px, 2.8vw, 30px);
  border: 1px solid var(--ld-line-2);
  border-radius: var(--ld-radius-lg);
  background: var(--ld-surface);
  box-shadow: var(--ld-shadow);
}

#dr-zt-dossier .dr-zt-sim__form {
  display: grid;
  gap: 14px;
  margin: 0;
}

#dr-zt-dossier .dr-zt-sim__group {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

#dr-zt-dossier .dr-zt-sim__group legend {
  margin: 0 0 8px;
  padding: 0;
  color: var(--ld-ink);
  font-family: var(--ld-font-mono);
  font-size: 0.74rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

#dr-zt-dossier .dr-zt-sim__option {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-height: 44px;
  margin: 0 0 6px;
  padding: 9px 12px;
  border: 1px solid var(--ld-line);
  border-radius: 10px;
  background: var(--ld-bg);
  cursor: pointer;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

#dr-zt-dossier .dr-zt-sim__option:hover {
  border-color: var(--ld-line-2);
}

#dr-zt-dossier .dr-zt-sim__option:has(input:checked) {
  border-color: var(--ld-signal);
  background: var(--ld-signal-wash);
  box-shadow: inset 3px 0 0 var(--ld-signal);
}

#dr-zt-dossier .dr-zt-sim__option:has(input:focus-visible) {
  outline: 3px solid var(--ld-signal-2);
  outline-offset: 2px;
}

#dr-zt-dossier .dr-zt-sim__option input {
  flex: none;
  width: 18px;
  height: 18px;
  margin: 3px 0 0;
  accent-color: var(--ld-signal);
}

#dr-zt-dossier .dr-zt-sim__option > span {
  display: grid;
  gap: 1px;
}

#dr-zt-dossier .dr-zt-sim__name {
  color: var(--ld-ink);
  font-size: 0.96rem;
  font-weight: 700;
  line-height: 1.35;
}

#dr-zt-dossier .dr-zt-sim__hint {
  color: var(--ld-muted);
  font-size: 0.84rem;
  line-height: 1.4;
}

#dr-zt-dossier .dr-zt-sim__actions {
  margin: 4px 0 0;
}

#dr-zt-dossier .dr-zt-sim__reset {
  min-height: 44px;
  padding: 8px 16px;
  border: 1px solid var(--ld-line-2);
  border-radius: 999px;
  background: transparent;
  color: var(--ld-ink);
  font-family: var(--ld-font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  cursor: pointer;
  transition: border-color 0.15s ease;
}

#dr-zt-dossier .dr-zt-sim__reset:hover {
  border-color: var(--ld-ink);
}

#dr-zt-dossier .dr-zt-sim__panel {
  display: grid;
  align-content: start;
  gap: 12px;
}

#dr-zt-dossier .dr-zt-sim__nojs {
  margin: 0;
  padding: 10px 12px;
  border: 1px dashed var(--ld-line-2);
  border-radius: 10px;
  color: var(--ld-ink-2);
  font-size: 0.9rem;
  line-height: 1.55;
}

#dr-zt-dossier .dr-zt-sim__nojs[hidden] {
  display: none;
}

#dr-zt-dossier .dr-zt-sim__result {
  --ld-outcome: var(--ld-challenge);
  display: grid;
  gap: 10px;
  padding: clamp(14px, 2.4vw, 22px);
  border: 1px solid var(--ld-line-2);
  border-top: 5px solid var(--ld-outcome);
  border-radius: var(--ld-radius);
  background: var(--ld-bg);
}

#dr-zt-dossier .dr-zt-sim__result[data-outcome="allow"] { --ld-outcome: var(--ld-allow); }
#dr-zt-dossier .dr-zt-sim__result[data-outcome="restrict"] { --ld-outcome: var(--ld-restrict); }
#dr-zt-dossier .dr-zt-sim__result[data-outcome="deny"] { --ld-outcome: var(--ld-deny); }

#dr-zt-dossier .dr-zt-sim__result p {
  margin: 0;
}

#dr-zt-dossier .dr-zt-sim__label {
  color: var(--ld-muted);
  font-family: var(--ld-font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

#dr-zt-dossier .dr-zt-sim__result .dr-zt-sim__outcome {
  color: var(--ld-outcome);
  font-family: var(--ld-font-display);
  font-size: clamp(1.6rem, 1.3rem + 1.2vw, 2.1rem);
  font-weight: 700;
  line-height: 1.1;
}

#dr-zt-dossier .dr-zt-sim__result .dr-zt-sim__subhead {
  margin-top: 6px;
  color: var(--ld-muted);
  font-family: var(--ld-font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

#dr-zt-dossier .dr-zt-sim__result [hidden] {
  display: none;
}

#dr-zt-dossier .dr-zt-sim__scale {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#dr-zt-dossier .dr-zt-sim__scale li {
  margin: 0;
  padding: 4px 2px 0;
  border-top: 4px solid var(--ld-line);
  color: var(--ld-muted);
  font-family: var(--ld-font-mono);
  font-size: 0.64rem;
  letter-spacing: 0.06em;
  line-height: 1.4;
  text-align: center;
  text-transform: uppercase;
}

@container dr-zt (max-width: 420px) {
  #dr-zt-dossier .dr-zt-sim__scale li {
    font-size: 0.56rem;
    letter-spacing: 0;
  }
}

#dr-zt-dossier .dr-zt-sim__scale li.is-current {
  border-top-color: var(--ld-outcome);
  color: var(--ld-ink);
  font-weight: 700;
}

#dr-zt-dossier .dr-zt-sim__result .dr-zt-sim__meaning {
  color: var(--ld-ink);
  font-size: 0.98rem;
  font-weight: 600;
  line-height: 1.5;
}

#dr-zt-dossier .dr-zt-sim__why {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#dr-zt-dossier .dr-zt-sim__why li {
  display: grid;
  gap: 2px;
  margin: 0;
  padding: 0 0 8px;
  border-bottom: 1px dotted var(--ld-line-2);
}

#dr-zt-dossier .dr-zt-sim__signal {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: var(--ld-ink);
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.4;
}

#dr-zt-dossier .dr-zt-sim__pts {
  flex: none;
  color: var(--ld-ink-2);
  font-family: var(--ld-font-mono);
  font-size: 0.8rem;
  font-weight: 500;
}

#dr-zt-dossier .dr-zt-sim__reason {
  color: var(--ld-ink-2);
  font-size: 0.9rem;
  line-height: 1.5;
}

#dr-zt-dossier .dr-zt-sim__result .dr-zt-sim__calm,
#dr-zt-dossier .dr-zt-sim__result .dr-zt-sim__band,
#dr-zt-dossier .dr-zt-sim__result .dr-zt-sim__rule {
  color: var(--ld-ink-2);
  font-size: 0.86rem;
  line-height: 1.5;
}

#dr-zt-dossier .dr-zt-sim__band strong {
  font-family: var(--ld-font-mono);
  font-weight: 500;
}

#dr-zt-dossier .dr-zt-sim__next {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-left: 1.1rem;
}

#dr-zt-dossier .dr-zt-sim__next li {
  margin: 0;
  color: var(--ld-ink);
  font-size: 0.92rem;
  line-height: 1.5;
}

#dr-zt-dossier .dr-zt-sim__result .dr-zt-sim__rule {
  padding-top: 8px;
  border-top: 1px solid var(--ld-line);
}

#dr-zt-dossier .dr-zt-sim__live {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

#dr-zt-dossier .dr-zt-sim__disclaimer {
  margin: 0;
  color: var(--ld-ink-2);
  font-size: 0.84rem;
  font-style: italic;
  line-height: 1.5;
}

#dr-zt-dossier .dr-zt-sim__model {
  padding-top: 18px;
  border-top: 1px solid var(--ld-line-2);
}

#dr-zt-dossier .dr-zt-sim__model .dr-zt-sim__model-title {
  margin: 0 0 12px;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.3;
}

#dr-zt-dossier .dr-zt-sim__model-grid {
  display: grid;
  gap: 10px;
}

#dr-zt-dossier .dr-zt-sim__model-card {
  padding: 12px 14px;
  border: 1px solid var(--ld-line);
  border-radius: 10px;
  background: var(--ld-bg);
}

#dr-zt-dossier .dr-zt-sim__step {
  margin: 0 0 6px;
  color: var(--ld-signal);
  font-family: var(--ld-font-mono);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

#dr-zt-dossier .dr-zt-sim__model-card ul {
  margin: 0;
  padding-left: 1.1rem;
}

#dr-zt-dossier .dr-zt-sim__model-card li {
  margin: 0 0 4px;
  font-size: 0.88rem;
  line-height: 1.5;
}

#dr-zt-dossier .dr-zt-sim__outcomes {
  display: grid;
  gap: 8px;
  margin: 12px 0 0;
}

#dr-zt-dossier .dr-zt-sim__outcomes dt {
  color: var(--ld-outcome);
  font-family: var(--ld-font-mono);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

#dr-zt-dossier .dr-zt-sim__outcomes dd {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.5;
}

@container dr-zt (min-width: 560px) {
  #dr-zt-dossier .dr-zt-sim__group {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
  }

  #dr-zt-dossier .dr-zt-sim__group legend {
    grid-column: 1 / -1;
  }

  #dr-zt-dossier .dr-zt-sim__option {
    margin: 0;
  }
}

@container dr-zt (min-width: 900px) {
  #dr-zt-dossier .dr-zt-sim {
    grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
    column-gap: 24px;
  }

  #dr-zt-dossier .dr-zt-sim__panel {
    align-self: start;
  }

  #dr-zt-dossier .dr-zt-sim__model {
    grid-column: 1 / -1;
  }

  #dr-zt-dossier .dr-zt-sim__model-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #dr-zt-dossier .dr-zt-sim__outcomes {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* ---------------------------------------------------------------------------
   12. Reflection (core list): four changes of method
   --------------------------------------------------------------------------- */

#dr-zt-dossier .dr-ld-section > ul.dr-ld-reflection {
  padding: 0;
  list-style: none;
}

#dr-zt-dossier .dr-ld-section > ul.dr-ld-reflection > li {
  margin: 0;
  padding: 14px 0 14px 18px;
  border-left: 3px solid var(--ld-gold);
}

#dr-zt-dossier .dr-ld-section > ul.dr-ld-reflection > li + li {
  margin-top: 10px;
}

#dr-zt-dossier ul.dr-ld-reflection > li > strong:first-child {
  display: block;
  margin-bottom: 2px;
  font-family: var(--ld-font-display);
  font-size: 1.08rem;
  line-height: 1.4;
}

/* ---------------------------------------------------------------------------
   13. Falsifiability section accent
   --------------------------------------------------------------------------- */

#dr-zt-dossier .dr-ld-section--falsify > h3 {
  padding-left: 14px;
  border-left: 3px solid var(--ld-attack);
}

/* ---------------------------------------------------------------------------
   14. Evidence ledger
   --------------------------------------------------------------------------- */

#dr-zt-dossier .dr-ld-ledger time,
#dr-zt-dossier .dr-ld-record time {
  color: inherit;
  font: inherit;
  letter-spacing: normal;
  text-transform: none;
}

#dr-zt-dossier .dr-ld-ledger {
  display: grid;
  gap: 10px;
  margin: 1.4em 0 0;
  padding: 0;
  list-style: none;
}

#dr-zt-dossier .dr-ld-ledger__entry {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 14px 16px;
  border: 1px solid var(--ld-line);
  border-left: 3px solid var(--ld-signal);
  border-radius: 10px;
  background: var(--ld-surface);
  scroll-margin-top: 96px;
}

#dr-zt-dossier .dr-ld-ledger__entry:target {
  border-color: var(--ld-signal);
  box-shadow: 0 0 0 3px var(--ld-signal-wash);
}

#dr-zt-dossier .dr-ld-ledger__claim {
  margin: 0;
  color: var(--ld-ink);
  font-size: 0.98rem;
  font-weight: 600;
  line-height: 1.5;
}

#dr-zt-dossier .dr-ld-ledger__id {
  display: inline-block;
  margin-right: 8px;
  padding: 0 7px;
  border-radius: 6px;
  background: var(--ld-ink);
  color: var(--ld-bg);
  font-family: var(--ld-font-mono);
  font-size: 0.74rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.7;
  vertical-align: 0.1em;
}

#dr-zt-dossier .dr-ld-ledger__meta {
  display: grid;
  gap: 8px;
  margin: 0;
}

#dr-zt-dossier .dr-ld-ledger__meta dt {
  color: var(--ld-muted);
  font-family: var(--ld-font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  line-height: 1.5;
  text-transform: uppercase;
}

#dr-zt-dossier .dr-ld-ledger__meta dd {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.55;
}

@container dr-zt (min-width: 760px) {
  #dr-zt-dossier .dr-ld-ledger__entry {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 2fr);
    gap: 18px;
  }

  #dr-zt-dossier .dr-ld-ledger__meta {
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.7fr) minmax(0, 0.7fr);
    gap: 10px 16px;
  }

  #dr-zt-dossier .dr-ld-ledger__meta > div:nth-child(4),
  #dr-zt-dossier .dr-ld-ledger__meta > div:nth-child(5) {
    grid-column: 1 / -1;
  }
}

/* ---------------------------------------------------------------------------
   15. Key takeaways
   --------------------------------------------------------------------------- */

#dr-zt-dossier ol.dr-ld-takeaways {
  display: grid;
  gap: 10px;
  padding: 0;
  list-style: none;
  counter-reset: dr-ld-t;
}

#dr-zt-dossier ol.dr-ld-takeaways > li {
  counter-increment: dr-ld-t;
  position: relative;
  margin: 0;
  padding: 12px 14px 12px 54px;
  border-bottom: 1px solid var(--ld-line);
  color: var(--ld-ink);
}

#dr-zt-dossier ol.dr-ld-takeaways > li::before {
  content: counter(dr-ld-t);
  content: counter(dr-ld-t) / "";
  position: absolute;
  top: 6px;
  left: 6px;
  color: var(--ld-signal);
  font-family: var(--ld-font-display);
  font-size: 1.9rem;
  font-weight: 700;
  line-height: 1.2;
}

/* ---------------------------------------------------------------------------
   16. Research record
   --------------------------------------------------------------------------- */

#dr-zt-dossier .dr-ld-record {
  margin: 1.2em 0 0;
  padding: 0 0 clamp(16px, 2.6vw, 24px);
  border: 1px solid var(--ld-line-2);
  border-radius: var(--ld-radius);
  background: var(--ld-surface);
  font-family: var(--ld-font-mono);
  overflow: hidden;
}

#dr-zt-dossier .dr-ld-record__title {
  margin: 0 0 6px;
  padding: 10px clamp(14px, 2.6vw, 24px);
  background: var(--ld-ink);
  color: var(--ld-bg);
  font-family: var(--ld-font-mono);
  font-size: 0.74rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

#dr-zt-dossier .dr-ld-record__list {
  display: grid;
  margin: 0;
  padding: 0 clamp(14px, 2.6vw, 24px);
}

#dr-zt-dossier .dr-ld-record__list > div {
  display: grid;
  gap: 2px;
  padding: 10px 0;
  border-bottom: 1px dashed var(--ld-line-2);
}

#dr-zt-dossier .dr-ld-record__list dt {
  color: var(--ld-signal);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

#dr-zt-dossier .dr-ld-record__list dd {
  margin: 0;
  color: var(--ld-ink);
  font-family: var(--ld-font-ui);
  font-size: 0.94rem;
  line-height: 1.55;
}

#dr-zt-dossier .dr-ld-record__archive {
  margin: 16px clamp(14px, 2.6vw, 24px) 0;
}

#dr-zt-dossier .dr-ld-record__archive a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 8px 18px;
  border: 1px solid var(--ld-gold);
  border-radius: 999px;
  color: var(--ld-gold);
  font-family: var(--ld-font-mono);
  font-size: 0.82rem;
  letter-spacing: 0.04em;
  text-decoration: none;
}

#dr-zt-dossier .dr-ld-record__archive a:hover {
  background: var(--ld-gold-wash);
}

@container dr-zt (min-width: 640px) {
  #dr-zt-dossier .dr-ld-record__list > div {
    grid-template-columns: 13rem minmax(0, 1fr);
    gap: 16px;
  }
}

/* ---------------------------------------------------------------------------
   17. Masthead wide layout
   --------------------------------------------------------------------------- */

@container dr-zt (min-width: 820px) {
  #dr-zt-dossier .dr-ld-masthead {
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
    align-items: start;
  }

  #dr-zt-dossier .dr-ld-legend {
    grid-column: 1 / -1;
  }

  #dr-zt-dossier .dr-ld-legend__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px 24px;
  }
}

/* ---------------------------------------------------------------------------
   18. Motion and print
   --------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
  #dr-zt-dossier *,
  #dr-zt-dossier *::before,
  #dr-zt-dossier *::after {
    transition: none !important;
    animation: none !important;
  }
}

@media print {
  #dr-zt-dossier {
    border: 0;
    background: none;
    box-shadow: none;
  }

  #dr-zt-dossier .dr-zt-paths__toolbar,
  #dr-zt-dossier .dr-zt-sim__form,
  #dr-zt-dossier .dr-zt-sim__reset {
    display: none;
  }
}

/* ---------------------------------------------------------------------------
   19. Simulator decision dock (narrow viewports only)
   The dossier JS appends #dr-zt-dock to <body> because two shared conditions
   rule out sticky or fixed positioning inside the article:
     - dr-single-post.css sets overflow-x: hidden on html and body, which
       turns body into a non-scrolling scroll container, so sticky never sticks;
     - the dossier root is a size container, which makes it the containing
       block for fixed descendants.
   It mirrors the result panel, is aria-hidden, and shows only while the
   simulator form is on screen and the result panel is not.
   --------------------------------------------------------------------------- */

#dr-zt-dock {
  --ld-dock-bg: #ffffff;
  --ld-dock-ink: #13202a;
  --ld-dock-muted: #4f5d68;
  --ld-dock-line: rgba(19, 32, 42, 0.24);
  --ld-dock-outcome: #7a5714;
  position: fixed;
  right: 12px;
  bottom: 12px;
  left: 12px;
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  max-width: 520px;
  margin-inline: auto;
  padding: 10px 14px;
  border: 1px solid var(--ld-dock-line);
  border-left: 5px solid var(--ld-dock-outcome);
  border-radius: 10px;
  background: var(--ld-dock-bg);
  box-shadow: 0 12px 32px rgba(19, 32, 42, 0.18);
  color: var(--ld-dock-ink);
  font-family: var(--dr-font-ui, "Inter", system-ui, -apple-system, "Segoe UI", sans-serif);
  font-size: 0.9rem;
  line-height: 1.3;
  pointer-events: none;
}

#dr-zt-dock[hidden] {
  display: none;
}

#dr-zt-dock strong {
  color: var(--ld-dock-outcome);
  font-family: var(--dr-font-display, "Playfair Display", Georgia, serif);
  font-size: 1.15rem;
  font-weight: 700;
}

#dr-zt-dock span {
  color: var(--ld-dock-muted);
  font-family: var(--dr-font-mono, "DM Mono", ui-monospace, monospace);
  font-size: 0.74rem;
}

#dr-zt-dock[data-outcome="allow"] { --ld-dock-outcome: #1a6a45; }
#dr-zt-dock[data-outcome="restrict"] { --ld-dock-outcome: #93460f; }
#dr-zt-dock[data-outcome="deny"] { --ld-dock-outcome: #9e2c3a; }

html[data-theme="dark"] #dr-zt-dock,
body.theme-dark #dr-zt-dock {
  --ld-dock-bg: #0d1b28;
  --ld-dock-ink: #eaf2f7;
  --ld-dock-muted: #9db0bd;
  --ld-dock-line: rgba(124, 234, 255, 0.26);
  --ld-dock-outcome: #f0c36a;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.45);
}

html[data-theme="dark"] #dr-zt-dock[data-outcome="allow"],
body.theme-dark #dr-zt-dock[data-outcome="allow"] { --ld-dock-outcome: #67d7a5; }
html[data-theme="dark"] #dr-zt-dock[data-outcome="restrict"],
body.theme-dark #dr-zt-dock[data-outcome="restrict"] { --ld-dock-outcome: #f4a874; }
html[data-theme="dark"] #dr-zt-dock[data-outcome="deny"],
body.theme-dark #dr-zt-dock[data-outcome="deny"] { --ld-dock-outcome: #ff97a5; }

html[data-theme="dark"] #dr-zt-dock[data-outcome="allow"],
body.theme-dark #dr-zt-dock[data-outcome="allow"] { --ld-dock-outcome: #67d7a5; }
html[data-theme="dark"] #dr-zt-dock[data-outcome="restrict"],
body.theme-dark #dr-zt-dock[data-outcome="restrict"] { --ld-dock-outcome: #f4a874; }
html[data-theme="dark"] #dr-zt-dock[data-outcome="deny"],
body.theme-dark #dr-zt-dock[data-outcome="deny"] { --ld-dock-outcome: #ff97a5; }

@media (min-width: 960px) {
  #dr-zt-dock {
    display: none;
  }
}

@media print {
  #dr-zt-dock {
    display: none;
  }
}
