:root {
  --bg: #101614;
  --karte: #18211e;
  --flaeche: #121a17;
  --text: #f3efe4;
  --text2: #c5bba8;
  --linie: rgba(212, 179, 106, .28);
  --akzent: #d4b36a;
  --akzent2: #f0d9a0;
  --petrol: #2a6b76;
  --gut: #8dccb0;
  --schlecht: #e2b3a8;
  --knopf: #c9a45a;
  --knopf-text: #1a1408;
  --schatten: 0 12px 40px rgba(0,0,0,.28);
}
html[data-theme="hell"] {
  --bg: #f3f1ec;
  --karte: #fffcf7;
  --flaeche: #f7f4ee;
  --text: #1c1915;
  --text2: #5e574c;
  --linie: #ddd6c8;
  --akzent: #0b6e79;
  --akzent2: #14383d;
  --petrol: #0b6e79;
  --gut: #1d6b45;
  --schlecht: #a8261d;
  --knopf: #0b6e79;
  --knopf-text: #fff;
  --schatten: 0 10px 28px rgba(28,25,21,.06);
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: "Palatino Linotype", Palatino, Georgia, serif;
  background: var(--bg);
  color: var(--text);
  font-size: 18px;
  line-height: 1.5;
  min-height: 100vh;
}
a { color: var(--akzent); }
.skip { position: absolute; left: -999px; }
.skip:focus { left: 12px; top: 12px; background: var(--karte); padding: 8px; z-index: 5; }
.innen { width: min(1040px, calc(100% - 32px)); margin: 0 auto; }
.kopf { border-bottom: 1px solid var(--linie); background: var(--flaeche); position: sticky; top: 0; z-index: 3; }
.kopfzeile { display: flex; justify-content: space-between; gap: 16px; align-items: center; padding: 14px 0; flex-wrap: wrap; }
.logo { text-decoration: none; color: inherit; }
.logo b { display: block; letter-spacing: .14em; text-transform: uppercase; font-size: 13px; color: var(--akzent); }
.logo span { font-size: 14px; color: var(--text2); }
nav { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
nav a { text-decoration: none; color: var(--text); }
.wer { color: var(--text2); font-size: 15px; }
.theme, .knopf, button.knopf, a.knopf {
  font: inherit; border-radius: 999px; padding: 7px 12px; cursor: pointer;
  border: 1px solid var(--linie); background: transparent; color: var(--text); text-decoration: none;
}
a.knopf, button.knopf.voll {
  background: var(--knopf); color: var(--knopf-text); border-color: transparent; font-weight: 700;
}
main { padding: 28px 0 48px; }
h1 { font-size: clamp(32px, 5vw, 48px); line-height: 1.12; margin: 8px 0 12px; }
h2 { font-size: 28px; margin: 28px 0 8px; }
h3 { margin: 0 0 8px; font-size: 22px; }
.lead { max-width: 680px; color: var(--text2); font-size: 19px; }
.raster { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.raster3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px; }
@media (max-width: 800px) { .raster, .raster3 { grid-template-columns: 1fr; } }
.karte {
  background: var(--karte); border: 1px solid var(--linie); border-radius: 18px;
  padding: 18px; box-shadow: var(--schatten);
}
.karte a.ganz { text-decoration: none; color: inherit; display: block; }
.tag { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--akzent); font-weight: 700; }
.meta { color: var(--text2); }
label { display: block; margin: 12px 0 6px; color: var(--akzent); font-size: 15px; }
input[type=text], input[type=password], select {
  width: 100%; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--linie);
  background: var(--flaeche); color: var(--text); font: inherit;
}
.hinweis { border-radius: 12px; padding: 12px 14px; background: var(--flaeche); border: 1px solid var(--linie); }
.hinweis.ok { border-color: var(--gut); }
.hinweis.fehler { border-color: var(--schlecht); }
.formel { background: var(--flaeche); border-left: 4px solid var(--akzent); padding: 10px 12px; margin: 8px 0; }
ul.dicht { margin: 8px 0 0; padding-left: 18px; }
ul.dicht li { margin: 4px 0; }
.opt { display: block; width: 100%; text-align: left; margin: 0 0 8px; padding: 12px 14px; border-radius: 14px;
  border: 1px solid var(--linie); background: var(--flaeche); color: inherit; font: inherit; cursor: pointer; }
.opt.richtig { border-color: var(--gut); }
.opt.falsch { border-color: var(--schlecht); }
table { width: 100%; border-collapse: collapse; background: var(--karte); font-size: 16px; }
th, td { border: 1px solid var(--linie); padding: 8px 10px; text-align: left; vertical-align: top; }
th { background: var(--flaeche); }
footer { color: var(--text2); font-size: 14px; padding: 8px 0 28px; }
.schritte { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
@media (max-width: 800px) { .schritte { grid-template-columns: 1fr; } }
code, .code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
