/* Lehrzeug Flyer und Aushang – werkzeugeigenes Design. Gemeinsames Design: /kern/kern.css */
.lz-sec-title .i { width: 18px; height: 18px; color: var(--teal-ink); }
.fl-tpls { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 0 0 16px; }
.fl-tb { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 14px; border: 1.5px solid var(--line-2); background: var(--surface); color: var(--ink); font: inherit; font-size: 14px; font-weight: 600; text-align: left; cursor: pointer; transition: border-color .15s, background .15s, transform .1s; }
.fl-tb .i { width: 22px; height: 22px; flex: none; color: var(--coral-ink); }
.fl-tb:hover { border-color: var(--coral); }
.fl-tb.is-on { border-color: var(--coral); background: var(--coral-soft); box-shadow: inset 0 0 0 1px var(--coral); }
@media (max-width: 900px) { .fl-tpls { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.fl-form { display: grid; gap: 0; }
.fl-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 10px; }
.fl-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.fl-chip { padding: 5px 11px; border-radius: 99px; border: 1.5px solid var(--line-2); background: var(--surface-2); color: var(--ink); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.fl-chip:hover { border-color: var(--coral); }
.fl-colors { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.fl-sw { position: relative; width: 32px; height: 32px; border-radius: 50%; border: 3px solid var(--surface); box-shadow: 0 0 0 1.5px var(--line-2); padding: 0; cursor: pointer; overflow: hidden; }
.fl-sw.is-on { box-shadow: 0 0 0 2.5px var(--ink); }
.fl-swown { background: conic-gradient(#F2604F, #E0A100, #3E9B4F, #12A383, #2E7CF6, #8B5CF6, #E5487A, #F2604F); }
.fl-swown input { position: absolute; inset: -6px; width: calc(100% + 12px); height: calc(100% + 12px); opacity: 0; cursor: pointer; }
.fl-motive { display: grid; grid-template-columns: repeat(auto-fill, minmax(52px, 1fr)); gap: 6px; }
.fl-mo { display: grid; place-items: center; height: 52px; padding: 4px; border-radius: 12px; border: 1.5px solid var(--line-2); background: #fff; cursor: pointer; }
.fl-mo svg { width: 40px; height: 40px; }
.fl-mo.is-on { border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.fl-none { font-size: 12px; font-weight: 700; color: var(--ink-3); }
.fl-logo-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.fl-logo-prev { display: grid; place-items: center; width: 64px; height: 44px; border-radius: 10px; border: 1.5px dashed var(--line-2); background: var(--surface-2); color: var(--ink-3); overflow: hidden; }
.fl-logo-prev img { max-width: 100%; max-height: 100%; object-fit: contain; }
.fl-logo-prev .i { width: 20px; height: 20px; }

/* Vorschau: Blätter in Originalgröße, per JavaScript verkleinert */
.fl-wrap { overflow: hidden; }
.fl-sheets { transform-origin: 0 0; display: grid; gap: 10mm; }
.fl-sheets .fl-sheet { box-shadow: 0 10px 30px -18px rgba(7, 27, 74, .5); }

/* ================================================================ Blätter (Vorschau und Druck)
   --k verkleinert den Inhalt, --kh die Überschrift. Das Werkzeug setzt dafür die Klassen fz1 bis fz8 und hz1 bis hz7,
   bis alles aufs Blatt passt (keine Inline-Stile, damit die Klassen auch im Druck gelten). */
.fl-sheet { --k: 1; --kh: 1; position: relative; width: 210mm; height: 296mm; display: flex; flex-direction: column; overflow: hidden; background: #fff; color: #071B4A; font-family: var(--font); break-after: page; page-break-after: always; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.fl-sheet.fz1 { --k: .93; } .fl-sheet.fz2 { --k: .87; } .fl-sheet.fz3 { --k: .81; } .fl-sheet.fz4 { --k: .75; } .fl-sheet.fz5 { --k: .69; } .fl-sheet.fz6 { --k: .63; } .fl-sheet.fz7 { --k: .57; } .fl-sheet.fz8 { --k: .5; }
.fl-sheet.fg1 { --k: 1.1; } .fl-sheet.fg2 { --k: 1.2; } .fl-sheet.fg3 { --k: 1.32; } .fl-sheet.fg4 { --k: 1.45; } .fl-sheet.fg5 { --k: 1.6; } .fl-sheet.fg6 { --k: 1.75; }
.fl-sheet.hz1 { --kh: .9; } .fl-sheet.hz2 { --kh: .8; } .fl-sheet.hz3 { --kh: .7; } .fl-sheet.hz4 { --kh: .62; } .fl-sheet.hz5 { --kh: .54; } .fl-sheet.hz6 { --kh: .47; } .fl-sheet.hz7 { --kh: .4; }
.fl-sheet.is-quer { width: 297mm; height: 209.5mm; }
.fl-sheet:last-child { break-after: auto; page-break-after: auto; }
:where(.fl-sheet) :where(h1, p, ol, ul) { margin: 0; }
.fl-sheet.fl-measure .fl-h { overflow-wrap: normal; }
.fl-band { position: absolute; left: 0; top: 0; width: 100%; height: 100%; z-index: 0; }
.fl-kick { font-size: calc(11pt * var(--kh)); font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.fl-h { font-size: calc(40pt * var(--kh)); line-height: 1.04; letter-spacing: -.02em; font-weight: 800; overflow-wrap: break-word; hyphens: manual; }
.fl-sub { font-size: calc(14pt * var(--kh)); line-height: 1.35; }
.fl-motiv { display: block; width: 100%; height: auto; }
.fl-fi { display: grid; place-items: center; flex: none; }
.fl-fi .i { width: calc(7mm * var(--k)); height: calc(7mm * var(--k)); }
.fl-fact > .fl-factbg, .fl-raum > .fl-factbg, .fl-zeit > .fl-factbg { position: absolute; left: 0; top: 0; width: 100%; height: 100%; z-index: 0; }
/* Motiv als runder Aufkleber auf dem Farbband: sichtbar auf jeder Farbe */
.fl-mot { position: absolute; z-index: 1; right: 12mm; top: 14mm; width: 64mm; height: 64mm; }
.fl-motbg { position: absolute; inset: 0; width: 100%; height: 100%; }
.fl-mot .fl-motiv { position: absolute; left: 13%; top: 13%; width: 74%; height: 74%; }
.fl-credit { position: absolute; right: 8mm; font-size: 6.5pt; color: #8A93A6; line-height: 1; }
/* Logo und Absender unten */
.fl-from { display: flex; align-items: center; gap: 5mm; min-width: 0; }
.fl-logo { display: block; flex: none; max-width: 48mm; max-height: 18mm; width: auto; height: auto; object-fit: contain; }

/* Plakat */
.fl-top { position: relative; height: 94mm; padding: 16mm 16mm 0; color: #fff; flex: none; }
.fl-topin { position: relative; z-index: 2; max-width: 114mm; display: grid; gap: 2.5mm; }
.fl-poster.no-mot .fl-topin { max-width: none; }
.fl-body { flex: 1; min-height: 0; display: flex; flex-direction: column; gap: calc(7mm * var(--k)); padding: 10mm 16mm 0; overflow: hidden; }
.fl-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4mm; }
.fl-facts > .fl-fact:only-child, .fl-facts > .fl-fact:nth-child(3):last-child { grid-column: 1 / -1; }
.fl-fact { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; align-content: center; column-gap: 3.5mm; row-gap: .5mm; padding: calc(4mm * var(--k)) 5mm; border-radius: 3mm; overflow: hidden; }
.fl-fact > :not(.fl-factbg) { position: relative; z-index: 1; }
.fl-fact .fl-fi { grid-row: 1 / span 2; }
.fl-fact small { font-size: calc(8.5pt * var(--k)); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; opacity: .7; }
.fl-fact b { font-size: calc(13pt * var(--k)); line-height: 1.25; overflow-wrap: break-word; }
.fl-list { list-style: none; margin: 0; padding: 0; display: grid; gap: calc(3mm * var(--k)); font-size: calc(15pt * var(--k)); line-height: 1.3; }
.fl-list li { display: flex; align-items: baseline; gap: 3mm; }
.fl-dot { flex: none; display: inline-block; width: 3.4mm; height: 3.4mm; border-radius: 50%; overflow: hidden; transform: translateY(-.3mm); }
.fl-dotsvg { display: block; width: 100%; height: 100%; }
.fl-list i { flex: 1; min-width: 6mm; border-bottom: .6mm dotted #8E9AB0; transform: translateY(-1mm); }
.fl-list b { font-weight: 800; white-space: nowrap; }
.fl-text { font-size: calc(13pt * var(--k)); line-height: 1.45; }
.fl-zweck { display: flex; align-items: center; gap: 3mm; font-size: calc(13pt * var(--k)); line-height: 1.35; }
.fl-zweck > span:first-child { flex: none; display: grid; }
.fl-zweck .i { width: 7mm; height: 7mm; color: #E5484D; }
.fl-foot { flex: none; display: flex; justify-content: space-between; align-items: flex-end; gap: 6mm; padding: 6mm 16mm 12mm; }
.fl-abs { font-size: calc(12pt * var(--k)); font-weight: 800; line-height: 1.3; }
.fl-qr { flex: none; display: grid; justify-items: center; gap: 1mm; }
.fl-qr svg { width: 30mm; height: 30mm; display: block; }
.fl-qr.is-s svg { width: 22mm; height: 22mm; }
.fl-qr small { font-size: 8pt; font-weight: 700; color: #5B6372; }
.fl-tear { flex: none; display: flex; height: 44mm; border-top: .5mm dashed #5B6372; }
.fl-tear span { flex: 1; min-width: 0; display: flex; align-items: center; justify-content: center; padding: 2mm 1mm; border-left: .4mm dashed #9AA6B8; }
.fl-tear span:first-child { border-left: 0; }
.fl-tear b { writing-mode: vertical-rl; transform: rotate(180deg); font-size: 9pt; line-height: 1.15; text-align: center; max-height: 40mm; overflow: hidden; }
.fl-poster.has-tear .fl-top { height: 84mm; }
.fl-poster.has-tear .fl-mot { width: 58mm; height: 58mm; top: 13mm; }
.fl-poster.has-tear .fl-foot { padding-bottom: 7mm; }
.fl-poster.has-tear .fl-credit { bottom: 46mm; }

/* Türschild (Elternsprechtag, Elternabend) */
.fl-tuer > .fl-band { height: 74mm; }
.fl-tin { position: relative; z-index: 2; height: 74mm; padding: 16mm 16mm 0; color: #fff; display: grid; align-content: start; gap: 3mm; flex: none; }
.fl-tin .fl-h { font-size: calc(38pt * var(--kh)); }
.fl-tin > * { max-width: 122mm; }
.fl-tin .fl-h span { opacity: .85; }
.fl-tuer.no-mot .fl-tin > *, .fl-wende .fl-tin > * { max-width: none; }
.fl-tuer .fl-mot { top: 10mm; width: 54mm; height: 54mm; }
.fl-tbody { display: flex; gap: 6mm; align-items: stretch; padding: calc(10mm * var(--k)) 16mm 0; }
.fl-who { flex: 1; min-width: 0; display: grid; align-content: center; gap: 1.5mm; }
.fl-who small { font-size: calc(9pt * var(--k)); font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #5B6372; }
.fl-name { font-size: calc(30pt * var(--k)); font-weight: 800; line-height: 1.1; overflow-wrap: break-word; }
.fl-blank { display: block; height: 14mm; border-bottom: .6mm solid #071B4A; }
.fl-fach { font-size: calc(15pt * var(--k)); color: #3D4B66; }
.fl-raum { position: relative; width: calc(46mm * var(--k)); padding: 4mm; border-radius: 4mm; overflow: hidden; display: grid; place-items: center; align-content: center; text-align: center; flex: none; }
.fl-raum > :not(.fl-factbg) { position: relative; z-index: 1; }
.fl-raum small { font-size: 10pt; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; opacity: .75; }
.fl-raum b { font-size: calc(36pt * var(--k)); line-height: 1.05; overflow-wrap: anywhere; }
.fl-zeit { position: relative; display: flex; align-items: center; gap: 5mm; margin: calc(8mm * var(--k)) 16mm 0; padding: calc(5mm * var(--k)) 7mm; border-radius: 4mm; overflow: hidden; font-size: calc(16pt * var(--k)); line-height: 1.4; }
.fl-zeit > :not(.fl-factbg) { position: relative; z-index: 1; }
.fl-zeit .fl-fi .i { width: 10mm; height: 10mm; }
.fl-abend .fl-tbody .fl-zeit { flex: 1; margin: 0; }
.fl-hin { margin: calc(7mm * var(--k)) 16mm 0; padding: 1mm 0 1mm 5mm; border-left: 1.6mm solid #071B4A; font-size: calc(15pt * var(--k)); line-height: 1.4; }
.fl-slotsbox { margin: calc(7mm * var(--k)) 16mm 0; }
.fl-slh { margin: 0 0 2.5mm; font-size: calc(11pt * var(--k)); font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.fl-slcols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7mm; align-items: start; }
.fl-slcols.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5mm; }
.fl-slots { width: 100%; border-collapse: collapse; font-size: calc(11pt * var(--k)); }
.fl-slots td { height: calc(7.2mm * var(--k)); border-bottom: .3mm solid #9AA6B8; }
.fl-slots td:first-child { width: 15mm; font-weight: 800; font-variant-numeric: tabular-nums; }
.fl-agenda { margin: calc(8mm * var(--k)) 16mm 0; }
.fl-agenda ol { margin: 0; padding-left: 8mm; display: grid; gap: calc(3mm * var(--k)); font-size: calc(16pt * var(--k)); line-height: 1.35; }
.fl-mid { flex: 1; min-height: 0; display: flex; flex-direction: column; justify-content: center; justify-content: safe center; overflow: hidden; padding-bottom: 6mm; }
.fl-mid > * { flex: none; }
.fl-tfoot { margin-top: auto; flex: none; display: flex; align-items: flex-end; padding: 6mm 16mm 11mm; min-height: 12mm; }
.fl-wende .fl-tin { height: 40mm; padding-top: 14mm; }
.fl-wende > .fl-band { height: 40mm; }
.fl-win { flex: 1; min-height: 0; display: grid; justify-items: center; align-content: center; gap: 6mm; padding: 0 20mm; text-align: center; }
.fl-win .fl-motiv { width: 70mm; }
.fl-win .fl-h { font-size: calc(54pt * var(--kh)); }
.fl-win .fl-sub { font-size: 18pt; max-width: 150mm; }
.fl-thx { font-size: 28pt; font-weight: 800; }

/* Wegweiser */
.fl-weg { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; padding: 20mm 18mm 0; text-align: center; }
.fl-weg .fl-h { font-size: calc(54pt * var(--kh)); }
.fl-weg .fl-sub { margin-top: 4mm; font-size: calc(20pt * var(--k)); color: #3D4B66; }
.fl-weg.is-quer { padding-top: 16mm; }
.fl-weg.is-quer .fl-h { font-size: calc(64pt * var(--kh)); }
.fl-wegarrow { display: grid; place-items: center; min-height: 0; padding: 8mm 0; }
.fl-arrow { width: 100%; max-width: 180mm; max-height: 100%; }
.fl-weg.is-quer .fl-arrow { max-width: 230mm; }
.fl-arrow.is-oben, .fl-arrow.is-unten { width: auto; height: 100%; max-height: 160mm; }
.fl-weg .fl-tfoot { padding: 0 0 10mm; min-height: 0; }

/* Hinweisschild */
.fl-schild { padding: 10mm; }
.fl-frame { position: relative; flex: 1; min-height: 0; border-radius: 8mm; overflow: hidden; display: grid; padding: 9mm; }
.fl-framebg { position: absolute; left: 0; top: 0; width: 100%; height: 100%; }
.fl-schin { position: relative; z-index: 1; min-height: 0; display: grid; justify-items: center; align-content: center; gap: 6mm; border-radius: 4mm; padding: 12mm; text-align: center; border: .6mm solid #071B4A; overflow: hidden; }
.fl-schin .fl-pagebg { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; }
.fl-smot { width: calc(40mm * var(--k)); }
.fl-schild .fl-h { font-size: calc(58pt * var(--kh)); }
.fl-schild.is-quer .fl-h { font-size: calc(66pt * var(--kh)); }
.fl-schild .fl-sub { font-size: calc(17pt * var(--k)); max-width: 200mm; color: #3D4B66; line-height: 1.35; }
.fl-schild .fl-logo { max-height: 16mm; }

/* Druck: keine Verkleinerung, keine Schatten */
@media print { .fl-sheet { box-shadow: none !important; } }
