.live-izbori-app {
  --live-bg: #09162b;
  --live-card-bg: #10223d;
  --live-card-alt: #0c1c33;
  --live-text: #f4f7fc;
  --live-muted: #a8b2c2;
  --live-current: #54a7ff;
  --live-updating: #ee4d57;
  --live-positive: #55cf6a;
  --live-previous: #8995a6;
  --live-border: rgba(214, 229, 251, .22);
  --live-gap: clamp(8px, .9vw, 16px);
  --live-card-radius: 7px;
  box-sizing: border-box;
  position: relative;
  width: 100%;
  min-height: 100vh;
  padding: clamp(10px, 1.2vw, 24px);
  color: var(--live-text);
  background: var(--live-bg);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.2;
  isolation: isolate;
}

.live-izbori-app *,
.live-izbori-app *::before,
.live-izbori-app *::after { box-sizing: border-box; }
.live-izbori-app img { display: block; max-width: 100%; height: auto; object-fit: contain; }
.live-izbori-app--fullscreen { width: 100vw; min-height: 100vh; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.live-izbori-app--error { display: grid; min-height: 16rem; place-items: center; color: var(--live-text); font-weight: 700; }

.live-izbori-header {
  --live-header-height: clamp(48px, 5vh, 58px);
  position: relative;
  display: block;
  height: var(--live-header-height);
  padding: 0 clamp(8px, .7vw, 12px);
  overflow: hidden;
  isolation: isolate;
  margin-bottom: var(--live-gap);
  border: 1px solid var(--live-border);
  border-radius: var(--live-card-radius);
  background: #102442;
}
.live-izbori-header .live-izbori-header__ribbon { position: absolute; inset: 0; z-index: 0; display: block; width: 100%; height: 100%; opacity: .72; object-fit: cover; object-position: right top; pointer-events: none; }
.live-izbori-header__content { position: relative; z-index: 1; display: grid; width: 100%; height: 100%; min-height: 0; grid-template-columns: minmax(0, 1fr) minmax(116px, 11.5vw) auto minmax(116px, 11.5vw) minmax(0, 1fr); column-gap: clamp(6px, .7vw, 12px); align-items: center; }
.live-izbori-header__left-rail, .live-izbori-header__clock-zone, .live-izbori-header__processed-zone, .live-izbori-header__brand, .live-izbori-header__stations-zone, .live-izbori-header__status-zone { display: flex; min-width: 0; height: 100%; align-items: center; }
.live-izbori-header__left-rail, .live-izbori-header__clock-zone { justify-content: flex-start; gap: clamp(6px, .65vw, 11px); }
.live-izbori-header__left-rail { min-width: 0; }
.live-izbori-header__processed-zone { justify-content: flex-end; }
.live-izbori-header__stations-zone { justify-content: flex-start; }
.live-izbori-header__brand { justify-content: center; gap: clamp(3px, .35vw, 6px); }
.live-izbori-header__status-zone { justify-content: flex-end; }
.live-izbori-header img { display: block; object-fit: contain; object-position: center; }
.live-izbori-header .live-izbori-header__ribbon { object-fit: cover; object-position: right top; }
.live-izbori-header__partner-box { display: flex; flex: 0 0 auto; align-items: center; justify-content: center; }
.live-izbori-header__partner-box--dns { width: clamp(48px, 5.1vw, 76px); height: clamp(13px, 1.35vw, 20px); }
.live-izbori-header__partner-box--nps { width: clamp(72px, 7.6vw, 116px); height: clamp(11px, 1.15vw, 17px); margin-right: clamp(4px, .55vw, 10px); }
.live-izbori-header .live-izbori-header__partner { display: block; width: 100%; height: 100%; object-fit: contain; }
.live-izbori-header__emblem { display: flex; width: clamp(34px, 3vw, 42px); height: clamp(34px, 3vw, 42px); flex: 0 0 auto; align-items: center; justify-content: center; margin-right: clamp(3px, .35vw, 6px); color: var(--live-text); font-size: clamp(16px, 1.6vw, 24px); font-weight: 800; letter-spacing: .07em; }
.live-izbori-header__emblem img { display: block; width: 100%; height: 100%; object-fit: contain; }
.live-izbori-header__election-logo { display: flex; width: clamp(34px, 3.4vw, 48px); height: clamp(34px, 3.4vw, 48px); flex: 0 0 auto; align-items: center; justify-content: center; color: var(--live-text); font-size: clamp(18px, 2.4vw, 36px); font-weight: 400; letter-spacing: .04em; }
.live-izbori-header__election-logo strong { color: #d42b3b; }
.live-izbori-header__election-logo img { display: block; width: 100%; height: 100%; object-fit: contain; }
.live-izbori-clock { position: relative; display: flex; min-width: 0; height: 100%; align-items: center; color: var(--live-text); font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace; font-size: clamp(13px, 1.15vw, 20px); font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: 0; line-height: 1; white-space: nowrap; }
.live-izbori-clock__digit { position: relative; display: flex; width: .78em; height: 1.15em; flex: 0 0 .78em; align-items: center; justify-content: center; overflow: hidden; text-align: center; }
.live-izbori-clock__old, .live-izbori-clock__current { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; line-height: 1; }
.live-izbori-clock__old { opacity: 0; }
.live-izbori-clock__separator { display: flex; width: .42em; flex: 0 0 .42em; align-items: center; justify-content: center; color: var(--live-muted); }
.live-izbori-clock__digit.is-rolling .live-izbori-clock__old { animation: live-izbori-clock-roll-out 300ms ease-in 1; }
.live-izbori-clock__digit.is-rolling .live-izbori-clock__current { animation: live-izbori-clock-roll-in 300ms ease-out 1; }
.live-izbori-global-total { display: flex; min-width: 0; align-items: center; gap: clamp(3px, .35vw, 6px); color: var(--live-text); font-variant-numeric: tabular-nums; line-height: 1; white-space: nowrap; }
.live-izbori-global-total__label { flex: 0 0 auto; color: var(--live-text); font-size: clamp(10px, .78vw, 14px); font-weight: 800; letter-spacing: .03em; }
.live-izbori-global-total .live-izbori-total__delta { margin-right: 0; font-size: clamp(10px, .72vw, 14px); }
.live-izbori-global-total .live-izbori-number__previous { font-size: clamp(11px, .82vw, 16px); line-height: 1; }
.live-izbori-global-total .live-izbori-number__current { font-size: clamp(14px, 1vw, 20px); line-height: 1; }
.live-izbori-header-info { display: grid; min-width: 0; align-content: center; gap: clamp(2px, .18vw, 4px); color: var(--live-text); font-variant-numeric: tabular-nums; line-height: 1; white-space: nowrap; }
.live-izbori-header__processed-zone .live-izbori-header-info { justify-items: end; text-align: right; }
.live-izbori-header__stations-zone .live-izbori-header-info { justify-items: start; text-align: left; }
.live-izbori-header-info__label { color: var(--live-text); font-size: clamp(9px, .64vw, 12px); font-weight: 800; letter-spacing: .045em; }
.live-izbori-header-info__value { color: var(--live-current); font-size: clamp(14px, 1vw, 20px); font-weight: 800; line-height: 1; opacity: 1; transition: opacity 180ms ease, color 180ms ease; }
.live-izbori-processed-percentage.is-updating .live-izbori-header-info__value { color: var(--live-text); opacity: .58; }
.live-izbori-header__candidate-info { display: flex; min-width: 0; align-items: center; justify-content: center; gap: clamp(8px, .8vw, 14px); }
.live-izbori-header__candidate-info .live-izbori-header-info { justify-items: center; text-align: center; }
.live-izbori-app--election-president_rs .live-izbori-header__content,
.live-izbori-app--election-presidency_bih_rs .live-izbori-header__content { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); }
.live-izbori-app--election-president_rs .live-izbori-header__left-rail,
.live-izbori-app--election-presidency_bih_rs .live-izbori-header__left-rail { grid-column: 1; grid-row: 1; justify-content: flex-start; gap: 20px; }
.live-izbori-app--election-president_rs .live-izbori-header__brand,
.live-izbori-app--election-presidency_bih_rs .live-izbori-header__brand { grid-column: 2; grid-row: 1; }
.live-izbori-app--election-president_rs .live-izbori-header__status-zone,
.live-izbori-app--election-presidency_bih_rs .live-izbori-header__status-zone { grid-column: 3; grid-row: 1; }

@media (min-width: 769px) {
  /* Candidate-election desktop rail: keep the clock at the far-left edge,
     followed by the existing 20px gap and the processed-info group. */
  .live-izbori-app--election-president_rs .live-izbori-header__clock-zone,
  .live-izbori-app--election-presidency_bih_rs .live-izbori-header__clock-zone { order: -1; }
}

.live-izbori-status { position: relative; display: flex; min-width: 0; max-width: 100%; height: 100%; align-items: center; justify-content: flex-end; gap: 9px; color: #d5f4d9; font-size: clamp(13px, 1.15vw, 17px); font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: .08em; line-height: 1; overflow-wrap: anywhere; text-align: right; }
.live-izbori-status i { width: clamp(11px, .78vw, 12px); height: clamp(11px, .78vw, 12px); flex: 0 0 auto; border-radius: 50%; background: #55cf6a; box-shadow: 0 0 0 4px rgba(85,207,106,.17); animation: live-izbori-live-pulse 1.9s ease-in-out infinite; }
.live-izbori-status.is-offline { color: #ffd1d4; }
.live-izbori-status.is-offline i { background: #ee4d57; box-shadow: 0 0 0 3px rgba(238,77,87,.17); animation: none; }
.live-izbori-election-tabs { display: flex; width: max-content; max-width: 100%; margin: 0 auto var(--live-gap); overflow: hidden; border: 1px solid var(--live-border); border-radius: 999px; background: var(--live-card-alt); }
.live-izbori-election-tabs__tab { display: block; padding: 5px 13px; color: var(--live-muted); font-size: clamp(11px, .75vw, 14px); font-weight: 800; letter-spacing: .035em; line-height: 1; text-decoration: none; transition: color 120ms linear, background 120ms linear; white-space: nowrap; }
.live-izbori-election-tabs__tab:hover, .live-izbori-election-tabs__tab:focus { color: var(--live-text); }
.live-izbori-election-tabs__tab.is-active { color: #fff; background: #24518a; }

.live-izbori-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: var(--live-gap); }
.live-izbori-card { display: flex; min-width: 0; flex-direction: column; border: 1px solid var(--live-border); border-radius: var(--live-card-radius); background: var(--live-card-bg); box-shadow: 0 2px 7px rgba(0,0,0,.14); overflow: visible; }
.live-izbori-card__header { display: flex; min-height: clamp(44px, 4.9vh, 54px); align-items: center; justify-content: space-between; gap: 9px; padding: clamp(6px, .55vw, 9px) clamp(9px, .85vw, 14px); border-bottom: 1px solid var(--live-border); background: var(--live-card-alt); }
.live-izbori-card__identity { display: flex; min-width: 0; max-width: 58%; flex: 1 1 58%; align-items: center; gap: clamp(5px, .45vw, 8px); }
.live-izbori-card__identity h2 { display: flex; min-width: 0; flex: 0 0 auto; align-items: center; margin: 0; padding-top: 0; padding-bottom: 0; color: var(--live-text); font-size: clamp(16px, 1.1vw, 23px); font-weight: 850; line-height: 1; text-transform: uppercase; }
.live-izbori-unit-processed { min-width: 0; overflow: hidden; color: var(--live-muted); font-size: clamp(16px, 1.1vw, 23px); font-weight: 750; font-variant-numeric: tabular-nums; line-height: 1; text-overflow: ellipsis; white-space: nowrap; }
.live-izbori-total { position: relative; display: flex; min-width: 0; flex: 0 1 42%; align-items: center; justify-content: flex-end; gap: clamp(5px, .45vw, 8px); line-height: 1; font-variant-numeric: tabular-nums; white-space: nowrap; }
.live-izbori-rows { display: grid; min-height: 0; flex: 1; grid-auto-rows: minmax(min-content, 1fr); align-content: stretch; }
.live-izbori-column { display: contents; min-width: 0; }
.live-izbori-row { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) max-content; align-items: center; gap: clamp(5px, .45vw, 8px); min-height: 0; padding: clamp(4px, .38vw, 6px) clamp(8px, .75vw, 12px); border-bottom: 1px solid rgba(214,229,251,.12); }
.live-izbori-row:last-child { border-bottom: 0; }
.live-izbori-row__name { min-width: 0; color: var(--live-text); font-size: clamp(12px, .78vw, 15px); font-weight: 600; line-height: 1.1; overflow-wrap: anywhere; }
.live-izbori-row__numbers { position: relative; display: flex; min-width: 0; align-items: baseline; justify-content: flex-end; gap: clamp(3px, .3vw, 6px); font-variant-numeric: tabular-nums; white-space: nowrap; }
.live-izbori-row__numbers { min-width: clamp(48px, 4.2vw, 76px); flex: 0 0 auto; line-height: 1; }
.live-izbori-number__previous { display: inline-block; color: var(--live-previous); font-size: clamp(10px, .63vw, 13px); font-weight: 650; transform: translateX(-2px); transition: opacity 130ms linear, transform 160ms ease; }
.live-izbori-number__current { display: inline-block; color: var(--live-current); font-size: clamp(16px, 1.15vw, 22px); font-weight: 800; letter-spacing: -.01em; transition: color 100ms linear, transform 120ms ease; }
.live-izbori-total .live-izbori-number__previous { font-size: clamp(14px, 1.05vw, 20px); line-height: 1; }
.live-izbori-total .live-izbori-number__current { font-size: clamp(27px, 2vw, 40px); line-height: 1; }
.live-izbori-total__delta { display: inline-block; margin-right: clamp(18px, 1.8vw, 30px); color: var(--live-muted); font-size: clamp(13px, .96vw, 19px); font-weight: 750; line-height: 1; font-variant-numeric: tabular-nums; white-space: nowrap; }
.live-izbori-total__delta.is-positive { color: var(--live-positive); }
.live-izbori-total__delta.is-negative { color: var(--live-updating); }
.live-izbori-total__delta[hidden] { display: none; }
.live-izbori-number.is-preparing .live-izbori-number__previous,
.live-izbori-total.is-preparing .live-izbori-number__previous,
.live-izbori-global-total.is-preparing .live-izbori-number__previous { opacity: 1; transform: translateX(-8px); }
.live-izbori-number.is-counting .live-izbori-number__current,
.live-izbori-total.is-counting .live-izbori-number__current,
.live-izbori-global-total.is-counting .live-izbori-number__current { color: var(--live-updating); }
.live-izbori-number.is-flashing .live-izbori-number__current,
.live-izbori-total.is-flashing .live-izbori-number__current,
.live-izbori-global-total.is-flashing .live-izbori-number__current { color: #fff; animation: live-izbori-flash 280ms ease-out 1; }
.live-izbori-app--hide-previous .live-izbori-number__previous { display: none; }
.live-izbori-app--hide-previous .live-izbori-total__delta { display: none; }

.live-izbori-candidates { display: grid; min-height: 0; grid-template-columns: repeat(var(--live-izbori-candidate-count, 2), minmax(0, 1fr)); gap: clamp(12px, 1.5vw, 28px); }
.live-izbori-candidates[data-live-izbori-candidate-count="2"] { --live-izbori-candidate-count: 2; }
.live-izbori-candidates[data-live-izbori-candidate-count="3"] { --live-izbori-candidate-count: 3; }
.live-izbori-candidate-card { display: grid; min-width: 0; min-height: 0; grid-template-rows: minmax(0, 1fr) auto; border: 1px solid var(--live-border); border-radius: var(--live-card-radius); background: var(--live-card-bg); box-shadow: 0 2px 7px rgba(0,0,0,.14); overflow: hidden; }
.live-izbori-candidate-card__portrait { display: flex; min-height: 0; align-items: flex-end; justify-content: center; padding: clamp(8px, .9vw, 18px) clamp(8px, 1vw, 22px) 0; background: linear-gradient(180deg, rgba(36,81,138,.28), rgba(9,22,43,0)); }
.live-izbori-candidate-card__portrait img { display: block; width: 100%; max-width: 100%; height: 100%; max-height: 100%; object-fit: contain; object-position: center bottom; }
.live-izbori-candidate-card__details { display: grid; justify-items: center; gap: clamp(5px, .5vw, 10px); padding: clamp(9px, .9vw, 18px); border-top: 1px solid var(--live-border); background: var(--live-card-alt); text-align: center; }
.live-izbori-candidate-card__details h2 { margin: 0; color: var(--live-text); font-size: clamp(18px, 1.65vw, 32px); font-weight: 800; line-height: 1.08; text-transform: uppercase; }
.live-izbori-candidate-card__total { display: flex; min-width: 0; align-items: baseline; justify-content: center; gap: clamp(6px, .55vw, 12px); font-variant-numeric: tabular-nums; white-space: nowrap; }
.live-izbori-candidate-card__total .live-izbori-number__previous { font-size: clamp(15px, 1.2vw, 24px); }
.live-izbori-candidate-card__total .live-izbori-number__current { font-size: clamp(38px, 4.2vw, 76px); line-height: .95; }
.live-izbori-candidate-card__percentage { margin: 0; color: var(--live-positive); font-size: clamp(22px, 2.1vw, 42px); font-weight: 800; font-variant-numeric: tabular-nums; line-height: 1; }
.live-izbori-candidate-bar { display: flex; min-height: clamp(16px, 1.75vh, 25px); gap: 2px; margin-top: clamp(8px, .8vw, 14px); overflow: hidden; border: 1px solid var(--live-border); border-radius: 999px; background: #15263e; }
.live-izbori-candidate-bar__segment { min-width: 0; flex: var(--live-izbori-candidate-percentage) 1 0; transition: flex-grow 260ms ease; }
.live-izbori-candidate-bar__segment:nth-child(1) { background: #3b82c4; }
.live-izbori-candidate-bar__segment:nth-child(2) { background: #5b9d7d; }
.live-izbori-candidate-bar__segment:nth-child(3) { background: #8b78b5; }
.live-izbori-app--election-president_rs .live-izbori-candidate-bar__segment:nth-child(1),
.live-izbori-app--election-presidency_bih_rs .live-izbori-candidate-bar__segment:nth-child(2) { background: #c93442; }
.live-izbori-app--election-president_rs .live-izbori-candidate-bar__segment:nth-child(2),
.live-izbori-app--election-presidency_bih_rs .live-izbori-candidate-bar__segment:nth-child(1) { background: #234b7d; }
.live-izbori-app--election-presidency_bih_rs .live-izbori-candidate-bar__segment:nth-child(3) { background: #4f86bd; }
.live-izbori-candidate-card__total.is-preparing .live-izbori-number__previous { opacity: 1; transform: translateX(-8px); }
.live-izbori-candidate-card__total.is-counting .live-izbori-number__current { color: var(--live-updating); }
.live-izbori-candidate-card__total.is-flashing .live-izbori-number__current { color: #fff; animation: live-izbori-flash 280ms ease-out 1; }

@keyframes live-izbori-flash { 0% { transform: scale(1); text-shadow: none; } 45% { transform: scale(1.12); text-shadow: 0 0 11px rgba(255,255,255,.62); } 100% { transform: scale(1); text-shadow: none; } }
@keyframes live-izbori-clock-roll-out { 0% { opacity: 1; transform: translateY(0); } 100% { opacity: 0; transform: translateY(-100%); } }
@keyframes live-izbori-clock-roll-in { 0% { opacity: .2; transform: translateY(100%); } 100% { opacity: 1; transform: translateY(0); } }
@keyframes live-izbori-live-pulse { 0%, 100% { box-shadow: 0 0 0 3px rgba(85,207,106,.17); } 50% { box-shadow: 0 0 0 6px rgba(85,207,106,.04); } }

@media (min-width: 900px) {
  /* Keep the left result rail readable while giving SVE IJ clear separation
     from the clock; the clock itself remains in its existing grid position. */
  .live-izbori-app--election-nsrs .live-izbori-global-total,
  .live-izbori-app--election-bih .live-izbori-global-total { margin-left: clamp(8px, .7vw, 14px); }
}

@media (min-width: 1900px) {
  /* The outer padding shifts the two support blocks away from the fixed,
     centered brand without moving that central grid column. */
  .live-izbori-app--election-nsrs .live-izbori-header__processed-zone,
  .live-izbori-app--election-bih .live-izbori-header__processed-zone { padding-right: 10px; }
  .live-izbori-app--election-nsrs .live-izbori-header__stations-zone,
  .live-izbori-app--election-bih .live-izbori-header__stations-zone { padding-left: 10px; }
}

@media (min-width: 900px) {
  .live-izbori-app { display: grid; height: 100vh; max-height: 100vh; grid-template-rows: auto auto minmax(0, 1fr); overflow: hidden; }
  .live-izbori-app--no-header { grid-template-rows: auto minmax(0, 1fr); }
  .live-izbori-grid { min-height: 0; height: 100%; grid-template-rows: repeat(3, minmax(0, 1fr)); grid-auto-rows: minmax(0, 1fr); }
  .live-izbori-card { min-height: 0; max-height: 100%; }
  .live-izbori-global-total { flex-wrap: nowrap; white-space: nowrap; }
  .live-izbori-global-total .live-izbori-total__delta { font-size: clamp(13px, .96vw, 19px); }
  .live-izbori-global-total .live-izbori-number__previous { font-size: clamp(14px, 1.05vw, 20px); }
  .live-izbori-global-total .live-izbori-number__current { font-size: clamp(27px, 2vw, 40px); }
  .live-izbori-header-info__label { font-size: clamp(10px, .72vw, 14px); }
  .live-izbori-header-info__value { font-size: clamp(16px, 1.15vw, 22px); }
  .live-izbori-app--election-bih .live-izbori-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: minmax(0, 1fr); grid-auto-rows: minmax(0, 1fr); }
  .live-izbori-app--election-bih .live-izbori-card { height: 100%; }
  .live-izbori-app--election-president_rs, .live-izbori-app--election-presidency_bih_rs { grid-template-rows: auto auto minmax(0, 1fr) auto; }
  .live-izbori-app--election-president_rs .live-izbori-candidates, .live-izbori-app--election-presidency_bih_rs .live-izbori-candidates { min-height: 0; height: 100%; }
}

/* At common broadcast widths the result rail needs more room than the two
   supporting CIK blocks. Keep the brand on the shared top rail and mirror the
   auxiliary information beneath it rather than shrinking result typography. */
@media (min-width: 900px) and (max-width: 1899px) {
  .live-izbori-app--election-nsrs .live-izbori-header,
  .live-izbori-app--election-bih .live-izbori-header { --live-header-height: 72px; }
  .live-izbori-app--election-nsrs .live-izbori-header__content,
  .live-izbori-app--election-bih .live-izbori-header__content { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); grid-template-rows: 42px 28px; column-gap: 8px; }
  .live-izbori-app--election-nsrs .live-izbori-header__left-rail,
  .live-izbori-app--election-bih .live-izbori-header__left-rail { grid-column: 1; grid-row: 1; }
  .live-izbori-app--election-nsrs .live-izbori-header__brand,
  .live-izbori-app--election-bih .live-izbori-header__brand { grid-column: 2; grid-row: 1; }
  .live-izbori-app--election-nsrs .live-izbori-header__status-zone,
  .live-izbori-app--election-bih .live-izbori-header__status-zone { grid-column: 3; grid-row: 1; }
  .live-izbori-app--election-nsrs .live-izbori-header__processed-zone,
  .live-izbori-app--election-bih .live-izbori-header__processed-zone { grid-column: 1; grid-row: 2; justify-content: flex-start; }
  .live-izbori-app--election-nsrs .live-izbori-header__processed-zone .live-izbori-header-info,
  .live-izbori-app--election-bih .live-izbori-header__processed-zone .live-izbori-header-info { justify-items: start; text-align: left; }
  .live-izbori-app--election-nsrs .live-izbori-header__stations-zone,
  .live-izbori-app--election-bih .live-izbori-header__stations-zone { grid-column: 3; grid-row: 2; justify-content: flex-end; }
  .live-izbori-app--election-nsrs .live-izbori-header__stations-zone .live-izbori-header-info,
  .live-izbori-app--election-bih .live-izbori-header__stations-zone .live-izbori-header-info { justify-items: end; text-align: right; }
}

@media (min-width: 900px) {
  .live-izbori-card--multi-column .live-izbori-rows { grid-template-columns: repeat(var(--live-izbori-column-count), minmax(0, 1fr)); column-gap: clamp(2px, .25vw, 5px); }
  .live-izbori-card--multi-column .live-izbori-column { display: grid; min-width: 0; min-height: 0; grid-template-rows: repeat(4, minmax(0, 1fr)); }
  .live-izbori-card--multi-column .live-izbori-row { padding: clamp(3px, .28vw, 5px) clamp(4px, .3vw, 7px); gap: clamp(3px, .25vw, 5px); }
  .live-izbori-app--single-unit .live-izbori-grid { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); grid-auto-rows: minmax(0, 1fr); }
  .live-izbori-app--single-unit .live-izbori-card { height: 100%; }
  .live-izbori-app--single-unit .live-izbori-card__header { min-height: clamp(70px, 7.6vh, 96px); padding: clamp(10px, .9vw, 16px) clamp(14px, 1.35vw, 24px); }
  .live-izbori-app--single-unit .live-izbori-card__header h2 { font-size: clamp(20px, 1.55vw, 30px); }
  .live-izbori-app--single-unit .live-izbori-total { gap: clamp(8px, .7vw, 13px); }
  .live-izbori-app--single-unit .live-izbori-total .live-izbori-number__previous { font-size: clamp(16px, 1.2vw, 24px); }
  .live-izbori-app--single-unit .live-izbori-total .live-izbori-number__current { font-size: clamp(38px, 3vw, 58px); }
  .live-izbori-app--single-unit .live-izbori-total__delta { font-size: clamp(19px, 1.44vw, 29px); }
  .live-izbori-app--single-unit .live-izbori-card--multi-column .live-izbori-rows { column-gap: clamp(8px, .8vw, 16px); }
  .live-izbori-app--single-unit .live-izbori-card--multi-column .live-izbori-row { padding: clamp(8px, .72vw, 14px) clamp(12px, 1vw, 20px); gap: clamp(8px, .65vw, 13px); }
  .live-izbori-app--single-unit .live-izbori-row__name { font-size: clamp(17px, 1.28vw, 26px); }
  .live-izbori-app--single-unit .live-izbori-row__numbers { min-width: clamp(82px, 7vw, 136px); gap: clamp(5px, .5vw, 10px); }
  .live-izbori-app--single-unit .live-izbori-number__previous { font-size: clamp(13px, .95vw, 19px); }
  .live-izbori-app--single-unit .live-izbori-number__current { font-size: clamp(26px, 2vw, 40px); }
  /* IJ3's 14-row half defines the shared, readable BiH TV density. */
  .live-izbori-app--election-bih .live-izbori-card--multi-column .live-izbori-column { grid-template-rows: repeat(14, minmax(0, 1fr)); }
  .live-izbori-app--election-bih .live-izbori-card--multi-column .live-izbori-row { padding: 1px 5px; gap: 3px; }
  .live-izbori-app--election-bih .live-izbori-row__name { display: block; overflow-wrap: anywhere; font-size: clamp(10.5px, .78vw, 15px); line-height: 1.08; white-space: normal; }
  .live-izbori-app--election-bih .live-izbori-row__numbers { min-width: clamp(62px, 4.7vw, 90px); gap: 3px; }
  /* Keep the compact BiH sizing inside entity rows only. Totals inherit the
     shared NSRS total typography, including SVE IJ in the top header. */
  .live-izbori-app--election-bih .live-izbori-row__numbers .live-izbori-number__previous { font-size: clamp(11px, .68vw, 13px); }
  .live-izbori-app--election-bih .live-izbori-row__numbers .live-izbori-number__current { font-size: clamp(16px, 1.14vw, 22px); }
}

@media (min-width: 769px) and (max-width: 899px) {
  .live-izbori-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .live-izbori-app--single-unit .live-izbori-grid { grid-template-columns: minmax(0, 1fr); }
  .live-izbori-header { --live-header-height: 72px; }
  .live-izbori-header__content { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); grid-template-rows: 36px 28px; column-gap: 8px; }
  .live-izbori-header__left-rail { grid-column: 1; grid-row: 1; }
  .live-izbori-header__brand { grid-column: 2; grid-row: 1; }
  .live-izbori-header__status-zone { grid-column: 3; grid-row: 1; }
  .live-izbori-header__processed-zone { grid-column: 1; grid-row: 2; justify-content: flex-start; }
  .live-izbori-header__processed-zone .live-izbori-header-info { justify-items: start; text-align: left; }
  .live-izbori-header__stations-zone { grid-column: 3; grid-row: 2; justify-content: flex-end; }
  .live-izbori-header__stations-zone .live-izbori-header-info { justify-items: end; text-align: right; }
}

@media (max-width: 768px) {
  .live-izbori-app { display: block; height: auto; min-height: 100vh; max-height: none; padding: 9px; overflow: visible; }
  .live-izbori-app--fullscreen { width: 100%; margin: 0; }
  .live-izbori-election-tabs { margin-bottom: 9px; }
  .live-izbori-election-tabs__tab { padding: 6px 10px; font-size: 11px; }
  .live-izbori-header { --live-header-height: 72px; margin-bottom: 9px; padding: 0 8px; }
  .live-izbori-header__content { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); grid-template-rows: 34px 28px; column-gap: 5px; }
  .live-izbori-header__left-rail { grid-column: 1; grid-row: 1; }
  .live-izbori-header__brand { grid-column: 2; grid-row: 1; }
  .live-izbori-header__status-zone { grid-column: 3; grid-row: 1; }
  .live-izbori-header__processed-zone { grid-column: 1; grid-row: 2; justify-content: flex-start; }
  .live-izbori-header__processed-zone .live-izbori-header-info { justify-items: start; text-align: left; }
  .live-izbori-header__stations-zone { grid-column: 3; grid-row: 2; justify-content: flex-end; }
  .live-izbori-header__stations-zone .live-izbori-header-info { justify-items: end; text-align: right; }
  .live-izbori-header__clock-zone { gap: 4px; }
  .live-izbori-header__brand { gap: 2px; }
  .live-izbori-header__partner-box--dns { width: 38px; height: 11px; }
  .live-izbori-header__partner-box--nps { width: 58px; height: 9px; margin-right: 3px; }
  .live-izbori-header__emblem { width: 28px; height: 28px; margin-right: 3px; }
  .live-izbori-header__election-logo { width: 30px; height: 30px; font-size: 18px; }
  .live-izbori-status { gap: 5px; font-size: 10px; letter-spacing: .04em; }
  .live-izbori-status i { width: 7px; height: 7px; box-shadow: 0 0 0 3px rgba(85,207,106,.17); }
  .live-izbori-clock { font-size: 12px; }
  .live-izbori-global-total { gap: 2px; flex-wrap: wrap; row-gap: 1px; white-space: normal; }
  .live-izbori-global-total__label { font-size: 9px; }
  .live-izbori-global-total .live-izbori-total__delta { font-size: 9px; }
  .live-izbori-global-total .live-izbori-number__previous { font-size: 10px; }
  .live-izbori-global-total .live-izbori-number__current { font-size: 12px; }
  .live-izbori-header-info { gap: 1px; }
  .live-izbori-header-info__label { font-size: 8px; letter-spacing: .035em; }
  .live-izbori-header-info__value { font-size: 12px; }
  .live-izbori-header__candidate-info { gap: 7px; }
  .live-izbori-app--election-president_rs .live-izbori-header, .live-izbori-app--election-presidency_bih_rs .live-izbori-header { --live-header-height: 80px; }
  .live-izbori-app--election-president_rs .live-izbori-header__content, .live-izbori-app--election-presidency_bih_rs .live-izbori-header__content { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); grid-template-rows: 34px 36px; }
  .live-izbori-app--election-president_rs .live-izbori-header__left-rail, .live-izbori-app--election-presidency_bih_rs .live-izbori-header__left-rail,
  .live-izbori-app--election-president_rs .live-izbori-header__clock-zone, .live-izbori-app--election-presidency_bih_rs .live-izbori-header__clock-zone { display: contents; }
  .live-izbori-app--election-president_rs .live-izbori-clock, .live-izbori-app--election-presidency_bih_rs .live-izbori-clock { grid-column: 1; grid-row: 1; height: auto; justify-self: start; align-self: center; }
  .live-izbori-app--election-president_rs .live-izbori-header__brand, .live-izbori-app--election-presidency_bih_rs .live-izbori-header__brand { grid-column: 2; grid-row: 1; }
  .live-izbori-app--election-president_rs .live-izbori-header__candidate-info, .live-izbori-app--election-presidency_bih_rs .live-izbori-header__candidate-info { grid-column: 1 / 4; grid-row: 2; }
  .live-izbori-app--election-president_rs .live-izbori-header__status-zone, .live-izbori-app--election-presidency_bih_rs .live-izbori-header__status-zone { grid-column: 3; grid-row: 1; }
  .live-izbori-grid { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; grid-auto-rows: auto; align-items: start; gap: 9px; }
  .live-izbori-card { height: auto; min-height: 0; max-height: none; align-self: start; }
  .live-izbori-card__header { min-height: 60px; }
  .live-izbori-card__identity { flex-wrap: wrap; align-content: center; row-gap: 2px; }
  .live-izbori-card__identity h2 { font-size: 17px; font-weight: 850; }
  .live-izbori-unit-processed { flex: 0 0 auto; font-size: 17px; }
  .live-izbori-rows { display: block; flex: none; height: auto; min-height: 0; max-height: none; }
  .live-izbori-column { display: block; height: auto; min-height: 0; max-height: none; }
  .live-izbori-row { min-height: 41px; padding: 6px 10px; }
  .live-izbori-column .live-izbori-row:last-child { border-bottom: 1px solid rgba(214,229,251,.12); }
  .live-izbori-column:last-child .live-izbori-row:last-child { border-bottom: 0; }
  .live-izbori-row__name { font-size: 14px; }
  .live-izbori-number__current { font-size: 20px; }
  .live-izbori-total .live-izbori-number__current { font-size: 24px; }
  .live-izbori-candidates { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .live-izbori-candidate-card { min-height: 420px; grid-template-rows: minmax(290px, 1fr) auto; }
  .live-izbori-candidate-card__portrait { height: 290px; }
  .live-izbori-candidate-card__details h2 { font-size: 21px; }
  .live-izbori-candidate-card__total .live-izbori-number__current { font-size: 50px; }
  .live-izbori-candidate-card__percentage { font-size: 27px; }
}

@media (max-width: 768px) {
  /* Geographic mobile summaries share one horizontal, three-column rail. */
  .live-izbori-app--election-nsrs .live-izbori-header,
  .live-izbori-app--election-bih .live-izbori-header { --live-header-height: 92px; }
  .live-izbori-app--election-nsrs .live-izbori-header__content,
  .live-izbori-app--election-bih .live-izbori-header__content { grid-template-rows: 34px 50px; }
  .live-izbori-app--election-nsrs .live-izbori-header__left-rail,
  .live-izbori-app--election-bih .live-izbori-header__left-rail,
  .live-izbori-app--election-nsrs .live-izbori-header__clock-zone,
  .live-izbori-app--election-bih .live-izbori-header__clock-zone { display: contents; }
  .live-izbori-app--election-nsrs .live-izbori-clock,
  .live-izbori-app--election-bih .live-izbori-clock { grid-column: 1; grid-row: 1; height: auto; justify-self: start; align-self: center; }
  .live-izbori-app--election-nsrs .live-izbori-global-total,
  .live-izbori-app--election-bih .live-izbori-global-total { grid-column: 2; grid-row: 2; align-content: center; justify-content: center; justify-self: stretch; flex-wrap: wrap; gap: 3px; row-gap: 2px; white-space: normal; }
  .live-izbori-app--election-nsrs .live-izbori-global-total__label,
  .live-izbori-app--election-bih .live-izbori-global-total__label { flex-basis: 100%; color: var(--live-text); font-size: clamp(11px, 3.4vw, 14px); text-align: center; }
  .live-izbori-app--election-nsrs .live-izbori-global-total .live-izbori-total__delta,
  .live-izbori-app--election-bih .live-izbori-global-total .live-izbori-total__delta { font-size: clamp(11px, 3.1vw, 14px); }
  .live-izbori-app--election-nsrs .live-izbori-global-total .live-izbori-number__previous,
  .live-izbori-app--election-bih .live-izbori-global-total .live-izbori-number__previous { font-size: clamp(13px, 3.8vw, 17px); }
  .live-izbori-app--election-nsrs .live-izbori-global-total .live-izbori-number__current,
  .live-izbori-app--election-bih .live-izbori-global-total .live-izbori-number__current { font-size: clamp(23px, 6.4vw, 30px); }
  .live-izbori-app--election-nsrs .live-izbori-header__processed-zone,
  .live-izbori-app--election-bih .live-izbori-header__processed-zone { grid-column: 1; grid-row: 2; justify-content: center; }
  .live-izbori-app--election-nsrs .live-izbori-header__processed-zone .live-izbori-header-info,
  .live-izbori-app--election-bih .live-izbori-header__processed-zone .live-izbori-header-info { justify-items: center; text-align: center; }
  .live-izbori-app--election-nsrs .live-izbori-header__stations-zone,
  .live-izbori-app--election-bih .live-izbori-header__stations-zone { grid-column: 3; grid-row: 2; justify-content: center; }
  .live-izbori-app--election-nsrs .live-izbori-header__stations-zone .live-izbori-header-info,
  .live-izbori-app--election-bih .live-izbori-header__stations-zone .live-izbori-header-info { justify-items: center; text-align: center; }
}

@media (max-width: 480px) {
  .live-izbori-header { --live-header-height: 76px; }
  .live-izbori-header__content { grid-template-rows: 35px 31px; }
  .live-izbori-header__clock-zone, .live-izbori-header__brand, .live-izbori-header__status-zone { height: 31px; }
	.live-izbori-global-total { gap: 3px; flex-wrap: nowrap; white-space: nowrap; }
  .live-izbori-global-total__label { font-size: 10px; }
  .live-izbori-global-total .live-izbori-total__delta { font-size: 10px; }
  .live-izbori-global-total .live-izbori-number__previous { font-size: 11px; }
  .live-izbori-global-total .live-izbori-number__current { font-size: 13px; }
  .live-izbori-header-info__label { font-size: 8px; }
  .live-izbori-header-info__value { font-size: 12px; }
  .live-izbori-app--election-president_rs .live-izbori-header, .live-izbori-app--election-presidency_bih_rs .live-izbori-header { --live-header-height: 90px; }
  .live-izbori-app--election-president_rs .live-izbori-header__content, .live-izbori-app--election-presidency_bih_rs .live-izbori-header__content { grid-template-rows: 35px 43px; }
  .live-izbori-unit-processed { font-size: 17px; }

  .live-izbori-app--election-nsrs .live-izbori-header,
  .live-izbori-app--election-bih .live-izbori-header { --live-header-height: 93px; }
  .live-izbori-app--election-nsrs .live-izbori-header__content,
  .live-izbori-app--election-bih .live-izbori-header__content { grid-template-rows: 35px 50px; }
}

@media (max-width: 360px) {
  /* Preserve the three-column summary rail on narrow phones by reducing
     only its typography, never by stacking the three summary blocks. */
  .live-izbori-app--election-nsrs .live-izbori-global-total__label,
  .live-izbori-app--election-bih .live-izbori-global-total__label { font-size: 10px; }
  .live-izbori-app--election-nsrs .live-izbori-global-total .live-izbori-total__delta,
  .live-izbori-app--election-bih .live-izbori-global-total .live-izbori-total__delta { font-size: 9px; }
  .live-izbori-app--election-nsrs .live-izbori-global-total .live-izbori-number__previous,
  .live-izbori-app--election-bih .live-izbori-global-total .live-izbori-number__previous { font-size: 11px; }
  .live-izbori-app--election-nsrs .live-izbori-global-total .live-izbori-number__current,
  .live-izbori-app--election-bih .live-izbori-global-total .live-izbori-number__current { font-size: 20px; }
  .live-izbori-app--election-nsrs .live-izbori-header-info__label,
  .live-izbori-app--election-bih .live-izbori-header-info__label { font-size: 7px; }
  .live-izbori-app--election-nsrs .live-izbori-header-info__value,
  .live-izbori-app--election-bih .live-izbori-header-info__value { font-size: 11px; }
}

@media (prefers-reduced-motion: reduce) {
  .live-izbori-app *, .live-izbori-app *::before, .live-izbori-app *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
