:root { --bg: #f6f7fb; --card: #ffffff; --text: #1c2130; --muted: #5d6578; --line: #dde1ea; --accent: #2f6fed; --accent-text: #ffffff; --main: #2f6fed; --co: #e08a1e; --danger: #c93b3b; --holiday: #eef0f5; --today: #fff6d6; --warn: #b25e00; --ok: #1d7a3e; --radius: 10px; --cell-min: 64px; } @media (prefers-color-scheme: dark) { :root { --bg: #14171f; --card: #1e222c; --text: #e8eaf0; --muted: #a0a7b8; --line: #313746; --holiday: #1a1d25; --today: #3a3420; --accent: #5b8dff; --main: #5b8dff; --co: #f0a23a; --danger: #ff7b7b; --warn: #f2b45a; --ok: #5fcf7f; } } * { box-sizing: border-box; } html { color-scheme: light dark; } body { margin: 0; font: 15px/1.45 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; color: var(--text); background: var(--bg); } h1, h2, h3 { margin: 0 0 .5rem; line-height: 1.2; } h1 { font-size: 1.25rem; } h2 { font-size: 1.2rem; } h3 { font-size: 1rem; margin-top: 1.5rem; } a { color: var(--accent); } [hidden] { display: none !important; } .topbar { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; padding: .6rem 1rem; background: var(--card); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 5; } .topbar nav { display: flex; gap: .25rem; flex-wrap: wrap; } .topbar nav a { text-decoration: none; color: var(--muted); padding: .35rem .7rem; border-radius: 999px; font-weight: 500; } .topbar nav a[aria-current="page"] { background: var(--accent); color: var(--accent-text); } .topbar nav a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, .day:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; } main { padding: 1rem; max-width: 1100px; margin: 0 auto; } .view > h2 { margin-bottom: 1rem; } .card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 1rem; margin-bottom: 1rem; } .form-grid { display: grid; gap: .75rem; grid-template-columns: 1fr; } @media (min-width: 640px) { .form-grid { grid-template-columns: 1fr 1fr; } .form-grid .wide, .form-grid fieldset, .form-grid .form-actions, .form-grid .hint { grid-column: 1 / -1; } } label { display: flex; flex-direction: column; gap: .25rem; font-size: .9rem; color: var(--muted); } label.inline { flex-direction: row; align-items: center; gap: .5rem; color: var(--text); } input, select, button, .button { font: inherit; border-radius: 8px; border: 1px solid var(--line); padding: .5rem .65rem; background: var(--card); color: var(--text); min-height: 40px; } input[type="checkbox"] { min-height: 0; width: 1.1rem; height: 1.1rem; accent-color: var(--accent); } /* Felder dürfen nie breiter werden als ihr Container – lange Kalendernamen in