:root{--green: var(--token-color-positive);--green-d: var(--token-color-positive-dark);--green-l: var(--token-color-positive-light);--green-ll: var(--token-color-positive-ghost);--blue: var(--token-color-info);--blue-d: var(--token-color-info-dark);--blue-l: var(--token-color-info-light);--red: var(--token-color-negative);--red-d: var(--token-color-negative-dark);--red-l: var(--token-color-negative-light);--red-ll: var(--token-color-negative-ghost);--amber: var(--token-color-warning);--amber-l: var(--token-color-warning-light);--accent: var(--green);--accent-muted: var(--token-color-positive-muted);--danger: var(--red);--card: var(--token-color-surface);--border: var(--token-color-divider-focus);--bg: var(--token-color-bg);--surface: var(--token-color-surface);--surface-2: var(--token-color-surface-alt);--surface-3: var(--token-color-surface-muted);--t1: var(--token-color-text-primary);--t2: var(--token-color-text-secondary);--t3: var(--token-color-text-tertiary);--sh-xs: var(--token-shadow-xs);--sh-sm: var(--token-shadow-sm);--sh-md: var(--token-shadow-md);--sh-modal: var(--token-shadow-modal);--r-xs: 4px;--r-sm: 6px;--r-md: 8px;--r-lg: 10px;--r-xl: 12px;--r-2xl: 16px;--r-full: 9999px;--page-px: 1rem;--page-pt: 1.25rem;--page-pb: 5rem}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.5;font-weight:400;color:var(--t1);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh}#root{min-height:100dvh}a{color:var(--green)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes floatingBarIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sheetDown{0%{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:0}}@keyframes backdropIn{0%{background:var(--token-color-overlay-clear)}to{background:var(--token-color-overlay)}}@keyframes backdropFadeOut{0%{opacity:1}to{opacity:0}}.modal.modal-exit{animation:sheetDown .24s cubic-bezier(.4,0,1,1) forwards}.modal-backdrop.modal-backdrop-exit{animation:backdropFadeOut .24s ease forwards}@keyframes backdropInDark{0%{background:var(--token-color-overlay-clear)}to{background:var(--token-color-overlay-strong)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.65;transform:scale(.95)}}@keyframes ripple{0%{transform:scale(.7);opacity:.55}to{transform:scale(2.6);opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.page{max-width:28rem;margin:0 auto;padding:var(--page-pt) var(--page-px) var(--page-pb);min-height:100dvh;animation:fadeIn .25s cubic-bezier(.25,.1,.25,1)}@media(min-width:481px){.page{border-left:none;border-right:none}}.page.center{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.875rem;padding:2rem}.page-header{display:flex;align-items:center;gap:.375rem;padding-bottom:1.25rem}.header-nav-btn,.header-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;background:none;color:var(--t3);cursor:pointer;border-radius:var(--r-full);padding:0;flex-shrink:0;-webkit-tap-highlight-color:transparent;transition:color .15s ease,transform .1s ease}.header-nav-btn:hover,.header-icon-btn:hover{color:var(--t1)}.header-nav-btn:active,.header-icon-btn:active{transform:scale(.94)}.page-header-title{font-size:1.125rem;font-weight:700;letter-spacing:-.02em;color:var(--t1);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-header-title-row{display:flex;align-items:center;gap:.2rem;flex:1;min-width:0}.page-header-stack{display:flex;flex-direction:column;gap:.125rem;flex:1;min-width:0}.chevron-history-btn{display:inline-flex;align-items:center;justify-content:center;width:1.375rem;height:1.375rem;border:none;background:none;color:var(--t3);cursor:pointer;border-radius:var(--r-full);padding:0;transition:color .15s ease;flex-shrink:0}.chevron-history-btn:hover{color:var(--t1)}.chevron-history-btn:active{transform:translateY(.5px)}.page-header-sub{font-size:.75rem;color:var(--t3);margin:0;line-height:1.1}.page-header-actions{display:flex;align-items:center;gap:.375rem;flex-shrink:0}.header-end-slot{width:2rem;height:2rem;flex-shrink:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.725rem 1.25rem;border-radius:var(--r-md);font-family:inherit;font-size:.9375rem;font-weight:600;line-height:1;letter-spacing:-.01em;border:none;cursor:pointer;text-decoration:none;-webkit-tap-highlight-color:transparent;transition:transform .1s ease,box-shadow .15s ease,background .15s ease,opacity .15s ease;position:relative;white-space:nowrap;min-height:2.75rem}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.42;cursor:not-allowed}.btn.full{width:100%}.btn.primary{background:var(--green);color:var(--token-color-white);box-shadow:var(--token-shadow-positive)}.btn.primary:hover:not(:disabled){background:var(--green-d);box-shadow:var(--token-shadow-positive-hover)}.btn.secondary{background:var(--blue);color:var(--token-color-white);box-shadow:var(--token-shadow-info)}.btn.secondary:hover:not(:disabled){background:var(--blue-d)}.btn.ghost{background:var(--surface);color:var(--t2);border:1.5px solid var(--border);box-shadow:var(--sh-xs)}.btn.ghost:hover:not(:disabled){background:var(--surface-2);border-color:var(--token-color-divider-hover)}.btn.danger{background:var(--red);color:var(--token-color-white);box-shadow:var(--token-shadow-negative)}.btn.danger:hover:not(:disabled){background:var(--red-d)}.btn.sm{padding:.45rem .85rem;font-size:.8125rem;min-height:2rem;border-radius:var(--r-sm)}.btn.lg{padding:.875rem 1.5rem;font-size:1rem;min-height:3.25rem;border-radius:var(--r-lg)}.chip{display:inline-flex;align-items:center;font-size:.75rem;color:var(--green-d);font-family:inherit;font-weight:600;border:none;background:var(--green-l);padding:.2rem .625rem;border-radius:var(--r-full);cursor:pointer;text-decoration:none;transition:background .15s;line-height:1.5}button.chip{font:inherit}button.chip:hover{background:var(--token-color-positive-hover)}button.chip.active{background:var(--green);color:var(--token-color-white)}.linkish{background:none;border:none;padding:0;color:var(--green);text-decoration:underline;text-decoration-color:transparent;cursor:pointer;font:inherit;font-size:.875rem;transition:text-decoration-color .15s}.linkish:hover{text-decoration-color:var(--green)}.card{background:var(--surface);border-radius:var(--r-lg);padding:1.25rem;box-shadow:var(--sh-sm);border:1px solid var(--token-color-divider-soft);margin-bottom:.875rem}.card h2{margin:0 0 .875rem;font-size:.8125rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--t3)}.danger-zone{background:var(--red-ll);border-color:var(--token-color-negative-border)}.danger-zone h2{color:var(--token-color-negative-text)}.summary-card{background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--sh-sm);border:1px solid var(--token-color-divider-soft);margin-bottom:1rem;overflow:hidden}.summary-ring-wrap{display:flex;flex-direction:column;align-items:center;padding:1.5rem 1rem .75rem}.progress-ring{position:relative;display:inline-block}.progress-ring svg{display:block;overflow:visible}.progress-ring-text{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.ring-calories{font-size:2.2rem;font-weight:800;letter-spacing:-.05em;line-height:1;color:var(--green);transition:color .3s ease;display:block}.ring-calories.over{color:var(--red)}.ring-label{font-size:.6875rem;font-weight:600;color:var(--t3);text-transform:uppercase;letter-spacing:.07em;margin-top:.2rem;display:block}.calorie-stats{display:flex;width:100%;border-top:1px solid var(--border);margin-top:.875rem}.calorie-stat{flex:1;display:flex;flex-direction:column;align-items:center;padding:.75rem .5rem}.calorie-stat:not(:last-child){border-right:1px solid var(--border)}.calorie-stat-num{font-size:1.0625rem;font-weight:700;letter-spacing:-.025em;color:var(--t1);display:block;line-height:1.1}.calorie-stat-label{font-size:.6rem;font-weight:600;color:var(--t3);text-transform:uppercase;letter-spacing:.07em;display:block;margin-top:.2rem}.summary{background:var(--surface);border-radius:var(--r-lg);padding:1.25rem;text-align:center;border:1px solid var(--border);box-shadow:var(--sh-sm);margin-bottom:1rem}.summary.over .big{color:var(--red)}.summary .big{font-size:2.75rem;font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--green)}.summary-label{font-size:.8125rem;color:var(--t3);font-weight:500;margin-top:.25rem}.sub-stats{display:flex;justify-content:center;gap:.875rem;flex-wrap:wrap;margin-top:.875rem;font-size:.8125rem;color:var(--t3)}.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:.625rem;margin-bottom:.75rem}.quick-action-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;padding:1rem .75rem;border-radius:var(--r-lg);border:none;cursor:pointer;font-family:inherit;font-weight:600;font-size:.875rem;line-height:1.25;text-align:center;-webkit-tap-highlight-color:transparent;transition:transform .1s ease,filter .15s ease}.quick-action-btn:active:not(:disabled){transform:scale(.95)}.quick-action-btn:disabled{opacity:.38;cursor:not-allowed}.quick-action-btn.food{background:var(--green-l);color:var(--green-d)}.quick-action-btn.food:hover:not(:disabled){background:var(--token-color-positive-hover)}.quick-action-btn.burn{background:var(--blue-l);color:var(--blue-d)}.quick-action-btn.burn:hover:not(:disabled){background:var(--token-color-info-hover)}.quick-action-icon{font-size:1.4rem;line-height:1}.manual-links{display:flex;gap:1.25rem;justify-content:center;margin-bottom:1.25rem}.link-btn{background:none;border:none;font:inherit;font-size:.8125rem;color:var(--t3);cursor:pointer;padding:.2rem 0;text-decoration:underline;text-decoration-color:transparent;transition:color .15s,text-decoration-color .15s}.link-btn:hover{color:var(--green);text-decoration-color:var(--green)}.actions-row{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.625rem}.links-row{display:flex;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.log-section{margin-bottom:1rem}.log-section h2{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--t3);margin:0 0 .5rem .125rem;display:flex;align-items:center;gap:.375rem}.log-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.375rem}.log-row{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--surface);border-radius:var(--r-md);border:1px solid var(--token-color-divider-soft);box-shadow:var(--sh-xs);cursor:pointer;width:100%;text-align:left;font:inherit;color:inherit;-webkit-tap-highlight-color:transparent;transition:transform .1s ease,background .12s ease;animation:slideUp .18s ease backwards}.log-row:active{transform:scale(.98);background:var(--surface-2)}.log-item-icon{width:2.125rem;height:2.125rem;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;font-size:.95rem;flex-shrink:0}.log-item-icon.food{background:var(--green-l)}.log-item-icon.burn{background:var(--blue-l)}.log-food-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.log-food-label{font-size:.9375rem;font-weight:600;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.log-food-qty{font-size:.75rem;color:var(--t3);line-height:1.2}.log-cal{font-size:.875rem;font-weight:700;color:var(--t2);white-space:nowrap;flex-shrink:0}.log-chevron{color:var(--t3);font-size:.8rem;flex-shrink:0}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;padding:1.5rem 1rem;color:var(--t3);font-size:.875rem;background:var(--surface);border-radius:var(--r-md);border:1.5px dashed var(--border);text-align:center}.empty-icon{font-size:1.625rem;opacity:.45;margin-bottom:.1rem}.modal-backdrop{position:fixed;inset:0;display:flex;align-items:flex-end;justify-content:center;z-index:100;animation:backdropIn .2s ease forwards;background:var(--token-color-overlay)}@media(min-width:480px){.modal-backdrop{align-items:center}.modal{border-radius:var(--r-xl)}}.modal{background:var(--surface);border-radius:var(--r-xl) var(--r-xl) 0 0;width:100%;max-width:28rem;max-height:92dvh;overflow:auto;box-shadow:var(--sh-modal);animation:sheetUp .28s cubic-bezier(.32,.72,0,1) forwards;overscroll-behavior:contain}.modal-handle{display:flex;justify-content:center;padding:.75rem 0 0}.modal-handle-bar{width:2.5rem;height:.25rem;border-radius:var(--r-full);background:var(--border)}.modal-body{padding:.75rem 1.375rem 1.25rem}.modal-body h3{font-size:1.125rem;font-weight:700;letter-spacing:-.02em;margin:.25rem 0 1.25rem;color:var(--t1)}.field{display:flex;flex-direction:column;gap:.375rem;margin-bottom:1rem}.field span,.field-label{font-size:.8125rem;font-weight:600;color:var(--t2);letter-spacing:.01em}.field input,.field select,.field-input{padding:.75rem 1rem;border-radius:var(--r-md);border:1.5px solid var(--border);font:inherit;font-size:.9375rem;color:var(--t1);background:var(--surface);outline:none;transition:border-color .15s,box-shadow .15s;-webkit-appearance:none}.field input:focus,.field select:focus,.field-input:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--token-color-positive-light)}.field input::placeholder,.field-input::placeholder{color:var(--t3)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.25rem;justify-content:flex-end}.review-hint{font-size:.8rem;color:var(--t3);margin:0 0 .875rem}.review-list{list-style:none;padding:0;margin:0 0 .875rem;display:flex;flex-direction:column;gap:.5rem}.review-row{display:flex;align-items:center;gap:.375rem}.review-item{flex:1;min-width:0;padding:.5rem .6rem;border-radius:var(--r-sm);border:1.5px solid var(--border);font:inherit;font-size:.875rem;color:var(--t1);outline:none}.review-item:focus{border-color:var(--green)}.review-qty{width:4.5rem;flex-shrink:0;padding:.5rem .4rem;border-radius:var(--r-sm);border:1.5px solid var(--border);font:inherit;font-size:.8rem;color:var(--t1);outline:none}.review-qty:focus{border-color:var(--green)}.inline-num{width:4.5rem;flex-shrink:0;padding:.5rem .4rem;border-radius:var(--r-sm);border:1.5px solid var(--border);font:inherit;font-size:.875rem;text-align:right;color:var(--t1);outline:none}.inline-num:focus{border-color:var(--green)}.voice-sheet-backdrop{position:fixed;inset:0;background:#00000059;z-index:var(--token-z-modal);animation:backdropIn .2s ease forwards}.voice-sheet{position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-radius:var(--r-xl) var(--r-xl) 0 0;box-shadow:var(--sh-modal);z-index:calc(var(--token-z-modal) + 1);padding:0 1.25rem max(1rem,env(safe-area-inset-bottom));animation:voiceSheetIn .28s cubic-bezier(.22,1,.36,1) forwards;max-width:26rem;margin:0 auto;display:flex;flex-direction:column}@keyframes voiceSheetIn{0%{transform:translateY(100%) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes voiceSheetOut{0%{transform:translateY(0) scale(1);opacity:1}to{transform:translateY(100%) scale(.98);opacity:0}}@keyframes backdropOut{0%{opacity:1}to{opacity:0}}.voice-sheet-exit{animation:voiceSheetOut .24s cubic-bezier(.4,0,1,1) forwards}.voice-sheet-backdrop-exit{animation:backdropOut .24s ease forwards}@keyframes voiceContentIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.voice-sheet-body{display:flex;flex-direction:column;gap:.625rem;padding:.375rem 0 0;animation:voiceContentIn .3s cubic-bezier(.22,1,.36,1) .06s both}.voice-sheet-header{display:flex;align-items:center;gap:.5rem}.voice-sheet-mic-icon{width:1rem;height:1rem;color:var(--t1);flex-shrink:0}.voice-sheet-rec-label{font-size:.8125rem;font-weight:500;color:var(--t1);letter-spacing:-.01em}.voice-sheet-timer{margin-left:auto;font-size:.6875rem;color:var(--t3);font-variant-numeric:tabular-nums}.voice-sheet-wave-row{display:flex;align-items:center;gap:.5rem;padding:.375rem 0}.voice-waveform{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-evenly;height:2.5rem}.voice-waveform-bar{width:3px;border-radius:1.5px;background:var(--t3);height:100%;transform:scaleY(var(--wave, .08));transform-origin:center;will-change:transform;transition:transform .12s ease-out}.voice-icon-btn{display:flex;align-items:center;justify-content:center;border-radius:50%;border:none;cursor:pointer;flex-shrink:0;transition:background .15s,transform .1s,opacity .15s;-webkit-tap-highlight-color:transparent}.voice-icon-btn:active{transform:scale(.9)}.voice-icon-btn:disabled{opacity:.35;cursor:default}.voice-icon-btn-stop{width:2.25rem;height:2.25rem;background:var(--token-color-surface-alt);color:var(--t1)}.voice-icon-btn-stop:hover:not(:disabled){background:var(--token-color-divider-soft)}.voice-icon-btn-send{width:2.25rem;height:2.25rem;background:var(--token-color-positive);color:#fff}.voice-icon-btn-send:hover:not(:disabled){background:var(--token-color-positive-dark)}.voice-sheet-pill-row{display:flex;gap:.625rem;margin-top:.25rem;animation:voiceContentIn .3s cubic-bezier(.22,1,.36,1) .14s both}.voice-pill{flex:1;display:flex;align-items:center;justify-content:center;gap:.375rem;padding:.625rem 0;border:none;border-radius:var(--r-full);font:inherit;font-size:.8125rem;font-weight:500;cursor:pointer;transition:background .15s,transform .1s;-webkit-tap-highlight-color:transparent}.voice-pill:active{transform:scale(.97)}.voice-pill-cancel{background:var(--token-color-surface-alt);color:var(--t2)}.voice-pill-cancel:hover,.voice-pill-manual{background:var(--token-color-divider-soft);color:var(--t1)}.voice-pill-manual:hover{background:var(--token-color-divider-focus)}.voice-pill-x{font-size:.75rem;line-height:1}.voice-sheet-eval{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.625rem;padding:1.75rem 0 1.5rem;animation:voiceContentIn .3s cubic-bezier(.22,1,.36,1) .06s both}.voice-sheet-eval-row{display:flex;align-items:center;gap:.5rem}.voice-eval-spinner{width:.875rem;height:.875rem;border-width:2px;flex-shrink:0}.voice-sheet-eval-label{font-size:.875rem;font-weight:500;color:var(--t2)}.voice-sheet-eval-hint{font-size:.75rem;color:var(--t3);text-align:center}.voice-result-slide{animation:resultSlideUp .25s ease-out}@keyframes resultSlideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.voice-result-item{position:relative;padding:var(--token-space-sm) 0;border-bottom:1px solid var(--border)}.voice-result-item:last-of-type{border-bottom:none}.voice-result-item-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--token-space-xs)}.voice-result-item-num{font-size:.75rem;font-weight:600;color:var(--t3);text-transform:uppercase;letter-spacing:.04em}.voice-result-item-num:before{content:"Item "}.voice-result-remove{background:none;border:none;color:var(--t3);font-size:1.25rem;line-height:1;cursor:pointer;padding:0 var(--token-space-xs);transition:color .15s}.voice-result-remove:hover{color:var(--token-color-negative)}.voice-result-add{background:none;border:1.5px dashed var(--border);border-radius:var(--r-md);color:var(--t2);font:inherit;font-size:.8125rem;padding:var(--token-space-xs) var(--token-space-sm);cursor:pointer;width:100%;text-align:center;margin:var(--token-space-sm) 0 var(--token-space-md);transition:border-color .15s,color .15s}.voice-result-add:hover{border-color:var(--green);color:var(--green)}.voice-result-empty{color:var(--t3);font-size:.875rem;text-align:center;padding:var(--token-space-md) 0}.food-list{display:flex;flex-direction:column;gap:0}.food-header{display:grid;grid-template-columns:1fr 76px 28px;gap:var(--token-space-sm);padding:0 2px var(--token-space-xs)}.food-header span{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--t3)}.food-row{display:grid;grid-template-columns:1fr 76px 28px;gap:var(--token-space-sm);align-items:center;padding:var(--token-space-xxs) 0;animation:foodRowIn .18s ease-out}.food-row+.food-row{border-top:1px solid var(--token-color-divider-soft)}.food-input{width:100%;padding:6px 8px;border:none;border-bottom:1.5px solid var(--border);border-radius:0;background:transparent;font:inherit;font-size:.875rem;color:var(--t1);outline:none;transition:border-color .15s ease}.food-input:focus{border-bottom-color:var(--green);box-shadow:0 1px 0 0 var(--green)}.food-input::placeholder{color:var(--t3)}.food-input-cal{text-align:right;font-variant-numeric:tabular-nums}.food-remove-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--r-sm);background:transparent;color:var(--t3);font-size:1.125rem;line-height:1;cursor:pointer;transition:color .15s ease,background .15s ease;padding:0;flex-shrink:0}.food-remove-btn:hover{color:var(--token-color-negative);background:var(--token-color-negative-ghost)}.food-remove-btn:focus-visible{outline:2px solid var(--green);outline-offset:1px}.food-add-btn{display:flex;align-items:center;gap:var(--token-space-xs);background:none;border:1.5px dashed var(--border);border-radius:var(--r-md);color:var(--t2);font:inherit;font-size:.8125rem;font-weight:600;padding:6px 12px;margin-top:var(--token-space-sm);cursor:pointer;transition:border-color .15s ease,color .15s ease;width:100%;justify-content:center}.food-add-btn:hover{border-color:var(--green);color:var(--green)}.food-add-btn:focus-visible{outline:2px solid var(--green);outline-offset:1px}.food-total{display:flex;justify-content:flex-end;align-items:center;gap:var(--token-space-xs);padding:var(--token-space-sm) 2px 0;font-size:.75rem;font-weight:600;color:var(--t2);font-variant-numeric:tabular-nums}.food-total-value{color:var(--t1);font-weight:700}@keyframes foodRowIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.voice-card{max-width:24rem}.pulse{animation:pulse 1.4s ease-in-out infinite}.transcript{font-size:.9375rem;color:var(--t2);min-height:2.5rem;line-height:1.5}.history-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.history-row{display:flex;align-items:center;gap:.875rem;padding:.875rem 1rem;background:var(--surface);border-radius:var(--r-md);border:1px solid var(--token-color-divider-soft);box-shadow:var(--sh-xs);cursor:pointer;width:100%;text-align:left;font:inherit;color:inherit;-webkit-tap-highlight-color:transparent;transition:transform .1s ease,background .12s ease;animation:slideUp .18s ease backwards}button.history-row{border-bottom:none}.history-row:active{transform:scale(.98);background:var(--surface-2)}.history-date-badge{min-width:2.875rem;text-align:center;flex-shrink:0}.history-date-day{font-size:1.375rem;font-weight:800;letter-spacing:-.03em;color:var(--t1);line-height:1;display:block}.history-date-dow{font-size:.6rem;font-weight:600;color:var(--t3);text-transform:uppercase;letter-spacing:.08em;display:block;margin-top:.1rem}.history-divider{width:1px;height:2rem;background:var(--border);flex-shrink:0}.history-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.35rem}.history-bar-row{display:flex;align-items:center;gap:.5rem}.history-bar-track{flex:1;height:5px;background:var(--surface-2);border-radius:var(--r-full);overflow:hidden}.history-bar-fill{height:100%;border-radius:var(--r-full);background:var(--green);transition:width .4s ease;min-width:2px}.history-bar-fill.over{background:var(--red)}.history-bar-num{font-size:.6875rem;font-weight:700;color:var(--t2);white-space:nowrap;flex-shrink:0;min-width:3rem;text-align:right}.history-meta{font-size:.7rem;color:var(--t3);display:flex;gap:.5rem}.history-remaining{font-size:.7rem;color:var(--t3)}.history-remaining.over{color:var(--red);font-weight:600}.history-chevron{color:var(--t3);font-size:.8rem;flex-shrink:0}.history-nums{font-size:.8125rem;color:var(--t3)}.skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,var(--token-color-white) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--r-sm)}.skeleton-line{height:.875rem;margin-bottom:.5rem;border-radius:var(--r-full)}.skeleton-card{height:4.5rem;border-radius:var(--r-md);margin-bottom:.375rem}.spinner{width:1.375rem;height:1.375rem;border:2.5px solid var(--border);border-top-color:var(--green);border-radius:50%;animation:spin .6s linear infinite;margin:0 auto}.page.settings{padding-bottom:1.5rem}.settings-section{background:var(--surface);border-radius:var(--r-lg);border:1px solid var(--token-color-divider-soft);box-shadow:var(--sh-sm);overflow:hidden;margin-bottom:.875rem}.settings-section-head{padding:.875rem 1.125rem 0;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--t3)}.settings-section-body{padding:.75rem 1.125rem 1.125rem;display:flex;flex-direction:column;gap:.875rem}.profile-fields-grid{display:flex;flex-direction:column;gap:.875rem}.pf-row{display:grid;grid-template-columns:1fr;gap:.75rem}.pf-row.pf-two-col{grid-template-columns:1fr 1fr}.suggestion-bar{display:flex;align-items:center;justify-content:space-between;gap:.625rem;padding:.5625rem .75rem;background:var(--token-color-positive-ghost, #0a1f18);border-radius:var(--r-sm);border:1px solid var(--token-color-positive-border, #0d3d2b)}.suggestion-bar .sg-text{font-size:.78rem;color:var(--t2);line-height:1.3}.suggestion-bar .sg-text strong{color:var(--t1);font-weight:700}.suggestion-bar .sg-right{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.suggestion-bar .sg-synced{font-size:.6rem;font-weight:700;color:var(--green);text-transform:uppercase;letter-spacing:.04em}.suggestion-bar .sg-apply{background:var(--token-color-positive-border, #0d3d2b);border:1px solid var(--token-color-positive-dark, #0b7a54);border-radius:6px;padding:.3125rem .75rem;font-size:.72rem;font-weight:600;color:var(--green);cursor:pointer;font-family:inherit;white-space:nowrap;transition:background .15s}.suggestion-bar .sg-apply:hover:not(:disabled){background:var(--token-color-positive-dark, #0b7a54);color:#fff}.suggestion-bar .sg-apply:disabled{opacity:.45;cursor:default}.settings-danger-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.875rem 1.125rem;background:var(--surface);border-radius:var(--r-lg);border:1px solid var(--token-color-divider-soft);margin-bottom:.875rem}.settings-danger-left{display:flex;flex-direction:column;gap:.125rem;min-width:0}.settings-danger-title{font-size:.78rem;font-weight:600;color:var(--t2)}.settings-danger-sub{font-size:.68rem;color:var(--t3);line-height:1.3}.btn-settings-danger{background:transparent;color:var(--red);border:1px solid var(--token-color-negative-border, #3b1111);border-radius:var(--r-sm);padding:.4375rem .875rem;font-size:.75rem;font-weight:600;font-family:inherit;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .15s,border-color .15s}.btn-settings-danger:hover{background:var(--red-ll);border-color:var(--red)}.onboarding h1{margin-top:0}.page.onboarding{min-height:auto;padding-bottom:calc(1rem + env(safe-area-inset-bottom))}.step-indicator{display:flex;gap:.375rem;margin-bottom:1.75rem}.step-dot{height:3px;border-radius:var(--r-full);background:var(--border);flex:1;transition:background .3s ease}.step-dot.active{background:var(--green)}.onboarding-hero-icon{font-size:2.25rem;line-height:1;margin-bottom:.25rem}.error{color:var(--red);font-size:.875rem}.hint{color:var(--t3);font-size:.8125rem}.hint.small{font-size:.75rem}.lede{color:var(--t2);line-height:1.65}.bullets{padding-left:1.25rem;color:var(--t2)}.disclaimer{font-size:.8rem;color:var(--t3)}.disclaimer.small{margin-top:.5rem;font-size:.68rem;text-align:center;opacity:.5}.suggested{margin:.5rem 0 1rem}.review-hint.small{font-size:.8rem}.smart-summary{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--sh-md);border:1px solid var(--border);padding:.75rem .75rem .625rem;margin-bottom:.75rem;display:flex;flex-direction:column;align-items:center;gap:.375rem}.status-chip{display:inline-flex;align-items:center;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.2rem .625rem;border-radius:var(--r-full)}.status-chip.on-track{background:var(--green-l);color:var(--green-d)}.status-chip.over{background:var(--red-l);color:var(--red-d)}.status-chip.under{background:var(--surface-3);color:var(--t3)}.calorie-ring{position:relative;display:inline-flex;align-items:center;justify-content:center}.calorie-ring svg{display:block}.calorie-ring-progress{transition:stroke-dashoffset .7s cubic-bezier(.4,0,.2,1),stroke .3s ease}.calorie-ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.calorie-ring-number{font-size:1.75rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.04em;line-height:1;color:var(--t1);display:block;min-width:4ch;text-align:center}.calorie-ring-number.over{color:var(--red)}.calorie-ring-label{font-size:.5625rem;font-weight:600;color:var(--t3);text-transform:uppercase;letter-spacing:.06em;margin-top:.1rem;display:block}.insight-text{font-size:.75rem;color:var(--t2);text-align:center;margin:0;line-height:1.4;max-width:22rem}.predictive-text{font-size:.6875rem;font-weight:500;color:var(--t3);text-align:center;margin:-.125rem 0 0;line-height:1.4;max-width:22rem}.stats-row{display:flex;align-items:center;justify-content:center;gap:0;width:100%;padding-top:.25rem}.stat-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:.1rem}.stat-value{font-size:.9375rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--t1);line-height:1.1}.stat-label{font-size:.5625rem;font-weight:600;color:var(--t3);text-transform:uppercase;letter-spacing:.07em}.stats-divider{width:1px;height:1.5rem;background:var(--border);opacity:.6;flex-shrink:0}.daily-score{display:flex;align-items:center;justify-content:space-between;background:var(--surface);border-radius:var(--r-sm);padding:.75rem .875rem .75rem 1rem;box-shadow:var(--sh-xs);border:1px solid var(--token-color-divider-soft);margin-bottom:.75rem;gap:.5rem}.daily-score-left{flex:1;min-width:0;display:flex;flex-direction:column;gap:.35rem}.daily-score-info{display:flex;align-items:baseline;gap:.5rem}.daily-score-title{font-size:.75rem;font-weight:700;color:var(--t2);text-transform:uppercase;letter-spacing:.06em}.daily-score-label{font-size:.6875rem;color:var(--t3);font-weight:500}.daily-score-reason{font-size:.75rem;color:var(--t2);font-weight:500;line-height:1.4}.daily-score-number{font-size:1.5rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.03em;line-height:1;flex-shrink:0}.score-segments{display:flex;gap:.5rem}.score-segment{display:flex;flex-direction:column;gap:.125rem;flex:1}.score-segment-track{height:3px;background:var(--surface-3);border-radius:var(--r-full);overflow:hidden}.score-segment-fill{height:100%;border-radius:var(--r-full);transition:width .6s cubic-bezier(.4,0,.2,1);min-width:1px}.score-segment-label{font-size:.5625rem;font-weight:600;color:var(--t3);text-transform:uppercase;letter-spacing:.05em}.timeline{display:flex;flex-direction:column;gap:.625rem;margin-bottom:1rem}.timeline-card{background:var(--surface);border-radius:var(--r-md);box-shadow:var(--sh-xs);border:1px solid var(--token-color-divider-soft);overflow:hidden}.timeline-card-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem .375rem}.timeline-card-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--t3)}.timeline-list{display:flex;flex-direction:column}.timeline-item{display:flex;align-items:center;gap:.625rem;padding:.625rem .875rem;background:none;border:none;border-top:1px solid var(--border);cursor:pointer;width:100%;text-align:left;font:inherit;color:inherit;-webkit-tap-highlight-color:transparent;transition:background .12s ease;animation:slideUp .15s ease backwards}.timeline-item:hover{background:var(--surface-2)}.timeline-item:active{background:var(--surface-3)}.timeline-time{font-size:.6875rem;font-weight:500;font-variant-numeric:tabular-nums;color:var(--t3);display:none;flex-shrink:0}.timeline-item:focus .timeline-time{display:inline}.timeline-emoji{font-size:1rem;line-height:1;flex-shrink:0;width:1.5rem;text-align:center}.timeline-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:.05rem}.timeline-title{font-size:.9375rem;font-weight:600;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-subtitle{font-size:.75rem;color:var(--t3);line-height:1.3}.timeline-cal{font-size:.9375rem;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;min-width:3rem;text-align:right}.timeline-cal.food{color:var(--green-d)}.timeline-cal.burn{color:var(--blue-d)}.timeline-skeleton{display:flex;flex-direction:column;gap:.375rem;min-height:14rem}.day-view-loading-shell{display:flex;flex-direction:column;gap:.75rem}.day-view-loading-summary{height:11.5rem;margin-bottom:0}.history-list-shell{min-height:34rem}.empty-state-v2{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.5rem 1.75rem;text-align:center;margin-bottom:1rem}.empty-illustration{margin-bottom:.75rem;opacity:.8}.empty-state-title{font-size:1rem;font-weight:700;color:var(--t1);margin:0 0 .25rem}.empty-state-sub{font-size:.8125rem;color:var(--t3);margin:0 0 1rem;line-height:1.5}.quick-add-chips{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.quick-add-chip{display:inline-flex;align-items:center;font-family:inherit;font-size:.8125rem;font-weight:600;color:var(--green-d);background:var(--green-l);border:none;padding:.425rem .875rem;border-radius:var(--r-full);cursor:pointer;transition:background .15s,transform .1s;-webkit-tap-highlight-color:transparent}.quick-add-chip:hover{background:var(--token-color-positive-hover)}.quick-add-chip:active{transform:scale(.95)}.floating-bar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:28rem;display:flex;gap:.625rem;padding:.75rem 1rem calc(.75rem + env(safe-area-inset-bottom));background:#0f1117cc;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--token-color-divider-soft);z-index:50}.floating-bar-inner{width:100%;display:flex;gap:.625rem;animation:floatingBarIn .25s ease}@media(prefers-reduced-motion:reduce),(update:slow){.floating-bar{background:var(--surface);backdrop-filter:none;-webkit-backdrop-filter:none}.floating-bar-inner{animation:none}}.floating-btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border-radius:var(--r-lg);font-family:inherit;font-weight:700;font-size:.9375rem;line-height:1;border:none;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .12s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease,background .15s ease;min-height:2.875rem}.floating-btn:active:not(:disabled){transform:scale(.94)}.floating-btn:disabled{opacity:.4;cursor:not-allowed}.floating-btn.primary{flex:1;background:linear-gradient(135deg,var(--green) 0%,var(--green-d) 100%);color:var(--token-color-white);box-shadow:var(--token-shadow-floating-primary)}.floating-btn.primary:hover:not(:disabled){box-shadow:var(--token-shadow-floating-primary-hover)}.floating-btn.secondary{flex:1;background:var(--surface);color:var(--t2);border:1.5px solid var(--border);box-shadow:var(--sh-xs)}.floating-btn.secondary:hover:not(:disabled){background:var(--surface-2);border-color:var(--token-color-divider-hover)}.error-banner{display:flex;align-items:flex-start;gap:.625rem;background:var(--red-ll);border:1px solid var(--token-color-negative-border);border-left:3px solid var(--red);border-radius:var(--r-md);padding:.75rem .875rem;margin-bottom:1rem}.error-banner-icon{font-size:1rem;line-height:1;flex-shrink:0}.error-banner-body{flex:1;min-width:0}.error-banner-msg{margin:0 0 .5rem;font-size:.8125rem;color:var(--token-color-negative-text);line-height:1.5;word-break:break-word}.error-banner-retry{background:var(--red);color:var(--token-color-white);box-shadow:none;font-size:.75rem;min-height:1.75rem;padding:.3rem .7rem}.error-banner-close{background:none;border:none;cursor:pointer;color:var(--token-color-negative-text);font-size:1rem;line-height:1;padding:0;flex-shrink:0;opacity:.7}.entry-sheet-backdrop{position:fixed;inset:0;background:#00000059;z-index:var(--token-z-modal);animation:backdropIn .2s ease forwards}.entry-sheet-backdrop-exit{animation:backdropOut .24s ease forwards}.entry-sheet{position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-radius:var(--r-xl) var(--r-xl) 0 0;box-shadow:var(--sh-modal);z-index:calc(var(--token-z-modal) + 1);padding:0 1.25rem max(1rem,env(safe-area-inset-bottom));animation:voiceSheetIn .28s cubic-bezier(.22,1,.36,1) forwards;max-width:26rem;margin:0 auto;display:flex;flex-direction:column;max-height:90dvh;overflow-y:auto;overscroll-behavior:contain}.entry-sheet-exit{animation:voiceSheetOut .24s cubic-bezier(.4,0,1,1) forwards}.entry-sheet-body{display:flex;flex-direction:column;padding:.25rem 0 0;animation:voiceContentIn .3s cubic-bezier(.22,1,.36,1) .06s both}.entry-sheet-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}.entry-sheet-icon{width:2.625rem;height:2.625rem;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0}.entry-sheet-icon.food{background:var(--green-l)}.entry-sheet-icon.burn{background:var(--blue-l)}.entry-sheet-header-text{display:flex;flex-direction:column;gap:.1rem}.entry-sheet-title{font-size:1.125rem;font-weight:700;letter-spacing:-.02em;color:var(--t1);margin:0;line-height:1.2}.entry-sheet-subtitle{font-size:.75rem;color:var(--t3);margin:0;line-height:1.3}.entry-sheet-field{display:flex;flex-direction:column;gap:.375rem;margin-bottom:1rem;animation:voiceContentIn .3s cubic-bezier(.22,1,.36,1) .1s both}.entry-sheet-field:nth-child(4){animation-delay:.14s}.entry-sheet-field:nth-child(5){animation-delay:.18s}.entry-sheet-field-label{font-size:.6875rem;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.05em}.entry-sheet-input{padding:.75rem 1rem;border-radius:var(--r-md);border:1.5px solid var(--border);font:inherit;font-size:.9375rem;color:var(--t1);background:var(--surface-2);outline:none;transition:border-color .15s,box-shadow .15s,background .15s;-webkit-appearance:none}.entry-sheet-input:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--token-color-positive-light);background:var(--surface)}.entry-sheet-input.blue-focus:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--token-color-info-light)}.entry-sheet-input::placeholder{color:var(--t3)}.entry-sheet-cal-wrap{position:relative;display:flex;align-items:center}.entry-sheet-cal-wrap .entry-sheet-input{width:100%;padding-right:3.5rem;font-variant-numeric:tabular-nums}.entry-sheet-cal-suffix{position:absolute;right:1rem;font-size:.75rem;font-weight:600;color:var(--t3);pointer-events:none;letter-spacing:.02em}.entry-chip-grid{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.875rem;animation:voiceContentIn .3s cubic-bezier(.22,1,.36,1) .1s both}.entry-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.45rem .8rem;border-radius:var(--r-full);border:1.5px solid var(--border);background:var(--surface-2);color:var(--t2);font:inherit;font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .18s ease;-webkit-tap-highlight-color:transparent}.entry-chip:hover{border-color:var(--blue);color:var(--t1);background:var(--token-color-info-light)}.entry-chip:active{transform:scale(.94)}.entry-chip.active{background:var(--blue);color:var(--token-color-white);border-color:var(--blue);box-shadow:var(--token-shadow-info)}.entry-chip-emoji{font-size:.8125rem;line-height:1}.entry-sheet-or{display:flex;align-items:center;gap:.75rem;margin-bottom:.875rem;animation:voiceContentIn .3s cubic-bezier(.22,1,.36,1) .14s both}.entry-sheet-or:before,.entry-sheet-or:after{content:"";flex:1;height:1px;background:var(--border)}.entry-sheet-or-text{font-size:.625rem;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.08em}.entry-sheet-actions{display:flex;gap:.5rem;margin-top:.375rem;padding-bottom:.25rem;animation:voiceContentIn .3s cubic-bezier(.22,1,.36,1) .2s both}.entry-sheet-pill{flex:1;display:flex;align-items:center;justify-content:center;gap:.375rem;padding:.75rem 0;border:none;border-radius:var(--r-full);font:inherit;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s,transform .1s,box-shadow .15s;-webkit-tap-highlight-color:transparent}.entry-sheet-pill:active:not(:disabled){transform:scale(.96)}.entry-sheet-pill:disabled{opacity:.42;cursor:not-allowed}.entry-sheet-pill.save-food{background:var(--green);color:var(--token-color-white);box-shadow:var(--token-shadow-positive)}.entry-sheet-pill.save-food:hover:not(:disabled){background:var(--green-d);box-shadow:var(--token-shadow-positive-hover)}.entry-sheet-pill.save-burn{background:var(--blue);color:var(--token-color-white);box-shadow:var(--token-shadow-info)}.entry-sheet-pill.save-burn:hover:not(:disabled){background:var(--blue-d)}.entry-sheet-pill.cancel{background:var(--token-color-surface-alt);color:var(--t2)}.entry-sheet-pill.cancel:hover{background:var(--token-color-divider-soft);color:var(--t1)}.entry-sheet-pill.delete{flex:.65;background:var(--red-ll);color:var(--red)}.entry-sheet-pill.delete:hover{background:var(--red-l)}
