/* LWW-Pruefumgebung: nur Klassen mit Praefix pruef-, damit die Homepage-Gestaltung unberuehrt bleibt. */
.pruef-mit-leiste { padding-bottom: calc(var(--pruef-leiste-h, 4.5rem) + 1.75rem) !important; } /* 1.2.1 (B-06): Abstand folgt der tatsaechlichen Leistenhoehe */
.pruef-leiste { position: fixed; right: .75rem; bottom: .75rem; z-index: 2147483000; display: flex; gap: .5rem; flex-wrap: wrap;
  justify-content: flex-end; max-width: calc(100vw - 1.5rem); font: 600 1rem/1.3 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; }
.pruef-leiste button, .pruef-dialog button, .pruef-appseite button { font: inherit; font-weight: 600; min-height: 2.75rem; padding: .55rem 1rem;
  border-radius: .5rem; cursor: pointer; border: 2px solid #1f4d3a; }
.pruef-knopf, .pruef-dialog button[type=submit], .pruef-appseite button[type=submit] { background: #1f4d3a; color: #fff; }
.pruef-knopf-sek, .pruef-dialog button, .pruef-appseite button { background: #fff; color: #1f4d3a; }
.pruef-knopf-gefahr { border-color: #8a1c1c !important; color: #8a1c1c !important; background: #fff !important; }
.pruef-leiste .pruef-knopf { box-shadow: 0 2px 10px rgba(0,0,0,.25); }
.pruef-leiste .pruef-knopf-sek { box-shadow: 0 2px 8px rgba(0,0,0,.18); }
.pruef-leiste button:focus-visible, .pruef-dialog :focus-visible, .pruef-appseite :focus-visible { outline: 3px solid #c25e00; outline-offset: 2px; }
.pruef-dialog button:disabled { opacity: .55; cursor: not-allowed; }
@media (max-width: 30rem) {
  .pruef-leiste { left: .5rem; right: .5rem; bottom: .5rem; max-width: none; flex-wrap: nowrap; }
  .pruef-leiste button { flex: 1 1 0; min-width: auto; padding: .45rem .5rem; font-size: .95rem; line-height: 1.2; overflow-wrap: normal; hyphens: manual; }
  .pruef-leiste .pruef-lang { display: none; } /* 1.2.1 (B-06): kurze Beschriftung "Rückmeldung" auf schmalen Bildschirmen */
}
@media (max-width: 22rem) { .pruef-leiste button { font-size: .9rem; padding: .4rem .35rem; } } /* nie Wortteile abschneiden (min-width: auto) */
/* 1.2.1 (B-04): Sprunglink zur Pruefleiste, nur bei Tastaturfokus sichtbar */
.pruef-sprung { position: fixed; left: .75rem; top: -20rem; z-index: 2147483001; background: #fff; color: #1f4d3a; border: 2px solid #1f4d3a;
  border-radius: .5rem; padding: .6rem 1rem; font: 600 1rem/1.3 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; text-decoration: underline; }
.pruef-sprung:focus { top: .75rem; outline: 3px solid #c25e00; outline-offset: 2px; }
@media print { .pruef-leiste, .pruef-nojs, .pruef-sprung { display: none !important; } .pruef-mit-leiste { padding-bottom: 0 !important; } }

.pruef-dialog { width: min(46rem, calc(100vw - 1rem)); max-height: calc(100vh - 1rem); max-height: calc(100dvh - 1rem); overflow: auto;
  padding: 0; border: 2px solid #1f4d3a; border-radius: .75rem; background: #fff; color: #1b1b1b; box-sizing: border-box;
  font: 400 1rem/1.5 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; }
.pruef-dialog::backdrop { background: rgba(0,0,0,.45); }
.pruef-formular { display: flex; flex-direction: column; gap: .45rem; padding: 1rem 1.1rem 1.2rem; }
.pruef-formular > *, .pruef-reihe > *, .pruef-filter > * { min-width: 0; max-width: 100%; } /* 1.2.1 (B-01): keine Ueberbreite durch lange Optionen */
.pruef-dialog h2, .pruef-appseite h2 { font-size: 1.3rem; margin: 0 0 .25rem; color: #1f4d3a; line-height: 1.25; }
.pruef-dialog label, .pruef-appseite label { font-weight: 600; margin-top: .35rem; }
.pruef-dialog .pruef-wahl, .pruef-appseite .pruef-wahl { display: flex; gap: .5rem; align-items: center; font-weight: 400; margin: .15rem 0; min-height: 2.75rem; } /* 1.2.1 (B-05): 44-px-Ziel */
.pruef-wahl input { margin: 0; width: 1.15rem; height: 1.15rem; flex: none; }
.pruef-dialog fieldset, .pruef-appseite fieldset { border: 1px solid #b9c7bf; border-radius: .5rem; padding: .5rem .8rem .7rem; margin: .4rem 0 0; min-width: 0; }
.pruef-dialog legend, .pruef-appseite legend { font-weight: 700; padding: 0 .3rem; }
.pruef-dialog textarea, .pruef-dialog input:not([type=radio]):not([type=checkbox]), .pruef-dialog select,
.pruef-appseite textarea, .pruef-appseite input:not([type=radio]):not([type=checkbox]), .pruef-appseite select {
  font: inherit; width: 100%; box-sizing: border-box; padding: .5rem .6rem; border: 1px solid #6b7c72; border-radius: .4rem; background: #fff; color: #1b1b1b; min-height: 2.75rem; }
.pruef-dialog input[type=file] { padding: .4rem; }
.pruef-reihe { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-top: .4rem; }
.pruef-reihe > label { margin-top: 0; }
.pruef-reihe > select, .pruef-reihe > input { width: auto !important; flex: 1 1 12rem; }
.pruef-dialog select, .pruef-appseite select { max-width: 100%; text-overflow: ellipsis; }
.pruef-klein { font-size: .9rem; color: #3d4a42; margin: .15rem 0; overflow-wrap: anywhere; } /* 1.2.1 (B-02): lange Dateinamen umbrechen */
.pruef-sicht { background: #eef5f0; border-left: 4px solid #1f4d3a; padding: .45rem .6rem; margin: .4rem 0 0; font-size: .95rem; }
.pruef-meldung:empty { display: none; }
.pruef-meldung { margin: .4rem 0; padding: .5rem .7rem; border-radius: .4rem; background: #f3f3f3; }
.pruef-meldung.pruef-ok { background: #e3f3e8; border-left: 4px solid #1c7a3e; }
.pruef-meldung.pruef-fehler { background: #fbe9e9; border-left: 4px solid #a11d1d; color: #5a0f0f; }
.pruef-bild { background: #fafcfb; }
.pruef-karte { border: 1px solid #c9d4cd; border-radius: .6rem; padding: .7rem .9rem; margin: .7rem 0; background: #fff; min-width: 0; overflow-wrap: anywhere; }
.pruef-meldung[tabindex="-1"]:focus { outline: 3px solid #c25e00; outline-offset: 2px; } /* 1.2.1 (B-03): Fokus auf Bestaetigung sichtbar */
.pruef-karte.pruef-geloescht { opacity: .7; border-style: dashed; }
.pruef-meta { font-size: .85rem; color: #46534b; margin: 0 0 .3rem; overflow-wrap: anywhere; }
.pruef-text, .pruef-pre { white-space: pre-wrap; overflow-wrap: anywhere; margin: .3rem 0; }
.pruef-auswahl { margin: .3rem 0; padding: .3rem .7rem; border-left: 4px solid #b9c7bf; color: #333; white-space: pre-wrap; overflow-wrap: anywhere; }
.pruef-hinweis { background: #fff6dc; padding: .35rem .6rem; border-radius: .3rem; font-size: .9rem; }
.pruef-bilder { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .8rem; }
.pruef-bilder li { max-width: 15rem; }
.pruef-bilder img { display: block; max-width: 100%; height: auto; border-radius: .3rem; border: 1px solid #ccc; }
.pruef-antworten { padding-left: 1.2rem; margin: .4rem 0; }
.pruef-antworten li { margin: .3rem 0; }
.pruef-aktionen { display: flex; flex-direction: column; gap: .35rem; margin-top: .5rem; border-top: 1px solid #e1e8e3; padding-top: .5rem; }
.pruef-verlauf { font-size: .85rem; margin-top: .4rem; }
.pruef-verlauf li { overflow-wrap: anywhere; }
.pruef-nojs { position: static; margin: 1rem; padding: .7rem 1rem; background: #eef5f0; border: 2px solid #1f4d3a; border-radius: .5rem; font: 600 1rem/1.4 system-ui, sans-serif; }

.pruef-appseite { margin: 0; font: 400 1rem/1.55 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; color: #1b1b1b; background: #f6f8f6; }
.pruef-kopf { background: #1f4d3a; color: #fff; padding: .7rem 1rem; display: flex; flex-wrap: wrap; gap: .6rem 1.5rem; align-items: center; justify-content: space-between; }
.pruef-marke { margin: 0; font-weight: 700; }
.pruef-marke span { font-weight: 400; font-size: .85rem; background: #c25e00; padding: .1rem .45rem; border-radius: .3rem; margin-left: .4rem; }
.pruef-appnav { display: flex; flex-wrap: wrap; gap: .3rem 1rem; }
.pruef-appnav a { color: #fff; font-weight: 600; }
.pruef-appseite main { max-width: 60rem; margin: 0 auto; padding: 1rem; }
.pruef-appseite h1 { font-size: 1.6rem; color: #1f4d3a; }
.pruef-skip { position: absolute; left: -999rem; }
.pruef-skip:focus { left: 1rem; top: 1rem; background: #fff; color: #1f4d3a; padding: .5rem 1rem; z-index: 10; }
.pruef-filter { display: grid; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); gap: .3rem .8rem; align-items: end; background: #fff; padding: .8rem; border-radius: .6rem; border: 1px solid #c9d4cd; }
.pruef-testlogin { display: flex; flex-direction: column; gap: .6rem; max-width: 26rem; }
.pruef-fehlertext { font-size: 1.1rem; }
.pruef-ok { background: #e3f3e8; padding: .5rem .8rem; border-left: 4px solid #1c7a3e; }

/* C-P14: Player fuer autorisierte private Medien (nur Klassen mit Praefix pruef-) */
.pruef-video { display: block; width: 100%; max-width: 100%; height: auto; aspect-ratio: 16 / 9; background: #000; border-radius: .4rem; }
.pruef-video:focus-visible { outline: 3px solid #c25e00; outline-offset: 2px; }
.pruef-medien-hinweis { background: #fff6dc; padding: .5rem .7rem; border-radius: .3rem; }
.pruef-player-titel { margin: .2rem 0 .4rem; font-size: 1.25rem; }
.pruef-player-text { margin: 0 0 .6rem; }
.pruef-zeitanzeige { margin: .45rem 0 .2rem; font-variant-numeric: tabular-nums; font-weight: 600; color: #1f3b2d; }
.pruef-seitenhinweis { margin: .75rem auto; max-width: 72rem; background: #fff6dc; border-left: 4px solid #c25e00; padding: .6rem .8rem; border-radius: .3rem; color: #2b2b2b; font-size: .98rem; line-height: 1.45; }
a.pruef-knopf.pruef-extern { display: inline-block; padding: .55rem 1rem; border-radius: .5rem; color: #fff; text-decoration: none; }
/* 1.2.0: Betriebsstatus in der Redaktionsansicht */
.pruef-status{margin:0 0 1rem;padding:.5rem .75rem;border:1px solid #c9d3c2;border-radius:6px;background:#f7f9f4;overflow-wrap:anywhere}
.pruef-status summary{cursor:pointer;font-weight:600}
/* 1.2.2: Zweckzeile im Formular */
.pruef-zweck { margin: .25rem 0 .75rem; }

/* 1.3.0: Kennzeichnung private Prueffassung, Zeichenzaehler, lange Texte, vorhandene Gruppenmeldungen */
.pruef-leiste-info { flex-basis: 100%; margin: 0; padding: .3rem .6rem; background: #fff; color: #1d2b1f; border-radius: .4rem;
  box-shadow: 0 2px 8px rgba(0,0,0,.18); font-size: .82rem; line-height: 1.4; text-align: right; }
.pruef-leiste-info a { color: inherit; text-decoration: underline; }
.pruef-zaehler.pruef-zu-lang { color: #a4161a; font-weight: 700; }
.pruef-sicht { font-weight: 600; }
.pruef-langtext .pruef-text { white-space: pre-wrap; overflow-wrap: anywhere; }
.pruef-knopf-link { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; min-height: 0 !important;
  color: inherit; text-decoration: underline; cursor: pointer; font: inherit; font-weight: 600; }
.pruef-vorhanden { border-left: 4px solid #b26b00; padding: .45rem .7rem; margin: .5rem 0; background: #fff7e6; }
.pruef-vorhanden[hidden], .pruef-nur-redaktion[hidden], .pruef-kopieren[hidden] { display: none !important; }
.pruef-leiste-info { order: -1; }
@media (max-width: 30rem) {
  .pruef-leiste { flex-wrap: wrap; }  /* 1.3.0: Infozeile als eigene Zeile ueber den Knoepfen */
  .pruef-leiste-info { flex: 0 0 100%; text-align: left; font-size: .78rem; padding: .25rem .5rem; }
  .pruef-leiste-info .pruef-info-fassung { display: none; }
}

/* 1.4.0 (E2): einheitliche Pruefleiste auf Homepage- und Pruefseiten – gleiche Elemente, gleiche Gestaltung */
.pruef-leiste a.pruef-knopf, .pruef-leiste a.pruef-knopf-sek { display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box;
  min-height: 2.75rem; padding: .55rem 1rem; border-radius: .5rem; border: 2px solid #1f4d3a; font: inherit; font-weight: 600; line-height: 1.2;
  text-align: center; text-decoration: none; }
.pruef-leiste a.pruef-knopf { background: #1f4d3a; color: #fff; box-shadow: 0 2px 10px rgba(0,0,0,.25); }
.pruef-leiste a.pruef-knopf-sek { background: #fff; color: #1f4d3a; box-shadow: 0 2px 8px rgba(0,0,0,.18); }
.pruef-leiste a:focus-visible, .pruef-leiste .pruef-knopf-link:focus-visible { outline: 3px solid #c25e00; outline-offset: 2px; }
.pruef-leiste .pruef-abmelden { border-color: #8a1c1c; color: #8a1c1c; background: #fff; }
.pruef-leiste .pruef-abmelden:hover { background: #fbeaea; }
.pruef-leiste [hidden] { display: none !important; }
.pruef-info-name { font-weight: 600; }
.pruef-info-name::before { content: " · "; font-weight: 400; }
/* Leiste als geschlossene Einheit: eigener Hintergrund, kein Seiteninhalt zwischen den Knoepfen */
.pruef-leiste { background: #eef3f0; border: 1px solid #9fb8a8; border-radius: .75rem; padding: .45rem; box-shadow: 0 4px 18px rgba(0,0,0,.30); }
.pruef-info-zahl { font-weight: 600; margin-left: .3em !important; } /* Leerraum am Knopfanfang wird sonst verschluckt */
.pruef-info-status:not(:empty) { display: block; color: #7a4100; }
.pruef-entwurf-marke { margin-left: .45rem; padding: .05rem .4rem; border-radius: .3rem; background: #c25e00; color: #fff; font-size: .78em; font-weight: 700; }
.pruef-zusammenfassung { margin: .5rem 0 0; padding: .45rem .7rem; background: #eef4f0; border-left: 4px solid #1f4d3a; font-weight: 600; }
.pruef-abm-text { width: 100%; box-sizing: border-box; font: inherit; }
.pruef-appseite .pruef-leiste-app { font: 600 1rem/1.3 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; }
/* Handy: alle Funktionen sichtbar in zwei Reihen (Info, Anleitung, Abmelden | Rueckmeldung, Meine Rueckmeldungen) */
@media (max-width: 30rem) {
  .pruef-leiste { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .35rem; left: .4rem; right: .4rem; bottom: .4rem;
    bottom: calc(.4rem + env(safe-area-inset-bottom, 0px)); }
  .pruef-leiste-info { grid-column: 1 / span 2; grid-row: 1; margin: 0; font-size: .74rem; line-height: 1.25; padding: .25rem .45rem; align-self: stretch;
    display: flex; flex-direction: column; justify-content: center; }
  .pruef-leiste .pruef-l-anleitung { grid-column: 3; grid-row: 1; }
  .pruef-leiste .pruef-abmelden { grid-column: 4; grid-row: 1; }
  .pruef-leiste .pruef-l-neu, .pruef-leiste .pruef-l-start { grid-column: 1 / span 2; grid-row: 2; }
  .pruef-leiste .pruef-l-meine { grid-column: 3 / span 2; grid-row: 2; }
  .pruef-leiste .pruef-l-redaktion { grid-column: 1 / -1; grid-row: 3; }
  .pruef-leiste button, .pruef-leiste a.pruef-knopf, .pruef-leiste a.pruef-knopf-sek { min-width: 0; min-height: 2.5rem; padding: .3rem .35rem;
    font-size: .84rem; line-height: 1.15; white-space: normal; overflow-wrap: normal; }
  .pruef-leiste-info .pruef-info-np, .pruef-leiste-info .pruef-info-fassung, .pruef-leiste-info .pruef-info-zahl { display: none !important; }
  .pruef-leiste-info .pruef-info-name { display: block; }
  .pruef-leiste-info .pruef-info-name::before { content: none; }
  .pruef-leiste { padding: .35rem; }
}
@media (max-width: 22rem) { .pruef-leiste button, .pruef-leiste a.pruef-knopf, .pruef-leiste a.pruef-knopf-sek { font-size: .78rem; padding: .25rem .2rem; } }
@media print { .pruef-leiste-app { display: none !important; } }
:root:has(body.pruef-mit-leiste) { scroll-padding-bottom: calc(var(--pruef-leiste-h, 4.5rem) + 1.5rem); } /* Rueckfall ohne Skriptmessung */
/* 1.5.0: einheitliches Menue auf Homepage- und Pruefseiten (Zur Homepage, Rueckmeldung, Meine, Alle, Anleitung, [Redaktion], Abmelden).
   Handy: drei Zeilen; Redaktion nur fuer die Redaktionsrolle (serverseitig weiterhin geschuetzt). */
@media (max-width: 30rem) {
  .pruef-leiste-info { grid-column: 1 / span 3; grid-row: 1; }
  .pruef-leiste .pruef-abmelden { grid-column: 4; grid-row: 1; }
  .pruef-leiste .pruef-l-neu { grid-column: 1 / span 2; grid-row: 2; }
  .pruef-leiste .pruef-l-meine { grid-column: 3; grid-row: 2; }
  .pruef-leiste .pruef-l-alle { grid-column: 4; grid-row: 2; }
  .pruef-leiste .pruef-l-start { grid-column: 1 / span 2; grid-row: 3; }
  .pruef-leiste .pruef-l-anleitung { grid-column: 3 / span 2; grid-row: 3; }
  .pruef-leiste:has(.pruef-l-redaktion:not([hidden])) .pruef-l-anleitung { grid-column: 3; }
  .pruef-leiste .pruef-l-redaktion { grid-column: 4; grid-row: 3; }
  .pruef-leiste button, .pruef-leiste a.pruef-knopf, .pruef-leiste a.pruef-knopf-sek { font-size: .8rem; line-height: 1.15; hyphens: manual; }
}
.pruef-bezug a { overflow-wrap: anywhere; }
.pruef-hinweis-antwort { font-style: italic; }
/* 1.5.0 (E3-Nachtest 360 px): schmale Handys – „Meine/Alle Rückmeldungen“ ohne Überlauf; Umbruch am weichen Trennstrich */
@media (max-width: 24rem) {
  .pruef-leiste a.pruef-l-meine, .pruef-leiste a.pruef-l-alle { font-size: .74rem; padding-left: .15rem; padding-right: .15rem; }
}
@media (max-width: 21rem) {
  .pruef-leiste a.pruef-l-meine, .pruef-leiste a.pruef-l-alle { font-size: .68rem; overflow-wrap: anywhere; }
}
/* 1.5.0 (E3-Nachtest 320 px): sehr schmale Handys – alle Menuepunkte ohne Ueberlauf */
@media (max-width: 21rem) {
  .pruef-leiste button, .pruef-leiste a.pruef-knopf, .pruef-leiste a.pruef-knopf-sek { font-size: .7rem; padding-left: .12rem; padding-right: .12rem; overflow-wrap: anywhere; }
  .pruef-leiste a.pruef-l-meine, .pruef-leiste a.pruef-l-alle { font-size: .68rem; }
}

/* 1.5.1 (K1-A/B): Hinweis auf nicht zuordenbare Entwuerfe frueherer Programmfassungen; Nachladen langer Listen */
.pruef-alt-entwurf{flex:1 1 100%;margin:.25rem 0 0;font-size:.85rem;line-height:1.35;overflow-wrap:anywhere}
.pruef-alt-entwurf .pruef-knopf-link{margin-left:.25rem}
.pruef-mehr{margin:1rem 0 1.5rem}
.pruef-mehr .pruef-weitere{max-width:100%;white-space:normal}
