/* Wahlkompass Berlin — kompass.css (Builder-Asset, v35) */
:root { --tinte:#1c1e26; --grund:#fbfaf7; --akzent:#0b5cad; --linie:#d9d5cc;
        --karte:#ffffff; --dim:#6a6f7a; }
* { box-sizing:border-box; }
body { margin:0; font:16.5px/1.65 'Avenir Next','Segoe UI',Seravek,system-ui,-apple-system,Roboto,'Helvetica Neue',Arial,sans-serif; color:var(--tinte);
       background:var(--grund); }
a { color:var(--akzent); }
.kopf { display:flex; justify-content:space-between; align-items:baseline; gap:1rem;
        padding:.9rem 5vw; border-bottom:2px solid var(--tinte); flex-wrap:wrap; }
.marke { font-size:1.25rem; font-weight:bold; color:var(--tinte); text-decoration:none; }
.marke span { color:var(--akzent); }
.wortmarke { font-weight:600; }
.wortmarke span { color:var(--akzent); }
.kopf nav a { margin-left:1.1rem; text-decoration:none; font-family:system-ui,sans-serif;
              font-size:.95rem; }
main { max-width:62rem; margin:0 auto; padding:1.5rem 5vw 3rem; }
.hero { text-align:center; }
.hero h1 { font-size:clamp(1.6rem, 4.5vw, 2.6rem); line-height:1.2; margin:1.2rem 0 .4rem; }
.hero .untertitel { display:block; font-size:.62em; font-weight:normal; color:var(--dim);
                    margin-top:.35rem; }
.zaehler { display:inline-block; margin:.6rem auto .2rem; padding:.35rem 1rem;
           border:1.5px solid var(--tinte); border-radius:999px;
           font-family:system-ui,sans-serif; font-size:1.02rem; font-weight:600;
           letter-spacing:.01em; }
.claim { color:var(--dim); font-family:system-ui,sans-serif; font-size:.98rem; }
.fuss { border-top:1px solid var(--linie); padding:1.2rem 5vw 2rem; color:var(--dim);
        font-size:.88rem; font-family:system-ui,sans-serif; }
.krume { font-family:system-ui,sans-serif; font-size:.85rem; color:var(--dim); }
.krume a { color:var(--dim); }

/* Radar */
.radarblock { margin:1.5rem 0; }
.radarblock svg { width:100%; height:auto; }
.ring { fill:none; stroke:var(--linie); }
.achse { stroke:var(--linie); }
.alabel { font:12.5px system-ui,sans-serif; fill:var(--tinte); }
.alabel:hover { fill:var(--akzent); text-decoration:underline; }
.pnetz { fill-opacity:.07; stroke-width:2.2; }
.pnetz.aus { display:none; }
.schalterleiste, .pwahlleiste { display:flex; gap:.6rem; flex-wrap:wrap; justify-content:center;
                  font-family:system-ui,sans-serif; margin-bottom:.8rem; }
.pschalter { display:inline-flex; align-items:center; justify-content:center;
             border:none; border-radius:4px; padding:.35rem .9rem;
             cursor:pointer; background:var(--pf); color:#fff; font-size:.92rem;
             font-weight:600; transition:opacity .15s; }
.pschalter input { position:absolute; opacity:0; width:0; height:0; }
.pschalter:has(input:not(:checked)) { opacity:.3; }
.radarhinweis { font-size:.78rem; color:var(--dim); font-family:system-ui,sans-serif;
                max-width:44rem; margin:1rem auto; }

/* Karten & Listen */
.einstiege { display:grid; grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));
             gap:1rem; margin:2rem 0; }
.karte { display:block; background:var(--karte); border:1px solid var(--linie);
         border-radius:6px; padding:1rem 1.2rem; text-decoration:none; color:var(--tinte); }
.karte h2 { margin:.1rem 0 .4rem; font-size:1.12rem; }
.karte p { margin:0; color:var(--dim); font-size:.94rem; }
.karte:hover { border-color:var(--akzent); }
.karte-bald { opacity:.75; }
.karte-titel { display:flex; flex-direction:column; justify-content:center; } .karte-titel .karten-trenner { width:100%; }
.faclist { list-style:none; padding:0; }
/* Globaler Parteien-Filter: ausgeblendete Parteien */
.pspalte.aus, .dot.aus, .heatmap .aus, .mdot.aus { display:none; }
/* Sachfragen-Untergruppen (inhaltliche Nähe) */
.facgruppe { list-style:none; margin:1.5rem 0 .1rem; }
.facgruppe h3 { margin:0; font-size:.98rem; color:var(--dim); font-weight:600; }
.facmarken { display:flex; align-items:center; gap:.9rem; white-space:nowrap; }
/* Konvergenz/Divergenz-Muster: Glyphe (Teppich) + Strahl (Sachfragen-Seite) */
.muster { display:inline-flex; align-items:center; gap:.15rem; padding:.15rem .4rem;
          border:1px solid var(--linie); border-radius:99px; background:var(--karte); }
.muster.m-unbestimmt { opacity:.55; }
.mdot { width:.6rem; height:.6rem; border-radius:50%; background:var(--pf); display:inline-block; }
.mdot.leer { background:transparent; border:1.5px solid var(--pf); opacity:.55; }
.mdot.neben { background:linear-gradient(90deg, var(--pf) 50%, transparent 50%); border:1.5px solid var(--pf); }
.mneben { display:inline; line-height:1.5; }
.mneben .mdot { vertical-align:middle; margin-right:.1rem; }
.mdot { flex:none; }
.rneben { color:var(--dim); font-style:italic; margin-left:.4rem; }
.mtrenn { width:1px; height:.9rem; background:var(--tinte); margin:0 .3rem; }
.strahl { margin:1rem 0 .3rem; padding:.8rem 1rem; border-left:3px solid var(--linie); background:var(--grund); }
.mtitel { margin:0 0 .6rem; font-family:system-ui,sans-serif; font-size:.92rem; }
.bahn { display:grid; grid-template-columns:1fr auto 1fr auto 1fr; align-items:center; gap:.6rem; }
.bahn.konv { grid-template-columns:auto 1fr; }
.bahn .pol { font-family:system-ui,sans-serif; font-size:.88rem; }
.bahn .pol:first-child { text-align:right; }
.bahn .block { display:inline-flex; gap:.3rem; padding:.35rem .55rem; background:var(--karte);
               border:1px solid var(--linie); border-radius:99px; justify-self:center; }
.bahn .block .mdot { width:.85rem; height:.85rem; }
.bahn .linie { height:2px; background:var(--linie); min-width:2rem; }
/* Rangplätze entlang der Achse (gleich große Schritte) */
.bahn.rangbahn { grid-template-columns:auto 1fr auto; }
.rangleiste { position:relative; height:2.6rem; margin:0 .9rem; }
.rangleiste::before { content:""; position:absolute; left:0; right:0; top:50%; height:2px; background:var(--linie); }
.rangleiste .rang { position:absolute; top:50%; left:calc(var(--i) / (var(--n) - 1) * 100%);
                    transform:translate(-50%,-50%); display:flex; flex-direction:column; align-items:center;
                    gap:.15rem; padding:.3rem .35rem; background:var(--karte); border:1px solid var(--linie); border-radius:99px; }
.rangleiste .rang .mdot { width:.85rem; height:.85rem; }
.rangbahn.verb .rangleiste::before { background:repeating-linear-gradient(90deg,var(--linie) 0 6px,transparent 6px 10px); }
.rangleiste .rang.rast { min-width:1.1rem; min-height:1.1rem; }
.leerrast { width:.45rem; height:.45rem; border-radius:50%; background:var(--linie); display:block; }
@media (max-width:640px) { .bahn.rangbahn { grid-template-columns:1fr; } .rangleiste { margin:.6rem 0; } }
.mfuss { font-size:.85rem; display:flex; gap:1.2rem; flex-wrap:wrap; margin:.6rem 0 0; }
.mquelle { font-size:.82rem; color:var(--dim); margin:.35rem 0 0; font-style:italic; }
.richtungsbalken { display:flex; height:1.1rem; border-radius:4px; overflow:hidden; border:1px solid var(--linie); }
.richtungsbalken span { display:block; height:100%; }
.rb-konvergent { background:#a9c7e3; } .rb-geteilt { background:#d98a8a; }
.rb-ausreisser { background:#e3bb7a; } .rb-unbestimmt { background:#e1ded8; }
.rb-verschieden { background:#cbbfe0; }
.muster.m-verschieden { border-style:dashed; }
.rblegende span { display:inline-block; width:.8rem; height:.8rem; border-radius:2px; vertical-align:middle; margin-right:.3rem; }
/* Lesehilfen (»Don't make me think«) */
.lesehilfe { background:var(--karte); border:1px solid var(--linie); border-left:4px solid var(--akzent);
             border-radius:6px; padding:.7rem 1rem; margin:.6rem 0 1rem; font-family:system-ui,sans-serif;
             font-size:.9rem; line-height:1.55; }
.lesehilfe .rblegende { margin:.5rem 0 0; }
.legzeile { display:inline-block; margin-top:.25rem; }
.rbz { text-align:center; font-family:system-ui,sans-serif; }
.hauptlink { font-size:1.02rem; }
/* Richtungen-Seite (Parteien-Vergleich auf Musterbasis) */
.methodik h2 { margin:1.6rem 0 .4rem; font-size:1.2rem; } .methodik h3 { margin:1.1rem 0 .3rem; font-size:1.02rem; }
.methodik ul, .methodik ol { padding-left:1.3rem; } .methodik li { margin:.3rem 0; }
.abpartei { margin:1.6rem 0; border-top:1px solid var(--linie); padding-top:.4rem; }
.abgruppe { margin:.5rem 0; } .abgruppe > summary { cursor:pointer; font-weight:600; }
.abgruppe h3 { font-size:.95rem; color:var(--dim); margin:.9rem 0 .2rem; }
.absatz { margin:.25rem 0 .25rem 1rem; } .absatz summary { cursor:pointer; font-size:.9rem; }
.absatztext { margin:.3rem 0; font-size:.92rem; white-space:pre-wrap; }
.qurl { font-family:system-ui,sans-serif; font-size:.78rem; color:var(--dim); word-break:break-all; }
.sekfrage { margin:.3rem 0; } .sekfrage summary { cursor:pointer; }
.sekfrage summary a { text-decoration:none; } .sekfrage summary a:hover { text-decoration:underline; }
.sekfrage .quellenliste li { margin:.35rem 0; }
.raufforderung { margin:1.2rem 0 .4rem; font-family:system-ui,sans-serif; }
.rgesamt { margin:1.2rem 0 1.6rem; padding:1rem 1.1rem; border:1px solid var(--linie); border-radius:8px; }
.rgesamt h2 { margin:0 0 .2rem; font-size:1.15rem; }
.rgesamt .richtungsbalken { height:1.5rem; }
.rsteuer { margin:.6rem 0 0; font-size:.88rem; }
.rthemen { font-size:1.15rem; margin:1.2rem 0 .3rem; }
.rfeld { margin:0; border-top:1px solid var(--linie); }
.rfeld summary { display:grid; grid-template-columns:minmax(9rem, 14rem) 1fr auto; gap:1rem; align-items:center;
                 padding:.55rem 0; cursor:pointer; list-style:none; }
.rfeld summary::-webkit-details-marker { display:none; }
.rfeld summary .rname { font-weight:600; }
.rfeld summary .rname::before { content:'▸'; display:inline-block; width:1.1em; color:var(--dim); transition:transform .15s; }
.rfeld[open] summary .rname::before { transform:rotate(90deg); }
.rfeld summary .rbar { min-width:0; }
.rfeld .rzahl { font-family:system-ui,sans-serif; font-size:.85rem; color:var(--dim); white-space:nowrap; }
.rinhalt { padding:0 0 1rem 1.1em; }
.rfilter { margin:.3rem 0 0; font-family:system-ui,sans-serif; font-size:.88rem; color:var(--dim); }
.rklick [data-k] { cursor:pointer; }
.rklick [data-k]:hover, .rklick [data-k]:focus { filter:brightness(.88); outline:none; }
.rbmini { display:inline-block; width:1.1rem; height:.8rem; vertical-align:middle; border-radius:2px; }
.rgrund { font-style:italic; }
.rfeld h3 { margin:1rem 0 .2rem; font-size:.95rem; color:var(--dim); }
.rsumme { margin:.2rem 0 .4rem; font-family:system-ui,sans-serif; font-size:.92rem; }
.rpole { display:inline-flex; align-items:center; gap:.3rem; font-family:system-ui,sans-serif; font-size:.85rem; color:var(--dim); white-space:normal; text-align:right; }
.roffen summary { cursor:pointer; font-size:.9rem; color:var(--dim); margin-top:.6rem; }
@media (max-width:640px) { .bahn { grid-template-columns:1fr; text-align:center; }
  .bahn .pol:first-child { text-align:center; } .bahn .linie { display:none; } .facmarken { white-space:normal; } }
.pfilterleiste { margin:.4rem 0 1.1rem; justify-content:flex-start; }
.kopf { flex-wrap:wrap; }
.zaehlpixel { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.skip { position:absolute; left:-999px; top:0; background:var(--tinte); color:#fff; padding:.5rem .9rem; z-index:9; }
.skip:focus { left:.5rem; }
:focus-visible { outline:2px solid var(--akzent); outline-offset:2px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition:none !important; animation:none !important; scroll-behavior:auto !important; } }
.aktionzeile { display:flex; gap:.6rem; align-items:center; flex-wrap:wrap; margin:.2rem 0 1rem; font-family:system-ui,sans-serif; }
.merkknopf, .teilknopf { border:1px solid var(--linie); background:var(--karte); border-radius:5px;
  padding:.35rem .8rem; font-size:.88rem; cursor:pointer; color:var(--tinte); }
.merkknopf:hover, .teilknopf:hover { border-color:var(--akzent); color:var(--akzent); }
.merkknopf[aria-pressed="true"] { border-color:var(--akzent); color:var(--akzent); font-weight:600; }
.merkstand { font-size:.88rem; }
.merkhinweis { background:var(--grund); border:1px solid var(--linie); border-radius:6px; padding:.7rem .9rem; }
.karte-service .eng { line-height:1.35; font-size:.88rem; }
.karte-halb { padding:.55rem 1.1rem; align-self:start; }
.karte-titel h2 { margin:0; font-size:1.08rem; }
.tagesfragen { margin:1.6rem 0; padding:1rem 1.2rem 1.2rem; border-radius:10px;
  background:color-mix(in srgb, var(--akzent) 6%, var(--grund)); border:1px solid var(--linie); }
.tagesfragen > h2 { font-size:1.15rem; margin:0 0 .7rem; }
.tagesgrid { display:grid; grid-template-columns:repeat(3, 1fr); gap:.8rem; }
@media (max-width:820px) { .tagesgrid { grid-template-columns:1fr; } }
.tageskarte { display:flex; flex-direction:column; }
.tageskarte .tfrage { margin:0 0 .5rem; color:var(--tinte); font-size:.94rem; }
.tageskarte .tglyph { margin-top:auto; margin-bottom:0; }
.tageskarte .muster { display:inline-flex; align-items:center; gap:.22rem; }
.these { margin:1.1rem 0; } .these h2 { font-size:1.02rem; margin:0 0 .25rem; }
.these ul { margin:.1rem 0 .2rem; padding-left:1.3rem; } .these li { margin:.15rem 0; }
.thesenr { color:var(--dim); font-family:system-ui,sans-serif; font-size:.85rem; font-weight:400; margin-right:.3rem; }
.thesetext { margin:.1rem 0 .3rem; font-style:italic; }
.womcheck { margin:.25rem 0 .4rem; } .womcheck > summary { cursor:pointer; font-family:system-ui,sans-serif; font-size:.85rem; color:var(--dim); }
.wk-zeile { display:grid; grid-template-columns:auto 3.4rem 8.5rem 1fr; gap:.5rem; align-items:baseline;
  padding:.3rem 0; border-bottom:1px solid var(--linie); font-size:.9rem; }
.wk-zeile .mdot { align-self:center; }
.wk-partei { font-family:system-ui,sans-serif; font-weight:600; }
.wk-pos { font-family:system-ui,sans-serif; color:var(--dim); font-size:.85rem; }
.wk-befund { font-family:system-ui,sans-serif; }
.wk-ja { color:#2f6b3f; } .wk-teils { color:#8a6d1a; } .wk-nein { color:var(--dim); } .wk-gegen { color:#8a2f2f; }
.wk-zusatz { display:block; color:var(--dim); font-size:.82rem; font-family:Georgia,serif; }
.wk-begr { margin:.15rem 0 .1rem; font-size:.82rem; }
.wk-begr summary { cursor:pointer; color:var(--akzent); font-family:system-ui,sans-serif; }
.wk-begr p { margin:.25rem 0 .1rem; color:var(--tinte); font-family:Georgia,serif; }
@media (max-width:640px) {
  /* Mobil: Antwort (»Stimme zu« …) NICHT verstecken, sondern als eigene Zeile über den Befund
     (Peters Befund 2026-08-24: die Antworten fehlten auf dem iPhone) */
  .wk-zeile { grid-template-columns:auto 3rem 1fr; }
  .wk-befund { grid-column:3; }
}
.kopffilter { flex-basis:100%; margin:.35rem 0 0; justify-content:flex-end; gap:.4rem; flex-wrap:nowrap; }
.kopffilter .pschalter { font-size:.8rem; padding:.2rem .55rem; white-space:nowrap; }
@media (max-width:600px) {   /* Mobil: alle fünf Chips in EINER Zeile, gleich breit, Schrift fluide */
  .kopffilter { gap:.3rem; }
  .kopffilter .pschalter { flex:1 1 0; min-width:0; padding:.3rem .15rem; font-size:clamp(.66rem, 3.4vw, .8rem); }
}
.faclist a, .faczeile a, .position summary a { text-decoration:none; }
.faclist a:hover, .faczeile a:hover, .position summary a:hover { text-decoration:underline; }
.faczeile { display:flex; justify-content:space-between; gap:1rem; align-items:baseline;
            padding:.55rem 0; border-bottom:1px solid var(--linie); }
.legende, .pfolge { font-family:system-ui,sans-serif; font-size:.85rem; color:var(--dim); }

/* Einordnungs-Punkte & Badges */
.ampel { white-space:nowrap; }
.dot { display:inline-block; width:.85rem; height:.85rem; border-radius:50%;
       margin-left:.28rem; border:2px solid var(--pf, var(--dim)); vertical-align:middle; }
.e-voll  { background:var(--pf, var(--tinte)); }
.e-teil  { background:color-mix(in srgb, var(--pf, var(--dim)) 45%, white); }
.e-kaum  { background:#eee; }
.e-ablehn{ background:repeating-linear-gradient(45deg,#fff,#fff 2px,var(--pf,#999) 2px,var(--pf,#999) 4px); }
.e-fehlt { background:#fff; border-style:dotted; }
.legende .dot { border-color:var(--dim); }
.badge { display:inline-block; font-family:system-ui,sans-serif; font-size:.82rem;
         padding:.15rem .55rem; border-radius:99px; border:1.5px solid var(--pf); }
.badge.e-voll { background:var(--pf); color:#fff; }
.badge.e-teil { background:color-mix(in srgb, var(--pf) 25%, white); }
.badge.e-ablehn, .badge.e-kaum, .badge.e-fehlt { color:var(--dim); border-color:var(--dim); }

/* Sachfragen-Seite */
.sachfrage { font-size:1.05rem; }
.forschung { background:var(--karte); border:1px solid var(--linie); border-radius:6px;
             padding:.6rem .9rem; font-size:.92rem; }
.forschung ul { word-break:break-all; font-size:.85rem; }
.pgrid { display:grid; grid-template-columns:repeat(auto-fit,minmax(17rem,1fr)); gap:1rem; }
.pspalte { background:var(--karte); border:1px solid var(--linie);
           border-top:4px solid var(--pf); border-radius:6px; padding:.9rem 1rem; }
.pspalte h3 { margin:.1rem 0 .5rem; font-size:1.02rem; }
.pspalte blockquote { margin:.6rem 0; padding:.1rem 0 .1rem .8rem;
                      border-left:3px solid var(--linie); font-size:.95rem; }
.beleglink { font-family:system-ui,sans-serif; font-size:.8rem; white-space:nowrap; }
.begruendung { font-size:.88rem; color:var(--dim); font-family:system-ui,sans-serif; }

/* Beleg-Seite */
.grossbeleg { font-size:1.25rem; line-height:1.5; margin:1.4rem 0; padding-left:1rem;
              border-left:4px solid var(--akzent); }
.belegdaten { font-family:system-ui,sans-serif; font-size:.92rem; }
.belegdaten dt { font-weight:bold; margin-top:.5rem; }
.belegdaten dd { margin:0; }
.prosatext p { margin:0 0 1rem; }
.quellenliste li { margin:.4rem 0; }

.dim { color:var(--dim); font-family:system-ui,sans-serif; font-size:.9rem; }
.position { background:var(--karte); border:1px solid var(--linie); border-radius:6px;
            padding:.55rem .9rem; margin:.5rem 0; }
.position summary { cursor:pointer; font-weight:bold; }
.position details { margin:.5rem 0; font-size:.95rem; }
.position details summary { font-weight:normal; color:var(--akzent); }
.belegzeile { font-family:system-ui,sans-serif; font-size:.82rem; color:var(--dim); }
.belegzeile a { margin-right:.3rem; }
.vstat { background:var(--karte); border:1px solid var(--linie); border-radius:6px;
         padding:.2rem 1rem; margin:1rem 0; }
.tabellenroller { overflow-x:auto; }
.heatmap { border-collapse:collapse; font-family:system-ui,sans-serif; font-size:.92rem;
           width:100%; }
.heatmap th, .heatmap td { padding:.45rem .6rem; border-bottom:1px solid var(--linie);
                           text-align:left; }
.heatmap td.hz { background:color-mix(in srgb, var(--pf) calc(var(--w) * 55%), white);
                 text-align:right; font-variant-numeric:tabular-nums; }
.pz { color:var(--dim); font-size:.8em; }
.suchform { display:flex; gap:.5rem; flex-wrap:wrap; font-family:system-ui,sans-serif; }
.suchform input[type=search] { flex:1 1 16rem; padding:.5rem .7rem; font-size:1rem;
  border:1px solid var(--linie); border-radius:4px; }
.suchform select, .suchform button { padding:.5rem .7rem; font-size:.95rem;
  border:1px solid var(--linie); border-radius:4px; background:var(--karte); }
.trefferliste { list-style:none; padding:0; }
.trefferliste li { border-bottom:1px solid var(--linie); padding:.7rem 0; }
.trefferliste blockquote { margin:.4rem 0; }
mark { background:#ffe9a8; }

.synthese { background:var(--karte); border:1px solid var(--linie);
            border-left:4px solid var(--akzent); border-radius:6px;
            padding:.4rem 1.1rem .9rem; margin:1.6rem 0; }
.verwandte { margin:.2rem 0 0; font-size:.95rem; }
.feldwahl { display:grid; grid-template-columns:repeat(auto-fit,minmax(15rem,1fr)); gap:.5rem;
            font-family:system-ui,sans-serif; }
.feldkachel { border:1px solid var(--linie); border-radius:4px; padding:.45rem .7rem;
              background:var(--karte); cursor:pointer; font-size:.95rem; }
.fragenzeile { display:block; border-bottom:1px solid var(--linie); padding:.55rem 0;
               cursor:pointer; }
.hauptknopf { font:inherit; font-family:system-ui,sans-serif; background:var(--akzent);
              color:#fff; border:none; border-radius:5px; padding:.6rem 1.2rem;
              cursor:pointer; }
.hauptknopf:disabled { background:var(--linie); cursor:default; }
#druckknopf { font-family:system-ui,sans-serif; }
.dossierfrage { margin:1.6rem 0; }
.dossierfrage h4 { margin:.1rem 0 .4rem; }
.schlussbox { border:2px solid var(--tinte); border-radius:6px; padding:.7rem 1rem;
              font-family:system-ui,sans-serif; }
@media print {
  .kopf nav, .kopffilter, .suchform, #druckknopf, .fuss a { display:none; }
  body { background:#fff; font-size:11pt; }
  .pspalte, .position { break-inside:avoid; }
}

@media (max-width:640px) {
  .faczeile { flex-direction:column; gap:.15rem; }
  .rpole { flex-wrap:wrap; text-align:left; max-width:100%; }
  .rfeld summary { grid-template-columns:1fr auto; }
  .rfeld summary .rbar { grid-column:1 / -1; }
}
