/* eu.css · EU-Radar (eu.html, eu.js) · Fassung b: gefuehrter Weg
 *
 * Hausform wie die anderen Apps: Creme als Seitengrund, weisse Tafeln
 * (18 px) mit starker Kopflinie, Bedienelemente 8 px, Marken 2 px,
 * Abstaende aus der 4er-Reihe, Schriftgroessen nur aus der Hausskala.
 * Gruen ist klickbar. Status: Gruen = dafuer, Rot = dagegen, Grau = offen
 * oder ohne Beleg; Bernstein = Frist/Hinweis. Die Form traegt die
 * Bedeutung mit (gestrichelt = ohne Beleg, hohl = geplant).
 */
.eu-body { background: var(--boden); }

.eu { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; max-width: 1180px; margin: 0 auto; padding: 24px 24px 56px; }
.eu-leer { margin: 0; color: var(--dim); font-size: 0.875rem; }

/* Beispieldaten sichtbar markieren (Status, nicht Deko) */
.eu-beispiel {
  margin: 0; padding: 8px 12px; border: 1px dashed var(--st-amber); border-radius: 8px;
  background: var(--ground); color: var(--sttext-amber); font-size: 0.875rem; max-width: 60rem;
}

/* ── Kopf ──────────────────────────────────────────────────────── */
.eu-kopf { display: grid; gap: 8px; }
.eu-kicker, .eu-meta {
  font-family: var(--mono); font-size: 0.625rem; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase; color: var(--dim);
}
.eu-kopf h1 { margin: 0; font-family: var(--serif); font-size: 1.75rem; line-height: 1.2; text-wrap: balance; }
.eu-kopf p { margin: 0; max-width: 41rem; color: var(--dim); font-size: 0.875rem; line-height: 1.55; }
.eu-zurueck { font-size: 0.875rem; }

/* ── Tafeln ────────────────────────────────────────────────────── */
.eu-tafel {
  background: var(--ground); border-radius: 18px; border-top: 2px solid var(--text);
  padding: 16px 24px 24px; display: grid; gap: 12px; align-content: start; min-width: 0;
}
.eu-tafel > h2 {
  margin: 0; font-family: var(--serif); font-size: 1.125rem; line-height: 1.3;
}
.eu-tafel__kopf { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.eu-raster { display: grid; gap: 16px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.eu-raster--2 { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }

.eu-zeilen { list-style: none; margin: 0; padding: 0; display: grid; }
.eu-zeilen > li { padding: 10px 0; border-top: 1px solid var(--line); display: grid; gap: 2px; justify-items: start; }
.eu-zeilen > li:first-child { border-top: 0; }
.eu-zeilen a { font-weight: 600; }
.eu-klein { font-size: 0.75rem; color: var(--dim); }
.eu-datum { font-family: var(--mono); font-size: 0.6875rem; color: var(--dim); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }

/* Marken */
.eu-marke {
  display: inline-block; font-family: var(--mono); font-size: 0.625rem; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase; max-width: 100%;
  border: 1px solid var(--line); border-radius: 2px; padding: 2px 6px; color: var(--dim);
}
.eu-marke--betrifft { color: var(--terratext); border-color: var(--terratext); }
.eu-marke--frist { color: var(--sttext-amber); border-color: var(--sttext-amber); }
.eu-marke--traegt { color: var(--sttext-green); border-color: var(--sttext-green); }
.eu-marke--sperr, .eu-marke--scheitert { color: var(--sttext-red); border-color: var(--sttext-red); }
.eu-marke--offen { border-style: dashed; }
.eu-stern {
  background: none; border: 0; cursor: pointer; font-size: 1.125rem; line-height: 1; padding: 4px;
  color: var(--dim); min-width: 32px; min-height: 32px;
}
.eu-stern[aria-pressed="true"] { color: var(--green); }

/* ── Werkzeugleiste (Filter) ───────────────────────────────────── */
.eu-werkzeuge { display: flex; flex-wrap: wrap; gap: 12px 16px; align-items: end; }
.eu-gruppe { display: grid; gap: 4px; }
.eu-chips { display: flex; flex-wrap: wrap; gap: 4px; }
.eu-chips button, .eu-umschalt button {
  min-height: 32px; padding: 4px 12px; cursor: pointer;
  font-family: inherit; font-size: 0.75rem; font-weight: 600; line-height: 1.2;
  color: var(--text); background: var(--ground); border: 1px solid var(--line); border-radius: 8px;
}
.eu-chips button:hover, .eu-umschalt button:hover { background: var(--hover); }
.eu-chips button[aria-pressed="true"], .eu-umschalt button[aria-pressed="true"] { color: #FFFFFF; background: var(--green); border-color: var(--green); }
.eu-umschalt { display: inline-flex; gap: 0; }
.eu-umschalt button { border-radius: 0; }
.eu-umschalt button:first-child { border-radius: 8px 0 0 8px; }
.eu-umschalt button:last-child { border-radius: 0 8px 8px 0; border-left: 0; }
.eu-suche input {
  min-height: 32px; width: 18rem; max-width: 100%; padding: 4px 12px; font-family: inherit; font-size: 0.875rem;
  color: var(--text); background: var(--ground); border: 1px solid var(--line); border-radius: 8px;
}
.eu-chips button:focus-visible, .eu-umschalt button:focus-visible, .eu-suche input:focus-visible, .eu-stern:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }

/* ── Vorhaben-Liste ────────────────────────────────────────────── */
.eu-liste { list-style: none; margin: 0; padding: 0; background: var(--ground); border-radius: 18px; overflow: hidden; }
.eu-zeile {
  display: grid; grid-template-columns: 32px minmax(0, 1fr) 13rem 10rem; gap: 12px; align-items: center;
  padding: 12px 20px; border-top: 1px solid var(--line);
}
.eu-zeile:first-child { border-top: 0; }
.eu-zeile:hover { background: var(--hover); }
.eu-zeile__titel { display: grid; gap: 2px; min-width: 0; }
.eu-zeile__titel a { font-weight: 600; color: var(--text); text-decoration: none; }
.eu-zeile__titel a:hover { text-decoration: underline; }
.eu-zeile__marken { display: flex; flex-wrap: wrap; gap: 4px; }
.eu-zeile__wo { display: grid; gap: 4px; font-size: 0.75rem; justify-items: start; }

/* Mini-Stufenleiste: Punkte, erledigt gefuellt, laufend Ring, offen hohl */
.eu-punkte { display: flex; gap: 3px; align-items: center; }
.eu-punkte i { width: 8px; height: 8px; border-radius: 50%; border: 1.5px solid var(--dim); }
.eu-punkte i.is-erledigt { background: var(--text); border-color: var(--text); }
.eu-punkte i.is-laufend { border-color: var(--green); box-shadow: 0 0 0 2px var(--ground), 0 0 0 3.5px var(--green); background: var(--green); }

/* ── Fliessband ────────────────────────────────────────────────── */
.eu-band { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; overflow-x: auto; }
.eu-band__spalte { background: var(--ground); border-radius: 12px; padding: 12px; display: grid; gap: 8px; align-content: start; min-width: 8.5rem; }
.eu-band__kopf { display: flex; justify-content: space-between; align-items: baseline; gap: 4px; }
.eu-band__karte {
  display: block; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; text-decoration: none;
  color: var(--text); font-size: 0.75rem; line-height: 1.35; background: var(--ground);
}
.eu-band__karte:hover { border-color: var(--green); }
.eu-band__karte.is-betrifft { border-left: 3px solid var(--terra); }

/* ── Stufenleiste (Vorhaben-Seite) ─────────────────────────────── */
.eu-leiste { list-style: none; margin: 0; padding: 0; display: flex; gap: 0; overflow-x: auto; }
/* min-width haelt die Spalten breit genug fuer lange Woerter wie
   "Verhandlungsmandat"; overflow-wrap bricht sie notfalls, statt sie in
   die Nachbarspalte laufen zu lassen. Bei vielen Stufen scrollt die
   Leiste (overflow-x auf .eu-leiste). */
.eu-leiste li { flex: 1 1 0; min-width: 8.5rem; position: relative; padding: 20px 12px 4px 0; }
.eu-leiste li::before { content: ""; position: absolute; left: 0; right: 0; top: 7px; height: 2px; background: var(--line); }
.eu-leiste li.is-erledigt::before { background: var(--text); }
.eu-leiste li::after {
  content: ""; position: absolute; left: 0; top: 1px; width: 10px; height: 10px; border-radius: 50%;
  background: var(--ground); border: 2px solid var(--dim);
}
.eu-leiste li.is-erledigt::after { background: var(--text); border-color: var(--text); }
.eu-leiste li.is-laufend::after { background: var(--green); border-color: var(--green); box-shadow: 0 0 0 3px var(--ground), 0 0 0 5px var(--green); }
.eu-leiste li.is-entfaellt { opacity: 0.5; }
.eu-leiste b { display: block; font-size: 0.75rem; line-height: 1.3; overflow-wrap: anywhere; }
.eu-leiste li.is-laufend b { color: var(--green); }
.eu-leiste span { display: block; }

/* ── Mehrheiten ────────────────────────────────────────────────── */
.eu-mehrheit { display: grid; gap: 8px; }
.eu-mehrheit svg { width: 100%; max-width: 640px; display: block; }
.eu-staaten { display: grid; grid-template-columns: repeat(9, minmax(0, 1fr)); gap: 4px; max-width: 640px; }
.eu-staat {
  border: 1px solid var(--line); border-radius: 8px; padding: 4px 2px; text-align: center;
  font-family: var(--mono); font-size: 0.6875rem; font-weight: 700; background: var(--ground); color: var(--text);
}
.eu-staat small { display: block; font-weight: 400; color: var(--dim); }
.eu-staat.is-ja { background: #E6F4EC; border-color: var(--sttext-green); color: var(--sttext-green); }
.eu-staat.is-nein { background: #FBEAEA; border-color: var(--sttext-red); color: var(--sttext-red); }
.eu-staat.is-offen { border-style: dashed; }
.eu-mehrheit.is-spiel .eu-staat, .eu-mehrheit.is-spiel .eu-fraktion { cursor: pointer; }
.eu-balken { position: relative; height: 10px; background: var(--hover); border-radius: 5px; max-width: 640px; }
.eu-balken i { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 5px; background: var(--st-green); }
.eu-balken i.is-nein { background: var(--st-red); }
.eu-balken b { position: absolute; top: -4px; bottom: -4px; width: 2px; background: var(--text); }
.eu-fraktionen { display: flex; flex-wrap: wrap; gap: 4px; }
.eu-fraktion {
  font-family: inherit; font-size: 0.75rem; border: 1px solid var(--line); border-radius: 8px;
  background: var(--ground); color: var(--text); padding: 4px 8px; min-height: 28px;
}
.eu-fraktion i { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px; vertical-align: -1px; }
.eu-rechnung { margin: 0; font-size: 0.875rem; max-width: 41rem; }

/* ── Zeitstrahl, Termine, In Kraft ─────────────────────────────── */
.eu-strahl { list-style: none; margin: 0; padding: 0 0 0 16px; border-left: 2px solid var(--line); display: grid; gap: 12px; }
.eu-strahl li { position: relative; display: grid; gap: 2px; }
.eu-strahl li::before { content: ""; position: absolute; left: -22px; top: 4px; width: 10px; height: 10px; border-radius: 50%; background: var(--text); }
.eu-zitat { margin: 4px 0 0; padding-left: 10px; border-left: 2px solid var(--line); font-size: 0.75rem; font-style: italic; color: var(--dim); }

.eu-spur { display: grid; grid-template-columns: minmax(8rem, 16rem) minmax(0, 1fr); gap: 12px; align-items: center; padding: 6px 0; border-top: 1px solid var(--line); }
.eu-spur--kopf { border-top: 0; padding-bottom: 12px; }
.eu-spur > a { font-size: 0.75rem; font-weight: 600; line-height: 1.3; }
.eu-spur__bahn { position: relative; height: 16px; border-bottom: 1px solid var(--line); }
.eu-spur__bahn--kopf { border-bottom: 0; height: 20px; }
.eu-spur__jahr { position: absolute; top: 0; transform: translateX(-50%); font-family: var(--mono); font-size: 0.625rem; font-weight: 700; color: var(--dim); }
.eu-spur__heute { position: absolute; top: -6px; bottom: -8px; width: 2px; background: var(--green); }
.eu-spur__heute span { position: absolute; top: -10px; left: 4px; font-family: var(--mono); font-size: 0.625rem; font-weight: 700; color: var(--green); text-transform: uppercase; }
.eu-spur__marke { position: absolute; top: 3px; margin: 0 0 0 -5px; }
.eu-spur__marke.is-vorbei { opacity: 0.45; }
details.eu-tafel > summary { cursor: pointer; }
.eu-monat { display: grid; gap: 4px; }
.eu-monat h3 { margin: 8px 0 0; font-family: var(--mono); font-size: 0.6875rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--dim); }
.eu-form { display: inline-block; width: 10px; height: 10px; margin-right: 6px; vertical-align: -1px; background: var(--text); }
.eu-form--inkrafttreten { border-radius: 50%; }
.eu-form--geltung { border-radius: 0; }
.eu-form--umsetzung { transform: rotate(45deg) scale(0.85); }
.eu-form--uebergang { background: none; border: 2px solid var(--text); border-radius: 50%; }
.eu-form--ueberpruefung { background: none; border: 2px dashed var(--text); }

.eu-kal { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.eu-kal div { min-height: 64px; border: 1px solid var(--line); border-radius: 8px; padding: 4px 6px; font-size: 0.6875rem; background: var(--ground); display: grid; align-content: start; gap: 2px; }
.eu-kal div.is-leer { background: none; border-style: dashed; }
.eu-kal div.is-heute { border-color: var(--green); box-shadow: inset 0 0 0 1px var(--green); }
.eu-kal .eu-kal__tag { font-family: var(--mono); color: var(--dim); }
.eu-kal .eu-kal__t { color: var(--text); line-height: 1.3; }
.eu-kal__wt { font-family: var(--mono); font-size: 0.625rem; color: var(--dim); text-transform: uppercase; text-align: center; }

/* ── Profil ────────────────────────────────────────────────────── */
.eu-merkmale { display: flex; flex-wrap: wrap; gap: 6px; }
.eu-merkmal {
  display: inline-flex; align-items: center; gap: 6px; font-size: 0.75rem; padding: 4px 4px 4px 10px;
  border: 1px solid var(--line); border-radius: 8px; background: var(--ground);
}
.eu-merkmal button { border: 0; background: none; cursor: pointer; color: var(--dim); min-width: 24px; min-height: 24px; }
.eu-feld { display: flex; gap: 8px; flex-wrap: wrap; }
.eu-feld input, .eu-feld select {
  min-height: 32px; padding: 4px 10px; font-family: inherit; font-size: 0.875rem; border: 1px solid var(--line); border-radius: 8px; background: var(--ground); color: var(--text);
}

/* Pflichtzeilen */
.eu-pflicht { margin: 0; font-family: var(--mono); font-size: 0.625rem; line-height: 1.55; color: var(--dim); max-width: 60rem; }
.eu-pflicht b { color: var(--text); }

@media (max-width: 960px) {
  .eu-raster, .eu-raster--2 { grid-template-columns: minmax(0, 1fr); }
  .eu-zeile { grid-template-columns: 32px minmax(0, 1fr); }
  .eu-zeile__wo, .eu-zeile__mehr { grid-column: 2; }
  .eu-band { grid-template-columns: repeat(7, 9rem); }
  .eu-staaten { grid-template-columns: repeat(7, minmax(0, 1fr)); }
}
@media (pointer: coarse) {
  .eu-unternav button, .eu-fassungen button, .eu-chips button, .eu-umschalt button, .eu-fraktion, .eu-zahl { min-height: 44px; }
}


/* ══ Fassung b ══════════════════════════════════════════════════════ */

/* ── Einstieg: Befund und Suche ────────────────────────────────── */
.eu-einstieg { display: grid; gap: 16px; }
.eu-einstieg h1 { margin: 0; font-family: var(--serif); font-size: 2.625rem; line-height: 1.1; text-wrap: balance; max-width: 22ch; }
.eu-einstieg__dek { margin: 0; color: var(--dim); font-size: 1rem; max-width: 41rem; }
.eu-suchfeld { position: relative; max-width: 46rem; }
.eu-suchfeld input {
  width: 100%; min-height: 52px; padding: 12px 16px 12px 48px; font-family: inherit; font-size: 1.125rem; color: var(--text);
  background: var(--ground); border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 1px 0 var(--line);
}
.eu-suchfeld input:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
.eu-suchfeld svg { position: absolute; left: 16px; top: 50%; width: 20px; height: 20px; margin-top: -10px; stroke: var(--dim); fill: none; stroke-width: 2; }

/* ── Diese Woche: drei Zahlen, die zu ihren Listen springen ──────── */
.eu-woche { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.eu-zahl {
  display: grid; gap: 2px; text-align: left; cursor: pointer; font-family: inherit; color: var(--text);
  background: var(--ground); border: 1px solid var(--line); border-radius: 8px; padding: 12px 16px;
}
.eu-zahl:hover { border-color: var(--green); }
.eu-zahl b { font-family: var(--serif); font-size: 1.75rem; line-height: 1.1; font-variant-numeric: tabular-nums; }
.eu-zahl span { font-size: 0.75rem; color: var(--dim); }

/* ── Kacheln der Vorlagen ──────────────────────────────────────── */
.eu-phase { display: grid; gap: 12px; }
.eu-phase__kopf { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; border-bottom: 2px solid var(--text); padding-bottom: 6px; }
.eu-phase__kopf h2 { margin: 0; white-space: nowrap; font-family: var(--serif); font-size: 1.3125rem; }
.eu-kacheln { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(20rem, 100%), 1fr)); gap: 12px; }
.eu-kachel {
  position: relative; display: grid; grid-template-columns: 48px minmax(0, 1fr); grid-template-rows: auto 1fr auto; gap: 8px 12px;
  background: var(--ground); border: 1px solid var(--line); border-radius: 18px; padding: 16px; color: var(--text); text-decoration: none;
  min-height: 11rem; transition: border-color 0.12s;
}
.eu-kachel:hover { border-color: var(--green); }
.eu-kachel:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
.eu-kachel.is-betrifft { border-top: 3px solid var(--terra); }
.eu-zeichen {
  grid-row: 1 / span 2; width: 48px; height: 48px; border-radius: 8px; display: grid; place-items: center;
  font-family: var(--serif); font-weight: 700; font-size: 1.125rem; color: #FFFFFF; background: var(--green);
}
.eu-zeichen--rl { background: #1F3A5C; }
.eu-zeichen--be { background: #4A3A1A; }
.eu-zeichen--in { background: transparent; color: var(--text); border: 1.5px dashed var(--dim); }
.eu-kachel__titel { font-family: var(--serif); font-size: 1rem; font-weight: 700; line-height: 1.3; hyphens: auto; overflow-wrap: break-word; }
.eu-kachel__kennung { display: block; font-family: var(--mono); font-size: 0.625rem; color: var(--dim); margin-top: 2px; overflow-wrap: anywhere; font-weight: 400; }
.eu-kachel__wo { grid-column: 2; font-size: 0.75rem; color: var(--dim); align-self: end; }
.eu-kachel__wo b { color: var(--text); }
.eu-kachel__fuss { grid-column: 1 / -1; display: grid; gap: 8px; }
.eu-kachel__marken { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
/* Stern liegt neben dem Link, nicht darin: kein Knopf in einem Link */
.eu-kachel-rahmen { position: relative; display: grid; }
.eu-kachel-rahmen > .eu-stern { position: absolute; right: 8px; top: 8px; }
.eu-kachel-rahmen .eu-kachel__titel { padding-right: 32px; }
.eu-fortschritt { display: flex; gap: 2px; }
.eu-fortschritt i { flex: 1 1 0; height: 6px; border-radius: 2px; background: var(--line); }
.eu-fortschritt i.is-erledigt { background: var(--text); }
.eu-fortschritt i.is-laufend { background: var(--green); }

/* ── Akte eines Vorhabens ──────────────────────────────────────── */
.eu-akte-kopf { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 16px; align-items: start; }
.eu-akte-kopf .eu-zeichen { width: 64px; height: 64px; font-size: 1.3125rem; grid-row: auto; }
.eu-akte-kopf h1 { margin: 4px 0 8px; font-family: var(--serif); font-size: 2.125rem; line-height: 1.15; text-wrap: balance; }
.eu-akte-kopf p { margin: 0 0 8px; color: var(--dim); max-width: 41rem; }
.eu-unternav {
  position: sticky; top: 0; z-index: 5; display: flex; gap: 4px; overflow-x: auto;
  background: var(--boden); padding: 8px 0; border-bottom: 1px solid var(--line);
}
.eu-unternav button {
  flex: 0 0 auto; font-family: var(--mono); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--text); background: var(--ground); border: 1px solid var(--line); border-radius: 8px; padding: 8px 12px; min-height: 32px; cursor: pointer;
}
.eu-unternav button:hover { border-color: var(--green); }
.eu-unternav button:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
.eu-abschnitt { display: grid; gap: 16px; scroll-margin-top: 64px; }
.eu-abschnitt > h2 { margin: 0; font-family: var(--serif); font-size: 1.5rem; }
.eu-fakten { display: grid; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.eu-fakten div { background: var(--ground); padding: 10px 14px; display: grid; gap: 2px; }
.eu-fakten dt { font-family: var(--mono); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--dim); }
.eu-fakten dd { margin: 0; font-size: 0.875rem; }
.eu-fakten { margin: 0; }

/* Gesetzestext und Ablage */
.eu-fassungen { display: flex; flex-wrap: wrap; gap: 4px; }
.eu-fassungen button {
  font-family: inherit; font-size: 0.75rem; font-weight: 600; min-height: 32px; padding: 4px 12px; cursor: pointer;
  color: var(--text); background: var(--ground); border: 1px solid var(--line); border-radius: 8px;
}
.eu-fassungen button[aria-pressed="true"] { color: #FFFFFF; background: var(--green); border-color: var(--green); }
.eu-leser { display: grid; grid-template-columns: 14rem minmax(0, 1fr); gap: 16px; min-height: 12rem; }
.eu-leser__inhalt { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; align-content: start; border-right: 1px solid var(--line); padding-right: 12px; font-size: 0.75rem; }
.eu-leser__text { max-width: 41rem; font-size: 1rem; line-height: 1.7; }
.eu-leser__leer { border: 1px dashed var(--line); border-radius: 8px; padding: 16px; color: var(--dim); font-size: 0.875rem; grid-column: 1 / -1; }
.eu-ablage { list-style: none; margin: 0; padding: 0; display: grid; }
.eu-ablage li { display: grid; grid-template-columns: 3.5rem minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 0; border-top: 1px solid var(--line); }
.eu-ablage li:first-child { border-top: 0; }
.eu-format {
  font-family: var(--mono); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.08em; text-align: center;
  border: 1px solid var(--text); border-radius: 2px; padding: 4px 0;
}
.eu-ablage .btn-quiet { white-space: nowrap; }

/* Stimmen: wer sich fuer das Vorhaben interessiert */
.eu-stimmen { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 8px; }
.eu-stimme { display: grid; gap: 4px; background: var(--ground); border: 1px solid var(--line); border-radius: 8px; padding: 12px; }
.eu-stimme a { font-weight: 600; }

/* ── Fussleiste ────────────────────────────────────────────────── */
.eu-fuss { max-width: 1180px; margin: 0 auto; padding: 24px 24px 48px; border-top: 1px solid var(--line); display: grid; gap: 12px; }
.eu-fuss__wege { display: flex; flex-wrap: wrap; gap: 8px 20px; align-items: center; font-size: 0.875rem; }
.eu-fuss__wege button { font: inherit; color: var(--link); background: none; border: 0; padding: 0; cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.eu-fuss__methode summary { cursor: pointer; font-size: 0.875rem; color: var(--dim); }
.eu-fuss__methode p { font-size: 0.875rem; color: var(--dim); max-width: 41rem; }

/* ── Profil: Code-Sperre ───────────────────────────────────────── */
.eu-sperre { display: grid; gap: 12px; max-width: 31rem; background: var(--ground); border-radius: 18px; border-top: 2px solid var(--text); padding: 16px 24px 24px; }
.eu-sperre h2 { margin: 0; font-family: var(--serif); font-size: 1.125rem; }
.eu-code { font-family: var(--mono); font-size: 1.5rem; letter-spacing: 0.3em; width: 10ch; min-height: 48px; padding: 4px 12px; border: 1px solid var(--line); border-radius: 8px; }
.eu-fehler { color: var(--sttext-red); font-size: 0.875rem; margin: 0; }

/* ── Einrichtung (Dialog beim ersten Besuch) ───────────────────── */
.eu-einr { border: 0; border-radius: 18px; padding: 0; width: min(40rem, calc(100vw - 32px)); background: var(--ground); color: var(--text); }
.eu-einr::backdrop { background: rgba(17, 22, 15, 0.55); }
.eu-einr__kopf { border-top: 2px solid var(--text); border-radius: 18px 18px 0 0; padding: 16px 24px 0; display: grid; gap: 6px; }
.eu-einr__kopf h2 { margin: 0; font-family: var(--serif); font-size: 1.5rem; }
.eu-einr__schritte { display: flex; gap: 4px; }
.eu-einr__schritte i { flex: 1 1 0; height: 4px; border-radius: 2px; background: var(--line); }
.eu-einr__schritte i.is-an { background: var(--green); }
.eu-einr__inhalt { padding: 16px 24px; display: grid; gap: 12px; max-height: 60vh; overflow-y: auto; }
.eu-einr__inhalt p { margin: 0; max-width: 34rem; }
.eu-einr__fuss { display: flex; justify-content: space-between; gap: 8px; padding: 12px 24px 20px; border-top: 1px solid var(--line); }

@media (max-width: 960px) {
  .eu-einstieg h1 { font-size: 1.75rem; }
  .eu-akte-kopf { grid-template-columns: 48px minmax(0, 1fr); }
  .eu-akte-kopf .eu-zeichen { width: 48px; height: 48px; font-size: 1rem; }
  .eu-akte-kopf h1 { font-size: 1.5rem; }
  .eu-leser { grid-template-columns: minmax(0, 1fr); }
  .eu-leser__inhalt { border-right: 0; padding-right: 0; }
  .eu-ablage li { grid-template-columns: 3rem minmax(0, 1fr); }
  .eu-ablage li > :last-child { grid-column: 2; justify-self: start; }
}
/* Handy: die drei Zahlen bleiben nebeneinander, nur kleiner */
@media (max-width: 600px) {
  .eu-woche { gap: 8px; }
  .eu-zahl { padding: 12px; }
  .eu-zahl b { font-size: 1.3125rem; }
  .eu-zahl span { font-size: 0.6875rem; }
}
@media (prefers-reduced-motion: reduce) { .eu-kachel { transition: none; } }

/* ── Fassung c: Kopfnavigation, Kachelart, Zeitleiste der Fristen ── */
.eu-oben { flex-wrap: wrap; row-gap: 8px; }
.eu-kachel__art { display: block; font-family: var(--mono); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--dim); margin-bottom: 4px; }

.eu-zeitbar { display: grid; gap: 16px; }
.eu-zeitbar__bahn { position: relative; height: 56px; margin: 0 12px; border-bottom: 2px solid var(--text); }
.eu-zeitbar__heute { position: absolute; left: 0; bottom: -6px; width: 2px; height: 12px; background: var(--terra); }
.eu-zeitbar__monat { position: absolute; bottom: -22px; transform: translateX(-50%); font-family: var(--mono); font-size: 0.625rem; color: var(--dim); white-space: nowrap; }
.eu-zeitbar__monat::before { content: ""; position: absolute; left: 50%; top: -6px; width: 1px; height: 6px; background: var(--dim); }
.eu-zeitbar__monat.is-jahr { font-weight: 700; color: var(--text); }
.eu-zeitbar__punkt {
  position: absolute; bottom: 8px; transform: translateX(-50%); width: 24px; height: 24px; border-radius: 50%;
  display: grid; place-items: center; font-family: var(--mono); font-size: 0.6875rem; font-weight: 700;
  background: var(--green); color: #F9F2E4; text-decoration: none;
}
.eu-zeitbar__punkt.is-betrifft { background: var(--terra); color: #111111; }
.eu-zeitbar__karten { list-style: none; margin: 24px 0 0; padding: 0 0 4px; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(15rem, 1fr); gap: 12px; overflow-x: auto; }
.eu-zeitbar__karten a {
  display: grid; gap: 4px; height: 100%; box-sizing: border-box; padding: 12px 16px; border: 1px solid var(--line); border-radius: 8px;
  background: var(--ground); color: var(--text); text-decoration: none;
}
.eu-zeitbar__karten a:hover { border-color: var(--green); }
.eu-zeitbar__karten a.is-betrifft { border-left: 3px solid var(--terra); }
.eu-zeitbar__karten .eu-datum b { display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; background: var(--green); color: #F9F2E4; font-size: 0.625rem; margin-right: 4px; }
.eu-zeitbar__karten a.is-betrifft .eu-datum b { background: var(--terra); color: #111111; }
@media (max-width: 600px) { .eu-zeitbar__karten { grid-auto-columns: minmax(80%, 1fr); } }

/* ── Mitwirken und Verbandsregister ─────────────────────────────── */
.eu-marke--mw-offen { color: var(--sttext-green); border-color: var(--sttext-green); }
.eu-marke--mw-kommt { color: var(--sttext-amber); border-color: var(--sttext-amber); }
.eu-marke--mw-zu { color: var(--dim); border-color: var(--line); }
.eu-mwliste { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.eu-mw { display: grid; gap: 4px; justify-items: start; padding: 12px 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--ground); }
.eu-mw.is-offen { border-left: 3px solid var(--sttext-green); }
.eu-mw.is-kommt { border-left: 3px solid var(--sttext-amber); }
.eu-mw.is-zu { background: transparent; }
.eu-mw b { font-family: var(--serif); font-size: 1rem; }
.eu-mw__knopf { margin-top: 4px; }
.eu-mw__knopf a { display: inline-block; }
.eu-mitwirken { display: grid; gap: 8px; }
.eu-unterbrechung { margin: 0; padding: 12px 16px; border: 1px solid var(--sttext-amber); border-radius: 8px; background: var(--ground); font-size: 0.875rem; }
.eu-unterbrechung b { color: var(--sttext-amber); }
.eu-register { overflow-x: auto; }
.eu-register table { width: 100%; border-collapse: collapse; font-size: 0.875rem; min-width: 40rem; }
.eu-register th { text-align: left; font-family: var(--mono); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--dim); padding: 8px 12px; border-bottom: 2px solid var(--text); }
.eu-register td { padding: 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
.eu-register td a b { font-weight: 700; }
.eu-stimme { align-content: start; }

/* ── Live-Anbindung (Fassung d, 28.09.2026) ──────────────────────── */
/* Abstimmung im Ausschuss der Mitgliedstaaten: nur Zahlen laut Abstimmungsbogen */
.eu-stimmbalken { display: flex; height: 12px; max-width: 640px; border-radius: 2px; overflow: hidden; background: var(--hover); }
.eu-stimmbalken i, .eu-stimmzahlen i { display: block; }
.eu-stimmbalken .is-ja, .eu-stimmzahlen .is-ja { background: var(--st-green); }
.eu-stimmbalken .is-nein, .eu-stimmzahlen .is-nein { background: var(--st-red); }
.eu-stimmbalken .is-enth, .eu-stimmzahlen .is-enth { background: var(--st-amber); }
.eu-stimmbalken .is-weg, .eu-stimmzahlen .is-weg { background: var(--line); }
.eu-stimmzahlen { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 8px 0 0; padding: 0; list-style: none; font-size: 0.75rem; color: var(--dim); }
.eu-stimmzahlen li { display: flex; align-items: center; gap: 6px; }
.eu-stimmzahlen i { width: 10px; height: 10px; border-radius: 2px; }
.eu-stimmzahlen b { color: var(--text); font-variant-numeric: tabular-nums; }
/* Fassungsvergleich: gestrichen / eingefuegt wortweise */
.eu-diff { font-style: normal; color: var(--text); line-height: 1.55; }
.eu-diff del { color: var(--sttext-red); text-decoration: line-through; }
.eu-diff ins { color: var(--sttext-green); text-decoration: underline; text-decoration-thickness: 1px; }
.eu-fassliste { margin: 0 0 12px; padding: 0; list-style: none; display: grid; gap: 4px; font-size: 0.75rem; }
.eu-fassliste li { display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: baseline; }
.eu-marke--aend-neu { color: var(--sttext-green); border-color: var(--sttext-green); }
.eu-marke--aend-gestrichen { color: var(--sttext-red); border-color: var(--sttext-red); }
.eu-marke--aend-geaendert { color: var(--sttext-amber); border-color: var(--sttext-amber); }
/* Naechste Fristen: kompakte Liste statt hoher Karten (Fassung e) */
.eu-zeitbar__karten { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); overflow: visible; }
.eu-zeitbar__karten a { height: auto; align-content: start; }
.eu-zeitbar__titel { font-family: var(--serif); font-size: 0.875rem; font-weight: 700; line-height: 1.3; overflow-wrap: break-word; hyphens: auto;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.eu-kachel__titel .eu-klein { display: block; font-family: var(--sans, inherit); font-weight: 400; }
.eu-amtlich { max-width: 41rem; font-size: 0.75rem; color: var(--dim); }
.eu-amtlich .eu-meta { margin-right: 4px; }
.eu-zeitbar__punkt { width: auto; min-width: 24px; padding: 0 6px; box-sizing: border-box; border-radius: 12px; }

/* ── App eines Rechtsakts (REACH, Fassung h) ─────────────────────── */
.eu-ga-karten { display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: 12px; }
.eu-ga-karte { display: grid; gap: 4px; align-content: start; padding: 16px; border: 1px solid var(--line); border-left: 3px solid var(--green); border-radius: 8px;
  background: var(--ground); color: var(--text); text-decoration: none; }
.eu-ga-karte:hover { border-color: var(--green); }
.eu-ga-karte b { font-family: var(--serif); font-size: 1.3125rem; }
.eu-ga-kopf .eu-zeile__marken { gap: 8px; margin-top: 8px; }
.eu-ga-zahlen { display: grid; grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); gap: 0; margin: 16px 0; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.eu-ga-zahlen div { padding: 12px 16px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); margin: -1px -1px 0 0; }
.eu-ga-zahlen dt { font-family: var(--mono); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--dim); }
.eu-ga-zahlen dd { margin: 4px 0 0; font-size: 1.3125rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.eu-ga-jahr { font-family: var(--mono); font-size: 0.75rem; font-weight: 700; margin: 16px 0 4px; padding-top: 8px; border-top: 1px solid var(--line); }
.eu-ga-balken { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; font-size: 0.75rem; }
.eu-ga-balken li { display: grid; grid-template-columns: minmax(8rem, 12rem) 1fr 3rem; gap: 8px; align-items: center; }
.eu-ga-balken i { display: block; height: 8px; border-radius: 2px; background: var(--green); min-width: 2px; }
.eu-ga-balken b { text-align: right; font-variant-numeric: tabular-nums; }
.eu-stimmbalken--klein { height: 8px; max-width: 12rem; }
.eu-suchfeld--klein { max-width: 18rem; }
.eu-ga-fassungen summary { cursor: pointer; font-size: 0.875rem; margin: 8px 0; }
.eu-ga-zahlen { grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); }

/* ── Verordnungen und Richtlinien, Bereich je Rechtsakt, Stoffgruppe (Fassung i) ── */
.eu-raster--halb { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.eu-einstieg--start h1 { max-width: 18ch; }
.eu-einfach { margin: 0; max-width: 41rem; font-size: 1rem; line-height: 1.55; }
.eu-frist { font-size: 0.875rem; font-weight: 700; color: var(--sttext-amber); }
.eu-ga-karte__stand { font-family: var(--mono); font-size: 0.6875rem; color: var(--dim); margin-top: 4px; }

/* Kopf eines Bereichs und Reiter */
.eu-bereich-kopf { display: grid; gap: 8px; }
.eu-bereich-kopf h1 { margin: 0; font-family: var(--serif); font-size: 2.625rem; line-height: 1.1; text-wrap: balance; }
.eu-bereich-kopf__dek { margin: 0; max-width: 41rem; font-size: 1.125rem; color: var(--dim); }
.eu-bereich-kopf .eu-zeile__marken { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.eu-tabs { display: flex; flex-wrap: wrap; gap: 0; border-bottom: 2px solid var(--text); margin-bottom: -8px; scrollbar-width: none; }
.eu-tabs a { flex: none; padding: 12px 16px; font-size: 0.875rem; font-weight: 600; color: var(--dim); text-decoration: none; border-bottom: 3px solid transparent; margin-bottom: -2px; white-space: nowrap; }
.eu-tabs a:hover { color: var(--text); }
.eu-tabs a[aria-selected="true"] { color: var(--text); border-bottom-color: var(--green); }
.eu-tabs a:focus-visible { outline: 2px solid var(--green); outline-offset: -2px; }
.eu-tabinhalt { display: grid; gap: 24px; min-width: 0; }

/* Schwerpunkt aus dem Profil */
.eu-schwerpunkt { display: grid; gap: 16px; padding: 24px; background: var(--ground); border-radius: 18px; border-top: 2px solid var(--text); }
.eu-schwerpunkt__kopf { display: grid; gap: 4px; }
.eu-schwerpunkt__kopf h2 { margin: 0; font-family: var(--serif); font-size: 2.125rem; line-height: 1.1; }
.eu-schwerpunkt__kopf p { margin: 0; max-width: 41rem; color: var(--dim); font-size: 0.875rem; }
.eu-schwerpunkt__haupt { display: grid; gap: 8px; }

/* Karte eines Verfahrens (ECHA, Ausschuss) */
.eu-karte { display: grid; gap: 8px; padding: 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--ground); min-width: 0; }
.eu-karte--gross { padding: 24px; border-color: var(--text); }
.eu-karte__kopf { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; }
.eu-karte h3 { margin: 0; font-family: var(--serif); font-size: 1.125rem; line-height: 1.3; overflow-wrap: anywhere; }
.eu-karte--gross h3 { font-size: 1.5rem; }
.eu-karte h3 a { color: var(--text); }
.eu-karte__stand { margin: 0; font-size: 0.875rem; line-height: 1.55; }
.eu-karte__doks summary { cursor: pointer; font-size: 0.875rem; font-weight: 600; color: var(--green); }
.eu-karte__doks ul { margin: 8px 0 0; padding-left: 16px; display: grid; gap: 4px; font-size: 0.875rem; }
.eu-karte > .eu-klein { margin: 0; }

/* Etappen: waagrecht, auf schmalen Schirmen senkrecht. Voll = erledigt, Ring = laufend, hohl = offen */
.eu-stepper { list-style: none; margin: 4px 0; padding: 0; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(7rem, 1fr); overflow-x: auto; }
.eu-stepper li { position: relative; display: grid; gap: 2px; align-content: start; padding: 20px 8px 0 0; font-size: 0.75rem; line-height: 1.35; }
.eu-stepper li::before { content: ""; position: absolute; left: 0; top: 4px; width: 12px; height: 12px; border-radius: 50%; box-sizing: border-box; border: 2px solid var(--line); background: var(--ground); z-index: 1; }
.eu-stepper li::after { content: ""; position: absolute; left: 12px; right: 0; top: 9px; height: 2px; background: var(--line); }
.eu-stepper li:last-child::after { display: none; }
.eu-stepper li.is-erledigt::before, .eu-stepper li.is-abgeschlossen::before { background: var(--green); border-color: var(--green); }
.eu-stepper li.is-erledigt::after, .eu-stepper li.is-abgeschlossen::after { background: var(--green); }
.eu-stepper li.is-laufend::before, .eu-stepper li.is-aktuell::before { border-color: var(--st-amber); border-width: 3px; }
.eu-stepper li.is-offen, .eu-stepper li.is-geplant { color: var(--dim); }
.eu-stepper li b { font-weight: 600; }
.eu-stepper li.is-laufend b, .eu-stepper li.is-aktuell b { font-weight: 700; }

/* Weg einer Beschraenkung, Hilfe zum Aufklappen */
.eu-hilfe { border: 1px solid var(--line); border-radius: 8px; background: var(--ground); }
.eu-hilfe > summary { cursor: pointer; padding: 12px 16px; font-size: 0.875rem; font-weight: 600; }
.eu-hilfe > div { padding: 0 16px 16px; display: grid; gap: 12px; }
.eu-weg { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: 8px; }
.eu-weg li { display: grid; gap: 4px; padding: 12px; border-top: 2px solid var(--green); background: var(--boden); border-radius: 2px; font-size: 0.75rem; line-height: 1.45; }
.eu-weg b { font-size: 0.875rem; }

/* Beschraenkungen: drei Stationen nebeneinander */
.eu-board { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: start; }
.eu-board__spalte { display: grid; gap: 12px; padding: 16px; background: var(--boden); border: 1px solid var(--line); border-radius: 18px; min-width: 0; }
.eu-board__spalte > h2 { margin: 0; font-family: var(--serif); font-size: 1.125rem; }
.eu-board__spalte > .eu-klein { margin: -8px 0 0; }
.eu-board .eu-stepper { grid-auto-flow: row; grid-auto-columns: auto; }
.eu-board .eu-stepper li { padding: 0 0 8px 20px; }
.eu-board .eu-stepper li::before { top: 2px; }
.eu-board .eu-stepper li::after { left: 5px; top: 14px; bottom: -2px; right: auto; width: 2px; height: auto; }

/* Mehrheiten: Liste links, drei Gremien rechts */
.eu-mehrheiten-neu { display: grid; grid-template-columns: minmax(16rem, 22rem) minmax(0, 1fr); gap: 24px; align-items: start; }
.eu-abstimmungsliste { display: grid; gap: 8px; max-height: 80vh; overflow-y: auto; padding-right: 4px; }
.eu-abstimmungsliste ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.eu-abstimmungsliste li button { width: 100%; display: grid; gap: 2px; justify-items: start; text-align: left; padding: 8px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--ground); color: var(--text); font: inherit; font-size: 0.875rem; line-height: 1.35; cursor: pointer; }
.eu-abstimmungsliste li button:hover { border-color: var(--green); }
.eu-abstimmungsliste li button[aria-pressed="true"] { border-color: var(--green); box-shadow: inset 3px 0 0 var(--green); }
.eu-abstimmungsliste li button:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
.eu-gremien__titel { margin: 0 0 12px; font-family: var(--serif); font-size: 1.3125rem; line-height: 1.3; }
.eu-gremien { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1.25fr) minmax(0, 0.9fr); gap: 16px; align-items: start; }
.eu-gremien--liste { grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr)); }
.eu-gremium { display: grid; gap: 8px; padding: 16px; background: var(--ground); border-radius: 18px; border-top: 2px solid var(--text); min-width: 0; font-size: 0.875rem; line-height: 1.5; }
.eu-gremium p { margin: 0; }
.eu-gremium h4 { margin: 0; font-family: var(--mono); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--dim); }
.eu-gremium--leise { background: transparent; border: 1px dashed var(--line); border-top: 2px solid var(--line); }
.eu-gremium__ergebnis { font-size: 1rem; }
.eu-halbrund { width: 100%; height: auto; display: block; }
.eu-fraktionsliste { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; font-size: 0.75rem; font-variant-numeric: tabular-nums; }
.eu-fraktionsliste li { display: grid; grid-template-columns: 10px 4rem 1fr; gap: 8px; align-items: center; }
.eu-fraktionsliste i { width: 10px; height: 10px; border-radius: 2px; }
/* 27 Mitgliedstaaten als Punkte; Strich bei 15 (Mindestzahl fuer die qualifizierte Mehrheit) */
.eu-punkte27 { position: relative; display: grid; grid-template-columns: repeat(27, 1fr); gap: 3px; padding: 8px 0; }
.eu-punkte27 i { aspect-ratio: 1; border-radius: 50%; background: var(--line); }
.eu-punkte27 i.is-ja { background: var(--st-green); }
.eu-punkte27 i.is-nein { background: var(--st-red); }
.eu-punkte27 i.is-enth { background: var(--st-amber); }
.eu-punkte27 i.is-weg { background: transparent; border: 1px dashed var(--dim); }
.eu-punkte27__schwelle { position: absolute; top: 0; bottom: 0; left: calc(15 / 27 * 100% - 1.5px); width: 2px; background: var(--text); }
.eu-stimmzahlen .is-weg { background: transparent; border: 1px dashed var(--dim); }
.eu-rs-liste > li { grid-template-columns: minmax(0, 1fr); }

@media (max-width: 900px) {
  .eu-board, .eu-gremien, .eu-mehrheiten-neu, .eu-raster--halb { grid-template-columns: minmax(0, 1fr); }
  .eu-abstimmungsliste { max-height: 40vh; }
  .eu-mehrheiten-neu__panel { order: -1; }
  .eu-bereich-kopf h1 { font-size: 1.75rem; }
}
@media (max-width: 600px) {
  .eu-stepper { grid-auto-flow: row; grid-auto-columns: auto; }
  .eu-stepper li { padding: 0 0 8px 20px; }
  .eu-stepper li::before { top: 2px; }
  .eu-stepper li::after { left: 5px; top: 14px; bottom: -2px; right: auto; width: 2px; height: auto; }
  .eu-schwerpunkt { padding: 16px; }
}
@media (pointer: coarse) { .eu-tabs a, .eu-abstimmungsliste li button { min-height: 44px; } }
.eu-karte__doks { display: grid; gap: 8px; }
.eu-karte__doks h4 { margin: 8px 0 0; }
.eu-sektoren { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 4px 16px; font-size: 0.875rem; }
.eu-sektoren li { padding: 4px 0 4px 8px; border-left: 2px solid var(--line); }
.eu-sektoren li.is-passt { border-left-color: var(--st-amber); font-weight: 600; }
/* CLP, POP, RoHS (Fassung j) */
.eu-board--zwei { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.eu-gefahren { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px; }
.eu-gefahren li { padding: 2px 8px; border: 1px dashed var(--sttext-amber); border-radius: 2px; font-size: 0.75rem; color: var(--sttext-amber); }
.eu-gefahren.is-fest li { border-style: solid; border-color: var(--sttext-red); color: var(--sttext-red); }
.eu-rohs-tabelle { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
.eu-rohs-tabelle th { text-align: left; font-family: var(--mono); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--dim); padding: 4px 8px 4px 0; border-bottom: 2px solid var(--text); }
.eu-rohs-tabelle td { padding: 8px 8px 8px 0; border-bottom: 1px solid var(--line); }
@media (max-width: 900px) { .eu-board--zwei { grid-template-columns: minmax(0, 1fr); } }
/* Kandidatenliste (Fassung k) */
.eu-board--breit { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); }
.eu-karten-reihe { display: grid; grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr)); gap: 12px; }
.eu-pflichten { margin: 0; padding-left: 16px; display: grid; gap: 8px; font-size: 0.875rem; line-height: 1.55; max-width: 60rem; }
.eu-abgleich { border-top-color: var(--green); }
.eu-abgleich.is-treffer { border-top-color: var(--st-red); }
.eu-abgleich p { margin: 0; font-size: 0.875rem; }
@media (max-width: 900px) { .eu-board--breit { grid-template-columns: minmax(0, 1fr); } }

/* ════════ Euro Law Workspace (Fassung l) ════════ */
.eu-kopfsuche { display: flex; align-items: center; gap: 4px; margin-right: 16px; }
.eu-kopfsuche input { height: 32px; width: 240px; border: 0; border-radius: 2px; padding: 0 10px; font: inherit; font-size: 0.875rem; color: var(--text); background: #FFFFFF; }
.eu-kopfsuche button { height: 32px; padding: 0 12px; border: 1px solid rgba(255,255,255,0.5); border-radius: 2px; background: transparent; color: #FFFFFF; font: inherit; font-size: 0.75rem; font-weight: 600; cursor: pointer; }
.eu-kopfsuche button:hover { background: rgba(255,255,255,0.12); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.eu-stoerung { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 10px 16px; background: #FFF4E0; border: 1px solid #F3D29B; border-radius: 8px; font-size: 0.875rem; }
.eu-stoerung b { font-family: var(--mono); font-size: 0.6875rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--sttext-amber); }
.eu-stoerung a { font-weight: 600; white-space: nowrap; }

.ws-kopf { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; }
.ws-kopf h1 { margin: 6px 0 0; font-family: var(--serif); font-size: 2.125rem; line-height: 1.2; }
.ws-kopf__knoepfe, .ws-akt-kopf__knoepfe { display: flex; gap: 8px; flex-wrap: wrap; }
.ws-zahlen { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.ws-zahl { background: var(--ground); border-radius: 18px; border-top: 2px solid var(--text); padding: 16px 20px; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ws-zahl b { font-family: var(--serif); font-size: 1.75rem; line-height: 1.2; }
.ws-zahl > span:last-child { font-size: 0.875rem; color: var(--dim); overflow-wrap: anywhere; }
.ws-zahl.is-warn { border-top-color: var(--sttext-amber); }
.ws-zahl.is-warn > span:last-child { color: var(--sttext-amber); font-weight: 600; }

.ws-raster { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.ws-spalte { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.ws-block { display: flex; flex-direction: column; gap: 12px; }
.ws-block__kopf { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.ws-block > .ws-block__kopf { border-bottom: 2px solid var(--text); padding-bottom: 6px; }
.ws-block__kopf h2, .ws-tafel h2 { margin: 0; font-family: var(--serif); font-size: 1.125rem; line-height: 1.3; }
.ws-tafel { background: var(--ground); border-radius: 18px; border-top: 2px solid var(--text); padding: 18px 22px; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.ws-tafel--warn { border-top-color: var(--sttext-amber); }
.ws-tafel--terra { border-top-color: var(--terratext); }
.ws-tafel--gruen { border-top-color: var(--green); }
.ws-tafel p { margin: 0; font-size: 0.875rem; line-height: 1.55; }
.ws-terra { color: var(--terratext); }
.ws-amber { color: var(--sttext-amber); }
.ws-voll { grid-column: 1 / -1; width: 100%; }

.ws-dossiers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ws-dossiers--vier { grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); }
.ws-dossier { display: flex; flex-direction: column; gap: 6px; padding: 16px; background: var(--ground); border: 1px solid var(--line); border-radius: 8px; color: var(--text); text-decoration: none; min-width: 0; }
.ws-dossier:hover { border-color: var(--green); }
.ws-dossier > b { font-family: var(--serif); font-size: 1.125rem; }
.ws-dossier--vorgang { grid-column: 1 / -1; border-color: var(--text); gap: 10px; }
.ws-dossier--vorgang > b { font-size: 1.3125rem; }
.ws-dossier--vorgang > span:last-child { font-size: 0.875rem; }
.ws-dossier__termin { font-size: 0.875rem; }
.ws-leiste { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 4px; }
.ws-leiste i { height: 6px; border-radius: 2px; background: var(--line); }
.ws-leiste i.is-erledigt { background: var(--green); }
.ws-leiste i.is-laufend { background: var(--st-amber); }

.ws-feed { list-style: none; margin: 0; padding: 0; }
.ws-feed__zeile { display: grid; grid-template-columns: 92px 170px minmax(0, 1fr); gap: 12px; padding: 9px 0; border-top: 1px solid var(--line); font-size: 0.875rem; align-items: baseline; }
.ws-feed__zeile:first-child { border-top: 0; }
.ws-feed__zeile a { overflow-wrap: anywhere; }
.ws-chip { display: inline-flex; align-items: center; height: 34px; padding: 0 14px; border: 1px solid var(--line); border-radius: 2px; background: var(--ground); color: var(--text); font-size: 0.875rem; text-decoration: none; }
.ws-chip:hover, .ws-chip.is-an { border-color: var(--green); background: #EEF4EE; color: var(--green); font-weight: 600; }
.ws-unterwahl { margin-bottom: 4px; }

.ws-termine { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ws-termin { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 10px; align-items: start; }
.ws-termin__tag { background: var(--boden); border-radius: 8px; padding: 5px 0; text-align: center; display: flex; flex-direction: column; }
.ws-termin__tag b { font-family: var(--serif); font-size: 0.875rem; }
.ws-termin__text { border-left: 3px solid var(--green); padding-left: 10px; font-size: 0.875rem; display: flex; flex-direction: column; gap: 2px; min-width: 0; overflow-wrap: anywhere; }
.ws-mitwirken { display: flex; flex-direction: column; gap: 3px; font-size: 0.875rem; padding-top: 8px; border-top: 1px solid var(--line); }
.ws-mitwirken:first-of-type { border-top: 0; padding-top: 0; }
.ws-gespeichert { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: 0.875rem; }
.ws-gespeichert li { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.ws-x { border: 0; background: transparent; color: var(--dim); font-size: 1.3125rem; line-height: 1; cursor: pointer; min-width: 32px; min-height: 32px; border-radius: 2px; }
.ws-x:hover { background: var(--hover); color: var(--text); }

.ws-punkt { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: var(--line); margin-right: 6px; flex: none; }
.ws-punkt.is-gruen { background: var(--st-green); } .ws-punkt.is-gelb { background: var(--st-amber); } .ws-punkt.is-rot { background: var(--st-red); } .ws-punkt.is-grau { background: #B8B2A4; }
.ws-quellenleiste { display: flex; gap: 8px 24px; flex-wrap: wrap; border-top: 1px solid var(--line); padding-top: 12px; font-family: var(--mono); font-size: 0.6875rem; color: var(--dim); align-items: center; }
.ws-quellenleiste a { margin-left: auto; font-family: var(--sans, inherit); font-size: 0.875rem; }

/* Bereich eines Rechtsakts */
.ws-akt-kopf { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; }
.ws-akt-kopf__meta { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.ws-akt-kopf h1 { margin: 6px 0 4px; font-family: var(--serif); font-size: 2.625rem; line-height: 1.1; text-wrap: balance; overflow-wrap: anywhere; }
.ws-akt-kopf p { margin: 0; max-width: 48rem; color: var(--dim); font-size: 1.125rem; }
.ws-pille { font-family: var(--mono); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; border: 1px solid; border-radius: 2px; padding: 1px 6px; }
.ws-pille.is-gruen { color: var(--sttext-green); } .ws-pille.is-gelb { color: var(--sttext-amber); }
.ws-leiste-gross { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.ws-leiste-gross li { display: flex; flex-direction: column; gap: 4px; font-size: 0.875rem; padding-top: 12px; border-top: 8px solid var(--line); border-radius: 2px; }
.ws-leiste-gross li.is-erledigt { border-top-color: var(--green); }
.ws-leiste-gross li.is-laufend { border-top-color: var(--st-amber); }
.ws-leiste-gross li span { color: var(--dim); }
.ws-leiste-gross li.is-laufend span { color: var(--sttext-amber); font-weight: 600; }
.ws-spur { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 8px 16px; border-top: 1px solid var(--line); padding-top: 12px; align-items: start; }
.ws-spur:empty { display: none; }
.ws-spur > .eu-meta { padding-top: 5px; }
.ws-spur__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.ws-spur__chip { background: var(--boden); border-radius: 2px; padding: 3px 8px; font-size: 0.875rem; color: var(--text); text-decoration: none; }
.ws-spur__chip:hover { color: var(--green); text-decoration: underline; }
.ws-spur__chip.is-warm { background: #FFF4E0; font-weight: 600; }
.ws-aufeinenblick { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.ws-aufeinenblick > div { display: flex; flex-direction: column; gap: 6px; }
.ws-profilkarten { display: grid; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); gap: 10px; }
.ws-profilkarte { border: 1px solid var(--line); border-radius: 8px; padding: 12px; display: flex; flex-direction: column; gap: 4px; color: var(--text); text-decoration: none; font-size: 0.875rem; }
.ws-profilkarte:hover { border-color: var(--green); }
.ws-profilkarte.is-warn .eu-meta { color: var(--sttext-amber); } .ws-profilkarte.is-rot .eu-meta { color: var(--sttext-red); } .ws-profilkarte.is-gruen .eu-meta { color: var(--sttext-green); }
.ws-wer { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 8px 12px; margin: 0; font-size: 0.875rem; }
.ws-wer dt { padding-top: 2px; } .ws-wer dd { margin: 0; overflow-wrap: anywhere; }
.ws-datenlage { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 0.875rem; line-height: 1.45; }
.ws-datenlage li { display: flex; align-items: baseline; }
.ws-stand { margin: 0; }
.ws-staaten { display: grid; grid-template-columns: repeat(9, minmax(0, 1fr)); gap: 4px; }
.ws-staat { display: flex; flex-direction: column; align-items: center; padding: 6px 0; border-radius: 2px; font-family: var(--mono); font-size: 0.6875rem; }
.ws-staat small { font-size: 0.625rem; }
.ws-staat.is-gemeldet { background: #DDEBDD; color: var(--sttext-green); }
.ws-staat.is-leer { background: var(--ground); border: 1px solid var(--dim); color: var(--dim); }
.ws-staat.is-de { outline: 2px solid var(--green); }
.ws-legende { display: flex; gap: 16px; flex-wrap: wrap; font-size: 0.75rem; align-items: center; }
.ws-legende i.ws-staat { display: inline-block; width: 12px; height: 12px; padding: 0; margin-right: 6px; vertical-align: -2px; }

/* Vorgang */
.ws-pfad { display: flex; gap: 8px; flex-wrap: wrap; font-size: 0.875rem; color: var(--dim); }
.ws-pfad span:last-child { color: var(--text); font-weight: 600; }
/* Mindestbreite je Phase, sonst ueberlappen bei vielen Phasen (COD mit ~12
   Etappen) die langen Labels. Reicht der Platz nicht, scrollt die Leiste. */
.ws-phasen { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(8.5rem, 1fr); gap: 10px; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 6px; }
.ws-phase { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ws-phase i { height: 10px; border-radius: 2px; background: var(--line); }
.ws-phase.is-erledigt i { background: var(--green); } .ws-phase.is-laufend i { background: var(--st-amber); outline: 3px solid #FDE7C2; }
.ws-phase b { font-family: var(--mono); font-size: 0.6875rem; line-height: 1.3; text-transform: uppercase; overflow-wrap: anywhere; }
.ws-drei { display: grid; grid-template-columns: repeat(auto-fit, minmax(19rem, 1fr)); gap: 20px; align-items: start; }
.ws-kasten { background: var(--boden); border-radius: 8px; padding: 10px 14px; display: flex; flex-direction: column; gap: 4px; font-size: 0.875rem; }
.ws-kern { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 8px 12px; margin: 0; font-size: 0.875rem; }
.ws-kern dt { font-weight: 700; } .ws-kern dd { margin: 0; }
.ws-hebel { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 8px; font-size: 0.875rem; line-height: 1.45; }
.ws-hebel li { display: flex; flex-direction: column; }
.ws-hebel li.is-vorbei { color: var(--dim); }
.ws-hebel li.is-jetzt b { color: var(--sttext-amber); }

/* Recherche */
.ws-suche-kopf { display: flex; flex-direction: column; gap: 8px; }
.ws-suchfeld { display: flex; align-items: center; gap: 12px; background: var(--ground); border: 2px solid var(--green); border-radius: 8px; padding: 0 8px 0 16px; min-height: 52px; }
.ws-suchfeld svg { width: 20px; height: 20px; fill: none; stroke: var(--green); stroke-width: 2; flex: none; }
.ws-suchfeld input { flex-grow: 1; border: 0; outline: none; font: inherit; font-size: 1.125rem; background: transparent; min-width: 0; }
.ws-recherche { display: grid; grid-template-columns: 240px minmax(0, 1fr) 280px; gap: 24px; align-items: start; }
.ws-facetten { background: #FBF8F1; border: 1px solid var(--line); border-radius: 18px; padding: 16px; display: flex; flex-direction: column; gap: 16px; font-size: 0.875rem; }
.ws-facetten fieldset { border: 0; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ws-facetten label, .ws-kal__seite label { display: flex; gap: 8px; align-items: center; }
.ws-facetten input[type=checkbox], .ws-kal__seite input[type=checkbox], .ws-abo__wahl input { accent-color: var(--green); width: 16px; height: 16px; flex: none; }
.ws-treffer { list-style: none; margin: 0; padding: 0; }
.ws-treffer li { display: flex; flex-direction: column; gap: 3px; padding: 10px 0; border-top: 1px solid var(--line); font-size: 0.875rem; }
.ws-treffer li:first-child { border-top: 0; }
.ws-treffer a { font-weight: 600; overflow-wrap: anywhere; }
.ws-marke { align-self: flex-start; font-size: 0.6875rem; font-weight: 700; font-family: var(--mono); text-transform: uppercase; color: var(--terratext); border: 1px solid var(--terratext); border-radius: 2px; padding: 0 6px; text-decoration: none; }
.ws-spalte .btn-primary, .ws-spalte .btn-quiet { align-self: flex-start; }

/* Quellen */
.ws-quellen { display: grid; grid-template-columns: 24px minmax(0, 1.1fr) minmax(0, 1.8fr) 90px 120px; font-size: 0.875rem; }
.ws-quellen > div { display: contents; }
.ws-quellen > div > span { padding: 10px 10px 10px 0; border-top: 1px solid var(--line); overflow-wrap: anywhere; }
.ws-quellen__kopf > span { border-top: 0 !important; padding-bottom: 4px !important; }

/* Kalender */
.ws-kal { display: grid; grid-template-columns: 250px minmax(0, 1fr) 300px; border: 1px solid var(--line); border-radius: 18px; overflow: hidden; background: var(--ground); min-height: 720px; }
.ws-kal__seite { background: #FBF8F1; border-right: 1px solid var(--line); padding: 18px; display: flex; flex-direction: column; gap: 18px; }
.ws-kal__seite fieldset { border: 0; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; font-size: 0.875rem; }
.ws-kal__seite i { width: 10px; height: 10px; border-radius: 2px; flex: none; }
.ws-auswahl { flex-direction: column; align-items: stretch !important; gap: 4px !important; }
.ws-auswahl select { height: 34px; border: 1px solid var(--line); border-radius: 8px; padding: 0 8px; font: inherit; background: var(--ground); }
.ws-mini { display: flex; flex-direction: column; gap: 6px; }
.ws-mini__gitter { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 2px; text-align: center; }
.ws-mini__wt { font-family: var(--mono); font-size: 0.625rem; color: var(--dim); }
.ws-mini__gitter button { border: 0; background: transparent; font: inherit; font-size: 0.75rem; padding: 4px 0; border-radius: 50%; cursor: pointer; color: var(--text); }
.ws-mini__gitter button:hover { background: var(--hover); }
.ws-mini__gitter button.is-anders { color: #B8B2A4; }
.ws-mini__gitter button.is-voll { font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.ws-mini__gitter button.is-heute { background: var(--green); color: #FFFFFF; }
.ws-mini__gitter button.is-wahl { outline: 2px solid var(--green); }
.ws-kal__haupt { display: flex; flex-direction: column; min-width: 0; }
.ws-kal__leiste { display: flex; align-items: center; gap: 8px; padding: 12px 16px; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.ws-kal__leiste h1 { margin: 0 0 0 8px; font-family: var(--serif); font-size: 1.3125rem; flex-grow: 1; }
.ws-kal__pfeil { width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 2px; background: var(--ground); font-size: 1.125rem; cursor: pointer; }
.ws-kal__ansichten { display: flex; border: 1px solid var(--line); border-radius: 2px; overflow: hidden; }
.ws-kal__ansichten button { height: 36px; padding: 0 12px; border: 0; border-left: 1px solid var(--line); background: var(--ground); font: inherit; font-size: 0.875rem; cursor: pointer; }
.ws-kal__ansichten button:first-child { border-left: 0; }
.ws-kal__ansichten button[aria-pressed="true"] { background: var(--green); color: #FFFFFF; font-weight: 600; }
.ws-kal__kopfzeile { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-bottom: 1px solid var(--line); }
.ws-kal__kopfzeile span { padding: 6px 8px; }
.ws-kal__monat { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); grid-auto-rows: minmax(112px, auto); flex-grow: 1; }
.ws-kal__zelle { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 6px; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ws-kal__zelle.is-we { background: #FCFAF5; }
.ws-kal__zelle.is-anders { background: #F7F3EA; }
.ws-kal__zelle.is-anders .ws-kal__nr { color: #B8B2A4; }
.ws-kal__nr { align-self: flex-start; border: 0; background: transparent; font-family: var(--serif); font-weight: 700; font-size: 0.875rem; min-width: 26px; height: 26px; border-radius: 50%; cursor: pointer; color: var(--text); }
.ws-kal__nr:hover { background: var(--hover); }
.ws-kal__zelle.is-heute .ws-kal__nr { background: var(--green); color: #FFFFFF; }
.ws-kal__ev { display: flex; flex-direction: column; text-align: left; border: 0; border-left: 3px solid var(--green); background: #F2F1EC; border-radius: 2px; padding: 3px 6px; font: inherit; font-size: 0.6875rem; line-height: 1.3; cursor: pointer; color: var(--text); min-width: 0; width: 100%; }
.ws-kal__ev b { font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ws-kal__ev span { color: var(--dim); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ws-kal__ev:hover, .ws-kal__ev.is-an { background: #E4EEE4; }
.ws-kal__mehr { border: 0; background: transparent; font: inherit; font-size: 0.6875rem; color: var(--green); text-align: left; cursor: pointer; padding: 0 6px; }
.ws-kal__woche { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); flex-grow: 1; }
.ws-kal__wtag { border-right: 1px solid var(--line); padding: 8px; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ws-kal__wtag.is-heute { background: #F4F8F4; }
.ws-kal__wkopf { border: 0; background: transparent; text-align: left; font: inherit; cursor: pointer; display: flex; flex-direction: column; padding: 0 0 6px; border-bottom: 1px solid var(--line); }
.ws-kal__wkopf b { font-family: var(--serif); font-size: 1.125rem; }
.ws-kal__tag, .ws-kal__liste { padding: 16px; display: flex; flex-direction: column; gap: 8px; }
.ws-kal__tag .ws-kal__ev, .ws-kal__liste .ws-kal__ev { font-size: 0.875rem; padding: 8px 10px; }
.ws-kal__tag .ws-kal__ev b, .ws-kal__tag .ws-kal__ev span, .ws-kal__liste .ws-kal__ev b, .ws-kal__liste .ws-kal__ev span { white-space: normal; }
.ws-kal__liste h3 { margin: 12px 0 0; }
.ws-kal__lzeile { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 12px; align-items: start; }
.ws-kal__detail { border-left: 1px solid var(--line); padding: 20px; display: flex; flex-direction: column; gap: 12px; }
.ws-kal__detail h2 { margin: 0; font-family: var(--serif); font-size: 1.125rem; line-height: 1.3; overflow-wrap: anywhere; }
.ws-kal__aktionen { display: flex; flex-direction: column; gap: 8px; border-top: 1px solid var(--line); padding-top: 12px; font-size: 0.875rem; align-items: flex-start; }

/* Abo-Dialog */
.ws-dialog { width: min(640px, calc(100vw - 32px)); border: 0; border-radius: 18px; border-top: 2px solid var(--text); padding: 24px 26px; box-sizing: border-box; }
.ws-dialog::backdrop { background: rgba(25, 28, 21, 0.45); }
.ws-dialog__kopf { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 14px; }
.ws-dialog__kopf h2 { margin: 4px 0 0; font-family: var(--serif); font-size: 1.3125rem; }
.ws-abo__wahl { border: 0; margin: 0 0 12px; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 20px; font-size: 0.875rem; }
.ws-abo__wahl legend { margin-bottom: 8px; }
.ws-abo__wahl label { display: flex; gap: 8px; align-items: center; }
.ws-abo__link { display: flex; flex-direction: column; gap: 10px; }
.ws-abo__zeile { display: flex; gap: 8px; }
.ws-abo__zeile input { flex-grow: 1; height: 44px; border: 1px solid var(--line); border-radius: 8px; padding: 0 12px; font-family: var(--mono); font-size: 0.75rem; background: #FBF8F1; min-width: 0; }
.ws-abo__schritte { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 4px; font-size: 0.875rem; }
.ws-abo__liste { border-top: 1px solid var(--line); margin-top: 14px; padding-top: 12px; font-size: 0.875rem; }
.ws-abo__liste ul { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ws-abo__liste li { display: flex; justify-content: space-between; gap: 12px; align-items: center; }

@media (max-width: 1100px) {
  .ws-recherche { grid-template-columns: 220px minmax(0, 1fr); }
  .ws-recherche > aside:last-child { grid-column: 1 / -1; }
  .ws-kal { grid-template-columns: 220px minmax(0, 1fr); }
  .ws-kal__detail { grid-column: 1 / -1; border-left: 0; border-top: 1px solid var(--line); }
}
@media (max-width: 900px) {
  .ws-zahlen { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ws-raster, .ws-recherche, .ws-kal, .ws-aufeinenblick { grid-template-columns: minmax(0, 1fr); }
  .ws-dossiers { grid-template-columns: minmax(0, 1fr); }
  .ws-leiste-gross { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ws-spur { grid-template-columns: minmax(0, 1fr); }
  .ws-feed__zeile { grid-template-columns: 84px minmax(0, 1fr); }
  .ws-feed__zeile a { grid-column: 1 / -1; }
  .ws-kal__seite { border-right: 0; border-bottom: 1px solid var(--line); }
  .ws-kal__monat { grid-auto-rows: minmax(64px, auto); }
  .ws-kal__ev span { display: none; }
  .ws-kal__woche { grid-template-columns: minmax(0, 1fr); }
  .ws-quellen { grid-template-columns: 24px minmax(0, 1fr) 80px; }
  .ws-quellen > div > span:nth-child(3), .ws-quellen > div > span:nth-child(4) { display: none; }
  .eu-kopfsuche input { width: 150px; }
  .ws-akt-kopf h1 { font-size: 1.75rem; }
  .ws-staaten { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .ws-zahlen { grid-template-columns: minmax(0, 1fr); }
  .eu-kopfsuche { display: none; }
  .ws-kal__monat .ws-kal__ev { font-size: 0; min-height: 6px; padding: 0; }
  .ws-abo__wahl { grid-template-columns: minmax(0, 1fr); }
}
@media (pointer: coarse) { .ws-chip, .ws-kal__ansichten button, .ws-kal__nr, .ws-mini__gitter button { min-height: 44px; } }
@media print { .lh__bar, .eu-fuss, .eu-kopfsuche, .ws-kopf__knoepfe, .ws-quellenleiste { display: none !important; } .ws-raster { grid-template-columns: minmax(0, 1fr); } }
.ws-block .eu-phase__kopf h2, .eu-phase__kopf h2 { white-space: normal; }
/* Verfahrensweg eines Vorgangs (Fassung m): senkrecht, je Phase Rolle und Etappen */
.ws-weg__satz { max-width: 60rem; }
.ws-weg { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; }
.ws-weg__phase { display: grid; grid-template-columns: minmax(0, 20rem) minmax(0, 1fr); gap: 16px; padding: 14px 0; border-top: 1px solid var(--line); }
.ws-weg__phase:first-child { border-top: 0; }
.ws-weg__kopf { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 12px; align-items: start; }
.ws-weg__kopf > div { display: flex; flex-direction: column; gap: 4px; }
.ws-weg__kopf b { font-family: var(--serif); font-size: 1.125rem; line-height: 1.3; }
.ws-weg__nr { width: 28px; height: 28px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-family: var(--mono); font-size: 0.75rem; font-weight: 700; border: 2px solid var(--line); color: var(--dim); background: var(--ground); }
.ws-weg__phase.is-erledigt .ws-weg__nr { background: var(--green); border-color: var(--green); color: #FFFFFF; }
.ws-weg__phase.is-laufend .ws-weg__nr { border-color: var(--st-amber); border-width: 3px; color: var(--sttext-amber); }
.ws-weg__phase.is-laufend { background: #FFFBF3; margin: 0 -22px; padding-left: 22px; padding-right: 22px; }
.ws-weg__phase.is-offen .ws-weg__kopf b { color: var(--dim); }
.ws-weg__jetzt { font-family: var(--mono); font-size: 0.625rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--sttext-amber); border: 1px solid var(--sttext-amber); border-radius: 2px; padding: 1px 5px; vertical-align: 3px; }
.ws-rolle { align-self: flex-start; font-family: var(--mono); font-size: 0.6875rem; font-weight: 700; border-radius: 2px; padding: 2px 6px; }
.ws-rolle.is-vorschlag { background: var(--boden); color: var(--dim); }
.ws-rolle.is-empfiehlt { border: 1px solid var(--sttext-amber); color: var(--sttext-amber); }
.ws-rolle.is-entscheidet { background: var(--green); color: #FFFFFF; }
.ws-rolle.is-kontrolle { border: 1px dashed var(--dim); color: var(--dim); }
.ws-rolle.is-gilt { background: #DDEBDD; color: var(--sttext-green); }
.ws-weg__inhalt { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ws-weg__etappen { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.ws-weg__etappen li { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 12px; font-size: 0.875rem; padding-left: 12px; border-left: 3px solid var(--line); }
.ws-weg__etappen li.is-erledigt { border-left-color: var(--green); }
.ws-weg__etappen li.is-laufend { border-left-color: var(--st-amber); font-weight: 600; }
.ws-weg__etappen li.is-offen { color: var(--dim); }
@media (max-width: 900px) {
  .ws-weg__phase { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .ws-weg__inhalt { padding-left: 44px; }
  .ws-weg__etappen li { grid-template-columns: 84px minmax(0, 1fr); }
}
.ws-weg__phase.is-entfaellt { opacity: 0.55; } .ws-weg__phase.is-entfaellt .ws-weg__nr { border-style: dashed; }
.ws-weg__phase.is-abgebrochen .ws-weg__nr { border-color: var(--sttext-red); color: var(--sttext-red); } .ws-weg__phase.is-abgebrochen .ws-weg__kopf b::after { content: " · zurückgezogen"; font-family: var(--mono); font-size: 0.6875rem; color: var(--sttext-red); }

/* ── Positionen der Mitgliedstaaten (Fassung n) ───────────────────── */
.ws-haltungen__doks { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr)); gap: 24px; align-items: start; }
.ws-haltung { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.ws-haltung__kopf { display: flex; flex-direction: column; gap: 4px; }
.ws-haltung__kopf h3 { margin: 0; font-family: var(--serif); font-size: 1.125rem; line-height: 1.3; }
.ws-haltung__kopf .eu-klein { max-width: 46rem; }
.ws-haltung__zitate { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.ws-haltung__zitate li { display: flex; flex-direction: column; gap: 4px; }
.ws-haltung__zitate b { font-size: 0.875rem; }
.ws-haltung__zitate blockquote { margin: 0; padding: 0 0 0 12px; border-left: 2px solid var(--green); font-family: var(--serif); font-size: 0.875rem; line-height: 1.6; color: var(--text); max-width: 46rem; overflow-wrap: anywhere; }
.ws-haltungen { display: flex; flex-direction: column; gap: 16px; }
