/* "Mein Heft": die bearbeiteten Arbeitsblaetter zum Ausdrucken bzw. Speichern als PDF. */
body { margin: 0; background: #e9ece2; color: #111; font: 14px/1.5 'Segoe UI', system-ui, sans-serif; }
.druck-leiste { display: flex; gap: 1.5rem; flex-wrap: wrap; align-items: center; padding: .6rem 1rem; background: #26300d; color: #e8eed5; font-size: .9rem; }
.druck-leiste a { color: #fff; font-weight: 700; }
kbd { background: #fff; color: #111; border-radius: 3px; padding: 0 .3em; font-size: .85em; }
.blatt { background: #fff; max-width: 794px; margin: 1.5rem auto; padding: 2.2rem 3rem; box-shadow: 0 4px 22px rgba(0,0,0,.15); }
.blatt-kopf, .blatt-fuss { display: flex; justify-content: space-between; gap: 1rem; font-size: 12.5px; }
.blatt-kopf { border-bottom: 2px solid #3f7fbf; padding-bottom: .35rem; align-items: center; }
.blatt-fuss { border-top: 2px solid #3f7fbf; padding-top: .35rem; margin-top: 1.5rem; }
.blatt-marke { display: inline-flex; align-items: center; gap: .4rem; font-weight: 800; letter-spacing: .02em; }
.blatt-marke img { width: 20px; height: 20px; }
h1 { font-size: 1.25rem; margin: 1rem 0 .5rem; }
h2 { font-size: 1.02rem; margin: 1.1rem 0 .3rem; }
h4 { margin: .6rem 0 .2rem; }
p { margin: .35rem 0; }
code { font-family: Consolas, 'Cascadia Code', monospace; color: #1d4f8a; }
pre, .code { font: 12px/1.45 Consolas, 'Cascadia Code', monospace; background: #f7f8f3; border: 1px solid #dde1cf; padding: .4rem .7rem; margin: .3rem 0; white-space: pre-wrap; }
.schritt { break-inside: avoid; }
.ov-heft-bild { margin: .4rem 0; text-align: center; }
.ov-heft-bild img { max-width: 45%; max-height: 200px; margin: 0 .4rem; }
.teil { display: grid; grid-template-columns: 1.5em minmax(0, 1fr); }
.teil.ohne-teil { display: block; }
.teil.ohne-teil ~ .antwort, .teil.ohne-teil ~ .leer, .teil.ohne-teil ~ .leise, .teil.ohne-teil ~ .code { margin-left: 0; }
.druck-pdf { background: #7f9a0f; padding: .25rem .8rem; border-radius: 6px; text-decoration: none; }
.antwort { border-left: 3px solid #7f9a0f; padding: .15rem .6rem; background: #f8faf0; font-style: italic; margin: .3rem 0 .3rem 1.5em; white-space: pre-wrap; }
.leer, .leise { color: #888; margin-left: 1.5em; font-size: .9em; }
.merke { border: 2px solid #111; background: #f1f1f1; padding: .6rem .9rem; margin: .5rem 0; line-height: 1.9; }
.ov-druck-luecke { display: inline-block; min-width: 8em; border-bottom: 1.5px solid #111; text-align: center; font-weight: 700; color: #1c5d2c; }
.ov-druck-lang { min-width: 20em; }
.info { border: 2px solid #2f4d7a; border-radius: 6px; padding: .5rem .8rem; }
.diagramme { display: flex; gap: 1rem; flex-wrap: wrap; align-items: flex-start; }
.diagramme .pfeil { align-self: center; font-size: 12px; }
.diagramme.eingerueckt { margin: .3rem 0 .3rem 1.5em; }
.teil.ohne-teil ~ .diagramme.eingerueckt { margin-left: 0; }
.od { border-collapse: collapse; font: 12px/1.4 Consolas, monospace; }
.od th, .od td { border: 1.5px solid #111; padding: .15rem .6rem; text-align: left; }
.od th { text-decoration: underline; }
.od.klasse th { text-decoration: none; text-align: center; }
@media (max-width: 700px) { .blatt { padding: 1.2rem 1rem; margin: 0; } }
@media print {
  body { background: #fff; }
  .druck-leiste { display: none; }
  .blatt { box-shadow: none; margin: 0; max-width: none; padding: 0; }
  @page { margin: 16mm 16mm 18mm; }
}

/* Klassendiagramme mit Beziehungspfeilen (SVG vom Server) */
.uml-bild { margin: .5rem 0; }
.uml-bild svg { max-width: 100%; height: auto; }
.uml-bild rect { fill: #fff; stroke: #111; stroke-width: 1.5; }
.uml-bild line, .uml-bild .ov-uml-linie { stroke: #111; stroke-width: 1.5; }
.uml-bild .ov-uml-spitze { fill: #fff; stroke: #111; stroke-width: 1.5; }
.uml-bild .ov-uml-spitze.ist-voll { fill: #111; }
.uml-bild text { font: 13px Consolas, "Cascadia Code", monospace; fill: #111; }
.uml-bild .ov-uml-name { font-weight: bold; text-anchor: middle; }

/* Hervorhebungen wie in den Arbeitsblaettern: {rot|...} usw. */
.hv-rot { color: #c62828; font-weight: 700; }
.hv-lila { color: #7b3fa0; font-weight: 700; }
.hv-tuerkis { color: #2f8ca8; font-weight: 700; }
.hv-blau { color: #1f3f8a; font-weight: 700; }

/* Farbschema fuer Code (Kopf "farbschema: ja", erprobt in Heft 7) */
.fs-reserviert { color: #7b3fa0; }
.fs-methode { color: #1565c0; }
.fs-attribut { color: #c62828; }
.fs-variable { color: #b45309; }
.fs-klasse { color: #1b7a3a; }
.fs-punkt { font-weight: 700; }
.od.klasse.ist-farbschema th { color: #1b7a3a; }
.od td.od-marke { border: 0; padding-left: .8rem; font-weight: 700; white-space: nowrap; }
.od.ist-farbschema .ist-attribute { color: #c62828; }
.od.ist-farbschema .ist-methoden { color: #1565c0; }

.od-figur { display: inline-block; vertical-align: top; }
.od-ueber { font: 12px Consolas, monospace; text-align: center; margin-bottom: .2rem; }
/* Merkkasten wie auf dem Arbeitsblatt (Heft 15) */
.info.ist-merke { background: #edf4fa; }
.hv-gruen { color: #1b7a3a; font-weight: 700; }
.ov-heft-tabelle { border-collapse: collapse; margin: .2rem 0 .5rem; }
.ov-heft-tabelle td, .ov-heft-tabelle th { padding: .1rem 1.4rem .1rem 0; text-align: left; vertical-align: top; }
.od.ist-sichtbarkeit .ist-attribute, .od.ist-sichtbarkeit .ist-methoden, .od.klasse.ist-sichtbarkeit th { color: #111; }
.od .oeffentlich { color: #1b7a3a; }
.od .privat { color: #c62828; }
.od td.od-marke.ist-daneben { font-weight: 400; white-space: normal; vertical-align: middle; }
.od-marke.ist-daneben p { margin: 0; }

/* Lehreransicht (lehrer_heft.html): Balken je Schritt, wer gerade wo arbeitet */
.lk-balken { margin: .3rem 0 .2rem 1.5em; font-size: 12.5px; }
.lk-balken summary { display: flex; align-items: center; gap: .6rem; cursor: pointer; list-style: none; }
.lk-balken summary::-webkit-details-marker { display: none; }
.lk-leiste { flex: 0 1 260px; height: 10px; border-radius: 5px; background: #e6ebd8; overflow: hidden; }
.lk-leiste i { display: block; height: 100%; background: #7f9a0f; }
.lk-zahl { color: #444; white-space: nowrap; }
.lk-zahl::after { content: ' ▸'; color: #999; }
.lk-balken[open] .lk-zahl::after { content: ' ▾'; }
.lk-namen { margin: .2rem 0 .4rem; color: #444; }
.lk-namen p { margin: .1rem 0; }
.lk-aufgabe .lk-balken, .lk-gesamt .lk-balken { margin-left: 0; }
.lk-gesamt { display: flex; gap: .6rem; align-items: baseline; margin: .3rem 0 .8rem; }
.lk-schritt { border-left: 3px solid #dde1cf; margin: .2rem 0 .8rem; }
.lk-dran { display: block; margin-left: 1.5em; color: #8a5a00; }
.lk-jetzt { border: 2px dashed #d69e2e; border-radius: 6px; padding: .3rem .6rem; color: #555; }
.lk-marke { font-weight: 700; color: #8a5a00; }
.lk-status { background: #f4f7e8; border-radius: 6px; padding: .4rem .7rem; }
.lk-stufen { list-style: none; padding: 0; margin: .3rem 0 .6rem 1.5em; }
.lk-stufen li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .6rem; align-items: center; border-bottom: 1px solid #eee; }
.lk-stufen .lk-balken { margin: .15rem 0; }
.lk-coins { border-collapse: collapse; font-size: 12.5px; }
.lk-coins td { padding: .1rem .8rem .1rem 0; border-bottom: 1px solid #eee; }
.lk-coins .ist-unter-ziel { background: #fff4d6; }
@media print { .lk-balken .lk-namen { display: block; } }
