/* Framing bars. Colours come from the existing theme tokens; the three framing colours also differ in lightness so the bar is readable without colour. */
:root{--fr-fav:#2f7d57;--fr-neu:#8a948d;--fr-unf:#b4473c}
[data-theme=indigo]{--fr-fav:#4fb383;--fr-neu:#8d9a92;--fr-unf:#e0786c}
.fr-lens{margin:0 0 18px;padding:14px 16px;background:var(--panel);border:1px solid var(--line);color:var(--ink)}
.fr-top{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:10px}
.fr-label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.fr-tabs{display:inline-flex;background:var(--bg2);border-radius:999px;padding:3px}
.fr-tabs button{border:0;background:none;color:var(--muted);font:inherit;font-size:13px;font-weight:600;padding:6px 16px;border-radius:999px;cursor:pointer;min-height:32px}
.fr-tabs button[aria-pressed=true]{background:var(--panel);color:var(--ink);box-shadow:0 0 0 1px var(--line)}
.fr-chips{display:flex;flex-wrap:wrap;gap:8px}
.fr-chips button{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line2);background:var(--panel);color:var(--ink);font:inherit;font-size:13px;font-weight:600;padding:6px 13px;border-radius:999px;cursor:pointer;min-height:34px}
.fr-chips button i{width:9px;height:9px;border-radius:50%;background:var(--c)}
.fr-chips button[aria-pressed=true]{background:var(--ink);color:var(--panel);border-color:var(--ink)}
.fr-tabs button:focus-visible,.fr-chips button:focus-visible,.fr-compare summary:focus-visible,.fr-how summary:focus-visible{outline:2px solid var(--mark);outline-offset:2px}
.fr-overview{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.fr-overview h3{margin:0 0 12px;font-size:15px}
.fr-orow{margin-bottom:12px}
.fr-oname{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;font-size:14px;margin-bottom:5px}
.fr-oname small{color:var(--muted);font-size:12px}
.fr-oname em{margin-left:auto;font-style:normal;color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}
.fr-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--c);align-self:center}
.fr-none{display:block;font-size:12px;color:var(--muted);padding:6px 0}
.fr-bar{display:flex;height:26px;overflow:hidden;border-radius:3px;background:var(--bg2);gap:2px}
.fr-bar.thin{height:18px}
.fr-seg{display:flex;align-items:center;justify-content:center;min-width:0;font-size:12px;font-weight:700;color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap}
.fr-seg.fav{background:var(--fr-fav)}.fr-seg.neu{background:var(--fr-neu);color:#111}.fr-seg.unf{background:var(--fr-unf)}
[data-theme=indigo] .fr-seg.fav,[data-theme=indigo] .fr-seg.unf{color:#0d1411}
.fr-story{margin:12px 0 0}
.fr-head{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:13px;margin-bottom:6px}
.fr-head span:last-child{color:var(--muted);font-size:12px}
.fr-compare{margin-top:8px;font-size:13px}
.fr-compare summary,.fr-how summary{cursor:pointer;font-weight:600;color:var(--ink2)}
.fr-compare ul{list-style:none;margin:8px 0 0;padding:0}
.fr-compare li{display:grid;grid-template-columns:minmax(80px,130px) 1fr auto;gap:4px 12px;align-items:baseline;padding:8px 0;border-top:1px solid var(--line)}
.fr-src{font-weight:700;color:var(--ink2);overflow-wrap:anywhere}
.fr-compare li a{color:var(--ink);overflow-wrap:anywhere}
.fr-chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;border:1px solid currentColor;white-space:nowrap;margin-left:4px}
.fr-chip::before{content:'';width:7px;height:7px;border-radius:50%;background:currentColor}
.fr-chip.fav{color:var(--fr-fav)}.fr-chip.neu{color:var(--muted)}.fr-chip.unf{color:var(--fr-unf)}
.fr-foot,.fr-note,.fr-how p{font-size:12px;line-height:1.55;color:var(--muted);margin:8px 0 0}
.fr-how{margin-top:12px;font-size:13px}
@media (max-width:620px){
  .fr-lens{padding:12px}
  .fr-compare li{grid-template-columns:1fr auto}
  .fr-compare li a{grid-column:1/-1;order:3}
}
/* v2: always-on bars, compact cards, "not mentioned" and "limited data" states */
.fr-seg.none{background:repeating-linear-gradient(45deg,var(--bg2),var(--bg2) 6px,var(--line) 6px,var(--line) 12px);color:var(--muted);font-weight:600}
.fr-bar.empty{gap:0}
.fr-bar{height:28px}
.fr-story.compact{margin:10px 0 2px}
.fr-story.compact .fr-bar{height:22px}
.fr-story.compact .fr-seg{font-size:11px}
.fr-limited{font-style:normal;font-size:11px;font-weight:700;color:var(--muted);border:1px dashed var(--line2);border-radius:999px;padding:1px 8px}
.fr-legend{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;margin:5px 0 0;font-size:12px;color:var(--muted)}
.fr-legend i{width:8px;height:8px;border-radius:50%;margin-right:-5px}
.fr-legend i.fav{background:var(--fr-fav)}.fr-legend i.neu{background:var(--fr-neu)}.fr-legend i.unf{background:var(--fr-unf)}
.fr-chip.none{color:var(--muted);border-style:dashed;font-weight:600}
.fr-chip.none::before{background:transparent;border:1px solid currentColor;width:5px;height:5px}
.v6-story .fr-story,.it .fr-story,.dlead .fr-story,.dl .fr-story,.blist .fr-story,.sotd .fr-story,.clu .fr-story{max-width:560px}
/* v3: party-coloured lean bars */
.fr-seg.neu{background:#eceee9;color:#2a2f2b}
[data-theme=indigo] .fr-seg.neu{background:#d9ddd6;color:#1a1f1b}
.fr-seg.party{text-shadow:none}
.fr-bar{gap:0;border-radius:4px;box-shadow:inset 0 0 0 1px var(--line)}
.fr-seg + .fr-seg{border-left:2px solid var(--panel)}
.fr-legend span{display:inline-flex;align-items:center;gap:5px}
.fr-legend i{margin-right:0}
.fr-legend i.neu,.fr-key i.neu{background:#eceee9;box-shadow:inset 0 0 0 1px var(--line2)}
.fr-key{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;font-weight:600}
.fr-key span{display:inline-flex;align-items:center;gap:6px}
.fr-key i{width:12px;height:12px;border-radius:3px}
.fr-key small{font-weight:500;color:var(--muted)}
.fr-track{height:12px;border-radius:999px;background:var(--bg2);overflow:hidden}
.fr-track i{display:block;height:100%;border-radius:999px}
.fr-chip.party{color:var(--ink);border-color:var(--c)}
.fr-chip.party::before{background:var(--c)}
/* v4: separate party segments; alliance members grouped in the key */
.fr-side{gap:10px!important;padding:3px 10px;border:1px solid var(--line);border-radius:999px}
.fr-side small{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
/* v5: story cards, contrast strip, blindspot rail, slimmer homepage */
.v6-srcn,.srcn{font-size:12px;font-weight:700;color:var(--ink2);margin:8px 0 0}
.srcn{margin:0;padding:1px 8px;border:1px solid var(--line2);border-radius:999px}
.fr-contrast{margin:34px 0 10px;padding:26px 0 8px;border-top:2px solid var(--ink)}
.fr-contrast-list{display:grid;gap:18px;margin-top:16px}
.fr-cpair{padding:16px;background:var(--panel);border:1px solid var(--line)}
.fr-cpair-sides{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fr-cside{padding:12px 14px;border-left:4px solid var(--c);background:var(--bg2);display:flex;flex-direction:column;gap:6px}
.fr-cside .fr-chip{align-self:flex-start;margin:0}
.fr-cside b{font-size:12px;color:var(--muted)}
.fr-cside a{font-family:Lora,Georgia,serif;font-size:18px;line-height:1.35;color:var(--ink);text-decoration:none}
.fr-cside a:hover{text-decoration:underline}
.fr-blindspot{margin:0 0 26px;padding:0 0 22px;border-bottom:1px solid var(--line)}
.fr-blind-title{font-family:Lora,Georgia,serif;font-size:24px;margin:6px 0 2px}
.fr-blind{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:12px}
.fr-blind li{padding:0 0 0 12px;border-left:4px solid var(--c)}
.fr-blind-tag{display:block;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:3px}
.fr-blind a{color:var(--ink);font-weight:600;line-height:1.4;text-decoration:none}
.fr-blind a:hover{text-decoration:underline}
/* hide sections that have nothing to show yet */
.row.spot:has(#deskart > .empty) .spotdesk{display:none}
.row.spot:has(#deskart > .empty) .spotpoll{grid-column:1/-1}
.editorial-formats>article:has(.editorial-empty){display:none}
.editorial-desk:has(.editorial-formats>article:nth-child(1) .editorial-empty):has(.editorial-formats>article:nth-child(2) .editorial-empty):has(.editorial-formats>article:nth-child(3) .editorial-empty){display:none}
#more-pulse{margin-top:28px}
@media (max-width:700px){
  .fr-cpair-sides{grid-template-columns:1fr}
  .fr-cside a{font-size:16px}
  /* first screen on phones goes to the news: search lives in the nav, the temperature widget sits further down */
  .v6-front .v6-search,.v6-front .v6-pulse-peek{display:none}
  .v6-front .v6-sectionhead h2{font-size:28px;line-height:1.15}
  .ticker{display:none}
}
.fr-legend span{margin-right:8px}
/* v6: flagship band (party heat, brief, explainers) above the Latest coverage / Election watch grid */
.v6-flagship{margin:26px 0 34px;padding:22px 0 8px;border-top:2px solid var(--ink);border-bottom:1px solid var(--line)}
.v6-flaghead{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 20px;margin-bottom:6px}
.v6-flaghead p{margin:0;font-size:14px;color:var(--muted)}
.v6-flagship .editorial-desk{margin:10px 0 18px;padding:18px 0 0;border-bottom:0}
/* v7: AI-checked badge, desk reasons, report link */
.fr-checked{font-style:normal;font-size:11px;font-weight:700;color:#1d6b4f;background:rgba(47,143,107,.12);border:1px solid rgba(47,143,107,.35);border-radius:999px;padding:1px 8px}
[data-theme=indigo] .fr-checked{color:#8fdcb8;background:rgba(80,200,150,.12);border-color:rgba(80,200,150,.35)}
.fr-why{grid-column:1/-1;margin:2px 0 0;font-size:12px;line-height:1.5;color:var(--muted)}
.fr-report{grid-column:1/-1;justify-self:start;font-size:11px;color:var(--muted);text-decoration:underline;text-underline-offset:2px}
.fr-compare .fr-why{font-size:12px!important;line-height:1.5!important;margin:2px 0 0!important;color:var(--muted)!important}
.fr-compare .fr-why b{font-weight:700;color:var(--ink2)}
.fr-compare .fr-report{font-size:11px!important;margin:0 0 2px}
