:root{--rausch: #ff385c;--rausch-dark: #d70466;--ink: #222222;--muted: #717171;--line: #dddddd;--line-soft: #ebebeb;--page: #ffffff;--surface: #f4f4f4;--fill: #eaeaea;--good: #008a05;--bad: #c13515;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-pill: 999px;--shadow-card: 0 1px 2px rgba(0, 0, 0, .08), 0 4px 12px rgba(0, 0, 0, .05);--shadow-lift: 0 2px 4px rgba(0, 0, 0, .1), 0 8px 24px rgba(0, 0, 0, .09);font-family:Nunito Sans,Helvetica Neue,system-ui,sans-serif;font-size:16px;line-height:1.45;color:var(--ink);-webkit-text-size-adjust:100%}*{box-sizing:border-box}html,body{margin:0;background:var(--page)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--line-soft);position:sticky;top:0;background:var(--page);z-index:2}.brand{display:flex;align-items:center;gap:.5rem;font-weight:800;font-size:1.0625rem;color:var(--rausch);letter-spacing:-.01em}.account{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.75rem;min-width:0}.account-email{font-size:.875rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:9rem}.lang-switch{display:flex;flex:none;border:1px solid var(--line);border-radius:var(--r-pill);overflow:hidden;background:var(--surface)}.lang-switch button{font:inherit;font-size:.75rem;font-weight:700;letter-spacing:.04em;min-height:32px;padding:0 .6rem;border:0;background:transparent;color:var(--muted);cursor:pointer}.lang-switch button.is-on{background:var(--ink);color:var(--surface)}.gate-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1.25rem}.gate-card .brand{margin-bottom:0}.container{max-width:36rem;margin:0 auto;padding:1.5rem 1.25rem 4rem;display:flex;flex-direction:column;gap:1.25rem}.card{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r-lg);padding:1.5rem;overflow:hidden}.card-title{margin:0 0 1rem;font-size:1.0625rem;font-weight:700;letter-spacing:-.01em}.progress-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.progress-eaten{margin:0;font-size:2rem;font-weight:800;letter-spacing:-.03em;line-height:1.1}.progress-target{font-size:1rem;font-weight:500;color:var(--muted)}.progress-remaining{margin:0;font-size:.875rem;color:var(--muted);text-align:right}.bar{height:.5rem;background:var(--fill);border-radius:var(--r-pill);overflow:hidden}.bar-fill{height:100%;border-radius:var(--r-pill);background:linear-gradient(90deg,var(--rausch),var(--rausch-dark));transition:width .18s ease-out}.bar-fill.over{background:var(--bad)}.photo-source{text-align:center}.photo-source-preview{display:grid;place-items:center;width:100%;min-height:7.5rem;padding:0;border:1.5px dashed var(--line);border-radius:var(--r-md);background:var(--fill);color:var(--ink);font:inherit;overflow:hidden;cursor:pointer}.photo-source-preview:disabled{cursor:not-allowed;opacity:.6}.photo-source-preview.is-picking{display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;gap:.5rem;padding:.75rem;cursor:default}.photo-source-preview.is-picking .photo-file{flex:1 1 0;min-width:0}.photo-source-preview.is-picking .photo-source-cancel{flex:1 0 100%}.photo-source-preview img{width:100%;height:10rem;object-fit:cover}.photo-source-cancel{border:0;background:none;color:var(--muted);font:inherit;font-size:.8125rem;cursor:pointer}.photo-file{position:relative;flex:1;display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 .75rem;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);font-weight:700;cursor:pointer}.photo-file:hover{border-color:var(--ink)}.photo-file:has(input:focus-visible){outline:2px solid var(--ink);outline-offset:2px}.photo-file:has(input:disabled){cursor:not-allowed;opacity:.6}.photo-file input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;font-size:0}.photo-source+.btn-block{margin-top:1rem}.estimate{margin-top:1rem;border:1px solid var(--line-soft);border-radius:var(--r-md);padding:1.25rem;box-shadow:var(--shadow-card)}.estimate-title{margin:0 0 .25rem;font-weight:700}.estimate-desc{margin:0 0 .5rem;font-weight:500;color:var(--muted)}.estimate-row{display:flex;align-items:center;gap:.625rem;margin-bottom:1.25rem}.estimate-kcal{font-size:1.5rem;font-weight:800;letter-spacing:-.02em}.pill{font-size:.75rem;font-weight:700;padding:.2rem .6rem;border-radius:var(--r-pill);background:var(--fill);color:var(--muted)}.pill.high{background:#e8f5e9;color:var(--good)}.pill.low{background:#fdecea;color:var(--bad)}.meals{list-style:none;margin:0;padding:0}.meals li{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:1rem;padding:.875rem 0;border-top:1px solid var(--line-soft)}.meals li:first-child{border-top:0}.meal-desc{min-width:0}.meal-time{display:block;font-size:.8125rem;color:var(--muted);margin-top:.125rem}.meal-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem;flex:none}.meal-kcal{font-weight:700;white-space:nowrap}.meal-actions{display:flex;flex-wrap:wrap;gap:.25rem}.icon-btn{display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);cursor:pointer}.icon-btn:hover:not(:disabled){border-color:var(--ink);background:var(--fill)}.icon-btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.icon-btn-danger:hover:not(:disabled){border-color:var(--bad);color:var(--bad);background:#fdecea}.meals li.meal-edit{display:block}.meal-edit .field{margin-bottom:.75rem}.meal-edit-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.meals li .error{flex:1 0 100%;margin:0}.empty{color:var(--muted);margin:0}.reuse{position:relative;margin-bottom:1rem}.reuse-toggle{width:100%;min-height:44px;padding:.75rem .875rem;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:inherit;font:inherit;text-align:left;cursor:pointer}.reuse-toggle:disabled{cursor:not-allowed;opacity:.6}.reuse-menu{position:absolute;z-index:5;top:calc(100% - .25rem);left:0;right:0;max-height:min(16rem,50vh);overflow:auto;margin:0;padding:.375rem;list-style:none;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--page);box-shadow:var(--shadow-card)}.reuse-item{display:flex;align-items:center;gap:.75rem;width:100%;min-height:44px;min-width:0;padding:.5rem .75rem;border:0;border-radius:var(--r-sm);background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.reuse-item:hover:not(:disabled){background:var(--fill)}.reuse-item:disabled{opacity:.5;cursor:not-allowed}.reuse-title{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reuse-kcal{flex:none;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}.field{display:block;margin-bottom:1rem}.field-label{display:block;font-size:.8125rem;font-weight:600;color:var(--muted);margin-bottom:.375rem}.day-picker{display:grid;grid-template-columns:2.5rem minmax(0,1fr) 2.5rem;align-items:center;gap:.5rem}.day-nav-bar{margin:0 0 .75rem}.day-picker-title{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-bottom:1rem}.day-picker-heading{margin:0;min-width:0;font-size:clamp(1.05rem,4.5vw,1.375rem);font-weight:800;letter-spacing:-.03em}.day-nav{flex:none;display:grid;place-items:center;width:2.5rem;height:2.5rem;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--ink);cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.day-nav:hover:not(:disabled){border-color:var(--ink);box-shadow:var(--shadow-card)}.day-nav:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.day-nav:disabled{opacity:.35;cursor:not-allowed}.day-picker-date{flex:1;min-width:0}.day-picker-date input[type=date]{width:100%;min-width:0;max-width:100%;box-sizing:border-box;font-weight:700;font-size:.9375rem;text-align:center;padding:.5rem .35rem}.day-picker-today{display:inline-flex;align-items:center;justify-content:center;flex:none;min-height:32px;padding:0 .85rem;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);color:var(--rausch);font:inherit;font-weight:700;cursor:pointer}.day-picker-today:hover:not(:disabled){border-color:var(--rausch);background:#fff5f7}.day-picker-today:disabled{opacity:.4;cursor:not-allowed}.day-picker-hint{margin:.75rem 0 0;font-size:.8125rem;color:var(--muted)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.period-totals{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.25rem 0 0}.period-totals div{margin:0;padding:.875rem 1rem;background:var(--fill);border-radius:var(--r-md)}.period-totals dt{font-size:.8125rem;font-weight:600;color:var(--muted)}.period-totals dd{margin:.25rem 0 0;font-size:1.125rem;font-weight:700;letter-spacing:-.02em}input[type=email],input[type=number],input[type=text],input[type=date],textarea,select{width:100%;font:inherit;color:var(--ink);padding:.75rem .875rem;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);transition:border-color .15s ease,box-shadow .15s ease}textarea{resize:vertical;min-height:4.5rem}input[type=email]:focus,input[type=number]:focus,input[type=text]:focus,textarea:focus,select:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px #2222221f}textarea:disabled,select:disabled,input:disabled{opacity:.6}.row{display:flex;align-items:flex-end;gap:.75rem}.row .field{flex:1;margin-bottom:0}.btn{font:inherit;font-weight:700;min-height:44px;padding:0 1.25rem;border:0;border-radius:var(--r-sm);background:var(--rausch);color:#fff;cursor:pointer;transition:background .15s ease,transform .12s ease,box-shadow .15s ease}.btn:hover:not(:disabled){background:var(--rausch-dark);box-shadow:var(--shadow-lift)}.btn:active:not(:disabled){transform:scale(.98)}.btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.btn:disabled{background:var(--line);color:var(--muted);cursor:not-allowed}.btn-block{width:100%}.btn-quiet{background:transparent;color:var(--ink);font-weight:600;text-decoration:underline;min-height:32px;padding:0 .25rem}.btn-quiet:hover:not(:disabled){background:var(--fill);box-shadow:none}.error{margin:1rem 0 0;padding:.75rem .875rem;border-radius:var(--r-sm);background:#fdecea;color:var(--bad);font-size:.875rem}.busy{display:flex;align-items:center;gap:.625rem;margin:1rem 0 0;font-size:.875rem;color:var(--muted)}.spinner{width:1rem;height:1rem;flex:none;border:2px solid var(--line);border-top-color:var(--rausch);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{border-radius:var(--r-sm);background:linear-gradient(90deg,var(--fill),#efeeec,var(--fill));background-size:200% 100%;animation:shimmer 1.2s ease-in-out infinite}@keyframes shimmer{to{background-position:-200% 0}}.gate{min-height:100dvh;display:grid;place-items:center;padding:1.25rem}.gate-card{width:100%;max-width:24rem;background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r-lg);padding:2rem;box-shadow:var(--shadow-card)}.gate-title{margin:0 0 .5rem;font-size:1.5rem;font-weight:800;letter-spacing:-.02em}.gate-sub{margin:0 0 1.5rem;font-size:.875rem;color:var(--muted)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
