:root{--accent: #c8321f;--accent-bright: #ff5a47;--accent-dark: #a82a1c;--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(--accent);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-stack .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(--accent-bright),var(--accent));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}.segmented{display:flex;margin:1rem 0;border:1px solid var(--line);border-radius:var(--r-pill);overflow:hidden;background:var(--surface)}.segmented button{flex:1;min-height:44px;font:inherit;font-weight:700;border:0;background:transparent;color:var(--muted);cursor:pointer;transition:background-color .15s,color .15s}.segmented button+button{border-left:1px solid var(--line)}.segmented button:hover:not(:disabled):not(.is-on){color:var(--ink)}.segmented button:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.segmented button:disabled{cursor:not-allowed;opacity:.5}.segmented button.is-on{background:var(--ink);color:var(--surface)}.meal-edit-macros{grid-template-columns:repeat(3,1fr)}.macros{display:flex;flex-wrap:wrap;gap:.25rem .75rem;margin:.5rem 0 0;font-size:.8125rem;color:var(--muted)}.meal-desc .macros{margin-top:.125rem}.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}.consent{display:flex;align-items:flex-start;gap:.75rem;min-height:44px;margin-bottom:1rem;line-height:1.45;cursor:pointer}.consent input{flex:none;width:1.25rem;height:1.25rem;margin:.125rem 0 0;accent-color:var(--accent);cursor:pointer}.consent input:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.consent input:disabled{cursor:not-allowed}.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(--accent);font:inherit;font-weight:700;cursor:pointer}.day-picker-today:hover:not(:disabled){border-color:var(--accent);background:#fff3f1}.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(--accent);color:#fff;cursor:pointer;transition:background .15s ease,transform .12s ease,box-shadow .15s ease}.btn:hover:not(:disabled){background:var(--accent-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(--accent-bright);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-stack{width:100%;max-width:25rem;display:grid;gap:1rem;justify-items:center}.gate-stack .gate-top{width:100%;margin-bottom:0}:root{--clerk-color-primary: var(--accent);--clerk-color-foreground: var(--ink);--clerk-color-muted-foreground: var(--muted);--clerk-color-danger: var(--bad);--clerk-border-radius: var(--r-sm);--clerk-font-family: inherit}.gate-title{margin:0 0 .5rem;font-size:1.5rem;font-weight:800;letter-spacing:-.02em;text-align:center}.gate-sub{margin:-.75rem 0 .5rem;color:var(--muted);line-height:1.5;text-align:center}.landing{width:100%;display:grid;gap:2rem;margin-top:1.5rem}.landing-title{margin:0 0 .75rem;font-size:1.0625rem;font-weight:700;letter-spacing:-.01em}.landing-steps,.landing-trust{margin:0;padding-left:1.25rem;line-height:1.6}.landing-plans{display:grid;gap:1rem}.landing-plans .upgrade-perks:last-child{margin-bottom:0}.landing-plans .card-note{margin:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.onboarding .card-title{margin-bottom:.25rem}.card-note{margin:0 0 1rem;color:var(--muted)}.onboarding .segmented{margin:.375rem 0 0}.card-actions{display:flex;flex-wrap:wrap;gap:.75rem}.btn-small{min-height:36px;padding:0 .875rem;font-size:.875rem}.pro-badge{padding:.125rem .625rem;border-radius:var(--r-pill);background:var(--ink);color:var(--page);font-size:.75rem;font-weight:800;letter-spacing:.04em}.welcome{margin:0 0 1rem;padding:.75rem .875rem;border-radius:var(--r-sm);background:var(--surface);border-left:4px solid var(--good);font-weight:700}.upgrade-perks{margin:0 0 1rem;padding-left:1.25rem;line-height:1.6}.macros.is-locked{align-items:center}.macros-blur{display:inline-flex;flex-wrap:wrap;gap:.25rem .75rem;filter:blur(4px);-webkit-user-select:none;user-select:none}.unlock{font:inherit;font-size:.8125rem;font-weight:700;min-height:32px;padding:0 .625rem;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--page);color:var(--ink);cursor:pointer}.unlock:hover{border-color:var(--ink)}.unlock:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.history-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;margin-bottom:.5rem}.history-head .card-title{margin:0}.history-span{margin:0;min-width:10rem}.history-plot{position:relative}.history-plot svg{display:block;width:100%;height:auto}.history-plot.is-locked svg,.history-plot.is-locked .history-readout{filter:blur(5px);-webkit-user-select:none;user-select:none;pointer-events:none}.unlock-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.history-readout{margin:0 0 .25rem;min-height:1.4em;font-size:.8125rem;color:var(--muted)}.history-bar path{fill:var(--ink);opacity:.7}.history-bar.is-active path{opacity:1}.history-bar{cursor:pointer}.history-label,.history-target-label{font-size:10px;fill:var(--muted)}.history-base{stroke:var(--line);stroke-width:1}.history-target{stroke:var(--muted);stroke-width:2;stroke-dasharray:4 4}.history-table{margin-top:.75rem;font-size:.875rem}.history-table summary{cursor:pointer;font-weight:600}.history-table table{width:100%;margin-top:.5rem;border-collapse:collapse}.history-table th,.history-table td{padding:.25rem 0;text-align:left;border-bottom:1px solid var(--line-soft)}.danger-zone{margin-top:1rem;padding:1rem;border:1px solid var(--bad);border-radius:var(--r-md)}.danger-zone p{margin:0 0 .75rem}.btn-danger{background:var(--bad)}.btn-danger-text{margin-top:.75rem;color:var(--bad)}.legal-links{display:flex;gap:1rem;margin:1rem 0 0;font-size:.875rem}.legal-links a,.legal a{color:var(--ink)}.limit-note p{margin:1rem 0 .75rem;color:var(--muted)}.legal{padding-block:1.5rem 3rem}.legal h1{margin:0 0 .25rem;font-size:1.5rem}.legal h2{margin:1.5rem 0 .375rem;font-size:1.0625rem}.legal p{margin:0;line-height:1.55}.legal-draft{margin:0 0 1rem!important;padding:.75rem .875rem;border-radius:var(--r-sm);background:var(--surface);border-left:4px solid var(--bad);font-weight:700}
