/* Lehrzeug Klausurbogen (Lehrzeug 1.9.2) */
.kb-quick { margin: 0 0 14px; padding: 12px 14px; border-radius: 14px; background: var(--teal-soft); }
.kb-quick-t { margin: 0 0 10px; font-size: 14px; color: var(--ink-2); } .kb-quick-t b { color: var(--ink); }
.kb-tpls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.kb-tpl { display: grid; gap: 2px; padding: 9px 11px; text-align: left; border: 2px solid var(--line-2); border-radius: 12px; background: var(--surface-2); color: var(--ink); font: inherit; cursor: pointer; }
.kb-tpl b { font-size: 14px; } .kb-tpl small { font-size: 12px; color: var(--ink-2); line-height: 1.3; }
.kb-tpl:hover { border-color: var(--teal); }
.kb-tpl:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.kb-two { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 10px; }
.kb-three { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 10px; }
.kb-logo { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 12px; align-items: end; }
.kb-logo-btn { width: 64px; height: 64px; margin-bottom: 14px; display: grid; place-items: center; border: 2px dashed var(--line-2); border-radius: 14px; background: var(--surface-2); color: var(--ink-3); cursor: pointer; overflow: hidden; padding: 4px; }
.kb-logo-btn:hover { border-color: var(--teal); color: var(--teal-ink); }
.kb-logo-btn img { max-width: 100%; max-height: 100%; object-fit: contain; }
.kb-logo-btn .i { width: 26px; height: 26px; }
.linkish { background: none; border: 0; padding: 0; color: var(--teal-ink); font: inherit; text-decoration: underline; cursor: pointer; }
.kb-checks { display: grid; gap: 2px; }
.kb-pages { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 8px; }
.kb-pg { border: 1.5px solid var(--line-2); border-radius: 13px; background: var(--surface-2); padding: 8px 10px; }
.kb-pgh { display: flex; align-items: center; gap: 8px; }
.kb-pgh > .i { width: 18px; height: 18px; color: var(--c-blau); }
.kb-pgh b { font-size: 14.5px; flex: 1; min-width: 0; }
.kb-pgn { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--sunken); font-size: 12px; font-weight: 700; color: var(--ink-2); flex: none; }
.kb-pgb { display: flex; gap: 2px; }
.kb-pgc { display: flex; flex-wrap: wrap; gap: 6px 12px; margin-top: 8px; padding-left: 30px; }
.kb-mini { display: grid; gap: 3px; font-size: 12.5px; color: var(--ink-2); min-width: 110px; }
.kb-mini .input.sm, .kb-mini select { font-size: 13.5px; }
.kb-mini.kb-wide { flex: 1 1 100%; }
.kb-kslist { display: grid; gap: 6px; flex: 1 1 100%; }
.kb-add { display: flex; flex-wrap: wrap; gap: 6px; }
.kb-safe { display: flex; gap: 8px; align-items: flex-start; margin: 14px 0 0; font-size: 13px; color: var(--ink-3); } .kb-safe .i { width: 16px; height: 16px; flex: none; margin-top: 2px; color: var(--teal-ink); }
.kb-bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.kb-bar-t { margin: 0; font-size: 18px; } .kb-sum { font-size: 13.5px; color: var(--ink-3); }
.kb-wrap { display: grid; gap: 16px; }
.kb-prevsheet { overflow: hidden; }
.kb-learn { margin: 26px 0 18px; } .kb-h2 { margin: 0 0 12px; font-size: 22px; }
.kb-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
@media (max-width: 900px) { .kb-grid { grid-template-columns: minmax(0, 1fr); } }
.kb-box { padding: 18px 20px; } .kb-box h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; font-size: 16.5px; } .kb-box h3 .i { width: 20px; height: 20px; color: var(--c-blau); }
.kb-box p { margin: 0; font-size: 14.5px; line-height: 1.5; color: var(--ink-2); }
@media (max-width: 520px) { .kb-three, .kb-tpls { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Seite (A4) ---------- */
.kb-page { position: relative; width: 210mm; height: 296.5mm; padding: 9mm 12mm 12mm; display: flex; flex-direction: column; overflow: hidden; background: #fff; color: #071B4A; font-family: var(--font); font-size: 10pt; line-height: 1.35; break-after: page; page-break-after: always; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.kb-page :where(h1, p, ul, table) { margin: 0; }
.kb-page i { font-style: normal; }
.kb-head { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.3fr) auto; align-items: end; gap: 6mm; padding-bottom: 2.4mm; margin-bottom: 3mm; border-bottom: .3mm solid #22324F; min-height: 12mm; }
.kb-brand { display: flex; align-items: center; gap: 2.4mm; min-width: 0; font-weight: 600; font-size: 10pt; }
.kb-brand img { height: 11mm; max-width: 34mm; object-fit: contain; }
.kb-brand.is-small img { height: 8mm; max-width: 26mm; }
.kb-brand.is-small { font-size: 8.5pt; }
.kb-brand span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kb-name { display: flex; align-items: flex-end; gap: 2mm; }
.kb-name small, .kb-dname small, .kb-note small, .kb-sig small, .kb-bem small { font-size: 7.5pt; color: #4A5468; white-space: nowrap; }
.kb-name i, .kb-dname i, .kb-note i, .kb-sig i, .kb-bem i { display: block; flex: 1; border-bottom: .3mm solid #22324F; height: 6mm; }
.kb-meta { display: grid; justify-items: end; gap: .6mm; font-size: 8pt; color: #4A5468; white-space: nowrap; }
.kb-meta b { color: #071B4A; font-size: 8.5pt; }
.kb-foot { position: absolute; left: 12mm; bottom: 4mm; font-size: 6.8pt; color: #8A93A6; max-width: 120mm; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kb-body { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.kb-fill { flex: 1; min-height: 0; overflow: hidden; overflow: clip; } /* Lineatur füllt den Rest der Seite; was übersteht, wird absichtlich abgeschnitten */
.kb-lin, .kb-ks { display: block; }
.kb-tasks { flex: 1; min-height: 0; display: flex; flex-direction: column; gap: 4mm; }
.kb-task { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.kb-th { display: flex; align-items: flex-end; justify-content: space-between; gap: 4mm; padding: 0 0 1.4mm; font-size: 11pt; }
.kb-th b { font-weight: 700; }
.kb-tp { display: inline-flex; align-items: flex-end; gap: 1.2mm; font-size: 9pt; color: #4A5468; }
.kb-tp i { display: inline-block; width: 11mm; border-bottom: .3mm solid #22324F; height: 5mm; }
.kb-tp i.is-s { width: 7mm; }
.kb-tt { font-size: 10pt; font-weight: 600; margin: 0 0 1.6mm; }
.kb-ksrow { display: flex; gap: 5mm; margin: 0 0 2mm; align-items: stretch; }
.kb-ksrow .kb-side { flex: 1; min-width: 0; }
.kb-ks { border: .25mm solid #8A94A6; }
.kb-sch { display: flex; align-items: baseline; gap: 4mm; margin: 0 0 2.4mm; }
.kb-sch b { font-size: 16pt; letter-spacing: .02em; }
.kb-sch span { font-size: 9pt; color: #4A5468; }
.kb-kgrid { flex: 1; display: grid; grid-template-columns: minmax(0, 1fr); gap: 5mm; align-content: start; }
.kb-kgrid.is-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kb-kbox { display: grid; gap: 1.4mm; justify-items: start; }
.kb-kt { display: flex; gap: 2mm; font-size: 9.5pt; } .kb-kt span { color: #4A5468; }
/* Deckblatt */
.kb-dhead { display: flex; align-items: flex-start; justify-content: space-between; gap: 8mm; padding-bottom: 4mm; border-bottom: .4mm solid #22324F; }
.kb-dmeta { border-collapse: collapse; font-size: 9.5pt; }
.kb-dmeta th { text-align: left; font-weight: 500; color: #4A5468; padding: .8mm 4mm .8mm 0; }
.kb-dmeta td { min-width: 42mm; padding: .8mm 0; font-weight: 600; }
.kb-blank { display: block; border-bottom: .3mm solid #22324F; height: 4.6mm; }
.kb-dtitle { text-align: center; padding: 9mm 0 6mm; }
.kb-dtitle h1 { font-size: 24pt; line-height: 1.15; letter-spacing: -.01em; }
.kb-dtitle p { font-size: 13pt; margin-top: 2mm; color: #2B3A55; }
.kb-dname { display: flex; gap: 8mm; margin-bottom: 5mm; }
.kb-dname > div { display: flex; align-items: flex-end; gap: 2mm; flex: 1; }
.kb-dname > div.is-s { flex: 0 0 45mm; }
.kb-dname i { height: 8mm; }
.kb-dinfo { display: flex; flex-wrap: wrap; gap: 3mm 10mm; margin-bottom: 4.5mm; font-size: 10pt; }
.kb-dinfo span { display: grid; }
.kb-dinfo small { font-size: 7.5pt; color: #4A5468; text-transform: uppercase; letter-spacing: .05em; }
.kb-hint { border: .35mm solid #22324F; border-radius: 2mm; padding: 3mm 4mm; margin-bottom: 5mm; background: #F4F7FB; }
.kb-hint b { display: block; font-size: 10pt; margin-bottom: 1.2mm; }
.kb-hint ul { padding-left: 4.6mm; font-size: 9.5pt; line-height: 1.45; }
.kb-pt { width: 100%; border-collapse: collapse; margin-bottom: 5mm; font-size: 9.5pt; table-layout: fixed; }
.kb-pt th, .kb-pt td { border: .3mm solid #22324F; padding: 1.4mm 1mm; text-align: center; height: 8mm; }
.kb-pt thead th { background: #EEF2F8; font-weight: 600; height: 6mm; }
.kb-pt tbody th { text-align: left; padding-left: 2mm; font-weight: 500; width: 30mm; }
.kb-pt thead th:first-child { width: 30mm; text-align: left; padding-left: 2mm; }
.kb-pt .kb-sum { width: 19mm; font-weight: 700; }
.kb-dnote { display: flex; gap: 10mm; margin-bottom: 4mm; }
.kb-note { display: flex; align-items: flex-end; gap: 2mm; flex: 0 0 45mm; }
.kb-note i { height: 10mm; border: .35mm solid #22324F; border-radius: 1.5mm; }
.kb-sig { display: flex; align-items: flex-end; gap: 2mm; flex: 1; }
.kb-bem { display: grid; gap: 1mm; margin-bottom: 4mm; }
.kb-deck .kb-fill { margin-top: 2mm; }
@media print { .kb-page { margin: 0; box-shadow: none; } }
