:root {
  --bg: #fafaf7; --fg: #1d1d1b; --muted: #6b6b66; --line: #ddddd6; --accent: #1f5f8b;
  --ok: #2e7d32; --teil: #b7791f; --offen: #c62828; --guthaben: #1565c0;
}
@media (prefers-color-scheme: dark) {
  :root { --bg: #161615; --fg: #ececea; --muted: #a3a39c; --line: #33332f; --accent: #7fb3d9; }
}
* { box-sizing: border-box; }
body { margin: 0; font: 15px/1.45 system-ui, sans-serif; background: var(--bg); color: var(--fg); }
.kopf { display: flex; gap: 1rem; align-items: center; justify-content: space-between; padding: .6rem 1rem; border-bottom: 1px solid var(--line); }
.kopf nav { display: flex; gap: 1rem; align-items: center; }
.kopf a { color: var(--accent); text-decoration: none; }
.marke { font-weight: 600; }
main { padding: 1rem; max-width: 1200px; margin: 0 auto; }
.inline { display: inline; }
button { font: inherit; padding: .3rem .7rem; border: 1px solid var(--line); background: transparent; color: var(--fg); border-radius: 4px; cursor: pointer; }
.kacheln { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .8rem; }
.kacheln li { border: 1px solid var(--line); border-radius: 6px; padding: .8rem; }
.kacheln strong { font-size: 1.6rem; display: block; }
.meldungen { list-style: none; padding: 0; }
.meldungen li { padding: .5rem .8rem; border-left: 4px solid var(--accent); margin-bottom: .4rem; }
.meldungen .error { border-color: var(--offen); }
table { border-collapse: collapse; width: 100%; }
th, td { border-bottom: 1px solid var(--line); padding: .3rem .5rem; text-align: left; }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }
