/* ==========================================================================
   latex.giit.ch - the typeset pages (preview, print, pictures, HTML file)
   The look of the LaTeX standard classes, with Latin Modern fonts.
   Sizes follow the document: --fs is the base size (10, 11 or 12 pt).
   ========================================================================== */

@font-face { font-family: "LM Roman"; src: url(../fonts/lmroman10-regular.woff2) format("woff2"); font-weight: 400; font-style: normal; font-display: block; }
@font-face { font-family: "LM Roman"; src: url(../fonts/lmroman10-bold.woff2) format("woff2"); font-weight: 700; font-style: normal; font-display: block; }
@font-face { font-family: "LM Roman"; src: url(../fonts/lmroman10-italic.woff2) format("woff2"); font-weight: 400; font-style: italic; font-display: block; }
@font-face { font-family: "LM Roman"; src: url(../fonts/lmroman10-bolditalic.woff2) format("woff2"); font-weight: 700; font-style: italic; font-display: block; }
@font-face { font-family: "LM Roman Caps"; src: url(../fonts/lmromancaps10-regular.woff2) format("woff2"); font-weight: 400; font-display: block; }
@font-face { font-family: "LM Sans"; src: url(../fonts/lmsans10-regular.woff2) format("woff2"); font-weight: 400; font-style: normal; font-display: block; }
@font-face { font-family: "LM Sans"; src: url(../fonts/lmsans10-bold.woff2) format("woff2"); font-weight: 700; font-style: normal; font-display: block; }
@font-face { font-family: "LM Sans"; src: url(../fonts/lmsans10-oblique.woff2) format("woff2"); font-weight: 400; font-style: italic; font-display: block; }
@font-face { font-family: "LM Mono"; src: url(../fonts/lmmono10-regular.woff2) format("woff2"); font-weight: 400; font-display: block; }

.blatt {
    --serif: "LM Roman", "Latin Modern Roman", "CMU Serif", Georgia, "Times New Roman", serif;
    --sans: "LM Sans", "Latin Modern Sans", "CMU Sans Serif", "Helvetica Neue", Arial, sans-serif;
    --helvet: Helvetica, "Helvetica Neue", Arial, "Liberation Sans", "Nimbus Sans", "LM Sans", sans-serif;
    --times: "Times New Roman", Times, "Liberation Serif", "Nimbus Roman", "LM Roman", serif;
    --palatino: "Palatino Linotype", Palatino, "Book Antiqua", "TeX Gyre Pagella", "LM Roman", serif;
    --mono: "LM Mono", "Latin Modern Mono", "CMU Typewriter Text", Consolas, monospace;
    --fs: 13.28px;
    --lh: 1.2;
    --font: var(--serif);
    --parindent: 1.5em;
    --parskip: 0px;
    --arraystretch: 1;
    position: relative; flex: none; overflow: hidden;
    background: #ffffff; color: #000000;
    font-family: var(--font); font-size: var(--fs); line-height: var(--lh);
    font-kerning: normal; font-variant-ligatures: common-ligatures; text-rendering: optimizeLegibility;
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
    hyphens: auto; -webkit-hyphens: auto; overflow-wrap: break-word;
    text-align: justify;
    color-scheme: light;
}
.blatt.parskip { --parindent: 0px; --parskip: 0.5em; }
.blatt .satz { position: absolute; display: flex; flex-direction: column; }
.blatt .inhalt { flex: none; display: flex; flex-direction: column; min-height: 0; }
.blatt .inhalt.fertig { flex: 1 1 auto; }
.blatt.zweispaltig .inhalt { display: block; column-count: 2; column-gap: 10pt; column-fill: auto; height: 100%; }
.blatt .inhalt > * { flex: none; }
.blatt .inhalt > :first-child { margin-top: 0; }
.blatt .seitenzahl { position: absolute; left: 0; right: 0; text-align: center; font-size: var(--fs); line-height: 1; }

/* ---------- Paragraphs ---------- */

.blatt .p { margin: var(--parskip) 0 0; text-indent: var(--parindent); }
.blatt .p.ni, .blatt .inhalt > .p:first-child { text-indent: 0; }
.blatt .p.al-c, .blatt .al-c > .p, .blatt .al-c .p { text-align: center; text-indent: 0; }
.blatt .p.al-l, .blatt .al-l > .p, .blatt .al-l .p { text-align: left; text-indent: 0; }
.blatt .p.al-r, .blatt .al-r > .p, .blatt .al-r .p { text-align: right; text-indent: 0; }
.blatt .p.fill { display: flex; align-items: baseline; flex-wrap: wrap; text-indent: 0; }
.blatt .p.fill > .hfill, .blatt .p.fill .dk > .hfill { flex: 1 1 0; }
.blatt .p.fill .dk { display: contents; }
.blatt .cbox:has(> .minipage), .blatt .fbox:has(> .minipage) { vertical-align: top; }
.blatt .hfill { display: inline-block; min-width: 0.2em; }
.blatt .p:not(.fill) > .hfill { min-width: 2em; }
.blatt .hfill.hrule { border-bottom: 0.4pt solid currentColor; height: 0; vertical-align: 0.3em; }
.blatt .hfill.dots { border-bottom: 1.6pt dotted currentColor; height: 0; vertical-align: 0.25em; }
.blatt .hsp { display: inline-block; }
.blatt .vsp { display: block; flex: none; }
.blatt .vfill { flex: 1 1 0; min-height: 0; }
.blatt hr.hrule { border: 0; border-top: 0.4pt solid currentColor; margin: 0; width: 100%; }
.blatt .regel { display: inline-block; background: currentColor; vertical-align: baseline; }
.blatt .al-c { text-align: center; }
.blatt .al-r { text-align: right; }
.blatt .al-l { text-align: left; }
.blatt br + .vsp { display: block; }

/* ---------- Fonts ---------- */

.blatt .f-bf { font-weight: 700; }
.blatt .f-it, .blatt .f-em { font-style: italic; }
.blatt .f-sl { font-style: oblique; }
.blatt .f-up { font-style: normal; }
.blatt .f-md { font-weight: 400; }
.blatt .f-tt, .blatt code, .blatt pre { font-family: var(--mono); }
.blatt .f-sf { font-family: var(--sans); }
.blatt .f-rm { font-family: var(--serif); }
.blatt.sans .f-rm { font-family: var(--serif); }
.blatt .f-sc { font-variant: small-caps; }
.blatt .f-nf { font-family: var(--font); font-weight: 400; font-style: normal; font-variant: normal; }
.blatt .f-ul { text-decoration: underline; text-decoration-thickness: 0.4pt; text-underline-offset: 0.15em; }
.blatt .f-ul2 { text-decoration: underline double; }
.blatt .f-wave { text-decoration: underline wavy; }
.blatt .f-so { text-decoration: line-through; }
.blatt .f-nobr { white-space: nowrap; }
.blatt .fs { display: inline; }
.blatt sup, .blatt sub { font-size: 0.7em; line-height: 0; }
.blatt a { color: inherit; text-decoration: none; }
.blatt a[href^="http"], .blatt a.url { color: inherit; }
.blatt a.ref.fehlt, .blatt .pageref:empty { font-weight: 700; }
.blatt .url { font-family: var(--mono); overflow-wrap: anywhere; }
.blatt .tex-logo { font-family: var(--serif); white-space: nowrap; }
.blatt .tex-logo sup { font-size: 0.72em; vertical-align: 0.24em; margin: 0 -0.15em 0 -0.36em; line-height: 0; text-transform: uppercase; }
.blatt .tex-logo sub { font-size: 1em; vertical-align: -0.5ex; margin: 0 -0.125em 0 -0.1667em; line-height: 0; text-transform: uppercase; }
.blatt .sc { font-variant: small-caps; }
.blatt .cbox { display: inline-block; padding: 3pt; text-indent: 0; }
.blatt .fbox { display: inline-block; padding: 3pt; border: 0.4pt solid currentColor; text-indent: 0; }
.blatt .cbox.fbox { border-width: 0.4pt; }
.blatt .kreis { display: inline-grid; place-items: center; width: 1.2em; height: 1.2em; border: 0.4pt solid; border-radius: 50%; font-size: 0.8em; }
.blatt .unbekannt { background: rgba(255, 170, 0, 0.18); }
.blatt .nicht-da { display: inline-grid; place-items: center; min-width: 40%; min-height: 4em; padding: 1em; border: 1px dashed #999; color: #777; font-family: var(--sans); font-size: 0.85em; }
.blatt .verb { font-size: 1em; }

/* ---------- Headings (article) ---------- */

.blatt h1, .blatt h2, .blatt h3, .blatt h4, .blatt h5 { font-weight: 700; margin: 0; text-align: left; hyphens: manual; break-after: avoid; }
.blatt .nr { margin-right: 1em; }
.blatt h2.lv1 { font-size: 1.44em; line-height: 1.2; margin: 1.1em 0 0.6em; }
.blatt h3.lv2 { font-size: 1.2em; line-height: 1.2; margin: 1em 0 0.45em; }
.blatt h4.lv3 { font-size: 1em; margin: 0.95em 0 0.4em; }
.blatt .inhalt > :is(h2, h3, h4):first-child { margin-top: 0; }
.blatt .runin { font-weight: 700; }
.blatt .runin .nr { margin-right: 0.6em; }
.blatt h1.kapitel { margin: 3.4em 0 2em; font-size: 2.07em; line-height: 1.2; }
.blatt h1.kapitel .kap-nr { display: block; font-size: 0.83em; margin-bottom: 0.9em; }
.blatt h1.kapitel .kap-titel { display: block; }
.blatt h1.teil { margin: 30% 0 0; text-align: center; font-size: 2.49em; }
.blatt h1.teil .kap-nr { display: block; font-size: 0.83em; margin-bottom: 0.6em; }
.blatt .inhalt > h1.kapitel:first-child { margin-top: 2.6em; }
.blatt.sans h1, .blatt.sans h2, .blatt.sans h3, .blatt.sans h4 { font-family: var(--font); }

/* ---------- Title, abstract ---------- */

.blatt .titel { text-align: center; margin: 1.6em 0 1.5em; hyphens: manual; }
.blatt .t-extra { font-size: 1em; margin-bottom: 0.3em; }
.blatt .t-titel { font-size: 1.728em; line-height: 1.25; }
.blatt .t-unter { font-size: 1.2em; margin-top: 0.6em; }
.blatt .t-autoren { display: flex; justify-content: center; flex-wrap: wrap; gap: 0.2em 2.2em; margin-top: 1.5em; font-size: 1.2em; }
.blatt .t-datum { font-size: 1.2em; margin-top: 0.9em; }
.blatt .abstract { margin: 0.5em 2.5em 1em; font-size: 0.9em; }
.blatt .abstract-titel { font-weight: 700; text-align: center; margin-bottom: 0.4em; }
.blatt .abstract .p:first-of-type { text-indent: var(--parindent); }
.blatt .inhalt > .titel:first-child { margin-top: 0; }

/* ---------- Lists ---------- */

.blatt .liste { list-style: none; margin: 0.6em 0 0.6em 2.5em; padding: 0; }
.blatt .liste .liste { margin: 0.25em 0 0.25em 2.2em; }
.blatt .liste > li { position: relative; margin-top: 0.3em; }
.blatt .liste.eng > li { margin-top: 0; }
.blatt .liste > li > .marke { position: absolute; right: calc(100% + 0.5em); white-space: nowrap; text-indent: 0; }
.blatt .liste > li > .p:first-of-type { margin-top: 0; }
.blatt dl.liste { margin-left: 1.5em; }
.blatt .dl-item { margin-top: 0.3em; }
.blatt .dl-item dt { display: inline; font-weight: 700; margin-left: -1.5em; margin-right: 0.5em; }
.blatt .dl-item dd { display: inline; margin: 0; }
.blatt .dl-item dd > .p:first-child { display: inline; }
.blatt .liste.fortsetzung > :first-child { margin-top: 0; }

/* ---------- Quotes, boxes ---------- */

.blatt .zitat { margin: 0.5em 2.5em; }
.blatt .zitat.vers .p { text-align: left; }
.blatt .rahmen { border: 0.4pt solid currentColor; padding: 0.6em 0.8em; margin: 0.6em 0; }
.blatt .tcb { border: 1pt solid #4d4d4d; border-radius: 4pt; background: #f2f2f2; margin: 0.6em 0; overflow: hidden; }
.blatt .tcb-titel { background: #4d4d4d; color: #ffffff; padding: 0.25em 0.6em; font-weight: 700; }
.blatt .tcb-inhalt { padding: 0.5em 0.6em; }
.blatt .satz-plain .inl, .blatt .satz-plain > .p { font-style: italic; }
.blatt .satz-plain, .blatt .satz-definition, .blatt .satz-remark { margin: 0.6em 0; }
.blatt .thm-kopf { font-weight: 700; font-style: normal; }
.blatt .satz-remark .thm-kopf { font-weight: 400; font-style: italic; }
.blatt .beweis { margin: 0.6em 0; }
.blatt .beweis .qed { float: right; }
.blatt .inl { display: inline; }
.blatt .minipage { display: inline-block; text-indent: 0; text-align: justify; }
.blatt .minipage > .p:first-child { margin-top: 0; }
.blatt .multicols { column-gap: 10pt; margin: 0.5em 0; }
.blatt .multicols .p:first-child { margin-top: 0; }

/* ---------- Math ---------- */

.blatt .dm { display: block; margin: 0.65em 0; text-indent: 0; }
.blatt .dm .katex-display { margin: 0; }
.blatt .katex { font-size: 1.0em; text-indent: 0; }
.blatt .katex-display > .katex { text-align: center; }
.blatt .mathfehler, .blatt .mathsrc { color: #c62f2f; background: #fdecec; font-size: 0.85em; white-space: pre-wrap; }

/* ---------- Tables, floats, pictures ---------- */

.blatt .tab { border-collapse: collapse; display: inline-table; vertical-align: middle; text-indent: 0; text-align: left; margin: 0; }
.blatt .tab td { padding: calc(0.12em * var(--arraystretch)) 6pt calc(0.12em * var(--arraystretch)); vertical-align: baseline; text-align: left; hyphens: auto; }
.blatt .tab td > .p:first-child { margin-top: 0; }
.blatt .tab td > .p { text-indent: 0; text-align: inherit; }
.blatt .tab.voll { display: table; table-layout: auto; }
.blatt .tab.xcols { table-layout: auto; }
.blatt .float { margin: 1em 0; text-align: center; text-indent: 0; break-inside: avoid; }
.blatt .float > .p { text-align: inherit; text-indent: 0; }
.blatt .float.figure > .p:not(.al-c):not(.al-l):not(.al-r), .blatt .float.table > .p:not(.al-c):not(.al-l):not(.al-r) { text-align: left; }
.blatt .caption { margin: 0.6em auto 0; text-align: center; max-width: 100%; hyphens: manual; }
.blatt .float.table > .caption:first-child { margin: 0 auto 0.6em; }
.blatt .grafik { vertical-align: bottom; max-width: none; }
.blatt .beispielbild, .blatt .bild-fehlt {
    display: inline-grid; place-items: center; aspect-ratio: 4 / 3; vertical-align: bottom;
    background: linear-gradient(135deg, #4b6cb7, #8ea8e3); color: #ffffff; font-family: var(--sans); font-size: 1.4em;
}
.blatt .bild-fehlt { background: repeating-linear-gradient(45deg, #f4f4f4 0 8px, #e9e9e9 8px 16px); color: #8a8a8a; font-size: 0.85em; border: 1px dashed #aaaaaa; }
.blatt .bild-fehlt span { padding: 0.5em; overflow-wrap: anywhere; }

/* ---------- Code, algorithms ---------- */

.blatt pre.code { margin: 0.6em 0; font-size: 0.9em; line-height: 1.25; white-space: pre-wrap; overflow-wrap: anywhere; text-align: left; text-indent: 0; }
.blatt pre.code .zl { display: block; min-height: 1.25em; }
.blatt pre.code.lst .lk { font-weight: 700; }
.blatt pre.code.lst .lc { font-style: italic; color: #555555; }
.blatt pre.code.lst .ls { color: #333333; }
.blatt .float.algorithm { text-align: left; border-top: 0.8pt solid; border-bottom: 0.8pt solid; padding: 0.3em 0; }
.blatt .algo { text-align: left; }
.blatt .algo-zeile { padding: 0.05em 0; }
.blatt .algo-block { margin-left: 0.55em; padding-left: 0.85em; border-left: 0.5pt solid; }
.blatt .algo-kw { font-weight: 700; }
.blatt .algo-komm { font-style: italic; }
.blatt .algo-cap { text-align: left; border-top: 0.5pt solid; margin: 0.4em 0 0; padding-top: 0.3em; }
.blatt .float.algorithm > .caption:first-child { border-bottom: 0.5pt solid; margin: 0 0 0.3em; padding-bottom: 0.3em; text-align: left; }

/* ---------- Contents, bibliography, footnotes ---------- */

.blatt .toc { margin-bottom: 1em; }
.blatt .toc-zeile { display: flex; align-items: baseline; gap: 0; color: inherit; text-decoration: none; text-align: left; hyphens: manual; }
.blatt .toc-zeile .nr { flex: none; min-width: 1.5em; margin-right: 0.5em; }
.blatt .toc-zeile.lv0, .blatt .toc-zeile.lv-1 { font-weight: 700; margin-top: 1em; }
.blatt .toc-zeile.lv1 { margin-top: 0.6em; font-weight: 700; }
.blatt .toc-zeile.lv2 { padding-left: 1.5em; margin-top: 0.15em; }
.blatt .toc-zeile.lv2 .nr { min-width: 2.3em; }
.blatt .toc-zeile.lv3 { padding-left: 3.8em; margin-top: 0.1em; }
.blatt .toc-zeile.lv3 .nr { min-width: 3.2em; }
.blatt .toc-text { flex: 0 1 auto; }
.blatt .toc-punkte { flex: 1 1 auto; min-width: 1em; margin: 0 0.4em; border-bottom: 1.4pt dotted currentColor; transform: translateY(-0.25em); }
.blatt .toc-zeile.lv1 .toc-punkte, .blatt .toc-zeile.lv0 .toc-punkte { border-color: transparent; }
.blatt .toc.buch .toc-zeile.lv1 { font-weight: 400; padding-left: 1.5em; margin-top: 0.15em; }
.blatt .toc.buch .toc-zeile.lv1 .nr { min-width: 2.3em; }
.blatt .toc.buch .toc-zeile.lv1 .toc-punkte { border-color: currentColor; }
.blatt .toc.buch .toc-zeile.lv2 { padding-left: 3.8em; }
.blatt .toc.buch .toc-zeile.lv2 .nr { min-width: 3.2em; }
.blatt .toc-seite { flex: none; min-width: 1em; text-align: right; }
.blatt .bib-liste { list-style: none; padding: 0; margin: 0; }
.blatt .bib-liste li { display: flex; gap: 0.6em; margin-top: 0.35em; text-align: left; }
.blatt .bib-liste .marke { flex: none; min-width: 2em; }
.blatt .fussnoten { margin-top: auto; padding-top: 0.6em; font-size: 0.8em; line-height: 1.2; position: relative; flex: none; }
.blatt .fussnoten::before { content: ""; position: absolute; top: 0.25em; left: 0; width: 40%; border-top: 0.4pt solid currentColor; }
.blatt .fussnote { text-indent: 1.5em; margin-top: 0.15em; text-align: justify; }
.blatt .fussnote sup { margin-right: 0.15em; }
.blatt .fussnoten[hidden] { display: none; }
.blatt .fn-mark { font-size: 0.7em; }
.blatt .anker { display: inline; }

/* ---------- Editor marks (not printed) ---------- */

.blatt .quelle { outline: 2px solid rgba(26, 115, 232, 0.55); outline-offset: 2px; border-radius: 2px; background: rgba(26, 115, 232, 0.07); }
@media print { .blatt .quelle { outline: 0; background: none; } }
