/* beurteilen-druck.css — [NEUE-VERSION] (Fenster D, Auftrag 16 Teil D)
   Druckansicht «Beurteilen». Eigener Bereich .beurteilen-druck; beim Drucken
   verschwindet die ganze App, nur die Blätter bleiben. Schwarz-weiss lesbar,
   keine Schrift unter 9 pt. Eine Tabellenzeile wird nie geteilt. */

.beurteilen-druck {
  position: fixed; inset: 0; z-index: 9000;
  overflow: auto; -webkit-overflow-scrolling: touch;
  background: #d9dde3; color: #111;
  font-family: Arial, Helvetica, sans-serif;
}
.bd-leiste {
  position: sticky; top: 0; z-index: 1;
  display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center;
  padding: 0.5rem 1rem; background: #fff; border-bottom: 1px solid #aab;
}
.bd-knopf {
  min-height: 44px; min-width: 44px; padding: 0 1rem;
  font-size: 1rem; border: 1px solid #667; border-radius: 6px; background: #fff; color: #111; cursor: pointer;
}
.bd-knopf--haupt { background: #1f4e8c; border-color: #1f4e8c; color: #fff; }
.bd-warnung { margin: 0; padding: 0.3rem 0.6rem; background: #fff3c4; border: 1px solid #c9a300; border-radius: 4px; font-size: 0.9rem; }
.bd-blaetter { padding: 1rem 0 3rem; }

/* Am Bildschirm: weisse A4-Blätter auf grauem Grund */
.bd-seite {
  box-sizing: border-box; width: 210mm; min-height: 297mm; margin: 0 auto 1rem;
  padding: 12mm; background: #fff; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
  font-size: 10pt; line-height: 1.3; position: relative;
}
.bd-seite--quer { width: 297mm; min-height: 210mm; }
@media screen and (max-width: 860px) {
  /* iPad hochkant: das Blatt passt sich der Breite an, gedruckt bleibt A4. Nur am Bildschirm (16d C17):
     Chrome misst im Druck die Papierbreite, sonst schnitt overflow-x die Spalten Note/% ab. */
  .bd-seite, .bd-seite--quer { width: auto; min-height: 0; margin: 0 16px 1rem; }
  .bd-seite--quer { overflow-x: auto; }
}

/* Auftrag 187: unsichtbarer Messkasten der Vorschau (js seitenNachmessen) — Breite und Ränder wie im Druck
   (A4 hoch, Rand 12 mm → 186 mm, .bd-seite ohne Innenabstand und Mindesthöhe), auch im schmalen iPad-Fenster. */
.bd-messen { position: absolute; left: -10000px; top: 0; width: 186mm; visibility: hidden; pointer-events: none; }
.bd-messen .bd-seite { width: auto; min-height: 0; margin: 0; padding: 0; box-shadow: none; }

/* Kopf */
.bd-schule { display: flex; align-items: center; gap: 4mm; margin-bottom: 4mm; }
.bd-logo { max-height: 14mm; max-width: 45mm; object-fit: contain; }
.bd-schulname { font-size: 11pt; font-weight: bold; }
/* Auftrag 18 D4: Logo oben links, ca. 14 mm hoch, statt der Textzeile (das Logo enthält den Namen). Lädt es
   nicht, entfernt der Druck das Bild samt Klasse bd-schule--logo und der Schulname erscheint wieder als Text.
   Kasten 10.8 mm: so wächst der Kopf nur um gut 5 mm und Beats Normalfall (9 Kriterien) bleibt auf einer Seite.
   Auftrag 18b D4b: das Bild füllt den Kasten ganz (nichts abgeschnitten), auch ein hochgeladenes Logo. */
.bd-schule--logo { height: 10.8mm; overflow: hidden; align-items: flex-start; }
.bd-schule--logo .bd-logo {
  display: block; height: 10.8mm; width: auto; max-height: none; max-width: 120mm;
  object-fit: contain; object-position: left center;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;   /* bunter Balken bleibt farbig */
}
.bd-schule--logo .bd-schulname { display: none; }
.bd-kopf__zeile { display: flex; gap: 6mm; justify-content: space-between; align-items: flex-start; }
.bd-kopf__titel { flex: 1 1 auto; min-width: 0; }
.bd-kopf h1 { font-size: 16pt; margin: 0 0 1mm; }
.bd-fach { margin: 0 0 3mm; font-size: 10.5pt; }
.bd-angaben { display: grid; grid-template-columns: 1fr; gap: 1.5mm; margin: 0; }
.bd-angaben > div { display: flex; gap: 2mm; align-items: baseline; }
.bd-angaben dt { width: 42mm; flex: none; font-size: 9pt; }
.bd-angaben dd { margin: 0; flex: 1; border-bottom: 1px solid #555; font-weight: bold; min-height: 5mm; }
.bd-kasten {
  flex: none; width: 52mm; border: 1.5pt solid #000; padding: 2mm 3mm;
  display: grid; gap: 1mm;
}
.bd-kasten > div { display: flex; justify-content: space-between; align-items: baseline; gap: 2mm; }
.bd-kasten span { font-size: 9pt; }
.bd-kasten b { font-size: 13pt; }
.bd-kasten__teil { margin: 0; font-size: 9pt; line-height: 1.2; }
.bd-kasten__note { border-top: 1px solid #000; padding-top: 1mm; }
.bd-kasten__note b { font-size: 18pt; }
.bd-kopf--folge { display: flex; justify-content: space-between; border-bottom: 1px solid #000; padding-bottom: 2mm; margin-bottom: 4mm; font-weight: bold; }
.bd-kopf--quer h1 { font-size: 14pt; }
/* Auftrag 18 D4: quer steht das Logo links neben Titel und Fachzeile; so passen weiter 18 Kinder auf eine Seite */
.bd-kopf--mitlogo { display: grid; grid-template-columns: auto 1fr; column-gap: 6mm; align-items: center; }
.bd-kopf--mitlogo .bd-schule { grid-row: 1 / span 2; align-self: start; margin-bottom: 0; }
.bd-kopf--mitlogo h1 { margin: 0; }
.bd-kopf--mitlogo .bd-fach { margin: 1mm 0 0; }

/* Kriterientabelle */
.bd-tabelle { width: 100%; border-collapse: collapse; margin-top: 5mm; }
.bd-tabelle th, .bd-tabelle td { border: 0.75pt solid #555; padding: 1.2mm 2mm; vertical-align: top; text-align: left; }
.bd-tabelle thead th { font-size: 9pt; background: #eee; }
.bd-tabelle .bd-nr { width: 9mm; text-align: center; }
.bd-tabelle .bd-max, .bd-tabelle .bd-faktor { width: 14mm; text-align: center; }
.bd-tabelle .bd-punkte { width: 18mm; text-align: center; font-weight: bold; }
.bd-punkte--leer { height: 7mm; }
.bd-kurz { display: block; }
.bd-lang { display: block; font-size: 9pt; }
.bd-bereich th { background: #e4e4e4; font-size: 10.5pt; border-top: 1.5pt solid #000; }
.bd-bfaktor, .bd-fort { font-weight: normal; font-size: 9pt; }
.bd-summe td { font-size: 9.5pt; text-align: right; }
.bd-summe__wert, .bd-total__wert { text-align: center !important; font-weight: bold; white-space: nowrap; }
.bd-total td { font-size: 11pt; font-weight: bold; text-align: right; border-top: 1.5pt solid #000; }
.bd-tabelle tr { break-inside: avoid; page-break-inside: avoid; }
.bd-teil { font-weight: normal; font-size: 9.5pt; }
.bd-total .bd-teil { font-size: 10pt; }

/* Kompakt (nur wenn das Blatt dadurch weniger Seiten braucht): engere Zellen; «einzeilig» zusätzlich
   Wortlaut auf einer Zeile. Schrift bleibt ≥ 9 pt. */
.bd-blatt--kompakt .bd-tabelle { margin-top: 3mm; }
.bd-blatt--kompakt .bd-tabelle th, .bd-blatt--kompakt .bd-tabelle td { padding: 0.6mm 2mm; }
.bd-blatt--einzeilig .bd-tabelle .bd-titel { max-width: 0; }
.bd-blatt--einzeilig .bd-lang { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bd-blatt--kompakt .bd-kopf h1 { font-size: 14pt; }
.bd-blatt--kompakt .bd-schule { margin-bottom: 2mm; }
.bd-blatt--kompakt .bd-fach { margin-bottom: 2mm; }
.bd-blatt--kompakt .bd-fuss { margin-top: 4mm; gap: 3mm; }
.bd-blatt--kompakt .bd-linie { height: 6mm; }
.bd-blatt--kompakt .bd-seitenzahl { margin-top: 2mm; }
.bd-blatt--kompakt .bd-kopf--folge { margin-bottom: 2mm; }

/* [NEUE-VERSION] (Auftrag 312) Kompakter Fuss, letzte Stufe vor der Warnung: alles bleibt auf dem Blatt, nur enger. «Ausgedruckt am» wandert nach oben rechts neben das Logo. */
.bd-blatt--fussklein .bd-seite__inhalt { position: relative; line-height: 1.15; }
.bd-blatt--fussklein .bd-seitenzahl { position: absolute; top: 0; right: 0; margin: 0; }
.bd-blatt--fussklein .bd-schule { margin-bottom: 1mm; }
.bd-blatt--fussklein .bd-fach { margin-bottom: 1mm; }
.bd-blatt--fussklein .bd-angaben { gap: 0.5mm; }
.bd-blatt--fussklein .bd-angaben dd { min-height: 4mm; }
.bd-blatt--fussklein .bd-tabelle { margin-top: 2mm; }
.bd-blatt--fussklein .bd-tabelle th, .bd-blatt--fussklein .bd-tabelle td { padding: 0.25mm 1.5mm; }
.bd-blatt--fussklein .bd-punkte--leer { height: 5.5mm; }
.bd-blatt--fussklein .bd-fuss { margin-top: 2mm; gap: 1.5mm; }
.bd-blatt--fussklein .bd-etikett { margin-bottom: 0.3mm; }
.bd-blatt--fussklein .bd-linie { height: 4.5mm; }
.bd-blatt--fussklein .bd-bemerkung .bd-linie + .bd-linie { display: none; }
.bd-blatt--fussklein .bd-eltern, .bd-blatt--fussklein .bd-lp { flex-wrap: nowrap; gap: 3mm; }
.bd-blatt--fussklein .bd-eltern .bd-etikett { width: auto; white-space: nowrap; margin: 0; }
.bd-blatt--fussklein .bd-unterschrift { flex: 1 1 auto; flex-direction: row; align-items: flex-end; gap: 2mm; min-width: 0; }
.bd-blatt--fussklein .bd-unterschrift .bd-linie { flex: 1 1 auto; }
.bd-blatt--fussklein .bd-unterschrift small { white-space: nowrap; }

/* Fuss: Bemerkung, Lehrperson, Eltern */
.bd-fuss { margin-top: 6mm; display: grid; gap: 5mm; break-inside: avoid; page-break-inside: avoid; }
.bd-etikett { display: block; font-size: 9pt; font-weight: bold; margin-bottom: 1mm; }
.bd-bemerkung__text { margin: 0; white-space: pre-wrap; }
.bd-linie { display: block; border-bottom: 1px solid #000; height: 7mm; }
.bd-lp, .bd-eltern { display: flex; flex-wrap: wrap; gap: 2mm 8mm; align-items: flex-end; }
.bd-lp .bd-etikett, .bd-eltern .bd-etikett { width: 100%; }
.bd-unterschrift { flex: 1 1 70mm; display: flex; flex-direction: column; }
.bd-unterschrift small { font-size: 9pt; }
.bd-seitenzahl { margin: 4mm 0 0; font-size: 9pt; text-align: right; }

/* Tabelle quer */
/* Feste Spaltenbreiten (colgroup aus dem Druck): die Tabelle wird nie breiter als das Blatt (16d C17) */
.bd-quer { width: 100%; table-layout: fixed; border-collapse: collapse; margin-top: 3mm; font-size: 9pt; }
.bd-quer th, .bd-quer td { border: 0.75pt solid #555; padding: 1mm 1.2mm; text-align: center; vertical-align: middle;
  overflow-wrap: anywhere; hyphens: auto; }
.bd-quer thead th { background: #eee; }
.bd-quer thead { display: table-header-group; }   /* Kopf wiederholt sich, falls der Browser selbst umbricht */
.bd-quer tr { break-inside: avoid; page-break-inside: avoid; }
.bd-q-name { text-align: left !important; }
.bd-q-nr { width: 8mm; }
.bd-q-krit span { display: block; }
/* Auftrag 21e (V3-05): Kriterientitel brechen am Wortende, nach «-» oder an den weichen Trennstellen aus dem Druck
 * (U+00AD, mit Trennstrich) -- nie mehr «Standardspr|ache»; nur ein Wortstück, das allein zu breit ist, bricht noch. */
.bd-quer th.bd-q-krit { overflow-wrap: break-word; hyphens: manual; }
.bd-q-knr { font-weight: bold; }
.bd-q-ktitel { font-weight: normal; }
.bd-q-schnitt td { font-weight: bold; border-top: 1.5pt solid #000; }
.bd-q-note, .bd-q-punkte { font-weight: bold; }
/* Auftrag 21c IA-12: feste Spaltenköpfe nie mitten im Wort trennen («Punkt»/«e») */
.bd-quer th.bd-q-fest { white-space: nowrap; overflow-wrap: normal; }
/* Auftrag 21c IA-10: Bildsumme Σ je Bild wie am Bildschirm, Bildfaktor im Gruppenkopf */
.bd-q-sigma { font-weight: bold; background: #f6f6f6; }
.bd-q-sigma span { display: block; }
.bd-q-bfaktor { font-weight: normal; white-space: nowrap; }
/* [NEUE-VERSION] (Auftrag 246) Beurteilung mit Teams: Gruppenkopf (Name + Thema als Text, kräftige Linie darüber,
 * schwarzweiss lesbar) und Farbbalken links an der Zeile (nur zusätzlich, wie die Tabellenköpfe farbecht gedruckt) */
.bd-q-gruppenkopf td { border-top: 2pt solid #000; font-weight: bold; text-align: left; background: #fff; }
.bd-q-gthema, .bd-q-gfort { font-weight: normal; }
.bd-q-gfort { font-style: italic; }
.bd-q-mitglied > td.bd-q-nr { border-left: 2.5mm solid var(--bd-gfarbe, #555);
  -webkit-print-color-adjust: exact; print-color-adjust: exact; }

/* [NEUE-VERSION] (Auftrag 311) Gemessener Druck: Blatt und PDF nutzen dieselbe Schrift und dieselben Zeichenbreiten (kein Kerning,
   keine Ligaturen, keine Bildschirm-Rundung), darum stimmen Zeilenumbrüche und Seiten überein. Datei wie beim Lebenslauf. */
@font-face { font-family: "BD Open Sans"; font-weight: 400; font-display: block; src: url("../vendor/bo-lebenslauf/fonts/OpenSans_400Regular.ttf") format("truetype"); }
@font-face { font-family: "BD Open Sans"; font-weight: 700; font-display: block; src: url("../vendor/bo-lebenslauf/fonts/OpenSans_700Bold.ttf") format("truetype"); }
.bd-gemessen .bd-seite { font-family: "BD Open Sans", Arial, Helvetica, sans-serif; font-kerning: none; font-variant-ligatures: none; text-rendering: geometricPrecision; }
.bd-seite__inhalt { display: flow-root; }
.bd-messen .bd-seite__inhalt { zoom: 1 !important; }
/* Weicht ein Browser von unseren Rändern ab: die letzten Zeilen, Total, Fuss und Fusszeile bleiben zusammen, es entsteht nie eine Seite mit einer einzelnen Zeile */
.bd-mit-dialog .bd-total, .bd-mit-dialog .bd-fuss, .bd-mit-dialog .bd-seitenzahl { break-before: avoid; page-break-before: avoid; }

/* Druck-Dialog: Einstellungen links, Vorschau rechts, auf einem Bildschirm ohne Scrollen; schmal: Vorschau darunter */
.bd-mit-dialog { display: flex; flex-direction: column; overflow: hidden; }
.bd-mit-dialog .bd-leiste { flex: none; padding: 0.4rem 0.75rem; }
.bd-arbeit { flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: 19rem minmax(0, 1fr); }
.bd-einst { overflow: auto; padding: 0.5rem 0.75rem; background: #fff; border-right: 1px solid #aab; font-size: 0.95rem; }
.bd-einst fieldset { border: 0; margin: 0 0 0.5rem; padding: 0; }
.bd-einst legend { font-weight: bold; padding: 0; margin-bottom: 0.15rem; }
.bd-einst__wahl, .bd-einst__haken { display: flex; gap: 0.4rem; align-items: center; min-height: 30px; }
.bd-einst__zeile { display: flex; gap: 0.5rem; align-items: center; min-height: 30px; }
.bd-einst__zeile select { min-height: 30px; font-size: inherit; }
.bd-einst__prozent { display: flex; gap: 0.4rem; align-items: center; }
.bd-einst__prozent input[type="range"] { flex: 1 1 auto; min-width: 0; }
.bd-einst__prozent input[type="number"] { width: 4rem; font-size: inherit; }
.bd-einst__leise { margin: 0.2rem 0 0; font-size: 0.85rem; color: #444; }
.bd-vorschau { display: flex; flex-direction: column; min-width: 0; min-height: 0; padding: 0.4rem 0.75rem; gap: 0.3rem; }
.bd-vorschau__nav { flex: none; display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.bd-knopf--klein { min-height: 36px; min-width: 44px; padding: 0 0.5rem; }
.bd-knopf:disabled { opacity: 0.5; cursor: default; }
.bd-vorschau__status { font-weight: bold; }
.bd-pdf-link { margin-left: 0.5rem; }
.bd-vorschau .bd-warnung { flex: none; }
/* [NEUE-VERSION] (Auftrag 312) Warnung mit Zahl und zwei Knöpfen, wenn ein Blatt erst unter 70 % passt; am Rand 8 mm Reserve wie die Messung */
.bd-grenze { flex: none; display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; padding: 0.3rem 0.6rem; background: #fff3c4; border: 1px solid #c9a300; border-radius: 4px; font-size: 0.9rem; }
.bd-grenze[hidden] { display: none; }
.bd-leiste .bd-grenze, .tr-leiste .bd-grenze { flex-basis: 100%; }
.bd-grenze .bd-knopf[aria-pressed="true"], .bd-grenze .tr-knopf[aria-pressed="true"] { background: #1f4e8c; border-color: #1f4e8c; color: #fff; }
.bd-einst__sicher { margin: 0.2rem 0; padding: 0.3rem 0.5rem; background: #fff3c4; border: 1px solid #c9a300; border-radius: 4px; font-size: 0.9rem; font-weight: bold; }
.bd-einst__sicher[hidden] { display: none; }
.bd-pruefkasten { position: absolute; left: -10000px; top: 0; overflow: hidden; visibility: hidden; pointer-events: none; }
.bd-pruefkasten .bd-seite { width: auto; min-height: 0; padding: 0; margin: 0; box-shadow: none; }
.bd-messen .tr-blatt, .bd-pruefkasten .tr-blatt { width: auto; max-width: none; padding: 0; margin: 0; box-shadow: none; }
.bd-gemessen .tr-blatt { font-family: "BD Open Sans", Arial, Helvetica, sans-serif; font-kerning: none; font-variant-ligatures: none; text-rendering: geometricPrecision; }
.bd-mit-dialog .bd-pruefkasten .bd-seite { display: block; width: auto; height: auto; min-height: 0; padding: 0; margin: 0; overflow: visible; box-shadow: none; }
.bd-vorschau .bd-warnung[hidden] { display: none; }
.bd-vorschau__flaeche { flex: 1 1 auto; min-height: 0; overflow: hidden; position: relative; }
.bd-mit-dialog .bd-blaetter { padding: 0; transform-origin: 0 0; }
.bd-mit-dialog .bd-seite { display: none; width: 210mm; height: 297mm; min-height: 0; margin: 0; padding: var(--bd-rand, 12mm); overflow: hidden; }
.bd-mit-dialog .bd-seite--quer { width: 297mm; height: 210mm; }
.bd-mit-dialog .bd-seite--aktiv { display: block; }
.bd-mit-dialog .bd-messen .bd-seite { display: block; width: auto; height: auto; padding: 0; margin: 0; overflow: visible; box-shadow: none; }
@media screen and (max-width: 760px) {
  .bd-mit-dialog { overflow: auto; display: block; }
  .bd-arbeit { display: block; }
  .bd-einst { border-right: 0; border-bottom: 1px solid #aab; overflow: visible; }
  .bd-vorschau__flaeche { aspect-ratio: 210 / 297; flex: none; }
  .beurteilen-druck--quer .bd-vorschau__flaeche { aspect-ratio: 297 / 210; }
}

@media print {
  body.bd-druck-offen > *:not(.beurteilen-druck) { display: none !important; }
  .beurteilen-druck { position: static; overflow: visible; background: #fff; }
  .bd-leiste { display: none !important; }
  .bd-blaetter { padding: 0; }
  .bd-seite, .bd-seite--quer {
    width: auto; min-height: 0; margin: 0; padding: 0; box-shadow: none;
    break-after: page; page-break-after: always;
  }
  .bd-seite--quer { overflow: visible; }
  .bd-blaetter > .bd-blatt:last-child > .bd-seite:last-child { break-after: auto; page-break-after: auto; }
  .bd-tabelle thead th, .bd-quer thead th, .bd-bereich th { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  /* [NEUE-VERSION] (Auftrag 311) nur die Blätter, in der gemessenen Einteilung; der Grund der App druckt nicht mit */
  body.bd-druck-offen { background: #fff !important; }
  html:has(body.bd-druck-offen) { background: #fff !important; }
  .bd-mit-dialog { display: block; overflow: visible; }
  .bd-mit-dialog .bd-arbeit, .bd-mit-dialog .bd-vorschau, .bd-mit-dialog .bd-vorschau__flaeche { display: block; padding: 0; overflow: visible; }
  .bd-mit-dialog .bd-einst, .bd-mit-dialog .bd-vorschau__nav, .bd-mit-dialog .bd-vorschau .bd-warnung, .bd-mit-dialog .bd-grenze, .bd-mit-dialog .bd-messen, .bd-mit-dialog .bd-pruefkasten { display: none !important; }
  .bd-mit-dialog .bd-blaetter { transform: none !important; width: auto !important; margin: 0 !important; }
  .bd-mit-dialog .bd-seite { display: block !important; width: auto; height: auto; padding: 0; overflow: visible; }
}
