:root{--bg:#f6efdf;--surface:#fffaf0;--text:#1d2a24;--muted:#5b6660;--accent:#1f4d3a;--accent-text:#fffaf0;--border:#d9cfba;--danger:#a3361f;--danger-strong:#c0392b;--radius:12px;--tap:44px}@media (prefers-color-scheme:dark){:root{--bg:#121a16;--surface:#1b2620;--text:#ece6d6;--muted:#a3aba5;--accent:#7cc4a0;--accent-text:#0e1a14;--border:#2f3d35;--danger:#f08a73;--danger-strong:#c0392b}}:root{color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:17px;line-height:1.4}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{-webkit-tap-highlight-color:transparent}button,input{font:inherit;color:inherit}:is(button,a,input,textarea,select,summary):focus-visible{outline:3px solid var(--text);outline-offset:2px}button:not(:disabled){cursor:pointer}button:not(:disabled):active{filter:brightness(.9)}@media (hover:hover){button:not(:disabled):hover{filter:brightness(1.06)}}button:disabled{opacity:.45;cursor:not-allowed}input,textarea,select{font-size:16px}.app{top:var(--app-top,0);height:var(--app-height,100dvh);background:var(--bg);flex-direction:column;display:flex;position:fixed;left:0;right:0}.topbar{padding:calc(env(safe-area-inset-top) + 16px) 16px 8px;flex-shrink:0;align-items:center;gap:8px;display:flex}.topbar h1{margin:0;font-size:1.75rem}.content{overscroll-behavior-y:contain;flex:1;min-height:0;padding:8px 16px 16px;overflow-y:auto}.empty{color:var(--muted)}.tab-bar{background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);flex-shrink:0;display:flex}.tab{min-height:56px;color:var(--muted);font:inherit;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;padding:8px 0;font-size:.8rem;line-height:18px;display:flex;position:relative}.tab[aria-current=page]{color:var(--accent);font-weight:600}.tab-icon{font-size:1.3rem;line-height:28px}.keyboard-open .tab-bar{display:none}.topbar{position:relative}.menu-button{background:0 0;border:none;min-width:44px;min-height:44px;margin-left:auto;font-size:1.4rem}.menu{z-index:10;border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-direction:column;min-width:180px;padding:4px 0;display:flex;position:absolute;top:100%;right:16px}.menu button{text-align:left;background:0 0;border:none;min-height:44px;padding:0 16px}.login{background:var(--bg);flex-direction:column;justify-content:center;padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}.login>*{width:100%;max-width:420px;margin-left:auto;margin-right:auto}.login h1{color:var(--accent);text-align:center;margin-top:0;margin-bottom:32px;font-size:2rem}.login-form{flex-direction:column;gap:16px;display:flex}.login-form label{color:var(--muted);flex-direction:column;gap:6px;font-size:.9rem;display:flex}.login-form input{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:12px;font-size:16px}.login-form input:focus{outline:2px solid var(--accent);outline-offset:-1px}.form-error{color:var(--danger);margin:0}button.primary{background:var(--accent);min-height:48px;color:var(--accent-text);border:none;border-radius:10px;font-weight:600}.hint{color:var(--muted);margin:0;font-size:.9rem}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:16px}.card h2{margin:0 0 12px;font-size:1.3rem}.version-page{flex-direction:column;gap:16px;display:flex}.version-page .card{flex-direction:column;gap:12px;display:flex}.version-page .card h2,.version-page h3,.version-page p{margin:0}.version-page h3{font-size:1rem}.version-page h3 small{color:var(--muted);font-weight:400}.version-notes{margin:0;padding-left:20px;line-height:1.5}.version-earlier{flex-direction:column;gap:4px;display:flex}.version-display{grid-template-columns:auto 1fr;gap:4px 12px;margin:0;display:grid}.version-display dt{color:var(--muted)}.version-display dd{font-variant-numeric:tabular-nums;margin:0}.termine-day h2{color:var(--muted);margin:16px 0 8px;font-size:1.1rem}.termine-day:first-of-type h2{margin-top:0}.termin{flex-direction:column;gap:4px;margin-bottom:8px;display:flex}.termin h3{overflow-wrap:anywhere;margin:0;font-size:1.1rem}.termin h3 a{color:inherit;-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border);padding:4px 0;display:block}.termin-when{color:var(--muted);margin:0;font-size:.9rem}.termin-time{color:var(--text);font-variant-numeric:tabular-nums;margin-right:8px;font-weight:600}.termin-tags{flex-wrap:wrap;gap:4px;margin:0;display:flex}.tag{background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:.8rem}.tag-read{color:var(--muted);border-style:dashed}button.mark{min-height:var(--tap);border:2px solid var(--accent);border-radius:var(--radius);color:var(--accent);background:0 0;align-self:flex-start;margin-top:4px;padding:0 16px;font-weight:600}button.mark.marked{background:var(--accent);color:var(--accent-text)}a.button{border-radius:10px;justify-content:center;align-items:center;min-height:48px;margin-top:8px;text-decoration:none;display:flex}a.button.primary{background:var(--accent);color:var(--accent-text);font-weight:600}.quelle h2{margin:0 0 4px;font-size:1.1rem}.quelle h2 a{color:inherit;padding:4px 0;display:inline-block}.quelle p{margin:4px 0 0}.quelle-note{font-size:.8rem}
