:root { --bg: #10141a; --panel: #171d26; --karte: #1f2733; --rand: #2c3646; --text: #dce3ec; --dim: #8b98a9; --akzent: #4da3ff; --gruen: #3fc380; --gelb: #e8c34a; --rot: #e06060; --badge-gruen-bg: #1d3a2c; --badge-gelb-bg: #3a331d; --badge-rot-bg: #3a1d1d; --badge-blau-bg: #1d2b3a; --code-bg: #0d1117; } :root { --lese-text: #c9d2df; } /* Guide-Fließtext: weicher als --text */ :root[data-theme="light"] { --lese-text: #333747; } :root[data-theme="sepia"] { --bg: #f0e7d3; --panel: #f9f2df; --karte: #efe4c9; --rand: #d9cba8; --text: #443b2c; --dim: #83765c; --akzent: #7a5c2e; --gruen: #4f7a42; --gelb: #8f6b14; --rot: #a6442e; --badge-gruen-bg: #e2ecd5; --badge-gelb-bg: #f0e6c2; --badge-rot-bg: #f0d8cd; --badge-blau-bg: #e8e0c8; --code-bg: #ede3ca; --lese-text: #443b2c; } :root[data-theme="light"] { --bg: #f3f5f8; --panel: #ffffff; --karte: #eef1f5; --rand: #d4dae2; --text: #1c2430; --dim: #5c6a7c; --akzent: #1a73d6; --gruen: #1d8a55; --gelb: #9a7b12; --rot: #c23b3b; --badge-gruen-bg: #dcf2e6; --badge-gelb-bg: #f6eecb; --badge-rot-bg: #f6d9d9; --badge-blau-bg: #dcebfa; --code-bg: #f0f2f6; } * { box-sizing: border-box; } body { margin: 0; background: var(--bg); color: var(--text); font: 14px/1.5 system-ui, sans-serif; } #app { height: 100vh; display: flex; } button { background: var(--akzent); color: #fff; border: 0; border-radius: 6px; padding: 6px 14px; cursor: pointer; font: inherit; } button.sekundaer { background: var(--karte); color: var(--text); border: 1px solid var(--rand); } button.klein { padding: 2px 8px; font-size: 12px; } button:disabled { opacity: 0.4; cursor: default; } input, select { background: var(--karte); color: var(--text); border: 1px solid var(--rand); border-radius: 6px; padding: 6px 10px; font: inherit; } /* Sidebar-Navigation */ .sidebar { width: 220px; min-width: 220px; background: var(--panel); border-right: 1px solid var(--rand); display: flex; flex-direction: column; } .sidebar .topics { flex: 1; overflow-y: auto; padding: 8px; } .sidebar .topic-eintrag { display: flex; align-items: center; gap: 6px; padding: 7px 10px; border-radius: 6px; cursor: pointer; color: var(--dim); } .sidebar .topic-eintrag.aktiv { background: var(--karte); color: var(--text); } .sidebar .neu { padding: 10px; border-top: 1px solid var(--rand); display: grid; gap: 6px; } .kontextmenue { position: fixed; background: var(--panel); border: 1px solid var(--rand); border-radius: 8px; padding: 4px; box-shadow: 0 6px 24px rgba(0, 0, 0, 0.35); } .kontextmenue button { display: block; width: 100%; text-align: left; background: none; color: var(--text); border: 0; padding: 7px 12px; border-radius: 6px; } .kontextmenue button:hover:not(:disabled) { background: var(--karte); } .kontextmenue button.rot { color: var(--rot); } .hauptbereich { flex: 1; display: flex; flex-direction: column; overflow: hidden; } .topbar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; padding: 8px 16px; background: var(--panel); border-bottom: 1px solid var(--rand); } .tabs { display: flex; gap: 4px; } .tabs button { background: transparent; color: var(--dim); } .tabs button.aktiv { background: var(--karte); color: var(--text); } .inhalt { flex: 1; overflow: hidden; display: flex; flex-direction: column; } .badge { display: inline-block; padding: 1px 8px; border-radius: 10px; font-size: 11px; background: var(--karte); color: var(--dim); } .badge.gruen { background: var(--badge-gruen-bg); color: var(--gruen); } .badge.gelb { background: var(--badge-gelb-bg); color: var(--gelb); } .badge.rot { background: var(--badge-rot-bg); color: var(--rot); } .badge.blau { background: var(--badge-blau-bg); color: var(--akzent); } /* Befunde/Agenten-Leiste über dem Board */ .leiste { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; padding: 8px 12px; border-bottom: 1px solid var(--rand); background: var(--panel); min-height: 40px; max-height: 130px; overflow-y: auto; } /* Board: Ebenen-Spalten links→rechts, Listen VOLLSTÄNDIG scrollbar */ .board { display: flex; gap: 10px; padding: 12px; overflow-x: auto; flex: 1; min-height: 0; } .spalte { min-width: 0; max-width: 320px; flex: 1; display: flex; flex-direction: column; background: var(--panel); border: 1px solid var(--rand); border-radius: 8px; } .spaltekopf { padding: 8px 10px; border-bottom: 1px solid var(--rand); display: grid; gap: 6px; } .spaltekopf .zeile { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; } .spaltekopf .titel { font-weight: 600; font-size: 13px; flex: 1; } .spaltekopf label { font-size: 12px; color: var(--dim); display: flex; gap: 4px; align-items: center; } .spalte .liste { overflow-y: auto; flex: 1; padding: 8px; } .karte { background: var(--karte); border: 1px solid var(--rand); border-radius: 6px; padding: 6px 9px; margin-bottom: 6px; font-size: 13px; } .karte .meta { color: var(--dim); font-size: 11px; margin-top: 2px; } .seite { flex: 1; overflow-y: auto; padding: 20px; } .seite.schmal { max-width: 900px; margin: 0 auto; } /* Guide: Kapitel-Navigation + Lesetypografie (~70 Zeichen/Zeile, 17px) */ .guide-layout { flex: 1; display: flex; overflow: hidden; min-height: 0; } .guide-nav { width: 260px; min-width: 220px; overflow-y: auto; padding: 14px 10px; border-right: 1px solid var(--rand); background: var(--panel); font-size: 13px; } .guide-nav .schalter-zeile { display: flex; gap: 6px; align-items: center; padding: 2px 4px 10px; } .schalter { display: flex; border: 1px solid var(--rand); border-radius: 6px; overflow: hidden; } .schalter button { background: none; color: var(--dim); border: 0; border-radius: 0; padding: 4px 9px; font-size: 12px; line-height: 1; display: flex; align-items: center; } .schalter button.aktiv { background: var(--karte); color: var(--text); } .schalter-solo { background: none; color: var(--dim); border: 1px solid var(--rand); border-radius: 6px; padding: 3px 9px; font-size: 12px; } .guide-nav .fortschritt { color: var(--dim); font-size: 12px; padding: 0 8px 10px; border-bottom: 1px solid var(--rand); margin-bottom: 8px; } .guide-nav a { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; padding: 5px 8px; border-radius: 6px; color: var(--dim); cursor: pointer; line-height: 1.35; } .guide-nav a .zeit { font-size: 11px; white-space: nowrap; opacity: 0.75; } .guide-nav a:hover { color: var(--text); } .guide-nav a.aktiv { background: var(--karte); color: var(--text); } .seite.guide-text { position: relative; max-width: 680px; margin: 0 auto; scrollbar-width: none; /* Scrollbalken unsichtbar, Scrollen bleibt */ font-family: 'Inter Variable', system-ui, sans-serif; font-size: 19px; line-height: 1.55; color: var(--lese-text); hyphens: auto; -webkit-hyphens: auto; } /* Fokus-Modus: Navigation weg, Karten-Rahmen aufgelöst — reiner Artikel-Fluss */ .guide-layout.fokus .guide-nav { display: none; } .guide-layout.fokus .guide-section { border: 0; background: none; padding: 0 0 6px; margin-bottom: 4px; } body.vollbild .sidebar, body.vollbild .topbar { display: none; } body.vollbild .nav-toggle { display: none; } /* Eingeklappt: Themen-Sidebar + Topbar weg — die Kapitelübersicht bleibt. Der Inhalt rückt nach unten, damit das fixe ☰ nichts überlappt. */ body.nav-zu .sidebar, body.nav-zu .topbar { display: none; } body.nav-zu .hauptbereich { padding-top: 38px; } .nav-toggle { position: fixed; top: 6px; left: 8px; z-index: 40; /* über den mobilen Drawern */ background: none; color: var(--dim); border: 0; padding: 4px 8px; font-size: 16px; } .nav-toggle:hover { color: var(--text); } .sidebar .topics { padding-top: 40px; } /* Platz für das fixe ☰ links oben */ .fokus-aus { position: fixed; top: 10px; right: 16px; z-index: 5; background: none; color: var(--dim); border: 0; padding: 4px 8px; font-size: 16px; opacity: 0.6; } .fokus-aus:hover { opacity: 1; } .seite.guide-text::-webkit-scrollbar { display: none; } .guide-text .kapitel { scroll-margin-top: 8px; } .guide-text .kapitel-titel { margin: 30px 0 2px; } .guide-text .kapitel-meta { color: var(--dim); font-size: 13px; margin: 0 0 10px; } .guide-section .antworten { margin-top: 10px; border-top: 1px solid var(--rand); padding-top: 8px; } .guide-section .antworten summary { cursor: pointer; color: var(--dim); font-size: 14px; } .guide-section .antworten .antwort { margin: 10px 0; } .guide-section .antworten .frage { font-weight: 600; font-size: 14px; margin-bottom: 2px; } .kapitel-platzhalter { border-left: 2px dashed var(--rand); margin: 8px 0 8px 4px; } /* Kompakt-Ansicht: gleiche Lesetypografie wie der Fließtext, kein Grau-Kasten */ .guide-text .kompakt { background: none; padding: 0; color: var(--lese-text); font-size: 17px; line-height: 1.55; } .guide-text .kompakt li { margin: 5px 0; } .guide-section { background: var(--panel); border: 1px solid var(--rand); border-radius: 8px; padding: 16px 22px; margin-bottom: 16px; } .guide-section .ziel { color: var(--akzent); font-size: 13px; } :is(.markdown, .kompakt) .katex-display { overflow-x: auto; overflow-y: hidden; padding: 4px 0; } .markdown blockquote { margin: 12px 0; padding: 8px 14px; border-left: 3px solid var(--akzent); background: var(--karte); border-radius: 0 6px 6px 0; color: var(--text); } .markdown blockquote p { margin: 4px 0; } .markdown :is(code):not(.hljs) { background: var(--karte); padding: 1px 5px; border-radius: 4px; } .markdown pre { background: var(--code-bg); padding: 10px; border-radius: 6px; overflow-x: auto; } .markdown table { border-collapse: collapse; display: block; overflow-x: auto; max-width: 100%; } .markdown td, .markdown th { border: 1px solid var(--rand); padding: 4px 10px; } .markdown thead th { background: var(--karte); text-align: left; } .markdown tbody tr:nth-child(even) { background: color-mix(in srgb, var(--karte) 45%, transparent); } .flash { background: var(--panel); border: 1px solid var(--rand); border-radius: 10px; padding: 28px; max-width: 620px; margin: 40px auto; text-align: center; } .flash .frage { font-size: 18px; margin-bottom: 18px; } .flash .antwort { background: var(--karte); border-radius: 8px; padding: 14px; margin: 14px 0; } table.kennzahlen { border-collapse: collapse; width: 100%; font-size: 13px; } table.kennzahlen th, table.kennzahlen td { border-bottom: 1px solid var(--rand); padding: 5px 10px; text-align: right; } table.kennzahlen th:first-child, table.kennzahlen td:first-child { text-align: left; } table.kennzahlen th { color: var(--dim); } /* ── Mobil (≤768px): Navigationen als Drawer, Board mit Spalten-Snap ────────── */ :is(.markdown, .kompakt) .katex { max-width: 100%; overflow-x: auto; overflow-y: hidden; } @media (max-width: 768px) { .sidebar, .guide-nav { position: fixed; top: 0; bottom: 0; left: 0; z-index: 30; width: min(85vw, 320px); min-width: 0; border-right: 1px solid var(--rand); box-shadow: 4px 0 24px rgba(0, 0, 0, 0.35); background: var(--panel); } /* Guide-Tab: der Drawer zeigt die Kapitelliste, sonst die Themenliste */ body:has(.guide-nav) .sidebar { display: none; } /* mobil versteckt ☰ nur die Drawer — die Topbar (Tabs!) bleibt sichtbar */ body.nav-zu .topbar { display: flex; } body.nav-zu .hauptbereich { padding-top: 0; } /* mobil heißt ☰-zu: ALLE Drawer weg — auch die Kapitelnav (Desktop behält sie) */ body.nav-zu .guide-nav { display: none; } .sidebar .topics { padding-top: 44px; } .guide-nav { padding-top: 44px; } .topbar { padding-left: 40px; gap: 6px; } .topbar .badge { display: none; } .board { scroll-snap-type: x mandatory; padding: 8px; gap: 8px; } .spalte { min-width: 86vw; max-width: 86vw; scroll-snap-align: start; } .seite { padding: 12px; } .seite.guide-text { max-width: 100%; padding: 14px 16px; } .guide-section { padding: 12px 14px; } .guide-text .kapitel-titel { margin-top: 20px; } .flash { max-width: 100%; padding: 18px; margin: 16px auto; } } /* ── Lesemodus (Lern-Schritt 1) ─────────────────────────────────────────────── */ .lesemodus { position: fixed; inset: 0; z-index: 1000; background: var(--bg); display: flex; flex-direction: column; color: var(--text); } .lm-kopf, .lm-fuss { display: flex; align-items: center; gap: 12px; padding: 10px 18px; border-bottom: 1px solid var(--rand); background: var(--panel); flex: 0 0 auto; } .lm-fuss { border-top: 1px solid var(--rand); border-bottom: none; justify-content: space-between; } .lm-fort { font-size: 13px; color: var(--dim); flex: 1; } .lm-x { margin-left: auto; background: none; border: none; font-size: 18px; cursor: pointer; color: var(--dim); } .lm-fuss button { padding: 8px 18px; border: 1px solid var(--rand); border-radius: 6px; background: var(--karte); color: var(--text); cursor: pointer; font-size: 14px; } .lm-fuss button:disabled { opacity: 0.4; cursor: default; } .lm-buehne { flex: 1; overflow-y: auto; } /* Block-Scroll: Padding am Ende bleibt erhalten */ .lm-screen { width: 100%; max-width: 760px; margin: 0 auto; padding: 40px 24px 96px; font-family: 'Inter Variable', system-ui, sans-serif; /* Lesetypografie wie im Guide */ font-size: 19px; line-height: 1.55; color: var(--lese-text, var(--text)); } .lm-label { font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--akzent); margin-bottom: 6px; } .lm-titel { margin: 0 0 18px; } .lm-intro { text-align: center; padding-top: 12vh; } .lm-kapnr { color: var(--dim); font-size: 14px; margin-bottom: 8px; } .lm-intro h1 { margin: 0 0 16px; } .lm-introtext { color: var(--text); font-size: 17px; line-height: 1.6; } .lm-stats { margin-top: 20px; color: var(--dim); font-size: 14px; } /* Abrufprüfung */ .lm-abruf { display: flex; flex-direction: column; align-items: center; } .lm-karte { width: 100%; max-width: 560px; margin-top: 6vh; padding: 28px; background: var(--karte); border: 1px solid var(--rand); border-radius: 12px; text-align: center; } .lm-frage { font-size: 20px; margin-bottom: 18px; } .lm-antwort { font-size: 17px; color: var(--text); border-top: 1px solid var(--rand); padding-top: 16px; margin-bottom: 18px; } .lm-karte-akt { display: flex; gap: 12px; justify-content: center; margin-top: 10px; } .lm-karte-akt button { padding: 10px 22px; border-radius: 8px; border: 1px solid var(--rand); cursor: pointer; font-size: 15px; background: var(--panel); color: var(--text); } .lm-richtig { background: #2f7d32 !important; border-color: #2f7d32 !important; color: #fff !important; } .lm-falsch { background: #a23b3b !important; border-color: #a23b3b !important; color: #fff !important; } .lm-rest { margin-top: 16px; color: var(--dim); font-size: 13px; } .lm-bestanden { margin-top: 8vh; font-size: 18px; color: var(--akzent); text-align: center; } .lm-ende { text-align: center; padding-top: 14vh; } /* Prüfung (4er-Panels) */ .pf-frage { margin: 4vh 0 14px; } .pf-hinweis { font-size: 14px; color: var(--dim); font-weight: 400; } .pf-panel { display: flex; flex-direction: column; gap: 10px; } .pf-aussage { display: flex; gap: 12px; align-items: flex-start; cursor: pointer; padding: 12px 14px; border: 1px solid var(--rand); border-radius: 10px; background: var(--karte); } .pf-aussage input { margin-top: 5px; flex: 0 0 auto; } .pf-aussage.gewaehlt { border-color: var(--akzent); } .pf-aussage.pf-wahr { border-color: #2f7d32; background: color-mix(in srgb, #2f7d32 14%, var(--karte)); } .pf-aussage.pf-falsch2 { border-color: #a23b3b; background: color-mix(in srgb, #a23b3b 12%, var(--karte)); } .pf-feedback { margin-top: 14px; padding: 10px 14px; border-radius: 8px; font-size: 15px; } .pf-fb-ok { background: color-mix(in srgb, #2f7d32 18%, transparent); } .pf-fb-bad { background: color-mix(in srgb, #a23b3b 18%, transparent); } .pf-akt { display: flex; gap: 14px; align-items: center; margin-top: 16px; } .pf-akt button { padding: 10px 22px; border: 1px solid var(--rand); border-radius: 8px; background: var(--panel); color: var(--text); cursor: pointer; font-size: 15px; }