:root{color-scheme:light;--bg: #f4f5f8;--card: #ffffff;--card-2: #f7f8fb;--border: rgba(15, 23, 42, .08);--text: #0b1220;--text-2: #5b6472;--muted: #667085;--accent: #6d4de6;--accent-soft: #ede9fe;--on-accent: #ffffff;--accent-ink: #6d4de6;--gruen: #16a34a;--gruen-soft: rgba(22, 163, 74, .14);--gruen-ink: #166534;--orange: #ea580c;--orange-soft: rgba(234, 88, 12, .14);--orange-ink: #9a3412;--rot: #dc2626;--rot-soft: rgba(220, 38, 38, .14);--rot-ink: #b91c1c;--blau: #2563eb;--blau-soft: rgba(37, 99, 235, .14);--blau-ink: #1d4ed8;--grau: #94a3b8;--grau-soft: rgba(148, 163, 184, .18);--grid: #e6e8ee;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 8px 24px -12px rgba(16, 24, 40, .14);--r-card: 18px;--r-btn: 14px;--r-chip: 999px;--tab-h: calc(4rem + env(safe-area-inset-bottom)) ;--series-1: var(--accent);--series-2: var(--grau);--ramp-1: #c0a9fe;--ramp-2: #ab93f8;--ramp-3: #967df2;--ramp-4: #8166ec;--ramp-5: #6d4de6}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #0f1115;--card: #181b21;--card-2: #20242c;--border: rgba(255, 255, 255, .08);--text: #f5f7fa;--text-2: #a2acbb;--muted: #7c8797;--accent: #a78bfa;--accent-soft: rgba(167, 139, 250, .16);--on-accent: #0f1115;--accent-ink: #c4b5fd;--gruen: #4ade80;--gruen-soft: rgba(74, 222, 128, .16);--gruen-ink: #4ade80;--orange: #fb923c;--orange-soft: rgba(251, 146, 60, .16);--orange-ink: #fb923c;--rot: #f87171;--rot-soft: rgba(248, 113, 113, .16);--rot-ink: #fca5a5;--blau: #60a5fa;--blau-soft: rgba(96, 165, 250, .16);--blau-ink: #60a5fa;--grau: #64748b;--grau-soft: rgba(100, 116, 139, .22);--grid: #2a2f38;--shadow: none;--ramp-1: #524394;--ramp-2: #6653ab;--ramp-3: #7a65c5;--ramp-4: #8f78df;--ramp-5: #a78bfa}}:root[data-theme=dark]{color-scheme:dark;--bg: #0f1115;--card: #181b21;--card-2: #20242c;--border: rgba(255, 255, 255, .08);--text: #f5f7fa;--text-2: #a2acbb;--muted: #7c8797;--accent: #a78bfa;--accent-soft: rgba(167, 139, 250, .16);--on-accent: #0f1115;--accent-ink: #c4b5fd;--gruen: #4ade80;--gruen-soft: rgba(74, 222, 128, .16);--gruen-ink: #4ade80;--orange: #fb923c;--orange-soft: rgba(251, 146, 60, .16);--orange-ink: #fb923c;--rot: #f87171;--rot-soft: rgba(248, 113, 113, .16);--rot-ink: #fca5a5;--blau: #60a5fa;--blau-soft: rgba(96, 165, 250, .16);--blau-ink: #60a5fa;--grau: #64748b;--grau-soft: rgba(100, 116, 139, .22);--grid: #2a2f38;--shadow: none;--ramp-1: #524394;--ramp-2: #6653ab;--ramp-3: #7a65c5;--ramp-4: #8f78df;--ramp-5: #a78bfa}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.4;background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}.tnum{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.text-2{color:var(--text-2)}.small{font-size:13px}.center{text-align:center}.error{color:var(--rot);font-size:14px}.error.gap{margin-bottom:12px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stack{display:flex;flex-direction:column;gap:12px}.hrow{display:flex;align-items:center;gap:10px}.hrow.between{justify-content:space-between}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.page{padding:calc(12px + env(safe-area-inset-top)) 16px calc(var(--tab-h) + 16px);max-width:40rem;margin:0 auto}.page.with-sticky{padding-bottom:calc(var(--tab-h) + 88px)}.page>*{animation:rise .16s ease-out both}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:8px 0 14px}.page-header .h-title{font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.15}.page-header .h-sub{font-size:15px;color:var(--text-2);margin-top:2px}.page-header .h-right{display:flex;gap:8px;align-items:center;flex:none}.section-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.section{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:18px 0 8px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--r-card);padding:16px;box-shadow:var(--shadow);margin-bottom:12px;position:relative}.card.inset{background:var(--card-2);box-shadow:none}.card.accent{background:var(--accent-soft);border-color:transparent;box-shadow:none}.card.tap{display:block;cursor:pointer;transition:transform .12s ease,opacity .12s ease}.card.tap:active{transform:scale(.985)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.card .chev{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--muted)}.list .card{margin-bottom:8px}.row-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--border);min-height:44px}.row-item:first-child{border-top:0;padding-top:0}.row-item:last-child{padding-bottom:0}.row-item .label{font-size:16px}.row-item .label{color:var(--text)}.row-item .hint{font-size:13px;color:var(--muted);margin-top:2px}.row-item input,.row-item select{width:7.5rem;text-align:right;margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;font-weight:600;border-radius:var(--r-btn);padding:12px 16px;min-height:44px;background:var(--accent);color:var(--on-accent);transition:transform .12s ease,opacity .12s ease}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:default;transform:none}.btn.secondary{background:var(--accent-soft);color:var(--accent-ink)}.btn.ghost{background:transparent;color:var(--text-2);padding:8px 10px;min-height:36px}.btn.danger{background:var(--rot-soft);color:var(--rot-ink)}.btn.sm{padding:8px 12px;min-height:36px;font-size:14px}.btn.lg{padding:16px;font-size:17px;border-radius:16px}.btn.wide{width:100%}.btn.icon-only{width:40px;height:40px;min-height:40px;padding:0;border-radius:50%;background:var(--card-2);color:var(--text)}.sticky-bottom{position:fixed;left:0;right:0;bottom:var(--tab-h);padding:10px 16px;background:linear-gradient(to top,var(--bg) 70%,transparent);z-index:5}.sticky-bottom>*{max-width:40rem;margin:0 auto}label{font-size:13px;color:var(--muted);display:block;margin-bottom:4px}input,select,textarea{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:var(--r-btn);background:var(--card-2);color:var(--text);margin:0 0 12px;min-height:44px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:0}input[type=checkbox],input[type=radio]{width:22px;height:22px;min-height:0;margin:0;accent-color:var(--accent)}.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--r-chip);font-size:13px;font-weight:600;border:0;background:var(--accent-soft);color:var(--accent-ink);white-space:nowrap}.chip.neutral{background:var(--card-2);color:var(--text-2)}.chip.selected{background:var(--accent);color:var(--on-accent)}.chip.gruen{background:var(--gruen-soft);color:var(--gruen-ink)}.chip.orange{background:var(--orange-soft);color:var(--orange-ink)}.chip.rot{background:var(--rot-soft);color:var(--rot-ink)}.chip.blau{background:var(--blau-soft);color:var(--blau-ink)}.chip.grau{background:var(--grau-soft);color:var(--text-2)}.chips{display:flex;flex-wrap:wrap;gap:8px}button.chip{cursor:pointer;min-height:36px}.stat{background:var(--card);border:1px solid var(--border);border-radius:var(--r-card);padding:14px 16px;box-shadow:var(--shadow);min-width:0}.stat .label{font-size:13px;color:var(--muted)}.stat .value{font-size:24px;font-weight:700;letter-spacing:-.01em;margin-top:2px;display:flex;align-items:baseline;gap:6px}.stat .value .dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none;align-self:center}.stat .unit{font-size:14px;font-weight:500;color:var(--text-2)}.stat .hint{font-size:13px;color:var(--text-2);margin-top:4px}.stat .spark{margin-top:6px;display:block}.dot.gruen{background:var(--gruen)}.dot.orange{background:var(--orange)}.dot.rot{background:var(--rot)}.dot.blau{background:var(--blau)}.dot.grau{background:var(--grau)}.dot.accent{background:var(--accent)}.meter{margin:10px 0}.meter .meter-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:15px}.meter .meter-head .val{color:var(--text-2);font-size:13px}.meter .track{height:10px;border-radius:999px;background:var(--card-2);overflow:hidden;margin-top:6px}.meter .fill{height:100%;border-radius:999px;background:var(--accent);transition:width .4s ease-out}.meter.hit .fill{background:var(--gruen)}.segmented{display:flex;background:var(--card-2);border-radius:12px;padding:3px;gap:2px}.segmented button{flex:1;border:0;background:transparent;border-radius:10px;padding:8px 6px;min-height:36px;font-size:14px;font-weight:600;color:var(--text-2);cursor:pointer}.segmented button[aria-selected=true]{background:var(--card);color:var(--text);box-shadow:var(--shadow)}.empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 8px;color:var(--text-2);text-align:center}.empty svg{color:var(--muted)}.fade{transition:opacity .2s ease}.fade.busy{opacity:.55;pointer-events:none}.hero{font-size:44px;font-weight:800;letter-spacing:-.03em;line-height:1}.ring-wrap{position:relative;width:176px;height:176px;margin:4px auto 8px}.ring-wrap svg{width:100%;height:100%;transform:rotate(-90deg)}.ring-track{fill:none;stroke:var(--card-2);stroke-width:14}.ring-corridor{fill:none;stroke:var(--gruen-soft);stroke-width:14}.ring-arc{fill:none;stroke:var(--accent);stroke-width:14;stroke-linecap:round;transition:stroke-dasharray .4s ease-out}.ring.gruen .ring-arc{stroke:var(--gruen)}.ring.orange .ring-arc{stroke:var(--orange)}.ring.rot .ring-arc{stroke:var(--rot)}.ring.blau .ring-arc{stroke:var(--blau)}.ring-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;padding:28px}.ring-center .label{font-size:13px;font-weight:600;color:var(--text-2)}.ring-center .hero{font-size:40px}.meal{display:flex;align-items:center;gap:12px}.meal .thumb{width:56px;height:56px;border-radius:14px;object-fit:cover;background:var(--card-2);flex:none;display:flex;align-items:center;justify-content:center;color:var(--muted)}.meal .body{flex:1;min-width:0}.meal .title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meal .sub{font-size:13px;color:var(--text-2);margin-top:2px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.meal .kcal{font-weight:700;flex:none}.photo{width:100%;border-radius:var(--r-card);max-height:50vh;object-fit:cover;display:block;margin-bottom:12px}.item{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:12px 0;border-top:1px solid var(--border)}.item:first-child{border-top:0;padding-top:0}.tabbar{position:fixed;bottom:0;left:0;right:0;height:var(--tab-h);padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb,var(--card) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);display:flex;align-items:stretch;z-index:10}.tabbar a.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);font-size:11px;font-weight:600}.tabbar a.tab.active{color:var(--accent)}.tabbar .fab-slot{flex:1;display:flex;align-items:flex-start;justify-content:center}.tabbar .fab{width:56px;height:56px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:flex;align-items:center;justify-content:center;margin-top:-14px;box-shadow:0 8px 20px -8px #6d4de699;transition:transform .12s ease}.tabbar .fab:active{transform:scale(.94)}.toast{position:fixed;left:50%;bottom:calc(var(--tab-h) + 12px);transform:translate(-50%);background:var(--text);color:var(--bg);padding:10px 16px;border-radius:var(--r-btn);font-size:14px;font-weight:500;z-index:20;max-width:90vw;box-shadow:var(--shadow)}.splash{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--muted)}.login{padding:calc(56px + env(safe-area-inset-top)) 20px 40px;max-width:24rem;margin:0 auto;display:flex;flex-direction:column;gap:8px}.login .brand{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:20px}.login h1{font-size:28px;font-weight:700;letter-spacing:-.02em}.chart-card .chart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:8px}.chart-card .chart-title{font-size:16px;font-weight:600}.chart-card .chart-sub{font-size:13px;color:var(--text-2);margin-top:2px}.chart-card svg{display:block;width:100%;height:auto;overflow:visible}.chart-card .legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px;font-size:13px;color:var(--text-2)}.chart-card .legend .key{display:inline-flex;align-items:center;gap:6px}.chart-card .legend .sw{width:10px;height:10px;border-radius:3px;display:inline-block}.chart-card .legend .ln{width:14px;height:2px;border-radius:1px;display:inline-block}.chart-body{position:relative}.chart-tip{position:absolute;pointer-events:none;background:var(--text);color:var(--bg);padding:8px 10px;border-radius:10px;font-size:13px;line-height:1.35;z-index:3;max-width:220px;box-shadow:var(--shadow);transform:translate(-50%,calc(-100% - 10px));white-space:nowrap}.chart-tip strong{font-size:15px;display:block}.chart-tip .row{display:flex;align-items:center;gap:6px}.grid-line{stroke:var(--grid);stroke-width:1}.axis-line{stroke:var(--border);stroke-width:1}.axis-text{fill:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.bar-hit{fill:transparent;cursor:pointer}.chart-table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}.chart-table th,.chart-table td{text-align:right;padding:6px 4px;border-top:1px solid var(--border)}.chart-table th:first-child,.chart-table td:first-child{text-align:left}.chart-table thead th{border-top:0;color:var(--muted);font-weight:600}.bar-bg{position:relative}.bar-bg .bg{position:absolute;inset:0 auto 0 0;background:var(--accent-soft);border-radius:4px;z-index:0}.bar-bg span{position:relative;z-index:1}
