/* ============================================================================
   Israel 2026 — overrides and additions on top of the shared styles.css.
   Most of this is the Berlin / Mecklenburg-Vorpommern dashboard's de.css; the
   bloc bar and the balance bar are the Sweden dashboard's; the rest is new
   here: ballot-letter chips, comparability flags, the map toggle, the bloc
   table, paths to 61, the agreements and the threshold watch.
   ========================================================================= */

body[data-election="knesset26"] .brand-mark{ background: linear-gradient(145deg,#3E8FE0,#1b4f86); color:#f2f8ff; }
body{ --accent:#3E8FE0; }
::selection{ background:#2AAEE8; color:#04070c; }

.topbar{ gap:16px; flex-wrap:wrap; z-index:1100; }
.brand{ min-width:210px; }
.brand-text h1, .brand-text p{ overflow-wrap:anywhere; }
.pagefoot code, .panel-foot code, .d-note code, .banner code{ overflow-wrap:anywhere; }
.livebox{ margin-left:auto; }

/* ── Hebrew inside an English page ────────────────────────────────────── */
/* Ballot letters as a small chip; isolated (bdi) so they read right to left. */
.lt{
  /* one fixed width (in em, so it follows the font size): every name after a
     chip starts at the same point whether the list has one letter or three */
  display:inline-block; width:2.9em; box-sizing:border-box; padding:0 2px; margin-right:3px; border-radius:3px;
  white-space:nowrap; overflow:hidden;
  font-size:11px; font-weight:700; line-height:16px; text-align:center; vertical-align:middle;
  background: var(--surface-3); color: var(--ink-2); border:1px solid var(--hair);
  unicode-bidi:isolate; font-family: "Segoe UI", Arial, var(--font);
}
.rowmain .lt{ font-size:11.5px; }
/* the national table has no colour swatch: the row's own bar carries the colour */
.tbl-parties .rowmain, .tbl-blocs .rowmain{ grid-template-columns: 1fr auto; }
.he{ unicode-bidi:isolate; color: var(--ink-3); font-weight:400; }
.t-he{ font-weight:400; color: var(--ink-3); margin-left:4px; }
/* Hover rows carry their share as the row's own background, as the detail panel
   does, so a sweep across the map compares lengths rather than reading numbers.
   The block needs a width of its own — the tooltip is sized to its text — or
   the bars would each be scaled to their own row. */
.wkr-tip{ --tip-w:196px; }
/* The hover card is one element for the life of the map, moved by a transform
   (app.js initTip). left/top are fixed at the container origin so the transform
   is the whole position, and its own layer keeps the map from repainting under
   it as it travels. */
.il-tip{ left:0; top:0; z-index:650; margin:0; will-change:transform; }
.wkr-tip .t-rows{ min-width: var(--tip-w); margin:4px 0 1px; }
/* A long name must not stretch the tooltip past the width the rows set: the
   Hebrew name gives way first (shrink 9 against 1) and is cut with an ellipsis,
   and only a Latin name long enough on its own is cut as well. */
.wkr-tip .t-name{ display:flex; align-items:center; gap:5px; max-width: var(--tip-w); }
.wkr-tip .t-en{ flex:0 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; }
/* rtl on the clipped box, so the ellipsis lands at the end of the Hebrew - the
   left - and the cut takes the end of the name rather than its first letters. */
.wkr-tip .t-he{ flex:0 9 auto; min-width:0; direction:rtl; overflow:hidden; text-overflow:ellipsis; margin-left:0; }
.wkr-tip .t-row{
  position:relative; display:grid; grid-template-columns: minmax(0,1fr) auto;
  align-items:center; gap:8px; padding:3px 6px; margin-bottom:2px; color: var(--ink);
}
.wkr-tip .t-bar{ position:absolute; inset:0; overflow:hidden; border-radius:3px; }
.wkr-tip .t-bar > i{ display:block; height:100%; opacity:.26; border-radius:0 3px 3px 0; }
.wkr-tip .t-lbl{ position:relative; overflow:hidden; text-overflow:ellipsis; }
.wkr-tip .t-pct{ position:relative; font-weight:650; }
.d-hename{ font-size:13px; margin:-2px 0 6px; color: var(--ink-2); }

/* ── hero ─────────────────────────────────────────────────────────────── */
/* Israel is tall and narrow: the map wants the larger share of the width, so
   the results and seats column takes 45% and the map 55%. */
@media (min-width:1200px){
  .hero{ grid-template-columns: minmax(0, 45fr) minmax(0, 55fr); max-height:1340px; }
}
/* Up to 1440 px half the width is too little for five KPIs with the bloc
   counts and the vote total, so the status bar spans both columns. */
@media (min-width:1200px) and (max-width:1439px){
  .hero-status{ grid-column:1 / -1; grid-row:1; }
  .hero-results{ grid-column:1; grid-row:2; }
  .hero-seats{ grid-column:1; grid-row:3; }
  .hero-map{ grid-column:2; grid-row:2 / span 2; }
}
@media (min-width:1200px) and (max-height:900px){
  .tbl-parties td, .tbl-blocs td{ height:32px; }
  .rowpct{ font-size:18px; }
  .rowmain .pname{ font-size:13.5px; }
  .rowmain .swatch{ height:18px; }
  #natFoot{ display:-webkit-box; -webkit-box-orient:vertical; overflow:hidden; flex:none;
                       padding-bottom:0; border-bottom:7px solid transparent; }
  #natFoot{ -webkit-line-clamp:1; }
}
.panel-map > .panel-head{ flex-wrap:wrap; }
/* The map card is a column in a box of fixed height. When the detail panel
   opens, its content is far taller than the card, and the shrink was shared
   out over every row - the header too, which styles.css lets go down to 44 px,
   so its second row of controls slid under the search box. Only the map stage
   gives way now; the detail panel scrolls inside it. */
.panel-map > .panel-head, .panel-map > .searchrow, .panel-map > .legend{ flex-shrink:0; }
@media (max-width:1199px){
  /* one column, no fixed height: keep a long detail panel from stretching the map */
  .panel-map.has-selection .map-side{ max-height:640px; }
}
#levelSeg{ flex-wrap:wrap; }
#levelSeg button small{ color: var(--ink-3); font-size:10px; margin-left:3px; }
#levelSeg button.on small{ color:#8fb6dd; }
/* The map toggle is a control of its own, set apart from the level choice. */
.geomseg{ margin-right:auto; }
.geomseg button{ padding:6px 12px; font-weight:600; }
.geomseg button.on{ background:#24304a; color:#d6e4ff; box-shadow: inset 0 -2px 0 var(--accent); }
.map-controls{ flex-wrap:wrap; row-gap:8px; }
#mapParty{ max-width:220px; }
#map{ position:relative; }
.map-hint{
  position:absolute; z-index:700; left:50%; bottom:28px; transform:translateX(-50%);
  padding:7px 14px; border-radius:100px; font-size:12.5px; white-space:nowrap; pointer-events:none;
  background: rgba(13,17,24,.95); border:1px solid var(--hair); color: var(--ink);
  opacity:0; transition: opacity .2s ease;
}
.map-hint.show{ opacity:1; }
.map-loading{
  position:absolute; z-index:700; left:50%; top:14px; transform:translateX(-50%);
  padding:6px 14px; border-radius:100px; font-size:12px;
  background: rgba(13,17,24,.95); border:1px solid var(--hair); color: var(--ink-2);
}

body:has(.banner:not([hidden])) .toast-rail{ top:118px; }
.banner[data-kind="file"]{ border-color:#2a3a55; background:#0d1522; color:#bcd0ea; }

.note-flag{
  display:inline-block; padding:1px 7px; margin-right:5px; border-radius:4px;
  font-size:10px; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
  background: var(--surface-3); color: var(--ink-2); border:1px solid var(--hair);
}
.note-flag.ok{ background:#0e2419; color:#8ff0bb; border-color:#1c5c3a; }
.searchrow{ flex-wrap:wrap; }
.level-note{ margin:0; flex:1 1 320px; min-width:0; font-size:11px; line-height:1.5; color: var(--ink-3); }
.tag, .note-flag, .state-pill{ border-radius:4px; }

/* ── status card ──────────────────────────────────────────────────────── */
.kpibar{ position:relative; }
.kpi-item{ justify-content:flex-start; padding-bottom:12px; }
.kpi-progress .progress{
  position:absolute; left:0; right:0; bottom:0; margin:0;
  height:4px; border-radius:0; background: var(--surface-3);
}
.kpi-progress .progress-fill{ border-radius:0; }
/* five cells of one width; below 1100 px the shared wrapping rules take over */
@media (min-width:1101px){ .kpibar .kpi-item{ flex:1 1 0; } }
.kpi-blocs-v{ display:inline-flex; align-items:baseline; gap:5px; }
.kpi-blocs-v b{ font-weight:700; }
.kpi-blocs-v i{ font-style:normal; color: var(--ink-4); font-weight:400; }
.mini-chip{
  display:inline-flex; align-items:center; gap:4px; margin-right:4px;
  font-size:10.5px; font-weight:650; color: var(--ink-2); white-space:nowrap;
}
.mini-chip::before{ content:""; width:7px; height:7px; border-radius:2px; background: var(--pc); }

/* the threshold line on the national table */
.bar-th4{ position:absolute; top:3px; bottom:3px; width:0; border-left:1px solid rgba(255,255,255,.05); }

/* Every list-coloured fill carries a hairline ring, so a dark colour still has
   a shape on the dark panels. */
.swatch, .rowbar, .rk-bar, .cmp-bars i, .mini-chip::before, .rt-chip::before,
.d-seat .swatch, .legend-ramp i, .bb-track i, .bal i, .th-bar i, .pb-track i
{ box-shadow: inset 0 0 0 1px rgba(242,245,249,.16); }
.seat-dot{ stroke: rgba(242,245,249,.18); stroke-width:.5; }
.chart-legend .swatch, .legend-item .swatch{ box-shadow: inset 0 0 0 1px rgba(242,245,249,.20); }

/* ── flags: why there is or is not a change figure ────────────────────── */
.mflag{
  display:inline-block; font-size:10px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  padding:1px 5px; border-radius:4px; cursor:help; white-space:nowrap;
  background: var(--surface-3); color: var(--ink-3); border:1px solid var(--hair);
}
.mflag.sm{ font-size:8.5px; padding:0 3px; letter-spacing:0; }
.cflag{
  display:inline-block; margin-left:3px; padding:0 4px; border-radius:3px; cursor:help;
  font-size:10.5px; font-weight:700; color:#9fd0ff; background:#14243a; border:1px solid #27466d;
}

/* ── seats ────────────────────────────────────────────────────────────── */
.hemi-col{ flex:0 1 360px; min-width:0; display:flex; flex-direction:column; justify-content:center; gap:6px; padding:4px 0; }
.hemi{ flex:none; max-width:none; }
.hemi-maj{ fill:none; stroke: rgba(242,245,249,.85); stroke-width:1.3; stroke-linejoin:round; stroke-linecap:round; }
.seat-table{ max-height:250px; }
.tbl-seats td.num{ font-variant-numeric: tabular-nums; }
.tbl .empty{ color: var(--ink-3); text-align:center; padding:18px 8px; }
.tbl-seats .lt{ font-size:10px; line-height:14px; }

/* the bloc bar: blocs left to right, the dashed line at 61 */
.blocbar{ position:relative; padding:2px 2px 0; }
.bb-track{ position:relative; display:flex; height:14px; border-radius:3px; overflow:hidden; background: var(--surface-3); gap:2px; }
.bb-track i{ display:block; height:100%; min-width:2px; }
.bb-bar{ position:relative; }
.bb-bar.is-prev, .bb-labels2.is-prev{ opacity:.55; }
.bb-mid{ position:absolute; top:-3px; height:20px; left:50%; width:0; border-left:1.5px dashed rgba(242,245,249,.85); }
.bb-labels2{ display:flex; gap:2px; margin-top:4px; font-size:10.5px; color: var(--ink-2); font-variant-numeric: tabular-nums; }
.bb-labels2 span{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-align:center; }
.bb-labels2 strong{ font-size:13px; color: var(--ink); }
/* "61 for a majority", above the bar and centred on its marker */
.bb-maj{ position:relative; height:14px; margin-bottom:4px; font-size:10.5px; line-height:14px; color: var(--ink-3); }
.bb-maj span{ position:absolute; top:0; transform:translateX(-50%); white-space:nowrap; }

.chartwrap{ height:330px; flex:0 0 auto; }

/* ── the area table ───────────────────────────────────────────────────── */
.tbl-rt th{ padding:8px 12px; }
.tbl-rt td{ padding:7px 12px; vertical-align:middle; }
.rt-area{ min-width:160px; max-width:250px; }
.rt-area .rt-sub{ white-space:normal; }
#areaTable td.num{ padding-left:8px; padding-right:8px; }
#areaTable .rt-cnt{ min-width:64px; }
#areaTable .cnt-bar{ width:52px; }
.rt-name{ display:block; font-size:13px; font-weight:560; color: var(--ink); }
.rt-sub{ display:block; font-size:10.5px; line-height:1.3; color: var(--ink-3); margin-top:2px; font-variant-numeric: tabular-nums; white-space:nowrap; }
.rt-main{ display:block; font-size:14px; font-weight:650; line-height:1.2; font-variant-numeric: tabular-nums; }
.rt-main.is-empty{ color: var(--ink-3); font-weight:500; font-size:12.5px; }
.rt-chip{ display:inline-flex; align-items:center; gap:7px; font-size:13.5px; font-weight:650; line-height:1.2; }
.rt-chip::before{ content:""; width:10px; height:15px; border-radius:2px; background: var(--pc); }
.rt-chip.is-prev{ color: var(--ink-3); font-weight:500; }
.rt-chip.is-prev::before{ opacity:.5; }
.rt-cnt{ min-width:90px; }
.cnt-bar{ display:block; width:64px; height:3px; margin:3px 0 0 auto; border-radius:2px; background: var(--surface-3); overflow:hidden; }
.cnt-bar i{ display:block; height:100%; background: linear-gradient(90deg,#2AAEE8,#57d0ff); }
tr.sel > td{ background: rgba(42,174,232,.10); }
tr.sel > td:first-child{ box-shadow: inset 3px 0 0 #2AAEE8; }
/* every bloc's share as one stacked bar, 50% dashed */
.rt-bal{ width:15%; min-width:104px; }
.bal{ position:relative; display:flex; height:10px; border-radius:3px; background: var(--surface-3); overflow:hidden; }
.bal i{ display:block; height:100%; }
.bal b{ position:absolute; top:0; bottom:0; left:50%; border-left:1.5px dashed rgba(242,245,249,.85); }
.bal.is-prev{ opacity:.35; }

/* ── ranking list ─────────────────────────────────────────────────────── */
.ranklist li{ position:relative; grid-template-columns: 22px 1fr auto; overflow:hidden; }
.ranklist li.sel{ background: rgba(42,174,232,.10); }
.rk-n{ color: var(--ink-3); font-size:11px; text-align:right; font-variant-numeric: tabular-nums; }
.rk-name{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; z-index:1; }
.rk-v{ font-weight:650; font-variant-numeric: tabular-nums; text-align:right; z-index:1; }
.rk-bar{ position:absolute; left:0; bottom:0; height:2px; opacity:.85; border-radius:0 2px 2px 0; }
.ranklist .rempty{ color: var(--ink-3); padding:14px 8px; cursor:default; display:block; }
.rank-controls select{ max-width:170px; }

/* ── detail panel ─────────────────────────────────────────────────────── */
.d-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-bottom:6px; }
.d-kind{ font-size:10.5px; letter-spacing:.04em; text-transform:uppercase; color: var(--ink-3); }
.d-parent{ font-size:11.5px; color: var(--ink-3); margin-bottom:9px; }
.d-link{ color:#8fc7f0; cursor:pointer; text-decoration:none; }
.d-link:hover{ text-decoration:underline; }
.d-stats{ display:grid; grid-template-columns: repeat(auto-fit,minmax(118px,1fr)); gap:6px; margin-bottom:11px; }
.d-stat strong small{ font-size:11px; color: var(--ink-3); font-weight:500; }
.d-h{ font-size:11px; letter-spacing:.04em; text-transform:uppercase; color: var(--ink-3); margin:13px 0 6px; font-weight:600; }
.d-h small{ text-transform:none; letter-spacing:0; color: var(--ink-3); font-weight:400; margin-left:5px; }
.d-empty{ color: var(--ink-3); font-size:12px; margin:8px 0; }
.d-note{ font-size:11px; line-height:1.5; color: var(--ink-2); background: var(--surface-2); border:1px solid var(--hair-soft); border-radius: var(--radius-sm); padding:7px 9px; margin:0 0 10px; }
.d-note.quiet{ background:transparent; border:0; padding:0; color: var(--ink-3); margin:6px 0 0; }
.d-row{ grid-template-columns: 1fr 56px 54px 56px; }
.d-row .rname .lt{ font-size:9.5px; line-height:13px; }
.d-blocs{ display:flex; flex-direction:column; gap:2px; }
.d-bloc{ position:relative; display:grid; grid-template-columns: 1fr 56px 54px 56px; align-items:center; gap:7px; padding:4px 7px; font-size:12px; font-variant-numeric: tabular-nums; }
.d-bloc .rname{ position:relative; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.d-bloc .rpct{ position:relative; text-align:right; font-weight:650; font-size:14px; letter-spacing:-.01em; }
.d-bloc .rdelta{ position:relative; text-align:right; font-size:11.5px; }
.d-bloc .rvotes{ position:relative; text-align:right; color: var(--ink-2); font-size:11px; }

.state-pill{ display:inline-block; padding:1px 7px; font-size:10px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.state-pill.none{ background: var(--surface-3); color: var(--ink-3); border:1px solid var(--hair); }
.state-pill.part{ background:#241a08; color:#f4c76a; border:1px solid #5b4413; }
.state-pill.done{ background:#0e2419; color:#8ff0bb; border:1px solid #1c5c3a; }
.state-pill.hist{ background:#161c2b; color:#9fb4e0; border:1px solid #2b3856; }

.legend-note{ font-size:10.5px; color: var(--ink-3); }
.legend-n{ font-weight:650; color: var(--ink); font-variant-numeric: tabular-nums; margin-left:1px; }
.h-vote{
  margin-left:8px; padding:1px 6px; border-radius:4px; vertical-align:1px;
  font-size:10px; font-weight:600; letter-spacing:.04em; text-transform:none;
  color: var(--ink-3); background: var(--surface-3); border:1px solid var(--hair);
}

/* ── comparison chart ─────────────────────────────────────────────────── */
.cmp-bars{ gap:3px; }
.cmp-bars i{ width:46%; max-width:30px; }
.cmp-th{ position:absolute; left:0; right:0; height:0; border-top:1px dashed rgba(242,245,249,.42); pointer-events:none; z-index:1; }
.cmp-lbl{ font-size:10.5px; }

/* ── blocs ────────────────────────────────────────────────────────────── */
/* the bloc table is built like the national one: the share bar is the first
   cell's background, and every row is one line of the same height */
/* the blocs-and-comparison section is two columns that each stack their
   cards, so a short card never leaves a gap beside or below it */
.grid.cols{ align-items:start; }
.col{ display:flex; flex-direction:column; gap:14px; min-width:0; }
.tbl-blocs .c-main{ width:44%; min-width:220px; position:relative; }
.tbl-blocs td{ padding:0 9px; height:38px; }
.tbl-blocs th{ padding:6px 9px; }
.tbl-blocs td.c-main{ padding:0; }
.tbl-blocs tr:hover .rowbar, .tbl-blocs tr:focus-visible .rowbar{ opacity:.34; }
.tbl-blocs td:nth-child(2){ font-size:14px; }
.tbl-blocs td:nth-child(3), .tbl-blocs td:nth-child(6){ font-size:11.5px; color: var(--ink-3); }
.tbl-blocs td:nth-child(4){ font-size:16px; font-weight:650; }

.paths{ padding:10px 14px 4px; display:flex; flex-direction:column; gap:7px; }
.path{ display:grid; grid-template-columns: minmax(0,1.3fr) 34px minmax(0,1fr) 96px; align-items:center; gap:10px;
  padding:6px 8px; border-radius: var(--radius-sm); background: var(--surface-2); border:1px solid var(--hair-soft); }
.path.ok{ border-color:#1c5c3a; background:#0e1f17; }
.path.is-prev{ opacity:.6; }
.path-name{ display:flex; flex-wrap:wrap; align-items:center; gap:2px; min-width:0; }
.path-name .plus{ color: var(--ink-3); margin:0 3px 0 -1px; font-size:11px; }
.path-n b{ font-size:17px; font-variant-numeric: tabular-nums; }
.path-bar{ position:relative; }
.pb-track{ display:flex; height:9px; border-radius:2px; background: var(--surface-3); overflow:hidden; gap:1px; }
.pb-track i{ display:block; height:100%; }
.pb-mid{ position:absolute; top:-3px; height:15px; width:0; border-left:1.5px dashed rgba(242,245,249,.85); }
.path-v{ font-size:11px; color: var(--ink-3); text-align:right; white-space:nowrap; }
.path-v b{ color: var(--ink); font-variant-numeric: tabular-nums; }
.path.ok .path-v{ color:#8ff0bb; }

.agreements{ padding:4px 14px 10px; }
.agreements .d-h{ margin-top:8px; }
.ag-row{ display:flex; align-items:center; gap:4px; padding:3px 0; font-size:12px; flex-wrap:wrap; }
.ag-arrow{ color: var(--ink-3); margin:0 4px 0 0; }
.ag-st{ margin-left:auto; font-size:10px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color: var(--ink-3); }
.ag-st.ok{ color:#8ff0bb; }
.ag-effect{ margin:6px 0 0; font-size:11.5px; color: var(--ink-2); }
.ag-effect.quiet{ color: var(--ink-3); font-size:11px; }

/* ── threshold watch ──────────────────────────────────────────────────── */
.thwatch{ padding:8px 14px; display:flex; flex-direction:column; gap:3px; overflow:auto; flex:1 1 auto; }
.th-row{ display:grid; grid-template-columns: minmax(0,1.25fr) 54px minmax(0,1fr) 128px; align-items:center; gap:9px;
  padding:5px 6px; border-radius: var(--radius-sm); font-size:12.5px; font-variant-numeric: tabular-nums; }
.th-row[data-party]{ cursor:pointer; }
.th-row[data-party]:hover{ background: var(--surface-2); }
.th-name{ display:flex; align-items:center; gap:6px; min-width:0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.th-pct{ text-align:right; font-weight:650; }
.th-row:not(.above) .th-pct{ color:#f2938f; }
.th-bar{ position:relative; height:10px; border-radius:2px; background: var(--surface-3); }
.th-bar i{ display:block; height:100%; border-radius:2px 0 0 2px; opacity:.9; }
.th-bar b{ position:absolute; top:-3px; bottom:-3px; width:0; border-left:1.5px dashed rgba(242,245,249,.85); }
.th-gap{ text-align:right; font-size:11.5px; color: var(--ink-3); white-space:nowrap; }
.th-gap b{ color: var(--ink); }
.th-row.above .th-gap b{ color:#8ff0bb; }
.th-row:not(.above) .th-gap b{ color:#f2938f; }

/* ── the comparability table ──────────────────────────────────────────── */
.tbl-cmp td{ vertical-align:top; padding:7px 10px; }
.tbl-cmp td.num{ vertical-align:middle; }
.tbl-cmp .rt-sub{ max-width:300px; overflow:hidden; text-overflow:ellipsis; }
.tbl-cmp tr.is-cmp td:first-child{ box-shadow: inset 3px 0 0 #2fbd77; }
.tbl-cmp tr.is-gone td{ color: var(--ink-3); }
.tbl-cmp tr.sep td{ font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; color: var(--ink-3);
  background: var(--surface-2); padding:6px 10px; }
.cv{ font-size:11px; font-weight:650; white-space:nowrap; }
.cv.ok{ color:#8ff0bb; }
.cv.no{ color:#f2938f; }
.cv.new{ color: var(--ink-3); text-transform:uppercase; font-size:10px; letter-spacing:.05em; }
.muted-x{ color: var(--ink-3); }

/* ── diagnostics ──────────────────────────────────────────────────────── */
.diag-row{ display:flex; gap:8px; align-items:flex-start; font-size:11.5px; color: var(--ink-2); line-height:1.5; }
.diag-row .diag-dot{ width:7px; height:7px; border-radius:50%; margin-top:5px; flex:0 0 auto; background: var(--ink-4); }
.diag-row.ok .diag-dot{ background:#4cc98a; }
.diag-row.warn .diag-dot{ background: var(--warning); }
.diag-row.info .diag-dot{ background:#5b8db8; }
.diag-h{ font-size:11px; letter-spacing:.05em; text-transform:uppercase; color: var(--ink-3); margin:16px 0 8px; }
.tbl .yes{ color:#8ff0bb; }
.tbl .no{ color: var(--ink-3); }
.tbl .swatch{ margin-right:6px; display:inline-block; vertical-align:-3px; }
.diag-log .log-e{ color:#f2938f; }
.diag-log .log-err{ color:#f2938f; }
.diag-log .log-warn{ color:#f4c76a; }
.diag-log .log-new{ color:#8ff0bb; }

/* ── fit the top section to the window on wide screens ────────────────── */
@media (min-width:1200px){
  .hero{
    height: var(--hero-h, calc(100vh - 150px));
    min-height: 640px;
    grid-template-rows: min-content minmax(160px, 1fr) min-content;
  }
  .hero-results{ min-height:0; }
  .hemi-col{ flex-basis: clamp(210px, 27vh, 360px); }
  .seat-table{ max-height: clamp(150px, 21vh, 250px); }
  .hero .panel-foot{ padding:7px 14px; }
}
@media (max-width:1199px){ .hemi-col{ flex-basis:auto; } }
@media (max-width:1279px){ .topbar{ gap:12px; } .nav a{ padding:6px 8px; } }
@media (max-width:1400px){
  .span7,.span5{ grid-column: span 12; }
}
@media (max-width:1000px){
  .panel-head{ flex-wrap:wrap; row-gap:8px; }
  .right-tools{ flex-wrap:wrap; row-gap:8px; min-width:0; }
  .right-tools .mini-search{ flex:1 1 130px; width:auto; min-width:0; }
  .right-tools .ctl select{ max-width:150px; }
  .geomseg{ margin-right:0; }
}
@media (max-width:760px){
  .brand{ min-width:0; flex:1 1 auto; }
  .brand-text{ min-width:0; }
  .livebox{ margin-left:0; }
  .level-note{ flex-basis:100%; }
  .d-row, .d-bloc{ grid-template-columns: 1fr 52px 50px 54px; }
  .th-row{ grid-template-columns: minmax(0,1fr) 50px 104px; }
  .th-bar{ display:none; }
  .path{ grid-template-columns: minmax(0,1fr) 30px 86px; }
  .path-bar{ display:none; }
  .tbl-cmp .rt-sub{ max-width:180px; }
}
