:root {
    --print-text: #3f3f3f;
    --print-muted: #777;
    --print-border: #c9c9c9;
    --print-red: #8b1e1e;
}

* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    padding: 0;
    background: #e5e7eb;
    color: var(--print-text);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11pt;
}

/* Toolbar */

.print-toolbar {
    position: sticky;
    top: 0;
    z-index: 20;
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.75rem;
    background: #fff;
    border-bottom: 1px solid #ddd;
}

.print-toolbar button {
    padding: 0.45rem 0.8rem;
    border: 1px solid #bbb;
    border-radius: 0.35rem;
    background: #f8fafc;
    color: #222;
    font: inherit;
    cursor: pointer;
}

.print-toolbar button:hover {
    background: #eef2f7;
}

/* Page */

.announcement-print-page {
    width: 210mm;
    min-height: 297mm;
    margin: 1rem auto;
    padding: 16mm;
    background: #fff;
}

/* Letterhead styles: /assets/css/print-letterhead.css */

/* Header */

.announcement-header {
    margin-bottom: 6mm;
}

.announcement-header h1 {
    margin: 0 0 0.2rem;
    color: #444;
    font-size: 21pt;
    font-weight: 400;
    line-height: 1.05;
}

.announcement-header p {
    margin: 0;
    color: var(--print-muted);
    font-size: 11.5pt;
    line-height: 1.25;
}

/* Table */

.announcement-table {
    width: 100%;
    margin: 0 0 2mm;
    border-collapse: collapse;
    color: #444;
    font-size: 9.7pt;
}

.announcement-table th,
.announcement-table td {
    min-height: 0;
    padding: 1mm 1.8mm;
    border: 0.35pt solid var(--print-border);
    vertical-align: top;
}

.announcement-table th {
    width: 38mm;
    font-weight: 700;
    text-align: left;
    white-space: nowrap;
}

.announcement-table td {
    width: auto;
}

/* Registration */

.registration-cell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 22mm;
    align-items: start;
    gap: 4mm;
}

.registration-cell--no-qr {
    grid-template-columns: minmax(0, 1fr);
}

.registration-cell__url {
    min-width: 0;
    overflow-wrap: anywhere;
}

.registration-cell__qr {
    display: flex;
    justify-content: flex-end;
    align-items: flex-start;
}

.registration-cell__qr img {
    display: block;
    width: 13mm;
    height: auto;
}

/* Speakers */

.speaker-print-entry {
    margin-bottom: 0.7mm;
    line-height: 1.16;
}

.speaker-print-entry:last-child {
    margin-bottom: 0;
}

.speaker-print-entry__headline {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.3mm 1.4mm;
    margin-bottom: 0.2mm;
}

.speaker-print-entry__name {
    font-size: 10.5pt;
    font-weight: 700;
    line-height: 1.12;
}

.speaker-print-entry__function {
    color: var(--print-muted);
    font-size: 8.8pt;
    font-weight: 400;
    line-height: 1.12;
}

.speaker-print-entry__details {
    display: block;
    color: var(--print-muted);
    font-size: 7.4pt;
    font-weight: 400;
    line-height: 1.12;
}

/* Footer */

.announcement-footer {
    max-width: 170mm;
    margin: 0 0 2mm;
    color: #444;
    font-size: 7.2pt;
    line-height: 1.12;
}

/* Signatures */

.announcement-signatures {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 20mm;
    margin-top: 12mm;
    color: #444;
    font-size: 9pt;
    line-height: 1.18;
}

.announcement-signature {
    min-height: 7mm;
}

.announcement-signature--right {
    text-align: left;
}

.announcement-signature__name {
    display: block;
    font-weight: 700;
}

.announcement-signature__function {
    display: block;
    margin-top: 0.8mm;
    font-weight: 400;
}

/* Print */

@page {
    size: A4;
    margin: 0;
}

@media print {
    html,
    body {
        background: #fff;
    }

    .print-toolbar {
        display: none;
    }

    .announcement-print-page {
        width: auto;
        min-height: auto;
        margin: 0;
        padding: 8mm 16mm;
        box-shadow: none;
    }

    a {
        color: inherit;
        text-decoration: none;
    }
}
.announcement-table td .location-public-hint {
    display: block;
    margin-top: 0.45mm;
    color: var(--print-muted);
    font-size: 9.2pt !important;
    font-weight: 400;
    line-height: 1.14;
}

/* Kooperationspartner und Terminblöcke */
.print-cooperation { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .25rem .65rem; margin: -2mm 0 .2rem; font-size: 8.5pt; }
.print-cooperation__partner { display: inline-flex; align-items: center; gap: .35rem; }
.print-cooperation__partner img { width: auto; height: 8mm; max-width: 32mm; object-fit: contain; }
.announcement-block-list { display: grid; gap: 1mm; }
.announcement-block { display: grid; gap: .5mm; padding: 1mm 0; border-bottom: .2mm solid #d1d5db; }
.announcement-block:last-child { border-bottom: 0; }
.announcement-block small { color: #4b5563; font-size: 8.5pt; }

.announcement-table tr,
.announcement-signatures {
    break-inside: avoid;
    page-break-inside: avoid;
}
