@font-face { font-family: 'Barlow'; src: url(fonts/barlow-400.woff2) format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Barlow'; src: url(fonts/barlow-600.woff2) format('woff2'); font-weight: 600; font-display: swap; }
@font-face { font-family: 'Barlow Condensed'; src: url(fonts/barlowcondensed-600.woff2) format('woff2'); font-weight: 600; font-display: swap; }
@font-face { font-family: 'Barlow Condensed'; src: url(fonts/barlowcondensed-700.woff2) format('woff2'); font-weight: 700; font-display: swap; }

:root {
  --grund: #f1ede4; --flaeche: #fbf9f4; --flaeche2: #f6f2ea; --tinte: #14213d; --text2: #3c465c; --leise: #646c7e; --linie: #ddd6c8; --linie2: #e9e3d7;
  --akzent: #e4572e; --akzent-tinte: #b8401c; --wahl: #e8eef8; --wahl-linie: #c3cfe3; --hover: rgba(20,33,61,.05); --schatten: 0 1px 2px rgba(20,33,61,.06), 0 6px 24px rgba(20,33,61,.06);
  color-scheme: light; --neu: rgba(228,87,46,.07); --neu-linie: rgba(228,87,46,.45);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --grund: #11161f; --flaeche: #171e2a; --flaeche2: #1c2432; --tinte: #ebe7de; --text2: #c4c8d2; --leise: #9aa1b1; --linie: #2c3646; --linie2: #232c3a;
    --akzent: #f0714d; --akzent-tinte: #f59a7d; --wahl: #1d2940; --wahl-linie: #34476a; --hover: rgba(255,255,255,.04); --schatten: 0 1px 2px rgba(0,0,0,.3), 0 6px 24px rgba(0,0,0,.25);
    color-scheme: dark; --neu: rgba(240,113,77,.10); --neu-linie: rgba(240,113,77,.55);
  }
}
:root[data-theme="dark"] {
    --grund: #11161f; --flaeche: #171e2a; --flaeche2: #1c2432; --tinte: #ebe7de; --text2: #c4c8d2; --leise: #9aa1b1; --linie: #2c3646; --linie2: #232c3a;
    --akzent: #f0714d; --akzent-tinte: #f59a7d; --wahl: #1d2940; --wahl-linie: #34476a; --hover: rgba(255,255,255,.04); --schatten: 0 1px 2px rgba(0,0,0,.3), 0 6px 24px rgba(0,0,0,.25);
    color-scheme: dark; --neu: rgba(240,113,77,.10); --neu-linie: rgba(240,113,77,.55);
  }
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--grund); color: var(--tinte); font: 16px/1.45 'Barlow', system-ui, sans-serif; min-height: 100vh; display: flex; flex-direction: column; }
button { font: inherit; color: inherit; }
a { color: var(--akzent-tinte); }
.zahl, td, .zahlen { font-variant-numeric: tabular-nums; }

/* Kopf */
.leiste { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px max(16px, env(safe-area-inset-left)) 6px; max-width: 1240px; width: 100%; margin: 0 auto; }
.marke { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--tinte); font: 700 1.7rem/1 'Barlow Condensed', sans-serif; text-transform: uppercase; letter-spacing: .02em; }
.marke svg { width: 32px; height: 32px; fill: var(--tinte); } .marke .rot { fill: var(--akzent); }
.leise-knopf { background: none; border: 1px solid var(--linie); border-radius: 999px; padding: 5px 14px; color: var(--leise); cursor: pointer; font-size: .9rem; }
.leise-knopf:hover { color: var(--tinte); border-color: var(--leise); }

/* Reiter der Parlamente */
.reiter { position: sticky; top: 0; z-index: 5; background: var(--grund); border-bottom: 1px solid var(--linie); }
.reiter .spur { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; padding: 8px 16px; max-width: 1240px; margin: 0 auto; }
.reiter .spur::-webkit-scrollbar { display: none; }
.reiter a { flex: none; text-decoration: none; color: var(--text2); font: 600 1rem/1 'Barlow Condensed', sans-serif; letter-spacing: .03em; padding: 8px 11px; border-radius: 8px; white-space: nowrap; }
.reiter a:hover { background: var(--hover); color: var(--tinte); }
.reiter a[aria-current="page"] { background: var(--tinte); color: var(--grund); }
.reiter .trenner { flex: none; width: 1px; background: var(--linie); margin: 4px 6px; }

main { flex: 1; width: 100%; max-width: 1240px; margin: 0 auto; padding: 18px 16px 32px; }
.laden, .leer { color: var(--leise); padding: 40px 0; text-align: center; }

/* Abschnittskopf */
.titel { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 18px; margin-bottom: 14px; }
.titel h1 { margin: 0; font: 700 clamp(1.9rem, 5vw, 2.6rem)/1.05 'Barlow Condensed', sans-serif; letter-spacing: .005em; }
.titel h1 small { display: block; font: 600 .95rem/1.3 'Barlow', sans-serif; color: var(--leise); letter-spacing: 0; margin-bottom: 2px; text-transform: uppercase; letter-spacing: .06em; }
.titel .meta { color: var(--leise); font-size: .95rem; }
.zurueck { display: inline-block; margin-bottom: 10px; color: var(--leise); text-decoration: none; font-size: .95rem; }
.zurueck:hover { color: var(--tinte); }

/* Tabellen */
.karte { background: var(--flaeche); border: 1px solid var(--linie); border-radius: 14px; box-shadow: var(--schatten); }
.rahmen { overflow-x: auto; border-radius: 14px; }
table { border-collapse: separate; border-spacing: 0; width: 100%; }
th, td { padding: 9px 10px; text-align: right; white-space: nowrap; border-bottom: 1px solid var(--linie2); }
thead th { vertical-align: bottom; font-weight: 600; background: var(--flaeche); position: sticky; top: 0; }
tbody tr:last-child > * { border-bottom: 0; }
.p-zelle { text-align: left; position: sticky; left: 0; z-index: 1; background: var(--flaeche); font-weight: 600; min-width: 112px; }
thead .p-zelle { z-index: 2; color: var(--leise); font-weight: 400; font-size: .85rem; }
.partei { display: inline-flex; align-items: center; gap: 8px; }
.farbe { width: 12px; height: 12px; border-radius: 3px; background: var(--f); flex: none; }

/* Haupttabelle */
.haupt td.wert { cursor: pointer; min-width: 74px; position: relative; padding-bottom: 12px; }
.haupt td.wert .w { font-size: 1.08rem; }
.haupt td.wert .bar { position: absolute; right: 10px; bottom: 5px; height: 3px; border-radius: 2px; background: var(--f); width: var(--b); max-width: calc(100% - 20px); opacity: .85; }
.haupt td.vorn .w { font-weight: 600; }
.haupt tbody tr:hover td, .haupt tbody tr:hover .p-zelle { background-color: var(--flaeche2); }
.haupt .wahl { background: var(--wahl); border-left: 1px solid var(--wahl-linie); }
.haupt thead .wahl, .haupt tfoot .wahl { background: var(--wahl); }
.haupt tbody tr:hover td.wahl { background: var(--wahl); }
.haupt .alt { opacity: .55; }
.kopfzelle { display: flex; flex-direction: column; align-items: flex-end; gap: 1px; }
.inst { background: none; border: 0; padding: 0; cursor: pointer; font: 700 1.02rem/1.1 'Barlow Condensed', sans-serif; letter-spacing: .02em; color: var(--tinte); border-bottom: 1.5px solid var(--akzent); }
.inst:hover { color: var(--akzent-tinte); }
.kopfzelle .datum { font-size: .85rem; color: var(--leise); font-weight: 400; }
.kopfzelle .markierung { font-size: .72rem; color: var(--leise); border: 1px solid var(--linie); border-radius: 999px; padding: 0 6px; font-weight: 400; }
.wahl .kopfzelle b { font: 700 1.02rem/1.1 'Barlow Condensed', sans-serif; letter-spacing: .02em; }
tfoot td, tfoot th { border-bottom: 0; border-top: 1px solid var(--linie); color: var(--leise); font-size: .85rem; font-weight: 400; }
tfoot .p-zelle { font-weight: 400; }
.rechner-knopf { background: var(--flaeche2); border: 1px solid var(--linie); border-radius: 8px; padding: 5px 9px; cursor: pointer; font-size: .82rem; color: var(--tinte); white-space: nowrap; }
.rechner-knopf:hover { border-color: var(--tinte); }
.rechner-knopf svg { width: 14px; height: 9px; vertical-align: -1px; margin-right: 4px; fill: currentColor; }
.hinweis { color: var(--leise); font-size: .88rem; margin: 10px 2px 0; }

/* Überblick */
.ueberblick td.zeile-name { text-align: left; }
.ueberblick tbody tr { cursor: pointer; }
.ueberblick tbody tr:hover td, .ueberblick tbody tr:hover .p-zelle { background: var(--flaeche2); }
.ueberblick .diff { display: block; font-size: .78rem; color: var(--leise); }
.ueberblick td .w { font-size: 1.04rem; }
.ueberblick td.vorn .w { font-weight: 600; }
.ueberblick .quelle { text-align: left; color: var(--leise); font-size: .85rem; }
.ueberblick .quelle b { color: var(--tinte); font-weight: 600; }
.ueberblick tr.nurwahl td, .ueberblick tr.nurwahl .p-zelle { background: var(--wahl); }

/* Institutsverlauf */
.chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; }
.chips a, .chips button { text-decoration: none; border: 1px solid var(--linie); background: var(--flaeche); color: var(--text2); border-radius: 999px; padding: 4px 12px; font-size: .9rem; cursor: pointer; }
.chips a:hover, .chips button:hover { border-color: var(--leise); color: var(--tinte); }
.chips [aria-current="true"], .chips [aria-pressed="true"] { background: var(--tinte); border-color: var(--tinte); color: var(--grund); }
.chips .ohne { opacity: .45; }
.diagramm { padding: 14px 12px 8px; margin-bottom: 16px; position: relative; }
.diagramm .legende { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: .88rem; color: var(--text2); margin: 0 4px 6px; }
.diagramm .legende span { display: inline-flex; align-items: center; gap: 6px; }
.diagramm .legende i { width: 14px; height: 3px; border-radius: 2px; background: var(--f); }
.diagramm svg { display: block; width: 100%; overflow: visible; }
.diagramm .gitter { stroke: var(--linie2); stroke-width: 1; }
.diagramm .huerde { stroke: var(--leise); stroke-width: 1; stroke-dasharray: 4 4; }
.diagramm .achse { fill: var(--leise); font-size: 11px; }
.diagramm .endname { font-size: 11.5px; fill: var(--text2); }
.diagramm .lauf { fill: none; stroke: var(--f); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.diagramm .kreuz { stroke: var(--leise); stroke-width: 1; }
.diagramm .punkt { stroke: var(--flaeche); stroke-width: 2; }
.diagramm .wahlstrich { stroke: var(--wahl-linie); stroke-width: 2; }
.diagramm .wahltext { fill: var(--leise); font-size: 11px; }
.tooltip { position: absolute; pointer-events: none; background: var(--tinte); color: var(--grund); border-radius: 10px; padding: 8px 10px; font-size: .85rem; line-height: 1.35; min-width: 140px; box-shadow: var(--schatten); z-index: 3; }
.tooltip b { display: block; margin-bottom: 3px; }
.tooltip .tz { display: flex; align-items: center; gap: 6px; justify-content: space-between; }
.tooltip .tz span { display: inline-flex; align-items: center; gap: 6px; }
.tooltip i { width: 9px; height: 9px; border-radius: 2px; background: var(--f); box-shadow: 0 0 0 1px rgba(255,255,255,.4); }
.verlauf td .d { display: block; font-size: .75rem; color: var(--leise); line-height: 1.1; }
.verlauf tbody tr { cursor: pointer; }
.verlauf tbody tr:hover td, .verlauf tbody tr:hover .p-zelle { background: var(--flaeche2); }
.verlauf td.vorn .w { font-weight: 600; }
.verlauf .info { color: var(--leise); font-size: .85rem; text-align: left; }
.verlauf tr.wahlzeile td, .verlauf tr.wahlzeile .p-zelle { background: var(--wahl); }
.mehr { display: block; margin: 12px auto 0; }

/* Koalitionsrechner */
dialog { border: 0; padding: 0; border-radius: 18px; background: var(--flaeche); color: var(--tinte); width: min(720px, calc(100vw - 24px)); max-height: calc(100vh - 32px); box-shadow: 0 20px 60px rgba(0,0,0,.35); }
dialog::backdrop { background: rgba(10,14,22,.55); }
.r-innen { padding: 18px 20px 20px; }
.r-kopf { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.r-kopf h2 { margin: 0; font: 700 1.6rem/1.1 'Barlow Condensed', sans-serif; }
.r-kopf p { margin: 4px 0 0; color: var(--leise); font-size: .92rem; }
.schliessen { background: var(--flaeche2); border: 1px solid var(--linie); border-radius: 999px; width: 38px; height: 38px; flex: none; cursor: pointer; font-size: 1.3rem; line-height: 1; }
.halbkreis { display: block; width: 100%; max-width: 460px; margin: 10px auto 0; }
.halbkreis circle { transition: opacity .2s; }
.halbkreis .aus { opacity: .18; }
.halbkreis .mitte { font: 700 15px 'Barlow Condensed', sans-serif; fill: var(--tinte); }
.halbkreis .mitte2 { font-size: 9px; fill: var(--leise); }
.summe { margin: 8px 0 14px; }
.summe .zeile { display: flex; justify-content: space-between; font-size: .95rem; margin-bottom: 6px; gap: 8px; }
.summe .zeile b { font-size: 1.05rem; }
.summe .spur { position: relative; height: 12px; border-radius: 6px; background: var(--linie2); display: flex; gap: 2px; overflow: hidden; }
.summe .spur span { height: 100%; background: var(--f); }
.summe .marke50 { position: absolute; left: 50%; top: -3px; bottom: -3px; width: 2px; background: var(--tinte); }
.status { display: inline-flex; align-items: center; gap: 5px; font-weight: 600; }
.status.ja { color: #2f7d32; } .status.nein { color: var(--leise); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .status.ja { color: #7fcf83; } }
:root[data-theme="dark"] .status.ja { color: #7fcf83; }
.r-parteien { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 6px; }
.r-parteien button { width: 100%; display: flex; align-items: center; gap: 8px; text-align: left; border: 1.5px solid var(--linie); background: var(--flaeche); border-radius: 10px; padding: 7px 10px; cursor: pointer; }
.r-parteien button[aria-pressed="true"] { border-color: var(--tinte); background: var(--flaeche2); box-shadow: inset 4px 0 0 var(--f); }
.r-parteien button:disabled { cursor: default; opacity: .5; }
.r-parteien .n { flex: 1; min-width: 0; font-weight: 600; overflow-wrap: anywhere; line-height: 1.15; }
.r-parteien .s { color: var(--leise); font-size: .85rem; text-align: right; line-height: 1.15; flex: none; }
.r-parteien .s b { color: var(--tinte); font-size: .98rem; display: block; }
.r-ohne { margin: 8px 2px 0; color: var(--leise); font-size: .88rem; }
.r-unter { margin: 18px 0 8px; font: 700 1.1rem/1.2 'Barlow Condensed', sans-serif; letter-spacing: .02em; text-transform: uppercase; color: var(--text2); }
.r-koal { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 5px; }
.r-koal button { width: 100%; display: grid; grid-template-columns: 70px 1fr auto; align-items: center; gap: 12px; text-align: left; background: var(--flaeche); border: 1px solid var(--linie2); border-radius: 10px; padding: 7px 10px; cursor: pointer; }
.r-koal button:hover { border-color: var(--leise); }
.r-koal button.gewaehlt { border-color: var(--tinte); background: var(--flaeche2); }
.r-koal .streifen { display: flex; gap: 2px; height: 14px; }
.r-koal .streifen span { flex: 1; border-radius: 3px; background: var(--f); }
.r-koal .nm { font-weight: 600; } .r-koal .nm small { display: block; font-weight: 400; color: var(--leise); font-size: .82rem; }
.r-koal .zs { color: var(--leise); font-size: .88rem; text-align: right; }
.r-koal .zs b { color: var(--tinte); }
.r-hinweis { color: var(--leise); font-size: .82rem; margin: 14px 0 0; }

/* Quellen */
.quellen { width: 100%; max-width: 1240px; margin: 0 auto; padding: 18px 16px 28px; color: var(--leise); font-size: .85rem; border-top: 1px solid var(--linie); }
.quellen p { margin: 4px 0; }

@media (max-width: 640px) {
  .leiste { padding-top: 10px; }
  .marke { font-size: 1.45rem; } .marke svg { width: 28px; height: 28px; }
  main { padding-top: 14px; }
  th, td { padding: 8px 8px; }
  .p-zelle { min-width: 92px; }
  .haupt td.wert { min-width: 62px; }
  .r-innen { padding: 14px 14px 16px; }
  dialog { width: calc(100vw - 16px); max-height: calc(100vh - 16px); border-radius: 14px; }
  .r-parteien { grid-template-columns: 1fr; }
  .r-parteien button { padding: 6px 10px; }
  .r-koal button { grid-template-columns: 46px 1fr auto; gap: 9px; }
}

/* Umschalter Hell/Dunkel */
.knoepfe { display: flex; align-items: center; gap: 8px; }
.rund-knopf { width: 34px; height: 34px; border-radius: 999px; border: 1px solid var(--linie); background: none; color: var(--leise); cursor: pointer; display: grid; place-items: center; padding: 0; }
.rund-knopf:hover { color: var(--tinte); border-color: var(--leise); }
.rund-knopf svg { width: 18px; height: 18px; }

/* Die zwei neuesten Umfragen */
.haupt th.neu, .haupt td.neu, .haupt tbody tr:hover td.neu { background-color: var(--neu); }
.haupt thead th.neu { box-shadow: inset 0 3px 0 var(--neu-linie); }
.neu-marke { font-size: .7rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--akzent-tinte); border: 1px solid var(--neu-linie); border-radius: 999px; padding: 0 6px; margin-bottom: 2px; }
.haupt .ab-regional { border-left: 1px dashed var(--linie); }
.marken { display: flex; gap: 4px; margin-bottom: 2px; } .marken .neu-marke { margin-bottom: 0; }

/* Länder-Schalter */
.laender { display: flex; flex-wrap: nowrap; gap: 6px; padding: 8px 16px 2px; max-width: 1240px; margin: 0 auto; overflow-x: auto; scrollbar-width: none; cursor: grab; overscroll-behavior-x: contain;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 16px, #000 calc(100% - 28px), transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 16px, #000 calc(100% - 28px), transparent 100%); }
.laender::-webkit-scrollbar { display: none; }
.laender .land { flex: none; }
.laender.zieht { cursor: grabbing; user-select: none; } .laender.zieht .land { pointer-events: none; }
.laender .land { display: inline-flex; white-space: nowrap; align-items: center; gap: 8px; text-decoration: none; color: var(--text2); border: 1px solid var(--linie); background: var(--flaeche); border-radius: 999px; padding: 5px 13px 5px 6px; font-weight: 600; font-size: .92rem; }
.laender .land svg { width: 24px; height: 16px; border-radius: 3px; box-shadow: 0 0 0 1px rgba(0,0,0,.12); flex: none; }
.laender .land[aria-current="page"] { border-color: var(--tinte); color: var(--tinte); box-shadow: inset 0 0 0 1px var(--tinte); }
.laender .land:hover { border-color: var(--leise); color: var(--tinte); }
.live-punkt { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #e0242b; margin-left: 6px; vertical-align: 1px; box-shadow: 0 0 0 0 rgba(224,36,43,.6); animation: puls 1.6s infinite; }
@keyframes puls { 70% { box-shadow: 0 0 0 7px rgba(224,36,43,0); } 100% { box-shadow: 0 0 0 0 rgba(224,36,43,0); } }
@media (prefers-reduced-motion: reduce) { .live-punkt { animation: none; } }

/* Treffsicherheit beim Überfahren */
.haupt thead th.inst-kopf { position: sticky; }
.inst.mit-treffer { text-decoration: none; }
.treffer-karte { display: none; }
#treffer-tip { position: fixed; z-index: 20; pointer-events: none; width: 260px; text-align: left; white-space: normal; font-weight: 400; font-size: .84rem; line-height: 1.35;
  background: var(--tinte); color: var(--grund); border-radius: 12px; padding: 10px 12px; box-shadow: 0 10px 30px rgba(0,0,0,.25); }
#treffer-tip[hidden] { display: none; }
.treffer-karte b, #treffer-tip b { display: block; font-weight: 600; }
#treffer-tip .treffer-gross { display: block; font: 700 1.9rem/1.1 'Barlow Condensed', sans-serif; margin-top: 4px; }
#treffer-tip .treffer-unter { display: block; opacity: .75; margin-bottom: 6px; }
#treffer-tip .treffer-zeile { display: grid; grid-template-columns: 1fr auto; gap: 0 8px; padding: 5px 0; border-top: 1px solid rgba(255,255,255,.18); }
#treffer-tip .treffer-zeile b { display: inline; }
#treffer-tip .treffer-zeile small { grid-column: 1 / -1; opacity: .7; }
#treffer-tip .treffer-erkl { display: block; opacity: .7; font-size: .76rem; margin-top: 6px; }
.treffer-box { display: flex; gap: 18px; align-items: center; padding: 12px 16px; margin-bottom: 14px; flex-wrap: wrap; }
.treffer-box .tb-zahl b { display: block; font: 700 2.2rem/1 'Barlow Condensed', sans-serif; }
.treffer-box .tb-zahl span { color: var(--leise); font-size: .88rem; }
.treffer-box .tb-liste { display: flex; gap: 8px 22px; flex-wrap: wrap; flex: 1; }
.treffer-box .tb-liste div { display: grid; grid-template-columns: auto auto; gap: 0 10px; align-items: baseline; }
.treffer-box .tb-liste span { color: var(--text2); }
.treffer-box .tb-liste small { grid-column: 1 / -1; color: var(--leise); font-size: .8rem; }

/* Liveticker */
.live { padding: 14px 16px; margin-bottom: 16px; border-color: rgba(224,36,43,.45); }
.live-kopf { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; margin-bottom: 10px; }
.live-kopf b { font: 700 1.3rem/1.1 'Barlow Condensed', sans-serif; }
.live-marke { display: inline-flex; align-items: center; gap: 2px; flex-direction: row-reverse; font-weight: 700; color: #e0242b; text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; }
.live-status { color: var(--text2); } .live-stand { color: var(--leise); font-size: .88rem; margin-left: auto; }
.live-fortschritt { display: flex; align-items: center; gap: 12px; color: var(--leise); font-size: .88rem; margin-bottom: 12px; flex-wrap: wrap; }
.live-fortschritt .balken { flex: 1; min-width: 140px; height: 8px; border-radius: 4px; background: var(--linie2); overflow: hidden; }
.live-fortschritt .balken span { display: block; height: 100%; background: #e0242b; }
.live-balken { display: grid; gap: 5px; }
.lb { display: grid; grid-template-columns: 130px 1fr 92px; gap: 10px; align-items: center; }
.lb-name { display: flex; align-items: center; gap: 8px; font-weight: 600; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.lb-spur { height: 14px; display: block; }
.lb-spur span { display: block; height: 100%; border-radius: 0 4px 4px 0; background: var(--f); }
.lb-wert { text-align: right; font-variant-numeric: tabular-nums; } .lb-wert small { display: inline-block; min-width: 38px; color: var(--leise); margin-left: 6px; font-size: .8rem; }
.live-fuss { display: flex; gap: 12px; align-items: center; margin-top: 12px; color: var(--leise); font-size: .82rem; flex-wrap: wrap; }
.leer-hinweis { margin: 0 2px 12px; }
@media (max-width: 640px) {
  .laender { padding: 8px 16px 0; overflow-x: auto; scrollbar-width: none; flex-wrap: nowrap; }
  .laender .land { padding: 4px 10px 4px 5px; font-size: .86rem; }
  .lb { grid-template-columns: 92px 1fr 78px; gap: 8px; }
  #treffer-tip { width: 230px; }
}
.reiter .laender .land[aria-current="page"] { background: var(--flaeche); color: var(--tinte); }
.reiter .laender .land { font: 600 .92rem/1 'Barlow', sans-serif; letter-spacing: 0; }
/* Ausgeblendete Institute (auf Wunsch grau eingeblendet) */
.haupt th.versteckt, .haupt td.versteckt { opacity: .45; }
.versteckt-knopf { display: block; margin: 10px 0 0 auto; }

/* ---------- Statistik, Methodik, Datenbank ---------- */
:root { --plus: #d0643c; --minus: #3a72b8; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --plus: #f08a62; --minus: #6c9ee0; } }
:root[data-theme="dark"] { --plus: #f08a62; --minus: #6c9ee0; }
.kopf-links { display: flex; gap: 4px; margin-right: 4px; }
.kopf-links a { color: var(--leise); text-decoration: none; font-size: .92rem; padding: 5px 9px; border-radius: 999px; }
.kopf-links a:hover, .kopf-links a[aria-current] { color: var(--tinte); background: var(--hover); }
.fuss-links { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-bottom: 10px; }
.fuss-links a { color: var(--text2); font-weight: 600; text-decoration: none; }
.fuss-links a:hover { text-decoration: underline; }
.haupt .schnitt { background: var(--flaeche2); border-left: 1px solid var(--linie); }
.haupt thead .schnitt b { font: 700 1.02rem/1.1 'Barlow Condensed', sans-serif; letter-spacing: .02em; }
.haupt tbody tr:hover td.schnitt { background: var(--flaeche2); }
.stat-link { display: flex; align-items: center; gap: 4px 12px; flex-wrap: wrap; text-decoration: none; color: var(--tinte); background: var(--flaeche); border: 1px solid var(--linie); border-radius: 12px; padding: 10px 14px; margin: 14px 0 0; }
.stat-link b { font: 700 1.1rem/1.2 'Barlow Condensed', sans-serif; letter-spacing: .02em; }
.stat-link span { color: var(--leise); font-size: .9rem; flex: 1; }
.stat-link i { font-style: normal; font-size: 1.2rem; color: var(--akzent-tinte); }
.stat-link:hover { border-color: var(--leise); }
.stat-karte { padding: 16px 18px; margin-bottom: 16px; }
.stat-karte h2 { margin: 0 0 4px; font: 700 1.35rem/1.2 'Barlow Condensed', sans-serif; letter-spacing: .01em; }
.stat-unter { margin: 0 0 12px; color: var(--leise); font-size: .9rem; }
.stat-balken { display: grid; gap: 5px; }
.sb { display: grid; grid-template-columns: 130px 1fr 110px; gap: 10px; align-items: center; }
.stat-fuss { display: flex; gap: 12px; align-items: center; margin: 12px 0 4px; color: var(--leise); font-size: .84rem; flex-wrap: wrap; }
.diagramm-innen { margin: 14px -6px 0; padding: 6px 0 0; border-top: 1px solid var(--linie2); }
.stat-tab th, .stat-tab td { padding: 7px 10px; }
.stat-tab thead th { color: var(--leise); font-weight: 600; font-size: .85rem; }
.stat-tab td small { color: var(--leise); }
.he-tab td.he { background: color-mix(in srgb, var(--he) var(--ha), transparent); font-weight: 600; }
.he-tab td.leer { color: var(--leise); }
.wk-liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.wk-liste li { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(60px, 1fr) 64px; gap: 12px; align-items: center; padding: 6px 2px; border-bottom: 1px solid var(--linie2); }
.wk-liste li:has(.streifen) { grid-template-columns: 62px minmax(0, 1.3fr) minmax(60px, 1fr) 64px; }
.wk-liste li:last-child { border-bottom: 0; }
.wk-liste .nm { font-weight: 600; color: var(--tinte); text-decoration: none; display: flex; flex-direction: column; min-width: 0; }
.wk-liste .nm small { font-weight: 400; color: var(--leise); font-size: .82rem; }
.wk-liste b { text-align: right; font-variant-numeric: tabular-nums; }
.wk-liste .streifen { display: flex; gap: 2px; height: 14px; } .wk-liste .streifen span { flex: 1; border-radius: 3px; background: var(--f); }
.wk-liste .gesamt { grid-column: 3; text-align: right; color: var(--leise); }
.wk-liste.termine li { grid-template-columns: minmax(0, 1fr) auto; }
.wk-liste b.auf::first-letter, .wk-liste b.ab::first-letter { font-size: .8em; }
.pb { display: block; height: 8px; border-radius: 4px; background: var(--linie2); overflow: hidden; }
.pb span { display: block; height: 100%; border-radius: 4px; background: var(--f); }
.experimentell { border-style: dashed; }
.exp-marke { display: inline-block; font: 600 .72rem/1 'Barlow', sans-serif; text-transform: uppercase; letter-spacing: .06em; color: var(--akzent-tinte); border: 1px solid var(--akzent-tinte); border-radius: 999px; padding: 3px 7px; margin-right: 8px; vertical-align: 3px; }
.exp-details { margin-top: 12px; color: var(--text2); font-size: .88rem; }
.exp-details summary { cursor: pointer; font-weight: 600; color: var(--tinte); }
.exp-details p { margin: 6px 0; }
.r-quelle { font-size: .85rem; }
.quelle-link { white-space: nowrap; }
.verlauf .info .quelle-link { font-size: .8rem; margin-left: 4px; }
.lb-vgl { grid-column: 2 / -1; margin-top: -3px; font-size: .78rem; color: var(--leise); }
.zwei-spalten { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 16px; align-items: start; }
.kacheln { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 16px; }
.kachel { padding: 14px 16px; } .kachel b { display: block; font: 700 2rem/1.1 'Barlow Condensed', sans-serif; } .kachel span { color: var(--leise); font-size: .9rem; }
.monate { display: flex; align-items: flex-end; gap: 3px; height: 140px; padding-top: 6px; }
.monat { flex: 1; height: 100%; display: flex; align-items: flex-end; }
.monat span { display: block; width: 100%; background: var(--tinte); border-radius: 3px 3px 0 0; min-height: 1px; opacity: .85; }
.monat:hover span { opacity: 1; background: var(--akzent); }
.monate-achse { display: flex; justify-content: space-between; color: var(--leise); font-size: .8rem; margin-top: 4px; }
.protokoll { list-style: none; margin: 0; padding: 0; font-size: .88rem; color: var(--text2); }
.protokoll li { padding: 4px 0; border-bottom: 1px solid var(--linie2); } .protokoll li span { color: var(--leise); margin-right: 10px; font-variant-numeric: tabular-nums; }
.mini-flagge svg { width: 20px; height: 13px; border-radius: 2px; vertical-align: -2px; margin-right: 6px; }
.wk-liste .nm:has(.mini-flagge) { flex-direction: row; align-items: center; }
.text-karte { padding: 6px 22px 20px; max-width: 860px; }
.text-karte h2 { font: 700 1.25rem/1.2 'Barlow Condensed', sans-serif; margin: 20px 0 4px; }
.text-karte p { color: var(--text2); margin: 0; }
@media (max-width: 640px) {
  .kopf-links { display: none; }
  .sb { grid-template-columns: 92px 1fr 88px; gap: 8px; }
  .zwei-spalten { grid-template-columns: 1fr; }
  .kacheln { grid-template-columns: 1fr 1fr; }
  .wk-liste li:has(.streifen) { grid-template-columns: 46px minmax(0, 1fr) 56px; } .wk-liste li:has(.streifen) .pb { display: none; }
  .wk-liste li { grid-template-columns: minmax(0, 1fr) 70px 56px; gap: 8px; }
}
/* Hürden-Szenario und Koalitions-Historie im Rechner */
.szenario-knopf { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; margin: 14px 0 0; padding: 9px 12px; border: 1px dashed var(--linie); border-radius: 10px; background: var(--flaeche2); cursor: pointer; font-size: .92rem; color: var(--tinte); }
.szenario-knopf small { color: var(--leise); }
.szenario-knopf .schalter { flex: none; width: 34px; height: 20px; border-radius: 999px; background: var(--linie); position: relative; transition: background .2s; }
.szenario-knopf .schalter::after { content: ''; position: absolute; left: 3px; top: 3px; width: 14px; height: 14px; border-radius: 50%; background: var(--flaeche); transition: transform .2s; }
.szenario-knopf[aria-pressed="true"] { border-style: solid; border-color: var(--akzent-tinte); }
.szenario-knopf[aria-pressed="true"] .schalter { background: var(--akzent); }
.szenario-knopf[aria-pressed="true"] .schalter::after { transform: translateX(14px); }
.hist-zeile { margin: 0 0 8px; font-size: .88rem; color: var(--text2); }
.r-koal .zs .hist { display: block; font-size: .78rem; color: var(--leise); }
/* Rund um die Hürde: rein / raus */
.huerde-box { margin: 14px 0 0; padding: 10px 12px; border: 1px dashed var(--linie); border-radius: 10px; background: var(--flaeche2); }
.hb-titel { font-weight: 600; font-size: .92rem; margin-bottom: 6px; }
.hb-zeile { display: grid; grid-template-columns: minmax(0, 1fr) 64px auto; gap: 10px; align-items: center; padding: 4px 0; }
.hb-zeile .partei { font-weight: 600; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hb-wert { text-align: right; color: var(--leise); font-variant-numeric: tabular-nums; }
.seg { display: inline-flex; border: 1px solid var(--linie); border-radius: 999px; overflow: hidden; }
.seg button { border: 0; background: none; padding: 4px 11px; font-size: .84rem; cursor: pointer; color: var(--text2); }
.seg button + button { border-left: 1px solid var(--linie); }
.seg button[aria-pressed="true"] { background: var(--tinte); color: var(--grund); }
@media (max-width: 640px) { .hb-zeile { grid-template-columns: minmax(0, 1fr) 52px; } .hb-zeile .seg { grid-column: 1 / -1; justify-self: start; } }
/* Zufriedenheit mit der Bundesregierung */
.zs-kopf { display: flex; flex-wrap: wrap; gap: 10px 28px; align-items: flex-end; margin: 4px 0 6px; }
.zs-kopf > div:first-child b { display: block; font: 700 2.4rem/1 'Barlow Condensed', sans-serif; }
.zs-kopf > div:first-child span { display: block; color: var(--text2); }
.zs-kopf small { color: var(--leise); font-size: .84rem; }
.zs-vergleich { display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: center; color: var(--leise); font-size: .9rem; }
.zs-v { display: inline-flex; align-items: center; gap: 6px; color: var(--text2); }
.zs-v i { width: 12px; height: 3px; border-radius: 2px; background: var(--f); }
.zs-parteien { display: block; font-weight: 400; color: var(--leise); font-size: .8rem; }
/* Haupttabelle kompakter: alle Spalten ohne seitliches Scrollen (Desktop) */
.haupt th, .haupt td { padding: 8px 6px; }
.haupt .p-zelle { min-width: 100px; padding-left: 12px; }
.haupt td.wert { min-width: 54px; }
.haupt td.wert .bar { right: 6px; max-width: calc(100% - 12px); }
.haupt thead th { white-space: normal; }
.haupt .kopfzelle { min-width: 54px; }
.haupt .inst { display: inline-block; max-width: 88px; text-align: right; line-height: 1.1; white-space: normal; overflow-wrap: anywhere; }
.haupt .kopfzelle b { hyphens: auto; -webkit-hyphens: auto; text-align: right; line-height: 1.1; }
.haupt tfoot td { white-space: nowrap; }
.haupt .rechner-knopf { padding: 4px 7px; }
@media (min-width: 641px) and (max-width: 1280px) { .haupt .rechner-knopf .rk-text { display: none; } .haupt .rechner-knopf svg { margin-right: 0; } }
@media (min-width: 641px) and (max-width: 1100px) {
  .haupt th, .haupt td { padding: 7px 4px; font-size: .93rem; }
  .haupt .p-zelle { min-width: 86px; padding-left: 10px; }
  .haupt td.wert { min-width: 46px; }
  .haupt .inst { max-width: 74px; font-size: .95rem; }
  .haupt .kopfzelle .datum { font-size: .78rem; }
}
@media (min-width: 641px) and (max-width: 1100px) { .haupt tfoot td { white-space: normal; } .haupt tfoot .wahl, .haupt tfoot .schnitt { font-size: .8rem; } }
/* Parteikarte */
#partei-tip { position: fixed; z-index: 30; width: 320px; max-width: calc(100vw - 16px); background: var(--flaeche); color: var(--tinte); border: 1px solid var(--linie); border-radius: 14px; padding: 12px 14px; box-shadow: 0 12px 34px rgba(0,0,0,.22); font-size: .86rem; line-height: 1.35; pointer-events: none; }
#partei-tip[hidden] { display: none; }
@media (hover: none) { #partei-tip { pointer-events: auto; } }
#partei-tip .pk-name { display: block; font: 700 1.12rem/1.2 'Barlow Condensed', sans-serif; }
#partei-tip .pk-kurz { display: block; color: var(--leise); margin-bottom: 6px; }
#partei-tip .pk-zeile { display: block; padding: 6px 0; border-top: 1px solid var(--linie2); color: var(--text2); }
#partei-tip .pk-lbl { display: block; font-size: .74rem; text-transform: uppercase; letter-spacing: .05em; color: var(--leise); margin-bottom: 2px; }
#partei-tip .pk-skala { display: grid; grid-template-columns: 96px 1fr; grid-template-rows: auto auto; column-gap: 8px; align-items: center; margin: 3px 0; }
#partei-tip .pk-sk-titel { grid-row: 1 / 3; font-size: .82rem; } #partei-tip .pk-sk-titel b { color: var(--tinte); }
#partei-tip .pk-spur { position: relative; height: 6px; border-radius: 3px; background: var(--linie2); }
#partei-tip .pk-spur::after { content: ''; position: absolute; left: 50%; top: -2px; bottom: -2px; width: 1px; background: var(--leise); }
#partei-tip .pk-spur i { position: absolute; top: 50%; width: 11px; height: 11px; margin: -5.5px 0 0 -5.5px; border-radius: 50%; background: var(--tinte); box-shadow: 0 0 0 2px var(--flaeche); }
#partei-tip .pk-enden { display: flex; justify-content: space-between; font-size: .7rem; color: var(--leise); }
#partei-tip .pk-quelle { display: block; margin-top: 6px; font-size: .72rem; color: var(--leise); }
.haupt .p-zelle .partei, .ueberblick th .partei { cursor: help; }
/* Tendenz des Schnitts (30 Tage) */
.haupt td.schnitt .tendenz { display: block; font-size: .72rem; line-height: 1; margin-top: 1px; color: var(--leise); font-variant-numeric: tabular-nums; }
.haupt td.schnitt .tendenz.auf, .haupt td.schnitt .tendenz.ab { color: var(--text2); }
/* Bundesrat */
.br-spur { position: relative; display: flex; gap: 2px; height: 34px; margin: 8px 0 6px; }
.br-spur span { display: grid; place-items: center; font: 600 .75rem/1 'Barlow Condensed', sans-serif; border-radius: 4px; overflow: hidden; }
.br-regierung { background: var(--tinte); color: var(--grund); } .br-gemischt { background: var(--leise); color: var(--flaeche); } .br-opposition { background: var(--linie); color: var(--tinte); }
.br-spur .marke50 { position: absolute; top: -4px; bottom: -4px; width: 2px; background: var(--akzent); }
.br-legende { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: .86rem; color: var(--text2); }
.br-legende i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; vertical-align: -1px; margin-right: 5px; }
/* Rückblick */
.rb-tab td.rb-zelle { background: color-mix(in srgb, var(--he) var(--ha), transparent); line-height: 1.1; }
.rb-tab td.rb-zelle small { display: block; font-size: .72rem; color: var(--text2); }
.rb-tab tr.rb-summe td, .rb-tab tr.rb-summe th { border-top: 1px solid var(--linie); }
/* Politbarometer */
.pb-liste li { grid-template-columns: minmax(0, 1.2fr) 124px minmax(50px, 1fr) 54px; }
.pb-skala .pk-spur { position: relative; height: 6px; border-radius: 3px; background: var(--linie2); display: block; }
.pb-skala .pk-spur::after { content: ''; position: absolute; left: 50%; top: -3px; bottom: -3px; width: 1px; background: var(--leise); }
.pb-skala .pk-spur i { position: absolute; top: 50%; width: 11px; height: 11px; margin: -5.5px 0 0 -5.5px; border-radius: 50%; background: var(--tinte); }
.spark { display: block; }
.zs-kanzler b { display: block; font: 700 1.6rem/1 'Barlow Condensed', sans-serif; } .zs-kanzler span { display: block; color: var(--text2); font-size: .92rem; } .zs-kanzler small { color: var(--leise); font-size: .8rem; }
/* Wahlkreiskarte */
.kt-karte { position: relative; padding: 12px; }
.kt-karte svg { display: block; width: 100%; max-width: 620px; height: auto; margin: 0 auto; max-height: 82vh; }
.kt-karte .wk { stroke: var(--flaeche); stroke-width: 0.7; cursor: pointer; }
.kt-karte .wk:hover { stroke: var(--tinte); stroke-width: 1.6; }
.kt-legende { display: flex; flex-wrap: wrap; gap: 4px 14px; justify-content: center; font-size: .86rem; color: var(--text2); margin-top: 8px; }
.kt-legende i { display: inline-block; width: 13px; height: 13px; border-radius: 3px; vertical-align: -2px; margin-right: 5px; }
.kt-schraffur { background: repeating-linear-gradient(45deg, var(--leise) 0 2px, transparent 2px 5px); }
.kt-auswahl { display: inline-flex; align-items: center; gap: 6px; font-size: .9rem; color: var(--text2); }
.kt-auswahl select { font: inherit; padding: 4px 8px; border-radius: 999px; border: 1px solid var(--linie); background: var(--flaeche); color: var(--tinte); }
.kt-karte .tooltip small { display: block; opacity: .75; margin-bottom: 4px; } .kt-karte .tooltip .tz-titel { font-size: .74rem; text-transform: uppercase; letter-spacing: .05em; opacity: .7; margin-top: 4px; }
@media (max-width: 640px) { .pb-liste li { grid-template-columns: minmax(0, 1fr) 70px 46px; } .pb-liste .spark { display: none; } }
/* Teilen-Knopf: schwebt in der rechten oberen Ecke der Karte, nimmt keinen Platz im Fluss ein */
.stat-karte, section.karte { position: relative; }
.stat-karte > h2, section.karte > h2 { padding-right: 34px; }
.bild-knopf { position: absolute; top: 10px; right: 10px; width: 28px; height: 28px; display: grid; place-items: center; padding: 0; font: 600 .95rem/1 'Barlow', sans-serif; border-radius: 50%; border: 1px solid transparent; background: transparent; color: var(--leise); cursor: pointer; opacity: .55; transition: opacity .15s, background .15s, border-color .15s; }
.bild-knopf .tk-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.stat-karte:hover .bild-knopf, section.karte:hover .bild-knopf, .bild-knopf:focus-visible, .bild-knopf[aria-expanded="true"] { opacity: 1; }
.bild-knopf:hover, .bild-knopf[aria-expanded="true"] { background: var(--flaeche2); border-color: var(--linie); color: var(--tinte); }
@media (hover: none) { .bild-knopf { opacity: .8; } }
@media print { .bild-knopf { display: none; } }
/* Wahlen & Regierungen */
.reg-aktuell { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font: 700 1.35rem/1.2 'Barlow Condensed', sans-serif; margin: 6px 0 4px; }
.reg-aktuell .plus { color: var(--leise); font-weight: 600; }
.reg-liste { list-style: none; margin: 8px 0 0; padding: 0; max-height: 520px; overflow-y: auto; }
.reg-liste li { display: grid; grid-template-columns: 52px 1fr; gap: 2px 10px; padding: 7px 0; border-top: 1px solid var(--linie2); }
.reg-liste .jahr { font: 700 1rem/1.3 'Barlow Condensed', sans-serif; color: var(--text2); grid-row: span 2; }
.reg-liste .teile { display: flex; flex-wrap: wrap; gap: 4px 12px; }
.reg-liste small { color: var(--leise); font-size: .8rem; }
.wahl-liste { display: grid; gap: 10px; margin-top: 8px; }
.epoche { margin: 14px 0 0; padding: 6px 10px; border-left: 3px solid var(--akzent); background: var(--flaeche2); font-size: .86rem; color: var(--text2); font-weight: 600; }
.wahl-eintrag { border: 1px solid var(--linie2); border-radius: 12px; padding: 10px 12px; }
.wahl-eintrag.historisch { background: var(--flaeche2); }
.wahl-eintrag header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; font-size: .95rem; }
.wahl-eintrag header span { color: var(--leise); font-size: .85rem; }
.wahl-spur { height: 22px; margin: 8px 0; }
.wahl-spur span { color: #fff; font-size: .7rem; text-shadow: 0 0 2px rgba(0,0,0,.6); }
.wahl-werte { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 4px 14px; font-size: .88rem; }
.wahl-werte li { display: flex; align-items: baseline; gap: 6px; }
.wahl-werte b { margin-left: auto; }
.wahl-werte small { color: var(--leise); font-size: .75rem; }
.wahl-eintrag footer { margin-top: 6px; font-size: .78rem; color: var(--leise); }
/* Teilen-Fenster */
.teilen-fenster { position: absolute; z-index: 60; background: var(--flaeche); color: var(--tinte); border: 1px solid var(--linie); border-radius: 14px; box-shadow: 0 12px 32px rgba(20, 33, 61, .22); padding: 12px; font-size: .9rem; }
.teilen-fenster .tf-titel { margin: 0 0 8px; font: 700 1rem/1 'Barlow Condensed', sans-serif; letter-spacing: .03em; text-transform: uppercase; color: var(--text2); }
.teilen-fenster button, .teilen-fenster a { font: 600 .85rem/1.2 'Barlow', sans-serif; color: var(--tinte); background: var(--flaeche2); border: 1px solid var(--linie2); border-radius: 10px; padding: 8px 10px; text-decoration: none; cursor: pointer; text-align: center; }
.teilen-fenster button:hover, .teilen-fenster a:hover { border-color: var(--leise); }
.teilen-fenster .tf-gross { display: block; width: 100%; text-align: left; margin-bottom: 8px; }
.teilen-fenster .tf-gross small { display: block; font-weight: 400; color: var(--leise); font-size: .75rem; margin-top: 2px; }
.tf-netze { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.tf-zeile { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-top: 6px; }
.tf-hinweis { margin: 8px 0 0; font-size: .74rem; color: var(--leise); }
.regierung-zeile { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin: -4px 0 12px; padding: 5px 12px; border-radius: 999px; background: var(--flaeche); border: 1px solid var(--linie2); color: var(--tinte); text-decoration: none; font-size: .88rem; }
.regierung-zeile:hover { border-color: var(--linie); }
.regierung-zeile .rz-lbl { font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--leise); font-weight: 600; }
.regierung-zeile .plus { color: var(--leise); }
.regierung-zeile small { color: var(--leise); }
.regierung-zeile i { color: var(--leise); font-style: normal; }
.sr-nur { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
/* Sprungziel geteilter Links (…@abschnitt): Abstand zum Kopf, kurzes Aufleuchten */
#inhalt .stat-karte, #inhalt section.karte { scroll-margin-top: 112px; } /* unter der klebenden Reiterleiste */
#inhalt .angesprungen { animation: angesprungen 2.4s ease-out; }
@keyframes angesprungen { 0%, 35% { box-shadow: 0 0 0 3px var(--akzent, #c8102e); } 100% { box-shadow: 0 0 0 3px transparent; } }
@media (prefers-reduced-motion: reduce) { #inhalt .angesprungen { animation: none; } }
/* Norwegen: Blöcke und EU-Haltung im Rechner (gleiche Zeilen wie die Koalitionsliste, ohne Knopf) */
.r-bloecke { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 5px; }
.r-bloecke li { display: grid; grid-template-columns: 70px 1fr auto; align-items: center; gap: 12px; background: var(--flaeche); border: 1px solid var(--linie2); border-radius: 10px; padding: 8px 12px; }
.r-bloecke .streifen { display: flex; gap: 2px; height: 14px; }
.r-bloecke .streifen span { background: var(--f); border-radius: 3px; min-width: 3px; }
.r-bloecke .nm small, .r-real .nm small { display: block; color: var(--text2); font-size: .8rem; font-weight: 500; }
.r-bloecke .sz { white-space: nowrap; font-size: .9rem; }
/* Politbarometer: Zeilen aufklappbar, Verlauf mit Punkten */
.pb-liste .pb-auf { cursor: pointer; border-radius: 8px; }
.pb-liste .pb-auf:hover, .pb-liste .pb-auf[aria-expanded="true"] { background: var(--hover); }
.pb-liste .pb-auf:focus-visible { outline: 2px solid var(--tinte); outline-offset: 2px; }
.pb-liste .pb-detail { display: block !important; padding: 6px 4px 14px; border-bottom: 1px solid var(--linie2); text-align: left; }
.pb-detail .pb-kopf b { display: block; } .pb-detail .pb-kopf span { color: var(--leise); font-size: .84rem; }
.tb-box { position: relative; margin-top: 6px; } .tb-box svg { display: block; touch-action: pan-y; }
.tb-box .tooltip { position: absolute; pointer-events: none; background: var(--tinte); color: var(--grund); border-radius: 8px; padding: 5px 9px; font-size: .82rem; white-space: nowrap; }
.tb-box .tooltip b { display: block; font-size: .95rem; } .tb-box .tooltip small { opacity: .8; }
.tb-punkt { stroke: var(--flaeche); stroke-width: 1; }
/* Link je Umfrage (Institutsansicht) */
.u-link { display: inline-flex; vertical-align: -3px; margin-left: 6px; padding: 2px; border: 0; background: none; color: var(--leise); cursor: pointer; border-radius: 5px; opacity: .55; }
.u-link svg { width: 14px; height: 14px; } .u-link:hover, .u-link:focus-visible { opacity: 1; color: var(--tinte); background: var(--hover); } .u-link.kopiert { opacity: 1; color: #2e8b3e; }
tr[data-abschnitt] { scroll-margin-top: 120px; } tr.angesprungen th, tr.angesprungen td { background: color-mix(in srgb, var(--akzent) 16%, var(--flaeche)) !important; }
/* Norwegen: EU-Umfragen */
.eu-legende { display: flex; gap: 16px; font-size: .85rem; color: var(--text2); margin-top: 4px; } .eu-legende i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; }
.eu-liste { list-style: none; margin: 12px 0 0; padding: 0; font-size: .88rem; } .eu-liste li { display: grid; grid-template-columns: 1.3fr 1fr 64px 64px 52px; gap: 8px; padding: 6px 0; border-bottom: 1px solid var(--linie2); align-items: baseline; }
.eu-liste .ja { color: #2e8b3e; text-align: right; } .eu-liste .nein { color: #dc241f; text-align: right; } .eu-liste a { color: var(--leise); font-size: .8rem; text-align: right; }
