/* =============================================================================
   SectraTEK Lab: lab-0011.css
   Styles for LAB-0011 only (What the PayPal app leaves on an iPhone). Loaded after research.css and oss.css.
   Tokens only; no inline styles; motion is not used. State is shown by text and shape, not by colour alone.

   Contents
     1  Tables of the article (Figure 1, Table 1, sources, fallbacks)
     2  Tags
     3  Figure 3: explorer
     4  Figure 4: row-count table
     5  Figure 2: SVG type size
   ============================================================================= */

/* 1 Tables ------------------------------------------------------------------- */
.pp-stack { table-layout: fixed; width: 100%; min-width: 0; font-size: 0.9375rem; }
.pp-stack th, .pp-stack td { vertical-align: top; padding: var(--space-4); line-height: 1.5; overflow-wrap: anywhere; }
.pp-stack tbody th { font-weight: var(--weight-semibold); }
.pp-ladder thead th:nth-child(1) { width: 20%; }
.pp-ladder thead th:nth-child(3) { width: 28%; }
.pp-art { font-size: 0.875rem; }
.pp-art thead th:nth-child(1) { width: 14%; }
.pp-art thead th:nth-child(2) { width: 22%; }
.pp-art thead th:nth-child(3) { width: 20%; }
.pp-art thead th:nth-child(4) { width: 16%; }
.pp-table { font-size: 0.875rem; }
.pp-table thead th:nth-child(1) { width: 11%; }
.pp-table thead th:nth-child(2) { width: 17%; }
.pp-table thead th:nth-child(3) { width: 28%; }
.pp-table thead th:nth-child(4) { width: 20%; }
.pp-tlist { margin: 0; padding-inline-start: 1.1em; }
.pp-tlist li { margin-block: 0.35em; }
.pp-src { font-size: 0.9375rem; table-layout: fixed; min-width: 0; }
.pp-src th, .pp-src td { vertical-align: top; line-height: 1.5; overflow-wrap: anywhere; }
.pp-src thead th:first-child { width: 55%; }
.pp-src a { overflow-wrap: anywhere; }
@media (max-width: 74.99em) {
  .pp-stack thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .pp-stack, .pp-stack tbody, .pp-stack tr, .pp-stack th, .pp-stack td { display: block; width: 100%; }
  .pp-stack tr { padding: var(--space-4); border-block-end: 1px solid var(--line); }
  .pp-stack tr:last-child { border-block-end: 0; }
  .pp-stack caption { display: block; }
  .pp-stack th, .pp-stack td { height: auto; padding: 4px 0; border: 0; }
  .pp-stack tbody th { font-size: 1.0625rem; padding-block-end: var(--space-2); }
  .pp-stack td::before { content: attr(data-label); display: block; margin-block-start: var(--space-2); font-size: var(--text-micro); letter-spacing: var(--track-eyebrow); text-transform: uppercase; font-weight: var(--weight-semibold); color: var(--muted); }
}

/* 2 Tags --------------------------------------------------------------------- */
.pp-tag { display: inline-flex; align-items: center; margin-inline-end: 6px; padding: 1px 10px; border: 1px solid var(--line-strong); border-radius: var(--radius-pill); font-size: var(--text-caption); font-weight: var(--weight-semibold); line-height: 1.5; white-space: nowrap; }
.pp-tag--local { background: var(--accent-fill); border-color: var(--accent-fill); color: var(--on-accent); }
.pp-tag--server { background: var(--surface-2); border: 2px solid var(--ink-2); color: var(--ink); }
.pp-tag--unknown { background: transparent; border-style: dashed; border-color: var(--ink-2); color: var(--ink-2); }

/* 3 Figure 3: explorer ------------------------------------------------------- */
.pp-explorer .rs-figbar__label { color: var(--ink-2); }
.pp-explorer:not(.is-ready) .pp-live { display: none; }
.pp-explorer.is-ready .pp-nojs { display: none; }
.pp-explorer .pp-nojs { padding: var(--space-5); }
.pp-bar { display: grid; gap: var(--space-3); padding: var(--space-4) var(--space-5); border-block-end: 1px solid var(--line); }
.pp-kinds { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.pp-panel { padding: var(--space-5); }
.pp-h3 { margin: 0 0 var(--space-4); font-size: 1.375rem; line-height: 1.25; letter-spacing: -0.02em; }
.pp-h3 .pp-tag { vertical-align: middle; margin-inline-start: 4px; }
.pp-keys { margin-block-end: var(--space-5); }
.pp-keys dd { overflow-wrap: anywhere; line-height: 1.5; }
.pp-cols { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
@media (min-width: 40em) { .pp-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pp-col { min-width: 0; padding: var(--space-4); border: 1px solid var(--line-strong); border-radius: var(--radius-md); background: var(--surface); }
.pp-col--no { border-style: dashed; background: var(--surface-2); }
.pp-col h4 { margin: 0 0 var(--space-2); font-size: var(--text-micro); letter-spacing: var(--track-eyebrow); text-transform: uppercase; font-weight: var(--weight-semibold); color: var(--muted); }
.pp-list { margin: 0; padding-inline-start: 1.1em; font-size: var(--text-small); line-height: 1.5; color: var(--ink); }
.pp-list li { margin-block: 0.3em; }

/* 4 Figure 4: row counts ----------------------------------------------------- */
.pp-heat { font-size: 0.9375rem; }
.pp-heat thead th:first-child { width: 31%; }
.pp-heat td { text-align: center; font-variant-numeric: tabular-nums; font-weight: var(--weight-semibold); }
.pp-h--0 { background: transparent; color: var(--muted); }
.pp-h--1 { background: var(--surface-2); color: var(--ink); }
.pp-h--2 { background: var(--accent-soft); color: var(--ink); }
.pp-h--3 { background: var(--accent-fill); color: var(--on-accent); }
.pp-h--na { background: transparent; color: var(--muted); font-weight: var(--weight-regular); }
@media (max-width: 74.99em) {
  .pp-heat td { text-align: start; }
  .pp-heat td::before { display: inline-block; min-width: 6.5em; }
  .pp-heat td { padding-inline: var(--space-3); border-radius: var(--radius-xs); margin-block: 2px; }
}

/* 5 SVG type size (Figure 2) ---------------------------------------------------- */
.pp-svg .d-t { font-size: 16px; }
.pp-svg .d-t2 { font-size: 14.5px; }
.pp-svg .d-mono { font-size: 14.5px; }
.oss-figure .rs-details { margin-block-start: var(--space-3); }

@media (forced-colors: active) {
  .pp-tag { border: 1px solid CanvasText; }
  .pp-tag--local, .pp-h--3 { outline: 2px solid Highlight; }
}
