feat(t-paliad-135): print stylesheet — hide chrome, forms, buttons; show only result content

When the user prints (browser dialog or any Drucken button) the page now
strips everything except the actual result content. Hidden: sidebar nav,
bottom-nav, top header, footer, breadcrumbs, all forms (.tool-input,
.filter-row, .entity-controls, search bars, gebühren-lookup, etc.), the
Fristenrechner pathway-fork buttons, B1 decision-tree cascade, B1/B2 mode
toggle, view toggle, result-action buttons, every <button>. Visible:
timeline / columns view / cost breakdown / gericht cards / entity tables
/ glossar entries / checklist items, plus the page heading + subtitle so
the printed page is identifiable.

Per-page print rules above (kostenrechner / gebühren / checklisten /
gerichte) keep their existing specifics; this block is the catch-all for
chrome those rules miss.

Verified via Playwright print emulation on /dashboard, /tools/kostenrechner,
/tools/fristenrechner (Verfahrensablauf list + Spalten view), /events.
This commit is contained in:
m
2026-05-05 11:57:09 +02:00
parent cc0059d050
commit acaab22ad7

View File

@@ -9819,3 +9819,112 @@ dialog.quick-add-sheet::backdrop {
}
}
/* ============================================================================
t-paliad-135 — Universal print stylesheet
Print only the result content. Hides site chrome (sidebar / top header /
bottom-nav / footer / modals / breadcrumbs), all forms, filter rows,
search bars, the Fristenrechner pathway fork + decision tree + view toggle,
and every <button>. Result panels (timeline, columns view, cost breakdown,
gericht cards, entity tables, glossar entries, checklist items) print as-is.
Per-page print rules above this block handle their specific tweaks; this
block is the catch-all for chrome that those rules miss.
============================================================================ */
@media print {
.header,
.footer,
.sidebar,
.sidebar-hamburger,
.sidebar-overlay,
.bottom-nav,
.modal-overlay,
.modal,
.quick-add-sheet,
.projekt-breadcrumb,
.nav-lang,
.tool-input,
.filter-row,
.entity-controls,
.gerichte-controls,
.checklist-filters,
.gebuehren-lookup,
.gebuehren-tabs,
.gebuehren-versions,
.glossar-search-wrap,
.entity-search-wrap,
.team-filter-row,
.admin-team-filter-row,
.fristen-pathway-fork,
.fristen-pathway-back,
.fristen-mode-toggle,
.fristen-b1-cascade,
.fristen-search,
.fristen-search-chips,
.fristen-view-toggle,
.fristen-result-actions,
.fristen-header-actions,
.event-picker-row,
.date-input-group,
.wizard-step-hint,
#step-1,
#step-2,
#event-step-1,
#event-step-2,
button {
display: none !important;
}
.has-sidebar,
body.has-sidebar,
body.has-sidebar.sidebar-pinned,
:root.sidebar-pinned .has-sidebar {
padding-left: 0 !important;
}
main {
margin: 0 !important;
padding: 0 !important;
width: 100% !important;
max-width: 100% !important;
}
/* Re-expose page heading + subtitle on pages that don't ship a dedicated
.print-header (Kostenrechner has one and hides .tool-header in its
page-specific block above; everywhere else the .tool-header h1/p
identifies the print). */
body:not(:has(.print-header)) .tool-header {
display: block !important;
}
.print-header,
.print-footer {
display: block !important;
}
.tool-results,
.sidebar,
.bottom-nav {
position: static !important;
}
.timeline,
.timeline-item,
.fr-columns-view,
.gericht-card,
.entity-table,
.result-card,
.checklist-group {
page-break-inside: avoid;
break-inside: avoid;
}
body {
background: #fff !important;
color: #000 !important;
}
@page {
size: A4;
margin: 1.5cm;
}
}