/* Shared source-bound figures. Prose stays HTML; geometric charts use 600px
   logical canvases and 24px text (14.32px at 358px content width). */
@layer page {
  .editorial-figure { margin-block: var(--sp-5); padding: var(--sp-4); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); min-width: 0; font-size: max(0.875rem, 14px); line-height: 1.5; }
  .editorial-figure, .editorial-figure * { min-width: 0; hyphens: manual; overflow-wrap: normal; word-break: normal; }
  .editorial-figure h3 { margin: 0 0 var(--sp-4); font-size: var(--fs-l); line-height: 1.3; }
  .editorial-figure h4 { margin: 0 0 var(--sp-3); font-size: var(--fs-m); }
  .editorial-figure p { margin: var(--sp-2) 0 0; }
  .editorial-figure__lanes { display: grid; gap: var(--sp-4); }
  .editorial-figure__nodes, .editorial-figure__rows, .editorial-figure__parts { display: grid; gap: var(--sp-3); padding: 0; list-style: none; }
  .editorial-figure__nodes { grid-template-columns: repeat(auto-fit,minmax(min(100%,15rem),1fr)); }
  .editorial-figure__node { align-self: start; padding: var(--sp-3); border: 1px solid var(--line); border-left: 3px solid var(--sea); border-radius: var(--radius); background: var(--bg); }
  .editorial-figure__node[data-status] { border-style: dashed; border-color: var(--brand); }
  .editorial-figure__step { display: block; color: var(--sea-ink); font-variant-numeric: tabular-nums; margin-bottom: var(--sp-1); }
  .editorial-figure__status { color: var(--brand); font-weight: 600; }
  .editorial-figure__relations { display: grid; gap: var(--sp-3); padding: 0; list-style: none; }
  .editorial-figure__relations li { display: block; padding-block: var(--sp-2); border-bottom: 1px solid var(--line); }
  .editorial-figure__relation-label { color: var(--ink-2); }
  .editorial-figure__sequence { display: grid; gap: 0; padding: 0; list-style: none; }
  .editorial-figure__sequence > li { margin: 0; }
  .editorial-figure__transition { display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-2) var(--sp-3); }
  .editorial-figure__table-group + .editorial-figure__table-group { margin-top: var(--sp-5); }
  .editorial-figure__plot { max-width: 600px; margin-inline: auto; }
  .editorial-chart { display: block; width: 100%; height: auto; overflow: visible; }
  .editorial-chart--row { height: 3rem; }
  .editorial-figure__row-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: var(--sp-2) var(--sp-3); }
  .editorial-figure__row-head .num { flex: none; }
  .editorial-figure__rows > li + li { border-top: 1px solid var(--line); padding-top: var(--sp-3); }
  .editorial-figure__row-detail { color: var(--ink-2); }
  .editorial-figure__parts { padding: var(--sp-2) 0 0; }
  .editorial-figure__legend { display: flex; flex-wrap: wrap; gap: var(--sp-2) var(--sp-4); padding: var(--sp-3) 0 0; list-style: none; }
  .editorial-figure__legend li { display: flex; align-items: baseline; gap: var(--sp-2); }
  .editorial-figure__swatch { width: 0.9rem; height: 0.9rem; flex: none; border-radius: 2px; background: var(--figure-swatch); }
  .editorial-figure__places { display: grid; gap: var(--sp-3); padding-left: 1.75rem; margin-top: var(--sp-4); }
  .editorial-figure__places li::marker { color: var(--sea-ink); font-variant-numeric: tabular-nums; font-weight: 650; }
  .editorial-figure__places span { display: block; color: var(--ink-2); }
  .editorial-figure__notes, .editorial-figure__airports, .editorial-figure__summaries { display: grid; gap: var(--sp-2); padding: 0; list-style: none; margin-top: var(--sp-3); }
  .editorial-figure figcaption, .editorial-figure__attribution { color: var(--ink-2); font-size: max(0.875rem,14px); margin-top: var(--sp-3); }
  .editorial-figure__data { margin-top: var(--sp-4); border-top: 1px solid var(--line); }
  .editorial-figure__data summary { padding-block: var(--sp-3); cursor: pointer; font-weight: 600; }
  .editorial-figure a { overflow-wrap: anywhere; }
  @media (min-width: 45rem) { .editorial-figure__places { grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: var(--sp-5); } }
  @media (max-width: 599px) {
    .editorial-chart--row { height: 2rem; }
    .editorial-figure { padding: var(--sp-3) 0; border-inline: 0; border-radius: 0; }
    .editorial-figure__nodes { grid-template-columns: minmax(0,1fr); }
  }
}

/* One renderer supplies row headings and column labels for every guide table. */
@layer page {
  .guide__prose .table, .editorial-figure .table { hyphens: manual; overflow-wrap: normal; word-break: normal; }
  .guide__prose .table th, .guide__prose .table td, .editorial-figure .table th, .editorial-figure .table td { hyphens: manual; overflow-wrap: normal; word-break: normal; white-space: normal; }
  .guide__prose .table a, .editorial-figure .table a { overflow-wrap: anywhere; }
  @media (max-width: 599px) {
    .guide__prose .table-scroll, .editorial-figure .table-scroll { overflow: visible; }
    .table--guide, .table--guide tbody, .table--guide tr, .table--guide th, .table--guide td { display: block; width: 100%; min-width: 0; }
    .table--guide thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    .table--guide tbody tr { padding: var(--sp-3); margin-block: var(--sp-3); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); }
    .table--guide tbody th { border: 0; padding: 0 0 var(--sp-2); font-weight: 650; }
    .table--guide tbody td { border: 0; padding: var(--sp-2) 0; }
    .table--guide tbody td[data-label]:not([data-label=""])::before { content: attr(data-label) ": "; font-weight: 600; color: var(--ink-2); }
  }
}
