:root {
  color-scheme: light;
  --page: #f9f9f7;
  --surface: #fcfcfb;
  --ink: #0b0b0b;
  --ink-2: #52514e;
  --muted: #898781;
  --grid: #e1e0d9;
  --border: rgba(11, 11, 11, 0.10);
  --hover: rgba(11, 11, 11, 0.04);
  --guide: rgba(11, 11, 11, 0.55);
  --win-netanyahu: #1d4fb8;
  --win-change: #b31b1b;
  --support-netanyahu: #707070;
  --support-change: #2f9e6e;
  --font: system-ui, -apple-system, "Segoe UI", "Arial Hebrew", sans-serif;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --page: #0d0d0d; --surface: #1a1a19; --ink: #ffffff; --ink-2: #c3c2b7; --muted: #898781;
    --grid: #2c2c2a; --border: rgba(255, 255, 255, 0.10); --hover: rgba(255, 255, 255, 0.05); --guide: rgba(255, 255, 255, 0.6); --win-netanyahu: #3d7be0; --win-change: #d63a3a; --support-netanyahu: #8a8a8a; --support-change: #3fb98a;
  }
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --page: #0d0d0d; --surface: #1a1a19; --ink: #ffffff; --ink-2: #c3c2b7; --muted: #898781;
  --grid: #2c2c2a; --border: rgba(255, 255, 255, 0.10); --hover: rgba(255, 255, 255, 0.05); --guide: rgba(255, 255, 255, 0.6); --win-netanyahu: #3d7be0; --win-change: #d63a3a; --support-netanyahu: #8a8a8a; --support-change: #3fb98a;
}

* { box-sizing: border-box; }
body { margin: 0; background: var(--page); color: var(--ink); font: 15px/1.5 var(--font); }
a { color: inherit; }
.page { max-width: 1120px; margin: 0 auto; padding: 28px 16px 64px; }

/* ---------- site header & tabs ---------- */
.site-head { position: sticky; top: 0; z-index: 5; background: var(--page); border-bottom: 1px solid var(--grid); }
.site-head-inner { max-width: 1120px; margin: 0 auto; padding: 0 16px; display: flex; align-items: center; gap: 24px; }
.brand { font-weight: 700; text-decoration: none; padding: 14px 0; }
.tabs { display: flex; gap: 4px; }
.tab { text-decoration: none; color: var(--ink-2); padding: 14px 10px 12px; border-bottom: 2px solid transparent; }
.tab:hover { color: var(--ink); }
.tab[aria-current] { color: var(--ink); font-weight: 600; border-bottom-color: var(--ink); }

.masthead h1 { font-size: 28px; line-height: 1.2; margin: 0 0 8px; }
.kicker { margin: 0 0 4px; color: var(--muted); font-size: 13px; font-weight: 600; }
.lede { margin: 0; color: var(--ink-2); max-width: 66ch; }

/* ---------- polls ---------- */
.controls { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin: 24px 0 12px; }
.control { display: inline-flex; align-items: center; gap: 8px; color: var(--ink-2); }
.control select { font: inherit; color: var(--ink); background: var(--surface); border: 1px solid var(--border); border-radius: 6px; padding: 4px 8px; }
.control:has(#pollsters-source) { max-width: 100%; min-width: 0; }
#pollsters-source { max-width: 100%; min-width: 0; text-overflow: ellipsis; }
.control--check input { margin: 0; }
.count { margin: 0; margin-inline-start: auto; color: var(--muted); font-variant-numeric: tabular-nums; }

/* Display selectors: radio groups drawn as segmented toggles. */
.controls--display { margin-top: 0; }
.toggle { display: inline-flex; border: 1px solid var(--border); border-radius: 6px; overflow: hidden; background: var(--surface); }
.toggle-option { position: relative; }
.toggle-option input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.toggle-option span { display: block; padding: 4px 10px; color: var(--ink-2); }
.toggle-option + .toggle-option span { border-inline-start: 1px solid var(--border); }
.toggle-option input:checked + span { background: var(--ink); color: var(--surface); }
.toggle-option input:focus-visible + span { outline: 2px solid var(--ink); outline-offset: -2px; }
.mode-note { margin: 0; flex: 1 1 320px; color: var(--muted); font-size: 13px; }

.swatch { width: 10px; height: 10px; border-radius: 2px; flex: none; }

/* Grid (RTL): [poll] [Netanyahu total] [bar, LTR] [change total] */
.chart { --meta: 250px; --num: 48px; --gap: 8px; background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 0 12px 8px; overflow-x: clip; }
.axis, .row-main, .party-labels { display: grid; grid-template-columns: var(--meta) var(--num) minmax(0, 1fr) var(--num); column-gap: var(--gap); align-items: center; }
.axis { position: sticky; top: 49px; z-index: 2; background: var(--surface); border-bottom: 1px solid var(--grid); padding: 12px 0 8px; font-size: 12px; color: var(--muted); }
.axis-label, .axis-num { align-self: end; }
.axis-num { text-align: center; font-size: 11px; line-height: 1.2; }
.axis-track { position: relative; height: 36px; }
.axis-side { position: absolute; top: 0; font-size: 12px; font-weight: 600; color: var(--ink-2); }
.axis-side--left { left: 0; }
.axis-side--right { right: 0; }
.axis-side--center { transform: translateX(-50%); white-space: nowrap; }
.axis-side .short, .axis-majority .short { display: none; }
.axis-tick { position: absolute; bottom: 0; transform: translateX(-50%); font-variant-numeric: tabular-nums; }
.axis-tick--start { transform: none; }
.axis-tick--end { transform: translateX(-100%); }
.axis-tick--rtl { transform: translateX(50%); }
.axis-tick--rtl.axis-tick--start { transform: none; }
.axis-tick--rtl.axis-tick--end { transform: translateX(100%); }
.axis-tick--majority { color: var(--ink-2); font-weight: 600; }
.axis-key { display: inline-block; width: 18px; height: 8px; border-radius: 2px; margin-inline-end: 4px; vertical-align: middle; }
.axis-key--netanyahu { background: linear-gradient(to left, #4587e6 60%, #8c8c8c 60%); }
.axis-key--change { background: linear-gradient(to left, #e24f4d 60%, #3fb98a 60%); margin-inline-start: 12px; }
.axis-majority { position: absolute; bottom: 0; transform: translateX(-50%); font-size: 11px; color: var(--ink-2); white-space: nowrap; }

.rows { list-style: none; margin: 0; padding: 0; }
/* The 60/60 split line, centred on the bar column. In the RTL grid the bar column starts one
   number column (plus gap) from the left edge and is the width left after the other columns. */
.rows-wrap { position: relative; --bar-w: calc(100% - var(--meta) - 2 * var(--num) - 3 * var(--gap)); }
.split-line {
  position: absolute; top: 0; bottom: 0; width: 0; pointer-events: none; z-index: 1;
  left: calc(var(--num) + var(--gap) + var(--bar-w) / 2); border-left: 1px dashed var(--guide);
}
.split-line[hidden] { display: none; }

/* Party name pills above the newest bar; positioned by layoutPartyLabels() in polls.js. */
.party-labels { align-items: end; }
.party-labels-track { position: relative; height: 30px; }
.party-pill {
  position: absolute; bottom: 6px; z-index: 1; box-sizing: border-box; height: 20px; padding: 0 7px; border-radius: 10px;
  font-size: 12px; font-weight: 600; line-height: 20px; text-align: center;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.party-leader { position: absolute; bottom: 0; width: 1px; height: 6px; transform: translateX(-0.5px); opacity: 0.7; }
.month { padding: 14px 0 4px; font-size: 12px; font-weight: 700; color: var(--muted); border-bottom: 1px solid var(--grid); }
.row-main { padding: 3px 0; cursor: pointer; border-radius: 6px; }
.row-main:hover { background: var(--hover); }
.row-main:focus-visible { outline: 2px solid var(--ink); outline-offset: 1px; }
/* Base mode: Arab parties other than Ra'am trail the change bar, dimmed and not counted. */
.seg--uncounted { opacity: 0.18; filter: grayscale(1); }
/* Single-axis mode: parties outside a winning side are greyed out. */
.seg--loser { opacity: 0.42; filter: saturate(0.55); }

/* Sides mode: the side with 61 gets a bracket under its seats and a filled total. */
.track:not(.track--race) { margin-bottom: 7px; }
.win-bracket {
  position: absolute; bottom: -7px; height: 4px; border-radius: 2px; pointer-events: none;
  box-shadow: 0 0 0 1px var(--surface);
}
/* End ticks: --win-a at the bloc's Zionist end, --win-b at the far end (support color if any). */
.win-bracket::before, .win-bracket::after { content: ""; position: absolute; bottom: 0; width: 2px; height: 9px; border-radius: 1px; }
.win-bracket::before { left: 0; background: var(--win-a); }
.win-bracket::after { right: 0; background: var(--win-b); }
.win-bracket--rtl::before { background: var(--win-b); }
.win-bracket--rtl::after { background: var(--win-a); }
.win-bracket--draw, .win-pill--draw { --win: var(--muted); --win-a: var(--muted); --win-b: var(--muted); }
.win-bracket--draw { background: repeating-linear-gradient(to right, var(--win) 0 5px, transparent 5px 9px); box-shadow: none; height: 3px; }
.win-pill { display: inline-block; min-width: 30px; padding: 1px 6px; border-radius: 10px; color: #fff; font-weight: 700; text-shadow: 0 0 2px rgba(0, 0, 0, 0.35); }
/* A small trophy badge on the winning total. */
.win-pill--winner { position: relative; }
.win-pill--winner::before { content: "🏆"; position: absolute; top: -8px; inset-inline-end: -9px; font-size: 12px; line-height: 1; text-shadow: none; filter: drop-shadow(0 0 1px var(--surface)); }
.win-pill--draw { background: transparent; color: var(--ink-2); font-weight: 600; box-shadow: inset 0 0 0 1.5px var(--win); text-shadow: none; }


.meta { display: flex; gap: 8px; min-width: 0; white-space: nowrap; font-size: 13px; }
.meta-date { color: var(--muted); width: 52px; flex: none; font-variant-numeric: tabular-nums; }
.meta-src { overflow: hidden; text-overflow: ellipsis; }
.meta-src b { font-weight: 600; }
.meta-src span { color: var(--muted); }
.meta-tag { display: inline-block; margin-inline-start: 4px; padding: 0 3px; border: 1px solid var(--grid); border-radius: 3px; font-size: 9px; color: var(--muted); line-height: 14px; font-family: Georgia, serif; vertical-align: 1px; }
.detail-links { margin: 8px 0 0; }

.total { text-align: center; font-size: 13px; color: var(--ink-2); font-variant-numeric: tabular-nums; }
.total--majority { color: var(--ink); font-weight: 700; }

.track { position: relative; display: flex; height: 22px; }
.seg { position: relative; height: 100%; border-right: 2px solid var(--surface); display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 600; font-variant-numeric: tabular-nums; overflow: hidden; }
.seg:first-of-type { border-radius: 4px 0 0 4px; }
.seg:last-of-type { border-right: 0; border-radius: 0 4px 4px 0; }
.seg-label { pointer-events: none; }
.seg[data-small] .seg-label { visibility: hidden; }
/* Majority guides at 59 and 61 seats from the left. */
/* Base mode: two thinner bars per poll, growing from the right, each with room underneath for
   the winner bracket; polls are separated by a hairline. */
.row--race + .row--race { border-top: 1px solid var(--grid); }
.row--race .row-main { padding: 14px 0; }
.race { display: flex; flex-direction: column; gap: 3px; }
.track--race { height: 16px; }
.track--race .seg { border-right: 0; border-left: 2px solid var(--surface); font-size: 10px; }
.track--race .seg:first-of-type { border-radius: 0 4px 4px 0; }
.track--race .seg:last-of-type { border-left: 0; border-radius: 4px 0 0 4px; }
.track--race .seg:only-of-type { border-radius: 4px; }
.total--stack { display: flex; flex-direction: column; gap: 3px; align-self: start; }
.total-line { height: 16px; display: flex; align-items: center; justify-content: center; }
.total-line .win-pill { line-height: 16px; padding: 0 6px; }
.guide--rtl { border-left: 0; border-right: 1px dashed var(--guide); }
.guide { position: absolute; top: -3px; bottom: -3px; width: 0; border-left: 1px dashed var(--guide); pointer-events: none; z-index: 1; }

.detail { margin: 4px 0 10px; margin-inline-start: calc(var(--meta) + var(--num) + 16px); padding: 12px 14px; border: 1px solid var(--border); border-radius: 8px; font-size: 13px; color: var(--ink-2); }
.detail h3 { margin: 0 0 8px; font-size: 14px; color: var(--ink); }
.detail dl { display: grid; grid-template-columns: max-content 1fr; gap: 2px 12px; margin: 0 0 8px; }
.detail dt { color: var(--muted); }
.detail dd { margin: 0; font-variant-numeric: tabular-nums; }
.detail ul { margin: 4px 0 8px; padding-inline-start: 18px; }
.detail .seats-table { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 0 0 8px; }
.detail .seats-table span { display: inline-flex; align-items: center; gap: 6px; }
.detail-notes { text-align: left; }
.sev { font-size: 11px; font-weight: 600; text-transform: uppercase; color: var(--muted); }

.tooltip { position: fixed; z-index: 10; pointer-events: none; background: var(--surface); color: var(--ink); border: 1px solid var(--border); border-radius: 8px; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12); padding: 8px 10px; font-size: 13px; max-width: 280px; }
.tooltip .tt-party { display: flex; align-items: center; gap: 6px; font-weight: 600; }
.tooltip .tt-value { font-size: 18px; font-weight: 700; font-variant-numeric: tabular-nums; }
.tooltip .tt-sub { color: var(--muted); }

.foot { margin-top: 24px; color: var(--muted); font-size: 12px; }

/* ---------- issues ---------- */
.issue-nav { display: flex; gap: 8px; margin-bottom: 16px; }
.chip { text-decoration: none; padding: 4px 12px; border: 1px solid var(--border); border-radius: 999px; color: var(--ink-2); }
.chip[aria-current] { background: var(--ink); color: var(--page); }
.notice { margin: 16px 0 0; padding: 8px 12px; border-radius: 8px; background: var(--hover); color: var(--ink-2); font-size: 13px; max-width: 80ch; }

.party-strip-wrap { margin: 24px -16px 0; }
.strip-ends { display: flex; justify-content: space-between; padding: 0 16px 4px; font-size: 12px; color: var(--muted); direction: ltr; }
.strip-ends span:first-child { order: 0; }
.party-strip {
  display: flex; gap: 8px; overflow-x: auto; padding: 4px 16px 12px;
  scroll-snap-type: x mandatory; scroll-padding: 16px; -webkit-overflow-scrolling: touch; scrollbar-width: thin;
}
.party-chip {
  flex: none; scroll-snap-align: start; width: 148px; min-height: 76px;
  display: flex; flex-direction: column; justify-content: space-between; gap: 8px;
  text-decoration: none; color: var(--ink);
  background: var(--surface); border: 1px solid var(--border); border-top: 4px solid var(--party);
  border-radius: 8px; padding: 8px 10px;
}
.party-chip:hover { background: var(--hover); }
.party-chip[aria-selected="true"] { outline: 2px solid var(--ink); outline-offset: -1px; }
.party-chip-name { font-weight: 600; font-size: 14px; line-height: 1.25; }
.stance-tag { font-size: 12px; color: var(--ink-2); white-space: nowrap; }
.stance-tag--lg { font-size: 14px; padding: 2px 10px; border: 1px solid var(--border); border-radius: 999px; }

.hint { margin-top: 24px; color: var(--muted); }
.position { margin-top: 24px; padding: 20px; background: var(--surface); border: 1px solid var(--border); border-inline-start: 4px solid var(--party); border-radius: 10px; max-width: 820px; }
.position-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
.position-head h2 { margin: 0; font-size: 22px; }
.leaders { margin: 6px 0 0; color: var(--muted); font-size: 14px; }
.summary { font-size: 17px; line-height: 1.65; margin: 16px 0 0; }
.evolution, .caveat { margin: 12px 0 0; color: var(--ink-2); font-size: 14px; }
.caveat { font-style: italic; }
.quotes h3 { margin: 28px 0 8px; font-size: 16px; }
.quotes ol { list-style: none; margin: 0; padding: 0; }
.quote { padding: 14px 0; border-top: 1px solid var(--grid); }
.quote blockquote { margin: 0; font-size: 16px; line-height: 1.6; unicode-bidi: plaintext; }
.quote blockquote::before { content: "״"; color: var(--muted); }
.quote blockquote:dir(ltr)::before { content: "\201C"; }
.quote-note { margin: 4px 0 0; font-size: 12px; color: var(--muted); }
.quote-meta { margin: 6px 0 0; font-size: 13px; color: var(--muted); }
.quote-meta b { color: var(--ink-2); }
.chip-count { font-size: 11px; color: var(--muted); }
.statements h3 { margin: 28px 0 8px; font-size: 16px; }
.statements ol { list-style: none; margin: 0; padding: 0; }
.statement { padding: 14px 0; border-top: 1px solid var(--grid); }
.statement-head { margin: 0 0 8px; font-size: 13px; color: var(--muted); }
.statement-head b { color: var(--ink-2); }
.statement blockquote { margin: 6px 0 0; font-size: 16px; line-height: 1.6; unicode-bidi: plaintext; }
.statement blockquote::before { content: "״"; color: var(--muted); }
.statement-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-top: 10px; font-size: 13px; }
.original-link { font-weight: 600; }
.coverage { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; color: var(--muted); }
.evidence { display: inline-block; font-size: 11px; font-weight: 600; padding: 0 6px; border: 1px solid var(--border); border-radius: 999px; color: var(--ink-2); }
.evidence--original { border-color: var(--ink-2); color: var(--ink); }
.outlet { display: inline-flex; align-items: center; justify-content: center; min-width: 24px; height: 24px; padding: 0 4px; border: 1px solid var(--border); border-radius: 6px; background: var(--surface); text-decoration: none; }
.outlet img { display: block; }
.outlet--original { border-color: var(--ink-2); }
.outlet-text { font-size: 11px; color: var(--ink-2); white-space: nowrap; }
.reported { margin-top: 20px; color: var(--ink-2); }
.reported summary { cursor: pointer; font-size: 14px; }
.researched { margin: 20px 0 0; font-size: 12px; color: var(--muted); }

/* ---------- blog ---------- */
.channels { margin: 16px 0 0; color: var(--ink-2); }
.video { aspect-ratio: 16 / 9; border-radius: 10px; overflow: hidden; background: var(--hover); }
.video iframe { width: 100%; height: 100%; border: 0; }
.video--short { aspect-ratio: 9 / 16; max-width: 320px; }
.post-lede { color: var(--ink-2); }
.post-body p { line-height: 1.65; }
/* A strip of episode cards, then the selected episode (video beside the article). */
.ep-strip { display: flex; gap: 10px; margin: 20px 0 0; padding: 2px 2px 10px; overflow-x: auto; scroll-snap-type: x mandatory; }
.ep-card { flex: 0 0 240px; scroll-snap-align: start; display: flex; gap: 10px; align-items: center; padding: 8px; text-decoration: none; background: var(--surface); border: 1px solid var(--border); border-radius: 10px; }
.ep-card:hover { background: var(--hover); }
.ep-card[aria-current] { border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.ep-thumb { flex: 0 0 44px; height: 78px; border-radius: 6px; overflow: hidden; background: var(--hover); }
.ep-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ep-card-text { display: grid; gap: 2px; min-width: 0; }
.ep-num { font-size: 12px; color: var(--muted); }
.ep-title { font-size: 14px; font-weight: 600; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.episode { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 32px; align-items: start; margin-top: 24px; }
.episode .video--short { position: sticky; top: 72px; }
.episode-text { max-width: 66ch; }
.episode-text h2 { margin: 0 0 8px; font-size: 22px; line-height: 1.3; }
.post-links { color: var(--muted); }
.ep-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 32px; padding-top: 16px; border-top: 1px solid var(--grid); }
.ep-nav-link { display: grid; gap: 2px; padding: 10px 12px; text-decoration: none; border: 1px solid var(--border); border-radius: 10px; }
.ep-nav-link:hover { background: var(--hover); }
.ep-nav-link--next { grid-column: 2; text-align: left; }
.ep-nav-dir { font-size: 12px; color: var(--muted); }
.ep-nav-title { font-weight: 600; }
@media (max-width: 720px) {
  .episode { grid-template-columns: 1fr; gap: 16px; }
  .episode .video--short { position: static; margin-inline: auto; width: 100%; max-width: 280px; }
  .ep-card { flex-basis: 220px; }
  .ep-nav { grid-template-columns: 1fr; }
  .ep-nav-link--next { grid-column: auto; }
}
.empty { margin-top: 24px; color: var(--muted); }

/* ---------- small screens ---------- */
@media (max-width: 720px) {
  .masthead h1 { font-size: 24px; }
  .site-head-inner { gap: 12px; }
  .brand { display: none; }
  .chart { --meta: 0px; --num: 36px; padding: 0 8px 8px; }
  .chart { --gap: 6px; }
  .rows-wrap { --bar-w: calc(100% - 2 * var(--num) - 2 * var(--gap)); }
  .axis, .row-main, .party-labels { grid-template-columns: var(--num) minmax(0, 1fr) var(--num); column-gap: var(--gap); }
  .axis > :first-child, .party-labels > :first-child { display: none; }
  .party-pill { font-size: 11px; padding: 0 3px; }
  .axis-num { font-size: 10px; }
  .axis-side { font-size: 11px; }
  .axis-side .long { display: none; }
  .axis-side .short { display: inline; }
  .axis-majority .long { display: none; }
  .axis-majority .short { display: inline; }
  .row-main { grid-template-areas: "meta meta meta" "nt bar ch"; row-gap: 2px; padding: 6px 0 4px; }
  .row-main .meta { grid-area: meta; }
  .row-main .total--right { grid-area: nt; }
  .row-main .track, .row-main .race { grid-area: bar; }
  .row-main .total--left { grid-area: ch; }
  .detail { margin-inline-start: 0; padding-inline-start: 0; }
  .detail { padding: 12px; }
  .count { margin-inline-start: 0; width: 100%; }
  .party-chip { width: 132px; }
  .position { padding: 16px; }
  .summary { font-size: 16px; }
}

/* Issue brief: two bullets, a three-sentence gist, then the key quotes in large type. */
.brief { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 10px; }
.brief li { font-size: 17px; line-height: 1.5; padding: 10px 14px; background: var(--page); border: 1px solid var(--border); border-radius: 8px; }
.brief-q { color: var(--ink-2); }
.brief-a { font-size: 18px; }
.brief-a[data-rec="netanyahu"] { color: var(--win-netanyahu); }
.brief-a[data-rec="change"], .brief-a[data-rec="own"], .brief-a[data-rec="change_bloc"] { color: var(--win-change); }
.brief-text { display: block; margin-top: 2px; color: var(--ink-2); font-size: 15px; }
.gist { font-size: 17px; line-height: 1.65; margin: 16px 0 0; }
.key-quotes { display: grid; gap: 22px; margin-top: 24px; }
.key-quote { margin: 0; padding-inline-start: 16px; border-inline-start: 3px solid var(--party); }
.key-quote blockquote { margin: 0; font-size: 22px; line-height: 1.5; font-weight: 500; unicode-bidi: plaintext; }
.key-quote blockquote::before { content: "״"; color: var(--muted); }
.key-quote blockquote:dir(ltr)::before { content: "\201C"; }
.key-quote figcaption { margin-top: 8px; font-size: 14px; color: var(--muted); }
.key-quote figcaption b { color: var(--ink-2); }
.key-quote figcaption a { color: var(--ink-2); }
.more { margin-top: 28px; border-top: 1px solid var(--grid); padding-top: 12px; }
.more > summary { cursor: pointer; color: var(--ink-2); font-size: 15px; }
@media (max-width: 640px) {
  .key-quote blockquote { font-size: 19px; }
  .brief li, .gist { font-size: 16px; }
}
.brief-quote { display: block; margin-top: 6px; font-size: 15px; color: var(--ink); }
.brief-quote q { quotes: "״" "״"; unicode-bidi: plaintext; }
.brief-src { color: var(--muted); font-size: 13px; }
.brief-quote a { font-size: 13px; color: var(--ink-2); }

/* ---------- sources ---------- */
.src-search { font: inherit; color: var(--ink); background: var(--surface); border: 1px solid var(--border); border-radius: 6px; padding: 4px 8px; min-width: 220px; flex: 1 1 220px; max-width: 360px; }
.src-table-wrap { background: var(--surface); border: 1px solid var(--border); border-radius: 10px; overflow: clip; }
.src-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.src-table th { position: sticky; top: 49px; z-index: 1; background: var(--surface); text-align: start; font-size: 12px; font-weight: 600; color: var(--muted); padding: 10px 10px 8px; border-bottom: 1px solid var(--grid); }
.src-table td { padding: 8px 10px; border-top: 1px solid var(--grid); vertical-align: top; }
.src-row--used { cursor: pointer; }
.src-row--used:hover, .src-row--open { background: var(--hover); }
.src-row:focus-visible { outline: 2px solid var(--ink); outline-offset: -2px; }
.src-row:not(.src-row--used) { color: var(--ink-2); }
.src-date { white-space: nowrap; color: var(--muted); font-variant-numeric: tabular-nums; width: 1%; }
.src-outlet { white-space: nowrap; max-width: 140px; overflow: hidden; text-overflow: ellipsis; color: var(--ink-2); }
.src-title a { text-decoration: none; unicode-bidi: plaintext; overflow-wrap: anywhere; }
.src-title a:hover { text-decoration: underline; }
.src-lang { margin-inline-start: 6px; font-size: 11px; color: var(--muted); border: 1px solid var(--border); border-radius: 4px; padding: 0 4px; white-space: nowrap; }
.src-parties { width: 1%; }
.src-party { display: inline-block; margin: 0 0 2px 4px; padding: 0 6px; border-radius: 999px; font-size: 11px; white-space: nowrap; border: 1px solid var(--border); border-inline-start: 3px solid var(--party); }
.src-status { white-space: nowrap; width: 1%; }
.src-badge { font-size: 12px; color: var(--muted); }
.src-badge--quoted { color: var(--ink); font-weight: 600; }
.src-badge--cited { color: var(--ink-2); font-weight: 600; }
.src-badge--fetch_failed { text-decoration: line-through; }
.src-quotes { white-space: nowrap; text-align: center; width: 1%; color: var(--muted); }
.src-qcount { font-weight: 700; color: var(--ink); font-variant-numeric: tabular-nums; }
.src-detail > td { border-top: 0; padding: 0 10px 16px; background: var(--hover); }
.src-uses { max-width: 820px; margin-inline-start: auto; margin-inline-end: auto; }
.src-quote-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.src-quote { padding: 10px 14px; background: var(--surface); border: 1px solid var(--border); border-inline-start: 3px solid var(--party); border-radius: 8px; }
.src-quote blockquote { margin: 0; font-size: 16px; line-height: 1.6; unicode-bidi: plaintext; }
.src-quote blockquote::before { content: "״"; color: var(--muted); }
.src-quote-meta { margin: 6px 0 0; font-size: 13px; color: var(--muted); display: flex; flex-wrap: wrap; align-items: center; gap: 0 4px; }
.src-quote-meta b { color: var(--ink-2); }
.src-quote-meta .evidence { margin-inline-start: 6px; }
.src-tags { margin: 8px 0 0; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: 12px; }
.src-issue { font-weight: 600; color: var(--ink-2); }
.src-tag { padding: 0 8px; border-radius: 999px; background: var(--page); border: 1px solid var(--border); color: var(--ink-2); }
.src-ref-list { margin: 12px 0 0; padding-inline-start: 18px; font-size: 13px; color: var(--ink-2); }
.src-ref-list li { margin-top: 4px; }
.src-ref-list .src-issue { margin-inline-start: 6px; font-size: 12px; }

@media (max-width: 720px) {
  .src-search { max-width: none; }
  .src-table thead { display: none; }
  .src-table, .src-table tbody, .src-table tr, .src-table td { display: block; width: auto; }
  .src-row { display: grid !important; grid-template-columns: auto 1fr auto; grid-template-areas: "date outlet quotes" "title title title" "parties parties status"; gap: 2px 8px; padding: 10px 12px; border-top: 1px solid var(--grid); }
  .src-table td { border: 0; padding: 0; }
  .src-date { grid-area: date; }
  .src-outlet { grid-area: outlet; max-width: none; }
  .src-title { grid-area: title; font-size: 15px; }
  .src-parties { grid-area: parties; }
  .src-status { grid-area: status; align-self: end; }
  .src-quotes { grid-area: quotes; }
  .src-detail > td { padding: 0 8px 12px; }
}

/* ---------- report bubble ---------- */
.report-bubble {
  position: fixed; bottom: 20px; inset-inline-end: 20px; z-index: 6;
  display: inline-flex; align-items: center; gap: 6px;
  font: inherit; font-size: 14px; font-weight: 600; color: var(--surface); background: var(--ink);
  border: 0; border-radius: 999px; padding: 10px 16px 10px 14px; cursor: pointer;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);
}
.report-bubble span { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--surface); color: var(--ink); font-size: 13px; }
.report-bubble:hover { transform: translateY(-1px); }
.report-bubble:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
.report-dialog {
  width: min(480px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); padding: 0;
  color: var(--ink); background: var(--surface); border: 1px solid var(--border); border-radius: 12px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25);
}
.report-dialog::backdrop { background: rgba(0, 0, 0, 0.35); }
.report-form { display: grid; gap: 14px; padding: 18px 20px 20px; }
.report-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.report-head h2 { margin: 0; font-size: 18px; }
.report-close { font: inherit; background: none; border: 0; color: var(--muted); cursor: pointer; padding: 4px; }
.report-intro { margin: 0; color: var(--ink-2); font-size: 14px; }
.report-field { display: grid; gap: 4px; font-size: 13px; color: var(--ink-2); }
.report-field select, .report-field textarea, .report-field input, .report-kinds {
  font: inherit; font-size: 15px; color: var(--ink); background: var(--page);
  border: 1px solid var(--border); border-radius: 6px; padding: 6px 8px;
}
.report-field textarea { resize: vertical; min-height: 96px; }
.report-field input[readonly] { color: var(--ink-2); background: var(--hover); font-size: 13px; text-overflow: ellipsis; }
.report-kinds { display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 0; padding: 6px 10px 8px; }
.report-kinds legend { font-size: 13px; color: var(--ink-2); padding: 0 4px; }
.report-hp { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.report-actions { display: flex; align-items: center; gap: 12px; }
.report-submit { font: inherit; font-weight: 600; color: var(--surface); background: var(--ink); border: 0; border-radius: 6px; padding: 8px 18px; cursor: pointer; }
.report-submit:disabled { opacity: 0.5; cursor: progress; }
.report-status { margin: 0; font-size: 14px; color: var(--ink-2); }
@media (max-width: 720px) {
  .report-bubble { bottom: 14px; inset-inline-end: 14px; }
  .page { padding-bottom: 88px; }
}
.brief-more, .context { margin-top: 6px; font-size: 14px; }
.brief-more > summary, .context > summary { cursor: pointer; color: var(--ink-2); font-size: 13px; display: inline-block; }
.brief-more p { margin: 6px 0 0; line-height: 1.6; color: var(--ink); }
.context p { margin: 6px 0 0; padding: 8px 10px; background: var(--page); border-radius: 6px; color: var(--ink-2); font-size: 14px; line-height: 1.6; white-space: pre-line; unicode-bidi: plaintext; }
.key-quote .context { font-weight: normal; }
.party-chip .stance-tag { white-space: normal; line-height: 1.3; }
.brief-a [data-side="netanyahu"] { color: var(--win-netanyahu); }
.brief-a [data-side="change"] { color: var(--win-change); }
.confidence { font-size: 15px; font-weight: 600; color: var(--ink-2); white-space: nowrap; }
.brief-more .brief-quote { display: block; margin-top: 8px; padding-inline-start: 10px; border-inline-start: 2px solid var(--grid); }

/* ---------- polls: mode switch & pollster comparison ---------- */
.mode-switch { margin: 0 0 20px; }
.mode-switch a { display: block; padding: 5px 14px; color: var(--ink-2); text-decoration: none; }
.mode-switch a + a { border-inline-start: 1px solid var(--border); }
.mode-switch a:hover { background: var(--hover); }
.mode-switch a[aria-current] { background: var(--ink); color: var(--surface); font-weight: 600; }

/* Categorical slots for pollsters (fixed order; slots 9+ reuse the hues as squares). */
:root { --cat-1: #2a78d6; --cat-2: #eb6834; --cat-3: #1baf7a; --cat-4: #eda100; --cat-5: #e87ba4; --cat-6: #008300; --cat-7: #4a3aa7; --cat-8: #e34948; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) { --cat-1: #3987e5; --cat-2: #d95926; --cat-3: #199e70; --cat-4: #c98500; --cat-5: #d55181; --cat-6: #008300; --cat-7: #9085e9; --cat-8: #e66767; }
}
:root[data-theme="dark"] { --cat-1: #3987e5; --cat-2: #d95926; --cat-3: #199e70; --cat-4: #c98500; --cat-5: #d55181; --cat-6: #008300; --cat-7: #9085e9; --cat-8: #e66767; }

.pz-legend { list-style: none; margin: 0 0 16px; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 13px; color: var(--ink-2); }
.pz-legend li { display: inline-flex; align-items: center; gap: 6px; cursor: default; border-radius: 4px; padding: 1px 4px; }
.pz-legend li:focus-visible { outline: 2px solid var(--ink); }
.pz-key { display: inline-block; width: 10px; height: 10px; border-radius: 50%; flex: none; }
.pz-key--square { border-radius: 2px; }
.pz-key--diamond { border-radius: 1px; transform: rotate(45deg) scale(0.85); }
.pz-n { color: var(--muted); font-size: 11px; font-variant-numeric: tabular-nums; }
.pz-fig { margin: 0 0 20px; background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 14px 12px 8px; }
.pz-fig figcaption h2 { margin: 0; font-size: 17px; }
.pz-fig figcaption p { margin: 2px 0 8px; color: var(--muted); font-size: 13px; }
.pz-plot { width: 100%; }
.pz-plot svg { display: block; overflow: visible; font-family: var(--font); }
.pz-caption { margin: 6px 0 0; color: var(--muted); font-size: 12px; }
.pz-empty { color: var(--muted); }
.pz-grid { stroke: var(--grid); stroke-width: 1; }
.pz-axis { stroke: var(--muted); stroke-width: 1; }
.pz-tick { fill: var(--muted); font-size: 11px; font-variant-numeric: tabular-nums; }
.pz-label { fill: var(--ink); font-size: 13px; }
.pz-label.pz-n { fill: var(--muted); font-size: 11px; }
.pz-hit { fill: transparent; }
.pz-row:hover .pz-hit { fill: var(--hover); }
.pz-whisker { stroke: var(--ink-2); stroke-width: 1.5; }
.pz-box { fill: var(--hover); stroke: var(--ink-2); stroke-width: 1.5; }
.pz-median { stroke: var(--ink); stroke-width: 2.5; stroke-linecap: round; }
.pt { stroke: var(--surface); stroke-width: 1.5; transition: opacity 0.12s; }
/* Hovering a pollster fades the others everywhere. */
.pz-focused [data-pollster]:not(.pz-on) .pt, .pz-focused .pz-legend li:not(.pz-on) { opacity: 0.15; }
.pz-focused .pz-row:not(.pz-on) :is(.pz-box, .pz-whisker, .pz-median, .pz-label) { opacity: 0.35; }
.pz-details { margin: 0 0 8px; }
.pz-details summary { cursor: pointer; color: var(--ink-2); }
.pz-table-wrap { overflow-x: auto; }
.pz-table { border-collapse: collapse; margin-top: 8px; font-size: 13px; font-variant-numeric: tabular-nums; }
.pz-table th, .pz-table td { padding: 4px 10px; border-bottom: 1px solid var(--grid); text-align: start; white-space: nowrap; }
.pz-table th { color: var(--muted); font-weight: 600; }

/* Lead and trends charts: one 9-step diverging scale, Netanyahu bloc blue, change bloc red (as in the
   seats view), neutral middle. Darker = bigger on the light surface; brighter = bigger on the dark one. */
:root { --lead-n4: #173f9c; --lead-n3: #3567c8; --lead-n2: #7598e0; --lead-n1: #b9cdf2; --lead-tie: #ffffff;
  --lead-c1: #f3c0c0; --lead-c2: #e48585; --lead-c3: #c94040; --lead-c4: #951515; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) { --lead-n4: #a9c5f7; --lead-n3: #6f98ea; --lead-n2: #4a6fb8; --lead-n1: #3d5c96; --lead-tie: #7a7976;
    --lead-c1: #8c4040; --lead-c2: #b04b4b; --lead-c3: #e06b6b; --lead-c4: #f5a8a8; }
}
:root[data-theme="dark"] { --lead-n4: #a9c5f7; --lead-n3: #6f98ea; --lead-n2: #4a6fb8; --lead-n1: #3d5c96; --lead-tie: #7a7976;
  --lead-c1: #8c4040; --lead-c2: #b04b4b; --lead-c3: #e06b6b; --lead-c4: #f5a8a8; }
.pt-lead--tie { stroke: var(--muted); stroke-width: 1; }
.pz-lane { stroke: var(--grid); stroke-width: 1; }
.pz-lead-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 24px; margin: 0 0 12px; font-size: 14px; color: var(--ink-2); }
.pz-bloc-group { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; }
.pz-bloc-group b { font-weight: 600; color: var(--ink); }
.pz-lead-legend { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 12px; color: var(--muted); }
.pz-lead-legend li { display: inline-flex; align-items: center; gap: 5px; }
.pz-lead-key { width: 10px; height: 10px; border-radius: 50%; }
.pz-lead-key.pt-lead--tie { box-shadow: inset 0 0 0 1px var(--muted); }
.pz-row { cursor: pointer; }

/* Hover card: one line about the firm, and a pointer to the full profile below. */
.tooltip .tt-short { margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--grid); color: var(--ink-2); font-size: 12.5px; line-height: 1.45; }
.tooltip .tt-more { margin-top: 4px; color: var(--muted); font-size: 11.5px; }

/* "על הסוקרים": firm cards in the parties-strip style, profile below. */
.pz-about { margin: 28px 0 8px; }
.pz-about h2 { margin: 0; font-size: 20px; }
.pz-about .party-strip-wrap { margin-top: 12px; }
button.party-chip { font: inherit; text-align: start; cursor: pointer; }
.pz-profile h3 { margin: 18px 0 4px; font-size: 15px; }
.pz-profile-part p { margin: 8px 0 0; line-height: 1.6; color: var(--ink-2); }
.pz-profile-part p b { color: var(--ink); }
.pz-profile-part .more { margin-top: 8px; font-size: 13px; }
.pz-profile-part .more summary { cursor: pointer; color: var(--ink-2); }
.pz-profile-part ul { margin: 6px 0 0; padding-inline-start: 18px; font-size: 12px; color: var(--muted); }

/* Standard poll card (pollcard.js): a 120-seat bar with a tick at 61, then a short summary. */
.tooltip:has(.pc-bar) { width: 260px; }
.pc-head { margin-top: 6px; font-size: 15px; font-weight: 700; }
.pc-bar { position: relative; margin: 16px 0 4px; }
.pc-track { display: flex; height: 18px; border-radius: 4px; overflow: hidden; background: var(--grid); }
.pc-seg { min-width: 0; display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 600; font-variant-numeric: tabular-nums; border-left: 1px solid var(--surface); }
.pc-seg:last-of-type { border-left: 0; }
.pc-majority { position: absolute; top: -4px; bottom: -3px; width: 2px; margin-right: -1px; background: var(--ink); box-shadow: 0 0 0 1px var(--surface); }
.pc-majority span { position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); font-size: 10px; line-height: 1.2; color: var(--muted); font-variant-numeric: tabular-nums; }
.pc-blocs { display: flex; gap: 10px; flex-wrap: wrap; font-size: 12.5px; color: var(--ink-2); font-variant-numeric: tabular-nums; }
.pc-blocs b { color: var(--ink); }
.pc-sample { margin-top: 4px; padding-top: 4px; border-top: 1px solid var(--grid); font-size: 12px; }
.pz-zero { stroke: var(--muted); }
.pz-dir { fill: var(--muted); font-size: 11.5px; }
.pc-note { margin-top: 6px; font-size: 12.5px; font-weight: 600; color: var(--ink-2); }
.tooltip .tt-quart { border-collapse: collapse; margin: 4px 0 2px; font-variant-numeric: tabular-nums; }
.tooltip .tt-quart th { padding: 1px 0 1px 12px; text-align: start; font-weight: 400; color: var(--muted); }
.tooltip .tt-quart td { padding: 1px 0; color: var(--ink-2); }
.tooltip .tt-quart-med td { font-weight: 700; color: var(--ink); }

/* "האם הפיזור סביר?": the expected IQR band and verdict (status colours, always with an icon). */
:root { --status-ok: #2f8a3e; --status-warn: #c77700; --status-bad: #c62828; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --status-ok: #5cbf6c; --status-warn: #f0a640; --status-bad: #ef6b6b; } }
:root[data-theme="dark"] { --status-ok: #5cbf6c; --status-warn: #f0a640; --status-bad: #ef6b6b; }
.pz-expected { fill: none; stroke-width: 1.5; stroke-dasharray: 4 3; }
.pz-expected--ok { stroke: var(--status-ok); }
.pz-expected--bad { stroke: var(--status-bad); }
.pz-expected--few { stroke: var(--muted); }
.pz-verdict { font-size: 14px; font-weight: 700; }
.pz-verdict--ok { fill: var(--status-ok); }
.pz-verdict--bad { fill: var(--status-bad); }
.pz-verdict--few { fill: var(--muted); }
.tooltip .tt-verdict { margin-top: 4px; font-weight: 600; }
.tooltip .tt-verdict--ok { color: var(--status-ok); }
.tooltip .tt-verdict--bad { color: var(--status-bad); }
.tooltip .tt-verdict--few { color: var(--muted); }
.pz-spread-key { font-size: 12px; color: var(--muted); }
.pz-spread-key .tt-verdict--ok { color: var(--status-ok); }
.pz-spread-key .tt-verdict--bad { color: var(--status-bad); }
/* Side-by-side dots (lean and trends): a thin surface ring, so packed dots stay distinct without
   reading as gaps. */
.pt.pt-tight { stroke-width: 0.75; }
.pz-expected--warn { stroke: var(--status-warn); }
.pz-verdict--warn { fill: var(--status-warn); }
.tooltip .tt-verdict--warn, .pz-spread-key .tt-verdict--warn { color: var(--status-warn); }
.tooltip:has(.tt-noise-head) { max-width: 360px; }
.tooltip .tt-noise-head { margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--grid); color: var(--ink-2); font-weight: 600; }

/* ---- quotes tab ---- */
.qt-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.qt-card { padding: 12px 16px 10px; background: var(--surface); border: 1px solid var(--border); border-inline-start: 4px solid var(--party); border-radius: 8px; }
.qt-card blockquote { margin: 0 0 8px; font-size: 17px; line-height: 1.6; unicode-bidi: plaintext; overflow-wrap: anywhere; }
.qt-card blockquote::before { content: "״"; color: var(--muted); }
.qt-card blockquote::after { content: "״"; color: var(--muted); }
.qt-meta, .qt-foot { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; font-size: 13px; color: var(--ink-2); }
.qt-foot { margin-top: 6px; font-size: 12px; }
.qt-party { padding: 0 6px; border-radius: 999px; border: 1px solid var(--border); border-inline-start: 3px solid var(--party); font-size: 12px; }
.qt-occasion { color: var(--muted); }
.qt-foot a { color: var(--ink-2); }
.qt-tag { text-decoration: none; padding: 0 6px; border-radius: 4px; background: var(--hover); border: 1px solid var(--border); }
.qt-tag:hover { color: var(--ink); border-color: var(--ink-2); }
.qt-link { margin-inline-start: auto; text-decoration: none; color: var(--muted) !important; }
.qt-muted { color: var(--muted); }
.qt-others summary { cursor: pointer; color: var(--muted); }
.qt-others ul { margin: 4px 0 0; padding-inline-start: 18px; }
.qt-more { margin: 16px 0; text-align: center; }
.qt-more-btn { font: inherit; color: var(--ink); background: var(--surface); border: 1px solid var(--border); border-radius: 6px; padding: 6px 16px; cursor: pointer; }
.qt-more-btn:hover { background: var(--hover); }

/* ---- admin tab (local preview only) ---- */
.adm-loading { color: var(--muted); }
.adm-refresh { margin-top: 12px; font: inherit; font-size: 13px; color: var(--ink); background: var(--surface); border: 1px solid var(--border); border-radius: 6px; padding: 4px 12px; cursor: pointer; }
.adm-section { margin: 28px 0; }
.adm-section h2 { font-size: 18px; margin: 0 0 6px; }
.adm-section h3 { font-size: 15px; margin: 16px 0 6px; }
.adm-note { margin: 0 0 10px; font-size: 13px; color: var(--muted); }
.adm-sub { font-size: 12px; color: var(--muted); }
.adm-num { font-variant-numeric: tabular-nums; }
.adm-big { font-size: 22px; font-weight: 700; margin: 4px 0; }
.adm-bad { color: var(--win-change); font-weight: 600; }
.adm-err { color: var(--win-change); font-size: 12px; max-width: 260px; overflow-wrap: anywhere; }
.adm-health { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.adm-card { background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px; }
.adm-card h2 { font-size: 14px; color: var(--muted); }
.adm-budget { display: grid; grid-template-columns: 70px 1fr auto; align-items: center; gap: 8px; font-size: 13px; margin: 6px 0; }
.adm-bar { height: 8px; background: var(--grid); border-radius: 4px; overflow: hidden; }
.adm-bar-fill { display: block; height: 100%; background: var(--support-change); }
.adm-bar-fill--hot { background: var(--win-change); }
.adm-keys { list-style: none; margin: 0; padding: 0; font-size: 13px; display: grid; gap: 4px; }
.adm-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-inline-end: 6px; background: var(--muted); }
.adm-dot--ok { background: var(--support-change); }
.adm-dot--warn { background: #d99a1e; }
.adm-dot--bad { background: var(--win-change); }
.adm-dot--off { background: var(--grid); border: 1px solid var(--muted); }
.adm-funnel { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 8px; }
.adm-funnel li { background: var(--surface); border: 1px solid var(--border); border-radius: 8px; padding: 8px 10px; display: grid; }
.adm-table td { font-size: 13px; }
.adm-row { cursor: pointer; }
.adm-row:hover { background: var(--hover); }
.adm-detail > td { background: var(--hover); border-top: 0; }
.adm-mini { border-collapse: collapse; font-size: 12px; margin: 6px 0; }
.adm-mini td { padding: 3px 10px 3px 0; border-top: 1px solid var(--grid); }
.adm-stages { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.adm-stage { background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 10px 14px; }
.adm-stage--sched { border-style: dashed; }
.adm-stage-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; margin-bottom: 6px; }
.adm-stage-head code { font-size: 12px; color: var(--muted); }
.adm-chip { font-size: 11px; padding: 1px 8px; border-radius: 999px; border: 1px solid var(--border); color: var(--ink-2); }
.adm-chip--free { color: var(--support-change); border-color: var(--support-change); }
.adm-stats { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0; }
.adm-stat dt { font-size: 11px; color: var(--muted); }
.adm-stat dd { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; }
.adm-stat--warn dd { color: #b57a09; }
.adm-stat--bad dd { color: var(--win-change); }
.adm-errors { margin: 8px 0 0; padding-inline-start: 18px; font-size: 12px; color: var(--win-change); }
.adm-trail { margin: 4px 0; padding-inline-start: 18px; font-size: 12px; display: grid; gap: 2px; }
.adm-held { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.adm-held blockquote { margin: 0; font-size: 14px; unicode-bidi: plaintext; }
@media (max-width: 720px) { .adm-table { display: block; overflow-x: auto; } }

/* ---------- polls tab as data articles (articles.js) ---------- */
.article-strip-wrap { margin: 0 -16px 20px; }
.article-chip { --party: var(--muted); width: 220px; text-decoration: none; color: inherit; gap: 4px; }
.article-chip[aria-current="page"] { --party: var(--ink); border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); background: var(--hover); }
.article-num { font-size: 12px; font-weight: 700; color: var(--muted); font-variant-numeric: tabular-nums; }
.article-chip .party-chip-name { font-size: 16px; }
.article-teaser { font-size: 12.5px; line-height: 1.4; color: var(--ink-2); }
@media (max-width: 600px) { .article-chip { width: 172px; } }
.article-body { max-width: 70ch; margin: 8px 0 20px; font-size: 16px; line-height: 1.7; color: var(--ink); }
.article-body p { margin: 0 0 12px; }

/* Bloc gap per pollster over time (lineChart) */
.pz-line { fill: none; stroke-width: 2; stroke-linejoin: round; opacity: 0.8; transition: opacity 0.12s; }
.pz-ring { fill: none; stroke: var(--ink); stroke-width: 1.5; transition: opacity 0.12s; }
.pz-focused [data-pollster]:not(.pz-on) :is(.pz-line, .pz-ring) { opacity: 0.08; }
.pz-line-legend { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 12.5px; color: var(--ink-2); }
.pz-line-legend li { display: inline-flex; align-items: center; gap: 5px; cursor: default; transition: opacity 0.12s; }
.pz-focused .pz-line-legend li:not(.pz-on) { opacity: 0.35; }
.pz-dir--n { fill: var(--lead-n3); font-weight: 600; }
.pz-dir--c { fill: var(--lead-c3); font-weight: 600; }
.pz-col .pz-hit { fill: transparent; }
.pz-ring-check { margin: 0 0 8px; font-size: 13.5px; }
.article-strip-wrap { margin: 16px -16px 8px; }
.article-head { margin: 16px 0 4px; padding-top: 16px; border-top: 1px solid var(--border); }
.article-head h2 { margin: 0 0 6px; font-size: 26px; }
.article-head .lede { margin: 0; }
