/* Druckvorlagen der Unterrichtsmaterialien (app/Views/campaign.php → cp_print).
   Aus diesen Seiten entstehen die PDFs unter /downloads/tag-der-sprachen/. */
@page { size: A4; margin: 0; }
* { box-sizing: border-box; }
body.pm {
  margin: 0; background: #EFE7DB; color: #2D2823;
  font-family: 'Manrope', system-ui, 'Segoe UI', 'Noto Sans Arabic', 'Yu Gothic', 'Malgun Gothic', 'Microsoft YaHei', sans-serif;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.pm-bar { position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; align-items: center; gap: 12px;
  padding: 10px 16px; background: #2D2823; font-size: 14px; }
.pm-bar a { color: #fff; text-decoration: none; font-weight: 600; }
.pm-bar button { font: 700 14px/1 inherit; font-family: inherit; background: #E0492F; color: #fff; border: 0; border-radius: 8px; padding: 9px 14px; cursor: pointer; }

.pm-page { width: 210mm; height: 297mm; margin: 10mm auto; padding: 13mm 13mm 10mm; background: #fff;
  display: flex; flex-direction: column; gap: 5mm; overflow: hidden; box-shadow: 0 10px 30px rgba(45,40,35,.12); break-after: page; }
.pm-page:last-of-type { break-after: auto; }
@media print {
  body.pm { background: #fff; }
  .pm-bar { display: none; }
  .pm-page { margin: 0; box-shadow: none; }
}

.pm-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 6mm; padding-bottom: 4mm; border-bottom: 1.2mm solid #E0492F; }
.pm-kicker { font: 700 8.5pt/1.2 'JetBrains Mono', ui-monospace, monospace; letter-spacing: .1em; text-transform: uppercase; color: #B83E28; }
.pm-title { margin: 2mm 0 0; font-size: 28pt; font-weight: 800; letter-spacing: -.02em; line-height: 1.05; }
.pm-logo { font-size: 15pt; font-weight: 800; color: #E0492F; }
.pm-foot { margin-top: auto; display: flex; justify-content: space-between; gap: 6mm; padding-top: 2.5mm; border-top: .3mm solid #EAE2D6; font-size: 7.5pt; color: #6B6258; }
.pm-intro { margin: 0; font-size: 11pt; line-height: 1.5; color: #5C544B; }

/* Plakat */
.pm-grid { flex: 1; display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 1fr; gap: 2.2mm; min-height: 0; }
.pm-cell { display: flex; flex-direction: column; justify-content: center; gap: .6mm; min-height: 0; padding: 2mm 3.5mm; border: .3mm solid #EAE2D6; border-radius: 3mm; }
.pm-term { font-size: 17pt; font-weight: 800; line-height: 1.15; }
.pm-term-sm { display: block; font-size: 11pt; font-weight: 700; line-height: 1.2; }
.pm-ph { display: block; font-size: 8pt; color: #6B6258; }
.pm-lang { font: 600 6.8pt/1.2 'JetBrains Mono', ui-monospace, monospace; letter-spacing: .08em; text-transform: uppercase; color: #9C9286; }
.pm-qr { align-items: center; text-align: center; background: #FCEAE3; border-color: #FCEAE3; }
.pm-qr-code { width: 22mm; height: 22mm; }
.pm-qr-code svg { display: block; width: 22mm; height: 22mm; background: #fff; padding: 1.5mm; border-radius: 1.5mm; }

/* Tabelle */
.pm-table { width: 100%; border-collapse: collapse; }
.pm-table th, .pm-table td { text-align: left; vertical-align: top; padding: 2mm 2.5mm; border-bottom: .3mm solid #EAE2D6; }
.pm-table thead th { font: 700 7.5pt/1.2 'JetBrains Mono', ui-monospace, monospace; letter-spacing: .08em; text-transform: uppercase; color: #B83E28; border-bottom: .6mm solid #E0492F; }
.pm-table tbody th { width: 28%; font-size: 10pt; font-weight: 700; }

/* Bingo */
.pm-name { display: flex; align-items: flex-end; gap: 3mm; font-size: 11pt; font-weight: 700; }
.pm-name .pm-line { flex: 1; }
.pm-line { display: block; height: 7mm; border-bottom: .3mm solid #9C9286; }
.pm-bingo { flex: 1; display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 1fr; gap: 2mm; min-height: 0; }
.pm-bingo-cell { display: flex; flex-direction: column; justify-content: space-between; padding: 3mm; border: .5mm solid #2D2823; border-radius: 2.5mm; font-size: 10.5pt; font-weight: 600; line-height: 1.3; }

/* Rätsel */
.pm-quiz { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3mm; }
.pm-quiz-box { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2mm; min-height: 34mm; padding: 4mm; border: .3mm solid #EAE2D6; border-radius: 3mm; text-align: center; }
.pm-num { position: absolute; top: 2.5mm; left: 3mm; font: 700 9pt/1 'JetBrains Mono', ui-monospace, monospace; color: #B83E28; }
.pm-answer { width: 12mm; height: 9mm; border: .4mm solid #2D2823; border-radius: 2mm; }
.pm-langs h2 { margin: 0 0 2mm; font-size: 13pt; }
.pm-langs ul { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5mm 6mm; font-size: 11pt; }
.pm-langs b, .pm-solution b { color: #B83E28; margin-right: 1.5mm; }
.pm-solution { margin: 0; padding: 0; list-style: none; display: grid; gap: 3mm; font-size: 13pt; }

/* Zahlen */
.pm-numbers th, .pm-numbers td { padding: 3.4mm 1.4mm; }
.pm-numbers thead th { font-size: 6.4pt; letter-spacing: .03em; }
.pm-numbers tbody th.pm-bignum { width: 11mm; font-size: 17pt; font-weight: 800; color: #E0492F; vertical-align: middle; }
.pm-numbers .pm-term-sm { font-size: 12pt; }
.pm-numbers .pm-ph { font-size: 7.6pt; }

/* Schriften */
.pm-h2 { margin: 0 0 2mm; font-size: 12pt; }
.pm-scripts { flex: 1; display: grid; grid-auto-rows: 1fr; gap: 2.2mm; min-height: 0; }
.pm-script { display: grid; grid-template-columns: 50mm 1fr; gap: 5mm; align-items: center; padding: 2mm 4mm; border: .3mm solid #EAE2D6; border-radius: 3mm; }
.pm-script-word { font-size: 21pt; font-weight: 800; text-align: center; line-height: 1.2; }
.pm-script-body h2 { margin: 0; font-size: 11pt; }
.pm-script-body p { margin: .5mm 0 0; font-size: 8.3pt; line-height: 1.35; color: #5C544B; }
.pm-dir b { color: #B83E28; }
.pm-copy { display: flex; align-items: flex-end; gap: 3mm; margin-top: 1mm; font-size: 8pt; color: #6B6258; }
.pm-copy .pm-line { flex: 1; height: 7mm; }

/* Sprachenporträt */
.pm-portrait { flex: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 8mm; align-items: start; min-height: 0; }
.pm-figure { height: 100%; display: flex; justify-content: center; }
.pm-figure svg { width: 100%; max-height: 190mm; }
.pm-legend { width: 100%; border-collapse: collapse; font-size: 9.5pt; }
.pm-legend th { text-align: left; padding: 1.5mm; font: 700 7pt/1.2 'JetBrains Mono', ui-monospace, monospace; letter-spacing: .06em; text-transform: uppercase; color: #B83E28; border-bottom: .6mm solid #E0492F; }
.pm-legend td { height: 14mm; padding: 1.5mm; border-bottom: .3mm solid #9C9286; vertical-align: middle; }
.pm-swatch { width: 14mm; }
.pm-swatch span { display: block; width: 9mm; height: 9mm; border: .4mm solid #2D2823; border-radius: 2mm; }

/* Umfrage */
.pm-survey { display: grid; grid-template-columns: 1fr 1fr; gap: 7mm; align-items: start; }
.pm-tally td { height: 8.6mm; }
.pm-tally-lang { width: 26mm; font-weight: 700; }
.pm-tally-n { width: 14mm; border-left: .3mm solid #EAE2D6; }
.pm-chart { display: grid; grid-template-columns: 6mm repeat(12, 1fr); grid-template-rows: repeat(10, 7.6mm) 16mm; border-left: .4mm solid #2D2823; }
.pm-chart-y { font: 600 7pt/7.6mm 'JetBrains Mono', ui-monospace, monospace; color: #6B6258; text-align: center; }
.pm-chart-c { border-top: .25mm dotted #C3B8A9; border-left: .25mm dotted #EAE2D6; }
.pm-chart-x { border-top: .4mm solid #2D2823; border-left: .25mm dotted #EAE2D6; }
.pm-questions { margin: 0; padding-left: 5mm; display: grid; gap: 1mm; font-size: 10pt; font-weight: 600; }
.pm-questions .pm-line { height: 7mm; }

/* Memory */
.pm-memory { flex: 1; display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 1fr; min-height: 0; border-top: .3mm dashed #9C9286; border-left: .3mm dashed #9C9286; }
.pm-card { display: flex; align-items: center; justify-content: center; text-align: center; padding: 3mm; border-right: .3mm dashed #9C9286; border-bottom: .3mm dashed #9C9286; }
.pm-card-term { font-size: 17pt; font-weight: 800; line-height: 1.2; }
.pm-card-lang { font: 700 9pt/1.3 'JetBrains Mono', ui-monospace, monospace; letter-spacing: .08em; text-transform: uppercase; color: #B83E28; }

/* Urkunde */
.pm-cert { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5mm; padding: 12mm; text-align: center;
  border: 1.4mm solid #E0492F; border-radius: 5mm; box-shadow: inset 0 0 0 1.6mm #fff, inset 0 0 0 2mm #F4805E; }
.pm-cert-badge { width: 34mm; height: 34mm; border-radius: 50%; background: linear-gradient(135deg, #F4805E, #E0492F); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.pm-cert-badge b { font-size: 28pt; line-height: 1; font-weight: 800; }
.pm-cert-badge span { font-size: 8pt; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.pm-cert-title { margin: 0; font-size: 46pt; font-weight: 800; letter-spacing: -.02em; line-height: 1; }
.pm-cert-sub { font: 700 11pt/1.2 'JetBrains Mono', ui-monospace, monospace; letter-spacing: .1em; text-transform: uppercase; color: #B83E28; }
.pm-cert-namebox { display: flex; flex-direction: column; align-items: center; gap: 1mm; margin-top: 8mm; }
.pm-cert-name { display: block; width: 125mm; height: 14mm; border-bottom: .4mm solid #2D2823; }
.pm-cert-label, .pm-cert-sign div { font-size: 8pt; color: #6B6258; }
.pm-cert-text { margin: 4mm 0 0; max-width: 140mm; font-size: 14pt; line-height: 1.6; }
.pm-cert-hellos { margin: 0; max-width: 150mm; font-size: 11pt; line-height: 1.8; color: #9C9286; }
.pm-cert-sign { display: grid; grid-template-columns: 1fr 1fr; gap: 22mm; width: 150mm; margin-top: 12mm; }
.pm-cert-sign div { border-top: .4mm solid #2D2823; padding-top: 1.5mm; }
