/* Wave 14 widget (Compare States): scoped under .w-w14. Reads shell tokens only (both themes). No external resources. */
.w-w14 { min-width: 0; }
.w-w14 .vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.w-w14 .w14-grid2 { display: grid; gap: var(--s5, 24px); grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); align-items: start; }
@media (max-width: 860px) { .w-w14 .w14-grid2 { grid-template-columns: minmax(0, 1fr); } }
.w-w14 .w14-panel, .w-w14 .w14-mapbox, .w-w14 .w14-block { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg, 14px); padding: 16px; min-width: 0; }
.w-w14 .w14-panel fieldset { border: 0; margin: 0 0 14px; padding: 0; min-width: 0; }
.w-w14 .w14-panel legend { font-weight: 650; margin: 0 0 8px; padding: 0; }
.w-w14 .w14-panel .inline-fields { grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)); }
.w-w14 .w14-panel .field select { width: 100%; max-width: 100%; min-height: 44px; }
.w-w14 .w14-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 0; }
.w-w14 .w14-actions .btn { min-height: 44px; }
.w-w14 .w14-urlrow { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; margin-top: 10px; }
.w-w14 .w14-urlrow input { width: 100%; min-width: 0; min-height: 44px; font: .8125rem var(--mono, ui-monospace, monospace); }
.w-w14 .w14-status, .w-w14 .w14-msg { margin: 6px 0 0; font-size: .8125rem; color: var(--text-2); min-height: 1.2em; }
.w-w14 .w14-msg { color: var(--warn-text, var(--warn)); font-weight: 600; }
.w-w14 .w14-mapbox { position: sticky; top: 16px; }
@media (max-width: 860px) { .w-w14 .w14-mapbox { position: static; } }
.w-w14 .w14-mapsum { margin: 10px 0 0; font-size: .875rem; color: var(--text-2); }
.w-w14 .w14-out { display: grid; gap: 16px; margin-top: 20px; min-width: 0; }
.w-w14 .w14-headline { background: var(--surface-2); }
.w-w14 .w14-k { margin: 0 0 8px; font-weight: 650; }
.w-w14 .w14-chosen { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 6px; }
.w-w14 .w14-block h3 { margin: 0 0 10px; font-size: 1.0625rem; }
.w-w14 .w14-note { margin: 10px 0 0; font-size: .8125rem; color: var(--text-2); }
.w-w14 .w14-src { margin: 12px 0 0; padding-top: 8px; border-top: 1px dashed var(--line-2); font-size: .8125rem; color: var(--text-2); overflow-wrap: anywhere; }
.w-w14 .w14-links { margin: 12px 0 0; padding-left: 1.2em; font-size: .875rem; }
.w-w14 .w14-badge { display: inline-flex; align-items: center; justify-content: center; width: 1.5em; height: 1.5em; border-radius: 50%; font-size: .8125rem; font-weight: 700; color: var(--accent-ink); }
.w-w14 .w14-badge.s1, .w-w14 .w14-bar.s1, .w-w14 .w14-tile.s1 rect { background: var(--c1); fill: var(--c1); }
.w-w14 .w14-badge.s2, .w-w14 .w14-bar.s2, .w-w14 .w14-tile.s2 rect { background: var(--c2); fill: var(--c2); }
.w-w14 .w14-badge.s3, .w-w14 .w14-bar.s3, .w-w14 .w14-tile.s3 rect { background: var(--c3); fill: var(--c3); }
.w-w14 .w14-badge.s4, .w-w14 .w14-bar.s4, .w-w14 .w14-tile.s4 rect { background: var(--c4); fill: var(--c4); }
.w-w14 .w14-bn { white-space: nowrap; font-weight: 650; }
.w-w14 .w14-sn { display: block; font-weight: 500; font-size: .75rem; color: var(--text-2); }
/* table */
.w-w14 .w14-tw { overflow-x: auto; max-width: 100%; }
.w-w14 .w14-tw:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.w-w14 .w14-table { width: 100%; min-width: 440px; border-collapse: collapse; font-size: .875rem; }
.w-w14 .w14-table th, .w-w14 .w14-table td { padding: 8px 10px; border-bottom: 1px solid var(--line); vertical-align: top; text-align: left; }
.w-w14 .w14-table thead th { background: var(--thead-bg, var(--surface-2)); font-weight: 650; }
.w-w14 .w14-table th.r, .w-w14 .w14-table td.r { text-align: right; font-variant-numeric: tabular-nums; }
.w-w14 .w14-table tbody th { font-weight: 500; min-width: 12rem; max-width: 22rem; }
.w-w14 .w14-rl { display: block; font-weight: 600; }
.w-w14 .w14-ru, .w-w14 .w14-dir { display: block; font-size: .75rem; color: var(--text-2); font-weight: 400; }
.w-w14 .w14-v { display: block; font-weight: 650; overflow-wrap: anywhere; }
.w-w14 td.nd .w14-v { font-weight: 400; color: var(--text-2); }
.w-w14 .w14-mk { display: inline-block; margin-top: 4px; padding: 0 7px; border-radius: 999px; border: 1px solid; font-size: .72rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; }
.w-w14 .w14-mk.best { color: var(--good-text); background: var(--good-soft); border-color: var(--good); }
.w-w14 .w14-mk.worst { color: var(--bad-text); background: var(--bad-soft); border-color: var(--bad); }
.w-w14 .w14-mk.max, .w-w14 .w14-mk.min { color: var(--info-text); background: var(--info-soft); border-color: var(--info); }
.w-w14 td.mk-best { box-shadow: inset 3px 0 0 var(--good); }
.w-w14 td.mk-worst { box-shadow: inset 3px 0 0 var(--bad); }
.w-w14 td.mk-max, .w-w14 td.mk-min { box-shadow: inset 3px 0 0 var(--info); }
/* charts */
.w-w14 .w14-charts { display: grid; gap: 14px 20px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); }
.w-w14 .w14-fig { margin: 0; min-width: 0; }
.w-w14 .w14-fig figcaption { font-size: .875rem; margin: 0 0 4px; }
.w-w14 .w14-svg { display: block; width: 100%; height: auto; max-width: 100%; }
.w-w14 .w14-axis { stroke: var(--line-2); stroke-width: 1; }
.w-w14 .w14-tx { fill: var(--text); font: 13px var(--font, system-ui, sans-serif); }
.w-w14 .w14-tx.b { font-weight: 700; }
/* tile map */
.w-w14 .w14-tile { cursor: pointer; }
.w-w14 .w14-tile rect { fill: var(--surface-3); stroke: var(--bg, var(--surface)); stroke-width: 1; }
.w-w14 .w14-tl { font: 700 20px var(--font, system-ui, sans-serif); fill: var(--text); pointer-events: none; }
.w-w14 .w14-tl.on { fill: var(--accent-ink); }
.w-w14 .w14-tile:hover rect { stroke: var(--text); stroke-width: 2; }
.w-w14 .w14-tile:focus { outline: none; }
.w-w14 .w14-tile:focus-visible rect { stroke: var(--focus); stroke-width: 3.5; }
.w-w14 .w14-tag { font: 700 13px var(--font, system-ui, sans-serif); fill: var(--accent-ink); pointer-events: none; }
.w-w14 .w14-printhead { display: none; }
@media (prefers-reduced-motion: reduce) { .w-w14 * { transition: none !important; } }
/* print: one column, light colours, only the comparison */
@media print {
  .no-print { display: none !important; }
  .w-w14 { --surface: #fff; --surface-2: #f3f3f3; --surface-3: #e4e4e4; --line: #bdbdbd; --line-2: #8a8a8a; --text: #000; --text-2: #1f1f1f; --c1: #0b5a8c; --c2: #b04a00; --c3: #5a3da4; --c4: #444; --accent: #0b5a8c; --accent-ink: #fff; --focus: #000; --bg: #fff;
    --good: #0c6b47; --good-soft: #e3f4ec; --good-text: #064a30; --bad: #b3261e; --bad-soft: #fbe9e7; --bad-text: #7a130d; --info: #1f5f99; --info-soft: #e3eef9; --info-text: #123e66; --thead-bg: #e8e8e8;
    -webkit-print-color-adjust: exact; print-color-adjust: exact; color: #000; }
  .w-w14 .w14-panel, .w-w14 .w14-urlrow, .w-w14 .w14-actions, .w-w14 .w14-status, .w-w14 .w14-msg { display: none !important; }
  .w-w14 .w14-grid2 { display: block; }
  .w-w14 .w14-printhead { display: block; margin: 0 0 10px; padding: 0 0 8px; border-bottom: 2px solid #000; }
  .w-w14 .w14-ph1 { margin: 0; font-size: 18pt; font-weight: 700; }
  .w-w14 .w14-ph2 { margin: 4px 0 0; font-size: 9pt; overflow-wrap: anywhere; }
  .w-w14 .w14-out { display: block; margin: 0; }
  .w-w14 .w14-block, .w-w14 .w14-headline { break-inside: avoid; page-break-inside: avoid; border: 1px solid #999; border-radius: 0; margin: 0 0 10px; padding: 8px 10px; }
  .w-w14 .w14-mapbox { position: static; break-inside: avoid; border: 1px solid #999; border-radius: 0; margin: 0 0 10px; padding: 8px 10px; max-width: 380px; }
  .w-w14 .w14-tw { overflow: visible; }
  .w-w14 .w14-table { min-width: 0; font-size: 9pt; }
  .w-w14 .w14-dir { display: none; }
  .w-w14 .w14-svg { max-height: 200px; }
  .w-w14 .w14-src a { color: #000; text-decoration: none; }
  .w-w14 .w14-src a::after { content: ' (' attr(href) ')'; font-size: 8pt; }
  .w-w14 .w14-block.w14-flow { break-inside: auto; page-break-inside: auto; }
  .w-w14 .w14-charts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
