@page {
  size: A4 portrait;
  margin: 12mm;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: white !important;
}

#app,
.app-shell,
.workspace,
.content-grid,
.report-paper {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}

/* Elemente der normalen Benutzeroberfläche ausblenden */
.topbar,
.notifications,
.actions,
.week-strip,
.button-row {
  display: none !important;
}

.content-grid {
  display: block !important;
}

.report-paper {
  box-shadow: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: white !important;
}

/*
 * Das JavaScript fügt ein section-Element
 * direkt in .report-paper ein.
 */
.report-paper > section {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}

/* Kopfbereich */
.report-paper > section > .report-head {
  position: static !important;
  display: block !important;
  width: 100% !important;
  min-height: 65px !important;
  margin: 0 0 12px !important;

  /* Rechts bleibt Platz für das Logo */
  padding: 8px 80px 0 0 !important;

  text-align: left !important;
  transform: none !important;
}

/* Ausbildungsnachweis linksbündig */
.report-paper > section > .report-head > .report-title {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;

  text-align: left !important;
  transform: none !important;
}

/* Logo ganz oben rechts */
.report-paper > section > .report-head > img {
  position: absolute !important;

  top: 0 !important;
  right: 0 !important;
  bottom: auto !important;
  left: auto !important;

  display: block !important;
  float: none !important;

  width: 58px !important;
  min-width: 58px !important;
  max-width: 58px !important;
  height: auto !important;

  margin: 0 !important;
  padding: 0 !important;

  transform: none !important;
  translate: none !important;

  object-fit: contain !important;
  object-position: top right !important;

  align-self: auto !important;
  justify-self: auto !important;

  z-index: 100 !important;
}

/* Angaben oberhalb der Tabelle */
.report-meta {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;

  margin: 0 0 12px !important;
  padding: 0 !important;

  text-align: left !important;
  transform: none !important;
}

.report-meta span {
  display: block !important;
  width: 100% !important;

  margin: 0 0 5px !important;
  padding: 0 !important;

  text-align: left !important;
}

/* Tabelle */
.report-table {
  width: calc(100% - 1px) !important;
  max-width: calc(100% - 1px) !important;

  margin: 0 !important;
  padding: 0 !important;

  table-layout: fixed !important;
  border-collapse: collapse !important;
  border-spacing: 0 !important;

  border: 1px solid #333 !important;
}

/* Spaltenbreiten */
.report-table col.column-weekday {
  width: 15% !important;
}

.report-table col.column-activity {
  width: 66% !important;
}

.report-table col.column-hours {
  width: 19% !important;
}

/* Tabellenzellen */
.report-table th,
.report-table td {
  box-sizing: border-box !important;

  margin: 0 !important;
  padding: 6px 8px !important;

  border: 1px solid #333 !important;

  overflow: visible !important;
  vertical-align: top !important;
}

/* Tabellenüberschriften */
.report-table th {
  text-align: center !important;
  white-space: normal !important;
  overflow-wrap: break-word !important;
}

/* Wochentage */
.report-table td.weekday {
  font-weight: bold !important;
  white-space: nowrap !important;
}

/* Tätigkeitsbeschreibung */
.report-table td.activity-text {
  white-space: pre-wrap !important;
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
}

/* Stunden-Spalte */
.report-table th:last-child,
.report-table td:last-child,
.report-table td.hours {
  min-width: 0 !important;

  padding-left: 8px !important;
  padding-right: 6px !important;

  border-right: 1px solid #333 !important;

  text-align: center !important;
  white-space: normal !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
}

/* Tabellenzeilen nicht über zwei Seiten aufteilen */
.report-table tr {
  break-inside: avoid !important;
  page-break-inside: avoid !important;
}

.saved-signatures {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 10mm !important;

  width: 100% !important;
  margin-top: 12mm !important;
  padding-top: 5mm !important;

  border-top: 1px solid #333 !important;

  break-inside: avoid !important;
  page-break-inside: avoid !important;
}

.saved-signature {
  display: flex !important;
  flex-direction: column !important;
  min-width: 0 !important;
}

.saved-signature-title {
  min-height: 10mm !important;
  margin-bottom: 2mm !important;

  font-size: 10pt !important;
}

.saved-signature-image {
  display: block !important;

  width: 100% !important;
  height: 28mm !important;

  padding: 1mm !important;

  border: 1px solid #333 !important;
  border-radius: 0 !important;

  object-fit: contain !important;
}

.saved-signature-date {
  display: block !important;
  margin-top: 2mm !important;

  font-size: 8pt !important;
}