/* Wydruk sesji / kampanii (Pages/Print/PrintView.razor). Na ekranie — podgląd kartki A4 na ciemnym tle;
   przy druku zostaje sama kartka. Szablony: .tpl-kronika (pergamin), .tpl-klasyczny (biel), .tpl-notatnik (zwarty). */

@page {
    size: A4;
    margin: 16mm 15mm 18mm;
    @bottom-center { content: counter(page); font-family: Georgia, serif; font-size: 9pt; color: #7a6a52; }
}
@page :first { @bottom-center { content: none; } }

.print-root { min-height: 100vh; padding: 0 16px 48px; }

.print-toolbar {
    position: sticky; top: 0; z-index: 10;
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px;
    margin: 0 -16px 24px; padding: 10px 16px;
    background: #1a130d; border-bottom: 1px solid #4a3826;
}
.print-options { display: flex; flex-wrap: wrap; align-items: center; }
.print-hint { flex-basis: 100%; opacity: .7; }
.print-loading { display: flex; justify-content: center; padding: 64px; }

/* ── Kartka ── */
.print-sheet {
    --ink: #2b2116; --ink-soft: #6b5a42; --accent: #7a5320; --rule: #c9b48a;
    --paper: #fff; --heading-font: 'Cinzel', Georgia, serif; --body-font: 'Crimson Text', Georgia, serif;
    max-width: 210mm; margin: 0 auto; padding: 18mm 16mm;
    background: var(--paper); color: var(--ink);
    font-family: var(--body-font); font-size: 12pt; line-height: 1.55;
    box-shadow: 0 6px 30px rgba(0, 0, 0, .55);
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.print-sheet .chronicle-prose { font-size: inherit; line-height: inherit; }
.print-sheet .chronicle-prose h1, .print-sheet .chronicle-prose h2, .print-sheet .chronicle-prose h3 {
    font-family: var(--heading-font); color: var(--accent); break-after: avoid;
}
.print-sheet .chronicle-prose p:first-of-type::first-letter { color: var(--accent); }
.print-sheet .chronicle-prose blockquote { border-left-color: var(--rule); }
.print-sheet .chronicle-prose a { color: var(--accent); }
.print-sheet .char-mention { color: inherit; border-bottom: none; cursor: default; }
.print-sheet .char-mention-tip { display: none !important; }
.print-sheet .char-avatar { border-color: var(--accent); color: var(--accent); background: transparent; }

.print-heading { font-family: var(--heading-font); color: var(--accent); font-size: 18pt; margin: 0 0 12pt; text-align: center; }
.page-break { break-before: page; }

/* Okładka */
.print-cover { min-height: 245mm; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 10pt; }
.print-cover .campaign-emblem { width: 84px; height: 84px; font-size: 36px; }
.pc-ornament { color: var(--rule); letter-spacing: .6em; }
.pc-title { font-family: var(--heading-font); color: var(--accent); font-size: 30pt; line-height: 1.15; margin: 4pt 0; }
.pc-saga { font-style: italic; color: var(--ink-soft); }
.pc-meta { color: var(--ink-soft); font-size: 11pt; }
.pc-description { max-width: 140mm; margin-top: 8pt; text-align: left; }
.pc-description .chronicle-prose p:first-of-type::first-letter { float: none; font-size: inherit; padding: 0; font-family: inherit; }
.pc-stats { display: flex; flex-wrap: wrap; justify-content: center; gap: 4pt 18pt; margin-top: 10pt; padding-top: 10pt; border-top: 1px solid var(--rule); }
.pc-footer { margin-top: auto; padding-top: 24pt; font-size: 9pt; color: var(--ink-soft); }

/* Spis */
.print-toc ol { list-style: none; padding: 0; margin: 0; }
.print-toc li { break-inside: avoid; }
.print-toc a { display: flex; align-items: baseline; gap: 6pt; padding: 2pt 0; color: inherit; text-decoration: none; }
.toc-num { font-family: var(--heading-font); color: var(--accent); min-width: 2.6em; }
.toc-dots { flex: 1; border-bottom: 1px dotted var(--rule); transform: translateY(-3pt); }
.toc-date { color: var(--ink-soft); font-size: 10pt; white-space: nowrap; }

/* Sesja */
.print-running-head { display: flex; align-items: center; gap: 8px; font-family: var(--heading-font); color: var(--ink-soft); font-size: 10pt;
    padding-bottom: 6pt; margin-bottom: 14pt; border-bottom: 1px solid var(--rule); }
.print-session { margin-bottom: 14pt; }
.ps-kicker { font-size: 9.5pt; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); }
.ps-status { color: #a0522d; }
.ps-title { font-family: var(--heading-font); color: var(--accent); font-size: 19pt; line-height: 1.2; margin: 2pt 0 8pt; break-after: avoid; }
.ps-summary { margin: 0 0 10pt; padding: 4pt 0 4pt 12pt; border-left: 3px solid var(--rule); font-style: italic; color: var(--ink-soft); }
.ps-cast { font-size: 10.5pt; margin-bottom: 10pt; display: grid; gap: 2pt; }
.ps-label { font-family: var(--heading-font); font-size: 8.5pt; letter-spacing: .1em; text-transform: uppercase; color: var(--accent); margin-right: 4pt; }
.ps-extra { margin-top: 12pt; padding: 8pt 12pt; border: 1px solid var(--rule); border-radius: 3px; break-inside: avoid-page; }
.ps-extra h3 { font-family: var(--heading-font); color: var(--accent); font-size: 12pt; margin: 0 0 4pt; }
.ps-extra .chronicle-prose p:first-of-type::first-letter { float: none; font-size: inherit; padding: 0; font-family: inherit; color: inherit; }
.ps-gm { border-style: dashed; }
.ps-gm small { font-family: var(--body-font); font-size: 9pt; color: #a0522d; }
.ps-tags { margin-top: 8pt; font-size: 9.5pt; color: var(--ink-soft); }
.ps-divider, .ps-end { text-align: center; color: var(--rule); margin: 14pt 0 4pt; letter-spacing: .5em; }
.print-session.filler .chronicle-prose p:first-of-type::first-letter { float: none; font-size: inherit; padding: 0; font-family: inherit; color: inherit; }
.ps-empty { text-align: center; color: var(--ink-soft); }

/* Dramatis personae */
.print-roster h3 { font-family: var(--heading-font); color: var(--accent); font-size: 13pt; margin: 14pt 0 6pt; border-bottom: 1px solid var(--rule); }
.pr-list { display: grid; grid-template-columns: 1fr 1fr; gap: 8pt 14pt; }
.pr-entry { display: flex; gap: 8pt; align-items: flex-start; break-inside: avoid; }
.pr-name { font-weight: 600; }
.pr-sub { font-weight: 400; font-size: 9.5pt; color: var(--ink-soft); margin-left: 4pt; }
.pr-desc { font-size: 10.5pt; }
.print-token-strip { display: flex; flex-wrap: wrap; gap: 10pt; margin-top: 12pt; padding-top: 10pt; border-top: 1px solid var(--rule); }
.pts-item { display: inline-flex; flex-direction: column; align-items: center; gap: 2pt; font-size: 9pt; max-width: 70px; text-align: center; }

/* ── Kronika: pergamin i ozdobniki ── */
.tpl-kronika {
    --paper: #f3e7cc; --ink: #2e2214; --accent: #6e4a1c; --rule: #b89a62;
    background: radial-gradient(ellipse at center, #f6ecd6 0%, #efe0bf 70%, #e6d2a8 100%);
}
.tpl-kronika .print-cover { border: 3px double var(--rule); padding: 16mm 12mm; }
.tpl-kronika .ps-title { text-align: center; }
.tpl-kronika .ps-kicker { text-align: center; }

/* ── Klasyczny: biel, czerń, cienkie linie ── */
.tpl-klasyczny { --paper: #fff; --ink: #111; --ink-soft: #555; --accent: #111; --rule: #999; }
.tpl-klasyczny .chronicle-prose p:first-of-type::first-letter { float: none; font-size: inherit; padding: 0; font-family: inherit; }
.tpl-klasyczny .ps-title { border-bottom: 1px solid var(--rule); padding-bottom: 3pt; }
.tpl-klasyczny .campaign-emblem { filter: grayscale(1); }

/* ── Notatnik: zwarty, bezszeryfowy, treść w dwóch kolumnach ── */
.tpl-notatnik {
    --paper: #fff; --ink: #1d1d1f; --ink-soft: #5c5c66; --accent: #7a5320; --rule: #d8cbb0;
    --heading-font: 'Segoe UI', Arial, sans-serif; --body-font: 'Segoe UI', Arial, sans-serif;
    font-size: 10pt; line-height: 1.45;
}
.tpl-notatnik .chronicle-prose p:first-of-type::first-letter { float: none; font-size: inherit; padding: 0; font-family: inherit; color: inherit; }
.tpl-notatnik .ps-title { font-size: 14pt; font-weight: 700; margin-bottom: 4pt; }
.tpl-notatnik .ps-content { column-count: 2; column-gap: 7mm; column-rule: 1px solid var(--rule); }
.tpl-notatnik .print-session { border-left: 3px solid var(--accent); padding-left: 8pt; }
.tpl-notatnik .ps-divider { display: none; }
.tpl-notatnik .print-cover { min-height: auto; padding: 30mm 0; }
.tpl-notatnik .pc-title { font-size: 24pt; font-weight: 700; }

@media (max-width: 800px) {
    .print-sheet { padding: 20px 16px; }
    .pr-list { grid-template-columns: 1fr; }
    .tpl-notatnik .ps-content { column-count: 1; }
}

@media print {
    html, body, .mud-layout { background: #fff !important; }
    .print-toolbar, .mud-snackbar-provider, .mud-popover-provider { display: none !important; }
    .print-root { padding: 0; min-height: 0; }
    .print-sheet { max-width: none; margin: 0; padding: 0; box-shadow: none; }
    /* Pergamin w druku: tło całej strony (marginesy @page zostają białe — tak drukuje każda przeglądarka). */
    .print-cover { min-height: 245mm; }
    .tpl-notatnik .print-cover { min-height: auto; }
    a { text-decoration: none; }
}
