/* FPV content variants V5
 * Central, article-scoped visual system. No article-level inline styles required.
 */
.fpv-v5 {
  --v5-ink: #0a315f;
  --v5-copy: #263b52;
  --v5-muted: #67778a;
  --v5-blue: #0669c8;
  --v5-blue-soft: #eaf4fd;
  --v5-orange: #ee7a20;
  --v5-orange-soft: #fff3e8;
  --v5-green: #2b8a59;
  --v5-green-soft: #eaf7f0;
  --v5-red: #b9473f;
  --v5-red-soft: #fff1ef;
  --v5-line: #d9e1e9;
  --v5-line-strong: #b9c7d4;
  --v5-surface: #ffffff;
  --v5-surface-alt: #f7f9fb;
  --v5-shadow: 0 18px 45px rgba(10, 49, 95, 0.08);
  --v5-radius: 3px;
  box-sizing: border-box;
  max-inline-size: 1180px;
  margin-inline: auto;
  color: var(--v5-copy);
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.65;
}

.fpv-v5 *,
.fpv-v5 *::before,
.fpv-v5 *::after { box-sizing: inherit; }
.fpv-v5 h1,
.fpv-v5 h2,
.fpv-v5 h3,
.fpv-v5 p { margin-block-start: 0; }
.fpv-v5 h1,
.fpv-v5 h2,
.fpv-v5 h3 { color: var(--v5-ink); line-height: 1.18; }
.fpv-v5 h1 { margin-block-end: 12px; font-size: clamp(28px, 3.4vw, 44px); font-weight: 750; letter-spacing: -0.035em; }
.fpv-v5 h2 { margin-block-end: 12px; font-size: clamp(24px, 2.5vw, 34px); font-weight: 740; letter-spacing: -0.025em; }
.fpv-v5 h3 { margin-block-end: 10px; font-size: 17px; font-weight: 720; }
.fpv-v5 p { margin-block-end: 16px; }
.fpv-v5 a { color: var(--v5-blue); text-underline-offset: 3px; }
.fpv-v5 img { display: block; max-inline-size: 100%; block-size: auto; }

.fpv-v5 .v5-page-head {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  margin-block-end: 30px;
}
.fpv-v5 .v5-index {
  display: grid;
  place-items: center;
  inline-size: 40px;
  block-size: 40px;
  background: var(--v5-ink);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.04em;
}
.fpv-v5 .v5-intro { max-inline-size: 850px; margin-block-end: 0; color: var(--v5-muted); }
.fpv-v5 .v5-section-label {
  display: block;
  margin-block-end: 9px;
  color: var(--v5-ink);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.065em;
  text-transform: uppercase;
}
.fpv-v5 .v5-rule { border-block-start: 1px solid var(--v5-line); }

.fpv-v5 .v5-button-row { display: flex; flex-wrap: wrap; gap: 22px; align-items: center; margin-block-start: 28px; }
.fpv-v5 .v5-button {
  display: inline-flex;
  min-block-size: 42px;
  align-items: center;
  justify-content: center;
  padding-block: 9px;
  padding-inline: 19px;
  border: 1px solid var(--v5-ink);
  border-radius: var(--v5-radius);
  background: var(--v5-ink);
  color: #fff;
  font-size: 13px;
  font-weight: 740;
  line-height: 1.2;
  text-decoration: none;
  transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
}
.fpv-v5 .v5-button:hover { border-color: var(--v5-blue); background: var(--v5-blue); transform: translateY(-1px); }
.fpv-v5 .v5-button:focus-visible,
.fpv-v5 summary:focus-visible { outline: 3px solid rgba(6, 105, 200, 0.25); outline-offset: 3px; }
.fpv-v5 .v5-text-link { font-size: 13px; font-weight: 720; text-decoration: none; }

.fpv-v5 .v5-list { margin: 0; padding-inline-start: 0; list-style: none; }
.fpv-v5 .v5-list li { position: relative; padding-block: 7px; padding-inline-start: 20px; border-block-end: 1px solid var(--v5-line); }
.fpv-v5 .v5-list li:last-child { border-block-end: 0; }
.fpv-v5 .v5-list li::before {
  position: absolute;
  inset-block-start: 16px;
  inset-inline-start: 1px;
  inline-size: 6px;
  block-size: 6px;
  border-radius: 50%;
  background: var(--v5-blue);
  content: "";
}
.fpv-v5 .v5-note {
  padding-block: 16px;
  padding-inline: 18px;
  border-inline-start: 3px solid var(--v5-blue);
  background: var(--v5-blue-soft);
  color: var(--v5-copy);
  font-size: 14px;
}
.fpv-v5 .v5-note p:last-child { margin-block-end: 0; }

.fpv-v5 .v5-media-fixture {
  display: grid;
  min-block-size: 260px;
  place-items: center;
  overflow: hidden;
  border: 1px solid var(--v5-line);
  background: #f2f5f7;
  color: #54687c;
  text-align: center;
}
.fpv-v5 .v5-media-fixture span {
  max-inline-size: 260px;
  padding-block: 12px;
  padding-inline: 18px;
  border: 1px solid var(--v5-line-strong);
  background: #fff;
  font-size: 12px;
  font-weight: 730;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}
.fpv-v5 .v5-thumb-row { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 9px; margin-block-start: 9px; }
.fpv-v5 .v5-thumb {
  display: grid;
  min-block-size: 62px;
  place-items: center;
  border: 1px solid var(--v5-line);
  background: var(--v5-surface-alt);
  color: var(--v5-muted);
  font-size: 11px;
  font-weight: 700;
}
.fpv-v5 .v5-thumb[aria-current="true"] { border: 2px solid var(--v5-blue); color: var(--v5-blue); }

.fpv-v5 .v5-table-scroll { inline-size: 100%; overflow-x: auto; border: 1px solid var(--v5-line); }
.fpv-v5 table { inline-size: 100%; border-collapse: collapse; color: var(--v5-copy); font-size: 13px; text-align: start; }
.fpv-v5 th,
.fpv-v5 td { min-inline-size: 110px; padding-block: 12px; padding-inline: 14px; border-block-end: 1px solid var(--v5-line); border-inline-end: 1px solid var(--v5-line); text-align: start; vertical-align: top; }
.fpv-v5 th:last-child,
.fpv-v5 td:last-child { border-inline-end: 0; }
.fpv-v5 thead th { background: var(--v5-ink); color: #fff; font-size: 12px; font-weight: 760; }
.fpv-v5 tbody tr:last-child td { border-block-end: 0; }

/* 01 — Identity Hold: editorial split, evidence gallery, explicit release gate. */
.fpv-v5[data-v5-family="identity-hold"] .v5-identity-layout {
  display: grid;
  grid-template-columns: minmax(230px, 0.72fr) minmax(0, 1.28fr);
  gap: 34px;
  align-items: start;
}
.fpv-v5[data-v5-family="identity-hold"] .v5-overview { padding-inline-start: 14px; border-inline-start: 2px solid var(--v5-blue); }
.fpv-v5[data-v5-family="identity-hold"] .v5-key-points { margin-block-start: 28px; }
.fpv-v5[data-v5-family="identity-hold"] .v5-media-fixture { min-block-size: 310px; }
.fpv-v5[data-v5-family="identity-hold"] .v5-note { margin-block-start: 18px; }

/* 02 — Interface Map: port rails around a central identity image. */
.fpv-v5[data-v5-family="interface-map"] .v5-interface-map {
  display: grid;
  grid-template-columns: minmax(150px, 0.78fr) minmax(280px, 1.44fr) minmax(150px, 0.78fr);
  gap: 18px;
  align-items: center;
}
.fpv-v5[data-v5-family="interface-map"] .v5-port-rail { display: grid; gap: 12px; }
.fpv-v5[data-v5-family="interface-map"] .v5-port {
  position: relative;
  min-block-size: 44px;
  padding-block: 10px;
  padding-inline: 13px;
  border: 1px solid var(--v5-line);
  background: #fff;
  color: var(--v5-copy);
  font-size: 12px;
  font-weight: 720;
}
.fpv-v5[data-v5-family="interface-map"] .v5-port::after {
  position: absolute;
  inset-block-start: 50%;
  inset-inline-end: -19px;
  inline-size: 18px;
  border-block-start: 1px dashed var(--v5-blue);
  content: "";
}
.fpv-v5[data-v5-family="interface-map"] .v5-port-rail:last-child .v5-port::after { inset-inline-end: auto; inset-inline-start: -19px; border-color: var(--v5-orange); }
.fpv-v5[data-v5-family="interface-map"] .v5-media-fixture { min-block-size: 280px; border: 0; background: #f6f8fa; }
.fpv-v5[data-v5-family="interface-map"] .v5-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 18px; margin-block: 20px; color: var(--v5-muted); font-size: 12px; }
.fpv-v5[data-v5-family="interface-map"] .v5-legend span { padding-block-start: 5px; border-block-start: 2px solid var(--v5-blue); }
.fpv-v5[data-v5-family="interface-map"] .v5-legend span:nth-child(2) { border-block-start-style: dashed; }
.fpv-v5[data-v5-family="interface-map"] .v5-legend span:nth-child(3) { border-color: var(--v5-orange); }

/* 03 — Media Chain: workflow strip, field image, component inventory. */
.fpv-v5[data-v5-family="media-chain"] .v5-chain {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-block-end: 26px;
}
.fpv-v5[data-v5-family="media-chain"] .v5-chain-step { position: relative; padding-block: 10px 14px; padding-inline: 12px; text-align: center; }
.fpv-v5[data-v5-family="media-chain"] .v5-chain-step::after {
  position: absolute;
  inset-block-start: 29px;
  inset-inline-end: -10%;
  inline-size: 20%;
  border-block-start: 1px dashed var(--v5-blue);
  content: "";
}
.fpv-v5[data-v5-family="media-chain"] .v5-chain-step:last-child::after { display: none; }
.fpv-v5[data-v5-family="media-chain"] .v5-chain-mark {
  display: grid;
  inline-size: 48px;
  block-size: 48px;
  margin-inline: auto;
  margin-block-end: 8px;
  place-items: center;
  border: 1px solid #a8cdec;
  border-radius: 50%;
  background: var(--v5-blue-soft);
  color: var(--v5-ink);
  font-size: 13px;
  font-weight: 800;
}
.fpv-v5[data-v5-family="media-chain"] .v5-chain-step:nth-child(3) .v5-chain-mark,
.fpv-v5[data-v5-family="media-chain"] .v5-chain-step:nth-child(4) .v5-chain-mark { border-color: #f2c9a9; background: var(--v5-orange-soft); }
.fpv-v5[data-v5-family="media-chain"] .v5-media-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(220px, 0.5fr); gap: 28px; align-items: stretch; }
.fpv-v5[data-v5-family="media-chain"] .v5-media-fixture { min-block-size: 300px; }
.fpv-v5[data-v5-family="media-chain"] .v5-component-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-block-start: 18px; border: 1px solid var(--v5-line); }
.fpv-v5[data-v5-family="media-chain"] .v5-component { min-block-size: 82px; padding-block: 18px; padding-inline: 10px; border-inline-end: 1px solid var(--v5-line); text-align: center; font-size: 12px; font-weight: 720; }
.fpv-v5[data-v5-family="media-chain"] .v5-component:last-child { border-inline-end: 0; }

/* 04 — Test Protocol: numbered acceptance route with log and side notes. */
.fpv-v5[data-v5-family="test-protocol"] .v5-stage-rail { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-block: 8px 28px; }
.fpv-v5[data-v5-family="test-protocol"] .v5-stage { position: relative; padding-inline: 8px; text-align: center; font-size: 12px; font-weight: 720; }
.fpv-v5[data-v5-family="test-protocol"] .v5-stage::after {
  position: absolute;
  inset-block-start: 16px;
  inset-inline-end: -18%;
  inline-size: 36%;
  border-block-start: 1px dashed #98bde0;
  content: "";
}
.fpv-v5[data-v5-family="test-protocol"] .v5-stage:last-child::after { display: none; }
.fpv-v5[data-v5-family="test-protocol"] .v5-stage b { display: grid; inline-size: 34px; block-size: 34px; margin-inline: auto; margin-block-end: 9px; place-items: center; border: 1px solid var(--v5-blue); border-radius: 50%; color: var(--v5-ink); }
.fpv-v5[data-v5-family="test-protocol"] .v5-test-layout { display: grid; grid-template-columns: minmax(0, 1fr) 240px; gap: 24px; align-items: start; }
.fpv-v5[data-v5-family="test-protocol"] .v5-test-notes { display: grid; gap: 14px; }
.fpv-v5[data-v5-family="test-protocol"] .v5-reminder { padding-block: 16px; padding-inline: 17px; border-inline-start: 3px solid var(--v5-orange); background: var(--v5-orange-soft); font-size: 13px; }
.fpv-v5[data-v5-family="test-protocol"] .v5-pass { color: var(--v5-green); font-weight: 800; }
.fpv-v5[data-v5-family="test-protocol"] .v5-review { color: #a86610; font-weight: 800; }

/* 05 — Variant Matrix: decision table is the hero, not a repeated card grid. */
.fpv-v5[data-v5-family="variant-matrix"] .v5-matrix { box-shadow: var(--v5-shadow); }
.fpv-v5[data-v5-family="variant-matrix"] .v5-matrix table { min-inline-size: 760px; }
.fpv-v5[data-v5-family="variant-matrix"] .v5-matrix th { min-inline-size: 138px; text-align: center; }
.fpv-v5[data-v5-family="variant-matrix"] .v5-matrix th:first-child,
.fpv-v5[data-v5-family="variant-matrix"] .v5-matrix td:first-child { min-inline-size: 190px; text-align: start; font-weight: 720; }
.fpv-v5[data-v5-family="variant-matrix"] .v5-matrix td { text-align: center; }
.fpv-v5[data-v5-family="variant-matrix"] .v5-yes { color: var(--v5-blue); font-weight: 850; }
.fpv-v5[data-v5-family="variant-matrix"] .v5-no { color: #8a98a7; }
.fpv-v5[data-v5-family="variant-matrix"] .v5-matrix-note { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin-block-start: 18px; background: var(--v5-line); }
.fpv-v5[data-v5-family="variant-matrix"] .v5-matrix-note div { padding-block: 17px; padding-inline: 18px; background: var(--v5-surface-alt); }

/* 06 — Compliance File: document tree, preview and contents pane. */
.fpv-v5[data-v5-family="compliance-file"] .v5-file-workbench {
  display: grid;
  grid-template-columns: minmax(120px, 0.52fr) minmax(220px, 1.4fr) minmax(140px, 0.68fr);
  min-block-size: 390px;
  border: 1px solid var(--v5-line);
  background: #fff;
}
.fpv-v5[data-v5-family="compliance-file"] .v5-file-pane { padding-block: 18px; padding-inline: 16px; border-inline-end: 1px solid var(--v5-line); background: var(--v5-surface-alt); }
.fpv-v5[data-v5-family="compliance-file"] .v5-file-list { margin: 0; padding: 0; list-style: none; }
.fpv-v5[data-v5-family="compliance-file"] .v5-file-list li { margin-inline: -16px; padding-block: 10px; padding-inline: 16px; border-block-end: 1px solid #e8edf1; font-size: 12px; font-weight: 700; }
.fpv-v5[data-v5-family="compliance-file"] .v5-file-list li[aria-current="page"] { border-inline-start: 3px solid var(--v5-blue); background: #e6f1fb; color: var(--v5-ink); }
.fpv-v5[data-v5-family="compliance-file"] .v5-document-pane { padding-block: 18px; padding-inline: 22px; }
.fpv-v5[data-v5-family="compliance-file"] .v5-document {
  min-block-size: 286px;
  padding-block: 28px;
  padding-inline: clamp(20px, 4vw, 48px);
  border: 1px solid var(--v5-line);
  background: #fff;
  box-shadow: 0 10px 25px rgba(10, 49, 95, 0.07);
}
.fpv-v5[data-v5-family="compliance-file"] .v5-document p { margin-block-end: 11px; padding-block-end: 9px; border-block-end: 1px solid #e8edf1; font-size: 13px; }
.fpv-v5[data-v5-family="compliance-file"] .v5-contents-pane { padding-block: 18px; padding-inline: 18px; }
.fpv-v5[data-v5-family="compliance-file"] .v5-contents-pane[dir="rtl"] { text-align: start; }
.fpv-v5[data-v5-family="compliance-file"] .v5-note { grid-column: 1 / -1; margin-block-start: 18px; }

/* Prototype page chrome: kept separate from article family selectors. */
.v5-prototype-shell { margin: 0; background: #f4f6f8; color: #263b52; }
.v5-showcase { max-inline-size: 1480px; margin-inline: auto; padding-block: 44px 80px; padding-inline: clamp(16px, 4vw, 52px); }
.v5-showcase-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 18px; align-items: end; margin-block-end: 34px; }
.v5-showcase-head h1 { margin: 0 0 8px; color: #0a315f; font: 760 clamp(30px, 4vw, 50px)/1.08 Inter, "Segoe UI", Arial, sans-serif; letter-spacing: -0.04em; }
.v5-showcase-head p { max-inline-size: 730px; margin: 0; color: #617287; font: 15px/1.6 Inter, "Segoe UI", Arial, sans-serif; }
.v5-showcase-key { color: #0a315f; font: 800 12px/1.4 Inter, "Segoe UI", Arial, sans-serif; letter-spacing: 0.08em; text-transform: uppercase; }
.v5-showcase-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-block-start: 1px solid #cbd5df; border-inline-start: 1px solid #cbd5df; background: #fff; }
.v5-showcase-grid > .fpv-v5 { inline-size: 100%; min-inline-size: 0; margin: 0; padding-block: 34px 38px; padding-inline: clamp(22px, 3vw, 38px); border-block-end: 1px solid #cbd5df; border-inline-end: 1px solid #cbd5df; }

@media (max-width: 1439px) {
  .v5-showcase-grid { grid-template-columns: 1fr; }
}

@media (max-width: 1023px) {
  .fpv-v5[data-v5-family="interface-map"] .v5-interface-map { grid-template-columns: minmax(130px, 0.68fr) minmax(240px, 1.32fr) minmax(130px, 0.68fr); }
  .fpv-v5[data-v5-family="compliance-file"] .v5-file-workbench { grid-template-columns: 170px minmax(0, 1fr); }
  .fpv-v5[data-v5-family="compliance-file"] .v5-contents-pane { grid-column: 1 / -1; border-block-start: 1px solid var(--v5-line); }
}

@media (max-width: 767px) {
  .fpv-v5 { font-size: 15px; }
  .fpv-v5 .v5-page-head { grid-template-columns: 36px minmax(0, 1fr); gap: 13px; margin-block-end: 22px; }
  .fpv-v5 .v5-index { inline-size: 34px; block-size: 34px; font-size: 11px; }
  .fpv-v5 .v5-button-row { gap: 14px; }
  .fpv-v5[data-v5-family="identity-hold"] .v5-identity-layout,
  .fpv-v5[data-v5-family="media-chain"] .v5-media-layout,
  .fpv-v5[data-v5-family="test-protocol"] .v5-test-layout { grid-template-columns: 1fr; }
  .fpv-v5[data-v5-family="identity-hold"] .v5-media-fixture,
  .fpv-v5[data-v5-family="media-chain"] .v5-media-fixture { min-block-size: 240px; }
  .fpv-v5[data-v5-family="interface-map"] .v5-interface-map { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fpv-v5[data-v5-family="interface-map"] .v5-interface-map > .v5-media-fixture { grid-column: 1 / -1; grid-row: 1; min-block-size: 230px; }
  .fpv-v5[data-v5-family="interface-map"] .v5-port::after { display: none; }
  .fpv-v5[data-v5-family="media-chain"] .v5-component-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fpv-v5[data-v5-family="media-chain"] .v5-component:nth-child(2) { border-inline-end: 0; }
  .fpv-v5[data-v5-family="media-chain"] .v5-component:nth-child(-n+2) { border-block-end: 1px solid var(--v5-line); }
  .fpv-v5[data-v5-family="test-protocol"] .v5-stage-rail { grid-template-columns: 1fr; gap: 0; }
  .fpv-v5[data-v5-family="test-protocol"] .v5-stage { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 12px; align-items: center; padding-block: 8px; text-align: start; }
  .fpv-v5[data-v5-family="test-protocol"] .v5-stage b { margin: 0; }
  .fpv-v5[data-v5-family="test-protocol"] .v5-stage::after { inset-block-start: 42px; inset-inline-start: 25px; inline-size: 1px; block-size: 12px; border-block-start: 0; border-inline-start: 1px dashed #98bde0; }
  .fpv-v5[data-v5-family="variant-matrix"] .v5-matrix-note { grid-template-columns: 1fr; }
  .fpv-v5[data-v5-family="compliance-file"] .v5-file-workbench { grid-template-columns: 1fr; }
  .fpv-v5[data-v5-family="compliance-file"] .v5-file-pane { border-inline-end: 0; border-block-end: 1px solid var(--v5-line); }
  .fpv-v5[data-v5-family="compliance-file"] .v5-contents-pane { grid-column: auto; }
}

@media (max-width: 479px) {
  .v5-showcase { padding-block-start: 24px; padding-inline: 10px; }
  .v5-showcase-grid > .fpv-v5 { padding-block: 26px 30px; padding-inline: 17px; }
  .fpv-v5 h2 { font-size: 25px; }
  .fpv-v5 .v5-thumb-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fpv-v5[data-v5-family="media-chain"] .v5-chain { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 12px; }
  .fpv-v5[data-v5-family="media-chain"] .v5-chain-step:nth-child(2)::after { display: none; }
  .fpv-v5[data-v5-family="media-chain"] .v5-chain-step:nth-child(-n+2) { border-block-end: 1px solid var(--v5-line); }
  .fpv-v5[data-v5-family="interface-map"] .v5-interface-map { grid-template-columns: 1fr; }
  .fpv-v5[data-v5-family="interface-map"] .v5-interface-map > .v5-media-fixture { grid-column: auto; }
  .fpv-v5[data-v5-family="interface-map"] .v5-legend { justify-content: start; }
  .fpv-v5 .v5-button-row { align-items: stretch; flex-direction: column; }
  .fpv-v5 .v5-button { inline-size: 100%; }
  .fpv-v5 .v5-text-link { text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
  .fpv-v5 *,
  .fpv-v5 *::before,
  .fpv-v5 *::after { scroll-behavior: auto !important; transition: none !important; }
}

@media print {
  .v5-prototype-shell { background: #fff; }
  .v5-showcase { max-inline-size: none; padding: 0; }
  .v5-showcase-grid { grid-template-columns: 1fr; }
  .v5-showcase-grid > .fpv-v5 { break-inside: avoid; }
  .fpv-v5 .v5-button { border-color: #000; background: #fff; color: #000; }
}

/* Production CMS contract. These selectors match the guarded article renderer. */
.fpv-v3.fpv-v5 { --p5-accent:#16679a; --p5-soft:#eaf4fb; --p5-ink:#13283d; --p5-muted:#5b6b79; --p5-line:#d9e2e9; color:var(--p5-ink); }
.fpv-v3.fpv-v5--field-evidence { --p5-accent:#087a83; --p5-soft:#e7f5f4; }
.fpv-v3.fpv-v5--media-chain { --p5-accent:#285d91; --p5-soft:#e9f1fa; }
.fpv-v3.fpv-v5--identity-hold { --p5-accent:#a9363b; --p5-soft:#fff0ef; }
.fpv-v3.fpv-v5--test-protocol { --p5-accent:#a75d16; --p5-soft:#fff3e5; }
.fpv-v3.fpv-v5--variant-matrix { --p5-accent:#5362a6; --p5-soft:#eef0fb; }
.fpv-v3.fpv-v5--compliance-file { --p5-accent:#6a5128; --p5-soft:#f7f1e6; }
.fpv-v3.fpv-v5--interface-map { --p5-accent:#0a728e; --p5-soft:#e8f6f8; }
.fpv-v3.fpv-v5--service-lifecycle { --p5-accent:#407156; --p5-soft:#edf6f0; }
.fpv-v3.fpv-v5 .fpv-v5-label { display:block; margin-block-end:10px; color:var(--p5-accent); font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.fpv-v3.fpv-v5 .fpv-v5-hero { position:relative; margin-block:0 28px; padding-block:26px; padding-inline:28px; border:1px solid var(--p5-line); background:#fff; }
.fpv-v3.fpv-v5 .fpv-v5-hero h3 { margin-block:0 12px; font-size:clamp(24px,3vw,36px); line-height:1.16; }
.fpv-v3.fpv-v5 .fpv-v5-hero p { margin-block:0; color:var(--p5-muted); line-height:1.78; }
.fpv-v3.fpv-v5--field-evidence .fpv-v5-hero--media { display:grid; grid-template-columns:minmax(0,.88fr) minmax(340px,1.12fr); gap:30px; align-items:center; padding-inline-end:0; border-block-start:5px solid var(--p5-accent); }
.fpv-v3.fpv-v5--media-chain .fpv-v5-hero--screen { display:grid; grid-template-columns:minmax(0,1fr) 250px; gap:28px; border-inline-start:6px solid var(--p5-accent); background:#f8fbff; }
.fpv-v3.fpv-v5--media-chain .fpv-v5-hero--screen > aside { align-self:stretch; padding-block:22px; padding-inline:20px; border-inline-start:1px solid #cdddeb; color:#335b7d; font-size:14px; line-height:1.65; }
.fpv-v3.fpv-v5--identity-hold .fpv-v5-hero--hold { padding-inline-start:34px; border-inline-start:8px solid var(--p5-accent); background:#fffafa; }
.fpv-v3.fpv-v5 .fpv-v5-status { display:inline-block; margin-block-end:14px; padding-block:6px; padding-inline:10px; border:1px solid #e5b4b2; color:#8c2b31; font-size:12px; font-weight:850; letter-spacing:.05em; text-transform:uppercase; }
.fpv-v3.fpv-v5--test-protocol .fpv-v5-hero--protocol { border-block-start:5px solid var(--p5-accent); }
.fpv-v3.fpv-v5 .fpv-v5-start { margin-block-start:18px; padding-block-start:13px; border-block-start:1px dashed #d9b487; color:#7d4d1d; font-size:13px; font-weight:800; }
.fpv-v3.fpv-v5--variant-matrix .fpv-v5-hero--matrix { display:grid; grid-template-columns:minmax(250px,.8fr) minmax(0,1.2fr); gap:30px; align-items:end; border-block-end:4px solid var(--p5-accent); background:#f8f8fd; }
.fpv-v3.fpv-v5--compliance-file .fpv-v5-hero--file { padding-block-start:45px; border-color:#d9cbb6; background:#fffefb; }
.fpv-v3.fpv-v5 .fpv-v5-file-tab { position:absolute; inset-block-start:0; inset-inline-start:24px; padding-block:7px; padding-inline:14px; background:var(--p5-accent); color:#fff; font-size:11px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }

.fpv-v3.fpv-v5 .fpv-v5-media { display:grid; gap:14px; margin-block:24px; }
.fpv-v3.fpv-v5 .fpv-v5-media--lead { margin-block:-26px; }
.fpv-v3.fpv-v5 .fpv-v5-media--lead .fpv-v5-media__item { min-block-size:330px; border:0; border-inline-start:1px solid var(--p5-line); border-radius:0; }
.fpv-v3.fpv-v5 .fpv-v5-media--rail { grid-template-columns:minmax(0,1.45fr) minmax(180px,.55fr); grid-template-rows:repeat(2,minmax(0,1fr)); }
.fpv-v3.fpv-v5 .fpv-v5-media--rail .fpv-v5-media__item:first-child { grid-row:1 / span 2; }
.fpv-v3.fpv-v5 .fpv-v5-media--evidence { grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.fpv-v3.fpv-v5 .fpv-v5-media--inspection { grid-template-columns:minmax(0,1.35fr) minmax(180px,.65fr); grid-template-rows:repeat(2,minmax(0,1fr)); }
.fpv-v3.fpv-v5 .fpv-v5-media--inspection .fpv-v5-media__item:first-child { grid-row:1 / span 2; }
.fpv-v3.fpv-v5 .fpv-v5-media--catalog { grid-template-columns:repeat(3,minmax(0,1fr)); padding-block:18px; border-block:1px solid var(--p5-line); }
.fpv-v3.fpv-v5 .fpv-v5-media--document { grid-template-columns:repeat(2,minmax(0,1fr)); padding-inline-start:32px; border-inline-start:2px solid #c7b58f; }
.fpv-v3.fpv-v5 .fpv-v5-media__item { display:flex; flex-direction:column; justify-content:center; margin:0; overflow:hidden; border:1px solid var(--p5-line); background:#fff; }
.fpv-v3.fpv-v5 .fpv-v5-media__item img { display:block; inline-size:auto; max-inline-size:100%; block-size:auto; max-block-size:430px; margin:auto; background:#fff; object-fit:contain; }
.fpv-v3.fpv-v5 .fpv-v5-media__item figcaption { inline-size:100%; box-sizing:border-box; margin-block-start:auto; padding-block:9px; padding-inline:12px; border-block-start:1px solid var(--p5-line); background:#f6f8fa; color:var(--p5-muted); font-size:12px; line-height:1.5; }

.fpv-v3.fpv-v5 .fpv-v5-table-wrap { inline-size:100%; overflow-x:auto; border:1px solid var(--p5-line); background:#fff; }
.fpv-v3.fpv-v5 .fpv-v5-table-wrap table { inline-size:100%; min-inline-size:650px; border:0; border-collapse:collapse; }
.fpv-v3.fpv-v5 .fpv-v5-table-wrap th { padding-block:13px; padding-inline:15px; border:0; border-block-end:2px solid var(--p5-accent); background:var(--p5-soft); color:var(--p5-ink); text-align:start; }
.fpv-v3.fpv-v5 .fpv-v5-table-wrap td { padding-block:13px; padding-inline:15px; border:0; border-block-end:1px solid #e6ebef; vertical-align:top; }
.fpv-v3.fpv-v5 .fpv-v5-evidence-band,
.fpv-v3.fpv-v5 .fpv-v5-source-review,
.fpv-v3.fpv-v5 .fpv-v5-measure,
.fpv-v3.fpv-v5 .fpv-v5-matrix,
.fpv-v3.fpv-v5 .fpv-v5-interface-register { margin-block:28px; }
.fpv-v3.fpv-v5 .fpv-v5-field-notes,
.fpv-v3.fpv-v5 .fpv-v5-protocol { display:grid; grid-template-columns:260px minmax(0,1fr); gap:28px; align-items:start; margin-block:28px; }
.fpv-v3.fpv-v5 .fpv-v5-checks { margin:0; padding:0; list-style:none; counter-reset:p5-step; }
.fpv-v3.fpv-v5 .fpv-v5-checks li { position:relative; margin:0; padding-block:12px; padding-inline:42px 8px; border-block-end:1px solid var(--p5-line); counter-increment:p5-step; }
.fpv-v3.fpv-v5 .fpv-v5-checks li::before { position:absolute; inset-block-start:11px; inset-inline-start:0; inline-size:28px; block-size:28px; color:var(--p5-accent); font-weight:850; content:counter(p5-step,decimal-leading-zero); }
.fpv-v3.fpv-v5 .fpv-v5-checks--protocol { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border-block:1px solid var(--p5-line); }
.fpv-v3.fpv-v5 .fpv-v5-checks--protocol li { padding-block:50px 16px; padding-inline:12px; border-block-end:0; border-inline-end:1px solid var(--p5-line); }
.fpv-v3.fpv-v5 .fpv-v5-checks--protocol li::before { inset-block-start:12px; inset-inline-start:12px; }
.fpv-v3.fpv-v5 .fpv-v5-file-check,
.fpv-v3.fpv-v5 .fpv-v5-package-record,
.fpv-v3.fpv-v5 .fpv-v5-recovery { margin-block:28px; padding-block:22px; padding-inline:24px; border:1px solid var(--p5-line); background:#f6f8fa; }

.fpv-v3.fpv-v5 .fpv-v5-chain > ol { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin:0; padding:0; list-style:none; border-block:1px solid var(--p5-line); }
.fpv-v3.fpv-v5 .fpv-v5-chain > ol > li { padding-block:20px; padding-inline:16px; border-inline-end:1px solid var(--p5-line); }
.fpv-v3.fpv-v5 .fpv-v5-chain > ol span { display:block; color:var(--p5-accent); font-size:12px; font-weight:850; }
.fpv-v3.fpv-v5 .fpv-v5-chain > ol strong { display:block; margin-block:8px; }
.fpv-v3.fpv-v5 .fpv-v5-chain > ol p,
.fpv-v3.fpv-v5 .fpv-v5-chain > ol small { display:block; color:var(--p5-muted); line-height:1.55; }
.fpv-v3.fpv-v5 .fpv-v5-editorial-rail,
.fpv-v3.fpv-v5 .fpv-v5-editorial-split,
.fpv-v3.fpv-v5 .fpv-v5-editorial-stages,
.fpv-v3.fpv-v5 .fpv-v5-editorial-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-block:28px; }
.fpv-v3.fpv-v5 .fpv-v5-note { padding-block-start:18px; border-block-start:3px solid var(--p5-accent); }
.fpv-v3.fpv-v5 .fpv-v5-note p { margin-block-end:0; color:var(--p5-muted); }
.fpv-v3.fpv-v5 .fpv-v5-issue,
.fpv-v3.fpv-v5 .fpv-v5-source-boundary,
.fpv-v3.fpv-v5 .fpv-v5-governed { margin-block:26px; padding-block:19px; padding-inline:21px; border-inline-start:4px solid var(--p5-accent); background:var(--p5-soft); }

.fpv-v3.fpv-v5 .fpv-v5-hold-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr); gap:24px; margin-block:28px; }
.fpv-v3.fpv-v5 .fpv-v5-hold-grid > * { padding-block:22px; padding-inline:22px; border:1px solid #ead0cf; }
.fpv-v3.fpv-v5 .fpv-v5-gaps { margin:0; padding:0; list-style:none; }
.fpv-v3.fpv-v5 .fpv-v5-gaps li { display:grid; grid-template-columns:100px minmax(0,1fr); gap:14px; padding-block:11px; border-block-end:1px solid #efdddc; }
.fpv-v3.fpv-v5 .fpv-v5-gaps strong { color:#922f34; font-size:12px; }
.fpv-v3.fpv-v5 .fpv-v5-document-stack { margin-block:28px; border:1px solid #d8ccb7; background:#fffefb; }
.fpv-v3.fpv-v5 .fpv-v5-document-stack > h3 { margin:0; padding-block:14px; padding-inline:18px; border-block-end:1px solid #d8ccb7; background:#f5f0e7; }
.fpv-v3.fpv-v5 .fpv-v5-document-stack ol { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); margin:0; padding:0; list-style:none; }
.fpv-v3.fpv-v5 .fpv-v5-document-stack li { padding-block:16px; padding-inline:15px; border-inline-end:1px solid #e6dccb; }
.fpv-v3.fpv-v5 .fpv-v5-document-stack span { color:var(--p5-accent); font-size:11px; font-weight:850; text-transform:uppercase; }
.fpv-v3.fpv-v5 .fpv-v5-document-stack p { margin-block:8px 0; font-size:13px; }

.fpv-v3.fpv-v5 .fpv-v5-questions { margin-block:28px; }
.fpv-v3.fpv-v5 .fpv-v5-faq { margin:0; }
.fpv-v3.fpv-v5 .fpv-v5-faq--inline { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-block:1px solid var(--p5-line); }
.fpv-v3.fpv-v5 .fpv-v5-faq--inline .fpv-v5-faq__row { padding-block:17px; padding-inline:17px; border-inline-end:1px solid var(--p5-line); }
.fpv-v3.fpv-v5 .fpv-v5-faq dt { color:var(--p5-ink); font-weight:800; }
.fpv-v3.fpv-v5 .fpv-v5-faq dd { margin-block:8px 0; margin-inline:0; color:var(--p5-muted); line-height:1.6; }
.fpv-v3.fpv-v5 .fpv-v5-faq--sidebar .fpv-v5-faq__row { display:grid; grid-template-columns:minmax(190px,.75fr) minmax(0,1.25fr); gap:20px; padding-block:14px; border-block-end:1px solid var(--p5-line); }
.fpv-v3.fpv-v5 .fpv-v5-faq--numbered { counter-reset:p5-faq; padding:0; list-style:none; }
.fpv-v3.fpv-v5 .fpv-v5-faq--numbered li { position:relative; padding-block:15px; padding-inline:48px 8px; border-block-end:1px solid var(--p5-line); counter-increment:p5-faq; }
.fpv-v3.fpv-v5 .fpv-v5-faq--numbered li::before { position:absolute; inset-block-start:13px; inset-inline-start:0; color:var(--p5-accent); font-weight:850; content:"Q" counter(p5-faq); }
.fpv-v3.fpv-v5 .fpv-v5-faq--numbered p { margin-block:6px 0; color:var(--p5-muted); }
.fpv-v3.fpv-v5 .fpv-v5-faq__detail { border-block-end:1px solid var(--p5-line); }
.fpv-v3.fpv-v5 .fpv-v5-faq__detail summary { padding-block:14px; color:var(--p5-ink); font-weight:800; cursor:pointer; }
.fpv-v3.fpv-v5 .fpv-v5-faq__detail p { margin-block:0 14px; color:var(--p5-muted); }
.fpv-v3.fpv-v5 .fpv-v5-action { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-block:30px 0; padding-block:20px; padding-inline:22px; border-block-start:3px solid var(--p5-accent); background:#f6f8fa; }
.fpv-v3.fpv-v5 .fpv-v5-action strong { display:block; font-size:18px; }
.fpv-v3.fpv-v5 .fpv-v5-action p { margin-block:5px 0; color:var(--p5-muted); }
.fpv-v3.fpv-v5 .fpv-v5-action a { flex:0 0 auto; padding-block:11px; padding-inline:16px; border:1px solid var(--p5-accent); color:var(--p5-accent); font-weight:800; text-decoration:none; }
.fpv-v3.fpv-v5 .fpv-v5-action a:hover,
.fpv-v3.fpv-v5 .fpv-v5-action a:focus-visible { background:var(--p5-accent); color:#fff; }

.fpv-v3.fpv-v5-spec { padding-block:22px; padding-inline:24px; border:1px solid var(--p5-line); border-block-start:4px solid var(--p5-accent); background:#fff; }
.fpv-v3.fpv-v5-spec > header { display:grid; grid-template-columns:110px minmax(0,1fr); gap:5px 20px; margin-block-end:18px; }
.fpv-v3.fpv-v5-spec > header > span { grid-row:1 / span 2; align-self:start; color:var(--p5-accent); font-size:11px; font-weight:850; letter-spacing:.07em; text-transform:uppercase; }
.fpv-v3.fpv-v5-spec > header h3,
.fpv-v3.fpv-v5-spec > header p { margin:0; }
.fpv-v3.fpv-v5 .fpv-v5-spec__list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin:0; border-block-start:1px solid var(--p5-line); }
.fpv-v3.fpv-v5 .fpv-v5-spec__row { display:grid; grid-template-columns:34px minmax(0,1fr); gap:8px; padding-block:11px; padding-inline:6px 18px; border-block-end:1px solid var(--p5-line); }
.fpv-v3.fpv-v5 .fpv-v5-spec__row dt { color:var(--p5-accent); font-size:11px; font-weight:850; }
.fpv-v3.fpv-v5 .fpv-v5-spec__row dd { margin:0; }
.fpv-v3.fpv-v5 .fpv-v5-spec__gates { margin-block-start:18px; padding-block:14px; padding-inline:16px; border-inline-start:3px solid var(--p5-accent); background:var(--p5-soft); }
.fpv-v3.fpv-v5 .fpv-v5-spec__gates ul { margin-block:8px 0; }
[dir="rtl"] .fpv-v3.fpv-v5,
.fpv-v3.fpv-v5[dir="rtl"] { text-align:start; }
[dir="rtl"] .fpv-v3.fpv-v5 .fpv-v5-media__item img,
.fpv-v3.fpv-v5[dir="rtl"] .fpv-v5-media__item img { direction:ltr; }

@media (max-width:860px) {
  .fpv-v3.fpv-v5--field-evidence .fpv-v5-hero--media,
  .fpv-v3.fpv-v5--media-chain .fpv-v5-hero--screen,
  .fpv-v3.fpv-v5--variant-matrix .fpv-v5-hero--matrix,
  .fpv-v3.fpv-v5 .fpv-v5-field-notes,
  .fpv-v3.fpv-v5 .fpv-v5-protocol,
  .fpv-v3.fpv-v5 .fpv-v5-hold-grid { grid-template-columns:1fr; }
  .fpv-v3.fpv-v5 .fpv-v5-media--lead { margin:0; }
  .fpv-v3.fpv-v5 .fpv-v5-checks--protocol,
  .fpv-v3.fpv-v5 .fpv-v5-document-stack ol { grid-template-columns:1fr; }
}
@media (max-width:767px) {
  .fpv-v3.fpv-v5 .fpv-v5-hero { padding-block:21px; padding-inline:18px; }
  .fpv-v3.fpv-v5 .fpv-v5-media--rail,
  .fpv-v3.fpv-v5 .fpv-v5-media--inspection,
  .fpv-v3.fpv-v5 .fpv-v5-media--catalog,
  .fpv-v3.fpv-v5 .fpv-v5-media--document,
  .fpv-v3.fpv-v5 .fpv-v5-editorial-rail,
  .fpv-v3.fpv-v5 .fpv-v5-editorial-split,
  .fpv-v3.fpv-v5 .fpv-v5-editorial-stages,
  .fpv-v3.fpv-v5 .fpv-v5-editorial-columns,
  .fpv-v3.fpv-v5 .fpv-v5-faq--inline,
  .fpv-v3.fpv-v5 .fpv-v5-spec__list { grid-template-columns:1fr; }
  .fpv-v3.fpv-v5 .fpv-v5-chain > ol { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fpv-v3.fpv-v5 .fpv-v5-faq--sidebar .fpv-v5-faq__row { grid-template-columns:1fr; gap:6px; }
  .fpv-v3.fpv-v5 .fpv-v5-media--rail,
  .fpv-v3.fpv-v5 .fpv-v5-media--inspection { grid-template-rows:auto; }
  .fpv-v3.fpv-v5 .fpv-v5-media--rail .fpv-v5-media__item:first-child,
  .fpv-v3.fpv-v5 .fpv-v5-media--inspection .fpv-v5-media__item:first-child { grid-row:auto; }
  .fpv-v3.fpv-v5 .fpv-v5-action { align-items:stretch; flex-direction:column; }
  .fpv-v3.fpv-v5 .fpv-v5-action a { text-align:center; }
  .fpv-v3.fpv-v5-spec > header { grid-template-columns:1fr; }
  .fpv-v3.fpv-v5-spec > header > span { grid-row:auto; }
}
@media (max-width:420px) {
  .fpv-v3.fpv-v5 .fpv-v5-chain > ol { grid-template-columns:1fr; }
  .fpv-v3.fpv-v5 .fpv-v5-chain > ol > li { border-inline-end:0; border-block-end:1px solid var(--p5-line); }
  .fpv-v3.fpv-v5 .fpv-v5-gaps li { grid-template-columns:1fr; gap:4px; }
}
