:root {
  --ink: #102f41;
  --ink-soft: #596c76;
  --paper: #f3f6f8;
  --surface: #ffffff;
  --brand-neutral: #7d7d7d;
  --line: #d9e2e7;
  --green: #003b5e;
  --green-dark: #002a43;
  --green-pale: #e3f0f6;
  --lime: #a8cadc;
  --amber: #9b5d00;
  --amber-pale: #fff3cf;
  --red: #9f2d2d;
  --red-pale: #fde9e6;
  --shadow: 0 18px 55px rgba(0, 59, 94, 0.1);
  --width-standard: 82rem;
  --width-data: 100rem;
  --width-reading: 58rem;
  --width-operational: 92rem;
  --width-contained: 104rem;
  --font-display: "Avenir Next", "Segoe UI Variable Display", "Segoe UI", sans-serif;
  --font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI Variable Text", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --font-data: "SFMono-Regular", "Cascadia Code", "Roboto Mono", Consolas, "Liberation Mono", monospace;
  font-family: var(--font-ui);
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
}

/* T-010 application polish: compact hierarchy, contained reading, and clear focus. */
button,
input,
textarea,
select {
  font: inherit;
}

button:disabled,
.button:disabled {
  cursor: not-allowed;
  opacity: .52;
}

button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible,
a:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid rgba(0, 59, 94, .34);
  outline-offset: 2px;
}

.contained-table,
.admin-table-wrap {
  max-height: min(64vh, 42rem);
  overflow: auto;
  overscroll-behavior: contain;
}

.contained-table thead,
.admin-table-wrap thead {
  position: sticky;
  z-index: 2;
  top: 0;
  background: #f2f5f6;
  box-shadow: 0 1px 0 var(--line);
}

.contained-table tbody tr:focus-within,
.admin-table-wrap tbody tr:focus-within {
  background: var(--green-pale);
}

.operational-panel,
.admin-panel,
.data-card,
.payload-panel {
  box-shadow: 0 2px 10px rgba(16, 47, 65, .035);
}

.button-primary {
  min-width: 7rem;
}

.operational-shell .page-heading {
  margin-bottom: 1.25rem;
}

.operational-shell .page-heading h1,
.operational-shell .admin-route-header h1 {
  text-wrap: balance;
}

.environment-disclosure {
  letter-spacing: .01em;
}

@media (max-width: 560px) {
  .operational-shell .page-heading {
    margin-bottom: .85rem;
  }

  .contained-table,
  .admin-table-wrap {
    max-height: 55vh;
  }

  .environment-disclosure {
    line-height: 1.35;
  }
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-width: 320px;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-ui);
  font-size: 15px;
  font-kerning: normal;
  font-synthesis: none;
  letter-spacing: -.005em;
  line-height: 1.48;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1,
h2,
h3,
h4,
h5,
h6,
.brand {
  font-family: var(--font-display);
  font-kerning: normal;
  text-rendering: optimizeLegibility;
}

a {
  color: inherit;
}

.help-library {
  display: none;
}

button,
input {
  font: inherit;
}

button,
summary,
a {
  -webkit-tap-highlight-color: transparent;
}

code,
.mono-label {
  font-family: var(--font-data);
  font-variant-ligatures: none;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 0.68rem;
  color: var(--ink);
  font-size: 1.18rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  text-decoration: none;
}

.brand small {
  border-left: 1px solid var(--line);
  margin-left: 0.3rem;
  padding-left: 1rem;
  color: var(--ink-soft);
  font-size: 0.78rem;
  font-weight: 650;
  letter-spacing: 0;
}

.brand-light {
  align-self: flex-start;
  border-radius: 0.7rem;
  background: white;
  padding: 0.45rem 0.65rem;
}

.brand-logo {
  display: block;
  width: 7.8rem;
  height: auto;
}

.eyebrow,
.step-label {
  margin: 0 0 0.75rem;
  color: var(--green);
  font-size: 0.73rem;
  font-weight: 800;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.eyebrow-light {
  color: var(--lime);
}

.muted {
  color: var(--ink-soft);
}

.button {
  display: inline-flex;
  min-height: 2.65rem;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  border: 1px solid transparent;
  border-radius: 0.65rem;
  padding: 0.7rem 1rem;
  cursor: pointer;
  font-weight: 750;
  text-decoration: none;
}

.button-primary {
  background: var(--green);
  color: white;
  box-shadow: 0 10px 24px rgba(0, 59, 94, 0.22);
}

.button-primary:hover,
.button-primary:focus-visible {
  background: var(--green-dark);
}

.button-secondary {
  border-color: var(--line);
  background: #f2f5f6;
  color: var(--ink);
}

.button-secondary:hover,
.button-secondary:focus-visible {
  border-color: var(--green);
  background: var(--green-pale);
  color: var(--green-dark);
}

.button-quiet {
  min-height: 2.2rem;
  border-color: var(--line);
  background: white;
  color: var(--ink);
  font-size: 0.83rem;
}

.button:focus-visible,
input:focus-visible,
summary:focus-visible,
a:focus-visible {
  outline: 3px solid rgba(0, 59, 94, 0.32);
  outline-offset: 2px;
}

.alert {
  border-radius: 0.65rem;
  padding: 0.75rem 0.85rem;
  font-size: 0.82rem;
  line-height: 1.5;
}

.alert-error {
  margin-top: 1rem;
  background: var(--red-pale);
  color: var(--red);
}

.alert-warning {
  margin-top: 1rem;
  background: var(--amber-pale);
  color: var(--amber);
}

.centered-message {
  display: grid;
  min-height: 100vh;
  padding: 2rem;
  place-items: center;
  background: var(--paper);
}

.centered-message .button {
  margin-top: 1rem;
}

.topbar {
  position: sticky;
  z-index: 10;
  top: 0;
  display: flex;
  min-height: 4.5rem;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid rgba(125, 125, 125, 0.25);
  padding: 0.8rem clamp(1rem, 4vw, 4rem);
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(16px);
}

.topbar-actions {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.topbar-actions form {
  margin: 0;
}

.status-chip,
.badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 800;
  white-space: nowrap;
}

.status-chip {
  gap: 0.45rem;
  padding: 0.4rem 0.65rem;
  background: var(--green-pale);
  color: var(--green-dark);
}

.status-chip i {
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 50%;
  background: var(--green);
}

.signed-in {
  color: var(--brand-neutral);
  font-size: 0.78rem;
}

.dashboard-shell {
  width: calc(100% - 2rem);
  max-width: 1500px;
  margin: 0 auto;
  padding: clamp(2.5rem, 6vw, 6rem) 0;
}

.hero {
  display: grid;
  align-items: end;
  gap: clamp(2rem, 6vw, 7rem);
  grid-template-columns: minmax(0, 1.5fr) minmax(300px, 0.5fr);
}

.hero > * {
  min-width: 0;
}

.hero h1 {
  max-width: 15ch;
  margin: 0;
  overflow-wrap: anywhere;
  font-size: clamp(3rem, 6.5vw, 7rem);
  letter-spacing: -0.07em;
  line-height: 0.92;
}

.hero-copy {
  max-width: 60rem;
  margin: 2rem 0 0;
  color: var(--ink-soft);
  font-size: clamp(1rem, 1.4vw, 1.22rem);
  line-height: 1.7;
}

.hero-proof {
  display: grid;
  gap: 0.55rem;
  border-left: 3px solid var(--lime);
  padding: 0.25rem 0 0.25rem 1.25rem;
}

.hero-proof span {
  color: var(--ink-soft);
  font-size: 0.75rem;
  font-weight: 750;
  text-transform: uppercase;
}

.hero-proof code,
.hash-block {
  overflow-wrap: anywhere;
  color: var(--green);
  font-size: 0.75rem;
  line-height: 1.55;
}

.hero-proof strong {
  color: var(--green-dark);
  font-size: 0.87rem;
}

.capability-banner {
  display: grid;
  gap: 0;
  margin: clamp(3rem, 6vw, 6rem) 0 1rem;
  border: 1px solid var(--line);
  border-radius: 0.9rem;
  grid-template-columns: 1fr 1fr;
  overflow: hidden;
  background: white;
}

.capability-banner div {
  padding: 1rem 1.2rem;
  color: var(--ink-soft);
  font-size: 0.82rem;
  line-height: 1.55;
}

.capability-banner div:first-child {
  border-right: 1px solid var(--line);
  background: var(--green-pale);
  color: var(--green-dark);
}

.capability-banner strong {
  display: block;
  margin-bottom: 0.16rem;
}

.metric-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.metric-card {
  display: grid;
  min-height: 9rem;
  align-content: space-between;
  border: 1px solid var(--line);
  border-radius: 0.9rem;
  padding: 1.1rem;
  background: white;
}

.metric-card span,
.metric-card small {
  color: var(--ink-soft);
  font-size: 0.75rem;
}

.metric-card strong {
  font-size: 2.7rem;
  letter-spacing: -0.06em;
}

.metric-card-accent {
  border-color: var(--green);
  background: var(--green-dark);
  color: white;
}

.metric-card-accent span,
.metric-card-accent small {
  color: rgba(255, 255, 255, 0.72);
}

.section-block {
  margin-top: 1rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  padding: clamp(1.3rem, 3vw, 2.5rem);
  background: white;
}

.section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: 2rem;
}

.section-heading h2,
.proof-card h2,
.next-step h2 {
  margin: 0;
  font-size: clamp(1.6rem, 3vw, 2.7rem);
  letter-spacing: -0.055em;
  line-height: 1.05;
}

.section-heading > p {
  max-width: 35rem;
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.88rem;
  line-height: 1.6;
}

.correction-grid,
.two-column,
.target-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.separation-note,
.factual-boundary {
  border-left: 3px solid var(--green);
  padding: 0.8rem 1rem;
  background: var(--green-pale);
  color: var(--green-dark);
  font-size: 0.78rem;
  line-height: 1.55;
}

.separation-note {
  margin: 0 0 1rem;
}

.factual-boundary {
  margin: 0.8rem 0 0;
}

.separation-note strong,
.factual-boundary strong {
  display: block;
}

.correction-card {
  border: 1px solid var(--line);
  border-radius: 0.8rem;
  padding: 1rem;
  background: #fbfcfa;
}

.correction-header,
.correction-path,
.relationship-row > div,
.candidate-score > div:first-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.mono-label {
  color: var(--ink-soft);
  font-size: 0.75rem;
}

.badge {
  padding: 0.3rem 0.55rem;
}

.badge-neutral {
  background: #e9eeea;
  color: var(--ink-soft);
}

.badge-success {
  background: var(--green-pale);
  color: var(--green-dark);
}

.badge-warning {
  background: var(--amber-pale);
  color: var(--amber);
}

.correction-path {
  margin: 1.3rem 0;
  border-radius: 0.7rem;
  padding: 1rem;
  background: white;
}

.correction-path > div {
  display: grid;
  gap: 0.3rem;
}

.correction-path span:not(.path-arrow) {
  color: var(--ink-soft);
  font-size: 0.75rem;
}

.correction-path strong {
  font-size: 1.3rem;
}

.raw-value {
  color: var(--red);
  text-decoration: line-through;
  text-decoration-thickness: 1px;
}

.path-arrow {
  color: var(--green);
  font-size: 1.5rem;
}

.detail-list,
.proof-list {
  margin: 0;
}

.detail-list > div,
.proof-list > div {
  display: grid;
  gap: 1rem;
  border-top: 1px solid var(--line);
  padding: 0.65rem 0;
  grid-template-columns: minmax(6rem, 0.34fr) minmax(0, 0.66fr);
}

.detail-list dt,
.proof-list dt {
  color: var(--ink-soft);
  font-size: 0.75rem;
}

.detail-list dd,
.proof-list dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
  font-size: 0.78rem;
}

.detail-list code {
  font-size: 0.75rem;
}

.product-identity {
  display: grid;
  align-items: center;
  gap: 1.2rem;
  border: 1px solid var(--green);
  border-radius: 0.9rem;
  padding: 1.2rem;
  grid-template-columns: auto minmax(0, 1fr) minmax(250px, 0.55fr);
  background: linear-gradient(115deg, var(--green-pale), white 65%);
}

.product-icon {
  display: grid;
  width: 4.4rem;
  height: 4.4rem;
  place-items: center;
  border-radius: 1rem;
  background: var(--green-dark);
  color: var(--lime);
  font-size: 0.75rem;
  font-weight: 900;
  letter-spacing: 0.1em;
}

.product-identity h3 {
  margin: 0.25rem 0;
  font-size: 1.65rem;
  letter-spacing: -0.04em;
}

.product-identity p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.83rem;
}

.identity-names {
  display: grid;
  gap: 0.25rem;
  border-left: 1px solid var(--line);
  padding-left: 1.2rem;
}

.identity-names span {
  margin-top: 0.35rem;
  color: var(--ink-soft);
  font-size: 0.75rem;
  text-transform: uppercase;
}

.identity-names strong {
  font-size: 0.8rem;
}

.knowledge-map {
  min-width: 0;
  margin: 1rem 0 0;
  border: 1px solid var(--line);
  border-radius: 0.9rem;
  overflow: hidden;
  background: #f8fafb;
}

.knowledge-map-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border-bottom: 1px solid var(--line);
  padding: 0.9rem 1rem;
  background: white;
}

.knowledge-map-header > div:first-child {
  display: grid;
  gap: 0.18rem;
}

.knowledge-map-header strong {
  font-size: 0.88rem;
}

.knowledge-map-header span,
.knowledge-map-note {
  color: var(--ink-soft);
  font-size: 0.75rem;
}

.map-legend {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.8rem;
}

.map-legend span {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  white-space: nowrap;
}

.legend-line {
  display: inline-block;
  width: 1.8rem;
  border-top: 2px solid var(--green);
}

.legend-excluded {
  border-color: var(--amber);
  border-top-style: dashed;
}

.knowledge-map-viewport {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
}

.knowledge-map-svg {
  display: block;
  width: 100%;
  min-width: 760px;
  height: auto;
  font-family: var(--font-ui);
}

.map-edge line {
  fill: none;
  stroke-width: 2.5;
}

.map-edge rect {
  fill: white;
  stroke-width: 1;
}

.map-edge text {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-anchor: middle;
}

.map-edge-published line {
  marker-end: url("#map-arrow-published");
  stroke: var(--green);
}

.map-edge-published rect {
  stroke: var(--green-pale);
}

.map-edge-published text,
#map-arrow-published path {
  fill: var(--green);
}

.map-edge-excluded line {
  marker-end: url("#map-arrow-excluded");
  stroke: var(--amber);
  stroke-dasharray: 8 7;
}

.map-edge-excluded rect {
  stroke: var(--amber-pale);
}

.map-edge-excluded text,
#map-arrow-excluded path {
  fill: var(--amber);
}

.map-node rect {
  fill: white;
  stroke: var(--line);
  stroke-width: 1.5;
}

.map-node-root rect {
  fill: var(--green-dark);
  stroke: var(--green-dark);
}

.map-node-excluded rect {
  fill: var(--amber-pale);
  stroke: var(--amber);
  stroke-dasharray: 6 5;
}

.map-node-label {
  fill: var(--ink);
  font-size: 14px;
  font-weight: 800;
}

.map-node-meta,
.map-node-state {
  fill: var(--ink-soft);
  font-size: 8.5px;
  font-weight: 650;
  letter-spacing: 0.04em;
}

.map-node-state {
  text-anchor: end;
}

.map-node-root .map-node-label {
  fill: white;
  font-size: 16px;
}

.map-node-root .map-node-meta {
  fill: var(--lime);
}

.map-node-excluded .map-node-state {
  fill: var(--amber);
}

.knowledge-map-note {
  margin: 0;
  border-top: 1px solid var(--line);
  padding: 0.7rem 1rem;
  background: white;
}

.relationship-list {
  display: grid;
  gap: 0.5rem;
  margin-top: 1rem;
}

.relationship-row {
  display: grid;
  gap: 0.5rem;
  border: 1px solid var(--line);
  border-radius: 0.7rem;
  padding: 0.85rem 1rem;
}

.relationship-row > div:first-child {
  justify-content: flex-start;
}

.relationship-row code {
  color: var(--ink-soft);
  font-size: 0.75rem;
  overflow-wrap: anywhere;
}

.edge-type {
  min-width: 8rem;
  color: var(--green);
  font-size: 0.75rem;
  font-weight: 900;
}

.relationship-state {
  justify-content: flex-end;
  font-size: 0.75rem;
}

.relationship-state > span:first-child {
  color: var(--ink-soft);
}

.relationship-row > p {
  margin: 0;
  color: var(--amber);
  font-size: 0.75rem;
}

.relationship-excluded {
  border-style: dashed;
  background: #fffdf7;
}

.proof-card {
  margin-top: 1rem;
}

.proof-card h2 {
  max-width: 16ch;
}

.candidate-score {
  margin: 2rem 0;
  border-radius: 0.8rem;
  padding: 1rem;
  background: #f6f8f5;
}

.candidate-score strong {
  color: var(--green);
  font-size: 1.8rem;
}

.candidate-score small {
  color: var(--ink-soft);
  font-size: 0.75rem;
}

.score-bar {
  height: 0.45rem;
  margin: 0.7rem 0 0.5rem;
  overflow: hidden;
  border-radius: 999px;
  background: #dfe5df;
}

.score-bar i {
  display: block;
  width: 94%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--green), var(--lime));
}

.proof-list > div {
  grid-template-columns: 1fr auto;
}

.proof-list dd {
  font-weight: 800;
}

.pass-line {
  margin-top: 1.1rem;
  color: var(--green-dark);
  font-size: 0.8rem;
  font-weight: 750;
}

.pass-line span {
  display: inline-grid;
  width: 1.35rem;
  height: 1.35rem;
  margin-right: 0.35rem;
  place-items: center;
  border-radius: 50%;
  background: var(--green-pale);
}

.fail-line {
  margin-top: 1.1rem;
  color: var(--red);
  font-size: 0.8rem;
  font-weight: 750;
}

.fail-line span {
  display: inline-grid;
  width: 1.35rem;
  height: 1.35rem;
  margin-right: 0.35rem;
  place-items: center;
  border-radius: 50%;
  background: var(--red-pale);
}

.hash-block {
  display: block;
  margin-top: 1rem;
  border-radius: 0.6rem;
  padding: 0.8rem;
  background: #f6f8f5;
}

.target-card,
.trace-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 0.8rem;
  background: #fbfcfa;
}

.target-card summary,
.trace-card summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem;
  cursor: pointer;
  list-style: none;
}

.target-card summary::-webkit-details-marker,
.trace-card summary::-webkit-details-marker {
  display: none;
}

.target-card summary span {
  display: grid;
  gap: 0.3rem;
}

.target-card summary small,
.trace-card summary span {
  color: var(--ink-soft);
  font-size: 0.75rem;
}

.target-card summary i {
  color: var(--green);
  font-size: 1.25rem;
  font-style: normal;
}

.target-card[open] summary i {
  transform: rotate(45deg);
}

pre {
  max-height: 34rem;
  margin: 0;
  overflow: auto;
  border-top: 1px solid var(--line);
  padding: 1rem;
  background: #10221c;
  color: #dff4e9;
  font-family: var(--font-data);
  font-size: 0.75rem;
  line-height: 1.65;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.table-wrap {
  overflow-x: auto;
}

table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.75rem;
}

th,
td {
  border-bottom: 1px solid var(--line);
  padding: 0.8rem;
  text-align: left;
  vertical-align: top;
}

th {
  color: var(--ink-soft);
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

td code {
  font-size: 0.75rem;
}

.trace-card {
  margin-top: 1rem;
}

.next-step {
  display: grid;
  align-items: end;
  gap: 3rem;
  margin-top: 1rem;
  border-radius: 1rem;
  padding: clamp(1.5rem, 4vw, 3.2rem);
  grid-template-columns: 1.1fr 0.9fr;
  background: var(--green-dark);
  color: white;
}

.next-step p:last-child {
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.7;
}

.footer {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  border-top: 1px solid var(--line);
  padding: 1.5rem clamp(1rem, 4vw, 4rem);
  color: var(--ink-soft);
  font-size: 0.75rem;
}

@media (max-width: 1000px) {
  .hero,
  .product-identity,
  .next-step {
    grid-template-columns: 1fr;
  }

  .identity-names {
    border-top: 1px solid var(--line);
    border-left: 0;
    padding-top: 0.8rem;
    padding-left: 0;
  }

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

@media (max-width: 700px) {
  .topbar {
    position: static;
    align-items: flex-start;
  }

  .brand small,
  .signed-in,
  .status-chip {
    display: none;
  }

  .topbar-actions {
    gap: 0.4rem;
  }

  .dashboard-shell {
    width: calc(100% - 1rem);
    padding-top: 2rem;
  }

  .hero {
    gap: 2rem;
  }

  .hero h1 {
    max-width: 100%;
    font-size: clamp(2.45rem, 12vw, 3.3rem);
  }

  .capability-banner,
  .metric-grid,
  .correction-grid,
  .two-column,
  .target-grid {
    grid-template-columns: 1fr;
  }

  .capability-banner div:first-child {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .section-heading {
    display: grid;
    gap: 0.8rem;
  }

  .correction-path {
    align-items: flex-start;
  }

  .detail-list > div {
    grid-template-columns: 1fr;
    gap: 0.3rem;
  }

  .product-icon {
    width: 3.5rem;
    height: 3.5rem;
  }

  .relationship-row > div {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .edge-type {
    width: 100%;
  }

  .knowledge-map-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .map-legend {
    justify-content: flex-start;
  }

  .footer {
    flex-direction: column;
  }
}

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

/* Feature 031: compact, always-visible operational context. */
.assistance-workflow-context {
  margin: 1rem 0;
  padding: .85rem 1rem;
  border: 1px solid rgba(22, 122, 132, .22);
  border-radius: .55rem;
  background: rgba(239, 248, 248, .68);
}
.assistance-workflow-context h3 { margin: 0 0 .65rem; font-size: 1rem; }
.assistance-context-list { display: grid; gap: .55rem; margin: 0; }
.assistance-context-list > div { display: grid; gap: .15rem; }
.assistance-context-list dt { font-weight: 700; color: #164c5a; }
.assistance-context-list dd { margin: 0; line-height: 1.45; }
@media (min-width: 48rem) {
  .assistance-context-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Feature 030: server-rendered discovery workspace. */
.discovery-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; align-items: start; }
.discovery-form .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.discovery-form label { min-width: 0; }
.discovery-form select, .discovery-form input { width: 100%; min-height: 44px; }
.discovery-summary strong { font-size: 1.55rem; }
.discovery-results { margin-top: 1.2rem; border-top: 1px solid var(--line); padding-top: 1rem; }
.discovery-result-list { display: grid; gap: .8rem; }
.discovery-result { border: 1px solid var(--line); border-left: 4px solid var(--cyan); padding: .9rem; background: #fff; }
.discovery-result h4 { margin: .35rem 0 .15rem; font-size: 1rem; }
.discovery-result p { margin: .45rem 0; line-height: 1.45; }
.discovery-result-header { display: flex; justify-content: space-between; gap: .75rem; align-items: start; }
.discovery-state-confirmed-product-fit { border-left-color: #14734f; }
.discovery-state-more-vehicle-details-needed { border-left-color: #8a4b00; }
.discovery-state-part-fitment-only { border-left-color: #67418c; }
.discovery-state-not-confirmed { border-left-color: #6b6b6b; }
.discovery-definitions { display: grid; gap: .45rem; margin: .7rem 0; }
.discovery-definitions div { display: grid; grid-template-columns: 10rem minmax(0, 1fr); gap: .5rem; }
.discovery-definitions dt { font-weight: 750; color: var(--ink-soft); }
.discovery-definitions dd { display: flex; flex-wrap: wrap; gap: .35rem; margin: 0; }
.discovery-definitions dd span { border: 1px solid var(--line); padding: .2rem .35rem; font-size: .78rem; }
.discovery-lineage { display: block; margin-top: .4rem; overflow-wrap: anywhere; white-space: normal; }
.discovery-application small { display: block; margin-top: .2rem; color: var(--ink-soft); line-height: 1.45; }
.discovery-evidence { color: var(--ink-soft); font-size: .78rem; overflow-wrap: anywhere; }
.discovery-paths { margin-top: .8rem; border-top: 1px solid var(--line); padding-top: .7rem; }
.discovery-paths h4 { margin-top: 0; }
.discovery-paths article { margin-top: .7rem; }
.form-errors { border: 2px solid #8a4b00; padding: 1rem; margin-bottom: 1rem; background: #fffaf1; }
.form-errors h2 { margin: 0 0 .45rem; font-size: 1rem; }
.form-errors ul { margin: 0; padding-left: 1.25rem; }
.discovery-coverage { margin-top: 1rem; }
@media (max-width: 800px) { .discovery-grid { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .discovery-form .form-grid { grid-template-columns: 1fr; } .discovery-result-header { display: grid; } .discovery-definitions div { grid-template-columns: 1fr; gap: .15rem; } }

.safety-section { border-top: 4px solid var(--green); }
.safety-proof-list dd { color: var(--green-dark); font-weight: 850; }
.empty-state { color: var(--ink-soft); font-size: .84rem; }

/* Authenticated admin workspace: server-rendered, bounded, and intentionally quiet. */
.admin-shell { padding-top: 1rem; }
.admin-route-header { display: grid; min-width: 0; align-items: end; gap: 1.2rem 2rem; margin-bottom: .8rem; grid-template-columns: minmax(0, 1.45fr) minmax(18rem, .55fr); }
.admin-route-header > * { min-width: 0; }
.admin-route-header h1 { max-width: 26ch; margin: 0; overflow-wrap: anywhere; font-size: clamp(1.875rem, 2.8vw, 2.25rem); letter-spacing: -.055em; line-height: 1; }
.admin-route-header .hero-copy { max-width: 58rem; margin: .55rem 0 0; color: var(--ink-soft); font-size: .8rem; line-height: 1.5; }
.admin-route-context { display: grid; min-width: 0; gap: .4rem; margin: 0; border-left: 2px solid var(--green); padding: .15rem 0 .15rem 1rem; }
.admin-route-context div { display: grid; min-width: 0; gap: .1rem; }
.admin-route-context dt { color: var(--ink-soft); font-size: .75rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.admin-route-context dd { min-width: 0; margin: 0; overflow-wrap: anywhere; font-size: .75rem; font-weight: 780; }
.admin-scope { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem .7rem; margin: .8rem 0; border: 1px solid var(--line); border-radius: .65rem; padding: .65rem .8rem; background: var(--surface); color: var(--ink-soft); font-size: .75rem; }
.data-label { display: inline-flex; width: fit-content; align-items: center; border-radius: 999px; padding: .3rem .55rem; font-size: .75rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.data-baseline { background: #eaf0f3; color: var(--ink); }
.data-overlay { background: #fff1d0; color: var(--amber); }
.data-derived { background: var(--green-pale); color: var(--green-dark); }
.admin-receipt { display: grid; gap: 1rem; margin: 1rem 0; border: 1px solid #b7d8c8; border-left: 4px solid var(--green); border-radius: .8rem; padding: 1rem 1.2rem; background: #f2faf6; }
.admin-receipt > div:first-child { display: flex; align-items: center; gap: .75rem; }
.admin-receipt h2 { margin: .2rem 0 0; font-size: 1.2rem; }
.receipt-mark { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 50%; background: var(--green); color: #fff; font-weight: 900; }
.receipt-grid { display: grid; gap: .7rem; margin: 0; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.receipt-grid div { min-width: 0; }
.receipt-grid dt { color: var(--ink-soft); font-size: .75rem; font-weight: 750; text-transform: uppercase; }
.receipt-grid dd { margin: .25rem 0 0; overflow-wrap: anywhere; font-size: .75rem; }
.admin-nav { display: flex; flex-wrap: wrap; gap: .8rem; margin: 1.2rem 0 2rem; border-bottom: 1px solid var(--line); padding-bottom: .8rem; }
.admin-nav-group { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem; }
.admin-nav-group > span { margin-right: .25rem; color: var(--ink-soft); font-size: .75rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.admin-nav a { border-radius: .45rem; padding: .45rem .6rem; color: var(--ink-soft); font-size: .76rem; font-weight: 750; text-decoration: none; }
.admin-nav a:hover, .admin-nav a:focus-visible, .admin-nav a[aria-current="page"] { background: var(--green-pale); color: var(--green-dark); }
.admin-overview-context { display: flex; min-width: 0; align-items: end; justify-content: space-between; gap: 1.2rem; margin: .8rem 0 1rem; }
.admin-overview-context > * { min-width: 0; }
.admin-overview-context h2 { margin: 0; font-size: 1.2rem; letter-spacing: -.035em; }
.admin-overview-context p:not(.step-label) { max-width: 62rem; margin: .4rem 0 0; color: var(--ink-soft); font-size: .75rem; line-height: 1.45; }
.page-count, .hash-pill { flex: 0 0 auto; border: 1px solid var(--line); border-radius: 999px; padding: .48rem .7rem; color: var(--ink-soft); font-size: .75rem; }
.hash-pill { max-width: 20rem; overflow-wrap: anywhere; border-radius: .55rem; color: var(--green-dark); }
.admin-metrics { margin: 0 0 1.4rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.admin-card-grid { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.admin-link-card { display: grid; min-width: 0; gap: .65rem; border: 1px solid var(--line); border-radius: .9rem; padding: 1.2rem; background: var(--surface); text-decoration: none; transition: border-color 140ms ease, box-shadow 140ms ease, transform 140ms ease; }
.admin-link-card:hover, .admin-link-card:focus-visible { border-color: var(--green); box-shadow: 0 10px 24px rgba(0,59,94,.1); transform: translateY(-2px); }
.admin-link-card h3 { margin: 0; font-size: 1.15rem; letter-spacing: -.03em; }
.admin-link-card p { margin: 0; color: var(--ink-soft); font-size: .78rem; line-height: 1.55; }
.card-kicker, .text-link { color: var(--green); font-size: .75rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.text-link { margin-top: .3rem; letter-spacing: 0; text-transform: none; }
.admin-two-column { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.admin-panel, .data-card, .payload-panel { min-width: 0; border: 1px solid var(--line); border-radius: .85rem; background: var(--surface); }
.admin-panel { padding: 1.2rem; }
.panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.panel-heading h3 { margin: .2rem 0 0; font-size: 1.25rem; letter-spacing: -.03em; }
.panel-heading > * { min-width: 0; }
.preview-summary { display: grid; gap: 1px; margin-bottom: 1rem; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: .85rem; overflow: hidden; background: var(--line); }
.preview-summary > div { display: grid; min-width: 0; gap: .45rem; padding: 1rem; background: var(--surface); }
.preview-summary span, .preview-summary small { color: var(--ink-soft); font-size: .75rem; }
.preview-summary strong, .preview-summary code { overflow-wrap: anywhere; font-size: .82rem; }
.admin-form { display: grid; gap: .7rem; margin-top: 1rem; }
.admin-form-fieldset { min-width: 0; margin: 0; border: 0; padding: 0; }
.admin-form-fieldset legend { margin-bottom: .45rem; color: var(--ink-soft); font-size: .75rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.admin-form-fieldset .panel-heading h2 { margin: .2rem 0 0; font-size: 1.15rem; letter-spacing: -.03em; }
.admin-form label { display: grid; gap: .35rem; color: var(--ink-soft); font-size: .75rem; font-weight: 750; }
.admin-form input:not([type="hidden"]), .admin-form textarea, .admin-form select { width: 100%; min-width: 0; border: 1px solid #cbd5ce; border-radius: .5rem; padding: .62rem .7rem; background: #fff; color: var(--ink); font: inherit; font-size: .82rem; }
.admin-form textarea { min-height: 5rem; resize: vertical; }
.builder-raw-request blockquote {
  margin: 1rem 0 0;
  border-left: 3px solid var(--accent, #de5b3d);
  padding: .8rem 1rem;
  background: color-mix(in srgb, var(--paper, #f5f4ef) 78%, white);
  color: var(--ink);
  font-family: var(--font-display, inherit);
  font-size: clamp(1rem, 1.8vw, 1.28rem);
  line-height: 1.45;
}
.topology-product-switcher {
  display: grid;
  grid-template-columns: minmax(16rem, 1fr) minmax(18rem, 1fr) auto;
  align-items: end;
  gap: 1rem;
  margin: 1.25rem 0 .75rem;
  border-top: 2px solid var(--ink);
  border-bottom: 1px solid var(--line, #cbd5ce);
  padding: 1rem 0;
}
.topology-product-switcher > div { display: grid; gap: .2rem; }
.topology-product-switcher > div small { color: var(--ink-soft); }
.topology-product-switcher form { display: grid; grid-template-columns: 1fr auto; gap: .4rem .65rem; }
.topology-product-switcher form label { grid-column: 1 / -1; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.topology-product-switcher select { min-width: 0; border: 1px solid var(--line, #cbd5ce); padding: .58rem; background: #fff; color: var(--ink); font: inherit; }
.topology-product-switcher nav { display: flex; gap: .4rem; }
.topology-product-switcher [aria-disabled="true"] { opacity: .42; pointer-events: none; }
.overview-product-assistant {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(15rem, .65fr);
  gap: 1rem 1.5rem;
  margin: 0 0 1rem;
  border-block: 1px solid var(--line, #cbd5ce);
  border-left: 3px solid var(--accent, #de5b3d);
  padding: 1rem;
  background: color-mix(in srgb, var(--paper, #f5f4ef) 72%, white);
}
.overview-product-assistant h2 { margin: .15rem 0 .3rem; font-size: 1.2rem; }
.overview-product-assistant p { margin: 0; color: var(--ink-soft); line-height: 1.5; }
.overview-product-assistant form { display: grid; align-content: center; justify-items: start; gap: .4rem; }
.overview-product-assistant .assistance-error,
.overview-product-assistant .assistance-draft { grid-column: 1 / -1; }
.overview-product-assistant .assistance-draft p { color: var(--ink); }
@media (max-width: 850px) {
  .topology-product-switcher { grid-template-columns: 1fr; align-items: stretch; }
  .topology-product-switcher nav { justify-content: space-between; }
  .overview-product-assistant { grid-template-columns: 1fr; }
}
.admin-body, .query-builder-page { background: var(--paper); color: var(--ink); }
.form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-wide { grid-column: 1 / -1; }
.button-danger { background: var(--red-pale); color: var(--red); }
.button-danger:hover, .button-danger:focus-visible { background: #f9d6d1; }
.history-list, .timeline { display: grid; gap: .7rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.history-list li, .timeline-item { border-left: 3px solid var(--green); border-radius: 0 .55rem .55rem 0; padding: .8rem; background: #f6fafb; }
.history-top { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.history-top strong { overflow-wrap: anywhere; font-size: .82rem; }
.history-top time { flex: 0 0 auto; color: var(--ink-soft); font-size: .75rem; }
.history-list p, .timeline p { margin: .4rem 0; color: var(--ink-soft); font-size: .75rem; }
.history-list small, .timeline small, .admin-table small { display: block; margin-top: .3rem; color: var(--ink-soft); font-size: .75rem; line-height: 1.45; }
.payload-panel { margin-top: 1rem; overflow: hidden; }
.payload-panel summary { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .6rem; padding: 1rem; cursor: pointer; }
.payload-panel summary span { color: var(--ink-soft); font-size: .75rem; }
.payload-panel pre { max-height: 32rem; margin: 0; overflow: auto; border-top: 1px solid var(--line); padding: 1rem; background: #0c2736; color: #e5f3f7; font-size: .75rem; line-height: 1.55; }
.record-grid { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.data-card { display: grid; align-content: start; gap: .85rem; padding: 1rem; }
.data-card-top { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: .7rem; }
.data-card-top code { min-width: 0; overflow-wrap: anywhere; color: var(--ink-soft); font-size: .75rem; text-align: right; }
.data-card h3 { margin: 0; overflow-wrap: anywhere; font-size: 1rem; letter-spacing: -.02em; }
.field-list, .payload-fields { display: grid; gap: .5rem; margin: 0; }
.field-list > div, .payload-fields > div { display: grid; gap: .25rem; grid-template-columns: minmax(5rem, .55fr) minmax(0, 1fr); }
.field-list dt, .payload-fields dt { color: var(--ink-soft); font-size: .75rem; font-weight: 750; }
.field-list dd, .payload-fields dd { min-width: 0; margin: 0; overflow-wrap: anywhere; font-size: .75rem; }
.data-card details { border-top: 1px solid var(--line); padding-top: .7rem; }
.data-card summary { color: var(--green-dark); cursor: pointer; font-size: .75rem; font-weight: 800; }
.data-card details[open] summary { margin-bottom: .7rem; }
.comparison-grid { display: grid; gap: .5rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.comparison-grid > div { display: grid; gap: .25rem; min-width: 0; border-radius: .45rem; padding: .55rem; background: var(--paper); }
.comparison-grid span { color: var(--ink-soft); font-size: .75rem; font-weight: 750; }
.comparison-grid code { overflow-wrap: anywhere; font-size: .75rem; }
.rule-badges { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; color: var(--ink-soft); font-size: .75rem; }
.rule-badges code { border-radius: .3rem; padding: .25rem .35rem; background: var(--green-pale); color: var(--green-dark); font-size: .75rem; }
.admin-table-wrap { width: 100%; max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; }
.admin-table { width: 100%; min-width: 680px; border-collapse: collapse; font-size: .75rem; }
.admin-table th, .admin-table td { border-bottom: 1px solid var(--line); padding: .75rem .6rem; text-align: left; vertical-align: top; }
.admin-table thead th { color: var(--ink-soft); font-size: .75rem; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.admin-table tbody tr:last-child th, .admin-table tbody tr:last-child td { border-bottom: 0; }
.admin-table th[scope="row"] { min-width: 10rem; font-weight: 700; }
.raw-catalog-spreadsheet { overscroll-behavior-inline: contain; }
.raw-catalog-spreadsheet .admin-table { min-width: 1280px; }
.raw-catalog-spreadsheet .admin-table th, .raw-catalog-spreadsheet .admin-table td { white-space: nowrap; }
.raw-catalog-spreadsheet .admin-table th[scope="row"] { white-space: normal; }
.raw-catalog-spreadsheet .admin-table td small, .raw-catalog-spreadsheet .admin-table th small { display: block; margin-top: .25rem; color: var(--ink-soft); font-size: .66rem; font-weight: 500; }
.admin-table td code, .admin-table th code { overflow-wrap: anywhere; font-size: .75rem; }
.inline-form { display: grid; gap: .4rem; min-width: 11rem; }
.inline-action { margin-top: .55rem; border-top: 1px solid var(--line); padding-top: .55rem; }
.inline-action summary { color: var(--green-dark); cursor: pointer; font-size: .75rem; font-weight: 800; }
.inline-action[open] summary { margin-bottom: .5rem; }
.inline-form input:not([type="hidden"]) { min-width: 0; border: 1px solid #cbd5ce; border-radius: .4rem; padding: .45rem; font-size: .75rem; }
.inline-form .button { min-height: 2.25rem; padding: .4rem .55rem; font-size: .75rem; }
.danger-action { border-left: 3px solid var(--red); padding-left: .55rem; }
.danger-action .inline-form { min-width: 10rem; }
.relationship-path { display: flex; min-width: 0; align-items: center; gap: .5rem; overflow-wrap: anywhere; }
.relationship-path code { min-width: 0; overflow-wrap: anywhere; font-size: .75rem; }
.relationship-path span { flex: 0 0 auto; color: var(--green); font-weight: 900; }
.edge-type { color: var(--green-dark); font-size: .8rem; font-weight: 850; letter-spacing: .04em; }
.timeline { max-width: 58rem; }
.timeline-item { display: grid; grid-template-columns: 1rem minmax(0, 1fr); gap: .65rem; }
.timeline-dot { width: .6rem; height: .6rem; margin-top: .25rem; border-radius: 50%; background: var(--green); }
.admin-note { margin: 1.2rem 0 0; border-radius: .65rem; padding: .8rem .9rem; background: var(--green-pale); color: var(--ink-soft); font-size: .76rem; line-height: 1.55; }
.admin-note strong { color: var(--ink); }
.pagination { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.2rem; color: var(--ink-soft); font-size: .75rem; }
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }

@media (max-width: 1000px) {
  .admin-route-header, .admin-two-column { grid-template-columns: 1fr; }
  .admin-card-grid, .record-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-metrics, .preview-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
  .lineage-row { grid-template-columns: 1fr; }
  .lineage-evidence { grid-column: 1; }
  .admin-route-header h1 { max-width: 100%; font-size: clamp(1.625rem, 7vw, 2rem); }
  .admin-route-context { border-top: 1px solid var(--line); border-left: 0; padding: .65rem 0 0; }
  .admin-scope { align-items: flex-start; }
  .admin-nav { display: grid; gap: .55rem; }
  .admin-nav-group { align-items: flex-start; }
  .admin-nav-group > span { width: 4.8rem; padding-top: .5rem; }
  .admin-overview-context { align-items: flex-start; flex-direction: column; gap: .6rem; }
  .admin-card-grid, .record-grid, .admin-metrics, .preview-summary, .form-grid { grid-template-columns: 1fr; }
  .form-wide { grid-column: auto; }
  .receipt-grid { grid-template-columns: 1fr 1fr; }
  .pagination { align-items: flex-start; flex-direction: column; }
  .data-card-top { align-items: flex-start; flex-direction: column; }
  .data-card-top code { text-align: left; }
  .field-list > div, .payload-fields > div { grid-template-columns: 1fr; gap: .15rem; }
  .admin-table { min-width: 620px; }
}

/* Feature 006 operational application shell and records. */
.operational-body {
  min-width: 320px;
  background: #f5f7f8;
}

.skip-link {
  position: fixed;
  z-index: 100;
  top: .5rem;
  left: .5rem;
  transform: translateY(-160%);
  border-radius: .4rem;
  padding: .6rem .8rem;
  background: var(--green-dark);
  color: #fff;
  font-weight: 800;
}

.skip-link:focus { transform: translateY(0); }

.app-header {
  position: sticky;
  z-index: 20;
  top: 0;
  display: grid;
  min-width: 0;
  min-height: 3.8rem;
  align-items: center;
  gap: 1rem;
  border-bottom: 1px solid var(--line);
  padding: .65rem clamp(1rem, 3vw, 3rem);
  grid-template-columns: auto minmax(0, 1fr) auto;
  background: rgba(255,255,255,.97);
}

.app-header .brand-logo { width: 6.2rem; }
.app-header .brand small { padding-left: .7rem; font-size: .75rem; }

.primary-nav {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: center;
  gap: .15rem;
}

.primary-nav a {
  border-radius: .4rem;
  padding: .52rem .72rem;
  color: var(--ink-soft);
  font-size: .78rem;
  font-weight: 760;
  text-decoration: none;
}

.primary-nav a:hover,
.primary-nav a:focus-visible,
.primary-nav a[aria-current="page"] {
  background: var(--green-pale);
  color: var(--green-dark);
}

.session-actions {
  display: flex;
  align-items: center;
  gap: .7rem;
}

.session-actions form { margin: 0; }

.text-button {
  border: 0;
  padding: .4rem;
  background: transparent;
  color: var(--green-dark);
  cursor: pointer;
  font: inherit;
  font-size: .75rem;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: .2rem;
}

.environment-disclosure {
  display: flex;
  min-height: 2rem;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  border-bottom: 1px solid #cbdde6;
  padding: .4rem 1rem;
  background: var(--green-pale);
  color: var(--green-dark);
  font-size: .75rem;
  font-weight: 780;
}

.environment-disclosure span {
  width: .42rem;
  height: .42rem;
  border-radius: 50%;
  background: var(--green);
}

.operational-shell {
  width: min(calc(100% - 2rem), var(--width-operational));
  min-height: calc(100vh - 9rem);
  margin: 0 auto;
  padding: 1.6rem 0 2.5rem;
}

.page-width-standard .operational-shell { max-width: var(--width-standard); }
.page-width-data .operational-shell { max-width: var(--width-data); }
.page-width-reading .operational-shell { max-width: var(--width-reading); }
.page-width-contained .operational-shell { max-width: var(--width-contained); }
.page-width-login { --page-width-role: login; }
.page-width-operational { --page-width-role: operational; }
.overview-page,
.catalog-page,
.product-page,
.relationship-inbox-page,
.identifier-page,
.publication-page,
.query-page { --page-surface-role: read; }
.data-page-heading { --page-heading-role: data; }

.app-footer {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  border-top: 1px solid var(--line);
  padding: 1rem clamp(1rem, 3vw, 3rem);
  color: var(--ink-soft);
  font-size: .75rem;
}

.page-heading {
  display: grid;
  min-width: 0;
  align-items: end;
  gap: clamp(1rem, 4vw, 4rem);
  margin-bottom: 1rem;
  grid-template-columns: minmax(0, 1.45fr) minmax(18rem, .55fr);
}

.page-heading > * { min-width: 0; }

.section-kicker {
  margin: 0 0 .4rem;
  color: var(--green);
  font-size: .67rem;
  font-weight: 850;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.page-heading h1 {
  margin: 0;
  overflow-wrap: anywhere;
  font-size: clamp(1.875rem, 2.8vw, 2.25rem);
  letter-spacing: -.055em;
  line-height: 1;
}

.page-heading > div > p:last-child {
  max-width: 62rem;
  margin: .7rem 0 0;
  color: var(--ink-soft);
  font-size: .84rem;
  line-height: 1.55;
}

.record-meta {
  display: grid;
  min-width: 0;
  gap: .55rem;
  margin: 0;
  border-left: 2px solid var(--green);
  padding-left: 1rem;
}

.record-meta div { display: grid; min-width: 0; grid-template-columns: 6.5rem minmax(0, 1fr); }
.record-meta dt { color: var(--ink-soft); font-size: .75rem; font-weight: 750; }
.record-meta dd { min-width: 0; margin: 0; overflow-wrap: anywhere; font-size: .75rem; font-weight: 780; }
.record-meta code { font-size: .75rem; }

.summary-grid {
  display: grid;
  gap: .65rem;
  margin: 1rem 0;
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.read-summary-strip {
  margin: .8rem 0;
}

.read-summary-strip article {
  min-height: 5.7rem;
}

.read-summary-strip strong {
  font-size: 1.65rem;
}

.summary-grid article {
  display: grid;
  min-width: 0;
  min-height: 7.4rem;
  align-content: space-between;
  border: 1px solid var(--line);
  border-radius: .65rem;
  padding: .8rem;
  background: var(--surface);
}

.summary-grid strong { font-size: 2rem; letter-spacing: -.05em; }
.summary-grid small { color: var(--ink-soft); font-size: .75rem; }

.ownership-label,
.state-badge {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  align-items: center;
  border-radius: 999px;
  padding: .25rem .48rem;
  font-size: .75rem;
  font-weight: 850;
  letter-spacing: .035em;
  line-height: 1.2;
  text-transform: uppercase;
}

.ownership-baseline { background: #e9eef1; color: #435965; }
.ownership-overlay { background: var(--amber-pale); color: var(--amber); }
.ownership-canonical { background: var(--green-pale); color: var(--green-dark); }
.ownership-evidence { background: #e9e5f8; color: #4b3d7c; }
.ownership-derived { background: #e8f2ed; color: #1d6545; }
.state-badge { background: #edf1f3; color: var(--ink-soft); }
.state-confirmed { background: #ddf0e5; color: #155c3a; }
.state-withheld { background: var(--amber-pale); color: var(--amber); }
.state-warning { background: var(--amber-pale); color: var(--amber); }

.workspace-launcher {
  margin-bottom: 1rem;
  border: 1px solid #bfd0d8;
  border-radius: .75rem;
  padding: clamp(.8rem, 2vw, 1.1rem);
  background: linear-gradient(135deg, #eef5f7 0%, #f8fafb 62%, #f3f0f7 100%);
}
.workspace-launcher-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: .8rem;
}
.workspace-launcher-heading h2 { margin: .08rem 0 0; font-size: 1.05rem; letter-spacing: -.02em; }
.workspace-launcher-heading > p { max-width: 35rem; margin: 0; color: var(--ink-soft); font-size: .72rem; line-height: 1.45; }
.workspace-actions { display: grid; gap: .7rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.read-context-links { margin-bottom: 1rem; }

.record-section-nav {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem .45rem;
  margin: .8rem 0 1rem;
  border-bottom: 1px solid var(--line);
  padding-bottom: .45rem;
}

.record-section-nav a {
  border-radius: .4rem;
  padding: .4rem .55rem;
  color: var(--ink-soft);
  font-size: .75rem;
  font-weight: 800;
  text-decoration: none;
}

.record-section-nav a:hover,
.record-section-nav a:focus-visible {
  background: var(--green-pale);
  color: var(--green-dark);
}

.record-quickfacts {
  min-width: 0;
  margin: .8rem 0;
  border: 1px solid var(--line);
  border-radius: .7rem;
  padding: .85rem;
  background: var(--surface);
}

.record-quickfacts .panel-heading {
  margin-bottom: .65rem;
}

.record-quickfacts .panel-heading h2 {
  margin: 0;
  font-size: 1.3rem;
  letter-spacing: -.035em;
}

.quick-fact-grid {
  display: grid;
  min-width: 0;
  gap: .55rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.quick-fact {
  display: grid;
  min-width: 0;
  gap: .3rem;
  align-content: start;
  border: 1px solid var(--line);
  border-radius: .5rem;
  padding: .65rem;
  background: #fbfcfd;
}

.quick-fact > span:first-child {
  color: var(--ink-soft);
  font-size: .75rem;
  font-weight: 850;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.quick-fact strong {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: .83rem;
}

.quick-fact small {
  min-width: 0;
  overflow-wrap: anywhere;
  color: var(--ink-soft);
  font-size: .75rem;
  line-height: 1.4;
}

.primary-fitment-card {
  border-left: 3px solid var(--green);
  background: var(--green-pale);
  grid-column: span 2;
}

.record-context-grid {
  margin-top: .8rem;
}

.workspace-card {
  --workspace-accent: #005f8f;
  display: grid;
  min-width: 0;
  min-height: 6.5rem;
  align-items: center;
  gap: .8rem;
  grid-template-columns: 2.55rem minmax(0, 1fr) auto;
  border: 1px solid color-mix(in srgb, var(--workspace-accent) 30%, #d9e2e6);
  border-left: .32rem solid var(--workspace-accent);
  border-radius: .6rem;
  padding: .8rem .85rem;
  background: rgba(255, 255, 255, .9);
  color: var(--ink);
  text-decoration: none;
  box-shadow: 0 2px 8px rgba(16, 47, 65, .045);
  transition: transform 120ms ease, border-color 120ms ease, box-shadow 120ms ease;
}
.workspace-card:hover,
.workspace-card:focus-visible {
  border-color: var(--workspace-accent);
  box-shadow: 0 10px 24px rgba(16, 47, 65, .13);
  outline: 3px solid color-mix(in srgb, var(--workspace-accent) 22%, transparent);
  outline-offset: 2px;
  transform: translateY(-2px);
}
.workspace-card-catalog { --workspace-accent: #005f8f; }
.workspace-card-relationships { --workspace-accent: #006b73; }
.workspace-card-queries { --workspace-accent: #67418c; }
.workspace-card-admin { --workspace-accent: #8a4b00; }
.workspace-card-icon {
  display: inline-grid;
  width: 2.55rem;
  height: 2.55rem;
  place-items: center;
  border-radius: .55rem;
  background: var(--workspace-accent);
  color: #fff;
  font: 850 .65rem var(--font-data);
  letter-spacing: .04em;
}
.workspace-card-copy { display: grid; min-width: 0; gap: .16rem; }
.workspace-card-eyebrow { color: var(--workspace-accent); font-size: .63rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.workspace-card strong { font-size: .9rem; line-height: 1.25; }
.workspace-card small { color: var(--ink-soft); font-size: .7rem; line-height: 1.4; }
.workspace-card-arrow { color: var(--workspace-accent); font-size: 1.25rem; font-weight: 900; transition: transform 120ms ease; }
.workspace-card:hover .workspace-card-arrow,
.workspace-card:focus-visible .workspace-card-arrow { transform: translateX(.2rem); }

.operational-panel {
  min-width: 0;
  margin-top: .8rem;
  border: 1px solid var(--line);
  border-radius: .7rem;
  padding: 1rem;
  background: var(--surface);
}

/* Stable template components: every authenticated state has an intentional
   surface, including receipts, derived records, and empty/success notices. */
.visualization-panel { min-width: 0; }
.product-heading { align-items: end; }
.receipt-panel {
  display: grid;
  gap: 1rem;
  margin: .8rem 0;
  border: 1px solid #b7d8c8;
  border-left: 4px solid var(--green);
  border-radius: .7rem;
  padding: 1rem 1.2rem;
  background: #f2faf6;
}
.receipt-panel h2 { margin: .2rem 0 .3rem; font-size: 1.15rem; }
.receipt-panel p:not(.section-kicker) { margin: 0; color: var(--ink-soft); font-size: .75rem; line-height: 1.5; }
.amendment-panel { border-top: 3px solid var(--amber); }
.normalized-card { border-top: 3px solid var(--green); }
.alert {
  border-radius: .45rem;
  padding: .65rem .75rem;
  font-size: .75rem;
  line-height: 1.45;
}
.alert strong { color: var(--ink); }
.alert ul { margin: .35rem 0 0; padding-left: 1.1rem; }
.alert-warning { border-left: 3px solid var(--amber); background: var(--amber-pale); color: var(--amber); }
.alert-success { border-left: 3px solid var(--green); background: var(--green-pale); color: var(--green-dark); }

.operational-panel .panel-heading { align-items: center; margin-bottom: .8rem; }
.operational-panel .panel-heading h2 { margin: 0; font-size: 1.3rem; letter-spacing: -.035em; }
.operational-panel .panel-heading .section-kicker { margin-bottom: .2rem; }

.panel-note,
.boundary-note {
  margin: .8rem 0 0;
  border-radius: .45rem;
  padding: .65rem .75rem;
  background: #f0f4f6;
  color: var(--ink-soft);
  font-size: .75rem;
  line-height: 1.5;
}

.boundary-note { border-left: 3px solid var(--green); background: var(--green-pale); color: var(--green-dark); }

.ownership-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .45rem .65rem;
  margin: .8rem 0;
  border: 1px solid var(--line);
  border-radius: .55rem;
  padding: .65rem .75rem;
  background: var(--surface);
  color: var(--ink-soft);
  font-size: .75rem;
}

.contained-table,
.graph-viewport {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
}

.contained-table { border: 1px solid var(--line); border-radius: .5rem; }
.contained-table table { min-width: 720px; }
.catalog-table table { min-width: 1040px; }
.catalog-graph-page .operational-shell { max-width: var(--width-data); }
.relationship-inbox-page .operational-shell { max-width: var(--width-data); }
.relationship-inbox-filters { margin: 1rem 0; }
.relationship-inbox-table .admin-table { min-width: 980px; }
.relationship-inbox-table .admin-table th[scope="row"] { min-width: 10rem; }
.inbox-severity { display: inline-block; border: 1px solid currentColor; border-radius: .35rem; padding: .18rem .38rem; font-size: .68rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.inbox-severity-blocking { color: #9b2c2c; background: #fff3f2; }
.inbox-severity-review { color: #8a4b00; background: #fff8e8; }
.inbox-severity-context { color: #175c70; background: #eef9fc; }
.inbox-observed { display: grid; gap: .15rem; margin: .55rem 0 0; color: var(--ink-soft); font-size: .7rem; }
.inbox-observed div { display: flex; gap: .4rem; }
.inbox-observed dt { font-weight: 750; text-transform: capitalize; }
.inbox-observed dd { margin: 0; }
.inbox-scope-marker { display: inline-block; margin-right: .35rem; border-radius: .25rem; padding: .15rem .3rem; background: var(--green-pale); color: var(--green-dark); font-size: .65rem; font-weight: 850; text-transform: uppercase; }
.inbox-explain-form { display: inline-block; margin-top: .45rem; }
.inbox-explain-form .button { min-width: 44px; min-height: 44px; }
.inbox-explanation-row td { border-top: 0; background: #f7fbfb; }
.inbox-explanation { border-left: 3px solid var(--green); padding: .85rem 1rem; }
.inbox-explanation h3 { margin: 0 0 .3rem; }
.inbox-explanation p { max-width: 75ch; }
.inbox-review-label { color: var(--ink-soft); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.inbox-explanation ul { margin: .35rem 0 .75rem; }
.scope-summary { display: grid; gap: .7rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 1rem 0; }
.scope-summary > div { display: flex; min-width: 0; flex-wrap: wrap; align-items: baseline; gap: .35rem .65rem; border: 1px solid var(--line); border-radius: .55rem; padding: .7rem; background: #fbfcfc; }
.scope-summary strong { flex-basis: 100%; font-size: .78rem; }
.scope-summary span { color: var(--ink-soft); font-size: .72rem; }
.reconciliation-summary { display: grid; gap: .7rem; margin: 1rem 0; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.reconciliation-summary article { display: grid; gap: .18rem; border: 1px solid var(--line); border-radius: .55rem; padding: .75rem; background: #fbfcfc; }
.reconciliation-summary strong { font-size: 1.45rem; }
.reconciliation-summary span { color: var(--ink-soft); font-size: .72rem; }
.catalog-graph-fallback { border-top: 3px solid var(--green); }
.catalog-graph-status { margin: 0 0 .8rem; border-left: 3px solid var(--green); border-radius: .4rem; padding: .65rem .75rem; background: var(--green-pale); color: var(--green-dark); font-size: .75rem; line-height: 1.5; }
.catalog-aggregate-graph { background: #f7f9fa; }
.catalog-aggregate-graph svg { width: 100%; height: auto; min-height: 18rem; }
.catalog-axis { stroke: #8ea1aa; stroke-width: 1; }
.catalog-bar { fill: var(--green); }
.catalog-bar-relationship { fill: var(--green-dark); }
.catalog-bar-count, .catalog-axis-label { fill: var(--ink); font: 700 .72rem var(--font-data); }
.catalog-bar-label { fill: var(--ink-soft); font: .55rem var(--font-data); writing-mode: vertical-rl; transform: rotate(180deg); }
.catalog-facet-summary { display: grid; gap: .55rem; margin: .8rem 0 0; }
.catalog-facet-summary div { display: grid; gap: .45rem; grid-template-columns: 9rem minmax(0, 1fr); }
.catalog-facet-summary dt { color: var(--ink-soft); font-size: .75rem; font-weight: 850; text-transform: uppercase; }
.catalog-facet-summary dd { display: flex; min-width: 0; flex-wrap: wrap; gap: .35rem .7rem; margin: 0; font-size: .75rem; }
.catalog-facet-summary dd span { overflow-wrap: anywhere; }

/* Route-specific semantic catalog displays. Family color is paired with a
   text label or marker so it is never the sole carrier of meaning. */
.relationship-family-summary { display: grid; gap: .7rem; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
.relationship-family-card { min-width: 0; border: 1px solid var(--line); border-top: .3rem solid var(--relationship-color, var(--green)); border-radius: .5rem; padding: .75rem; background: #fff; }
.relationship-family-heading { display: flex; align-items: center; gap: .45rem; }
.relationship-family-heading h3 { flex: 1; margin: 0; color: var(--ink); font-size: .82rem; }
.relationship-family-heading strong { color: var(--relationship-color, var(--green-dark)); font: 850 .85rem var(--font-data); }
.relationship-family-marker { display: inline-grid; width: 1.7rem; height: 1.45rem; place-items: center; border-radius: .25rem; background: var(--relationship-color, var(--green)); color: #fff; font: 850 .6rem var(--font-data); }
.relationship-family-card p { margin: .55rem 0; color: var(--ink-soft); font-size: .72rem; line-height: 1.45; }
.relationship-family-types { display: flex; flex-wrap: wrap; gap: .25rem; }
.relationship-family-types span { border: 1px solid color-mix(in srgb, var(--relationship-color, var(--green)) 45%, #fff); border-radius: .25rem; padding: .2rem .3rem; color: var(--ink-soft); font: 700 .62rem var(--font-data); overflow-wrap: anywhere; }
.relationship-chip { display: inline-flex; max-width: 100%; align-items: center; gap: .25rem; border-left: .25rem solid var(--relationship-color, var(--green)); border-radius: .25rem; padding: .2rem .35rem; background: color-mix(in srgb, var(--relationship-color, var(--green)) 12%, #fff); color: var(--ink); font: 800 .63rem var(--font-data); overflow-wrap: anywhere; }
.relationship-chip.relationship-family-identity { --relationship-color: #005f8f; }
.relationship-chip.relationship-family-compatibility { --relationship-color: #14734f; }
.relationship-chip.relationship-family-reference { --relationship-color: #8a4b00; }
.relationship-chip.relationship-family-lifecycle { --relationship-color: #67418c; }
.relationship-chip.relationship-family-commercial { --relationship-color: #843858; }
.relationship-chip.relationship-family-taxonomy { --relationship-color: #4b5f6b; }
.relationship-chip.relationship-family-composition { --relationship-color: #006b73; }
.relationship-chip.relationship-family-provenance { --relationship-color: #6b512c; }
.relationship-type-represents-part, .relationship-type-identified-by { --relationship-color: #005f8f; }
.relationship-type-fits { --relationship-color: #14734f; }
.relationship-type-references-oe, .relationship-type-replaces, .relationship-type-interchanges-with { --relationship-color: #8a4b00; }
.relationship-type-supersedes, .relationship-type-has-variant { --relationship-color: #67418c; }
.relationship-type-manufactured-by, .relationship-type-sold-by { --relationship-color: #843858; }
.relationship-type-category { --relationship-color: #4b5f6b; }
.relationship-type-part-of, .relationship-type-requires { --relationship-color: #006b73; }
.relationship-type-derived-from { --relationship-color: #6b512c; }
.relationship-family-process { --relationship-color: #36566b; }
.compatibility, .process { --relationship-color: var(--green); }
.builder-support-panel, .catalog-2d-summary, .catalog-focus-panel, .catalog-matrix-panel { min-width: 0; }
.matrix-cell { min-width: 4.1rem; text-align: center; font-variant-numeric: tabular-nums; }
.matrix-cell-populated { background: color-mix(in srgb, var(--relationship-color, var(--green)) 10%, #fff); border-left: .22rem solid var(--relationship-color, var(--green)); font-weight: 850; }
.catalog-matrix-table table { min-width: 52rem; }
.catalog-focus-map { overflow-x: auto; border: 1px solid var(--line); border-radius: .5rem; background: #fbfcfd; }
.catalog-focus-map svg { display: block; width: 100%; min-width: 42rem; height: auto; }
.catalog-focus-edge { stroke-width: 2.5; }
.catalog-focus-edge-label { font: 800 10px var(--font-data); }
.catalog-focus-node rect { stroke: var(--ink-soft); stroke-width: 1.2; fill: #fff; }
.catalog-focus-node-depth-0 rect { stroke: var(--green-dark); stroke-width: 2.5; fill: var(--green-pale); }
.catalog-focus-node-label { fill: var(--ink); font-size: 12px; font-weight: 850; }
.catalog-focus-node-meta { fill: var(--ink-soft); font: 10px var(--font-data); }
.optional-topology { margin: 1rem 0; border: 1px solid var(--line); border-radius: .55rem; background: #fff; }
.optional-topology > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 1rem; color: var(--green-dark); cursor: pointer; }
.optional-topology > summary > span:first-child { display: grid; gap: .2rem; }
.optional-topology > summary small { color: var(--ink-soft); font-size: .72rem; }
.optional-topology > .catalog-explorer { margin: 0; border: 0; border-top: 1px solid var(--line); border-radius: 0 0 .55rem .55rem; }
.support-flow { display: grid; min-width: 0; align-items: stretch; gap: .6rem; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr); }
.support-flow-stage { min-width: 0; border: 1px solid var(--line); border-top: .28rem solid var(--relationship-color, var(--green)); border-radius: .45rem; padding: .65rem; background: #fff; }
.support-flow-stage h3 { margin: 0 0 .55rem; font-size: .78rem; }
.support-flow-stage ul { display: grid; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.support-flow-stage li { display: grid; min-width: 0; gap: .2rem; border-top: 1px solid var(--line); padding-top: .4rem; }
.support-flow-stage li:first-child { border-top: 0; padding-top: 0; }
.support-flow-stage small { color: var(--ink-soft); font-size: .7rem; overflow-wrap: anywhere; }
.support-flow-stage a { display: grid; gap: .2rem; color: var(--green-dark); text-decoration: none; }
.support-flow-stage a:hover strong, .support-flow-stage a:focus-visible strong { text-decoration: underline; }
.support-flow-rules { --relationship-color: #36566b; }
.support-flow-products { --relationship-color: #005f8f; }
.support-flow-outcomes { --relationship-color: #14734f; }
.support-flow-arrow { display: grid; place-items: center; color: var(--ink-soft); font-size: 1.4rem; font-weight: 850; }
.support-flow-links { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; gap: .6rem .9rem; margin-top: .8rem; color: var(--ink-soft); font-size: .72rem; }
.support-flow-links > span { overflow-wrap: anywhere; }
.contextual-actions { display: flex; flex-wrap: wrap; align-items: stretch; gap: .45rem; margin-top: .75rem; }
.contextual-actions .button {
  min-height: 2.4rem;
  margin-top: 0;
  padding: .52rem .75rem;
  font-size: .75rem;
  line-height: 1.2;
}
.admin-nav-note { margin: -.35rem 0 1rem; color: var(--ink-soft); font-size: .72rem; line-height: 1.45; }
.admin-relationship-table { min-width: 0; }
.admin-relationship-table .admin-table-wrap { overflow-x: auto; }
.admin-relationship-table .admin-table { min-width: 58rem; }
.catalog-graph-table table { min-width: 900px; }
.catalog-explorer { border-top: 3px solid #0b344d; }
.catalog-explorer-page .operational-shell { max-width: var(--width-data); }
.explorer-heading { margin-bottom: 1.1rem; }
.explorer-stage-heading { margin-bottom: .25rem; }
.explorer-disclosure { margin: 0 0 .7rem; color: var(--ink-soft); font-size: .75rem; }
.catalog-explorer-canvas-wrap { box-shadow: 0 1.2rem 3rem rgba(6, 26, 43, .18); }
.catalog-explorer-canvas-wrap::before,
.catalog-explorer-canvas-wrap::after { position: absolute; z-index: 1; display: block; width: 9rem; height: 9rem; border: 1px solid rgba(84, 199, 179, .18); border-radius: 50%; content: ""; pointer-events: none; }
.catalog-explorer-canvas-wrap::before { top: 12%; left: 14%; box-shadow: 0 0 0 1.2rem rgba(84, 199, 179, .03), 0 0 0 2.4rem rgba(84, 199, 179, .025); }
.catalog-explorer-canvas-wrap::after { right: 9%; bottom: 7%; width: 5rem; height: 5rem; border-color: rgba(216, 179, 106, .2); box-shadow: 0 0 0 1rem rgba(216, 179, 106, .03); }
.explorer-legend { display: flex; flex-wrap: wrap; gap: .45rem 1rem; margin: .75rem 0 0; color: #d5e8ed; font: 700 .68rem var(--font-data); }
.explorer-legend span { display: inline-flex; align-items: center; gap: .35rem; }
.explorer-dot { display: inline-block; width: .55rem; height: .55rem; border-radius: 50%; box-shadow: 0 0 .4rem currentColor; }
.explorer-dot-product { color: #54c7b3; background: #54c7b3; }
.explorer-dot-part { color: #73a9d8; background: #73a9d8; }
.explorer-dot-identifier { color: #d8b36a; background: #d8b36a; }
.explorer-dot-vehicle { color: #f09a72; background: #f09a72; }
.explorer-dot-category { color: #9bc27b; background: #9bc27b; }
.explorer-dot-organization { color: #b58bd8; background: #b58bd8; }
.explorer-ledger { display: grid; gap: .8rem; }
.explorer-ledger table { min-width: 58rem; }
.catalog-explorer .visualization-table-disclosure { border-color: #315b71; background: #092239; }
.catalog-explorer .visualization-table-disclosure summary { color: #9ce8dc; }
.catalog-explorer .visualization-table-disclosure .contained-table { background: #fff; }

/* Full-screen cinematic Product intelligence map. */
.graph-viis-body { overflow: hidden; background: #03070d; color: #e8f5f5; }
.graph-viis-skip { position: fixed; z-index: 20; top: -4rem; left: 1rem; padding: .7rem 1rem; background: #55d2bd; color: #031016; }
.graph-viis-skip:focus { top: 1rem; }
.graph-viis-shell { min-height: 100vh; background: radial-gradient(circle at 50% 48%, #0c2630 0, #06131d 38%, #03070d 76%); font-family: var(--font-body); }
.graph-viis-topbar { position: absolute; z-index: 10; top: 0; right: 0; left: 0; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.4rem; border-bottom: 1px solid rgba(126, 204, 198, .16); background: linear-gradient(180deg, rgba(3, 7, 13, .95), rgba(3, 7, 13, 0)); }
.graph-viis-brand { display: inline-flex; align-items: center; gap: .55rem; color: #efffff; font: 850 .78rem var(--font-data); letter-spacing: .18em; text-decoration: none; }
.graph-viis-brand small { display: block; margin-top: .18rem; color: #6e999d; font-size: .48rem; letter-spacing: .16em; }
.graph-viis-brand-mark { display: grid; width: 1.8rem; height: 1.8rem; place-items: center; border: 1px solid #55d2bd; border-radius: 50%; color: #55d2bd; font: 900 1rem var(--font-display); box-shadow: 0 0 1.2rem rgba(85, 210, 189, .3); }
.graph-viis-live { color: #78aaa9; font: 700 .58rem var(--font-data); letter-spacing: .13em; }
.graph-viis-live i { display: inline-block; width: .4rem; height: .4rem; margin-right: .35rem; border-radius: 50%; background: #55d2bd; box-shadow: 0 0 .7rem #55d2bd; }
.graph-viis-live span { color: #35565e; padding: 0 .45rem; }
.graph-viis-exit { color: #b9d1d1; font: 700 .65rem var(--font-data); text-decoration: none; letter-spacing: .08em; }
.graph-viis-exit:hover { color: #55d2bd; }
.graph-viis-stage { display: grid; min-height: 100vh; padding: 5rem 1.4rem 1.2rem; grid-template-columns: minmax(15rem, 20rem) minmax(34rem, 1fr) minmax(16rem, 20rem); gap: 1.2rem; }
.graph-viis-copy { align-self: center; max-width: 19rem; padding-bottom: 4rem; }
.graph-viis-eyebrow, .graph-viis-rail-kicker { margin: 0 0 .7rem; color: #55d2bd; font: 800 .58rem var(--font-data); letter-spacing: .18em; }
.graph-viis-copy h1 { margin: 0 0 1.2rem; color: #f0ffff; font: 650 clamp(2rem, 4vw, 4rem)/.93 var(--font-display); letter-spacing: -.04em; }
.graph-viis-copy h1 em { color: #55d2bd; font-style: normal; text-shadow: 0 0 1.8rem rgba(85, 210, 189, .3); }
.graph-viis-copy > p:last-child { max-width: 18rem; color: #8ca8ab; font-size: .78rem; line-height: 1.7; }
.graph-viis-canvas-wrap { position: relative; align-self: center; min-width: 0; height: min(78vh, 720px); border: 1px solid rgba(100, 194, 190, .22); border-radius: 1.2rem; overflow: hidden; background: rgba(4, 13, 21, .3); box-shadow: inset 0 0 6rem rgba(27, 103, 111, .13), 0 1.5rem 5rem rgba(0, 0, 0, .35); }
.graph-viis-canvas { display: block; width: 100%; height: 100%; }
.graph-viis-caption { position: absolute; right: 1rem; bottom: .8rem; left: 1rem; margin: 0; color: #709396; font: 700 .58rem var(--font-data); letter-spacing: .08em; text-transform: uppercase; }
.gv-grid-line { stroke: rgba(84, 176, 178, .08); stroke-width: 1; }
.gv-edge { cursor: pointer; outline: none; }
.gv-edge-beam { fill: none; stroke-width: 1.2; stroke-opacity: .43; transition: stroke-width .2s, stroke-opacity .2s; }
.gv-edge:hover .gv-edge-beam, .gv-edge:focus .gv-edge-beam { stroke-width: 3.5; stroke-opacity: 1; filter: url(#graph-glow); }
.gv-edge-label-bg { fill: rgba(4, 13, 21, .9); stroke: rgba(148, 201, 196, .24); stroke-width: 1; }
.gv-edge-label { fill: #b4cecc; font: 700 8px var(--font-data); letter-spacing: .05em; }
.gv-node { cursor: pointer; outline: none; }
.gv-node-card { fill: rgba(7, 20, 30, .92); stroke: #426a73; stroke-width: 1; transition: fill .2s, stroke .2s, filter .2s; }
.gv-node:hover .gv-node-card, .gv-node:focus .gv-node-card { fill: #102f37; stroke: #a5f5e4; stroke-width: 2; filter: url(#graph-glow); }
.gv-node-root .gv-node-card { fill: url(#graph-core); stroke: #b7fff0; stroke-width: 1.5; filter: url(#graph-glow); }
.gv-node-type { fill: #83aaa9; font: 800 7px var(--font-data); letter-spacing: .13em; }
.gv-node-root .gv-node-type { fill: #052d2a; }
.gv-node-name { fill: #e7f7f5; font: 750 11px var(--font-body); }
.gv-node-root .gv-node-name { fill: #04221f; font-size: 14px; }
.gv-node-key { fill: rgba(4, 34, 31, .72); font: 700 8px var(--font-data); }
.gv-core { fill: #fff; box-shadow: 0 0 1rem #fff; }
.graph-viis-rail { align-self: center; padding: 1.2rem; border: 1px solid rgba(100, 194, 190, .2); border-radius: .9rem; background: rgba(4, 13, 21, .7); box-shadow: 0 .8rem 3rem rgba(0,0,0,.25); }
.graph-viis-select-label { display: block; margin-bottom: .45rem; color: #a9c0c0; font-size: .7rem; }
.graph-viis-rail select { width: 100%; min-height: 2.5rem; border: 1px solid #315863; border-radius: .3rem; padding: .5rem; background: #091c27; color: #e7f7f5; font: .7rem var(--font-data); }
.graph-viis-focus { margin: 1rem 0; padding: 1rem 0; border-top: 1px solid rgba(100, 194, 190, .2); border-bottom: 1px solid rgba(100, 194, 190, .2); }
.graph-viis-focus-label { display: block; margin-bottom: .35rem; color: #55d2bd; font: 800 .55rem var(--font-data); letter-spacing: .14em; }
.graph-viis-focus strong { display: block; color: #efffff; font: 750 1.05rem var(--font-display); line-height: 1.1; }
.graph-viis-focus code { display: block; margin-top: .45rem; color: #709396; font-size: .62rem; }
.graph-viis-focus-stats { display: flex; gap: 2rem; margin-top: 1rem; }
.graph-viis-focus-stats b { display: block; color: #55d2bd; font: 850 1.35rem var(--font-data); }
.graph-viis-focus-stats small { color: #789698; font-size: .57rem; text-transform: uppercase; }
.graph-viis-inspector { min-height: 10rem; }
.graph-viis-inspector > strong { display: block; color: #e8f5f5; font: 750 .95rem var(--font-display); }
.graph-viis-inspector > p { margin: .5rem 0 .8rem; color: #789698; font-size: .68rem; line-height: 1.5; }
.graph-viis-inspector dl { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; margin: 0; }
.graph-viis-inspector dt { color: #5d7e82; font: 800 .5rem var(--font-data); letter-spacing: .1em; }
.graph-viis-inspector dd { margin: .18rem 0 0; color: #b9d1d1; font: 700 .62rem var(--font-data); overflow-wrap: anywhere; }
.graph-viis-legend { display: grid; gap: .5rem; margin-top: 1.2rem; color: #91abad; font-size: .62rem; }
.gv-dot { display: inline-block; width: .5rem; height: .5rem; margin-right: .35rem; border-radius: 50%; background: #55d2bd; box-shadow: 0 0 .45rem currentColor; }
.gv-part { background: #7aa9ff; color: #7aa9ff; }.gv-context { background: #ffc56b; color: #ffc56b; }.gv-org { background: #db9bff; color: #db9bff; }.gv-product { background: #55d2bd; color: #55d2bd; }
.graph-viis-ledger { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.graph-viis-ledger:focus-within, .graph-viis-ledger[open] { position: relative; left: auto; width: auto; height: auto; margin: 0 1.4rem 1rem; overflow: auto; border: 1px solid #315863; }
.graph-viis-ledger summary { padding: .8rem; color: #55d2bd; cursor: pointer; font: 700 .7rem var(--font-data); }
.graph-viis-ledger-inner { display: grid; gap: .7rem; padding: .7rem; background: #fff; }
.graph-viis-ledger table { min-width: 55rem; border-collapse: collapse; color: #15262d; font-size: .72rem; }
.graph-viis-ledger th, .graph-viis-ledger td { padding: .4rem .55rem; border-bottom: 1px solid #dae3e5; text-align: left; }
@media (max-width: 1050px) { .graph-viis-stage { grid-template-columns: 1fr 1.7fr; } .graph-viis-copy { position: absolute; z-index: 2; top: 6rem; left: 2rem; max-width: 15rem; opacity: .95; } .graph-viis-canvas-wrap { grid-column: 1 / -1; height: calc(100vh - 7rem); } .graph-viis-rail { position: absolute; z-index: 3; right: 1.4rem; bottom: 1.5rem; width: 18rem; } }
@media (max-width: 680px) { .graph-viis-live { display: none; } .graph-viis-topbar { padding: .8rem; } .graph-viis-stage { padding: 4.5rem .6rem .6rem; } .graph-viis-copy { top: 5.5rem; left: 1rem; max-width: 12rem; } .graph-viis-copy h1 { font-size: 2rem; } .graph-viis-copy > p:last-child { display: none; } .graph-viis-canvas-wrap { height: calc(100vh - 5.2rem); border-radius: .7rem; } .graph-viis-rail { right: 1rem; bottom: 1rem; left: 1rem; width: auto; padding: .8rem; } .graph-viis-focus { display: none; } .graph-viis-legend { display: none; } }
@media (prefers-reduced-motion: reduce) { .gv-edge-beam, .gv-node-card { transition: none; } }
.catalog-explorer-controls { display: grid; min-width: 0; align-items: end; gap: .65rem; margin: .8rem 0 .65rem; grid-template-columns: minmax(12rem, 1.5fr) repeat(3, minmax(9rem, 1fr)); }
.catalog-explorer-controls label { display: grid; min-width: 0; gap: .25rem; color: var(--ink-soft); font-size: .72rem; font-weight: 800; }
.catalog-explorer-controls input,
.catalog-explorer-controls select { width: 100%; min-height: 2.35rem; border: 1px solid #9eafb7; border-radius: .35rem; padding: .45rem .55rem; background: #fff; color: var(--ink); font: inherit; }
.catalog-explorer-controls input:focus-visible,
.catalog-explorer-controls select:focus-visible,
.catalog-explorer-canvas:focus-visible,
.catalog-edge-button:focus-visible { outline: 3px solid #f0b323; outline-offset: 2px; }
.catalog-explorer-actions { display: flex; min-width: 0; flex-wrap: wrap; gap: .4rem; grid-column: 1 / -1; }
.catalog-explorer-actions .button { min-height: 2.25rem; padding: .42rem .65rem; font-size: .72rem; }
.catalog-explorer-summary { display: flex; min-width: 0; flex-wrap: wrap; gap: .4rem .9rem; margin: .55rem 0 .7rem; color: var(--ink-soft); font: 700 .72rem var(--font-data); }
.catalog-explorer-summary span { overflow-wrap: anywhere; }
.catalog-explorer-workspace { display: grid; min-width: 0; align-items: start; gap: .8rem; grid-template-columns: minmax(0, 1fr) minmax(18rem, 22rem); }
.catalog-explorer-canvas-wrap { position: relative; min-width: 0; height: 520px; overflow: hidden; border: 1px solid #17425d; border-radius: .5rem; background: #061a2b; }
.catalog-explorer-canvas { display: block; width: 100%; height: 100%; min-height: 18rem; }
.catalog-explorer-status { position: absolute; right: .7rem; bottom: .65rem; left: .7rem; border: 1px solid rgba(156, 232, 220, .35); border-radius: .35rem; padding: .45rem .55rem; background: rgba(6, 26, 43, .88); color: #d8e9ef; font-size: .72rem; line-height: 1.4; pointer-events: none; }
.catalog-explorer-inspector { min-width: 0; border: 1px solid var(--line); border-left: 3px solid var(--green); border-radius: .45rem; padding: .7rem; background: #fbfcfd; }
.catalog-explorer-inspector .panel-heading { align-items: baseline; }
.catalog-explorer-inspector h3 { margin: 0; font-size: .9rem; }
.catalog-explorer-inspector .panel-heading > span { color: var(--ink-soft); font-size: .72rem; }
.catalog-explorer-inspector p { margin: .35rem 0 0; color: var(--ink-soft); font-size: .72rem; line-height: 1.45; }
.catalog-inspector-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4rem; margin: .65rem 0 0; }
.catalog-inspector-grid div { min-width: 0; border: 1px solid var(--line); border-radius: .35rem; padding: .4rem .45rem; background: #f5f8f9; }
.catalog-inspector-grid dt { color: var(--ink-soft); font-size: .65rem; font-weight: 850; text-transform: uppercase; }
.catalog-inspector-grid dd { margin: .15rem 0 0; overflow-wrap: anywhere; color: var(--ink); font: 800 .7rem var(--font-data); }
.catalog-inspector-wide { grid-column: 1 / -1; }
.catalog-inspector-grid a { color: var(--green-dark); text-decoration: underline; }
.catalog-edge-selection { margin-top: .75rem; }
.catalog-edge-selection h4 { margin: 0 0 .35rem; color: var(--ink); font-size: .72rem; }
.catalog-edge-list { display: grid; gap: .35rem; max-height: 12rem; overflow: auto; }
.catalog-edge-button { width: 100%; border: 1px solid var(--line); border-radius: .35rem; padding: .42rem .5rem; background: #fff; color: var(--ink-soft); text-align: left; font: .68rem/1.35 var(--font-data); overflow-wrap: anywhere; cursor: pointer; }
.catalog-edge-button:hover { border-color: var(--green); color: var(--ink); }
.fail-list { margin: .7rem 0 0; padding-left: 1.2rem; color: var(--red-dark); font-size: .75rem; line-height: 1.5; }
.contained-table thead { background: #f2f5f6; }
.contained-table tbody tr:hover { background: #f8fafb; }
.contained-table th,
.contained-table td { padding: .62rem .7rem; font-size: .75rem; }
.contained-table th { font-size: .75rem; }
.contained-table th[scope="row"] { color: var(--ink); letter-spacing: 0; text-transform: none; }
.contained-table th small { display: block; margin-top: .25rem; color: var(--ink-soft); font-weight: 500; text-transform: none; }
.contained-table code { overflow-wrap: anywhere; font-size: .75rem; }

.record-link {
  display: grid;
  min-width: 15rem;
  gap: .25rem;
  color: var(--ink);
  text-decoration: none;
}

.record-link strong { font-size: .76rem; }
.record-link span { color: var(--ink-soft); font-size: .75rem; }
.record-link:hover strong, .record-link:focus-visible strong { color: var(--green); text-decoration: underline; }

.operational-graph { margin: 0 0 .8rem; border: 1px solid var(--line); border-radius: .5rem; overflow: hidden; background: #f7f9fa; }
.operational-graph figcaption { border-bottom: 1px solid var(--line); padding: .6rem .7rem; background: #fff; color: var(--ink-soft); font-size: .75rem; }
.operational-graph svg { display: block; width: auto; min-width: 0; height: auto; max-width: none; max-height: none; font-family: inherit; }
.visualization-description { max-width: 72rem; margin: 0 0 .75rem; color: var(--ink-soft); font-size: .75rem; line-height: 1.5; }
.visualization-toolbar { display: grid; min-width: 0; align-items: end; gap: .8rem; margin-bottom: .7rem; grid-template-columns: minmax(0, 1fr) minmax(12rem, .4fr); }
.visualization-bounds {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: .4rem;
  margin: 0 0 .65rem;
}
.visualization-bounds div,
.graph-inspector-grid div {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: .4rem;
  padding: .42rem .5rem;
  background: #f7f9fa;
}
.visualization-bounds dt,
.graph-inspector-grid dt { color: var(--ink-soft); font-size: .75rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.visualization-bounds dd,
.graph-inspector-grid dd { margin: .18rem 0 0; overflow-wrap: anywhere; color: var(--ink); font: 800 .75rem var(--font-data); }
.visualization-legend {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem .7rem;
  margin: 0 0 .7rem;
  color: var(--ink-soft);
  font-size: .75rem;
}
.visualization-legend span { display: inline-flex; align-items: center; gap: .3rem; }
.visualization-legend b { display: inline-block; width: .58rem; height: .58rem; border: 1px solid var(--green); border-radius: .15rem; background: var(--green-pale); }
.visualization-legend b[data-legend-scope="candidate"] { border-style: dashed; background: var(--amber-pale); }
.visualization-legend b[data-legend-scope="evidence"],
.visualization-legend b[data-legend-scope="typed-subject"] { border-radius: 50%; background: #edf2f4; }
.visualization-legend b[data-legend-scope="predecessor"] { width: .85rem; height: .12rem; border: 0; border-top: 2px dashed var(--green); border-radius: 0; background: transparent; }
.visualization-workspace { display: grid; min-width: 0; align-items: start; gap: .8rem; grid-template-columns: minmax(0, 1fr) minmax(18rem, 22rem); }
.visualization-canvas { min-width: 0; }
.graph-inspector {
  min-width: 0;
  margin: 0;
  border: 1px solid var(--line);
  border-left: 3px solid var(--green);
  border-radius: .45rem;
  padding: .6rem .7rem;
  background: #fbfcfd;
}
.graph-inspector-heading { display: flex; justify-content: space-between; gap: .8rem; align-items: baseline; color: var(--ink); font-size: .75rem; }
.graph-inspector-heading span { color: var(--ink-soft); font-size: .75rem; }
.graph-inspector p { margin: .3rem 0 0; color: var(--ink-soft); font-size: .75rem; line-height: 1.45; }
.graph-inspector-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .4rem; margin: .55rem 0 0; }
.graph-inspector-wide { grid-column: 1 / -1; }
.graph-controls { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; margin: 0 0 .65rem; }
.graph-controls .button { min-height: 2.25rem; padding: .4rem .65rem; font-size: .75rem; }
.graph-status { color: var(--ink-soft); font-size: .75rem; }
.graph-viewport { height: 520px; overflow: auto; overscroll-behavior: auto; scrollbar-color: var(--green) #edf2f4; }
.graph-viewport.is-enhanced { overflow: auto; overscroll-behavior: auto; touch-action: auto; }
.visualization-table-disclosure { min-width: 0; margin-top: .8rem; border: 1px solid var(--line); border-radius: .5rem; background: #fff; }
.visualization-table-disclosure summary { padding: .65rem .75rem; color: var(--green-dark); cursor: pointer; font-size: .75rem; font-weight: 850; }
.visualization-table-disclosure[open] summary { border-bottom: 1px solid var(--line); }
.visualization-table-disclosure .contained-table { border: 0; border-radius: 0; }
.visualization-glossary { margin-top: .8rem; border: 1px solid var(--line); border-radius: .5rem; background: #fff; }
.visualization-glossary > summary { padding: .65rem .75rem; color: var(--green-dark); cursor: pointer; font-size: .75rem; font-weight: 850; }
.relationship-glossary-list { display: grid; gap: .45rem; padding: .65rem .75rem .8rem; border-top: 1px solid var(--line); }
.relationship-glossary-item { border: 1px solid var(--line); border-radius: .4rem; background: #fbfcfd; }
.relationship-glossary-item summary { display: flex; align-items: center; gap: .45rem; padding: .45rem .55rem; cursor: pointer; font-size: .75rem; }
.relationship-glossary-item summary span:last-child { margin-left: auto; color: var(--ink-soft); font-size: .68rem; text-transform: uppercase; }
.relationship-glossary-item p { margin: 0; padding: 0 .65rem .55rem; color: var(--ink-soft); font-size: .75rem; line-height: 1.45; }
.relationship-glossary-item .glossary-treatment { padding-top: .35rem; border-top: 1px solid var(--line); font-family: var(--font-data); }
.relationship-family { display: inline-grid; width: 1.45rem; height: 1.25rem; place-items: center; border-radius: .25rem; color: #fff; font: 800 .62rem var(--font-data); }
.relationship-family-identity { background: #005f8f; }
.relationship-family-compatibility { background: #14734f; }
.relationship-family-reference { background: #8a4b00; }
.relationship-family-lifecycle { background: #67418c; }
.relationship-family-commercial { background: #843858; }
.relationship-family-taxonomy { background: #4b5f6b; }
.relationship-family-composition { background: #006b73; }
.relationship-family-provenance { background: #6b512c; }
.relationship-family-process { background: #36566b; }

/* Overview incident map: one relationship owns one readable row. */
.overview-relationship-map {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: .55rem;
  padding: clamp(.8rem, 2vw, 1.2rem);
  background: #f8fafb;
}
.overview-map-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.overview-map-heading h3 { margin: 0; font-size: 1.05rem; letter-spacing: -.02em; }
.overview-map-heading p:not(.section-kicker) { max-width: 48rem; margin: .3rem 0 0; color: var(--ink-soft); font-size: .76rem; line-height: 1.5; }
.overview-map-layout { display: grid; min-width: 0; align-items: start; gap: 1rem; grid-template-columns: minmax(0, 1fr) minmax(15rem, 1.1fr) minmax(0, 1fr); }
.overview-map-bidirectional { grid-template-areas: "inbound root outbound"; }
.overview-map-bidirectional .overview-direction-inbound { grid-area: inbound; }
.overview-map-bidirectional .overview-root-column { grid-area: root; }
.overview-map-bidirectional .overview-direction-outbound { grid-area: outbound; }
.overview-map-one-sided { grid-template-columns: minmax(0, 1fr) minmax(15rem, 1.1fr); }
.overview-root-column,
.overview-root-card,
.overview-direction,
.overview-map-inspector { min-width: 0; }
.overview-root-column {
  position: sticky;
  top: 4.6rem;
  display: grid;
  max-height: calc(100vh - 5.4rem);
  gap: .7rem;
  align-self: start;
  overflow-y: auto;
  padding: .12rem;
  scrollbar-width: thin;
}
.overview-root-card { border: 2px solid var(--green); border-radius: .65rem; padding: .9rem; background: #fff; box-shadow: 0 8px 22px rgba(16, 47, 65, .08); cursor: pointer; }
.overview-root-card:hover,
.overview-root-card:focus-visible,
.overview-root-card.is-selected { border-color: var(--amber); box-shadow: 0 0 0 3px rgba(155, 93, 0, .16); outline: none; }
.overview-root-badge { display: inline-block; margin-bottom: .6rem; border-radius: 999px; padding: .22rem .45rem; background: var(--green); color: #fff; font-size: .63rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.overview-node-type { display: block; color: var(--ink-soft); font-size: .65rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.overview-root-card h3 { margin: .2rem 0 .25rem; overflow-wrap: anywhere; font-size: 1.05rem; line-height: 1.2; }
.overview-root-card code,
.overview-neighbor-card code { display: block; overflow-wrap: anywhere; color: var(--green-dark); font: 700 .68rem var(--font-data); }
.overview-root-card dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .35rem; margin: .8rem 0; }
.overview-root-card dl div { min-width: 0; border: 1px solid var(--line); border-radius: .35rem; padding: .35rem; background: #f5f8f9; }
.overview-root-card dt { color: var(--ink-soft); font-size: .6rem; font-weight: 850; text-transform: uppercase; }
.overview-root-card dd { margin: .12rem 0 0; overflow-wrap: anywhere; font: 800 .7rem var(--font-data); }
.overview-root-card p { margin: .7rem 0 0; color: var(--ink-soft); font-size: .7rem; line-height: 1.45; }
.overview-direction { display: grid; gap: .7rem; }
.overview-direction-heading { display: flex; align-items: center; justify-content: space-between; gap: .55rem; min-height: 2.4rem; border-bottom: 2px solid var(--line); padding: 0 .1rem .5rem; }
.overview-direction-heading h3 { margin: 0; font-size: .85rem; }
.overview-direction-heading p { margin: .15rem 0 0; color: var(--ink-soft); font-size: .68rem; line-height: 1.35; }
.overview-direction-arrow { color: var(--green); font-size: 1.35rem; font-weight: 850; }
.overview-family-group { min-width: 0; border: 1px solid var(--line); border-left: 3px solid var(--family-color, var(--green)); border-radius: .45rem; background: #fff; overflow: visible; }
.overview-family-group h4 { display: flex; align-items: center; gap: .4rem; margin: 0; padding: .45rem .55rem; color: var(--ink); font-size: .72rem; }
.overview-family-group h4 small { margin-left: auto; color: var(--ink-soft); font: 800 .65rem var(--font-data); }
.overview-family-identity { --family-color: #005f8f; }
.overview-family-compatibility { --family-color: #14734f; }
.overview-family-reference { --family-color: #8a4b00; }
.overview-family-lifecycle { --family-color: #67418c; }
.overview-family-commercial { --family-color: #843858; }
.overview-family-taxonomy { --family-color: #4b5f6b; }
.overview-family-composition { --family-color: #006b73; }
.overview-family-provenance { --family-color: #6b512c; }
.overview-family-process { --family-color: #36566b; }
.overview-relationship-list { display: grid; gap: .45rem; margin: 0; padding: 0 .45rem .5rem; list-style: none; }
.overview-relationship-card { min-width: 0; border-top: 1px solid #edf1f3; padding-top: .45rem; }
.overview-relationship-card.is-incident,
.overview-relationship-card.is-selected { border-radius: .3rem; background: #f1f7fa; }
.overview-relationship-button { position: relative; display: block; width: 100%; min-width: 0; border: 0; border-radius: .3rem; padding: .28rem .35rem; background: transparent; color: var(--ink); text-align: left; cursor: pointer; }
.overview-relationship-button:hover,
.overview-relationship-button:focus-visible { background: #eef5f7; outline: 3px solid rgba(0, 59, 94, .25); outline-offset: 1px; }
.overview-relationship-line { display: flex; align-items: center; gap: .35rem; min-width: 0; font-size: .7rem; }
.overview-relationship-line strong { min-width: 0; overflow-wrap: anywhere; }
.overview-relationship-marker { display: inline-grid; flex: 0 0 auto; width: 2rem; height: 1.15rem; place-items: center; border-radius: .22rem; color: #fff; font: 800 .56rem var(--font-data); }
.overview-relationship-glyph { margin-left: auto; color: var(--ink-soft); font-size: .8rem; }
.overview-relationship-detail { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem; margin: .35rem 0 0 2.35rem; color: var(--ink-soft); }
.relationship-segment {
  position: relative;
  display: inline-flex;
  min-width: 0;
  align-items: center;
  gap: .22rem;
  border: 1px solid transparent;
  border-radius: .28rem;
  padding: .18rem .3rem;
  font: 750 .61rem/1.3 var(--font-data);
  text-align: left;
}
.relationship-segment b { font: 900 .52rem/1.2 var(--font-ui); letter-spacing: .045em; text-transform: uppercase; }
.relationship-segment code { overflow-wrap: anywhere; color: inherit; font: inherit; }
.relationship-segment-source { border-color: #a9c3d0; background: #e8f1f5; color: #174e68; }
.relationship-segment-direction { border: 0; padding-inline: .12rem; background: transparent; color: var(--family-color, var(--green)); font-size: .9rem; }
.relationship-segment-target { border-color: #a8cdc1; background: #e7f3f0; color: #12624a; }
.relationship-segment-evidence { border-color: #c9bde1; background: #eeeaf7; color: #554079; }
.relationship-segment-state,
.relationship-segment-state-validated { border-color: #acd0b9; background: #e6f2e9; color: #17613c; }
.relationship-segment-state-rejected,
.relationship-segment-state-withheld { border-color: #d9bd83; background: var(--amber-pale); color: #734500; }
.relationship-segment[data-tooltip]::after {
  position: absolute;
  z-index: 8;
  left: 50%;
  bottom: calc(100% + .42rem);
  display: none;
  width: max-content;
  max-width: min(19rem, calc(100vw - 2rem));
  border: 1px solid #315668;
  border-radius: .35rem;
  padding: .42rem .5rem;
  background: #102f41;
  color: #fff;
  content: attr(data-tooltip);
  font: 500 .67rem/1.4 var(--font-ui);
  white-space: normal;
  box-shadow: 0 6px 18px rgba(16, 47, 65, .24);
  transform: translateX(-50%);
}
.relationship-segment[data-tooltip]:hover::after { display: block; }
.overview-relationship-tooltip { position: absolute; z-index: 5; right: .25rem; bottom: calc(100% + .35rem); display: none; width: min(22rem, calc(100vw - 2rem)); border: 1px solid var(--green); border-radius: .35rem; padding: .5rem; background: #102f41; color: #fff; font-size: .68rem; font-weight: 500; line-height: 1.4; box-shadow: 0 5px 16px rgba(16, 47, 65, .22); }
.overview-relationship-line:hover ~ .overview-relationship-tooltip,
.overview-relationship-button:focus-visible .overview-relationship-tooltip { display: block; }
.overview-neighbor-card { min-width: 0; margin: .4rem .35rem 0 2.35rem; border-left: 2px solid var(--family-color, var(--green)); border-radius: .25rem; padding: .38rem .45rem; background: #f7f9fa; cursor: pointer; }
.overview-neighbor-card:hover,
.overview-neighbor-card:focus-visible,
.overview-neighbor-card.is-selected { background: var(--green-pale); outline: 2px solid rgba(0, 59, 94, .28); outline-offset: 1px; }
.overview-neighbor-card strong { display: block; margin: .15rem 0; overflow-wrap: anywhere; font-size: .71rem; line-height: 1.25; }
.overview-neighbor-card > span:last-child { display: block; margin-top: .2rem; overflow-wrap: anywhere; color: var(--ink-soft); font-size: .61rem; line-height: 1.3; }
.overview-map-inspector.graph-inspector {
  border: 1px solid #9db8c5;
  border-left: .3rem solid var(--green);
  border-radius: .58rem;
  padding: .7rem;
  background: #fff;
  box-shadow: 0 6px 18px rgba(16, 47, 65, .09);
}
.overview-map-inspector .graph-inspector-heading { align-items: center; }
.overview-map-inspector .graph-inspector-heading strong { font-size: .78rem; }
.overview-map-inspector .graph-inspector-heading span {
  border-radius: 999px;
  padding: .18rem .4rem;
  background: #e7f0f4;
  color: var(--green-dark);
  font-size: .6rem;
  font-weight: 850;
  letter-spacing: .035em;
  text-transform: uppercase;
}
.overview-map-inspector > p { margin: .45rem 0 0; font-size: .69rem; line-height: 1.45; }
.overview-map-inspector-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4rem; margin: .65rem 0 0; }
.overview-map-inspector-grid div { min-width: 0; border: 1px solid #d4e0e5; border-radius: .38rem; padding: .45rem .5rem; background: #f5f8f9; }
.overview-map-inspector-grid dt { color: var(--ink-soft); font-size: .65rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.overview-map-inspector-grid dd { margin: .15rem 0 0; overflow-wrap: anywhere; color: var(--ink); font: 800 .7rem var(--font-data); }
.overview-map-inspector-wide { grid-column: 1 / -1; border-color: #b9d4c5 !important; background: #edf6f1 !important; }
.overview-map-inspector-wide dd { font-family: inherit; font-weight: 650; line-height: 1.45; }

@media (max-width: 820px) {
  .overview-map-heading { flex-direction: column; }
  .overview-map-layout,
  .overview-map-one-sided { grid-template-columns: 1fr; }
  .overview-map-bidirectional { grid-template-areas: none; }
  .overview-map-bidirectional > *,
  .overview-map-one-sided > * { grid-area: auto; }
  .overview-root-column { position: static; max-height: none; order: -1; overflow: visible; padding: 0; }
}

@media (max-width: 560px) {
  .overview-relationship-map { padding: .65rem; }
  .overview-map-inspector-grid { grid-template-columns: 1fr; }
  .overview-root-card dl { grid-template-columns: 1fr; }
  .overview-relationship-tooltip { right: 0; width: calc(100vw - 2rem); }
}
.graph-guides { pointer-events: none; user-select: none; }
.graph-guide-ring,
.graph-guide-line { fill: none; stroke: #b8c8d0; stroke-width: 1; stroke-dasharray: 3 8; opacity: .55; }
.graph-guide-label { fill: var(--ink-soft); font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.graph-guide-ring-label { text-anchor: start; }
.graph-guide-timeline-label,
.graph-guide-lane-label,
.graph-guide-band-label { font-size: 9px; }
.operational-edge path[data-edge-path] { marker-end: url("#operational-arrow"); fill: none; stroke: currentColor; stroke-width: 1.5; opacity: .72; }
.operational-edge[data-edge-family="identity"] { color: #005F8F; }
.operational-edge[data-edge-family="compatibility"] { color: #14734F; }
.operational-edge[data-edge-family="reference"] { color: #8A4B00; }
.operational-edge[data-edge-family="lifecycle"] { color: #67418C; }
.operational-edge[data-edge-family="commercial"] { color: #843858; }
.operational-edge[data-edge-family="taxonomy"] { color: #4B5F6B; }
.operational-edge[data-edge-family="composition"] { color: #006B73; }
.operational-edge[data-edge-family="provenance"] { color: #6B512C; }
.operational-edge[data-edge-family="process"] { color: #36566B; }
.operational-edge-baseline path[data-edge-path] { opacity: .72; }
.operational-edge-validated path[data-edge-path] { opacity: .82; }
.operational-edge text { display: none; fill: currentColor; font-size: 9px; font-weight: 850; text-anchor: middle; pointer-events: none; }
.operational-edge.is-label-visible text,
.operational-edge.is-incident text { display: block; }
.operational-edge[data-edge-line-pattern="long-dash"] path[data-edge-path],
.operational-edge-pending path[data-edge-path] { stroke-dasharray: 6 5; opacity: .72; }
.operational-edge[data-edge-line-pattern="dashed-outline"] path[data-edge-path],
.operational-edge[data-edge-line-pattern="dashed-process"] path[data-edge-path],
.operational-edge[data-edge-label-priority="context"] path[data-edge-path] { stroke-dasharray: 2 5; }
.operational-edge[data-edge-line-pattern="dotted"] path[data-edge-path] { stroke-dasharray: 1 5; }
.operational-edge[data-edge-line-pattern="dash-dot"] path[data-edge-path] { stroke-dasharray: 8 4 1 4; }
.operational-edge[data-edge-line-pattern="faded-solid"] path[data-edge-path] { opacity: .42; }
.operational-edge.is-label-visible path[data-edge-path] { stroke-width: 2; opacity: .95; }
.operational-edge.is-incident path[data-edge-path],
.operational-edge.is-selected path[data-edge-path] { stroke: var(--ink); stroke-width: 3; opacity: 1; }
.operational-edge.is-incident text { fill: currentColor; }
.operational-edge.is-selected text { display: block; fill: currentColor; }
.operational-edge:focus-visible path[data-edge-path] { stroke: var(--ink); stroke-width: 3; opacity: 1; }
.operational-node rect { fill: #fff; stroke: #b8c8d0; stroke-width: 1.25; }
.operational-node:focus-visible rect,
.operational-node.is-selected rect { stroke: var(--ink); stroke-width: 3; }
.operational-node[data-node-label-priority="root"] rect { fill: #f0f6f4; stroke: var(--green); stroke-width: 2; }
.operational-node[data-node-label-priority="high"] rect { stroke: #72959f; }
.operational-node .node-title { fill: var(--ink); font-size: 13px; font-weight: 800; }
.operational-node .node-meta { fill: var(--ink-soft); font-size: 8px; }
.operational-node .node-detail { fill: var(--ink-soft); font-size: 8px; }
.operational-node[data-node-label-priority="context"] .node-title { display: block; fill: var(--ink-soft); font-size: 9px; font-weight: 750; }
.operational-node[data-node-label-priority="context"] .node-meta { display: none; }
.operational-node[data-node-label-priority="context"] .node-detail { display: none; }
.operational-node[data-node-label-priority="high"] .node-meta { display: none; }
.operational-node[data-node-label-priority="high"] .node-detail { display: block; }
.operational-node[data-node-ownership="candidate-only"] rect { stroke: var(--amber); stroke-dasharray: 6 4; }
.operational-node[data-node-ownership="issue"] rect,
.operational-node[data-node-ownership="withheld"] rect { stroke: var(--red); }
.operational-graph marker path { fill: currentColor; }

.query-registry {
  display: grid;
  gap: .5rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.query-registry a { text-decoration: none; }
.query-registry a:hover,
.query-registry a:focus-visible { border-color: var(--green); background: #fff; }
.query-registry a > span { color: var(--green); font: 800 .75rem var(--font-data); }
.query-registry strong { overflow-wrap: anywhere; font-size: .76rem; line-height: 1.4; }
.query-registry code, .query-registry small { overflow-wrap: anywhere; color: var(--ink-soft); font-size: .75rem; }
.query-registry-full { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.queries-page .query-registry { display: block; }
.queries-page .query-registry-list { margin: 0; padding: 0; list-style: none; }
.queries-page .query-registry-list > li + li { border-top: 1px solid var(--line); }
.queries-page .query-registry-row {
  display: grid;
  min-width: 0;
  align-items: center;
  gap: .8rem;
  padding: .7rem .2rem;
  grid-template-columns: 2rem minmax(0, 1.4fr) minmax(22rem, 1fr);
}
.queries-page .query-registry-row:hover,
.queries-page .query-registry-row:focus-visible { border-color: transparent; background: var(--green-pale); }
.queries-page .query-index { color: var(--green); font-size: .75rem; }
.queries-page .query-registry-sentence { display: grid; min-width: 0; gap: .2rem; }
.queries-page .query-registry-sentence strong { color: var(--ink); font-size: .78rem; }
.queries-page .query-registry-sentence small { color: var(--green-dark); font-size: .75rem; }
.queries-page .query-registry-facts { display: grid; min-width: 0; gap: .4rem 1rem; margin: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.queries-page .query-registry-facts div { min-width: 0; }
.queries-page .query-registry-facts dt { color: var(--ink-soft); font-size: .75rem; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.queries-page .query-registry-facts dd { min-width: 0; margin: .15rem 0 0; overflow-wrap: anywhere; color: var(--ink); font-size: .75rem; }
.queries-page .query-registry-facts code { color: var(--ink); font-size: .75rem; }

.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-bottom: 1rem;
  color: var(--ink-soft);
  font-size: .75rem;
}

.breadcrumb a { color: var(--green-dark); font-weight: 800; }

.detail-grid,
.query-result-grid,
.fitment-columns {
  display: grid;
  min-width: 0;
  gap: .8rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.query-summary-strip { gap: .55rem; margin: .7rem 0 .8rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.query-summary-strip article { min-height: 5.6rem; padding: .7rem; }
.query-summary-strip .summary-label { color: var(--ink-soft); font-size: .75rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.query-summary-strip strong { display: block; margin-top: .45rem; font-size: 1.35rem; }
.query-summary-strip strong .state-badge { margin-top: -.15rem; font-size: .75rem; }
.query-summary-strip small { display: block; margin-top: .35rem; color: var(--ink-soft); font-size: .75rem; line-height: 1.35; }
.query-context-nav { margin-top: .35rem; }
.query-decision-panel { border-top: 3px solid var(--green); }
.query-decision-flow {
  display: grid;
  gap: .5rem;
  margin: .9rem 0 0;
  padding: 0;
  list-style: none;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.query-decision-flow li {
  position: relative;
  display: grid;
  min-width: 0;
  gap: .55rem;
  align-content: start;
  border: 1px solid var(--line);
  border-radius: .55rem;
  padding: .7rem;
  background: #fbfcfd;
}
.query-decision-flow li:not(:last-child)::after {
  position: absolute;
  z-index: 1;
  top: 50%;
  right: -.72rem;
  width: .95rem;
  border-top: 2px solid var(--green);
  content: "";
}
.query-decision-flow li > span { color: var(--green); font: 900 .68rem var(--font-data); }
.query-decision-flow li > div { display: grid; min-width: 0; gap: .25rem; }
.query-decision-flow small { color: var(--ink-soft); font-size: .66rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.query-decision-flow strong { overflow-wrap: anywhere; font-size: .76rem; line-height: 1.4; }
.query-decision-flow .query-decision-outcome { border-color: #9ccdb8; background: var(--green-pale); }

.stacked-records { display: grid; gap: .55rem; }
.stacked-records article,
.compact-record,
.fitment-record {
  display: grid;
  min-width: 0;
  gap: .3rem;
  border: 1px solid var(--line);
  border-radius: .5rem;
  padding: .65rem;
  background: #fbfcfd;
}

.stacked-records code,
.compact-record code,
.fitment-record code { overflow-wrap: anywhere; font-size: .75rem; }
.stacked-records small,
.compact-record small,
.fitment-record small,
.fitment-record span { color: var(--ink-soft); font-size: .75rem; line-height: 1.4; }
.fitment-columns h3 { margin: 0 0 .45rem; font-size: .8rem; }
.fitment-record + .fitment-record { margin-top: .45rem; }

.candidate-row {
  display: grid;
  min-width: 0;
  align-items: center;
  gap: .6rem;
  border-top: 1px solid var(--line);
  padding: .65rem 0;
  grid-template-columns: minmax(0, 1fr) auto auto;
}

.candidate-row:first-of-type { border-top: 0; }
.candidate-row > div { display: grid; min-width: 0; gap: .2rem; }
.candidate-row small { color: var(--ink-soft); font-size: .75rem; overflow-wrap: anywhere; }
.candidate-row > span:not(.state-badge) { color: var(--amber); font: 800 .75rem var(--font-data); }

.standards-alignment-panel { border-top: 3px solid #005f8f; }
.standards-alignment-grid { display: grid; gap: .7rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.standards-alignment-grid article { min-width: 0; border: 1px solid var(--line); border-radius: .55rem; padding: .75rem; background: #fbfcfd; }
.standards-alignment-grid article > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.standards-alignment-grid article > div:first-child span { color: #005f8f; font: 850 .65rem var(--font-data); }
.standards-alignment-grid article > div:first-child strong { border-radius: .25rem; padding: .2rem .35rem; background: #dceff7; color: #004e74; font: 900 .68rem var(--font-data); }
.standards-alignment-grid h3 { margin: .6rem 0 .35rem; font-size: .86rem; }
.standards-alignment-grid p { min-height: 3.2rem; margin: 0 0 .65rem; color: var(--ink-soft); font-size: .7rem; line-height: 1.45; }
.standards-alignment-grid dl { display: grid; gap: .35rem; margin: 0; }
.standards-alignment-grid dl div { display: grid; gap: .12rem; border-top: 1px solid var(--line); padding-top: .35rem; }
.standards-alignment-grid dt { color: var(--ink-soft); font-size: .61rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.standards-alignment-grid dd { margin: 0; overflow-wrap: anywhere; font-size: .69rem; }
.standards-kleis-layer { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem .65rem; margin-top: .75rem; border-left: 3px solid var(--green); border-radius: .4rem; padding: .65rem .75rem; background: var(--green-pale); color: var(--green-dark); font-size: .7rem; }
.standards-kleis-layer strong { margin-right: .25rem; }
.standards-kleis-layer span { border-radius: 999px; padding: .22rem .4rem; background: #fff; }
.standards-demo-slice { margin-top: 1rem; border-top: 1px solid var(--line); padding-top: .85rem; }
.standards-demo-slice .contained-table { margin-top: .65rem; }
.product-standards-panel { border-top: 3px solid #005f8f; }
.standards-demo-summary { margin: .75rem 0; }
.product-standards-panel td small,
.product-standards-panel th small,
.standards-demo-slice th small { display: block; margin-top: .2rem; color: var(--ink-soft); }

.preview-toolbar { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: .8rem; margin-bottom: .7rem; color: var(--ink-soft); font-size: .75rem; }
.preview-toolbar code { overflow-wrap: anywhere; }
.target-list { display: grid; gap: .55rem; }
.target-list details { min-width: 0; border: 1px solid var(--line); border-radius: .5rem; overflow: hidden; }
.target-list summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem; cursor: pointer; }
.target-list summary > span:first-child { display: grid; min-width: 0; gap: .2rem; }
.target-list summary small { color: var(--ink-soft); font-size: .75rem; }
.target-list summary > span:last-child { color: var(--green); font-size: .75rem; font-weight: 850; text-transform: uppercase; }
.target-list pre { max-width: 100%; max-height: 28rem; overflow: auto; background: #0c2736; color: #e5f3f7; white-space: pre-wrap; overflow-wrap: anywhere; }
.structured-data { border-top: 1px solid var(--line); background: #102a36; color: #dcecef; }
.structured-data-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .65rem .75rem; background: #183743; }
.structured-data-toolbar > span { display: grid; gap: .1rem; }
.structured-data-toolbar small { color: #9bb6bd; font-size: .66rem; letter-spacing: .06em; text-transform: uppercase; }
.structured-data-toolbar .button { border-color: #66818a; background: transparent; color: #f3fafb; }
.structured-data-code { margin: 0; border-radius: 0; padding: 1rem; background: #102a36 !important; color: #dcecef !important; font-size: .75rem; line-height: 1.62; white-space: pre !important; overflow-wrap: normal !important; }
.structured-data-code .json-key { color: #8ed2db; }
.structured-data-code .json-string { color: #d6c58f; }
.structured-data-code .json-number { color: #ef9b7b; }
.structured-data-code .json-literal { color: #b5a3dc; }
.structured-data-status { min-height: 1.1rem; margin: 0; padding: 0 .75rem .5rem; color: #b7cbd0; font-size: .68rem; }
.structured-data-invalid .structured-data-status::before { content: "Preview could not be syntax highlighted."; }
.assistance-panel { border-top-color: var(--accent, #de5b3d); }
.assistance-panel form { display: flex; flex-wrap: wrap; align-items: end; gap: .65rem; }
.assistance-panel .admin-form { display: grid; align-items: stretch; }
.assistance-panel .admin-form label { width: 100%; }
.assistance-panel form > small { color: var(--ink-soft); }
.assistance-panel button:disabled { cursor: not-allowed; opacity: .48; }
.assistance-processing { display: inline-flex; align-items: center; gap: .5rem; color: var(--ink-soft); font-size: .74rem; font-weight: 750; }
.assistance-processing[hidden] { display: none; }
.assistance-processing > span { width: .85rem; height: .85rem; border: 2px solid color-mix(in srgb, var(--green, #17614e) 24%, transparent); border-top-color: var(--green, #17614e); border-radius: 50%; animation: assistance-spin .7s linear infinite; }
@keyframes assistance-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .assistance-processing > span { animation: none; border-top-color: currentColor; } }
.assistance-error { margin: .8rem 0 0; border-left: 3px solid var(--red, #a33f35); padding: .65rem .8rem; background: #f7e9e5; color: #792f29; }
.assistance-draft { display: grid; gap: .55rem; margin-top: .9rem; border: 1px solid #c8b991; padding: .9rem; background: #fffdf5; }
.assistance-draft > div { display: flex; align-items: center; gap: .55rem; }
.assistance-draft p { margin: 0; white-space: pre-wrap; }
.assistance-draft small { color: var(--ink-soft); }
.assistance-rich-result { gap: 1rem; }
.assistance-lede { max-width: 80ch; color: var(--ink); font-family: var(--font-display, inherit); font-size: 1rem; line-height: 1.6; }
.assistance-narrative { border-left: 3px solid var(--green); padding: .25rem 0 .25rem 1rem; }
.assistance-narrative h3, .assistance-findings > h3, .assistance-review-grid h3 { margin: 0 0 .45rem; font-size: .82rem; }
.assistance-narrative p { max-width: 84ch; color: var(--ink-soft); font-size: .8rem; line-height: 1.65; }
.assistance-findings > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.assistance-findings article { border: 1px solid #d5dfda; padding: .85rem; background: #f8faf8; }
.assistance-findings h4 { margin: 0 0 .35rem; font-size: .78rem; }
.assistance-findings article p { color: var(--ink-soft); font-size: .74rem; line-height: 1.55; }
.assistance-findings article small { display: block; margin-top: .55rem; color: #486258; font-size: .67rem; line-height: 1.45; }
.assistance-review-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.assistance-review-grid section { border: 1px solid #d5dfda; padding: .85rem 1rem; background: #f8faf8; }
.assistance-review-grid ul { margin: .35rem 0 0; padding-left: 1.1rem; color: var(--ink-soft); font-size: .74rem; line-height: 1.6; }
.explanation-result { gap: 1rem; border-color: #b9c9c2; padding: clamp(1rem, 2.3vw, 1.5rem); background: #fbfcf8; }
.explanation-result > header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid #d6dfda; padding-bottom: .75rem; }
.explanation-result > header > div { display: flex; align-items: center; gap: .55rem; }
.explanation-result > header > span { color: var(--ink-soft); font-size: .68rem; }
.explanation-summary { max-width: 78ch; color: var(--ink); font-family: var(--font-display, inherit); font-size: clamp(1rem, 1.7vw, 1.22rem); line-height: 1.55; white-space: normal !important; }
.explanation-description { max-width: 82ch; border-left: 3px solid var(--green); padding: .2rem 0 .2rem 1rem; }
.explanation-description h3, .explanation-facts > h3, .explanation-inferences h3 { margin: 0 0 .45rem; font-size: .82rem; }
.explanation-description p { color: var(--ink-soft); font-size: .84rem; line-height: 1.65; white-space: normal; }
.explanation-highlights { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px !important; border: 1px solid #d5dfda; background: #d5dfda; }
.explanation-highlights section { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .7rem; padding: .9rem; background: #fff; }
.explanation-highlights section > span { color: var(--green); font: 800 .65rem var(--font-data); }
.explanation-highlights h4 { margin: 0 0 .3rem; font-size: .82rem; }
.explanation-highlights p { color: var(--ink-soft); font-size: .76rem; line-height: 1.55; white-space: normal; }
.explanation-inferences { border: 1px solid #ccd8d3; background: #f4f8f5; }
.explanation-inferences > header { padding: .85rem 1rem; border-bottom: 1px solid #d5dfda; }
.explanation-inferences > header p { color: var(--ink-soft); font-size: .72rem; line-height: 1.5; }
.explanation-inferences > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.explanation-inferences article { padding: .9rem 1rem; border-right: 1px solid #d5dfda; border-bottom: 1px solid #d5dfda; }
.explanation-inferences article p { color: var(--ink-soft); font-size: .76rem; line-height: 1.55; white-space: normal; }
.explanation-inferences article small { display: block; margin-top: .6rem; color: #486258; font-size: .68rem; line-height: 1.45; }
.explanation-limitation { border-left: 3px solid var(--amber, #8b6217); padding: .75rem .9rem; background: #f7f0dd; }
.explanation-limitation strong { color: #674a14; font-size: .72rem; letter-spacing: .04em; text-transform: uppercase; }
.explanation-limitation p { margin-top: .25rem; color: #5c5036; font-size: .76rem; line-height: 1.55; white-space: normal; }
@media (max-width: 700px) {
  .assistance-findings > div, .assistance-review-grid { grid-template-columns: 1fr; }
  .explanation-result > header { align-items: flex-start; flex-direction: column; }
  .explanation-highlights { grid-template-columns: 1fr; }
  .explanation-inferences > div { grid-template-columns: 1fr; }
}
.shopify-preview-page { background: var(--paper); color: var(--ink); }
.shopify-storefront { margin: 1.2rem 0; border: 1px solid #d7d4ca; background: #fff; color: #252525; box-shadow: 0 18px 45px rgb(20 31 34 / 9%); }
.shopify-storefront > header { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px solid #e5e2d9; padding: 1rem 1.25rem; font-family: var(--font-display, inherit); }
.shopify-storefront > header > a { color: #1f332f; font-size: 1.15rem; font-weight: 800; text-decoration: none; }
.shopify-storefront > header nav { display: flex; gap: 1.2rem; color: #59645f; font-size: .78rem; }
.shopify-product-layout { display: grid; grid-template-columns: minmax(18rem, .95fr) minmax(20rem, 1.05fr); gap: clamp(1.5rem, 4vw, 4rem); padding: clamp(1.2rem, 4vw, 3.5rem); }
.shopify-product-media { position: relative; align-self: start; aspect-ratio: 4 / 3; min-width: 0; margin: 0; overflow: hidden; background: #e9e8e1; }
.shopify-product-media img { display: block; width: 100%; height: 100%; object-fit: contain; }
.shopify-product-media figcaption { position: absolute; right: .75rem; bottom: .75rem; border: 1px solid rgb(255 255 255 / 68%); padding: .35rem .5rem; background: rgb(22 43 40 / 82%); color: #fff; font-size: .61rem; letter-spacing: .04em; text-transform: uppercase; backdrop-filter: blur(4px); }
.shopify-product-copy { display: grid; align-content: start; gap: 1rem; }
.shopify-product-copy h2 { max-width: 18ch; margin: 0; font-family: var(--font-display, inherit); font-size: clamp(1.8rem, 4vw, 3rem); line-height: 1.05; }
.shopify-vendor, .shopify-sku { margin: 0; color: #65706b; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.shopify-price { border-block: 1px solid #e5e2d9; padding: .9rem 0; color: #69716e; }
.shopify-product-summary p { color: #505b57; line-height: 1.6; }
.shopify-product-copy > button { border: 0; padding: .9rem 1rem; background: #263d37; color: #fff; font: inherit; font-weight: 750; opacity: .62; }
.shopify-product-copy section { border-top: 1px solid #e5e2d9; padding-top: .9rem; }
.shopify-product-copy section h3 { margin: 0 0 .5rem; font-size: .82rem; text-transform: uppercase; }
.shopify-product-copy section ul { margin: 0; padding-left: 1.1rem; color: #505b57; }
.storefront-compatibility { border-top-color: #9fbdb1 !important; }
.storefront-references { border-top-color: #cfbf9b !important; }
.storefront-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: .7rem; }
.storefront-section-heading > div { display: grid; gap: .12rem; }
.storefront-section-heading small { color: #738079; font-size: .62rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.storefront-section-heading h3 { margin: 0 !important; }
.storefront-section-heading > span { border: 1px solid #bdc9c3; padding: .2rem .38rem; color: #50625b; font: 750 .59rem var(--font-data); text-transform: uppercase; }
.storefront-fitment-list { display: grid; gap: .55rem; }
.storefront-fitment-list article { display: grid; grid-template-columns: minmax(7.5rem, auto) minmax(9rem, 1fr) auto; gap: .75rem; border: 1px solid #bdd2c8; border-left: 4px solid #288163; padding: .75rem; background: #f2f8f4; }
.storefront-fitment-list article > div { display: grid; align-content: start; gap: .08rem; }
.storefront-fitment-list article small { color: #6c7d76; font-size: .58rem; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; }
.storefront-fitment-years strong { color: #194c3c; font-family: var(--font-display, inherit); font-size: 1.1rem; line-height: 1.1; }
.storefront-fitment-years strong span { padding: 0 .18rem; color: #719287; }
.storefront-fitment-vehicle strong { color: #203b34; font-size: .82rem; }
.storefront-fitment-vehicle > span { color: #53665f; font-size: .75rem; }
.storefront-fitment-market { justify-items: end; }
.storefront-fitment-market strong { display: inline-flex; min-height: 2rem; align-items: center; border-radius: 999px; padding: .35rem .6rem; background: #1e6351; color: #fff; font-size: .67rem; font-weight: 800; }
.storefront-fitment-market > span { color: #5f756d; font: 750 .58rem var(--font-data); }
.storefront-fitment-list footer { display: flex; grid-column: 1 / -1; flex-wrap: wrap; gap: .35rem; border-top: 1px solid #d4e2db; padding-top: .55rem; }
.storefront-fitment-list footer span { border-radius: 999px; padding: .2rem .45rem; background: #dcece4; color: #315c50; font-size: .62rem; text-transform: capitalize; }
.storefront-reference-note { margin: 0 0 .65rem; color: #626e69; font-size: .7rem; line-height: 1.5; }
.storefront-reference-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; max-height: 23rem; overflow: auto; overscroll-behavior: contain; padding-right: .2rem; scrollbar-color: #9a6c1e #f1eee6; }
.storefront-reference-grid article { min-width: 0; border: 1px solid #d8ccb0; border-top: 3px solid #a5731e; padding: .65rem; background: #fbf8ef; }
.storefront-reference-grid article header { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .55rem; }
.storefront-reference-grid article header strong { min-width: 0; overflow-wrap: anywhere; color: #523a12; font: 800 .75rem var(--font-data); }
.storefront-reference-grid article header span { flex: none; max-width: 8rem; border-radius: 999px; padding: .22rem .42rem; background: #8a621c; color: #fff; font-size: .56rem; font-weight: 800; text-align: center; }
.storefront-reference-grid dl { display: grid; gap: .3rem; margin: 0; }
.storefront-reference-grid dl div { display: grid; grid-template-columns: 4.6rem minmax(0, 1fr); gap: .45rem; }
.storefront-reference-grid dt { color: #82745a; font-size: .58rem; text-transform: uppercase; }
.storefront-reference-grid dd { min-width: 0; margin: 0; overflow-wrap: anywhere; color: #514b40; font-size: .63rem; font-weight: 700; text-transform: capitalize; }
.storefront-reference-grid code { color: #6d4c14; font-size: .61rem; text-transform: none; }
.shopify-attribute-inventory { margin: 1.4rem 0; border: 1px solid #c8d1cc; background: #f7f8f3; }
.shopify-attribute-inventory > header { display: flex; align-items: end; justify-content: space-between; gap: 2rem; border-top: 3px solid #287b75; border-bottom: 1px solid #cdd6d1; padding: clamp(1rem, 2.5vw, 1.6rem); }
.shopify-attribute-inventory > header h2 { margin: .2rem 0 .45rem; font-size: clamp(1.35rem, 3vw, 2rem); }
.shopify-attribute-inventory > header p:not(.section-kicker) { max-width: 76ch; margin: 0; color: var(--ink-soft); font-size: .76rem; line-height: 1.55; }
.shopify-attribute-inventory > header > span { flex: none; border: 1px solid #8aaca5; padding: .35rem .5rem; color: #28615a; font: 800 .65rem var(--font-data); text-transform: uppercase; }
.shopify-attribute-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: #cdd6d1; }
.shopify-attribute-columns article { min-width: 0; padding: clamp(1rem, 2.5vw, 1.5rem); background: #fff; }
.shopify-attribute-columns article + article { background: #fbf8ef; }
.shopify-attribute-columns h3 { margin: 0 0 .8rem; font-size: 1rem; }
.shopify-attribute-columns ul { display: grid; gap: .35rem; margin: 0; padding-left: 1.15rem; color: var(--ink-soft); font-size: .74rem; line-height: 1.45; }
.shopify-product-dossier { margin: 1.4rem 0; border: 1px solid #bac8c2; background: #f7f8f3; }
.shopify-product-dossier > header { display: flex; align-items: end; justify-content: space-between; gap: 2rem; border-top: 3px solid #df6245; border-bottom: 1px solid #cdd6d1; padding: clamp(1rem, 2.5vw, 1.7rem); }
.shopify-product-dossier > header h2 { max-width: 24ch; margin: .2rem 0 .5rem; font-size: clamp(1.45rem, 3vw, 2.15rem); line-height: 1.08; }
.shopify-product-dossier > header p:not(.section-kicker) { max-width: 70ch; margin: 0; color: var(--ink-soft); line-height: 1.55; }
.shopify-product-dossier > header > span { flex: none; border: 1px solid #88a69c; padding: .4rem .55rem; color: #315e52; font: 800 .67rem var(--font-data); text-transform: uppercase; }
.shopify-dossier-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: #cdd6d1; }
.shopify-dossier-grid > article { min-width: 0; padding: clamp(1rem, 2.5vw, 1.5rem); background: #fff; }
.shopify-dossier-fitment { border-top: 2px solid #288163; }
.shopify-dossier-identifiers { border-top: 2px solid #a26f18; }
.shopify-dossier-grid h3 { margin: .2rem 0 1rem; font-size: 1.05rem; }
.shopify-dossier-identity dl { display: grid; gap: 1px; margin: 0; background: #dce3df; }
.shopify-dossier-identity dl div { display: grid; grid-template-columns: 8rem minmax(0, 1fr); gap: .7rem; padding: .6rem; background: #f8faf7; }
.shopify-dossier-identity dt { color: var(--ink-soft); font-size: .7rem; }
.shopify-dossier-identity dd { min-width: 0; margin: 0; overflow-wrap: anywhere; font-size: .75rem; font-weight: 750; }
.compatibility-records, .identifier-records { display: grid; gap: .5rem; }
.compatibility-records section { display: grid; grid-template-columns: minmax(10rem, 1fr) auto; gap: .25rem .8rem; border-left: 3px solid #288163; padding: .65rem .75rem; background: #edf6f1; }
.shopify-dossier-part .compatibility-records section { border-left-color: #23769b; background: #edf5f8; }
.compatibility-records span { color: #435d55; font-size: .73rem; }
.compatibility-records small { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: var(--ink-soft); font-size: .65rem; }
.identifier-records { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.identifier-records section { display: grid; min-width: 0; gap: .5rem; border-top: 2px solid #a26f18; padding: .65rem; background: #faf5e8; }
.identifier-records section header { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: .5rem; }
.identifier-records section header strong { min-width: 0; overflow-wrap: anywhere; font: 800 .73rem var(--font-data); }
.identifier-records section header span { flex: none; max-width: 8rem; border-radius: 999px; padding: .2rem .4rem; background: #8a621c; color: #fff; font-size: .55rem; font-weight: 800; text-align: center; }
.identifier-records dl { display: grid; gap: .28rem; margin: 0; }
.identifier-records dl div { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); gap: .4rem; }
.identifier-records dt { color: #8a7b60; font-size: .57rem; text-transform: uppercase; }
.identifier-records dd { min-width: 0; margin: 0; overflow-wrap: anywhere; color: #574d3b; font-size: .63rem; font-weight: 700; text-transform: capitalize; }
.identifier-records code { overflow-wrap: anywhere; color: #76510f; font-size: .62rem; text-transform: none; }
.shopify-evidence-boundary { border-top: 1px solid #dacba3; padding: 1rem 1.4rem; background: #f8f0dc; }
.shopify-evidence-boundary strong { color: #6c4d13; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; }
.shopify-evidence-boundary p { max-width: 90ch; margin: .35rem 0 0; color: #5f543c; font-size: .76rem; line-height: 1.55; }
.shopify-related-products { margin: 1.4rem 0; border: 1px solid #c8d1cc; background: #f5f6f2; }
.shopify-related-products > header { display: flex; align-items: end; justify-content: space-between; gap: 2rem; border-top: 3px solid #287b75; border-bottom: 1px solid #d3dad6; padding: clamp(1rem, 2.5vw, 1.6rem); }
.shopify-related-products > header h2 { margin: .2rem 0 .45rem; font-size: clamp(1.4rem, 3vw, 2rem); }
.shopify-related-products > header p:not(.section-kicker) { max-width: 72ch; margin: 0; color: var(--ink-soft); font-size: .76rem; line-height: 1.5; }
.shopify-related-products > header > span { flex: none; border: 1px solid #8aaca5; padding: .35rem .5rem; color: #28615a; font: 800 .65rem var(--font-data); text-transform: uppercase; }
.shopify-related-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: #d0d8d4; }
.shopify-related-grid > article { min-width: 0; background: #fff; }
.shopify-related-media { position: relative; display: block; aspect-ratio: 4 / 3; min-width: 0; overflow: hidden; background: #e4ebe7; color: #28544d; text-decoration: none; }
.shopify-related-media img { display: block; width: 100%; height: 100%; object-fit: contain; transition: transform 180ms ease; }
.shopify-related-media:hover img { transform: scale(1.025); }
.shopify-related-media small { position: absolute; right: .45rem; bottom: .45rem; padding: .25rem .35rem; background: rgb(24 54 49 / 78%); color: #fff; font-size: .55rem; text-transform: uppercase; }
.shopify-related-grid article > div { display: grid; gap: .5rem; padding: .85rem; }
.shopify-related-grid article p { margin: 0; color: #6b7772; font-size: .62rem; letter-spacing: .04em; text-transform: uppercase; }
.shopify-related-grid h3 { margin: 0; font-size: .85rem; line-height: 1.35; }
.shopify-related-grid h3 a { color: #1b3d38; text-decoration: none; }
.shopify-related-grid article > div > code { color: #68756f; font-size: .63rem; }
.shopify-related-grid ul { display: grid; gap: .25rem; margin: .2rem 0; padding: 0; list-style: none; }
.shopify-related-grid li { border-left: 2px solid #5c9b90; padding-left: .45rem; color: #49635d; font-size: .66rem; }
.shopify-related-grid footer { display: flex; align-items: center; justify-content: space-between; gap: .7rem; border-top: 1px solid #e0e5e2; padding-top: .55rem; font-size: .63rem; }
.shopify-related-grid footer span { color: #6d7974; }
.shopify-related-grid footer a { color: #22675e; font-weight: 800; text-decoration: none; }
.shopify-related-boundary { margin: 0; border-top: 1px solid #d4ddd8; padding: .8rem 1.1rem; background: #edf2ef; color: #50635d; font-size: .68rem; line-height: 1.5; }
.shopify-catalog-shell { margin: 1.2rem 0; border: 1px solid #d7d4ca; background: #fff; box-shadow: 0 18px 45px rgb(20 31 34 / 9%); }
.shopify-catalog-shell > header { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px solid #e5e2d9; padding: 1rem 1.25rem; }
.shopify-catalog-shell > header > a { color: #1f332f; font-size: 1.15rem; font-weight: 800; text-decoration: none; }
.shopify-catalog-shell > header nav { display: flex; gap: 1.2rem; color: #59645f; font-size: .78rem; }
.shopify-collection-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; padding: clamp(1.2rem, 3vw, 2rem); }
.shopify-collection-heading p { margin: 0; color: #62716b; font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }
.shopify-collection-heading h2 { max-width: 20ch; margin: .25rem 0 .55rem; font-size: clamp(1.7rem, 4vw, 3rem); line-height: 1.02; }
.shopify-collection-heading span { color: #59645f; font-size: .78rem; }
.shopify-collection-heading > strong { flex: none; color: #315e52; font: 800 .75rem var(--font-data); text-transform: uppercase; }
.shopify-collection-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: #d8ddd9; }
.shopify-collection-grid > article { min-width: 0; background: #fff; }
.shopify-collection-media { position: relative; display: block; aspect-ratio: 4 / 3; min-width: 0; overflow: hidden; background: #e9e8e1; color: #304943; text-decoration: none; }
.shopify-collection-media img { display: block; width: 100%; height: 100%; object-fit: contain; transition: transform 180ms ease; }
.shopify-collection-media:hover img { transform: scale(1.025); }
.shopify-collection-media small { position: absolute; right: .5rem; bottom: .5rem; padding: .28rem .4rem; background: rgb(22 43 40 / 80%); color: #fff; font-size: .56rem; text-transform: uppercase; }
.shopify-collection-grid article > div { display: grid; gap: .55rem; padding: 1rem; }
.shopify-collection-grid article p { margin: 0; color: #68746f; font-size: .67rem; letter-spacing: .04em; text-transform: uppercase; }
.shopify-collection-grid h3 { margin: 0; font-size: .95rem; line-height: 1.3; }
.shopify-collection-grid h3 a { color: #193a38; text-decoration: none; }
.shopify-collection-grid article > div > code { color: #65706b; font-size: .67rem; }
.shopify-collection-grid dl { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin: .3rem 0; background: #dfe5e1; }
.shopify-collection-grid dl div { padding: .45rem; background: #f5f7f4; }
.shopify-collection-grid dt { color: #74817b; font-size: .58rem; text-transform: uppercase; }
.shopify-collection-grid dd { margin: .15rem 0 0; font-size: .65rem; font-weight: 750; }
.enhanced-catalog-principles { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(18rem, .8fr); gap: clamp(1.2rem, 3vw, 3rem); margin: 1.2rem 0; border: 1px solid #b9cbc5; border-top: 3px solid #287b75; padding: clamp(1.2rem, 3vw, 2rem); background: #f6f8f5; }
.enhanced-catalog-principles h2 { max-width: 22ch; margin: .25rem 0 .6rem; font-size: clamp(1.6rem, 3vw, 2.35rem); line-height: 1.05; }
.enhanced-catalog-principles p:not(.section-kicker) { max-width: 68ch; margin: 0; color: var(--ink-soft); line-height: 1.6; }
.enhanced-catalog-principles ol { display: grid; gap: 1px; align-self: stretch; margin: 0; padding: 0; background: #cbd8d3; list-style: none; counter-reset: enhanced-step; }
.enhanced-catalog-principles li { display: grid; grid-template-columns: auto 1fr; column-gap: .7rem; padding: .8rem; background: #fff; counter-increment: enhanced-step; }
.enhanced-catalog-principles li::before { grid-row: 1 / span 2; content: "0" counter(enhanced-step); color: #2b756a; font: 800 .68rem var(--font-data); }
.enhanced-catalog-principles li span { color: var(--ink-soft); font-size: .72rem; }
.discovery-route-directory { margin: 1.2rem 0; border: 1px solid #b9cbc5; background: #f5f8f5; }
.discovery-route-directory > header { border-top: 3px solid #287b75; border-bottom: 1px solid #cad6d1; padding: clamp(1rem, 2.5vw, 1.6rem); }
.discovery-route-directory > header h2 { margin: .2rem 0 .45rem; font-size: clamp(1.5rem, 3vw, 2.25rem); }
.discovery-route-directory > header p:not(.section-kicker) { max-width: 70ch; margin: 0; color: var(--ink-soft); line-height: 1.55; }
.discovery-route-directory > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: #c8d5d0; }
.discovery-route-directory a { display: grid; align-content: start; gap: .45rem; min-height: 10rem; padding: clamp(1rem, 2.5vw, 1.5rem); background: #fff; color: #1d443e; text-decoration: none; }
.discovery-route-directory a:first-child { background: #eaf3f0; }
.discovery-route-directory a small { color: #37766c; font: 800 .62rem var(--font-data); letter-spacing: .08em; text-transform: uppercase; }
.discovery-route-directory a h3 { margin: 0; font-size: 1.2rem; }
.discovery-route-directory a p { margin: 0; color: var(--ink-soft); font-size: .74rem; line-height: 1.5; }
.discovery-route-directory a strong { align-self: end; margin-top: auto; color: #21675d; font-size: .7rem; }
.enhanced-view-switcher { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 1rem 0; border: 1px solid #234f49; background: #234f49; gap: 1px; }
.enhanced-view-switcher a { padding: .85rem 1rem; background: #fff; color: #1d5e55; font-size: .78rem; font-weight: 850; text-align: center; text-decoration: none; }
.enhanced-view-switcher a:first-child { background: #e5f1ed; }
.enhanced-vehicle-catalog { margin: 1.2rem 0; border: 1px solid #afc7bf; background: #f2f6f3; scroll-margin-top: 1rem; }
.enhanced-vehicle-catalog > header { display: flex; align-items: end; justify-content: space-between; gap: 2rem; border-top: 3px solid #1e786a; border-bottom: 1px solid #c7d5d0; padding: clamp(1rem, 2.5vw, 1.7rem); background: #fff; }
.enhanced-vehicle-catalog > header h2 { margin: .2rem 0 .45rem; font-size: clamp(1.5rem, 3vw, 2.3rem); }
.enhanced-vehicle-catalog > header p:not(.section-kicker) { max-width: 68ch; margin: 0; color: var(--ink-soft); font-size: .74rem; line-height: 1.55; }
.enhanced-vehicle-catalog > header dl { display: grid; grid-template-columns: repeat(3, auto); gap: 1px; flex: none; margin: 0; background: #d4ded9; }
.enhanced-vehicle-catalog > header dl div { min-width: 5rem; padding: .55rem; background: #f5f8f5; }
.enhanced-vehicle-catalog > header dt { color: #718079; font-size: .57rem; text-transform: uppercase; }
.enhanced-vehicle-catalog > header dd { margin: .15rem 0 0; font-size: .72rem; font-weight: 800; }
.enhanced-vehicle-catalog > .enhanced-family-index { margin: 0; border-width: 0 0 1px; }
.enhanced-make-list { display: grid; gap: 1rem; padding: 1rem; }
.enhanced-make { border: 1px solid #c4d2cd; background: #fff; scroll-margin-top: 1rem; }
.enhanced-make > header { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding: .9rem 1rem; background: #e8f0ed; }
.enhanced-make > header h2, .enhanced-make > header h3 { margin: .15rem 0 0; font-size: 1.3rem; }
.enhanced-make > header > span { color: #567069; font: 800 .65rem var(--font-data); text-transform: uppercase; }
.enhanced-model-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: #cbd6d1; }
.enhanced-model { min-width: 0; background: #fff; }
.enhanced-model > header { display: flex; align-items: start; justify-content: space-between; gap: .8rem; border-bottom: 1px solid #d8e0dc; padding: .8rem; }
.enhanced-model > header small { color: #668078; font: 800 .58rem var(--font-data); text-transform: uppercase; }
.enhanced-model > header h4 { margin: .18rem 0 0; font-size: .95rem; }
.enhanced-model > header > span { color: #687a74; font-size: .62rem; }
.enhanced-vehicle-products { display: grid; }
.enhanced-vehicle-products > section { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(9rem, .8fr); gap: .7rem; border-bottom: 1px solid #e1e6e3; padding: .75rem; }
.enhanced-vehicle-products > section:last-child { border-bottom: 0; }
.enhanced-vehicle-products a { display: grid; grid-template-columns: 4.2rem minmax(0, 1fr); gap: .65rem; min-width: 0; color: #1a403a; text-decoration: none; }
.enhanced-vehicle-products img { width: 4.2rem; height: 3.3rem; object-fit: contain; background: #eef1ed; }
.enhanced-vehicle-products a > span { display: grid; align-content: start; gap: .15rem; min-width: 0; }
.enhanced-vehicle-products a small, .enhanced-vehicle-products > section > div > small { color: #6b7d77; font-size: .56rem; text-transform: uppercase; }
.enhanced-vehicle-products a strong { font-size: .72rem; line-height: 1.35; }
.enhanced-vehicle-products a code { color: #66736e; font-size: .58rem; }
.enhanced-vehicle-products ul { display: grid; gap: .2rem; margin: .25rem 0 0; padding: 0; list-style: none; }
.enhanced-vehicle-products li { border-left: 2px solid #4c9789; padding-left: .35rem; color: #445f58; font-size: .62rem; line-height: 1.35; }
.enhanced-family-catalog, .enhanced-organization-catalog { margin: 1.2rem 0; border: 1px solid #afc7bf; background: #f2f6f3; scroll-margin-top: 1rem; }
.enhanced-family-catalog > header, .enhanced-organization-catalog > header { display: flex; align-items: end; justify-content: space-between; gap: 2rem; border-top: 3px solid #315e52; border-bottom: 1px solid #c7d5d0; padding: clamp(1rem, 2.5vw, 1.7rem); background: #fff; }
.enhanced-family-catalog > header h2, .enhanced-organization-catalog > header h2 { margin: .2rem 0 .45rem; font-size: clamp(1.5rem, 3vw, 2.3rem); }
.enhanced-family-catalog > header p:not(.section-kicker), .enhanced-organization-catalog > header p:not(.section-kicker) { max-width: 68ch; margin: 0; color: var(--ink-soft); font-size: .74rem; line-height: 1.55; }
.enhanced-product-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: #cbd6d1; }
.enhanced-product-grid > article { display: grid; align-content: start; gap: .55rem; min-width: 0; padding: 1rem; background: #fff; }
.enhanced-product-grid > article > a:first-child { display: block; color: #1a403a; text-decoration: none; }
.enhanced-product-grid img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: contain; background: #eef1ed; }
.enhanced-product-grid article small { color: #6b7d77; font-size: .56rem; text-transform: uppercase; }
.enhanced-product-grid h4 { margin: 0; font-size: .9rem; line-height: 1.35; }
.enhanced-product-grid h4 a { color: #193a38; text-decoration: none; }
.enhanced-product-grid code { color: #66736e; font-size: .6rem; }
.enhanced-product-grid p { margin: 0; color: var(--ink-soft); font-size: .67rem; line-height: 1.45; }
.organization-group-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: #cbd6d1; }
.organization-group-grid > article { min-width: 0; padding: 1rem; background: #fff; }
.organization-group-grid h3 { margin: 0 0 .35rem; font-size: .9rem; }
.organization-group-grid p { margin: 0; color: var(--ink-soft); font-size: .67rem; line-height: 1.45; }
.application-family-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 1.2rem 0; background: #c8d5d0; }
.application-family-group { min-width: 0; background: #fff; }
.application-family-group > header { display: flex; align-items: start; justify-content: space-between; gap: 1rem; border-top: 3px solid #337f71; border-bottom: 1px solid #d5dfdb; padding: 1rem; }
.application-family-group > header h2 { margin: .2rem 0 .25rem; font-size: 1.15rem; }
.application-family-group > header strong { color: #327166; font-size: .72rem; }
.application-family-group > header > span { color: #64766f; font: 800 .62rem var(--font-data); text-transform: uppercase; }
.enhanced-family-index { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; margin: 1rem 0; border: 1px solid var(--line); padding: .75rem; background: #fff; }
.enhanced-family-index > span { margin-right: .4rem; color: var(--ink-soft); font: 800 .65rem var(--font-data); letter-spacing: .07em; text-transform: uppercase; }
.enhanced-family-index a { border: 1px solid #c7d3ce; padding: .38rem .5rem; color: #21584f; font-size: .7rem; font-weight: 750; text-decoration: none; }
.enhanced-family-index small { margin-left: .25rem; color: #71807a; }
.enhanced-family-list { display: grid; gap: 1.2rem; }
.enhanced-family { scroll-margin-top: 1rem; border: 1px solid #c9d3cf; background: #fff; box-shadow: 0 14px 32px rgb(20 31 34 / 7%); }
.enhanced-family > header { display: flex; align-items: end; justify-content: space-between; gap: 2rem; border-top: 3px solid #315e52; padding: clamp(1rem, 2.5vw, 1.6rem); }
.enhanced-family > header h2 { margin: .2rem 0 .45rem; font-size: clamp(1.45rem, 3vw, 2.15rem); }
.enhanced-family > header p:not(.section-kicker) { max-width: 68ch; margin: 0; color: var(--ink-soft); font-size: .74rem; line-height: 1.5; }
.enhanced-family > header dl { display: grid; grid-template-columns: repeat(3, auto); gap: 1px; flex: none; margin: 0; background: #d4ded9; }
.enhanced-family > header dl div { min-width: 5.5rem; padding: .55rem; background: #f5f8f5; }
.enhanced-family > header dt { color: #718079; font-size: .57rem; text-transform: uppercase; }
.enhanced-family > header dd { margin: .15rem 0 0; font-size: .72rem; font-weight: 800; }
.enhanced-family-suppliers { margin: 0; border-top: 1px solid #dce3df; border-bottom: 1px solid #dce3df; padding: .65rem 1rem; background: #f5f7f4; color: #576a63; font-size: .68rem; }
.enhanced-page-boundary { margin: 1.2rem 0; border-left: 4px solid #c17a1b; padding: 1rem 1.2rem; background: #fff7e9; }
.enhanced-page-boundary p { margin: .35rem 0 0; color: #705b3c; font-size: .75rem; line-height: 1.55; }
.product-discovery-architecture { margin: 1.4rem 0; border: 1px solid #b8c8c3; background: #f5f8f5; }
.product-discovery-architecture > header { display: flex; align-items: end; justify-content: space-between; gap: 2rem; border-top: 3px solid #315e52; padding: clamp(1rem, 2.5vw, 1.7rem); }
.product-discovery-architecture > header h2 { max-width: 27ch; margin: .2rem 0 .5rem; font-size: clamp(1.45rem, 3vw, 2.15rem); line-height: 1.08; }
.product-discovery-architecture > header p:not(.section-kicker) { max-width: 72ch; margin: 0; color: var(--ink-soft); line-height: 1.55; }
.discovery-identity-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: #cbd6d1; }
.discovery-identity { min-width: 0; border-top: 2px solid #33806f; padding: 1rem; background: #fff; }
.discovery-identity-absent { border-top-color: #b77922; background: #fffaf0; }
.discovery-identity-review { border-top-color: #b85e4d; }
.discovery-identity small { color: #55776e; font: 800 .62rem var(--font-data); letter-spacing: .07em; text-transform: uppercase; }
.discovery-identity h3 { margin: .35rem 0 .45rem; font-size: .92rem; line-height: 1.35; }
.discovery-identity p { margin: 0; color: var(--ink-soft); font-size: .7rem; line-height: 1.5; }
.product-selection-guide { display: grid; grid-template-columns: minmax(0, .8fr) minmax(18rem, 1.2fr); gap: 2rem; border-top: 1px solid #cbd6d1; padding: clamp(1rem, 2.5vw, 1.6rem); background: #edf3f0; }
.product-selection-guide h3 { margin: .2rem 0 .45rem; font-size: 1.05rem; }
.product-selection-guide p:not(.section-kicker) { margin: 0; color: var(--ink-soft); font-size: .72rem; line-height: 1.5; }
.product-selection-guide ol { display: grid; gap: .4rem; margin: 0; padding-left: 1.3rem; color: #3f5d55; font-size: .72rem; line-height: 1.45; }
.agentic-readiness { margin: 1.4rem 0; border: 1px solid #173f45; background: #102f35; color: #edf6f3; box-shadow: 0 20px 50px rgb(14 43 48 / 14%); }
.agentic-readiness-hero { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(17rem, .65fr); gap: 2rem; padding: clamp(1.3rem, 3vw, 2.2rem); background: radial-gradient(circle at 88% 5%, rgb(103 188 176 / 18%), transparent 35%), linear-gradient(135deg, #123a40, #0d292e); }
.agentic-readiness-hero h2 { max-width: 22ch; margin: .25rem 0 .7rem; color: #fff; font-family: var(--font-display, inherit); font-size: clamp(1.7rem, 3.5vw, 2.7rem); line-height: 1.04; letter-spacing: -.045em; }
.agentic-readiness-hero p:not(.section-kicker) { max-width: 68ch; margin: 0; color: #bdd2cf; line-height: 1.65; }
.agentic-readiness-hero dl { display: grid; align-content: start; margin: 0; border-top: 1px solid rgb(213 239 234 / 22%); }
.agentic-readiness-hero dl div { display: grid; grid-template-columns: minmax(8rem, .8fr) 1.2fr; gap: .7rem; border-bottom: 1px solid rgb(213 239 234 / 22%); padding: .75rem 0; }
.agentic-readiness-hero dt { color: #80bdb5; font: 800 .67rem var(--font-data); letter-spacing: .08em; text-transform: uppercase; }
.agentic-readiness-hero dd { margin: 0; color: #f3faf8; font-size: .78rem; }
.agentic-readiness-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: #315258; }
.readiness-check { display: grid; grid-template-columns: auto 1fr; gap: .7rem; min-width: 0; padding: 1rem; background: #f7f7f2; color: #183239; }
.readiness-check > span { display: grid; width: 1.55rem; height: 1.55rem; place-items: center; border-radius: 50%; background: #cfe9df; color: #17614e; font-weight: 900; }
.readiness-guarded > span { background: #f0dfad; color: #705213; }
.readiness-review > span { background: #f0c8bf; color: #87362c; }
.readiness-check small { color: #638079; font: 800 .62rem var(--font-data); letter-spacing: .1em; text-transform: uppercase; }
.readiness-check h3 { margin: .2rem 0 .35rem; font-size: .95rem; }
.readiness-check p { margin: 0; color: #536762; font-size: .74rem; line-height: 1.5; }
.agentic-discovery-lab { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: #315258; }
.agentic-discovery-lab article { padding: clamp(1.1rem, 2.5vw, 1.8rem); background: #153a40; }
.agentic-discovery-lab h3 { margin: .2rem 0 1rem; color: #fff; font-size: 1.15rem; }
.agentic-discovery-lab ul, .agentic-discovery-lab ol { display: grid; gap: .6rem; margin: 0; padding: 0; list-style: none; }
.agentic-discovery-lab li { border-left: 2px solid #70b9ae; padding: .55rem .7rem; background: rgb(255 255 255 / 5%); color: #d5e7e3; font-size: .78rem; line-height: 1.5; }
.agentic-discovery-lab ol { counter-reset: agent-step; }
.agentic-discovery-lab ol li { counter-increment: agent-step; }
.agentic-discovery-lab ol li::before { content: "0" counter(agent-step); margin-right: .55rem; color: #7cc4b9; font: 800 .67rem var(--font-data); }
.machine-readable-suite { margin-top: 1.4rem; }
.machine-readable-tabs { display: grid; gap: .6rem; }
.machine-readable-tabs details { border: 1px solid var(--line); background: var(--surface); }
.machine-readable-tabs summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem; cursor: pointer; }
.machine-readable-tabs summary > span:first-child { display: grid; min-width: 0; gap: .18rem; }
.machine-readable-tabs summary small { color: var(--ink-soft); font-size: .7rem; }
.machine-readable-tabs summary > span:last-child { color: var(--green); font-size: .68rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.shopify-metafield-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: .6rem; margin-bottom: .8rem; }
.shopify-metafield-grid article { display: grid; grid-template-rows: auto minmax(0, 1fr); gap: .55rem; min-width: 0; border: 1px solid var(--line); padding: .7rem; background: var(--paper-soft, #f4f5f1); }
.shopify-metafield-grid article header { display: flex; min-width: 0; align-items: start; justify-content: space-between; gap: .6rem; }
.shopify-metafield-grid article span { min-width: 0; color: var(--ink-soft); font-size: .7rem; overflow-wrap: anywhere; }
@media (max-width: 850px) {
  .enhanced-catalog-principles, .product-selection-guide { grid-template-columns: 1fr; }
  .enhanced-model-list { grid-template-columns: 1fr; }
  .enhanced-product-grid, .organization-group-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .application-family-list { grid-template-columns: 1fr; }
  .discovery-identity-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .agentic-readiness-hero, .agentic-discovery-lab { grid-template-columns: 1fr; }
  .agentic-readiness-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .shopify-collection-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .shopify-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .discovery-route-directory > div { grid-template-columns: 1fr; }
  .enhanced-view-switcher { grid-template-columns: 1fr; }
  .enhanced-vehicle-catalog > header { align-items: flex-start; flex-direction: column; }
  .enhanced-vehicle-catalog > header dl { width: 100%; grid-template-columns: repeat(3, 1fr); }
  .enhanced-vehicle-products > section { grid-template-columns: 1fr; }
  .enhanced-family-catalog > header, .enhanced-organization-catalog > header { align-items: flex-start; flex-direction: column; }
  .enhanced-product-grid, .organization-group-grid { grid-template-columns: 1fr; }
  .enhanced-family > header, .product-discovery-architecture > header { align-items: flex-start; flex-direction: column; }
  .enhanced-family > header dl { width: 100%; grid-template-columns: repeat(3, 1fr); }
  .discovery-identity-grid { grid-template-columns: 1fr; }
  .agentic-readiness-grid { grid-template-columns: 1fr; }
  .shopify-dossier-grid, .identifier-records, .shopify-collection-grid, .shopify-related-grid { grid-template-columns: 1fr; }
  .shopify-product-dossier > header, .shopify-collection-heading, .shopify-related-products > header, .shopify-attribute-inventory > header { align-items: flex-start; flex-direction: column; }
  .shopify-attribute-columns { grid-template-columns: 1fr; }
  .compatibility-records section { grid-template-columns: 1fr; }
  .compatibility-records small { grid-column: auto; grid-row: auto; }
}
.metafield-json { max-height: 13rem; margin: 0; overflow: auto; border: 1px solid #294653; padding: .7rem; background: #102a36; color: #dcecef; font-size: .69rem; line-height: 1.55; white-space: pre; }
.metafield-json code { font: inherit; }
.metafield-json .json-key { color: #8ed2db; }
.metafield-json .json-string { color: #ead590; }
.metafield-json .json-number { color: #f19c7d; }
.metafield-json .json-literal { color: #c1ace7; }
@media (max-width: 760px) {
  .shopify-storefront > header nav { display: none; }
  .shopify-product-layout { grid-template-columns: 1fr; }
  .shopify-product-media { min-height: 0; }
  .storefront-reference-grid { grid-template-columns: 1fr; }
  .storefront-fitment-list article { grid-template-columns: 1fr auto; }
  .storefront-fitment-vehicle { grid-column: 1; grid-row: 2; }
  .storefront-fitment-market { grid-column: 2; grid-row: 1 / span 2; }
}

.withheld-panel { border: 1px dashed var(--amber); border-radius: .55rem; padding: 1rem; background: #fffbf2; }
.product-topology-unavailable { min-height: 8rem; }
.withheld-panel h3 { margin: .7rem 0 .3rem; }
.withheld-panel p { margin: 0; color: var(--ink-soft); font-size: .75rem; line-height: 1.5; }

.evaluation-list { display: grid; gap: .65rem; }
.evaluation-trace-viewport {
  max-height: min(70vh, 40rem);
  overflow: auto;
  overscroll-behavior: auto;
  border: 1px solid var(--line);
  border-radius: .5rem;
  padding: .55rem;
  scrollbar-color: var(--green) #edf2f4;
}
.evaluation-disclosure { border: 1px solid var(--line); border-radius: .55rem; overflow: hidden; background: #fff; }
.evaluation-disclosure > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem; background: #f5f8f9; cursor: pointer; }
.evaluation-disclosure > summary > span:first-child { display: grid; min-width: 0; gap: .2rem; }
.evaluation-disclosure > summary small { color: var(--ink-soft); font-size: .75rem; }
.evaluation-detail { display: grid; gap: .55rem; border-top: 1px solid var(--line); padding: .65rem; }
.evaluation-detail > a { color: var(--green-dark); font-size: .75rem; font-weight: 800; }
.check-list { display: grid; gap: .45rem; padding: .6rem; }
.check-list details { border: 1px solid var(--line); border-radius: .45rem; }
.check-list summary { display: flex; align-items: center; justify-content: space-between; gap: .7rem; padding: .6rem; cursor: pointer; }
.check-list summary > span:first-child { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; gap: .5rem; }
.check-list summary code { color: var(--ink-soft); font-size: .75rem; }
.check-list details > p { margin: 0; border-top: 1px solid var(--line); padding: .6rem; color: var(--ink-soft); font-size: .75rem; }
.lineage-records { display: grid; gap: .4rem; margin: 0; border-top: 1px solid var(--line); padding: .6rem; }
.lineage-records div { display: grid; gap: .4rem; grid-template-columns: 7rem minmax(0, 1fr); }
.lineage-records dt { color: var(--ink-soft); font-size: .75rem; }
.lineage-records dd { display: grid; min-width: 0; gap: .2rem; margin: 0; overflow-wrap: anywhere; font-size: .75rem; }
.lineage-records small { color: var(--ink-soft); }

.result-products { display: grid; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.result-products a { display: flex; align-items: center; justify-content: space-between; gap: .8rem; border: 1px solid var(--line); border-radius: .45rem; padding: .65rem; text-decoration: none; }
.result-products span { color: var(--ink-soft); font-size: .75rem; }
.proof-grid { display: grid; gap: 1px; margin: 0; border: 1px solid var(--line); border-radius: .5rem; overflow: hidden; grid-template-columns: 1fr 1fr 2fr; background: var(--line); }
.proof-grid div { min-width: 0; padding: .65rem; background: #fff; }
.proof-grid dt { color: var(--ink-soft); font-size: .75rem; }
.proof-grid dd { margin: .25rem 0 0; overflow-wrap: anywhere; font-size: .75rem; font-weight: 800; }

.resolution-paths,
.resolution-paths ol,
.audit-list { margin: 0; padding: 0; list-style: none; }
.resolution-paths { display: grid; gap: .65rem; }
.resolution-paths > li { border: 1px solid var(--line); border-radius: .5rem; overflow: hidden; }
.path-heading { display: flex; align-items: center; justify-content: space-between; gap: .7rem; padding: .65rem; background: #f4f7f8; }
.path-heading span { color: var(--ink-soft); font-size: .75rem; }
.resolution-paths ol { display: grid; gap: .4rem; padding: .55rem; }
.resolution-paths ol li { border-left: 3px solid var(--green); padding: .55rem; background: #fafcfc; }
.resolution-paths ol li > div { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; font-size: .75rem; }
.resolution-paths dl { display: grid; gap: .3rem; margin: .55rem 0 0; }
.resolution-paths dl div { display: grid; gap: .4rem; grid-template-columns: 7rem minmax(0, 1fr); }
.resolution-paths dt { color: var(--ink-soft); font-size: .75rem; }
.resolution-paths dd { margin: 0; overflow-wrap: anywhere; font-size: .75rem; }

.operational-form { display: grid; gap: .55rem; margin-top: .8rem; }
.operational-form label { color: var(--ink-soft); font-size: .75rem; font-weight: 800; }
.operational-form input:not([type="hidden"]),
.operational-form textarea { width: 100%; min-width: 0; border: 1px solid #becbd1; border-radius: .45rem; padding: .62rem; background: #fff; color: var(--ink); font: inherit; font-size: .76rem; }
.operational-form textarea { resize: vertical; }
.operational-form p { margin: 0; color: var(--ink-soft); font-size: .75rem; }
.operational-form .button { justify-self: start; }

.audit-list { display: grid; gap: .5rem; }
.audit-list li { border-left: 3px solid var(--green); padding: .65rem; background: #f7fafb; }
.audit-list li > div { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.audit-list time, .audit-list small { color: var(--ink-soft); font-size: .75rem; }
.audit-list p { margin: .35rem 0; color: var(--ink-soft); font-size: .75rem; }

.error-panel { width: min(100%, var(--width-reading)); max-width: 38rem; margin: 3rem auto; border: 1px solid var(--line); border-radius: .7rem; padding: 1.4rem; background: #fff; }
.error-panel h1 { margin: 0; font-size: 2rem; letter-spacing: -.04em; }
.error-panel > p:not(.section-kicker) { margin: .7rem 0 1rem; color: var(--ink-soft); line-height: 1.5; }

/* Bring the established admin views into the compact application hierarchy. */
.operational-shell .admin-shell { padding-top: 0; }
.operational-shell .admin-scope { margin: .8rem 0; }
.operational-shell .admin-nav { margin: .8rem 0 1rem; }

@media (max-width: 1100px) {
  .summary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .query-registry { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  .app-header {
    position: static;
    gap: .45rem .8rem;
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .primary-nav {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-content: flex-start;
    overflow-x: auto;
    border-top: 1px solid var(--line);
    padding-top: .4rem;
  }
  .page-heading { grid-template-columns: 1fr; gap: .9rem; }
  .record-meta { border-top: 2px solid var(--green); border-left: 0; padding-top: .65rem; padding-left: 0; }
  .workspace-launcher-heading { align-items: flex-start; flex-direction: column; }
  .workspace-actions { grid-template-columns: 1fr; }
  .visualization-toolbar,
  .visualization-workspace { grid-template-columns: 1fr; }
  .quick-fact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .primary-fitment-card { grid-column: 1 / -1; }
  .detail-grid,
  .query-result-grid,
  .fitment-columns { grid-template-columns: 1fr; }
  .query-decision-flow { grid-template-columns: 1fr; }
  .query-decision-flow li:not(:last-child)::after { top: auto; right: 50%; bottom: -.56rem; width: 0; height: .65rem; border-top: 0; border-left: 2px solid var(--green); }
  .standards-alignment-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .preview-toolbar { align-items: flex-start; flex-direction: column; }
  .proof-grid { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .standards-alignment-grid { grid-template-columns: 1fr; }
  .button,
  .text-button,
  .graph-controls .button,
  .primary-nav a,
  .record-section-nav a,
  .admin-nav a,
  .workspace-actions a,
  summary,
  input:not([type="hidden"]),
  textarea,
  select {
    min-height: 2.75rem;
  }

  .app-header { padding: .55rem .75rem; }
  .app-header .brand-logo { width: 5.2rem; }
  .app-header .brand small,
  .session-actions .signed-in { display: none; }
  .primary-nav { scrollbar-width: thin; }
  .primary-nav a { flex: 0 0 auto; padding: .48rem .62rem; }
  .workspace-card { min-height: 5.75rem; gap: .65rem; grid-template-columns: 2.25rem minmax(0, 1fr) auto; padding: .7rem; }
  .workspace-card-icon { width: 2.25rem; height: 2.25rem; }
  .environment-disclosure { justify-content: flex-start; font-size: .75rem; }
  .operational-shell { width: calc(100% - 1rem); padding-top: 1rem; }
  .page-heading h1 { font-size: clamp(1.625rem, 7vw, 2rem); }
  .summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .summary-grid article { min-height: 6.4rem; }
  .read-summary-strip article { min-height: 5rem; }
  .read-summary-strip strong { font-size: 1.35rem; }
  .record-section-nav { margin-top: .6rem; }
  .record-section-nav a { padding: .38rem .45rem; }
  .quick-fact-grid { grid-template-columns: 1fr; }
  .primary-fitment-card { grid-column: 1 / -1; }
  .query-registry,
  .query-registry-full { grid-template-columns: 1fr; }
  .queries-page .query-registry-row { grid-template-columns: 1.6rem minmax(0, 1fr); }
  .queries-page .query-registry-facts { grid-column: 2; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .operational-panel { padding: .75rem; }
  .catalog-facet-summary div { grid-template-columns: 1fr; gap: .2rem; }
  .operational-panel .panel-heading { align-items: flex-start; flex-direction: column; }
  .catalog-explorer-controls { grid-template-columns: 1fr 1fr; }
  .catalog-explorer-controls > label:first-child { grid-column: 1 / -1; }
  .catalog-explorer-workspace { grid-template-columns: 1fr; }
  .catalog-explorer-canvas-wrap { height: 440px; }
  .catalog-explorer-inspector { order: 2; }
  .support-flow { grid-template-columns: 1fr; }
  .support-flow-arrow { min-height: 1.4rem; transform: rotate(90deg); }
  .support-flow-stage { min-height: 0; }
  .optional-topology > summary { align-items: flex-start; flex-direction: column; }
  .catalog-focus-map figcaption { padding: .55rem .7rem; }
  .visualization-bounds { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .graph-inspector-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .graph-inspector-heading { align-items: flex-start; flex-direction: column; gap: .15rem; }
  .graph-viewport { height: 440px; }
  .operational-graph svg { width: auto; height: auto; }
  .ownership-strip { align-items: flex-start; }
  .candidate-row { align-items: flex-start; grid-template-columns: minmax(0, 1fr) auto; }
  .candidate-row .state-badge { grid-column: 1 / -1; }
  .evaluation-disclosure > summary,
  .check-list summary,
  .path-heading,
  .audit-list li > div,
  .result-products a { align-items: flex-start; flex-direction: column; }
  .lineage-records div,
  .resolution-paths dl div { grid-template-columns: 1fr; gap: .15rem; }
  .app-footer { flex-direction: column; }
}

/* Kleis visual identity: a catalog dossier, not a generic card dashboard.
   Functional color, ruled surfaces, restrained geometry, and data notation
   distinguish operational structure without competing with the records. */
:root {
  --paper: #eceeea;
  --surface: #fbfcf8;
  --ink: #102f3a;
  --ink-soft: #56676b;
  --line: #c8cfcc;
  --line-strong: #819094;
  --signal: #d85b36;
  --signal-pale: #f7e5dc;
  --cyan: #5fb4c7;
  --cyan-pale: #e3f2f4;
  --shadow: 0 8px 22px rgba(16, 47, 58, .08);
}

.operational-body {
  background-color: var(--paper);
  background-image:
    linear-gradient(rgba(16, 47, 58, .028) 1px, transparent 1px),
    linear-gradient(90deg, rgba(16, 47, 58, .028) 1px, transparent 1px);
  background-size: 24px 24px;
}

.app-header {
  min-height: 4.15rem;
  border-top: 4px solid var(--signal);
  border-bottom: 2px solid var(--ink);
  padding-block: .55rem;
  background: rgba(251, 252, 248, .97);
  box-shadow: 0 3px 0 rgba(16, 47, 58, .08);
  backdrop-filter: blur(18px);
}

.app-header .brand {
  gap: .55rem;
}

.app-header .brand small {
  border-left-color: var(--line-strong);
  color: var(--ink-soft);
  font-family: var(--font-data);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.primary-nav {
  align-self: stretch;
  gap: 1.1rem;
}

.primary-nav a {
  position: relative;
  display: inline-flex;
  align-items: center;
  border-radius: 0;
  padding: .45rem .1rem;
  font-size: .72rem;
  font-weight: 780;
  letter-spacing: .025em;
}

.primary-nav a::after {
  position: absolute;
  right: 0;
  bottom: -.57rem;
  left: 0;
  height: 3px;
  background: transparent;
  content: "";
}

.primary-nav a:hover,
.primary-nav a:focus-visible,
.primary-nav a[aria-current="page"] {
  background: transparent;
  color: var(--ink);
}

.primary-nav a:hover::after,
.primary-nav a:focus-visible::after,
.primary-nav a[aria-current="page"]::after {
  background: var(--signal);
}

.environment-disclosure {
  min-height: 1.8rem;
  justify-content: flex-start;
  border-bottom: 0;
  padding-inline: clamp(1rem, 3vw, 3rem);
  background: var(--ink);
  color: #dce8e8;
  font-family: var(--font-data);
  font-size: .62rem;
  font-weight: 650;
  letter-spacing: .04em;
}

.environment-disclosure span {
  width: .5rem;
  height: .5rem;
  border: 1px solid #b8e1e8;
  border-radius: 0;
  background: var(--cyan);
}

.operational-shell {
  padding-top: 2rem;
}

.page-heading {
  align-items: start;
  border-bottom: 2px solid var(--ink);
  margin-bottom: 0;
  padding: 0 0 1.25rem;
}

.page-heading h1 {
  max-width: 18ch;
  letter-spacing: -.035em;
  line-height: 1.04;
}

.section-kicker {
  color: var(--signal);
  font-family: var(--font-data);
  font-size: .61rem;
  letter-spacing: .13em;
}

.record-meta {
  border-left: 1px solid var(--line-strong);
  padding: .2rem 0 .2rem 1rem;
}

.record-section-nav {
  gap: 0;
  margin: 0 0 1.15rem;
  border-bottom: 1px solid var(--line-strong);
  padding: 0;
  background: rgba(251, 252, 248, .76);
}

.record-section-nav a {
  border-right: 1px solid var(--line);
  border-radius: 0;
  padding: .58rem .8rem;
  font-family: var(--font-data);
  font-size: .64rem;
  letter-spacing: .025em;
}

.record-section-nav a:hover,
.record-section-nav a:focus-visible {
  background: var(--cyan-pale);
  box-shadow: inset 0 -3px 0 var(--cyan);
}

.summary-grid {
  gap: 0;
  border: 1px solid var(--line-strong);
  border-top: 3px solid var(--ink);
  background: var(--surface);
}

.summary-grid article {
  position: relative;
  min-height: 6.7rem;
  border: 0;
  border-right: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.summary-grid article:last-child {
  border-right: 0;
}

.summary-index {
  position: absolute;
  top: .62rem;
  right: .65rem;
  color: #8b9899;
  font: 650 .57rem var(--font-data);
  letter-spacing: .08em;
}

.summary-grid strong {
  color: var(--ink);
  font-family: var(--font-display);
  font-weight: 650;
  letter-spacing: -.035em;
}

.overview-health {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: .75rem;
  margin: .8rem 0;
  border: 1px solid var(--line-strong);
  border-left: 4px solid var(--green);
  padding: .7rem .8rem;
  background: var(--green-pale);
}

.overview-health p {
  margin: 0;
  color: var(--ink-soft);
  font-size: .76rem;
  line-height: 1.5;
}

.overview-health strong {
  color: var(--ink);
}

.overview-summary-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.overview-summary-grid .summary-card {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 7.2rem;
  align-content: space-between;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: .75rem;
  background: transparent;
  text-decoration: none;
}

.overview-summary-grid .summary-card:nth-child(4n) {
  border-right: 0;
}

.overview-summary-grid .summary-card:nth-last-child(-n + 4) {
  border-bottom: 0;
}

.overview-summary-grid .summary-card:hover,
.overview-summary-grid .summary-card:focus-visible {
  background: var(--cyan-pale);
  box-shadow: inset 0 -3px 0 var(--cyan);
  outline: 0;
}

.overview-summary-grid .summary-card strong {
  font-size: 1.65rem;
}

.summary-action {
  color: var(--green);
  font-family: var(--font-data);
  font-size: .59rem;
  font-weight: 800;
}

.overview-product-focus {
  margin: 1rem 0;
  border: 1px solid var(--line-strong);
  border-top: 4px solid var(--signal);
  padding: 1rem;
  background: var(--surface);
}

.overview-product-focus > header {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(19rem, .65fr);
  gap: 1rem 1.5rem;
  border-bottom: 1px solid var(--line);
  padding-bottom: .8rem;
}

.overview-product-focus h2 {
  margin: .15rem 0 .35rem;
  font-size: clamp(1.35rem, 2.5vw, 1.8rem);
  letter-spacing: -.035em;
}

.overview-product-focus header p:not(.section-kicker) {
  max-width: 52rem;
  margin: 0;
  color: var(--ink-soft);
  font-size: .78rem;
  line-height: 1.5;
}

.overview-product-focus header dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.overview-product-focus header dl div {
  min-width: 0;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: .45rem .5rem;
}

.overview-product-focus dt {
  color: var(--ink-soft);
  font: 750 .6rem var(--font-data);
  letter-spacing: .045em;
  text-transform: uppercase;
}

.overview-product-focus dd {
  margin: .18rem 0 0;
  overflow-wrap: anywhere;
  font-size: .72rem;
  font-weight: 780;
}

.overview-product-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: .8rem;
}

.overview-product-focus .topology-product-switcher {
  margin-bottom: 0;
}

.overview-assistant-unavailable {
  margin: .75rem 0 0;
  border-left: 3px solid var(--line-strong);
  padding: .5rem .65rem;
  background: var(--paper);
  color: var(--ink-soft);
  font-size: .72rem;
  line-height: 1.45;
}

.overview-assistant-unavailable strong {
  color: var(--ink);
}

.ownership-label,
.state-badge,
.status-chip,
.badge {
  border: 1px solid currentColor;
  border-radius: 2px;
  padding: .2rem .38rem;
  font-family: var(--font-data);
  font-size: .57rem;
  letter-spacing: .045em;
}

.workspace-launcher,
.operational-panel,
.admin-panel,
.data-card,
.payload-panel,
.record-quickfacts,
.overview-relationship-map {
  border: 1px solid var(--line-strong);
  border-top: 3px solid var(--ink);
  border-radius: 2px;
  background: var(--surface);
  box-shadow: none;
}

.workspace-launcher {
  padding: 1rem;
  background: var(--surface);
}

.workspace-launcher-heading {
  border-bottom: 1px solid var(--line);
  padding-bottom: .8rem;
}

.workspace-actions {
  gap: 0;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.workspace-card {
  min-height: 6rem;
  border: 0;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  border-left: 3px solid var(--workspace-accent);
  border-radius: 0;
  background: #fff;
  box-shadow: none;
  transition: background-color 120ms ease, box-shadow 120ms ease;
}

.workspace-card:hover,
.workspace-card:focus-visible {
  border-color: var(--line);
  border-left-color: var(--workspace-accent);
  background: color-mix(in srgb, var(--workspace-accent) 7%, #fff);
  box-shadow: inset 0 0 0 1px var(--workspace-accent);
  outline: 0;
  transform: none;
}

.workspace-card-icon {
  border: 1px solid var(--workspace-accent);
  border-radius: 1px;
  background: transparent;
  color: var(--workspace-accent);
}

.workspace-card-arrow {
  font-family: var(--font-data);
  font-size: 1rem;
}

.operational-panel,
.admin-panel {
  padding: 1rem 1.1rem;
}

.panel-heading {
  border-bottom: 1px solid var(--line);
  padding-bottom: .72rem;
}

.button,
.button-quiet,
button:not(.text-button):not(.overview-root-card):not(.overview-edge-button):not(.overview-neighbor-card) {
  border-radius: 2px;
  box-shadow: none;
}

.button-primary {
  border-color: var(--ink);
  background: var(--ink);
}

.button-primary:hover,
.button-primary:focus-visible {
  border-color: var(--signal);
  background: var(--signal);
}

input:not([type="hidden"]),
textarea,
select {
  border-radius: 2px;
  background-color: #fff;
}

table {
  border-collapse: collapse;
}

th {
  border-bottom-color: var(--ink);
  background: #e1e6e3;
  font-family: var(--font-data);
  font-size: .61rem;
  letter-spacing: .055em;
  text-transform: uppercase;
}

tbody tr:hover {
  background: var(--cyan-pale);
}

.panel-note,
.boundary-note,
.separation-note,
.factual-boundary,
.alert {
  border-radius: 0;
}

.app-footer {
  border-top: 2px solid var(--ink);
  background: var(--surface);
  font-family: var(--font-data);
  font-size: .62rem;
  letter-spacing: .035em;
}

.login-body {
  min-height: 100vh;
  background: var(--paper);
}

.login-shell {
  display: grid;
  min-height: 100vh;
  grid-template-columns: minmax(0, 1.35fr) minmax(25rem, .65fr);
}

.login-story {
  position: relative;
  display: flex;
  min-height: 100vh;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  border-top: 5px solid var(--signal);
  padding: clamp(2rem, 4vw, 4.5rem);
  background-color: #0e3445;
  background-image:
    linear-gradient(rgba(95, 180, 199, .08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(95, 180, 199, .08) 1px, transparent 1px);
  background-size: 32px 32px;
  color: #fff;
}

.brand-light {
  border: 1px solid rgba(255, 255, 255, .72);
  border-radius: 1px;
  padding: .48rem .62rem;
  box-shadow: 6px 6px 0 rgba(95, 180, 199, .24);
}

.login-story h1 {
  max-width: 13ch;
  margin: 0;
  font-size: clamp(2.5rem, 4.5vw, 4.8rem);
  font-weight: 650;
  letter-spacing: -.045em;
  line-height: .98;
}

.login-story-copy {
  max-width: 46rem;
  min-width: 0;
}

.login-story-copy > p:last-child {
  max-width: 42rem;
  margin: 1.35rem 0 0;
  color: rgba(232, 241, 241, .76);
  font-size: clamp(.95rem, 1.2vw, 1.08rem);
  line-height: 1.58;
}

.eyebrow,
.login-flow {
  font-family: var(--font-data);
  font-size: .62rem;
  letter-spacing: .12em;
}

.eyebrow-light {
  color: #8fd1df;
}

.login-flow {
  display: grid;
  margin: clamp(2rem, 5vw, 4.5rem) 0 0;
  padding: 0;
  color: #c5d9dc;
  gap: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  list-style: none;
  text-transform: none;
}

.login-flow li {
  position: relative;
  display: grid;
  min-width: 0;
  border-top: 1px solid rgba(95, 180, 199, .5);
  padding: .9rem .9rem 0 0;
  gap: .32rem;
}

.login-flow li::before {
  position: absolute;
  top: -.25rem;
  left: 0;
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--cyan);
  content: "";
}

.login-flow li > span {
  color: #8fd1df;
  font-size: .56rem;
}

.login-flow strong {
  color: #f0f7f7;
  font-family: var(--font-ui);
  font-size: .76rem;
  letter-spacing: 0;
}

.login-flow small {
  max-width: 18ch;
  color: rgba(220, 232, 232, .68);
  font-family: var(--font-ui);
  font-size: .69rem;
  letter-spacing: 0;
  line-height: 1.4;
}

.login-panel {
  display: grid;
  min-height: 100vh;
  padding: clamp(1.25rem, 3vw, 2.5rem);
  place-items: center;
  border-left: 1px solid var(--line-strong);
  background-color: var(--paper);
  background-image:
    linear-gradient(rgba(16, 47, 58, .04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(16, 47, 58, .04) 1px, transparent 1px);
  background-size: 24px 24px;
}

.login-card {
  position: relative;
  width: min(100%, 29rem);
  border: 1px solid var(--line-strong);
  border-top: 4px solid var(--ink);
  border-radius: 1px;
  padding: clamp(1.35rem, 3vw, 2.15rem);
  background: var(--surface);
  box-shadow: 9px 9px 0 rgba(16, 47, 58, .09);
}

.login-card::before {
  position: absolute;
  top: -4px;
  right: 0;
  width: 4.5rem;
  height: 4px;
  background: var(--signal);
  content: "";
}

.login-card h1,
.login-card h2 {
  margin: 0;
  font-size: clamp(1.55rem, 2.5vw, 2.1rem);
  font-weight: 650;
  letter-spacing: -.03em;
}

.login-form {
  display: grid;
  gap: 1rem;
  border-top: 1px solid var(--line);
  margin-top: 1.5rem;
  padding-top: 1.25rem;
}

.login-form > label,
.login-password-field > label {
  display: grid;
  gap: .45rem;
  color: var(--ink);
  font-family: var(--font-data);
  font-size: .65rem;
  font-weight: 750;
  letter-spacing: .035em;
}

.login-form input:not([type="hidden"]) {
  width: 100%;
  min-height: 3rem;
  border: 1px solid var(--line-strong);
  border-radius: 1px;
  padding: .72rem .82rem;
  background: #fff;
  color: var(--ink);
  box-shadow: inset 3px 0 0 var(--cyan);
}

.login-form input:not([type="hidden"]):focus {
  border-color: var(--ink);
  box-shadow: inset 3px 0 0 var(--signal);
}

.login-password-field {
  display: grid;
  gap: .45rem;
}

.login-password-control {
  position: relative;
}

.login-password-control input {
  padding-right: 7.5rem;
}

.login-password-toggle {
  position: absolute;
  top: 50%;
  right: .55rem;
  min-height: 2rem;
  border: 0;
  border-left: 1px solid var(--line);
  padding: 0 .25rem 0 .7rem;
  background: transparent;
  color: var(--green);
  cursor: pointer;
  font-family: var(--font-data);
  font-size: .6rem;
  font-weight: 750;
  transform: translateY(-50%);
}

.login-input-status,
.login-submit-status {
  margin: 0;
  color: var(--amber);
  font-size: .72rem;
  font-weight: 700;
}

.login-submit-status {
  color: var(--ink-soft);
  text-align: center;
}

.security-note {
  margin: 1.4rem 0 0;
  border-top: 1px solid var(--line);
  padding-top: .9rem;
  color: #67776f;
  font-family: var(--font-data);
  font-size: .6rem;
  letter-spacing: .03em;
  text-align: left;
}

.security-note span {
  color: var(--cyan);
}

.centered-message {
  background-color: var(--paper);
  background-image:
    linear-gradient(rgba(16, 47, 58, .04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(16, 47, 58, .04) 1px, transparent 1px);
  background-size: 24px 24px;
}

@media (max-width: 820px) {
  .summary-grid article:nth-child(2n) { border-right: 0; }
  .summary-grid article:nth-child(-n+4) { border-bottom: 1px solid var(--line); }
  .primary-nav { gap: .55rem; }
  .login-shell { grid-template-columns: 1fr; }
  .login-panel { min-height: auto; order: -1; border-bottom: 1px solid var(--line-strong); border-left: 0; padding-block: 2rem; }
  .login-story { min-height: auto; padding-block: 2rem; gap: 2rem; }
  .login-flow { margin-top: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 1.2rem; }
}

@media (max-width: 560px) {
  .app-header { border-top-width: 3px; }
  .primary-nav a::after { bottom: -.48rem; }
  .record-section-nav { overflow-x: auto; flex-wrap: nowrap; }
  .record-section-nav a { flex: 0 0 auto; }
  .summary-grid article { border-bottom: 1px solid var(--line); }
  .workspace-launcher-heading { align-items: flex-start; flex-direction: column; }
  .login-story { min-height: auto; padding: 1.5rem; }
  .login-story h1 { font-size: clamp(2.15rem, 10vw, 3rem); }
  .login-panel { min-height: auto; padding: 1rem; }
  .login-flow { grid-template-columns: 1fr; }
  .login-flow small { max-width: none; }
  .login-card { box-shadow: 6px 6px 0 rgba(16, 47, 58, .09); }
}

/* Dossier component reset: remove the remaining rounded SaaS primitives from
   authenticated record, visualization, evaluation, and administration views. */
.operational-body :is(
  .admin-scope,
  .admin-receipt,
  .admin-link-card,
  .admin-panel,
  .data-card,
  .payload-panel,
  .preview-summary,
  .history-list li,
  .timeline-item,
  .comparison-grid > div,
  .admin-note,
  .record-quickfacts,
  .quick-fact,
  .receipt-panel,
  .alert,
  .panel-note,
  .boundary-note,
  .ownership-strip,
  .contained-table,
  .catalog-graph-status,
  .relationship-family-card,
  .catalog-focus-map,
  .optional-topology,
  .support-flow-stage,
  .catalog-explorer-canvas-wrap,
  .catalog-explorer-status,
  .catalog-explorer-inspector,
  .catalog-inspector-grid div,
  .catalog-edge-button,
  .operational-graph,
  .graph-inspector,
  .visualization-table-disclosure,
  .visualization-glossary,
  .relationship-glossary-item,
  .overview-relationship-map,
  .overview-root-card,
  .overview-family-group,
  .overview-relationship-button,
  .overview-neighbor-card,
  .overview-map-inspector,
  .target-list details,
  .withheld-panel,
  .evaluation-disclosure,
  .check-list details,
  .result-products a,
  .proof-grid,
  .resolution-paths > li,
  .error-panel
) {
  border-radius: 0;
  box-shadow: none;
}

.visualization-bounds {
  gap: 0;
  border: 1px solid var(--line-strong);
  border-left: 3px solid var(--ink);
  background: var(--surface);
}

.visualization-bounds div,
.graph-inspector-grid div {
  border: 0;
  border-right: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
}

.visualization-bounds div:last-child,
.graph-inspector-grid div:last-child {
  border-right: 0;
}

.visualization-legend b,
.relationship-family-marker,
.relationship-family-types span,
.relationship-chip,
.relationship-family,
.overview-relationship-marker {
  border-radius: 1px;
}

.normalization-summary {
  margin: .8rem 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.normalization-register {
  margin-top: 0;
}

.normalization-register .section-description {
  max-width: 72rem;
  margin: .7rem 0;
}

.normalization-table {
  min-width: 72rem;
}

.normalization-table th:first-child {
  width: 21%;
}

.normalization-table td:last-child {
  width: 14%;
}

.checksum-pair {
  display: grid;
  gap: .25rem;
  font-family: var(--font-data);
  font-size: .62rem;
}

.checksum-pair span {
  display: flex;
  align-items: baseline;
  gap: .45rem;
}

.table-details {
  margin-top: .4rem;
  border-top: 1px solid var(--line);
  padding-top: .35rem;
}

.table-details summary {
  color: var(--ink-soft);
  cursor: pointer;
  font-family: var(--font-data);
  font-size: .62rem;
  font-weight: 750;
}

.table-details[open] summary {
  margin-bottom: .45rem;
}

.table-details .payload-fields {
  min-width: 18rem;
}

.compact-issue-list {
  margin: .4rem 0 0;
  padding-left: 1rem;
  color: var(--amber);
  font-size: .68rem;
}

.admin-normalization-map {
  margin-top: .8rem;
}

.admin-normalization-map > .visualization-panel {
  margin: 0;
  border: 0;
  border-top: 1px solid var(--line);
}

@media (max-width: 820px) {
  .normalization-summary {
    grid-template-columns: 1fr;
  }
}

.rule-version-summary {
  margin: .8rem 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.rule-version-register .section-description {
  max-width: 72rem;
  margin: .7rem 0;
}

.rule-field-name {
  display: block;
  margin-bottom: .35rem;
  color: var(--ink-soft);
  font-family: var(--font-data);
  font-size: .62rem;
  font-weight: 750;
  text-transform: uppercase;
}

.rule-value-change {
  display: grid;
  align-items: center;
  gap: .3rem .5rem;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
}

.rule-value-change > * {
  min-width: 0;
  overflow-wrap: anywhere;
}

.admin-rule-lineage-map,
.admin-amendment-disclosure {
  margin-top: .8rem;
}

.admin-rule-lineage-map > .visualization-panel,
.admin-amendment-disclosure > .amendment-panel {
  margin: 0;
  border: 0;
  border-top: 1px solid var(--line);
}

@media (max-width: 820px) {
  .rule-version-summary {
    grid-template-columns: 1fr;
  }
}

.admin-register .section-description,
.rule-head-register .section-description {
  max-width: 76rem;
  margin: .7rem 0;
}

.admin-register .admin-table td code,
.admin-register .admin-table th code {
  overflow-wrap: anywhere;
}

.evidence-register .admin-table {
  min-width: 80rem;
}

.table-text-link {
  display: block;
  margin-top: .45rem;
  font-size: .65rem;
}

.admin-relationship-map,
.admin-evidence-map {
  margin-top: .8rem;
}

.admin-relationship-map > .visualization-panel,
.admin-evidence-map > .visualization-panel {
  margin: 0;
  border: 0;
  border-top: 1px solid var(--line);
}

.rule-head-summary {
  margin: .8rem 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.table-action {
  min-width: 13rem;
  border: 1px solid var(--line-strong);
  border-left: 3px solid var(--signal);
  padding: .45rem;
  background: var(--surface);
}

.table-action > summary {
  cursor: pointer;
  color: var(--ink);
  font-family: var(--font-data);
  font-size: .65rem;
  font-weight: 800;
}

.table-action[open] > summary {
  margin-bottom: .55rem;
  border-bottom: 1px solid var(--line);
  padding-bottom: .4rem;
}

.rule-event-context {
  margin-bottom: .7rem;
}

.rule-event-timeline {
  max-width: none;
  margin-top: 0;
}

.rule-event-timeline .history-top > div {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .45rem;
}

.event-transition {
  display: grid;
  width: min(100%, 34rem);
  align-items: center;
  gap: .6rem;
  margin-top: .55rem;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
}

.event-transition > span:not([aria-hidden]) {
  display: grid;
  gap: .15rem;
  border: 1px solid var(--line);
  padding: .4rem .5rem;
  background: var(--surface);
  font-family: var(--font-data);
  font-size: .68rem;
}

.event-transition small {
  margin: 0;
}

@media (max-width: 820px) {
  .rule-head-summary {
    grid-template-columns: 1fr;
  }
}

.relationship-family-card,
.support-flow-stage {
  border-top-width: 3px;
}

.relationship-chip {
  border-top: 0;
  border-right: 0;
  border-bottom: 1px solid var(--line-strong);
  background: transparent;
}

.overview-map-heading {
  border-bottom: 1px solid var(--line-strong);
  margin-bottom: .85rem;
  padding-bottom: .75rem;
}

.overview-map-layout {
  gap: .8rem;
}

.overview-root-card {
  border: 1px solid var(--line-strong);
  border-top: 4px solid var(--green);
  padding: .8rem;
  background: var(--surface);
}

.overview-root-card:hover,
.overview-root-card:focus-visible,
.overview-root-card.is-selected {
  border-color: var(--line-strong);
  border-top-color: var(--signal);
  box-shadow: inset 0 0 0 1px var(--signal);
}

.overview-root-badge,
.overview-map-inspector .graph-inspector-heading span,
.data-label,
.page-count,
.hash-pill {
  border: 1px solid currentColor;
  border-radius: 1px;
  background: transparent;
  font-family: var(--font-data);
  letter-spacing: .05em;
}

.overview-root-badge {
  color: var(--green);
}

.overview-root-card dl {
  gap: 0;
  border: 1px solid var(--line);
}

.overview-root-card dl div {
  border: 0;
  border-right: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
}

.overview-root-card dl div:last-child {
  border-right: 0;
}

.overview-family-group {
  border: 1px solid var(--line-strong);
  border-top: 3px solid var(--family-color, var(--green));
  background: var(--surface);
}

.overview-family-group h4 {
  border-bottom: 1px solid var(--line);
  padding: .42rem .5rem;
  background: color-mix(in srgb, var(--family-color, var(--green)) 5%, var(--surface));
}

.overview-relationship-list {
  gap: 0;
  padding: 0;
}

.overview-relationship-card {
  border-top: 0;
  border-bottom: 1px solid var(--line);
  padding: .42rem .45rem .5rem;
}

.overview-relationship-card:last-child {
  border-bottom: 0;
}

.overview-relationship-card.is-incident,
.overview-relationship-card.is-selected {
  border-radius: 0;
  background: var(--cyan-pale);
  box-shadow: inset 3px 0 0 var(--cyan);
}

.overview-relationship-button {
  padding: .2rem .15rem;
}

.overview-relationship-button:hover,
.overview-relationship-button:focus-visible {
  background: transparent;
  box-shadow: inset 3px 0 0 var(--cyan);
  outline: 0;
}

.relationship-segment {
  border: 0;
  border-bottom: 2px solid currentColor;
  border-radius: 0;
  padding: .12rem .22rem .1rem;
  background: transparent;
}

.relationship-segment-direction {
  border-bottom: 0;
}

.relationship-segment[data-tooltip]::after,
.overview-relationship-tooltip {
  border-radius: 0;
  box-shadow: 6px 6px 0 rgba(16, 47, 58, .16);
}

.overview-neighbor-card {
  border: 1px solid var(--line);
  border-left: 3px solid var(--family-color, var(--green));
  background: transparent;
}

.overview-neighbor-card:hover,
.overview-neighbor-card:focus-visible,
.overview-neighbor-card.is-selected {
  background: var(--cyan-pale);
  outline: 0;
}

.overview-map-inspector.graph-inspector {
  border: 1px solid var(--line-strong);
  border-top: 3px solid var(--ink);
  padding: .65rem;
  background: var(--surface);
}

.overview-map-inspector .graph-inspector-heading {
  border-bottom: 1px solid var(--line);
  padding-bottom: .45rem;
}

.overview-map-inspector-grid,
.graph-inspector-grid {
  gap: 0;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.overview-map-inspector-grid div,
.graph-inspector-grid div {
  border: 0;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
}

.overview-map-inspector-wide {
  border-right-color: var(--line) !important;
  border-bottom-color: var(--line) !important;
  background: var(--cyan-pale) !important;
}

.visualization-table-disclosure,
.visualization-glossary,
.optional-topology,
.evaluation-disclosure,
.target-list details,
.check-list details {
  border-color: var(--line-strong);
  background: var(--surface);
}

.visualization-table-disclosure > summary,
.visualization-glossary > summary,
.optional-topology > summary,
.evaluation-disclosure > summary,
.target-list details > summary,
.check-list details > summary {
  border-left: 3px solid var(--ink);
  border-radius: 0;
  background: transparent;
}

.visualization-table-disclosure > summary:hover,
.visualization-glossary > summary:hover,
.optional-topology > summary:hover,
.evaluation-disclosure > summary:hover,
.target-list details > summary:hover,
.check-list details > summary:hover {
  background: var(--cyan-pale);
}

.relationship-ledger-introduction {
  margin: 0;
  border-bottom: 1px solid var(--line);
  padding: .7rem .8rem;
  color: var(--ink-soft);
  font-size: .78rem;
  line-height: 1.5;
}

.relationship-ledger-region {
  max-height: min(70vh, 48rem);
}

.relationship-ledger-table {
  width: 100%;
  min-width: 68rem;
  font-size: .875rem;
}

.relationship-ledger-table caption {
  padding: .65rem .75rem;
  color: var(--ink-soft);
  font-size: .78rem;
  line-height: 1.45;
  text-align: left;
}

.relationship-ledger-table th,
.relationship-ledger-table td {
  min-width: 0;
  padding: .7rem;
  vertical-align: top;
}

.relationship-ledger-table td > strong,
.relationship-ledger-table td > small,
.relationship-ledger-table td > code {
  display: block;
}

.relationship-ledger-table td > small {
  margin: .2rem 0;
  color: var(--ink-soft);
  font-size: .75rem;
  text-transform: capitalize;
}

.relationship-ledger-table td > code {
  color: var(--ink-soft);
  font-size: .75rem;
  overflow-wrap: anywhere;
}

.relationship-ledger-group-heading th {
  border-top: 2px solid var(--ink);
  padding: .55rem .7rem;
  background: var(--cyan-pale);
  color: var(--ink);
  font-size: .75rem;
  letter-spacing: .025em;
  text-align: left;
  text-transform: none;
}

.relationship-ledger-kind {
  display: flex;
  align-items: flex-start;
  gap: .5rem;
}

.relationship-ledger-kind > span:last-child {
  display: grid;
  gap: .25rem;
}

.relationship-ledger-kind strong {
  font-size: .875rem;
}

.relationship-ledger-kind small {
  color: var(--ink-soft);
  font-size: .75rem;
  font-weight: 500;
  line-height: 1.4;
}

.relationship-ledger-direction {
  color: var(--green);
  font-size: 1.25rem;
  font-weight: 900;
  text-align: center;
}

.relationship-ledger-details {
  margin-top: .45rem;
  border-top: 1px solid var(--line);
}

.relationship-ledger-details > summary {
  display: flex;
  min-height: 2.75rem;
  align-items: center;
  color: var(--green);
  cursor: pointer;
  font-size: .75rem;
  font-weight: 800;
}

.relationship-ledger-details dl {
  display: grid;
  gap: .45rem;
  margin: 0 0 .5rem;
}

.relationship-ledger-details dl div {
  min-width: 0;
}

.relationship-ledger-details dt {
  color: var(--ink-soft);
  font: 750 .65rem var(--font-data);
  letter-spacing: .035em;
  text-transform: uppercase;
}

.relationship-ledger-details dd {
  margin: .15rem 0 0;
  overflow-wrap: anywhere;
  font-size: .75rem;
}

@media (max-width: 760px) {
  .relationship-ledger-region { max-height: none; overflow: visible; }
  .relationship-ledger-table { display: block; min-width: 0; }
  .relationship-ledger-table caption,
  .relationship-ledger-table tbody,
  .relationship-ledger-table tr,
  .relationship-ledger-table th,
  .relationship-ledger-table td { display: block; width: 100%; }
  .relationship-ledger-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
  .relationship-ledger-group-heading th { border: 0; border-top: 3px solid var(--ink); }
  .relationship-ledger-row { margin: .65rem; border: 1px solid var(--line-strong); border-left: 3px solid var(--green); background: var(--surface); }
  .relationship-ledger-row > [data-label] { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: .65rem; border-bottom: 1px solid var(--line); }
  .relationship-ledger-row > [data-label]::before { color: var(--ink-soft); content: attr(data-label); font: 750 .65rem var(--font-data); letter-spacing: .035em; text-transform: uppercase; }
  .relationship-ledger-row > [data-label]:last-child { border-bottom: 0; }
  .relationship-ledger-direction { text-align: left; }
}

@media (max-width: 440px) {
  .relationship-ledger-row > [data-label] { grid-template-columns: 1fr; gap: .35rem; }
}

.admin-link-card {
  border-top: 3px solid var(--ink);
  transition: border-color 120ms ease, background-color 120ms ease;
}

.admin-link-card:hover,
.admin-link-card:focus-visible {
  border-color: var(--signal);
  background: var(--signal-pale);
  box-shadow: none;
  transform: none;
}

/* Keep Admin in the same compact catalog-dossier system as the read surfaces. */
.admin-route-header.page-heading {
  align-items: start;
  margin-bottom: 0;
}

.admin-route-header .hero-copy {
  max-width: 64rem;
  margin: .45rem 0 0;
  font-size: .78rem;
  line-height: 1.5;
}

.admin-route-context.record-meta {
  gap: .35rem;
  border-left: 2px solid var(--ink);
  padding: .1rem 0 .1rem .8rem;
}

.admin-scope {
  gap: .4rem .65rem;
  margin: .7rem 0;
  border-color: var(--line-strong);
  border-left: 3px solid var(--cyan);
  border-radius: 1px;
  padding: .55rem .65rem;
  background: var(--cyan-pale);
  font-family: var(--font-data);
  font-size: .65rem;
}

.admin-scope .data-label {
  border-radius: 1px;
  padding: .18rem .3rem;
  font-size: .56rem;
}

.admin-nav {
  gap: .35rem .8rem;
  margin: .7rem 0 .45rem;
  border: 1px solid var(--line-strong);
  border-left: 3px solid var(--ink);
  padding: .35rem .45rem;
  background: var(--surface);
}

.admin-nav-group {
  gap: .12rem;
}

.admin-nav-group > span {
  margin-right: .15rem;
  font-family: var(--font-data);
  font-size: .57rem;
  letter-spacing: .06em;
}

.admin-nav a {
  border: 1px solid transparent;
  border-radius: 1px;
  padding: .34rem .45rem;
  font-size: .68rem;
}

.admin-nav a:hover,
.admin-nav a:focus-visible,
.admin-nav a[aria-current="page"] {
  border-color: var(--ink);
  background: var(--cyan-pale);
  color: var(--ink);
}

.admin-nav-note {
  margin: 0 0 .8rem;
}

.admin-overview-context {
  margin: .9rem 0 .7rem;
  border-top: 2px solid var(--ink);
  padding-top: .7rem;
}

.admin-metrics {
  margin-bottom: 1rem;
}

.admin-card-grid {
  gap: 0;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.admin-link-card {
  border: 0;
  border-top: 3px solid var(--ink);
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  padding: 1rem;
}

.admin-panel,
.data-card,
.payload-panel,
.admin-receipt,
.admin-note,
.history-list li,
.timeline-item,
.comparison-grid > div {
  border-radius: 1px;
}

.admin-nav a,
.rule-badges code,
.inline-form input:not([type="hidden"]),
.admin-form input:not([type="hidden"]),
.admin-form textarea,
.admin-form select,
.catalog-explorer-controls select,
.operational-form textarea {
  border-radius: 1px;
}

.receipt-mark,
.timeline-dot {
  border-radius: 1px;
}

.query-registry a,
.queries-page .query-registry-row,
.result-products a {
  border-radius: 0;
}

.query-registry a:hover,
.query-registry a:focus-visible,
.queries-page .query-registry-row:hover,
.queries-page .query-registry-row:focus-visible,
.result-products a:hover,
.result-products a:focus-visible {
  background: var(--cyan-pale);
  box-shadow: inset 3px 0 0 var(--cyan);
}

@media (max-width: 820px) {
  .overview-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .overview-summary-grid .summary-card:nth-child(4n) { border-right: 1px solid var(--line); }
  .overview-summary-grid .summary-card:nth-child(2n) { border-right: 0; }
  .overview-summary-grid .summary-card:nth-last-child(-n + 4) { border-bottom: 1px solid var(--line); }
  .overview-summary-grid .summary-card:nth-last-child(-n + 2) { border-bottom: 0; }
  .overview-product-focus > header { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .overview-health { grid-template-columns: 1fr; }
  .overview-product-focus { padding: .75rem; }
  .overview-product-focus header dl { grid-template-columns: 1fr; }
  .overview-product-actions { display: grid; }
  .overview-root-card dl div { border-right: 0; border-bottom: 1px solid var(--line); }
  .overview-root-card dl div:last-child { border-bottom: 0; }
  .overview-map-inspector-grid { grid-template-columns: 1fr; }
}

/* Rich catalog ledger: table comparison with relationship-family semantics. */
.catalog-notation {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem .7rem;
  border-bottom: 1px solid var(--line-strong);
  padding: .7rem 0;
}

.catalog-notation > span {
  --catalog-family: var(--ink-soft);
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  color: var(--ink-soft);
  cursor: help;
  font-family: var(--font-data);
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .035em;
}

.catalog-notation i,
.catalog-product-kind i {
  display: inline-grid;
  min-width: 1.8rem;
  height: 1.15rem;
  place-items: center;
  border: 1px solid var(--catalog-family);
  border-radius: 1px;
  color: var(--catalog-family);
  font: 800 .52rem var(--font-data);
  font-style: normal;
}

.catalog-notation-identity,
.catalog-heading-identity,
.catalog-cell-identity { --catalog-family: #005f8f; }
.catalog-notation-taxonomy,
.catalog-heading-taxonomy,
.catalog-cell-taxonomy { --catalog-family: #4b5f6b; }
.catalog-notation-commercial,
.catalog-heading-commercial,
.catalog-cell-commercial { --catalog-family: #843858; }
.catalog-notation-compatibility,
.catalog-heading-compatibility,
.catalog-cell-compatibility { --catalog-family: #14734f; }
.catalog-notation-reference,
.catalog-heading-reference,
.catalog-cell-reference { --catalog-family: #8a4b00; }
.catalog-notation-provenance,
.catalog-heading-provenance,
.catalog-cell-provenance { --catalog-family: #67418c; }
.catalog-notation-publication,
.catalog-heading-publication,
.catalog-cell-publication { --catalog-family: #006b73; }

.catalog-table {
  border-color: var(--line-strong);
  border-top: 0;
}

.catalog-table table {
  min-width: 1240px;
  table-layout: fixed;
}

.catalog-table caption {
  border-bottom: 1px solid var(--line);
  padding: .55rem .7rem;
  background: #f3f5f1;
  color: var(--ink-soft);
  font-size: .68rem;
  line-height: 1.4;
  text-align: left;
}

.catalog-table thead th {
  position: relative;
  border-top: 3px solid var(--catalog-family);
  border-right: 0;
  padding: .58rem .65rem .55rem;
  background: #e6eae7;
  color: var(--catalog-family);
}

.catalog-table thead th + th::before,
.catalog-record-row > td::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 2px;
  background: color-mix(in srgb, var(--catalog-family) 72%, transparent);
  content: "";
}

.catalog-table thead th:first-child { width: 36%; }
.catalog-table thead th:nth-child(2) { width: 10%; }
.catalog-table thead th:nth-child(3) { width: 14%; }
.catalog-table thead th:nth-child(4) { width: 9%; }
.catalog-table thead th:nth-child(5) { width: 8%; }
.catalog-table thead th:nth-child(6) { width: 11%; }
.catalog-table thead th:nth-child(7) { width: 12%; }

.catalog-table thead th small {
  margin-top: .2rem;
  color: var(--ink-soft);
  font-family: var(--font-ui);
  font-size: .58rem;
  font-weight: 600;
  letter-spacing: 0;
}

.catalog-record-row > th,
.catalog-record-row > td {
  position: relative;
  border-right: 0;
  padding: .65rem;
  background: var(--surface);
}

.catalog-table tbody tr:last-child > th,
.catalog-table tbody tr:last-child > td { border-bottom: 0; }

.catalog-record-row:hover > th,
.catalog-record-row:hover > td {
  background: color-mix(in srgb, var(--catalog-family, var(--cyan)) 4%, var(--surface));
}

.catalog-record-withheld > th,
.catalog-record-withheld > td {
  background: #fffaf0;
}

.catalog-product-link {
  min-width: 0;
  align-items: start;
  gap: .45rem;
  grid-template-columns: 1.55rem minmax(0, 1fr) auto;
}

.catalog-row-index {
  padding-top: .08rem;
  color: var(--catalog-family);
  font: 700 .58rem var(--font-data);
  letter-spacing: .06em;
}

.catalog-product-copy {
  display: grid;
  min-width: 0;
  gap: .28rem;
}

.catalog-product-kind {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  gap: .35rem;
  color: var(--catalog-family);
  font: 750 .57rem var(--font-data);
  letter-spacing: .04em;
  text-transform: uppercase;
}

.catalog-product-kind i {
  min-width: 1.2rem;
}

.catalog-product-link strong {
  color: var(--ink);
  font-family: var(--font-display);
  font-size: .82rem;
  font-weight: 650;
  line-height: 1.28;
}

.catalog-identity-line {
  display: flex;
  flex-wrap: wrap;
  gap: .2rem .45rem;
}

.catalog-identity-line > span {
  color: var(--ink-soft);
  font: 600 .58rem var(--font-data);
}

.catalog-identity-line b,
.catalog-product-copy small b {
  color: var(--catalog-family);
  font-size: .5rem;
  letter-spacing: .05em;
}

.catalog-identity-line code {
  color: var(--ink);
  font-size: .61rem;
}

.catalog-product-copy small {
  color: var(--ink-soft);
  font-size: .6rem;
  line-height: 1.35;
}

.catalog-row-arrow {
  color: var(--catalog-family);
  font: 750 .9rem var(--font-data);
}

.catalog-product-link:hover,
.catalog-product-link:focus-visible {
  box-shadow: inset 3px 0 0 var(--catalog-family);
  outline: 0;
}

.catalog-product-link:hover strong,
.catalog-product-link:focus-visible strong {
  color: var(--catalog-family);
  text-decoration: none;
}

.catalog-cell-kicker {
  display: block;
  margin-bottom: .35rem;
  color: var(--catalog-family);
  font: 750 .54rem var(--font-data);
  letter-spacing: .05em;
  text-transform: uppercase;
}

.catalog-cell-taxonomy strong,
.catalog-cell-taxonomy code,
.catalog-cell-compatibility small,
.catalog-cell-reference small,
.catalog-cell-publication small {
  display: block;
}

.catalog-cell-taxonomy strong {
  color: var(--ink);
  font-size: .68rem;
  line-height: 1.3;
  text-transform: capitalize;
}

.catalog-cell-taxonomy code {
  margin-top: .25rem;
  color: var(--ink-soft);
  font-size: .56rem;
}

.catalog-cell-commercial ul {
  display: grid;
  gap: .28rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.catalog-cell-commercial li {
  border-left: 2px solid var(--catalog-family);
  padding-left: .38rem;
  color: var(--ink);
  font-size: .65rem;
  line-height: 1.3;
}

.catalog-empty-value {
  color: var(--ink-soft) !important;
  font-style: italic;
}

.catalog-count {
  display: block;
  color: var(--catalog-family);
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 650;
  letter-spacing: -.035em;
  line-height: 1;
}

.catalog-count-empty {
  color: var(--amber);
}

.catalog-cell-compatibility small,
.catalog-cell-reference small,
.catalog-cell-publication small {
  margin-top: .25rem;
  color: var(--ink-soft);
  font-size: .58rem;
  line-height: 1.3;
}

.catalog-evidence-state,
.catalog-publication-state {
  display: inline-block;
  border: 1px solid currentColor;
  border-radius: 1px;
  padding: .22rem .32rem;
  color: var(--catalog-family);
  cursor: help;
  font: 750 .56rem var(--font-data);
  letter-spacing: .025em;
  line-height: 1.25;
  text-transform: uppercase;
}

.catalog-publication-state.is-eligible {
  background: #e1f0e8;
  color: #17613c;
}

.catalog-table .is-eligible {
  border-color: currentColor;
}

.catalog-evidence-state.is-withheld,
.catalog-publication-state.is-withheld {
  background: var(--amber-pale);
  color: var(--amber);
}

.catalog-table .is-withheld {
  border-color: currentColor;
}

@media (max-width: 820px) {
  .catalog-notation { gap: .5rem 1rem; }
  .catalog-table table { min-width: 1180px; }
}

.catalog-workbench {
  margin-top: .8rem;
  border: 1px solid var(--line-strong);
  border-top: 3px solid var(--ink);
  background: var(--surface);
}

.catalog-workbench-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  border-bottom: 1px solid var(--line);
  padding: .75rem .85rem;
}

.catalog-workbench-heading h3 {
  margin: .1rem 0 0;
  font-size: 1rem;
  letter-spacing: -.02em;
}

.catalog-result-count {
  border: 1px solid var(--ink);
  padding: .28rem .45rem;
  color: var(--ink);
  font: 750 .62rem var(--font-data);
  letter-spacing: .035em;
}

.catalog-filter-bar {
  display: grid;
  align-items: end;
  gap: .7rem;
  border-bottom: 1px solid var(--line);
  padding: .75rem .85rem;
  grid-template-columns: minmax(16rem, 1fr) minmax(12rem, .35fr) auto;
  background: #f3f5f1;
}

.catalog-filter-bar label {
  display: grid;
  gap: .3rem;
  color: var(--ink-soft);
  font: 700 .6rem var(--font-data);
  letter-spacing: .03em;
}

.catalog-filter-bar input,
.catalog-filter-bar select {
  width: 100%;
  min-height: 2.45rem;
  border: 1px solid var(--line-strong);
  border-radius: 0;
  padding: .5rem .6rem;
  background: #fff;
  color: var(--ink);
}

.catalog-search-field input {
  box-shadow: inset 3px 0 0 #005f8f;
}

.catalog-clear-filters {
  min-height: 2.45rem;
}

.catalog-facet-board {
  display: grid;
  gap: 0;
  grid-template-columns: 1.2fr 1.2fr .8fr;
}

.catalog-facet-panel {
  --catalog-family: var(--ink);
  min-width: 0;
  border-right: 1px solid var(--line);
  padding: .75rem .85rem .85rem;
}

.catalog-facet-panel:last-child {
  border-right: 0;
}

.catalog-facet-taxonomy { --catalog-family: #4b5f6b; }
.catalog-facet-commercial { --catalog-family: #843858; }
.catalog-facet-publication { --catalog-family: #006b73; }

.catalog-facet-panel h4 {
  margin: .1rem 0 .65rem;
  font-size: .78rem;
}

.catalog-facet-options {
  display: grid;
  gap: .22rem;
}

.catalog-facet-options > p {
  margin: 0;
  color: var(--ink-soft);
  font-size: .65rem;
}

.catalog-facet-button {
  --facet-share: 0%;
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 1.8rem;
  align-items: center;
  gap: .45rem;
  overflow: hidden;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  padding: .28rem .35rem;
  grid-template-columns: minmax(0, 1fr) auto;
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--catalog-family) 16%, transparent) var(--facet-share), transparent var(--facet-share));
  color: var(--ink);
  cursor: pointer;
  text-align: left;
}

.catalog-facet-button:hover,
.catalog-facet-button:focus-visible,
.catalog-facet-button.is-active {
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--catalog-family) 28%, transparent) var(--facet-share), color-mix(in srgb, var(--catalog-family) 7%, transparent) var(--facet-share));
  box-shadow: inset 3px 0 0 var(--catalog-family);
  outline: 0;
}

.catalog-facet-button span {
  min-width: 0;
  overflow: hidden;
  font-size: .63rem;
  font-weight: 680;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.catalog-facet-button strong {
  color: var(--catalog-family);
  font: 750 .62rem var(--font-data);
}

.catalog-active-filter {
  margin: 0;
  border-top: 1px solid var(--line);
  padding: .55rem .85rem;
  background: var(--cyan-pale);
  color: var(--ink-soft);
  font-size: .65rem;
  line-height: 1.4;
}

.catalog-empty-result {
  margin: .7rem 0 0;
  border: 1px solid var(--amber);
  border-left: 3px solid var(--amber);
  padding: .7rem .8rem;
  background: var(--amber-pale);
  color: var(--amber);
  font-size: .7rem;
}

.catalog-record-row[hidden] {
  display: none;
}

.section-description,
.visualization-description {
  max-width: 68rem;
  margin: .65rem 0 .8rem;
  border-left: 2px solid var(--cyan);
  padding-left: .65rem;
  color: var(--ink-soft);
  font-size: .72rem;
  line-height: 1.5;
}

.section-description code {
  color: var(--ink);
  font-size: .68rem;
}

@media (max-width: 820px) {
  .catalog-filter-bar { grid-template-columns: 1fr 1fr; }
  .catalog-search-field { grid-column: 1 / -1; }
  .catalog-facet-board { grid-template-columns: 1fr; }
  .catalog-facet-panel { border-right: 0; border-bottom: 1px solid var(--line); }
  .catalog-facet-panel:last-child { border-bottom: 0; }
}

@media (max-width: 560px) {
  .catalog-filter-bar { grid-template-columns: 1fr; }
  .catalog-search-field { grid-column: auto; }
  .catalog-workbench-heading { align-items: flex-start; flex-direction: column; }
}

/* Product relationship dossier: a fixed semantic map, never a physics graph. */
.product-dossier {
  margin-top: .9rem;
  border: 1px solid var(--line-strong);
  border-top: 3px solid var(--ink);
  background: var(--surface);
}

.product-dossier-heading,
.dossier-lane > header,
.dossier-claims > header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
}

.product-dossier-heading {
  padding: .8rem .9rem .55rem;
}

.product-dossier-heading h3,
.dossier-lane h4,
.dossier-claims h4 {
  margin: .08rem 0 0;
  letter-spacing: -.025em;
}

.product-dossier-heading h3 { font-size: 1.05rem; }

.product-dossier-heading > span {
  border: 1px solid var(--ink);
  padding: .25rem .4rem;
  color: var(--ink);
  font: 750 .58rem var(--font-data);
  letter-spacing: .04em;
  text-transform: uppercase;
}

.product-dossier-intro {
  max-width: 70rem;
  margin: 0;
  padding: 0 .9rem .8rem;
  color: var(--ink-soft);
  font-size: .72rem;
  line-height: 1.5;
}

.dossier-identity-spine {
  display: grid;
  align-items: stretch;
  border-block: 1px solid var(--line-strong);
  grid-template-columns: minmax(0, 1fr) minmax(10rem, .38fr) minmax(0, 1fr);
  background: #f3f5f1;
}

.dossier-anchor {
  min-width: 0;
  padding: .8rem .9rem;
  background: var(--surface);
}

.dossier-anchor-product { box-shadow: inset 4px 0 0 #005f8f; }
.dossier-anchor-part { box-shadow: inset -4px 0 0 #006b73; }

.dossier-anchor > span,
.dossier-lane > header span,
.dossier-claims > header span {
  color: var(--coral, #e9664c);
  font: 750 .57rem var(--font-data);
  letter-spacing: .07em;
  text-transform: uppercase;
}

.dossier-anchor h4 {
  margin: .22rem 0 .18rem;
  font-size: .88rem;
  line-height: 1.25;
}

.dossier-anchor > code {
  display: block;
  overflow-wrap: anywhere;
  color: var(--ink-soft);
  font-size: .62rem;
}

.dossier-anchor dl {
  display: grid;
  gap: .35rem;
  margin: .65rem 0 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dossier-anchor dl div {
  border-top: 1px solid var(--line);
  padding-top: .35rem;
}

.dossier-anchor dt,
.dossier-assertion-detail dt {
  color: var(--ink-soft);
  font: 700 .55rem var(--font-data);
  letter-spacing: .045em;
  text-transform: uppercase;
}

.dossier-anchor dd {
  margin: .12rem 0 0;
  color: var(--ink);
  font: 700 .62rem var(--font-data);
}

.dossier-spine-link {
  display: grid;
  position: relative;
  z-index: 0;
  place-content: center;
  place-items: center;
  gap: .2rem;
  padding: .65rem .8rem;
  text-align: center;
}

.dossier-spine-link::before {
  position: absolute;
  z-index: -1;
  right: 0;
  left: 0;
  height: 1px;
  background: #005f8f;
  content: "";
}

.dossier-spine-link strong,
.dossier-spine-link > span:not(.relationship-family):not(.dossier-spine-arrow) {
  padding-inline: .3rem;
  background: #f3f5f1;
}

.dossier-spine-link strong {
  color: #005f8f;
  font: 750 .62rem var(--font-data);
}

.dossier-spine-link > span:not(.relationship-family):not(.dossier-spine-arrow) {
  color: var(--ink-soft);
  font-size: .58rem;
}

.dossier-spine-arrow {
  position: absolute;
  right: .35rem;
  padding-left: .2rem;
  background: #f3f5f1;
  color: #005f8f;
  font-size: 1rem;
}

.dossier-scope-lanes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dossier-lane { min-width: 0; padding: .85rem .9rem 1rem; }
.dossier-lane-part { background: color-mix(in srgb, #006b73 2%, var(--surface)); }
.dossier-lane-product { border-right: 1px solid var(--line-strong); }

.dossier-lane > header,
.dossier-claims > header {
  align-items: start;
  border-bottom: 1px solid var(--line-strong);
  padding-bottom: .6rem;
}

.dossier-lane > header p,
.dossier-claims > header p {
  max-width: 22rem;
  margin: 0;
  color: var(--ink-soft);
  font-size: .64rem;
  line-height: 1.45;
  text-align: right;
}

.dossier-lane h4,
.dossier-claims h4 { font-size: .9rem; }
.dossier-group { --dossier-family: var(--ink); margin-top: .7rem; }
.dossier-group-identity,
.dossier-family-identity { --dossier-family: #005f8f; }
.dossier-group-commercial,
.dossier-family-commercial { --dossier-family: #843858; }
.dossier-group-compatibility,
.dossier-family-compatibility { --dossier-family: #14734f; }
.dossier-group-taxonomy,
.dossier-family-taxonomy { --dossier-family: #4b5f6b; }
.dossier-group-reference,
.dossier-family-reference { --dossier-family: #8a4b00; }
.dossier-group-lifecycle,
.dossier-family-lifecycle { --dossier-family: #67418c; }

.dossier-group h5 {
  display: flex;
  align-items: center;
  gap: .4rem;
  margin: 0 0 .25rem;
  color: var(--ink);
  font-size: .68rem;
}

.dossier-group h5 small {
  margin-left: auto;
  color: var(--dossier-family);
  font: 750 .6rem var(--font-data);
}

.dossier-assertion {
  border-bottom: 1px solid var(--line);
  box-shadow: inset 3px 0 0 var(--dossier-family);
}

.dossier-assertion summary {
  display: grid;
  align-items: center;
  gap: .5rem;
  min-height: 3.15rem;
  padding: .45rem .5rem .45rem .65rem;
  grid-template-columns: auto minmax(0, 1fr) auto;
  cursor: pointer;
  list-style: none;
}

.dossier-assertion summary::-webkit-details-marker { display: none; }
.dossier-assertion summary:hover { background: color-mix(in srgb, var(--dossier-family) 7%, var(--surface)); }
.dossier-assertion[open] summary { background: color-mix(in srgb, var(--dossier-family) 10%, var(--surface)); }

.dossier-assertion-copy { display: grid; min-width: 0; gap: .12rem; }
.dossier-assertion-copy strong { color: var(--dossier-family); font-size: .68rem; }
.dossier-assertion-copy > span { overflow-wrap: anywhere; color: var(--ink-soft); font-size: .62rem; line-height: 1.35; }

.dossier-assertion-state {
  color: var(--ink-soft);
  font: 700 .56rem var(--font-data);
  white-space: nowrap;
}

.dossier-assertion-detail {
  border-top: 1px solid color-mix(in srgb, var(--dossier-family) 30%, var(--line));
  padding: .6rem .65rem .7rem;
  background: color-mix(in srgb, var(--dossier-family) 5%, var(--surface));
}

.dossier-assertion-detail p {
  margin: 0 0 .55rem;
  color: var(--ink);
  font-size: .66rem;
  line-height: 1.5;
}

.dossier-assertion-detail dl {
  display: grid;
  gap: .5rem;
  margin: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dossier-assertion-detail dd {
  margin: .14rem 0 0;
  overflow-wrap: anywhere;
  color: var(--ink);
  font-size: .61rem;
  line-height: 1.4;
}

.dossier-assertion-detail code { font-size: .58rem; }

.dossier-claims {
  border-top: 1px solid var(--line-strong);
  padding: .85rem .9rem 1rem;
  background: #f3f5f1;
}

.dossier-claim-groups {
  display: grid;
  gap: 0 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 820px) {
  .dossier-identity-spine { grid-template-columns: 1fr; }
  .dossier-anchor-part { box-shadow: inset 4px 0 0 #006b73; }
  .dossier-spine-link { min-height: 5rem; }
  .dossier-spine-link::before { top: 0; bottom: 0; left: 50%; width: 1px; height: auto; }
  .dossier-spine-arrow { right: auto; bottom: .18rem; transform: rotate(90deg); }
  .dossier-scope-lanes { grid-template-columns: 1fr; }
  .dossier-lane-product { border-right: 0; border-bottom: 1px solid var(--line-strong); }
  .dossier-claim-groups { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .product-dossier-heading,
  .dossier-lane > header,
  .dossier-claims > header { align-items: flex-start; flex-direction: column; }
  .dossier-lane > header p,
  .dossier-claims > header p { text-align: left; }
  .dossier-assertion summary { grid-template-columns: auto minmax(0, 1fr); }
  .dossier-assertion-state { grid-column: 2; white-space: normal; }
  .dossier-assertion-detail dl { grid-template-columns: 1fr; }
}

/* Query launch surface: buyer investigations should feel actionable, not archival. */
.query-launch-hero {
  position: relative;
  display: grid;
  overflow: hidden;
  gap: 2rem;
  border-top: 4px solid var(--signal);
  padding: clamp(1.4rem, 3vw, 2.4rem);
  background:
    linear-gradient(120deg, rgba(95, 180, 199, .13), transparent 45%),
    var(--ink);
  color: #fff;
  grid-template-columns: minmax(0, 1.55fr) minmax(18rem, .75fr);
}

.query-launch-hero::after {
  position: absolute;
  right: -5rem;
  bottom: -7rem;
  width: 20rem;
  height: 20rem;
  border: 1px solid rgba(255, 255, 255, .12);
  transform: rotate(24deg);
  content: "";
}

.query-launch-copy { position: relative; z-index: 1; }
.query-launch-copy .section-kicker { color: #83d3df; }
.query-launch-copy h1 { max-width: 15ch; margin: .25rem 0 .65rem; color: #fff; font-size: clamp(2rem, 4vw, 3.25rem); line-height: .98; }
.query-launch-copy > p:not(.section-kicker) { max-width: 60ch; margin: 0; color: #c9d7dc; line-height: 1.6; }
.query-launch-copy .contextual-actions { margin-top: 1.25rem; }
.query-launch-copy .button-primary { border-color: #83d3df; background: #83d3df; color: var(--ink); }
.query-launch-copy .button-primary:hover,
.query-launch-copy .button-primary:focus-visible { border-color: #fff; background: #fff; }
.query-launch-copy .button-quiet { border-color: rgba(255, 255, 255, .42); background: transparent; color: #fff; }
.query-launch-copy .button-quiet:hover,
.query-launch-copy .button-quiet:focus-visible { border-color: #fff; background: rgba(255, 255, 255, .08); }

.query-launch-stats {
  position: relative;
  z-index: 1;
  display: grid;
  align-self: stretch;
  gap: 0;
  margin: 0;
  border: 1px solid rgba(255, 255, 255, .2);
  background: rgba(255, 255, 255, .04);
}

.query-launch-stats div { display: grid; align-content: center; min-height: 5.2rem; border-bottom: 1px solid rgba(255, 255, 255, .16); padding: .75rem 1rem; }
.query-launch-stats div:last-child { border-bottom: 0; }
.query-launch-stats dt { color: #83d3df; font: 800 .62rem var(--font-data); letter-spacing: .08em; text-transform: uppercase; }
.query-launch-stats dd { margin: .18rem 0 0; color: #fff; font-size: 1.15rem; font-weight: 850; }
.query-launch-stats code { color: #fff; }
.query-launch-stats small { margin-top: .08rem; color: #9eb2b9; }

.query-playbooks { margin-top: 1.4rem; scroll-margin-top: 5rem; }
.query-playbooks-heading { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; border-bottom: 1px solid var(--line-strong); padding: 0 0 .8rem; }
.query-playbooks-heading h2 { margin: .15rem 0 0; }
.query-playbooks-heading > p { max-width: 52ch; margin: 0; color: var(--ink-soft); font-size: .76rem; line-height: 1.5; text-align: right; }

.queries-page .query-playbooks .query-registry-list {
  display: grid;
  gap: .8rem;
  margin-top: .9rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.queries-page .query-playbooks .query-registry-list > li,
.queries-page .query-playbooks .query-registry-list > li + li { min-width: 0; border: 1px solid var(--line); border-top: 3px solid var(--cyan); background: var(--surface); }
.queries-page .query-playbooks .query-registry-list > li:nth-child(4n + 2) { border-top-color: var(--green); }
.queries-page .query-playbooks .query-registry-list > li:nth-child(4n + 3) { border-top-color: var(--amber); }
.queries-page .query-playbooks .query-registry-list > li:nth-child(4n) { border-top-color: var(--purple); }

.queries-page .query-playbooks .query-registry-row {
  display: flex;
  min-height: 12.5rem;
  align-items: stretch;
  flex-direction: column;
  gap: .8rem;
  padding: .85rem;
}

.query-card-topline { display: flex; align-items: center; justify-content: space-between; gap: .8rem; }
.queries-page .query-playbooks .query-index { font: 900 1.2rem var(--font-data); }
.queries-page .query-playbooks .query-registry-sentence { flex: 1; align-content: start; gap: .45rem; }
.queries-page .query-playbooks .query-registry-sentence strong { font-size: .84rem; line-height: 1.45; }
.queries-page .query-playbooks .query-registry-sentence small { align-self: end; color: var(--green-dark); font-weight: 850; }
.queries-page .query-playbooks .query-registry-facts { gap: .65rem; border-top: 1px solid var(--line); padding-top: .65rem; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
.queries-page .query-playbooks .query-registry-facts dt { font-size: .58rem; }
.queries-page .query-playbooks .query-registry-facts dd,
.queries-page .query-playbooks .query-registry-facts code { font-size: .62rem; line-height: 1.35; }

.rule-chain { display: grid; align-items: center; gap: .3rem; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
.rule-chain span,
.rule-chain strong { min-width: 0; overflow-wrap: anywhere; }
.rule-chain em { color: var(--ink-soft); font-size: .68rem; font-style: normal; }
.rule-chain b { color: var(--cyan); }

/* The shared relationship inspector must remain readable in a narrow rail. */
.graph-inspector-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.graph-relationship-button { display: block; width: 100%; height: auto; margin-top: .35rem; overflow-wrap: anywhere; white-space: normal; text-align: left; line-height: 1.4; }

@media (max-width: 980px) {
  .query-launch-hero { grid-template-columns: 1fr; }
  .query-launch-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .query-launch-stats div { min-height: 4.5rem; border-right: 1px solid rgba(255, 255, 255, .16); border-bottom: 0; }
  .query-launch-stats div:last-child { border-right: 0; }
  .queries-page .query-playbooks .query-registry-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .query-launch-stats,
  .queries-page .query-playbooks .query-registry-list { grid-template-columns: 1fr; }
  .query-launch-stats div { border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, .16); }
  .query-playbooks-heading { align-items: flex-start; flex-direction: column; }
  .query-playbooks-heading > p { text-align: left; }
}

/* Structured workbench: give the query journey a calm, editorial hierarchy. */
.query-builder-page {
  --builder-teal: #087f83;
  --builder-navy: #123b4d;
  --builder-wash: #edf7f6;
}

.query-builder-page .breadcrumb { margin-bottom: 1.2rem; }
.builder-page-heading {
  align-items: end;
  gap: 2rem;
  margin-bottom: 1.35rem;
  border-bottom: 1px solid var(--line-strong);
  padding-bottom: 1.35rem;
}
.builder-title-block { max-width: 48rem; }
.builder-title-block h1 { max-width: 16ch; margin-bottom: .55rem; font-size: clamp(2.2rem, 5vw, 4.1rem); letter-spacing: -.065em; line-height: .98; }
.builder-lede { max-width: 38rem !important; margin: 0 0 .45rem !important; color: var(--builder-teal) !important; font-size: 1.08rem !important; font-weight: 700; line-height: 1.35 !important; }
.builder-supporting-copy { max-width: 48rem !important; color: var(--ink-soft) !important; font-size: .8rem !important; }
.builder-meta { align-self: stretch; min-width: 18rem; border-left: 3px solid var(--builder-teal); padding-left: 1rem; }
.builder-meta div { grid-template-columns: 6.1rem minmax(0, 1fr); }
.builder-mode-dot { display: inline-block; width: .45rem; height: .45rem; margin-right: .35rem; border-radius: 50%; background: #2b9b72; box-shadow: 0 0 0 3px #dff3e9; }

.builder-assistance {
  border: 1px solid #b9dedd;
  border-top: 4px solid var(--builder-teal);
  background: linear-gradient(135deg, #f7fcfb 0%, var(--builder-wash) 100%);
  box-shadow: 0 12px 35px rgba(8, 127, 131, .08);
}
.assistance-intro { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: start; gap: .8rem; }
.assistance-icon { display: grid; width: 2.25rem; height: 2.25rem; place-items: center; border-radius: .7rem; background: var(--builder-teal); color: white; font-size: 1.2rem; box-shadow: 0 5px 12px rgba(8, 127, 131, .2); }
.assistance-intro h2 { margin: .08rem 0 .25rem; }
.assistance-intro .section-description { margin: 0; color: var(--ink-soft); }
.assistance-boundary { max-width: 72ch; margin: .8rem 0 0; color: var(--ink-soft); font-size: .72rem; line-height: 1.5; }
.builder-assistance .admin-form { grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: .8rem 1rem; margin-top: 1.1rem; }
.builder-assistance .admin-form label { grid-column: 1 / -1; }
.builder-assistance .admin-form textarea { min-height: 4.2rem; border-color: #a9cecc; background: rgba(255,255,255,.82); }
.builder-assistance .admin-form button { justify-self: start; }
.builder-assistance .assistance-processing { align-self: center; }
.builder-assistance .assistance-draft { grid-column: 1 / -1; margin-top: .35rem; border-color: #d8c58b; background: #fffdf5; }

.builder-form-panel { margin-top: 1.2rem; border-top: 3px solid var(--builder-navy); }
.builder-section-heading { margin-bottom: .6rem !important; }
.builder-form-panel > .section-description { max-width: 78ch; margin-bottom: .45rem; }
.builder-form-panel > .panel-note { max-width: 78ch; }
.builder-form { gap: .55rem; margin-top: 1.2rem; }
.builder-constraint-row { border: 1px solid var(--line); border-radius: .65rem; padding: .8rem .9rem .9rem; background: #fbfcfc; transition: border-color 140ms ease, box-shadow 140ms ease, background 140ms ease; }
.builder-constraint-row:focus-within { border-color: #8fc5c3; background: #fff; box-shadow: 0 4px 15px rgba(16,47,65,.06); }
.builder-constraint-row legend { display: flex; align-items: center; gap: .55rem; margin: 0 0 .65rem; color: var(--builder-navy); font-size: .69rem; letter-spacing: .08em; }
.constraint-index { display: grid; width: 1.7rem; height: 1.7rem; place-items: center; border-radius: 50%; background: var(--builder-navy); color: #fff; font: 800 .6rem var(--font-data); letter-spacing: 0; }
.builder-constraint-row .form-grid { grid-template-columns: minmax(12rem, .85fr) minmax(0, 1.4fr) minmax(11rem, .75fr); gap: .7rem; }
.builder-constraint-row label { color: var(--ink); font-size: .7rem; }
.builder-constraint-row label.is-muted { color: #8a989e; }
.builder-constraint-row label.is-muted select { background: #f2f5f5; color: #8a989e; }
.builder-constraint-row label::after { content: ""; }
.builder-constraint-row input:not([type="hidden"]), .builder-constraint-row select { border-color: #c8d7dc; background: white; }
.builder-form > label { display: flex; align-items: center; justify-content: space-between; gap: 1rem; max-width: 22rem; margin-top: .35rem; color: var(--ink); font-size: .72rem; }
.builder-form > label select { width: 8rem; }
.builder-form-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: .9rem; border-top: 1px solid var(--line); padding-top: .95rem; }
.builder-form-footer .panel-note { max-width: 56ch; margin: 0; }
.builder-form-status { color: var(--ink-soft); font: 700 .62rem var(--font-data); white-space: nowrap; }
.builder-submit { min-width: 14rem; padding: .78rem 1rem; }
.builder-submit span { margin-left: .4rem; font-size: 1rem; }
.builder-add-condition { align-self: start; margin-top: .35rem; border-color: #a9cecc; color: var(--builder-teal); }
.builder-add-condition:hover, .builder-add-condition:focus-visible { border-color: var(--builder-teal); background: var(--builder-wash); color: var(--builder-navy); }
.builder-add-condition span:first-child { font-size: 1rem; line-height: 0; }
.builder-constraint-row.is-proposed { border-color: #d8c58b; background: #fffdf5; }
.constraint-proposal-mark { margin-left: auto; color: #8a6100; font: 800 .58rem var(--font-data); letter-spacing: .02em; text-transform: none; }
.builder-advanced { margin-top: .9rem; border-top: 1px solid var(--line); padding-top: .7rem; }
.builder-advanced summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; color: var(--builder-navy); font-size: .7rem; font-weight: 800; cursor: pointer; }
.builder-advanced summary span { color: var(--ink-soft); font-size: .64rem; font-weight: 600; }
.builder-advanced > label { display: flex; align-items: center; gap: .7rem; max-width: 20rem; margin-top: .7rem; color: var(--ink-soft); font-size: .7rem; }
.builder-advanced > label select { width: 5rem; }

.query-summary-strip { margin-top: 1.35rem; border: 1px solid var(--line-strong); background: #fff; }
.query-summary-strip article:first-child { background: var(--builder-wash); }
.query-builder-page .operational-panel:not(.builder-assistance):not(.builder-form-panel) { box-shadow: 0 3px 16px rgba(16,47,65,.045); }
.builder-support-panel { border-top: 3px solid var(--builder-teal); }
.builder-support-panel .panel-heading h2 { letter-spacing: -.045em; }

@media (max-width: 820px) {
  .builder-page-heading { grid-template-columns: 1fr; gap: 1rem; }
  .builder-meta { min-width: 0; }
  .builder-constraint-row .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .builder-constraint-row label:nth-child(2) { grid-column: 1 / -1; grid-row: 1; }
  .builder-constraint-row label:nth-child(1) { grid-column: 1; grid-row: 2; }
  .builder-constraint-row label:nth-child(3) { grid-column: 2; grid-row: 2; }
}

@media (max-width: 560px) {
  .assistance-intro { grid-template-columns: auto minmax(0, 1fr); }
  .assistance-intro .ownership-label { grid-column: 2; justify-self: start; }
  .builder-assistance .admin-form { grid-template-columns: 1fr; }
  .builder-assistance .admin-form button, .builder-assistance .assistance-processing { grid-column: 1; }
  .builder-constraint-row .form-grid { grid-template-columns: 1fr; }
  .builder-constraint-row label:nth-child(1), .builder-constraint-row label:nth-child(2), .builder-constraint-row label:nth-child(3) { grid-column: auto; grid-row: auto; }
  .builder-form-footer { align-items: stretch; flex-direction: column; }
  .builder-form-status { white-space: normal; }
  .builder-submit { width: 100%; }
}

/* Feature 010: task-driven information design and legible interaction targets. */
.builder-condition-count { color: var(--ink-soft); font: 750 .7rem var(--font-data); }
.is-proposed { border-color: var(--cyan) !important; background: var(--cyan-pale) !important; }
.admin-unavailable-state { display: grid; max-width: 52rem; gap: .65rem; margin-top: 1rem; border: 1px solid #d6c58c; border-left: 5px solid #a57400; padding: 1.2rem; background: #fffaf0; }
.rule-event-register { min-width: 0; }
.admin-unavailable-state h3,
.admin-unavailable-state p { margin: 0; }
.admin-unavailable-state p { color: var(--ink-soft); font-size: .85rem; line-height: 1.55; }
.resolution-hop { display: grid; gap: .55rem; }
.resolution-hop-summary { display: grid; align-items: center; gap: .55rem; grid-template-columns: auto minmax(0, 1fr) auto; }
.resolution-hop-summary > span:last-child { color: var(--ink-soft); font-size: .74rem; }
.resolution-hop > p { margin: 0; color: var(--ink-soft); font-size: .78rem; line-height: 1.5; overflow-wrap: anywhere; }
.resolution-hop > details { border-top: 1px solid var(--line); }
.resolution-hop > details > summary { display: flex; min-height: 44px; align-items: center; cursor: pointer; color: var(--green-dark); font-size: .75rem; font-weight: 800; }
.resolution-hop > details dl { display: grid; gap: .6rem; margin: 0 0 .75rem; }
.resolution-hop > details dl div { display: grid; gap: .2rem; grid-template-columns: 9rem minmax(0, 1fr); }
.resolution-hop > details dt { color: var(--ink-soft); font-size: .68rem; font-weight: 850; text-transform: uppercase; }
.resolution-hop > details dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.overview-neighbor-card { width: 100%; min-height: 44px; color: inherit; font: inherit; text-align: left; }
.overview-relationship-detail { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto auto; }
.overview-relationship-button { min-height: 44px; }
.overview-relationship-button strong,
.overview-neighbor-card > strong { font-size: 1rem; }
.overview-relationship-detail,
.overview-neighbor-card > span,
.product-dossier-intro,
.dossier-lane > header p,
.dossier-assertion-copy > span,
.dossier-assertion-state,
.query-decision-flow strong,
.query-candidate-branch p { font-size: .875rem; }
.dossier-assertion > summary { min-height: 44px; }
.admin-table { font-size: .875rem; }
.admin-table details > summary,
.table-action > summary,
.table-details > summary { min-height: 44px; }
.button.button,
.inline-form .button,
.contextual-actions .button,
.catalog-explorer-actions .button,
.graph-controls .button,
.graph-controls button,
.catalog-facet-button,
.record-section-nav a,
.matrix-perspective-disclosure > summary,
.visualization-table-disclosure > summary,
.visualization-glossary > summary {
  min-height: 44px;
}
.button-primary,
.button-secondary { font-size: 1rem; }
.button-quiet { font-size: .875rem; }

.catalog-filter-bar { grid-template-columns: minmax(16rem, 1fr) auto; }
.catalog-facet-button { min-height: 44px; padding: .55rem .6rem; }
.catalog-facet-button span { font-size: 1rem; }
.catalog-facet-button strong { display: flex; align-items: baseline; gap: .15rem; font-size: .75rem; }
.catalog-facet-button strong small { color: var(--ink-soft); font-size: .62rem; font-weight: 650; }
.catalog-facet-button:disabled { cursor: not-allowed; opacity: .48; }
.catalog-facet-note { max-width: 34ch; margin: -.35rem 0 .65rem; color: var(--ink-soft); font-size: .7rem; line-height: 1.4; }
.catalog-active-filter { font-size: .75rem; }

.relationship-family-summary { display: grid; gap: .8rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.relationship-theme-identity { --relationship-color: #005f8f; }
.relationship-theme-compatibility { --relationship-color: #14734f; }
.relationship-theme-reference { --relationship-color: #8a4b00; }
.relationship-theme-lifecycle { --relationship-color: #67418c; }
.relationship-theme-commercial { --relationship-color: #843858; }
.relationship-theme-taxonomy { --relationship-color: #4b5f6b; }
.relationship-theme-composition { --relationship-color: #006b73; }
.relationship-theme-provenance { --relationship-color: #6b512c; }
.relationship-theme-process { --relationship-color: #36566b; }
.relationship-family-card.relationship-family-rank { display: grid; min-width: 0; gap: .55rem; border: 1px solid var(--line); border-left: 4px solid var(--relationship-color); padding: 1rem; background: #fff; }
.relationship-family-select { display: grid; width: 100%; min-height: 44px; gap: .55rem; border: 0; padding: 0; background: transparent; color: inherit; cursor: pointer; text-align: left; }
.relationship-family-select:focus-visible { border-radius: .2rem; outline: 3px solid var(--cyan); outline-offset: 4px; }
.relationship-family-select[aria-pressed="true"] .relationship-family-title { text-decoration: underline; text-decoration-thickness: .14em; text-underline-offset: .2em; }
.relationship-family-rank .relationship-family-heading { display: grid; align-items: center; gap: .55rem; grid-template-columns: auto minmax(0, 1fr) auto; }
.relationship-family-rank .relationship-family-title { margin: 0; font-size: 1rem; font-weight: 850; }
.relationship-family-rank .relationship-family-heading > strong { color: var(--relationship-color); font: 850 1.1rem var(--font-data); }
.relationship-family-rank .relationship-family-heading > strong small { color: var(--ink-soft); font-size: .66rem; }
.relationship-family-bar { width: 100%; height: .55rem; overflow: hidden; border: 0; border-radius: 99px; background: var(--paper-deep); color: var(--relationship-color); accent-color: var(--relationship-color); }
.relationship-family-bar::-webkit-progress-bar { border-radius: inherit; background: var(--paper-deep); }
.relationship-family-bar::-webkit-progress-value { border-radius: inherit; background: var(--relationship-color); }
.relationship-family-bar::-moz-progress-bar { border-radius: inherit; background: var(--relationship-color); }
.relationship-family-rank > p { margin: 0; color: var(--ink-soft); font-size: .82rem; line-height: 1.5; }
.relationship-family-rank .relationship-family-types { display: flex; flex-wrap: wrap; gap: .35rem; }
.relationship-family-rank .relationship-family-types span { display: inline-flex; gap: .35rem; border: 1px solid var(--line); padding: .3rem .45rem; background: var(--paper); font-size: .68rem; }
.relationship-family-rank .relationship-family-types b { color: var(--relationship-color); }

.catalog-matrix-table { margin-top: .9rem; }
.catalog-matrix-table table { min-width: 72rem; }
.catalog-matrix-table th,
.catalog-matrix-table td { min-width: 3.5rem; padding: .55rem; text-align: center; }
.catalog-matrix-table th:first-child { position: sticky; left: 0; z-index: 2; min-width: 11rem; background: var(--paper); text-align: left; }
.catalog-matrix-table .matrix-family-heading { border-bottom: 3px solid currentColor; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; }
.catalog-matrix-table .matrix-cell { color: var(--ink-soft); font: 700 .75rem var(--font-data); }
.catalog-matrix-table .matrix-cell-populated { background: color-mix(in srgb, var(--paper-deep) 55%, white); color: var(--ink); font-weight: 900; }
.catalog-matrix-table .matrix-cell-na { background: repeating-linear-gradient(135deg, transparent 0 4px, rgba(16, 47, 65, .04) 4px 8px); color: var(--ink-soft); }
.catalog-matrix-table tfoot th,
.catalog-matrix-table tfoot td { border-top: 2px solid var(--line-strong); background: var(--paper-deep); }
.relationship-family-rank.is-family-muted,
#catalog-matrix .is-family-muted { opacity: .28; }
#catalog-matrix .is-family-selected { box-shadow: inset 0 -3px 0 currentColor; opacity: 1; }
.matrix-perspective-disclosure { margin-top: 1rem; border-top: 1px solid var(--line); }
.matrix-perspective-disclosure > summary { display: flex; align-items: center; cursor: pointer; color: var(--green-dark); font-weight: 800; }

.evaluation-matrix table { min-width: 58rem; }
.evaluation-matrix th { min-width: 10rem; vertical-align: top; }
.evaluation-matrix th small { display: block; margin-top: .3rem; color: var(--ink-soft); font-size: .68rem; font-weight: 500; line-height: 1.35; }
.evaluation-matrix td { min-width: 9rem; vertical-align: top; }
.matrix-check > summary { display: flex; min-height: 44px; align-items: center; cursor: pointer; list-style-position: outside; }
.matrix-check p { margin: .45rem 0; font-size: .76rem; line-height: 1.45; }
.matrix-check small { display: grid; gap: .25rem; color: var(--ink-soft); font-size: .68rem; overflow-wrap: anywhere; }
.matrix-check code { white-space: normal; overflow-wrap: anywhere; }
.support-boundary-lanes { display: grid; gap: .75rem; margin-top: .9rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.support-boundary-lanes aside { display: grid; gap: .25rem; border-left: 4px solid var(--green); padding: .75rem .9rem; background: var(--green-pale); font-size: .78rem; }
.support-boundary-lanes aside:last-child { border-color: var(--cyan); background: var(--cyan-pale); }
.support-boundary-lanes span { color: var(--ink-soft); line-height: 1.45; }

.query-decision-lanes { display: grid; align-items: stretch; gap: 1rem; grid-template-columns: minmax(0, 3fr) minmax(14rem, 1fr); }
.query-factual-flow { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.query-candidate-branch { display: grid; align-content: center; gap: .45rem; border: 2px dashed var(--cyan); padding: 1rem; background: var(--cyan-pale); }
.query-candidate-branch small { color: var(--cyan); font: 850 .68rem var(--font-data); letter-spacing: .06em; text-transform: uppercase; }
.query-candidate-branch p { margin: 0; color: var(--ink-soft); font-size: .76rem; line-height: 1.5; }

.diagnostic-list { display: grid; gap: .85rem; }
.publication-diagnostics-page .diagnostic-list { max-width: 78rem; }
.diagnostic-card { border: 1px solid var(--line-strong); border-left: 4px solid var(--cyan); padding: 1rem; background: #fff; }
.diagnostic-card.diagnostic-blocker { border-left-color: var(--red, #a43b3b); background: #fffafa; }
.diagnostic-card-heading { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.diagnostic-card h3 { margin: .15rem 0 0; }
.diagnostic-card > p { max-width: 72ch; line-height: 1.55; }
.diagnostic-observation { display: grid; gap: .45rem; margin: .8rem 0 0; }
.diagnostic-observation div { display: grid; grid-template-columns: 8rem 1fr; gap: .75rem; }
.diagnostic-observation dt { color: var(--ink-soft); font: 800 .68rem var(--font-data); letter-spacing: .05em; text-transform: uppercase; }
.diagnostic-observation dd { margin: 0; overflow-wrap: anywhere; }
.diagnostic-suggestion { margin-top: .9rem; padding: .7rem .8rem; border: 1px solid var(--line); background: var(--cyan-pale); }
.diagnostic-suggestion strong { font: 800 .7rem var(--font-data); letter-spacing: .05em; text-transform: uppercase; }
.diagnostic-suggestion p { margin: .3rem 0 0; line-height: 1.5; }

.help-button { display: inline-flex; align-items: center; gap: .3rem; margin: .7rem 0 0; border: 1px solid var(--cyan); border-radius: 99px; padding: .42rem .7rem; background: var(--cyan-pale); color: var(--cyan); font: 800 .72rem var(--font-data); cursor: pointer; }
.page-heading .help-button { display: flex; width: fit-content; }
.help-button:hover { background: #d9f1f2; }
.help-button:focus-visible { outline: 3px solid var(--green); outline-offset: 3px; }
.section-help-button { margin: .8rem 0 0; }
.section-help-row { display: flex; align-items: center; gap: .65rem; margin: .2rem 0 1rem; color: var(--ink-soft); font-size: .72rem; }
.section-help-row .help-button { margin-top: 0; }
.heading-caption { margin: .35rem 0 0; max-width: 68ch; color: var(--ink-soft); font-size: .78rem; line-height: 1.55; }
.catalog-expansion-summary { display: flex; flex-wrap: wrap; align-items: baseline; gap: .35rem 1rem; margin: .9rem 0; padding: .8rem 1rem; border: 1px solid var(--line); background: var(--paper-deep); }
.catalog-expansion-summary strong { color: var(--green-dark); font: 900 1.2rem var(--font-data); }
.catalog-expansion-summary span { color: var(--ink-soft); font-size: .75rem; }
.help-dialog { width: min(42rem, calc(100% - 2rem)); max-height: min(80vh, 40rem); border: 0; padding: 0; color: var(--ink); background: transparent; box-shadow: 0 1.5rem 4rem rgba(4, 35, 49, .28); }
.help-dialog::backdrop { background: rgba(5, 31, 43, .58); backdrop-filter: blur(2px); }
.help-dialog-card { overflow: hidden; border: 1px solid var(--line-strong); background: var(--paper); }
.help-dialog-card > header { display: flex; align-items: start; justify-content: space-between; gap: 1rem; padding: 1.15rem 1.25rem; border-bottom: 1px solid var(--line); background: #fff; }
.help-dialog-card h2 { margin: .15rem 0 0; font-size: 1.35rem; }
.help-dialog-close { width: 2.25rem; height: 2.25rem; border: 1px solid var(--line-strong); border-radius: 50%; background: transparent; color: var(--ink); font-size: 1.5rem; line-height: 1; cursor: pointer; }
.help-dialog-close:focus-visible { outline: 3px solid var(--green); outline-offset: 2px; }
.help-dialog-body { overflow: auto; max-height: 54vh; padding: 1.25rem; }
.help-dialog-body p { margin: 0; max-width: 68ch; line-height: 1.65; }
.help-dialog-body ul { display: grid; gap: .65rem; margin: 1rem 0 0; padding-left: 1.2rem; line-height: 1.55; }
.help-dialog-card > footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1.25rem; border-top: 1px solid var(--line); background: var(--paper-deep); color: var(--ink-soft); font-size: .72rem; }

@media (max-width: 640px) {
  .help-dialog { width: calc(100% - 1rem); }
  .help-dialog-card > footer { align-items: stretch; flex-direction: column; }
}

@media (max-width: 640px) {
  .diagnostic-card-heading { align-items: start; flex-direction: column; gap: .5rem; }
  .diagnostic-observation div { grid-template-columns: 1fr; gap: .15rem; }
}

@media (max-width: 900px) {
  .relationship-family-summary { grid-template-columns: 1fr; }
  .query-decision-lanes { grid-template-columns: 1fr; }
  .query-factual-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .query-factual-flow li:nth-child(2)::after { display: none; }
}

@media (max-width: 640px) {
  .catalog-filter-bar,
  .support-boundary-lanes { grid-template-columns: 1fr; }
  .catalog-clear-filters { width: 100%; }
  .query-factual-flow { grid-template-columns: 1fr; }
  .query-factual-flow li:not(:last-child)::after { display: block; }
  .evaluation-matrix table,
  .evaluation-matrix thead,
  .evaluation-matrix tbody,
  .evaluation-matrix tr,
  .evaluation-matrix th,
  .evaluation-matrix td { display: block; min-width: 0; width: 100%; }
  .evaluation-matrix thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .evaluation-matrix tbody { display: grid; gap: 1rem; }
  .evaluation-matrix tr { border: 1px solid var(--line-strong); background: #fff; }
  .evaluation-matrix th,
  .evaluation-matrix td { border: 0; border-bottom: 1px solid var(--line); padding: .75rem; }
  .evaluation-matrix td::before { content: attr(data-label); display: block; margin-bottom: .35rem; color: var(--ink-soft); font: 800 .66rem var(--font-data); letter-spacing: .05em; text-transform: uppercase; }
}

/* Feature 011: full-screen catalog intelligence atlas. */
.kgx-body.page-width-data {
  min-width: 72rem;
  min-height: 100vh;
  margin: 0;
  overflow: hidden;
  background: #02070c;
  color: #e9f8f7;
}

.kgx-body * { box-sizing: border-box; }
.kgx-body button,
.kgx-body input,
.kgx-body select { font-family: inherit; }
.kgx-body :focus-visible { outline: 2px solid #68ead1; outline-offset: 3px; }

.kgx-skip {
  position: fixed;
  z-index: 100;
  top: .75rem;
  left: .75rem;
  transform: translateY(-5rem);
  border-radius: .35rem;
  padding: .65rem .9rem;
  background: #55d2bd;
  color: #021014;
  font: 800 .7rem var(--font-data);
  text-decoration: none;
}
.kgx-skip:focus { transform: translateY(0); }

.kgx-shell {
  --kgx-line: rgba(111, 196, 194, .16);
  --kgx-line-strong: rgba(111, 215, 205, .3);
  --kgx-muted: #769397;
  display: grid;
  width: 100vw;
  height: 100vh;
  grid-template-rows: 4.15rem minmax(0, 1fr);
  overflow: hidden;
  background:
    radial-gradient(circle at 54% 46%, rgba(20, 83, 89, .19), transparent 35%),
    linear-gradient(124deg, #02070c 0%, #041019 54%, #02070c 100%);
  font-family: var(--font-ui);
}

.kgx-topbar {
  position: relative;
  z-index: 10;
  display: grid;
  grid-template-columns: 15rem minmax(28rem, 1fr) auto 9rem;
  align-items: center;
  gap: 1rem;
  border-bottom: 1px solid var(--kgx-line);
  padding: 0 1.2rem;
  background: rgba(2, 9, 14, .86);
  box-shadow: 0 10px 40px rgba(0, 0, 0, .18);
  backdrop-filter: blur(18px);
}

.kgx-brand {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  color: #f2ffff;
  text-decoration: none;
}
.kgx-brand > span {
  display: grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border: 1px solid #55d2bd;
  border-radius: 50%;
  color: #70ead4;
  font: 900 .95rem var(--font-display);
  box-shadow: 0 0 1.5rem rgba(85, 210, 189, .3), inset 0 0 1rem rgba(85, 210, 189, .08);
}
.kgx-brand strong { font: 900 .7rem var(--font-data); letter-spacing: .18em; }
.kgx-brand small { display: block; margin-top: .16rem; color: #588183; font: 700 .43rem var(--font-data); letter-spacing: .14em; }

.kgx-mode-switch {
  justify-self: center;
  display: grid;
  grid-template-columns: 1fr 1fr;
  width: min(27rem, 100%);
  border: 1px solid rgba(113, 178, 179, .2);
  border-radius: .55rem;
  padding: .2rem;
  background: rgba(8, 24, 31, .76);
}
.kgx-mode-switch button {
  display: flex;
  min-height: 2.3rem;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  border: 0;
  border-radius: .38rem;
  background: transparent;
  color: #6f8b8f;
  font: 800 .63rem var(--font-data);
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .2s ease, color .2s ease, box-shadow .2s ease;
}
.kgx-mode-switch button i { width: .38rem; height: .38rem; border-radius: 50%; background: currentColor; box-shadow: 0 0 .7rem currentColor; }
.kgx-mode-switch button[aria-pressed="true"] { background: rgba(42, 100, 103, .32); color: #80ecd8; box-shadow: inset 0 0 0 1px rgba(112, 230, 209, .16); }

.kgx-dataset { display: flex; align-items: center; justify-content: flex-end; gap: 1.1rem; color: #58787c; font: 700 .52rem var(--font-data); letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.kgx-dataset b { color: #b4d0d0; font-weight: 850; }
.kgx-verified { color: #73c8b8; }
.kgx-verified i,
.kgx-state i { display: inline-block; width: .38rem; height: .38rem; margin-right: .35rem; border-radius: 50%; background: #65e3cb; box-shadow: 0 0 .8rem #65e3cb; }
.kgx-exit { justify-self: end; color: #8eabad; font: 750 .58rem var(--font-data); letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.kgx-exit:hover { color: #eafffb; }

.kgx-workspace {
  display: grid;
  min-height: 0;
  grid-template-columns: 15rem minmax(38rem, 1fr) 17.5rem;
  gap: .8rem;
  padding: .8rem;
}

.kgx-sidebar,
.kgx-inspector,
.kgx-visual {
  min-height: 0;
  border: 1px solid var(--kgx-line);
  border-radius: .75rem;
  background: linear-gradient(150deg, rgba(7, 22, 30, .9), rgba(3, 12, 18, .74));
  box-shadow: 0 22px 80px rgba(0, 0, 0, .2), inset 0 1px rgba(255, 255, 255, .018);
}

.kgx-sidebar {
  display: flex;
  flex-direction: column;
  gap: 1.4rem;
  overflow: auto;
  padding: 1.25rem 1.1rem 1rem;
}
.kgx-overline { margin: 0; color: #55d2bd; font: 850 .49rem var(--font-data); letter-spacing: .18em; }
.kgx-sidebar h1 { margin: .8rem 0 .9rem; color: #edfafa; font: 650 2.05rem/.92 var(--font-display); letter-spacing: -.055em; }
.kgx-sidebar h1 em { color: #5cdbc3; font-style: normal; text-shadow: 0 0 1.7rem rgba(85, 210, 189, .25); }
.kgx-intro { margin: 0; color: #789398; font-size: .69rem; line-height: 1.65; }

.kgx-controls { display: grid; gap: .48rem; border-top: 1px solid var(--kgx-line); padding-top: 1rem; }
.kgx-controls label { margin-top: .38rem; color: #618184; font: 800 .49rem var(--font-data); letter-spacing: .13em; text-transform: uppercase; }
.kgx-search { display: grid; grid-template-columns: 1.7rem 1fr; align-items: center; border: 1px solid rgba(91, 158, 160, .27); border-radius: .4rem; background: rgba(1, 9, 14, .75); color: #5bd6c0; }
.kgx-search span { text-align: center; }
.kgx-search input,
.kgx-controls select { width: 100%; min-width: 0; border: 0; padding: .64rem .55rem; background: transparent; color: #d9eeee; font: 650 .6rem var(--font-data); }
.kgx-search input::placeholder { color: #48676b; }
.kgx-controls select { border: 1px solid rgba(91, 158, 160, .27); border-radius: .4rem; background: #06151d; }
.kgx-controls select option { background: #07171f; }

.kgx-sidebar-note { margin-top: auto; border-left: 2px solid #55d2bd; padding: .05rem 0 .05rem .75rem; }
.kgx-sidebar-note span,
.kgx-inspector-foot span { color: #6dcfbd; font: 850 .48rem var(--font-data); letter-spacing: .14em; }
.kgx-sidebar-note p,
.kgx-inspector-foot p { margin: .45rem 0 0; color: #668589; font-size: .61rem; line-height: 1.55; }
.kgx-family-key { display: flex; flex-wrap: wrap; gap: .5rem .75rem; border-top: 1px solid var(--kgx-line); padding-top: .8rem; color: #6d898d; font: 700 .48rem var(--font-data); }
.kgx-family-key span { display: inline-flex; align-items: center; gap: .32rem; }
.kgx-family-key i { width: 1rem; height: .2rem; border-radius: 999px; box-shadow: 0 0 .55rem currentColor; transform: skewX(-18deg); }
.kgx-key-identity { color: #76a7ff; background: currentColor; }
.kgx-key-fitment { color: #55d2bd; background: currentColor; }
.kgx-key-reference { color: #ff8e78; background: currentColor; }
.kgx-key-commerce { color: #da95ff; background: currentColor; }
.kgx-key-taxonomy { color: #ffc66f; background: currentColor; }

.kgx-visual { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); overflow: hidden; background: rgba(3, 13, 19, .84); }
.kgx-visual-heading { display: flex; min-height: 6.25rem; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--kgx-line); padding: .8rem 1.15rem; background: rgba(6, 19, 26, .74); }
.kgx-visual-heading > div:first-child { min-width: 0; flex: 1 1 auto; }
.kgx-visual-heading p { margin: 0; }
.kgx-visual-heading [data-kgx-kicker] { margin-bottom: .3rem; color: #58cab7; font: 850 .48rem var(--font-data); letter-spacing: .16em; }
.kgx-visual-heading h2 { overflow: hidden; max-width: 52rem; margin: 0; color: #effafa; font: 680 1.55rem/1.1 var(--font-display); letter-spacing: -.025em; text-overflow: ellipsis; white-space: nowrap; }
.kgx-visual-heading [data-kgx-subtitle] { overflow: hidden; max-width: 50rem; margin-top: .32rem; color: #6f8d91; font-size: .65rem; text-overflow: ellipsis; white-space: nowrap; }
.kgx-view-metrics { display: flex; flex: 0 0 auto; gap: .55rem; }
.kgx-view-metrics > span { min-width: 6.5rem; border-left: 1px solid var(--kgx-line-strong); padding-left: .75rem; }
.kgx-view-metrics b { display: block; color: #69dec9; font: 800 1.35rem var(--font-data); line-height: 1; }
.kgx-view-metrics small { display: block; margin-top: .28rem; color: #58777b; font: 750 .46rem var(--font-data); letter-spacing: .08em; text-transform: uppercase; }

.kgx-canvas-frame { position: relative; min-height: 0; overflow: hidden; background: radial-gradient(circle at 50% 48%, rgba(17, 64, 70, .18), transparent 46%); }
.kgx-canvas { display: block; width: 100%; height: 100%; min-height: 34rem; }
.kgx-canvas [data-kgx-scene] { transform-origin: 0 0; transition: transform .9s cubic-bezier(.16, 1, .3, 1); }
.kgx-canvas.is-dragging { cursor: grabbing; }
.kgx-canvas.is-dragging [data-kgx-scene] { transition: none; }
.kgx-scanline { pointer-events: none; position: absolute; inset: 0; opacity: .24; background: linear-gradient(to bottom, transparent 0%, rgba(95, 226, 202, .08) 49.7%, rgba(95, 226, 202, .25) 50%, rgba(95, 226, 202, .08) 50.3%, transparent 100%); background-size: 100% 180%; animation: kgx-scan 9s linear infinite; mix-blend-mode: screen; }
.kgx-status { position: absolute; right: 1rem; bottom: .65rem; left: 1rem; margin: 0; color: #527377; font: 700 .48rem var(--font-data); letter-spacing: .1em; text-align: right; text-transform: uppercase; }
.kgx-zoom-controls { position: absolute; z-index: 3; top: .75rem; right: .75rem; display: flex; overflow: hidden; border: 1px solid rgba(104, 188, 185, .22); border-radius: .4rem; background: rgba(3, 16, 22, .88); box-shadow: 0 .5rem 2rem rgba(0, 0, 0, .2); backdrop-filter: blur(10px); }
.kgx-zoom-controls button { min-width: 2rem; height: 2rem; border: 0; border-right: 1px solid rgba(104, 188, 185, .16); padding: 0 .55rem; background: transparent; color: #7ba3a5; font: 750 .65rem var(--font-data); cursor: pointer; }
.kgx-zoom-controls button:last-child { border-right: 0; font-size: .48rem; letter-spacing: .06em; text-transform: uppercase; }
.kgx-zoom-controls button:hover { background: rgba(85, 210, 189, .1); color: #8bf1dd; }

.kgx-topology-orbit { fill: none; stroke: rgba(91, 189, 184, .15); stroke-width: 1; stroke-dasharray: 2 9; }
.kgx-topology-orbit-inner { stroke-opacity: .5; stroke-dasharray: 1 14; }
.kgx-topology-spoke { fill: none; stroke: rgba(91, 189, 184, .09); stroke-width: .8; stroke-dasharray: 1 7; }
.kgx-atlas-edge { fill: none; stroke-width: .72; stroke-opacity: .085; cursor: pointer; transition: stroke-opacity .25s ease, stroke-width .25s ease; }
.kgx-atlas-edge.is-flowing { stroke-dasharray: 2 11; animation: kgx-signal-flow 8s linear infinite; }
.kgx-atlas-edge:hover,
.kgx-atlas-edge.is-active { stroke-opacity: .9; stroke-width: 1.65; filter: url(#kgx-glow); }
.kgx-atlas-edge.is-muted,
.kgx-atlas-edge.is-search-muted { stroke-opacity: .009; }

.kgx-atlas-satellite { cursor: pointer; transition: opacity .25s ease, filter .25s ease; }
.kgx-satellite-halo { fill: var(--kgx-accent); opacity: .16; filter: url(#kgx-glow); }
.kgx-satellite-core { fill: var(--kgx-accent); opacity: .72; }
.kgx-atlas-satellite:hover .kgx-satellite-halo,
.kgx-atlas-satellite.is-active .kgx-satellite-halo { opacity: .8; }
.kgx-atlas-satellite:hover .kgx-satellite-core,
.kgx-atlas-satellite.is-active .kgx-satellite-core { opacity: 1; }
.kgx-atlas-satellite.is-muted { opacity: .08; }

.kgx-category-hub { cursor: pointer; transition: opacity .25s ease; }
.kgx-category-ring { fill: rgba(3, 16, 22, .74); stroke: var(--kgx-accent); stroke-width: .8; stroke-opacity: .35; stroke-dasharray: 2 5; transform-box: fill-box; transform-origin: center; animation: kgx-orbit 18s linear infinite; }
.kgx-category-core { fill: color-mix(in srgb, var(--kgx-accent) 13%, #061820); stroke: var(--kgx-accent); stroke-width: 1.15; stroke-opacity: .72; filter: drop-shadow(0 0 8px color-mix(in srgb, var(--kgx-accent) 34%, transparent)); }
.kgx-category-number { fill: #efffff; font: 850 11px var(--font-data); }
.kgx-category-name { fill: #dff3f1; stroke: #031016; stroke-width: 2.5px; paint-order: stroke; font: 750 9px var(--font-ui); letter-spacing: .015em; }
.kgx-category-caption { fill: var(--kgx-accent); stroke: #031016; stroke-width: 2px; paint-order: stroke; font: 750 4.5px var(--font-data); letter-spacing: .12em; }
.kgx-category-hub:hover .kgx-category-core,
.kgx-category-hub:focus .kgx-category-core,
.kgx-category-hub.is-active .kgx-category-core { stroke-width: 2; stroke-opacity: 1; }
.kgx-category-hub.is-muted { opacity: .1; }

.kgx-atlas-product { cursor: pointer; opacity: 1; transform-box: fill-box; transform-origin: center; animation: kgx-node-breathe 5.5s ease-in-out var(--kgx-delay) infinite; transition: opacity .25s ease, filter .25s ease; }
.kgx-product-hit { fill: transparent; }
.kgx-product-orbit { fill: rgba(3, 16, 22, .82); stroke: var(--kgx-accent); stroke-width: .75; stroke-opacity: .55; }
.kgx-product-core { fill: #efffff; stroke: var(--kgx-accent); stroke-width: 1.6; filter: url(#kgx-glow); }
.kgx-atlas-product-name { fill: #d7e9e8; stroke: #031016; stroke-width: 2.4px; paint-order: stroke; font: 700 6.8px var(--font-ui); }
.kgx-atlas-product-detail { fill: var(--kgx-accent); stroke: #031016; stroke-width: 2px; paint-order: stroke; font: 650 5.2px var(--font-data); }
.kgx-atlas-product:hover,
.kgx-atlas-product:focus,
.kgx-atlas-product.is-active { filter: drop-shadow(0 0 7px var(--kgx-accent)); }
.kgx-atlas-product:hover .kgx-product-orbit,
.kgx-atlas-product:focus .kgx-product-orbit,
.kgx-atlas-product.is-active .kgx-product-orbit { stroke-width: 1.8; stroke-opacity: 1; }
.kgx-atlas-product.is-muted { opacity: .08; }
.kgx-atlas-product.is-filtered { pointer-events: none; opacity: .035 !important; filter: saturate(.1); }

.kgx-atlas-neighbor-label { pointer-events: none; opacity: 1; animation: kgx-edge-arrive .4s ease var(--kgx-delay) both; }
.kgx-neighbor-relation { fill: var(--kgx-accent); stroke: #031016; stroke-width: 2.5px; paint-order: stroke; font: 850 5.2px var(--font-data); letter-spacing: .08em; }
.kgx-neighbor-name { fill: #f0ffff; stroke: #031016; stroke-width: 3px; paint-order: stroke; font: 700 6.4px var(--font-ui); }

.kgx-topology-core { pointer-events: none; }
.kgx-core-outer { fill: rgba(85, 210, 189, .025); stroke: rgba(85, 210, 189, .32); stroke-width: 1; stroke-dasharray: 3 8; transform-origin: 700px 410px; animation: kgx-orbit 24s linear infinite reverse; }
.kgx-core-inner { fill: url(#kgx-core-gradient); stroke: rgba(103, 228, 207, .65); filter: drop-shadow(0 0 14px rgba(85, 210, 189, .24)); }
.kgx-core-kicker { fill: #62d8c2; font: 800 5px var(--font-data); letter-spacing: .16em; }
.kgx-core-count { fill: #efffff; font: 800 20px var(--font-data); }
.kgx-core-label { fill: #658a8c; font: 750 5px var(--font-data); letter-spacing: .15em; }

.kgx-cluster-bg { fill: rgba(7, 25, 32, .68); stroke: var(--kgx-accent); stroke-opacity: .22; }
.kgx-cluster-dot { fill: var(--kgx-accent); filter: url(#kgx-glow); }
.kgx-cluster-title { fill: #d9eeee; font: 750 12px var(--font-ui); }
.kgx-cluster-count { fill: #57777c; font: 750 8px var(--font-data); letter-spacing: .09em; }
.kgx-cluster-edge { fill: none; stroke-opacity: .1; stroke-width: 1; }
.kgx-product-card { cursor: pointer; opacity: 1; transform-box: fill-box; transform-origin: center; animation: kgx-card-arrive .5s cubic-bezier(.16, 1, .3, 1) var(--kgx-delay) forwards; transition: opacity .2s ease, filter .2s ease; }
.kgx-product-card-bg { fill: rgba(8, 25, 33, .93); stroke: rgba(116, 162, 166, .2); transition: fill .18s ease, stroke .18s ease; }
.kgx-product-accent { fill: var(--kgx-accent); opacity: .72; }
.kgx-product-name { fill: #ccdfdf; font: 650 9px var(--font-ui); }
.kgx-product-key { fill: #527176; font: 600 5.5px var(--font-data); }
.kgx-product-card:hover .kgx-product-card-bg,
.kgx-product-card:focus .kgx-product-card-bg,
.kgx-product-card.is-selected .kgx-product-card-bg { fill: color-mix(in srgb, var(--kgx-accent) 12%, #071820); stroke: var(--kgx-accent); stroke-opacity: .7; }
.kgx-product-card.is-selected { filter: drop-shadow(0 0 10px color-mix(in srgb, var(--kgx-accent) 46%, transparent)); }
.kgx-product-card.is-filtered { pointer-events: none; opacity: .08 !important; filter: saturate(.1); }

.kgx-lane-title { fill: #bad1d1; font: 850 10.5px var(--font-data); letter-spacing: .16em; }
.kgx-lane-subtitle { fill: #486a6e; font: 650 8px var(--font-data); }
.kgx-lane-guide { fill: none; stroke: rgba(101, 158, 161, .16); stroke-dasharray: 2 7; }
.kgx-story-edge { cursor: pointer; opacity: 1; animation: kgx-edge-arrive .6s ease var(--kgx-delay) forwards; }
.kgx-story-edge-line { fill: none; stroke-opacity: .68; stroke-width: 1.65; }
.kgx-story-edge-pill { fill: #06151d; stroke: var(--kgx-accent); stroke-opacity: .72; }
.kgx-story-edge-label { fill: #c6dada; font: 850 8px var(--font-data); letter-spacing: .035em; }
.kgx-story-edge:hover .kgx-story-edge-line { stroke-opacity: .95; stroke-width: 2.2; filter: url(#kgx-glow); }
.kgx-story-edge:hover .kgx-story-edge-pill { stroke-opacity: 1; }
.kgx-story-node { cursor: pointer; opacity: 1; animation: kgx-card-arrive .55s cubic-bezier(.16, 1, .3, 1) var(--kgx-delay) forwards; }
.kgx-story-node-bg { fill: rgba(7, 24, 31, .96); stroke: var(--kgx-accent); stroke-opacity: .42; transition: fill .18s ease, stroke-opacity .18s ease; }
.kgx-story-node:hover .kgx-story-node-bg { fill: color-mix(in srgb, var(--kgx-accent) 12%, #071820); stroke-opacity: 1; filter: url(#kgx-glow); }
.kgx-story-node-type { fill: var(--kgx-accent); font: 850 8.5px var(--font-data); letter-spacing: .09em; text-transform: uppercase; }
.kgx-story-node-name { fill: #dcebea; font: 700 13px var(--font-ui); }
.kgx-story-root { cursor: pointer; }
.kgx-root-halo { fill: rgba(85, 210, 189, .035); stroke: rgba(85, 210, 189, .24); stroke-dasharray: 3 8; transform-origin: 620px 360px; animation: kgx-orbit 22s linear infinite; }
.kgx-root-card { fill: url(#kgx-root-gradient); stroke: #70e4ce; stroke-opacity: .76; filter: drop-shadow(0 0 18px rgba(85, 210, 189, .22)); }
.kgx-root-type { fill: #66dbc6; font: 850 8.5px var(--font-data); letter-spacing: .13em; }
.kgx-root-name { fill: #f0fffd; font: 750 14px var(--font-ui); }
.kgx-root-key { fill: #6e9a99; font: 700 8px var(--font-data); }

.kgx-inspector { display: flex; flex-direction: column; overflow: auto; padding: 1.1rem; }
.kgx-inspector-top { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.kgx-state { color: #71c7b8; font: 750 .46rem var(--font-data); text-transform: uppercase; }
.kgx-inspector-identity { border-bottom: 1px solid var(--kgx-line); padding: 1.25rem 0 1rem; }
.kgx-inspector-identity > span { color: #67d5c1; font: 800 .5rem var(--font-data); letter-spacing: .14em; text-transform: uppercase; }
.kgx-inspector-identity h2 { margin: .48rem 0 .4rem; color: #ecf9f8; font: 700 1.08rem/1.14 var(--font-display); letter-spacing: -.02em; overflow-wrap: anywhere; }
.kgx-inspector-identity code { display: block; color: #5c7e82; font: 650 .55rem var(--font-data); overflow-wrap: anywhere; }
.kgx-inspector-identity p { margin: .9rem 0 0; color: #708c90; font-size: .63rem; line-height: 1.55; }
.kgx-inspector-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem .7rem; margin: 0; padding: 1rem 0; }
.kgx-inspector-stats div { min-width: 0; }
.kgx-inspector-stats dt { color: #516f74; font: 800 .45rem var(--font-data); letter-spacing: .12em; }
.kgx-inspector-stats dd { margin: .28rem 0 0; color: #b9d1d1; font: 750 .68rem var(--font-data); overflow-wrap: anywhere; }
.kgx-inspector-stats > div:not(.kgx-inspector-wide) dd { color: #6ae0cb; font-size: 1.15rem; }
.kgx-inspector-wide { grid-column: 1 / -1; border-top: 1px solid var(--kgx-line); padding-top: .8rem; }
.kgx-story-button { display: flex; width: 100%; min-height: 2.8rem; align-items: center; justify-content: space-between; border: 1px solid rgba(99, 221, 199, .42); border-radius: .45rem; padding: 0 .8rem; background: linear-gradient(110deg, rgba(42, 113, 108, .34), rgba(17, 52, 58, .28)); color: #bdf7ed; font: 800 .58rem var(--font-data); letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.kgx-story-button:not(:disabled):hover { border-color: #66e0cb; box-shadow: 0 0 1.5rem rgba(85, 210, 189, .13); }
.kgx-record-link { margin-top: .75rem; color: #7bbab4; font: 700 .55rem var(--font-data); text-align: center; text-decoration: none; }
.kgx-inspector-foot { margin-top: auto; border-top: 1px solid var(--kgx-line); padding-top: 1rem; }

.kgx-ledger { position: fixed; z-index: 30; right: 1.2rem; bottom: .9rem; }
.kgx-ledger > summary { border: 1px solid rgba(91, 158, 160, .22); border-radius: .35rem; padding: .48rem .65rem; background: rgba(4, 17, 23, .92); color: #58777b; font: 700 .48rem var(--font-data); letter-spacing: .06em; cursor: pointer; list-style: none; }
.kgx-ledger[open] { inset: 4.8rem 1rem 1rem; overflow: hidden; border: 1px solid var(--kgx-line-strong); border-radius: .75rem; background: #061219; box-shadow: 0 2rem 8rem #000; }
.kgx-ledger[open] > summary { margin: .75rem; color: #b8dbd6; }
.kgx-ledger-inner { display: grid; max-height: calc(100vh - 9rem); gap: 1rem; overflow: auto; padding: 0 .75rem 1rem; }
.kgx-ledger table { width: 100%; border-collapse: collapse; color: #a4bcbc; font: 600 .58rem var(--font-data); }
.kgx-ledger th,
.kgx-ledger td { border-bottom: 1px solid var(--kgx-line); padding: .48rem; text-align: left; }
.kgx-ledger thead { position: sticky; top: 0; background: #0a2028; color: #69d7c3; }
.kgx-ledger code { color: #77a3a4; }

@keyframes kgx-card-arrive { from { opacity: 0; transform: translateY(8px) scale(.97); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes kgx-edge-arrive { from { opacity: 0; } to { opacity: 1; } }
@keyframes kgx-scan { from { background-position: 0 -90%; } to { background-position: 0 270%; } }
@keyframes kgx-orbit { to { transform: rotate(360deg); } }
@keyframes kgx-signal-flow { to { stroke-dashoffset: -100; } }
@keyframes kgx-node-breathe { 0%, 100% { opacity: .84; } 50% { opacity: 1; } }

@media (max-width: 1450px) {
  .kgx-topbar { grid-template-columns: 11.5rem minmax(24rem, 1fr) auto 6rem; }
  .kgx-dataset span:not(.kgx-verified) { display: none; }
  .kgx-workspace { grid-template-columns: 11.5rem minmax(0, 1fr) 13.5rem; }
  .kgx-sidebar { gap: 1rem; padding-inline: .9rem; }
  .kgx-inspector { padding-inline: .9rem; }
  .kgx-sidebar h1 { font-size: 1.6rem; }
  .kgx-view-metrics > span { min-width: 5rem; padding-left: .6rem; }
}

@media (max-width: 900px) {
  .kgx-body.page-width-data { min-width: 0; overflow: auto; }
  .kgx-shell { width: 100%; height: auto; min-height: 100vh; overflow: visible; grid-template-rows: auto auto; }
  .kgx-topbar { position: sticky; top: 0; grid-template-columns: minmax(0, 1fr) auto; gap: .65rem; padding: .65rem .75rem; }
  .kgx-brand { min-width: 0; }
  .kgx-brand > small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .kgx-mode-switch { grid-column: 1 / -1; width: 100%; }
  .kgx-dataset { display: none; }
  .kgx-exit { grid-column: 2; grid-row: 1; }
  .kgx-workspace { grid-template-columns: minmax(0, 1fr); gap: .6rem; padding: .6rem; }
  .kgx-sidebar,
  .kgx-inspector,
  .kgx-visual { width: 100%; }
  .kgx-visual { order: 1; min-height: 46rem; }
  .kgx-sidebar { order: 2; min-height: 30rem; }
  .kgx-inspector { order: 3; min-height: 24rem; }
  .kgx-visual-heading { min-height: 0; align-items: flex-start; flex-direction: column; padding: 1rem; }
  .kgx-visual-heading h2,
  .kgx-visual-heading [data-kgx-subtitle] { max-width: 100%; white-space: normal; }
  .kgx-view-metrics { width: 100%; }
  .kgx-view-metrics > span { flex: 1 1 0; }
  .kgx-canvas-frame { min-height: 38rem; }
  .kgx-shell[data-kgx-active-mode="product"] .kgx-canvas-frame { overflow: auto; overscroll-behavior: contain; }
  .kgx-shell[data-kgx-active-mode="product"] .kgx-canvas { width: 58rem; max-width: none; height: 42rem; min-height: 42rem; }
}

@media (prefers-reduced-motion: reduce) {
  .kgx-product-card,
  .kgx-atlas-product,
  .kgx-category-ring,
  .kgx-atlas-edge.is-flowing,
  .kgx-story-edge,
  .kgx-story-node { opacity: 1; animation: none; }
  .kgx-scanline,
  .kgx-root-halo { animation: none; }
}

/* Feature 011 WebGL topology: use the operational Kleis product theme. */
.kgx-body.page-width-data { background: #edf2f5; color: var(--ink); }
.kgx-shell {
  --kgx-line: rgba(0, 59, 94, .13);
  --kgx-line-strong: rgba(0, 59, 94, .24);
  --kgx-muted: #667d89;
  background: linear-gradient(145deg, #f4f7f9, #e8eff3);
  color: var(--ink);
}
.kgx-topbar { border-bottom-color: #d6e1e7; background: rgba(255, 255, 255, .96); box-shadow: 0 5px 22px rgba(16, 47, 65, .06); }
.kgx-brand { color: var(--green-dark); }
.kgx-brand > span { border-color: var(--green); color: var(--green); box-shadow: 0 0 0 .25rem rgba(0, 59, 94, .06); }
.kgx-brand small { color: #66808d; }
.kgx-brand img { width: 5.8rem; height: auto; }
.kgx-brand > small { border-left: 1px solid #d5e1e7; padding-left: .65rem; font: 650 .55rem var(--font-ui); letter-spacing: 0; text-transform: none; }
.kgx-mode-switch { border-color: #cfdee5; background: #edf3f6; }
.kgx-mode-switch button { color: #6a818c; }
.kgx-mode-switch button[aria-pressed="true"] { background: #fff; color: var(--green); box-shadow: 0 1px 5px rgba(16, 47, 65, .12), inset 0 0 0 1px rgba(0, 59, 94, .08); }
.kgx-dataset { color: #6f858f; }
.kgx-dataset b { color: var(--ink); }
.kgx-verified { color: #287d74; }
.kgx-verified i,
.kgx-state i { background: #2d978a; box-shadow: 0 0 .5rem rgba(45, 151, 138, .55); }
.kgx-exit { color: #5d7480; }
.kgx-exit:hover { color: var(--green); }

.kgx-sidebar,
.kgx-inspector,
.kgx-visual { border-color: #d5e1e7; background: rgba(255, 255, 255, .92); box-shadow: 0 12px 38px rgba(16, 47, 65, .07); }
.kgx-overline,
.kgx-visual-heading [data-kgx-kicker] { color: #197b83; }
.kgx-sidebar h1 { color: var(--green-dark); }
.kgx-sidebar h1 em { color: #167a84; text-shadow: none; }
.kgx-intro,
.kgx-sidebar-note p,
.kgx-inspector-foot p,
.kgx-visual-heading [data-kgx-subtitle] { color: #667d89; }
.kgx-controls { border-top-color: #dbe5ea; }
.kgx-controls label,
.kgx-inspector-stats dt { color: #627a86; }
.kgx-search { border-color: #c8d9e1; background: #f7fafb; color: var(--green); }
.kgx-search input,
.kgx-controls select { color: var(--ink); }
.kgx-search input::placeholder { color: #879aa3; }
.kgx-controls select { border-color: #c8d9e1; background: #fff; }
.kgx-controls select option { background: #fff; }
.kgx-sidebar-note { border-left-color: #197b83; }
.kgx-sidebar-note span,
.kgx-inspector-foot span { color: #197b83; }
.kgx-family-key,
.kgx-inspector-identity,
.kgx-inspector-wide,
.kgx-inspector-foot { border-color: #dbe5ea; }
.kgx-family-key { color: #637b86; }

.kgx-visual { background: #edf2f5; }
.kgx-visual-heading { border-bottom-color: #d7e2e7; background: rgba(255, 255, 255, .96); }
.kgx-visual-heading h2 { color: var(--green-dark); }
.kgx-view-metrics > span { border-left-color: #c8d9e1; }
.kgx-view-metrics b { color: var(--green); }
.kgx-view-metrics small { color: #6b818b; }
.kgx-canvas-frame { background: radial-gradient(circle at 50% 48%, #fff 0, #edf2f5 68%, #e4ecef 100%); }
.kgx-scanline { display: none; }
.kgx-status { z-index: 4; color: #627b86; }
.kgx-zoom-controls { border-color: #cad9e0; background: rgba(255, 255, 255, .94); box-shadow: 0 .4rem 1.4rem rgba(16, 47, 65, .1); }
.kgx-zoom-controls button { border-right-color: #d9e4e9; color: var(--green); }
.kgx-zoom-controls button:hover { background: var(--green-pale); color: var(--green-dark); }

.kgx-webgl-stage { position: absolute; z-index: 1; inset: 0; overflow: hidden; opacity: 0; pointer-events: none; transition: opacity .22s ease; }
.kgx-webgl-stage canvas { display: block; width: 100%; height: 100%; touch-action: none; }
.kgx-webgl-stage canvas.is-pickable { cursor: pointer; }
.kgx-webgl-labels { pointer-events: none; position: absolute; inset: 0; overflow: hidden; }
.kgx-webgl-label {
  --kgx-label-offset-x: .8rem;
  --kgx-label-offset-y: -50%;
  pointer-events: auto;
  position: absolute;
  top: 0;
  left: 0;
  display: grid;
  min-width: 0;
  border: 0;
  padding: 0;
  transform: translate3d(var(--kgx-label-x, -100px), var(--kgx-label-y, -100px), 0) translate(var(--kgx-label-offset-x), var(--kgx-label-offset-y));
  background: transparent;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
  transition: opacity .18s ease, filter .18s ease;
  will-change: transform;
}
.kgx-webgl-label span { max-width: 9rem; overflow: hidden; font: 700 .58rem/1.1 var(--font-ui); text-overflow: ellipsis; text-shadow: 0 0 4px #edf2f5, 0 0 4px #edf2f5, 0 0 4px #edf2f5; white-space: nowrap; }
.kgx-webgl-label small { margin-top: .12rem; color: #55727f; font: 650 .44rem var(--font-data); text-shadow: 0 0 4px #edf2f5, 0 0 4px #edf2f5; white-space: nowrap; }
.kgx-webgl-label::before {
  position: absolute;
  top: 50%;
  left: -.8rem;
  width: .8rem;
  height: .42rem;
  background:
    radial-gradient(circle at left center, #167a84 0 .14rem, #fff .15rem .2rem, transparent .21rem),
    linear-gradient(90deg, rgba(22, 122, 132, .78), rgba(22, 122, 132, .26)) left center / 100% 1px no-repeat;
  content: "";
  transform: translateY(-50%);
}
.kgx-webgl-label.is-anchor-left { --kgx-label-offset-x: calc(-100% - .8rem); }
.kgx-webgl-label.is-anchor-left::before {
  right: -.8rem;
  left: auto;
  background:
    radial-gradient(circle at right center, #167a84 0 .14rem, #fff .15rem .2rem, transparent .21rem),
    linear-gradient(90deg, rgba(22, 122, 132, .26), rgba(22, 122, 132, .78)) right center / 100% 1px no-repeat;
}
.kgx-webgl-label-category { --kgx-label-offset-x: -50%; --kgx-label-offset-y: calc(-100% - .9rem); border: 1px solid rgba(0, 59, 94, .2); border-radius: .25rem; padding: .38rem .48rem; background: rgba(255, 255, 255, .9); box-shadow: 0 .2rem .8rem rgba(16, 47, 65, .1); text-align: center; }
.kgx-webgl-label-category::before {
  top: 100%;
  left: 50%;
  width: .42rem;
  height: .9rem;
  background:
    radial-gradient(circle at center bottom, #167a84 0 .14rem, #fff .15rem .2rem, transparent .21rem),
    linear-gradient(rgba(22, 122, 132, .26), rgba(22, 122, 132, .78)) center / 1px 100% no-repeat;
  transform: translateX(-50%);
}
.kgx-webgl-label-category span { color: var(--green-dark); font-size: .66rem; }
.kgx-webgl-label-category small { color: #197b83; text-transform: uppercase; }
.kgx-webgl-label-neighbor { z-index: 3; border-left: 2px solid #197b83; padding: .28rem .4rem; background: rgba(255, 255, 255, .94); box-shadow: 0 .2rem .8rem rgba(16, 47, 65, .13); }
.kgx-webgl-label-neighbor.is-anchor-left { border-right: 2px solid #197b83; border-left: 0; }
.kgx-webgl-label-neighbor span { max-width: 12rem; }
.kgx-webgl-label:hover,
.kgx-webgl-label:focus,
.kgx-webgl-label.is-selected,
.kgx-webgl-label.is-hovered { z-index: 5; filter: drop-shadow(0 .2rem .4rem rgba(0, 59, 94, .25)); }
.kgx-webgl-label.is-muted { opacity: .08; }
.kgx-webgl-label.is-filtered,
.kgx-webgl-label.is-behind,
.kgx-webgl-label.is-lod-hidden,
.kgx-webgl-label.is-collided { opacity: 0; pointer-events: none; }
.kgx-shell[data-kgx-active-mode="atlas"][data-kgx-webgl-state="ready"] .kgx-webgl-stage { opacity: 1; pointer-events: auto; }
.kgx-shell[data-kgx-active-mode="atlas"][data-kgx-webgl-state="ready"] .kgx-canvas { opacity: 0; pointer-events: none; }
.kgx-shell[data-kgx-active-mode="product"] .kgx-webgl-stage { opacity: 0; pointer-events: none; }
.kgx-canvas { transition: opacity .2s ease; }

.kgx-inspector-top { color: var(--ink); }
.kgx-state { color: #287d74; }
.kgx-inspector-identity > span { color: #197b83; }
.kgx-inspector-identity h2 { color: var(--green-dark); }
.kgx-inspector-identity code { color: #607b87; }
.kgx-inspector-identity p { color: #667d89; }
.kgx-inspector-stats dd { color: var(--ink); }
.kgx-inspector-stats > div:not(.kgx-inspector-wide) dd { color: var(--green); }
.kgx-story-button { border-color: var(--green); background: var(--green); color: #fff; }
.kgx-story-button[hidden] { display: none !important; }
.kgx-story-button:not(:disabled):hover { border-color: var(--green-dark); background: var(--green-dark); box-shadow: 0 .3rem 1rem rgba(0, 59, 94, .18); }
.kgx-record-link { color: var(--green); }
.kgx-ledger > summary { border-color: #cad9e0; background: rgba(255, 255, 255, .94); color: #607986; }
.kgx-ledger[open] { border-color: #b9ccd5; background: #fff; box-shadow: 0 2rem 8rem rgba(16, 47, 65, .24); }
.kgx-ledger[open] > summary { color: var(--green); }
.kgx-ledger table { color: var(--ink); }
.kgx-ledger thead { background: #eaf1f4; color: var(--green); }
.kgx-ledger code { color: #526f7d; }

.kgx-lane-title { fill: var(--green); }
.kgx-lane-subtitle { fill: #405f6d; }
.kgx-lane-guide { stroke: rgba(0, 59, 94, .16); }
.kgx-story-edge-pill { fill: #fff; }
.kgx-story-edge-label { fill: var(--ink); }
.kgx-story-node-bg { fill: rgba(255, 255, 255, .96); }
.kgx-story-node-name { fill: var(--ink); }
.kgx-root-card { fill: #fff; stroke: var(--green); filter: drop-shadow(0 .6rem 1.4rem rgba(0, 59, 94, .14)); }
.kgx-root-halo { fill: rgba(0, 59, 94, .025); stroke: rgba(0, 59, 94, .25); }
.kgx-root-type { fill: #197b83; }
.kgx-root-name { fill: var(--green-dark); }
.kgx-root-key { fill: #607b87; }

/* Feature 011 relationship-story card refinement. */
.kgx-story-node-identity,
.kgx-story-edge-identity { --kgx-accent: #4f79ad; }
.kgx-story-node-fitment,
.kgx-story-edge-fitment { --kgx-accent: #31877e; }
.kgx-story-node-reference,
.kgx-story-edge-reference { --kgx-accent: #b8664e; }
.kgx-story-node-commerce,
.kgx-story-edge-commerce { --kgx-accent: #75658f; }
.kgx-story-node-taxonomy,
.kgx-story-edge-taxonomy { --kgx-accent: #a77e32; }
.kgx-story-lane-identity { --kgx-accent: #76a7ff; }
.kgx-story-lane-fitment { --kgx-accent: #55d2bd; }
.kgx-story-lane-reference { --kgx-accent: #ff8e78; }
.kgx-story-lane-commerce { --kgx-accent: #da95ff; }
.kgx-story-lane-taxonomy { --kgx-accent: #ffc66f; }
.kgx-story-lane { pointer-events: none; }
.kgx-lane-zone {
  fill: color-mix(in srgb, var(--kgx-accent) 3%, transparent);
  stroke: var(--kgx-accent);
  stroke-opacity: .14;
  stroke-width: 1;
}
.kgx-lane-header { fill: color-mix(in srgb, var(--kgx-accent) 9%, #f8fbfc); }
.kgx-lane-rail { fill: var(--kgx-accent); opacity: .9; }
.kgx-story-lane .kgx-lane-title { fill: color-mix(in srgb, var(--kgx-accent) 68%, #102f41); font-size: 11.5px; letter-spacing: .13em; }
.kgx-story-lane .kgx-lane-subtitle { fill: #405f6d; font-size: 8.75px; }
.kgx-story-lane .kgx-lane-guide { stroke: var(--kgx-accent); stroke-opacity: .27; }
.kgx-lane-count { fill: rgba(255, 255, 255, .82); stroke: var(--kgx-accent); stroke-opacity: .32; }
.kgx-lane-count-text { fill: color-mix(in srgb, var(--kgx-accent) 65%, #294b59); font: 850 7px var(--font-data); letter-spacing: .035em; }
.kgx-grid-line { stroke: #557c8c; stroke-opacity: .13; }
.kgx-story-edge.kgx-delay-0 { --kgx-delay: 0ms; }
.kgx-story-edge.kgx-delay-1 { --kgx-delay: 28ms; }
.kgx-story-edge.kgx-delay-2 { --kgx-delay: 56ms; }
.kgx-story-edge.kgx-delay-3 { --kgx-delay: 84ms; }
.kgx-story-edge.kgx-delay-4 { --kgx-delay: 112ms; }
.kgx-story-edge.kgx-delay-5 { --kgx-delay: 140ms; }
.kgx-story-edge.kgx-delay-6 { --kgx-delay: 168ms; }
.kgx-story-node.kgx-delay-0 { --kgx-delay: 80ms; }
.kgx-story-node.kgx-delay-1 { --kgx-delay: 115ms; }
.kgx-story-node.kgx-delay-2 { --kgx-delay: 150ms; }
.kgx-story-node.kgx-delay-3 { --kgx-delay: 185ms; }
.kgx-story-node.kgx-delay-4 { --kgx-delay: 220ms; }
.kgx-story-node.kgx-delay-5 { --kgx-delay: 255ms; }
.kgx-story-node.kgx-delay-6 { --kgx-delay: 290ms; }
.kgx-story-node {
  transform-box: fill-box;
  transform-origin: center;
  transition: filter .2s ease;
}
.kgx-story-node-bg {
  fill: color-mix(in srgb, var(--kgx-accent) 3%, #fff);
  stroke-opacity: .62;
  stroke-width: 1.35;
  transition: fill .18s ease, stroke-opacity .18s ease, filter .18s ease;
  filter: drop-shadow(0 5px 8px rgba(16, 47, 65, .1));
}
.kgx-story-node-accent { fill: var(--kgx-accent); opacity: .9; }
.kgx-story-node-highlight { fill: none; stroke: #fff; stroke-linecap: round; stroke-opacity: .94; }
.kgx-story-node-type { font-size: 8.5px; }
.kgx-story-node-name { font-size: 13.5px; font-weight: 750; }
.kgx-story-edge-label { font-size: 9.25px; font-weight: 850; letter-spacing: .025em; }
.kgx-story-node-chip { fill: color-mix(in srgb, var(--kgx-accent) 14%, #edf3f5); stroke: var(--kgx-accent); stroke-opacity: .44; }
.kgx-story-node-chip-text { fill: #294b59; font: 850 8px var(--font-data); letter-spacing: .035em; text-transform: uppercase; }
.kgx-story-node:hover,
.kgx-story-node:focus-visible,
.kgx-story-node.is-highlighted,
.kgx-story-node.is-inspected { filter: drop-shadow(0 7px 10px rgba(0, 59, 94, .2)); outline: none; }
.kgx-story-node:hover .kgx-story-node-bg,
.kgx-story-node:focus-visible .kgx-story-node-bg,
.kgx-story-node.is-highlighted .kgx-story-node-bg,
.kgx-story-node.is-inspected .kgx-story-node-bg { fill: color-mix(in srgb, var(--kgx-accent) 7%, #fff); stroke-opacity: .96; }
.kgx-story-node.is-inspected .kgx-story-node-bg { animation: kgx-card-trace .82s cubic-bezier(.16, 1, .3, 1) 1; }
.kgx-story-edge-line { transition: stroke-opacity .16s ease, stroke-width .16s ease; }
.kgx-story-edge-port { fill: #fff; stroke: var(--kgx-accent); stroke-width: 1.5; transition: r .16s ease, fill .16s ease; }
.kgx-story-edge-port.is-target { fill: var(--kgx-accent); }
.kgx-story-edge.is-highlighted .kgx-story-edge-line,
.kgx-story-edge.is-inspected .kgx-story-edge-line { stroke-opacity: 1; stroke-width: 2.35; filter: url(#kgx-glow); }
.kgx-story-edge.is-highlighted .kgx-story-edge-port,
.kgx-story-edge.is-inspected .kgx-story-edge-port { r: 5; }
.kgx-story-edge.is-highlighted .kgx-story-edge-pill,
.kgx-story-edge.is-inspected .kgx-story-edge-pill { stroke-opacity: 1; filter: drop-shadow(0 3px 5px rgba(0, 59, 94, .15)); }
.kgx-root-accent { fill: var(--green); }
.kgx-root-chip { fill: #e6f4f2; stroke: #68aaa4; stroke-opacity: .36; }
.kgx-root-chip-text { fill: #135f67; font: 850 7.2px var(--font-data); letter-spacing: .06em; }
@keyframes kgx-card-trace {
  0% { stroke-dasharray: 0 600; stroke-dashoffset: 0; }
  46% { stroke-dasharray: 105 495; stroke-dashoffset: -80; }
  100% { stroke-dasharray: 0 600; stroke-dashoffset: -600; }
}

/* Feature 011 cinematic polish: renderer-native energy with operational restraint. */
.kgx-canvas-frame::before,
.kgx-canvas-frame::after {
  pointer-events: none;
  position: absolute;
  inset: 0;
  content: "";
}
.kgx-canvas-frame::before {
  z-index: 0;
  opacity: .42;
  background-image:
    linear-gradient(rgba(19, 91, 109, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(19, 91, 109, .045) 1px, transparent 1px),
    radial-gradient(ellipse at 50% 46%, rgba(255, 255, 255, .95) 0, rgba(230, 242, 244, .62) 44%, rgba(210, 227, 234, .3) 74%, transparent 100%);
  background-size: 52px 52px, 52px 52px, 100% 100%;
  mask-image: radial-gradient(ellipse at center, #000 28%, rgba(0, 0, 0, .72) 68%, transparent 100%);
}
.kgx-shell[data-kgx-active-mode="atlas"] .kgx-canvas-frame::after {
  z-index: 2;
  background:
    radial-gradient(circle at 20% 20%, rgba(22, 122, 132, .085), transparent 25%),
    radial-gradient(circle at 82% 72%, rgba(185, 144, 76, .07), transparent 28%),
    radial-gradient(ellipse at center, transparent 50%, rgba(0, 59, 94, .1) 100%);
  box-shadow: inset 0 0 5rem rgba(16, 47, 65, .08);
  transition: background .55s ease, box-shadow .55s ease;
}
.kgx-shell[data-kgx-focus] .kgx-canvas-frame::after {
  background:
    radial-gradient(circle at 50% 50%, rgba(255, 255, 255, .02) 0, transparent 34%),
    radial-gradient(ellipse at center, transparent 34%, rgba(0, 59, 94, .18) 100%);
  box-shadow: inset 0 0 7rem rgba(0, 59, 94, .15);
}
.kgx-shell[data-kgx-focus] .kgx-webgl-label.is-muted {
  opacity: 0;
  pointer-events: none;
}
.kgx-webgl-stage canvas { position: relative; z-index: 1; }
.kgx-webgl-labels { z-index: 3; }
.kgx-webgl-label {
  --kgx-label-scale: 1;
  transform: translate3d(var(--kgx-label-x, -100px), var(--kgx-label-y, -100px), 0) translate(var(--kgx-label-offset-x), var(--kgx-label-offset-y)) scale(var(--kgx-label-scale));
  transition: opacity .12s linear, filter .24s ease;
}
.kgx-shell[data-kgx-intro="revealing"] .kgx-webgl-label {
  --kgx-label-scale: .92;
  opacity: 0;
  filter: blur(3px);
}
.kgx-shell[data-kgx-intro="settled"] .kgx-webgl-label {
  --kgx-label-scale: 1;
  transition-delay: 0ms;
}
.kgx-shell[data-kgx-focus] .kgx-webgl-label.is-selected::after {
  position: absolute;
  top: 50%;
  left: -.8rem;
  width: 1.1rem;
  height: 1.1rem;
  border: 1px solid rgba(22, 122, 132, .7);
  border-radius: 50%;
  content: "";
  transform: translate(-50%, -50%);
  animation: kgx-focus-radiate 1.45s cubic-bezier(.16, 1, .3, 1) infinite;
}
.kgx-shell[data-kgx-focus] .kgx-webgl-label.is-selected.is-anchor-left::after { left: calc(100% + .8rem); }
@keyframes kgx-focus-radiate {
  0% { opacity: .85; transform: translate(-50%, -50%) scale(.5); }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(3.4); }
}

@media (prefers-reduced-motion: reduce) {
  .kgx-webgl-label { transition-delay: 0ms !important; transition-duration: 0ms; }
  .kgx-shell[data-kgx-focus] .kgx-webgl-label.is-selected::after { opacity: .45; animation: none; }
  .kgx-story-node.is-inspected .kgx-story-node-bg { animation: none; }
}
