/* DIN-A4-Seiten für Anschreiben und Lebenslauf */
@page { size: A4; margin: 0; }
* { box-sizing: border-box; }
html { background: #e9e6e1; }
body {
  margin: 0; padding: 24px 0;
  font: 11pt/1.5 Arial, "Helvetica Neue", Helvetica, sans-serif;
  color: #1a1a1a;
}
body.embedded { padding: 12px 0; }
.toolbar {
  position: sticky; top: 0; z-index: 2;
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  max-width: 210mm; margin: 0 auto 16px; padding: 10px 14px;
  background: #1f3b4d; color: #fff; border-radius: 8px;
}
.toolbar a { color: #fff; }
.toolbar button {
  font: inherit; font-weight: 600; cursor: pointer;
  background: #f2a541; color: #1f3b4d; border: 0; border-radius: 6px; padding: 8px 14px;
}
.page {
  position: relative; overflow: hidden;
  width: 210mm; min-height: 297mm; margin: 0 auto 16px;
  padding: 20mm 20mm 20mm 25mm;
  background: #fff; box-shadow: 0 2px 12px rgba(0,0,0,.12);
}
.embedded .page { transform-origin: top center; }
.letter .sender { font-size: 10pt; text-align: right; margin-bottom: 14mm; }
.letter .recipient { min-height: 30mm; margin-bottom: 10mm; }
.letter .date { text-align: right; margin-bottom: 8mm; }
.letter .subject { font-size: 11pt; font-weight: 700; margin: 0 0 6mm; }
.letter p { margin: 0 0 4mm; hyphens: auto; }
.letter .closing { margin-top: 6mm; }
.signature { height: 14mm; }
.letter .attachments { margin-top: 10mm; font-size: 10pt; }
.cv h1 { font-size: 20pt; margin: 0 0 8mm; letter-spacing: .02em; }
.cv h2 {
  font-size: 11pt; text-transform: uppercase; letter-spacing: .08em; color: #1f3b4d;
  border-bottom: 1.5px solid #1f3b4d; padding-bottom: 1.5mm; margin: 7mm 0 3mm;
}
.cv dl { display: grid; grid-template-columns: 42mm 1fr; gap: 2mm 6mm; margin: 0; }
.cv dt { color: #555; }
.cv dd { margin: 0; }
.cv-sign { margin-top: 14mm; }
.watermark .page::after {
  content: "VORSCHAU"; position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font: 700 92pt/1 Arial, sans-serif; color: rgba(31, 59, 77, .09);
  transform: rotate(-30deg); pointer-events: none;
}
@media screen and (max-width: 860px) {
  body:not(.embedded) .page { width: auto; min-height: 0; margin: 0 8px 12px; padding: 24px; }
  body:not(.embedded) .cv dl { grid-template-columns: 1fr; }
  body:not(.embedded) .toolbar { margin: 0 8px 12px; }
}
@media print {
  html, body { background: #fff; padding: 0; }
  .no-print { display: none !important; }
  .page { box-shadow: none; margin: 0; page-break-after: always; }
  .watermark .page::after { color: rgba(0,0,0,.12); }
}

/* ===== Phase 4: Urkunde, Pakt, Notfall-Karte, Sticker, Poster, Vortragsmappe ===== */
.print-hint { max-width: 210mm; margin: 0 auto 6mm; font-size: 10pt; color: #555; }
.pact-print-list { font-size: 14pt; line-height: 1.5; padding-left: 8mm; margin: 8mm 0; }
.pact-print-list li { margin-bottom: 4mm; }
.pact-print-list small { color: #777; font-size: 10pt; }

.cert { padding: 12mm; }
.cert-frame { position: relative; height: 273mm; border: 3mm solid #ffc23d; outline: 1mm solid #e3a112; outline-offset: -6mm; border-radius: 6mm;
  padding: 24mm 18mm 16mm; text-align: center; background: radial-gradient(circle at 50% 0, #fff8e6, #fff 60%); }
.cert-kompi { width: 46mm; margin: 0 auto 4mm; }
.cert-kicker { font: 700 13pt Arial, sans-serif; letter-spacing: .3em; text-transform: uppercase; color: #e3a112; margin: 0; }
.cert-title { font: 800 34pt/1.1 Arial, sans-serif; color: #1a2140; margin: 2mm 0 8mm; }
.cert-for { font-size: 13pt; margin: 0 0 3mm; }
.cert-name { font: 800 30pt Arial, sans-serif; color: #2d46c2; border-bottom: .4mm solid #1a2140; display: inline-block; min-width: 120mm; padding: 0 8mm 2mm; margin: 2mm 0 6mm; }
.cert-chapters { list-style: none; padding: 0; margin: 8mm auto; display: flex; flex-wrap: wrap; justify-content: center; gap: 3mm 6mm; max-width: 150mm; font-size: 11pt; }
.cert-chapters li { background: #eef7f7; color: #0d6d6d; border-radius: 10mm; padding: 1.5mm 4mm; }
.cert-promise { font-style: italic; font-size: 12pt; max-width: 135mm; margin: 6mm auto 0; color: #333; }
.cert-sign { display: grid; grid-template-columns: 1fr 1fr; gap: 16mm; margin-top: 16mm; text-align: left; }
.cert-sign .line { border-bottom: 1px solid #555; height: 12mm; }
.cert-sign small { font-size: 9pt; color: #555; }
.cert-kompi-sign { font: italic 700 18pt "Comic Sans MS", "Segoe Print", cursive; color: #2d46c2; height: 0; position: relative; top: 2mm; padding-left: 4mm; }
.cert-meta { position: absolute; left: 0; right: 0; bottom: 10mm; font-size: 9pt; color: #777; margin: 0; }

.sticker-page { padding: 12mm 15mm; }
.card-grid { display: grid; gap: 0; }
.ecard { display: grid; grid-template-columns: 85mm 85mm; height: 54mm; border: .3mm dashed #999; margin: 0 auto; }
.ecard + .ecard { border-top: 0; }
.ecard-front, .ecard-back { padding: 4mm 5mm; overflow: hidden; font-size: 8.5pt; line-height: 1.35; }
.ecard-front { display: grid; grid-template-columns: 20mm 1fr; gap: 3mm; align-items: center; border-right: .3mm dashed #bbb; background: #fff8e6; }
.ecard-h { font: 800 11pt Arial, sans-serif; color: #1a2140; margin: 0 0 1.5mm; }
.ecard ol { margin: 0 0 1.5mm; padding-left: 4.5mm; }
.ecard ol li { margin: 0; }
.ecard-small { font-size: 7.5pt; color: #555; margin: 0; }
.ecard-back { position: relative; }
.ecard-back p { margin: 0 0 1.3mm; padding-right: 20mm; }
.ecard-back b { color: #c62828; }
.ecard-line span { display: inline-block; width: 30mm; border-bottom: .3mm solid #555; }
.ecard-qr { position: absolute; right: 4mm; top: 9mm; width: 17mm; height: 17mm; }
.ecard-qr svg { width: 100%; height: 100%; }
.ecard-url { position: absolute; right: 4mm; bottom: 3mm; font-size: 6.5pt; color: #555; padding: 0 !important; }
.sticker-grid { display: grid; grid-template-columns: repeat(3, 40mm); gap: 16mm 20mm; justify-content: center; margin-top: 8mm; }
.round-sticker { width: 40mm; height: 40mm; border-radius: 50%; border: .3mm dashed #999; background: #ffc23d; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; overflow: hidden; }
.round-sticker b { font: 800 10pt/1.1 Arial, sans-serif; color: #1a2140; }
.round-sticker small { font-size: 6.5pt; color: #1a2140; margin-top: 1mm; }
.round-sticker.alt { background: #2d46c2; }
.round-sticker.alt b, .round-sticker.alt small { color: #fff; }
.round-sticker.alt b { font-size: 13pt; }
.rs-kompi { width: 20mm; margin-bottom: 1mm; }
.rule-lines { padding-left: 8mm; margin: 10mm 0; font-size: 14pt; }
.rule-lines li { margin-bottom: 7mm; }
.rule-lines span { display: block; border-bottom: .3mm solid #999; height: 8mm; }

.talk-page { padding: 14mm 18mm; }
.talk-slide { margin-bottom: 10mm; }
.talk-frame { display: grid; grid-template-columns: 1fr 34mm; gap: 6mm; align-items: center; aspect-ratio: 16 / 9; border: .4mm solid #c9ced8; border-left: 3mm solid #7b5bd6; border-radius: 3mm; padding: 6mm 8mm; background: #fffdf7; }
.talk-frame h2 { font: 800 17pt/1.15 Arial, sans-serif; color: #1a2140; margin: 0 0 3mm; }
.talk-frame ul { margin: 0; padding-left: 5mm; font-size: 11pt; }
.talk-no { font-size: 8pt; color: #888; margin: 0 0 1mm; text-transform: uppercase; letter-spacing: .1em; }
.talk-notes { font-size: 10pt; line-height: 1.5; margin: 3mm 0 0; color: #333; }
.tick-list { list-style: none; padding: 0; margin: 6mm 0; font-size: 11.5pt; }
.tick-list li { padding-left: 9mm; position: relative; margin-bottom: 3mm; }
.tick-list li::before { content: ""; position: absolute; left: 0; top: .5mm; width: 4.5mm; height: 4.5mm; border: .4mm solid #555; border-radius: 1mm; }
@media print {
  .cert, .sticker-page, .talk-page { box-shadow: none; margin: 0; }
  .ecard-front, .round-sticker { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .cert-frame, .cert-chapters li { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .talk-page { page-break-after: always; }
}
