:root{--bg: #f7f6f3;--card: #ffffff;--text: #1c1c1a;--text-dim: #6b6b66;--border: #dcdad4;--gruen: #2e7d32;--orange: #c25e00;--rot: #b3261e;--gelb: #9a6c00;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #161614;--card: #222220;--text: #ececea;--text-dim: #a3a39d;--border: #3a3a36;--gruen: #7cc47f;--orange: #f0a55c;--rot: #f2b8b5;--gelb: #e3c078}}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text)}.app{max-width:640px;margin:0 auto;padding:0 12px 96px}.topbar{padding:12px 0 4px}.topbar h1{font-size:1.1rem;margin:0 0 8px}.topbar-zeile{display:flex;justify-content:space-between;align-items:center}.diagnose-toggle{min-height:44px;min-width:44px;border:1px solid var(--border);border-radius:10px;background:var(--card);color:var(--text);font-size:1.1rem;cursor:pointer}.offline-banner{border:1px dashed var(--gelb);border-radius:10px;color:var(--gelb);padding:8px 12px;font-size:.9rem;margin:10px 0 0}.diagnose h2{font-size:1rem;margin:18px 0 8px}.diagnose h3{font-size:.95rem;margin:20px 0 8px;color:var(--text-dim)}.statusliste{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0;font-size:.9rem}.statusliste dt{color:var(--text-dim)}.statusliste dd{margin:0}.sperre{border:2px solid var(--rot);border-radius:12px;padding:12px 14px;margin-bottom:16px;background:var(--card)}.sperre p{margin:6px 0;font-size:.9rem}.sperre-hinweis{color:var(--text-dim)}.sperre button{min-height:44px;border:none;border-radius:10px;padding:0 16px;background:var(--rot);color:#fff;font-size:.95rem;cursor:pointer}.run{border:1px solid var(--border);border-radius:10px;padding:8px 12px;margin-bottom:8px;font-size:.9rem}.run summary{cursor:pointer}.run-fehler summary{color:var(--rot)}.run-teilweise summary{color:var(--gelb)}.weeknav{display:flex;gap:8px}.weeknav button{min-height:44px;min-width:44px;border:1px solid var(--border);border-radius:10px;background:var(--card);color:var(--text);font-size:1.1rem;cursor:pointer}.weeknav-label{flex:1;font-variant-numeric:tabular-nums}.tag{margin-top:18px}.tag h2{font-size:.95rem;color:var(--text-dim);margin:0 0 8px}.meal{display:flex;flex-direction:column;gap:4px;width:100%;text-align:left;margin-bottom:8px;padding:12px 14px;min-height:44px;background:var(--card);color:var(--text);border:2px solid var(--orange);border-radius:12px;border-left:6px solid var(--esser-farbe, var(--border));cursor:pointer;font:inherit}.meal-an{border-color:var(--gruen);border-left-color:var(--esser-farbe, var(--gruen));background:color-mix(in srgb,var(--gruen) 10%,var(--card))}.meal-unsaved,.meal-syncing{border-style:dashed}.meal-kopf{display:flex;gap:8px;align-items:baseline}.meal-esser{font-weight:600;color:var(--esser-farbe, var(--text))}.meal-menue{color:var(--text-dim);font-size:.85rem}.meal-frist{margin-left:auto;color:var(--gelb);font-size:.85rem;font-weight:600}.meal-titel{font-weight:500}.meal-details{color:var(--text-dim);font-size:.85rem}.meal-status{font-size:.9rem;font-weight:600;color:var(--orange)}.meal-an .meal-status{color:var(--gruen)}.meal-unsaved .meal-status{color:var(--gelb)}.meal-problem{font-size:.85rem;color:var(--rot)}.auto-hinweis{border:1px solid var(--border);border-left:6px solid;border-radius:12px;padding:10px 14px;margin:12px 0 0;background:var(--card);font-size:.9rem}.hinweis{color:var(--text-dim);margin-top:24px}.fehler{color:var(--rot)}.savebar{position:fixed;bottom:0;left:0;right:0;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--border)}.savebar-button{width:100%;max-width:640px;margin:0 auto;display:block;min-height:48px;border-radius:12px;border:none;background:var(--gruen);color:#fff;font-size:1rem;font-weight:600;cursor:pointer}.savebar-button:disabled{opacity:.6}.savebar-ergebnis{margin:0 0 8px;text-align:center;font-size:.9rem}.login{max-width:320px;margin:20vh auto 0;padding:0 16px;display:flex;flex-direction:column;gap:8px}.login form{display:flex;flex-direction:column;gap:8px}.login-hinweis{color:var(--text-dim);font-size:.9rem}.login input{min-height:44px;border:1px solid var(--border);border-radius:10px;padding:0 12px;font-size:1rem;background:var(--card);color:var(--text)}.login button{min-height:44px;border:none;border-radius:10px;background:var(--gruen);color:#fff;font-size:1rem;cursor:pointer}
