@charset "UTF-8";
@import url(normalize.css);
@font-face {
  font-family: 'TeX Gyre Heros';
  src: url("texgyreheros-regular-webfont.woff") format("woff");
  font-style: normal;
}
@font-face {
  font-family: 'TeX Gyre Heros';
  src: url("texgyreheros-bold-webfont.woff") format("woff");
  font-style: normal;
  font-weight: bold;
}
@font-face {
  font-family: 'TeX Gyre Heros';
  src: url("texgyreheros-italic-webfont.woff") format("woff");
  font-style: italic;
}
@font-face {
  font-family: 'TeX Gyre Heros';
  src: url("texgyreheros-bolditalic-webfont.woff") format("woff");
  font-style: italic;
  font-weight: bold;
}

@media print {
  * {
    -webkit-print-color-adjust: exact;
  }

  .page {
    page-break-after: always;
    page-break-inside: avoid;
    outline: red solid 1px;
    margin: 0;
  }
}

/*
Da *named pages*, also z.B. @page a3landscape noch nicht von Chrome
unterstützt werden, gilt vorerst die Standard-Einstellung von A4 Portrait.
Um andere Formate zu erzeugen, muss die Größe in den svelte-Koponenten
als setup-Einstellung hinterlegt werden. Oder man verwendet ein besonderes CSS
mit der anderen Einstellung.
Dazu bitte ein @import 'nicht_a4_portrait.css' verwenden. Svelte ignoriert sonst
die in den <style> tags hinterlegten @... Anweisungen.
Link: https://www.w3.org/TR/css3-page/#using-named-pages
*/

.page[size="A4"][orientation="portrait"] {
  page: a4portrait;
  width: 210mm;
  height: 296.8mm;
}
@page a4portrait {
  margin: 0;
  size: A4 portrait;
}

.page[size="A4"][orientation="landscape"] {
  page: a4landscape;
  width: 296.8mm;
  height: 210mm;
}
@page a4landscape {
  margin: 0;
  size: A4 landscape;
}

.page[size="A3"][orientation="portrait"] {
  page: a3portrait;
  width: 296.8mm;
  height: 420mm;
}
@page a3portrait {
  margin: 0;
  size: A3 portrait;
}

.page[size="A3"][orientation="landscape"] {
  page: a3landscape;
  width: 420mm;
  height: 296.8mm;
}
@page a3landscape {
  margin: 0;
  size: A3 landscape;
}

.page[size="A5"][orientation="portrait"] {
  page: a5portrait;
  width: 148mm;
  height: 210mm;
}
@page a5portrait {
  margin: 0;
  size: A5 portrait;
}

.page[size="A5"][orientation="landscape"] {
  page: a5landscape;
  width: 210mm;
  height: 148mm;
}
@page a5landscape {
  margin: 0;
  size: A5 landscape;
}

@media screen {
  .page {
    border: 1px solid black;
    box-shadow: 5px 5px 4px 0 silver;
  }
}

svelte {
  font-size: 62.5%;
}

.page {
  font-size: 1.2em;
  line-height: 1.5;
  font-weight: normal;
  font-family: "Tex Gyre Heros";
  color: #333;
  position: relative;
  padding: 10mm 25mm 10mm 25mm;
  display: block;
}

/* Typography */
h1, h2, h3, h4, h5, h6 {
  margin-top: 0;
  margin-bottom: 0;
  font-weight: 400;
}

h1 {
  font-size: 4.0em;
  line-height: 1.2;
  letter-spacing: -.1em;
}

h2 {
  font-size: 3.6em;
  line-height: 1.25;
  letter-spacing: -.1em;
}

h3 {
  font-size: 3.0em;
  line-height: 1.3;
  letter-spacing: -.1em;
}

h4 {
  font-size: 2.4em;
  line-height: 1.35;
  letter-spacing: -.08em;
}

h5 {
  font-size: 1.8em;
  line-height: 1.5;
  letter-spacing: -.05em;
}

h6 {
  font-size: 1.5em;
  line-height: 1.6;
  letter-spacing: 0;
}

p {
  margin-top: 0;
}

.grid {
  display: grid;
  grid-gap: 0;
  gap: 0;
  /* align-content: start; */
  grid-template-columns: auto;
  grid-template-rows: auto 1fr auto;
  grid-template-areas: "header" "main" "footer";
}

.header {
  grid-area: header;
  align-self: start;
}

.main {
  grid-area: main;
  align-self: start;
}

.footer {
  grid-area: footer;
  align-self: end;
}

.main-grid {
  grid-area: main;
  display: grid;
  grid-column-gap: 25mm;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto 1fr auto;
  grid-template-areas: "header-left header-right" "main-left main-right" "footer-left footer-right";
}

.main-left {
  grid-area: main-left;
}

.main-right {
  grid-area: main-right;
}

.footer-grid {
  grid-area: footer;
  display: grid;
  grid-column-gap: 25mm;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto;
  grid-template-areas: "footer-left footer-right";
}

.footer-left {
  grid-area: footer-left;
}

.footer-right {
  grid-area: footer-right;
}

.flex-grid {
  display: flex;
}

.col {
  flex: 1;
}

.col-2 {
  flex: 2;
}

.voffset-halb {
  margin-top: 0.5em;
}

.voffset-1 {
  margin-top: 1em;
}

.voffset-2 {
  margin-top: 2em;
}

.voffset-3 {
  margin-top: 3em;
}

.voffset-4 {
  margin-top: 4em;
}

.voffset-5 {
  margin-top: 5em;
}

.voffset-6 {
  margin-top: 6em;
}

.voffset-7 {
  margin-top: 7em;
}

.voffset-8 {
  margin-top: 8em;
}

.voffset-9 {
  margin-top: 9em;
}

.voffset-10 {
  margin-top: 10em;
}

.voffset-11 {
  margin-top: 11em;
}

.voffset-12 {
  margin-top: 12em;
}

.voffset-13 {
  margin-top: 13em;
}

.voffset-14 {
  margin-top: 14em;
}

.voffset-15 {
  margin-top: 15em;
}

.voffset-16 {
  margin-top: 16em;
}

.voffset-17 {
  margin-top: 17em;
}

.voffset-18 {
  margin-top: 18em;
}

.voffset-19 {
  margin-top: 19em;
}

.voffset-20 {
  margin-top: 20em;
}

.text-center {
  text-align: center !important;
}

hr {
  border: 0;
  border-top: 1px solid #eee;
  border-color: #000;
  height: 1px;
  margin: 3px 0;
}
.hr-rot {
  border-color: #ff2700;
  margin: 8px 0;
}
.hr-grau {
  border-color: #646464 !important;
}

.table-eng {
  margin-bottom: 0 !important;
}

.table-noten {
  width: 100%;
  border: none;
  border-collapse: collapse;
  margin-bottom: 1em;
}

.table-bordered {
  border-collapse: collapse;
}
.table-bordered tr {
  border-bottom: thin solid #333;
}

.fach-bezeichnung {
  padding-left: 10mm;
}
.fach-bezeichnung.padding-5 {
  padding-left: 2em;
}

.td-fach-note {
  padding-bottom: .2em;
  padding-top: .2em;
  width: 12em;
}
.td-fach-note span {
  background-color: #dcdcdc !important;
  text-align: center;
  width: 10em;
  display: block;
  vertical-align: middle;
  margin: 0 auto;
}
.td-fach-note span.e-note {
  background-color: white !important;
  width: 17em;
  margin: 0;
}

.td-padding-extra {
  padding: 2mm 0 2mm 0;
}

.fachgruppe-margin {
  padding-top: 0.3em;
}

.fett {
  font-weight: bolder;
}

.lernfeld-lernbereich {
  padding-left: 2em;
  padding-bottom: 0;
}

.lernbereich {
  padding-left: 20mm;
}

.klein {
  font-size: smaller;
}

.eng {
  line-height: 1.3em;
}

.grau * {
  color: #646464 !important;
}

ul.dashes {
  margin: 0;
  list-style-type: none;
  padding-left: 1em;
}
ul.dashes li:before {
  content: "-";
  position: absolute;
  margin-left: -1em;
}

.schulnummer {
  text-align: right;
}

.wasserzeichen {
  position: absolute;
  opacity: 0.5;
  z-index: 99;
  color: red;
  font-size: 96pt;
}

.seitenlogo {
  position: absolute;
  bottom: 10mm;
  left: 10mm;
}

* {
  box-sizing: border-box;
}

table.fixed {
  table-layout: fixed;
}
table.fixed table th, table.fixed table td {
  overflow: hidden;
}