/* HSK-Controlling: Einfärbung von KERN in Bochum-Blau und eigene Bausteine (ADR 0007).
   KERN selbst liegt unverändert in static/vendor/. Kein Lila. */

html[data-kern-theme="light"] {
  --bochum-blau: #0f2864;
  --bochum-blau-hell: #e7ebf4;
  --bochum-blau-mittel: #c5cfe4;
  --fokus: #ffbf47;
  --kern-color-action-default: var(--bochum-blau);
  --kern-color-decorative-brand-default: var(--bochum-blau);
  --kern-color-action-visited: var(--bochum-blau);
  --rahmen: #c9ccd4;
  --gedaempft: #5b6070;
  --negativ: #8a1c1c;
  --erfolg: #0f6e4f;
  --warnung: #8a5300;
  --diagramm-soll: #1c9c8c;
  --diagramm-prognose: #2f5fb3;
  --diagramm-ist: #b5651d;
}

html, body.seite { background: #f5f6f9; }
body.seite { margin: 0; min-height: 100vh; color: #131525; }
.kern-sr-only, .sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.sprunglink { position: absolute; left: -10000px; }
.sprunglink:focus { left: 1rem; top: 1rem; background: #fff; padding: .5rem; z-index: 10; }
:focus-visible { outline: 3px solid var(--fokus); outline-offset: 1px; }
.nowrap { white-space: nowrap; }
[hidden] { display: none !important; }

/* ---------------------------------------------------------------- Kopf */
.kopf { background: var(--bochum-blau); color: #fff; }
.kopf__zeile {
  display: flex; flex-wrap: wrap; gap: .5rem 2rem; align-items: center;
  max-width: 1880px; margin: 0 auto; padding: .5rem 1.5rem;
}
.kopf__titel { color: #fff; font-weight: 600; font-size: 1.125rem; text-decoration: none; }
.kopf__stadt { font-weight: 400; opacity: .8; margin-left: .5rem; }
.kopf__navigation { display: flex; flex-wrap: wrap; gap: .25rem; flex: 1 1 auto; max-width: 100%; }
.kopf__navigation a {
  color: #fff; text-decoration: none; padding: .5rem .75rem; border-radius: 4px; border-bottom: 3px solid transparent;
}
.kopf__navigation a:hover { background: rgb(255 255 255 / .12); }
.kopf__navigation a[aria-current="page"] { border-bottom-color: #fff; font-weight: 600; }
.kopf__benutzer { display: flex; gap: 1rem; align-items: center; }
.kopf__benutzer form { margin: 0; }
.kopf .kopf__abmelden { background: transparent; box-shadow: inset 0 0 0 2px #fff; border: none; }
.kopf .kopf__abmelden .kern-label { color: #fff; }

/* ---------------------------------------------------------------- Inhalt */
.inhalt { max-width: 1280px; margin: 1.5rem auto; padding: 0 1.5rem; }
.inhalt--breit { max-width: 1880px; margin-top: .75rem; }
.karte { background: #fff; border-radius: .5rem; padding: 1.5rem 2rem; box-shadow: 0 1px 3px rgb(0 0 0 / .12); }
.karte--schmal { max-width: 28rem; margin: 2rem auto; }
.seitenkopf { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 1rem; }
.seitenkopf .kern-heading-large { margin: 0; }
.abschnitt { margin-top: 1.5rem; }
.brotkrumen { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; font-size: .875rem; margin-bottom: .25rem; line-height: 1.5; }
.brotkrumen > span { color: var(--gedaempft); }

/* ---------------------------------------------------------------- Liste */
.schnellwahl { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; }
.ist-aktiv { background: var(--bochum-blau-hell); }
.filterleiste {
  display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: end; background: #fff; padding: .75rem 1rem;
  border-radius: 6px; box-shadow: 0 1px 3px rgb(0 0 0 / .1); margin: 1rem 0 .5rem;
}
.filterleiste { flex-direction: column; align-items: stretch; }
.filterleiste__zeile { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: end; }
.filterleiste__weitere > summary { cursor: pointer; font-size: .875rem; color: var(--bochum-blau); width: fit-content; }
.filterleiste__weitere[open] > summary { margin-bottom: .5rem; }
.filterleiste .kern-form-input { margin: 0; min-width: 8rem; }
.filterleiste__suche { flex: 1 1 14rem; }
.filterleiste__optionen { display: flex; flex-direction: column; gap: .25rem; }
.filterleiste__optionen .kern-form-check { margin: 0; }
.filterleiste__knoepfe { display: flex; gap: .5rem; flex-wrap: wrap; }
.ergebniszeile { color: var(--gedaempft); font-size: .875rem; margin: .25rem 0 .5rem; }
.teil-anlegen { display: flex; gap: .75rem; align-items: flex-end; flex-wrap: wrap; margin-top: .75rem; }
.teil-anlegen .kern-form-input { flex: 1 1 24rem; }
.tabellenrahmen { background: #fff; border-radius: 6px; box-shadow: 0 1px 3px rgb(0 0 0 / .1); overflow-x: auto; }
.massnahmenliste .kern-table__cell, .massnahmenliste .kern-table__header { vertical-align: middle; padding: .35rem .4rem; font-size: .875rem; }
/* KERN-Kästchen samt Häkchen gleichmäßig verkleinern (Häkchen ist für 32 px positioniert). */
.massnahmenliste .kern-form-check__checkbox { zoom: .75; margin: 0; vertical-align: middle; }
.zeile--teil { background: #f7f8fb; font-style: italic; }
.zeile--teil .zelle-titel { padding-left: 1.5rem; }
.zeile--ausgewaehlt { background: #dbe4f6; }
.zeile--entfallen { color: var(--gedaempft); text-decoration: line-through; }
.zeile--entfallen a { text-decoration: line-through; }
.zeile--kontext td { color: var(--gedaempft); }
.zeile--eigen { background: var(--bochum-blau-hell); }
.wertart-kuerzel {
  display: inline-block; margin-left: .25rem; font-size: .7rem; font-style: normal; padding: 0 .25rem;
  border: 1px solid var(--rahmen); border-radius: 3px; color: var(--gedaempft);
}
.betrag--negativ { color: var(--negativ); }
.betrag--positiv { color: var(--erfolg); }

/* ---------------------------------------------------------------- Gemeinsame Tabelle (ADR 0018) */
.tabellenwerkzeuge { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; align-items: center; margin: .5rem 0; }
.tabellenwerkzeuge__knoepfe { display: flex; gap: .25rem; flex-wrap: wrap; margin-left: auto; }
.werteschalter { display: inline-flex; flex-wrap: wrap; align-items: center; row-gap: .25rem; }
.werteschalter__titel { font-size: .875rem; color: var(--gedaempft); margin-right: .5rem; }
.werteschalter__wahl {
  padding: .25rem .75rem; font-size: .875rem; border: 1px solid var(--bochum-blau); color: var(--bochum-blau);
  background: #fff; text-decoration: none; margin-left: -1px;
}
.werteschalter__wahl:first-of-type { border-radius: 4px 0 0 4px; }
.werteschalter__wahl:last-of-type { border-radius: 0 4px 4px 0; }
.werteschalter__wahl.ist-aktiv { background: var(--bochum-blau); color: #fff; font-weight: 600; }
.werteschalter__wahl:focus-visible { outline: 3px solid var(--bochum-blau-mittel); outline-offset: 2px; position: relative; }
.jahresauswahl { display: flex; flex-wrap: wrap; gap: .25rem .6rem; align-items: center; border: 0; margin: 0; padding: 0; font-size: .875rem; }
.jahresauswahl__titel { float: left; color: var(--gedaempft); padding: 0; margin-right: .25rem; }
.jahresauswahl__wahl { display: inline-flex; align-items: center; gap: .2rem; white-space: nowrap; }
.zelle-massnahme { min-width: 18rem; }
.zelle-cluster { min-width: 10rem; max-width: 16rem; font-size: .8rem; }
.zelle-cluster .hsk-nr { font-weight: 600; white-space: nowrap; }
.zelle-massnahme__kopf { display: flex; align-items: baseline; gap: .4rem; }
.zelle-massnahme__kopf .ampel { align-self: center; }
.zelle-massnahme__titel .hsk-nr { font-weight: 600; white-space: nowrap; }
.zelle-massnahme__merkmale { display: flex; flex-wrap: wrap; gap: 0 .9rem; margin-left: 2.6rem; font-size: .8rem; color: var(--gedaempft); font-style: normal; }
.zeile--teil .zelle-massnahme { padding-left: 1.5rem; }
.aufklappen {
  flex: none; width: 1.5rem; height: 1.5rem; padding: 0; border: 1px solid var(--rahmen); border-radius: 3px;
  background: #fff; cursor: pointer; align-self: center; display: inline-flex; align-items: center; justify-content: center;
}
.aufklappen:focus-visible { outline: 3px solid var(--bochum-blau-mittel); outline-offset: 1px; }
.aufklappen__pfeil { width: 0; height: 0; border-left: .4rem solid var(--bochum-blau); border-top: .3rem solid transparent; border-bottom: .3rem solid transparent; transition: transform .1s; }
.aufklappen[aria-expanded="true"] .aufklappen__pfeil { transform: rotate(90deg); }
.massnahmenliste .aufklappzeile > td { background: #f7f8fb; padding: .5rem .75rem .75rem 2.6rem; }
.aufklappzeile__rahmen { overflow-x: auto; margin-bottom: .4rem; }
.aufklappzeile .rastertabelle { background: #fff; width: auto; }
.aufklappzeile .rastertabelle td { text-align: right; white-space: nowrap; }
.leerwert { color: var(--gedaempft); font-style: italic; }

/* Ampel: Farbe nie allein, immer mit Text (WCAG 1.4.1) */
.ampel { display: inline-flex; align-items: center; gap: .35rem; white-space: nowrap; font-style: normal; }
.ampel__punkt { width: .8rem; height: .8rem; border-radius: 50%; border: 1px solid rgb(0 0 0 / .35); }
.ampel--gruen .ampel__punkt { background: #1e8a4c; }
.ampel--gelb .ampel__punkt { background: #f2c200; }
.ampel--rot .ampel__punkt { background: #c62828; }
.ampel--grau .ampel__punkt { background: #b0b4bd; }

/* Neutrale kleine Badges (ohne Farbvariante) bekommen einen dezenten Rahmen. */
.kern-badge.kern-badge--small { box-shadow: inset 0 0 0 1px var(--rahmen); }
.titelzusatz {
  display: inline-flex; align-items: center; gap: .5rem; margin-left: .5rem; vertical-align: middle;
  font-weight: 400; font-size: .8rem; color: var(--gedaempft); white-space: nowrap;
}
.titelzusatz__art { color: var(--bochum-blau); border: 1px solid var(--bochum-blau-mittel); border-radius: 3px; padding: 0 .3rem; }
.titelzusatz .ampel__punkt { width: .65rem; height: .65rem; }
.luecke--offen { color: var(--warnung); font-weight: 600; }
.luecke--gedeckt { color: var(--erfolg); font-weight: 600; }
.uebererfuellung { color: var(--erfolg); font-weight: 600; }
.rest-eingabe { width: 7rem; text-align: right; font: inherit; padding: .1rem .25rem; border: 1px solid var(--rahmen); border-radius: 3px; }
.zelle-zahl { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.massnahmenliste tfoot th, .massnahmenliste tfoot td { font-weight: 700; background: #eef1f7; border-top: 2px solid var(--bochum-blau); }
.massnahmenliste tfoot .massnahmenliste__teilsumme { font-weight: 400; border-top: 0; }
.teiluebersicht__status { display: block; font-weight: 400; font-size: .8rem; color: var(--gedaempft); }

.kennzahlen { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: 1rem; margin: 1rem 0; }
.kennzahl { background: #fff; padding: .75rem 1rem; border-radius: 6px; box-shadow: 0 1px 3px rgb(0 0 0 / .1); display: flex; flex-direction: column; }
.kennzahl__titel { color: var(--gedaempft); font-size: .875rem; }
.kennzahl__wert { font-size: 1.5rem; font-weight: 600; color: var(--bochum-blau); font-variant-numeric: tabular-nums; }
.kennzahl__zusatz { color: var(--gedaempft); font-size: .8rem; font-variant-numeric: tabular-nums; }

/* ---------------------------------------------------------------- Dashboard (FA-08) */
.dashboard-kopf__rollen { margin: .25rem 0 0; }
.dashboard-zweispaltig { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.dashboard-zweispaltig .abschnitt { margin-top: 0; }
.diagramm { background: #fff; border-radius: 6px; box-shadow: 0 1px 3px rgb(0 0 0 / .1); padding: .75rem 1rem .5rem; overflow-x: auto; }
.diagramm svg { display: block; width: 100%; min-width: 52rem; height: auto; }
.diagramm__text { font-size: 12px; fill: var(--gedaempft); }
.diagramm__text--achse { text-anchor: end; }
.diagramm__text--jahr { text-anchor: middle; }
.diagramm__raster { stroke: #e6e8ee; stroke-width: 1; }
.diagramm__null { stroke: #5b6070; stroke-width: 1; }
.diagramm__ziel { stroke: #131525; stroke-width: 2; }
.diagramm__flaeche { fill: transparent; }
.diagramm__flaeche:hover { fill: rgb(15 40 100 / .06); }
.balken--soll { fill: var(--diagramm-soll); }
.balken--prognose { fill: var(--diagramm-prognose); }
.balken--ist { fill: var(--diagramm-ist); }
.legende { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; list-style: none; margin: .25rem 0 0; padding: 0; font-size: .875rem; color: var(--gedaempft); }
.legende li { display: inline-flex; align-items: center; gap: .4rem; }
.legende__zeichen { width: .9rem; height: .9rem; display: inline-block; }
.legende__zeichen--soll { background: var(--diagramm-soll); }
.legende__zeichen--prognose { background: var(--diagramm-prognose); }
.legende__zeichen--ist { background: var(--diagramm-ist); }
.legende__zeichen--ziel { height: 0; border-top: 2px solid #131525; }

/* ---------------------------------------------------------------- Detail (eine Bildschirmseite bei 1920×1080) */
.detailkopf { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem 1rem; }
.detailkopf__titel { margin: 0; }
.detailkopf__merkmale { display: flex; flex-wrap: wrap; gap: .4rem; }
.detailkopf p { margin: 0; flex-basis: 100%; }
.hsk-nr { color: var(--bochum-blau); margin-right: .5rem; font-variant-numeric: tabular-nums; }
.hinweisbox { margin: .5rem 0; }

.stammdaten { background: #fff; border-radius: 6px; box-shadow: 0 1px 3px rgb(0 0 0 / .1); padding: .5rem 1rem; margin: .5rem 0; }
.stammdaten__raster { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .1rem 2rem; margin: 0; }
.stammdaten__feld { display: grid; grid-template-columns: 9.5rem 1fr; align-items: start; padding: .2rem 0; border-bottom: 1px solid #eef0f4; }
.stammdaten__feld--breit { grid-column: 1 / -1; grid-template-columns: 9.5rem 1fr; border-bottom: none; }
.stammdaten__feld dt { color: var(--gedaempft); font-size: .875rem; padding-top: .1rem; }
.stammdaten__feld dd { margin: 0; display: flex; gap: .25rem; align-items: start; }
.stammdaten__feld dd > span { flex: 1; }
.stift {
  border: none; background: transparent; cursor: pointer; padding: 0 .25rem; opacity: .45; border-radius: 3px;
}
.stammdaten__feld:hover .stift, .stift:focus-visible { opacity: 1; }
.inline-eingabe { flex: 1; min-height: 2rem; padding: .15rem .4rem; font: inherit; }
/* KERN gibt Optionen 40 px Außenabstand (für Klapplisten gedacht), in einer Mehrfachauswahl passen so nur zwei ins Feld. */
.inline-eingabe[multiple] { height: 9.5rem; overflow-y: auto; }
.inline-eingabe[multiple] option { margin: 0; padding: .15rem .25rem; }
/* KERN setzt große Abstände auf Optionen; in Mehrfachauswahlen passten sonst nur zwei Zeilen. */
.auswahl-mehrfach { height: 8rem; overflow-y: auto; }
.auswahl-mehrfach option { margin: 0; padding: .15rem .25rem; }
.inline-hinweis { display: none; flex-basis: 100%; color: var(--gedaempft); font-size: .8rem; }
.inline-eingabe:not([hidden]) + .inline-hinweis { display: block; }
.stammdaten__feld dd:has(.inline-eingabe[multiple]:not([hidden])) { flex-wrap: wrap; }
.feld--gespeichert { animation: gespeichert 1.6s ease-out; }
@keyframes gespeichert { from { background: #d7f1e3; } to { background: transparent; } }

.finanzen { background: #fff; border-radius: 6px; box-shadow: 0 1px 3px rgb(0 0 0 / .1); padding: .5rem 1rem .75rem; }
.finanzen__kopf { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.5rem; }
.finanzen__kopf h2 { margin: 0; }
.wertart-umschalter { display: inline-flex; border: 2px solid var(--bochum-blau); border-radius: 6px; overflow: hidden; }
.wertart-umschalter__knopf {
  font: inherit; border: none; background: #fff; color: var(--bochum-blau); padding: .3rem .9rem; cursor: pointer;
}
.wertart-umschalter__knopf + .wertart-umschalter__knopf { border-left: 1px solid var(--bochum-blau-mittel); }
.wertart-umschalter__knopf[aria-selected="true"] { background: var(--bochum-blau); color: #fff; font-weight: 600; }
.vorzeichen-hinweis { margin: 0; font-size: .875rem; color: var(--gedaempft); display: flex; align-items: center; gap: .25rem; }

.raster__werkzeuge { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; margin: .5rem 0 .25rem; }
.raster__tastenhilfe { color: var(--gedaempft); font-size: .8rem; margin-left: auto; }
.raster__hinweis { color: var(--gedaempft); font-size: .875rem; margin: .4rem 0; display: flex; gap: .25rem; align-items: center; }

/* Spaltenbreiten nach Inhalt; wird es zu eng, scrollt die Tabelle in ihrem Kasten statt zu überlaufen. */
.raster, .reiter__inhalt, .abschnitt { overflow-x: auto; }
.rastertabelle { border-collapse: collapse; width: 100%; font-variant-numeric: tabular-nums; margin-top: .25rem; }
.rastertabelle th, .rastertabelle td { border: 1px solid var(--rahmen); padding: .3rem .5rem; }
.rastertabelle thead th { background: var(--bochum-blau-hell); text-align: right; font-weight: 600; }
.rastertabelle thead .rastertabelle__ecke, .rastertabelle tbody th, .rastertabelle tfoot th { text-align: left; min-width: 9rem; }
.rastertabelle--kennzahlen .rastertabelle__ecke { min-width: 13rem; }
.rastertabelle--kennzahlen tbody th { font-weight: 400; }
.rastertabelle tbody th { font-weight: 600; background: #fafbfd; }
.rastertabelle td { text-align: right; white-space: nowrap; height: 1.6rem; }
.rastertabelle__saldo th, .rastertabelle__saldo td { font-weight: 700; background: #eef1f7; border-top: 2px solid var(--bochum-blau); }
.rastertabelle__pruefvermerk td { text-align: center; font-size: .8rem; }
.pruefvermerk { display: inline-flex; gap: .25rem; align-items: center; cursor: pointer; }
.pruefvermerk--zurueckgesetzt { box-shadow: inset 0 -3px 0 var(--warnung); }

/* bearbeitbares Raster */
[data-bearbeitbar] .rastertabelle tbody td { cursor: cell; background: #fff; }
[data-bearbeitbar] .rastertabelle tbody td:hover { background: #f3f6fc; }
.rastertabelle td[aria-selected="true"] { background: #dbe4f6 !important; }
.rastertabelle td.ist-aktiv { outline: 2px solid var(--bochum-blau); outline-offset: -2px; }
.rastertabelle td.ist-geaendert { box-shadow: inset 3px 0 0 #1e8a4c; }
.rastertabelle td.ist-fehler { outline: 2px solid #c62828; outline-offset: -2px; }
.rastertabelle td .zelleneingabe {
  width: 100%; box-sizing: border-box; border: none; text-align: right; font: inherit; padding: 0; background: #fffbe6; outline: none;
}
.zellenhinweis {
  position: absolute; z-index: 20; background: #131525; color: #fff; font-size: .8rem; padding: .25rem .5rem; border-radius: 4px;
  pointer-events: none; white-space: nowrap;
}

/* Reiter */
.reiter { margin-top: .75rem; background: #fff; border-radius: 6px; box-shadow: 0 1px 3px rgb(0 0 0 / .1); }
.reiter__leiste { display: flex; flex-wrap: wrap; border-bottom: 1px solid var(--rahmen); padding: 0 .5rem; }
.reiter__leiste [role="tab"] {
  font: inherit; background: none; border: none; border-bottom: 3px solid transparent; padding: .5rem .9rem; cursor: pointer; color: var(--gedaempft);
}
.reiter__leiste [role="tab"][aria-selected="true"] { color: var(--bochum-blau); border-bottom-color: var(--bochum-blau); font-weight: 600; }
.reiter__inhalt { padding: .5rem 1rem 1rem; max-height: 20rem; overflow-y: auto; }
.reiter__inhalt--hoch { max-height: 25rem; }
.statusmeldung__rueckgaengig .kern-label { color: #fff; }

/* Statusmeldung (automatisches Speichern) */
.statusmeldung {
  position: fixed; bottom: 1.5rem; left: 50%; transform: translateX(-50%); z-index: 30; display: flex; align-items: center; gap: 1rem;
  background: #131525; color: #fff; padding: .6rem 1rem; border-radius: 6px; box-shadow: 0 4px 12px rgb(0 0 0 / .3);
}
.statusmeldung .kern-btn { color: #fff; }
.statusmeldung--fehler { background: #8a1c1c; }

@media (max-width: 1500px) {
  .rastertabelle { font-size: .875rem; }
  .rastertabelle th, .rastertabelle td { padding: .25rem .35rem; }
}
@media (max-width: 1200px) {
  .stammdaten__raster { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-zweispaltig { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 900px) {
  .stammdaten__raster { grid-template-columns: 1fr; }
  .stammdaten__feld, .stammdaten__feld--breit { grid-template-columns: 1fr; }
  .raster__tastenhilfe { margin-left: 0; }
  .finanzen, .tabellenrahmen { overflow-x: auto; }
}

/* Mehrfachbearbeitung in der Liste (ADR 0007, Punkt 5) */
/* Erscheint erst mit markierten Zeilen und bleibt am unteren Rand sichtbar (ADR 0018, Punkt 8). */
.sammelleiste {
  display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; padding: .4rem .6rem; margin: .5rem 0;
  border: 1px solid var(--bochum-blau); border-radius: 6px; background: var(--bochum-blau-hell);
  position: sticky; bottom: .5rem; z-index: 5; box-shadow: 0 -2px 6px rgb(0 0 0 / .12);
}

/* Planstände */
.planstand-formular { display: grid; gap: .75rem; max-width: 30rem; }
.vergleich-formular { display: flex; flex-wrap: wrap; gap: .75rem; align-items: flex-end; margin-bottom: 1rem; }
.export-formular { display: grid; gap: .75rem; max-width: 40rem; }
.export-knopf { margin-left: .5rem; }
.beziehungen { display: flex; flex-wrap: wrap; gap: .25rem 1rem; margin: 0 0 .5rem; }
.planstand-tabelle__cluster { background: var(--bochum-blau-hell); font-weight: 600; text-align: left; }
.planstand-tabelle__summe { font-weight: 600; }
.planstand-zeilenform { display: inline; margin-left: .5rem; }
.planstand-tabelle td:nth-child(2) { min-width: 16rem; }

/* Ampel mit Statusmeldung (ADR 0019) */
.stammdaten__feld--ampel dd { flex-wrap: wrap; }
.stammdaten__feld--ampel dd > span { flex: 0 0 auto; }
.ampel-letzte { flex-basis: 100%; margin: .15rem 0 0; font-size: .875rem; }
.ampel-letzte__kopf { color: var(--gedaempft); }
.ampel-melden { flex-basis: 100%; font-size: .875rem; }
.ampel-melden__oeffnen { cursor: pointer; }
.stammdaten__feld--ampel:has(.ampel-melden[open]) { grid-column: 1 / -1; grid-template-columns: 9.5rem 1fr; }
.ampel-melden__formular .kern-hint { font-size: .8rem; }
.ampel-melden__formular .kern-fieldset__body { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; }
.ampel-melden__formular { display: grid; gap: .5rem; margin-top: .5rem; padding: .75rem; background: #f6f7f9; border-radius: 6px; max-width: 36rem; }
.ampel-melden__formular textarea { width: 100%; }

/* Änderungsfeed und „neu seit letztem Besuch“ (ADR 0019, Punkte 7 und 8) */
.neu-punkt { display: inline-block; width: .55rem; height: .55rem; border-radius: 50%; background: var(--kern-color-action-default, #0b5ca8); flex: 0 0 auto; align-self: center; }
.feed { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.feed__eintrag { background: #fff; padding: .6rem .9rem; border-radius: 6px; box-shadow: 0 1px 3px rgb(0 0 0 / .08); border-left: 4px solid transparent; }
.feed__eintrag--neu { border-left-color: var(--kern-color-action-default, #0b5ca8); }
.feed__kopf { display: flex; flex-wrap: wrap; gap: .35rem .75rem; align-items: center; }
.feed__meta { color: var(--gedaempft); font-size: .875rem; }
.feed__zellen { margin: .25rem 0 0; padding-left: 1.1rem; font-size: .875rem; }
.feed__text { margin: .25rem 0 0; }
.feed-kopf { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; justify-content: space-between; }
.aenderungen-hinweis { display: flex; gap: .5rem; align-items: center; }
.sammelleiste__begruendung { display: flex; flex-wrap: wrap; gap: .25rem .5rem; align-items: center; flex: 1 1 22rem; }
.sammelleiste__begruendung[hidden] { display: none; }
.sammelleiste__begruendung input { flex: 1 1 14rem; }
.sammelleiste__begruendung small { flex-basis: 100%; color: var(--gedaempft); }
