:root{--bg:#eef3f2;--bg-a:#d9efe9;--bg-b:#e6e2f6;--bg-c:#fbe9dc;--card:#ffffffe0;--card-solid:#fff;--text:#1b2430;--muted:#5b6472;--separator:#1b243014;--field:#1b24300f;--bar:#fafbfbf0;--danger:#c83a3a;--warning:#9a5b00;--shadow:0 1px 2px #1b24300f, 0 6px 18px #1b24300f;--teal:#0b5d57;--teal-2:#13968a;--teal-soft:#0b5d571a;--amber:#a8650b;--amber-2:#d9822b;--amber-soft:#b8730f1f;--indigo:#4b4fb8;--indigo-2:#6d7fd6;--indigo-soft:#4b4fb81a;--rose:#b23a72;--rose-2:#d1563f;--rose-soft:#c2417c1a;--protein:#2f6fdb;--carbs:#e08a1e;--fat:#c2417c;--b0:#e3e4f8;--b1:#b7b9ef;--b2:#6d70d6;--b3:#3b3e9e;--b-text:#1b2430;--b-text-strong:#fff;--accent:var(--teal);--accent-2:var(--teal-2);--accent-soft:var(--teal-soft);--accent-strong:#063c38;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif;font-size:17px}@media (prefers-color-scheme:dark){:root{--bg:#0f1420;--bg-a:#0f2a2a;--bg-b:#1b1d3d;--bg-c:#2a1a2a;--card:#1e2534db;--card-solid:#1e2534;--text:#eef1f6;--muted:#a3abba;--separator:#ffffff14;--field:#ffffff14;--bar:#141924f0;--danger:#ff7a7a;--warning:#f0b44f;--shadow:0 1px 2px #0000004d, 0 6px 18px #00000040;--teal:#3cc2b4;--teal-2:#62d6c9;--teal-soft:#3cc2b424;--amber:#f0b44f;--amber-2:#f6b77a;--amber-soft:#f0b44f24;--indigo:#9a9df2;--indigo-2:#a9b6f7;--indigo-soft:#9a9df224;--rose:#ef8bb6;--rose-2:#f59a86;--rose-soft:#ef8bb624;--protein:#6ea0f5;--carbs:#f0a94a;--fat:#e477a8;--b0:#232647;--b1:#3c3f86;--b2:#7b7fe6;--b3:#c3c5f7;--b-text:#eef1f6;--b-text-strong:#0f1420;--accent-strong:#a8efe6}}:root[data-tab=foods]{--accent:var(--amber);--accent-2:var(--amber-2);--accent-soft:var(--amber-soft)}:root[data-tab=history]{--accent:var(--indigo);--accent-2:var(--indigo-2);--accent-soft:var(--indigo-soft)}:root[data-tab=more]{--accent:var(--rose);--accent-2:var(--rose-2);--accent-soft:var(--rose-soft)}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;margin:0}button,input,select,textarea{font:inherit;color:inherit}.content{padding-bottom:calc(env(safe-area-inset-bottom) + 70px)}.nav-bar{z-index:10;padding:calc(env(safe-area-inset-top) + 8px) 12px 8px;background:var(--bar);-webkit-backdrop-filter:blur(20px);grid-template-columns:1fr auto 1fr;align-items:center;min-height:44px;display:grid;position:sticky;top:0}.nav-side{display:flex}.nav-side.right{justify-content:flex-end}.nav-title{text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:60vw;margin:0;font-size:17px;font-weight:600;overflow:hidden}.large-title{margin:0;padding:4px 16px 8px;font-size:32px;font-weight:700}.screen-body{max-width:640px;margin:0 auto;padding:0 16px 24px}.link{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:6px 4px}.link.strong{font-weight:600}.muted{color:var(--muted)}.empty{text-align:center;color:var(--text);padding:48px 24px;line-height:1.5}.group-title{text-transform:uppercase;letter-spacing:.02em;color:var(--muted);margin:0 0 6px 16px;font-size:13px;font-weight:400}.group-body{background:var(--card);border-radius:12px;overflow:hidden}.group-footer{color:var(--muted);margin:6px 16px 0;font-size:13px;line-height:1.35}.group-footer.center{text-align:center}.row{text-align:left;border:0;border-bottom:1px solid var(--separator);background:0 0;align-items:center;gap:12px;width:100%;min-height:44px;padding:10px 16px;display:flex}.group-body>:last-child{border-bottom:0}button.row{cursor:pointer}button.row:active{background:var(--field)}.row-main{flex:1;min-width:0}.row-title{text-overflow:ellipsis;overflow:hidden}.row-subtitle{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:13px;overflow:hidden}.row-detail{color:var(--muted);text-align:right;white-space:nowrap}.chevron{color:var(--muted);font-size:20px;line-height:1}.ok-mark{color:var(--accent);font-weight:700}.todo-mark{color:var(--muted)}.search{top:calc(env(safe-area-inset-top) + 60px);z-index:5;background:var(--bg);padding:4px 0 8px;position:sticky}.search input{background:var(--card);border:0;border-radius:10px;outline:none;width:100%;padding:9px 12px}.field{border-bottom:1px solid var(--separator);flex-wrap:wrap;align-items:center;gap:4px 12px;padding:10px 16px;display:flex}.field-label{flex:none;min-width:7.5em}.field>input,.number-input input{text-align:right;background:0 0;border:0;outline:none;flex:1;min-width:0;padding:2px 0}.number-input{flex:1;justify-content:flex-end;align-items:baseline;gap:6px;display:flex}.number-input input{max-width:7em}.unit{color:var(--muted);min-width:2.2em;font-size:15px}.field-error,.field-warning{text-align:right;flex-basis:100%;font-size:13px}.field-error{color:var(--danger)}.field-warning{color:var(--warning)}.has-error .field-label{color:var(--danger)}.has-warning .field-label{color:var(--warning)}.field.toggle{justify-content:space-between}.field.toggle input{width:22px;height:22px;accent-color:var(--accent)}.form-summary{margin:0 16px;font-size:14px}.form-summary.error{color:var(--danger)}.form-summary.warning{color:var(--warning)}.segmented{background:var(--field);border-radius:9px;gap:2px;margin:12px 0;padding:2px;display:flex}.group-body .segmented{margin:10px 16px}.segmented button{cursor:pointer;background:0 0;border:0;border-radius:7px;flex:1;padding:6px 4px;font-size:14px}.segmented button.on{background:var(--card);font-weight:600;box-shadow:0 1px 3px #0000001f}.button{background:var(--card);width:100%;color:var(--accent);cursor:pointer;border:0;border-radius:12px;padding:13px;font-weight:600;display:block}.button.primary{background:var(--accent);color:#fff}.button.destructive{color:var(--danger)}.button.plain{background:0 0;font-weight:400}.button.block{margin:20px 0 0}.detail-head{padding:12px 4px 0}.detail-head h2{margin:0;font-size:24px}.detail-head p{margin:4px 0 0}.tab-bar{z-index:20;padding:6px 0 calc(env(safe-area-inset-bottom) + 4px);background:var(--bar);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--separator);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tab-bar button{color:var(--muted);cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:2px;padding:4px 0;font-size:11px;display:flex}.tab-icon{font-size:20px;line-height:24px}.sheet-backdrop{z-index:40;background:#00000059;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{width:100%;max-width:640px;padding:20px 16px calc(env(safe-area-inset-bottom) + 16px);background:var(--bg);border-radius:16px 16px 0 0;gap:8px;margin:0 auto;display:grid}.sheet h3{text-align:center;margin:0}.sheet p{text-align:center;color:var(--muted);margin:0 0 8px;line-height:1.4}.toast{left:16px;right:16px;bottom:calc(env(safe-area-inset-bottom) + 76px);z-index:30;color:#fff;background:#2c2c2e;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;max-width:600px;margin:0 auto;padding:12px 16px;display:flex;position:fixed;box-shadow:0 4px 16px #00000040}.toast .link{color:#6fb0ff;font-weight:600}.overlay{z-index:35;background:var(--bg);padding-bottom:calc(env(safe-area-inset-bottom) + 24px);position:fixed;inset:0;overflow-y:auto}.overlay .search{top:calc(env(safe-area-inset-top) + 60px)}.chips{flex-wrap:wrap;gap:8px;padding:12px 16px;display:flex}.group>.chips{padding:0 0 4px}.chip{border:1px solid var(--separator);background:var(--card);cursor:pointer;border-radius:999px;padding:7px 14px;font-size:15px}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.error-text{color:var(--danger)}.add-row{color:var(--accent);justify-content:center;font-weight:600}.field input[type=date]{text-align:right;background:0 0;border:0;outline:none;flex:1;min-height:1.4em}.ingredient{border-bottom:1px solid var(--separator);padding:10px 16px}.ingredient.has-error .amount{box-shadow:inset 0 0 0 1.5px var(--danger)}.ingredient-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.ingredient-name{flex:1}.icon-button{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:2px 4px}.ingredient-bottom{align-items:center;gap:10px;margin-top:8px;display:flex}.ingredient-bottom .amount{background:var(--field);text-align:right;border:0;border-radius:8px;outline:none;width:6.5em;padding:7px 10px}.ingredient-bottom .segmented{flex:0 auto;min-width:7em;margin:0}.ingredient-bottom .segmented button{padding:6px 10px}.ingredient-hint{color:var(--muted);margin-top:6px;font-size:13px}.ingredient-kcal{text-align:right;color:var(--muted);flex:1}.totals-card{background:var(--card);border-radius:12px;margin:16px 0;padding:14px 16px}.totals-kcal{font-size:28px;font-weight:700}.totals-kcal span{color:var(--muted);font-size:15px;font-weight:400}.small{margin-top:4px;font-size:13px}.date-line{margin:-4px 4px 0}.share-row{border-bottom:1px solid var(--separator);padding:10px 16px}.share-top{justify-content:space-between;gap:8px;display:flex}.share-pct{font-variant-numeric:tabular-nums;font-weight:600}.share-bar{background:var(--field);border-radius:3px;height:6px;margin:6px 0 4px;overflow:hidden}.share-bar span{background:var(--accent);border-radius:3px;height:100%;display:block}.tag{background:var(--field);color:var(--muted);border-radius:6px;margin-left:8px;padding:1px 6px;font-size:12px}.sheet-input{background:var(--card);text-align:left;border:0;border-radius:10px;outline:none;width:100%;padding:10px 12px}.day-card{background:var(--card);border-radius:16px;justify-items:center;gap:18px;margin:12px 0 16px;padding:18px 16px;display:grid}.ring{position:relative}.ring-track{stroke:var(--field)}.ring-fill{stroke:var(--accent)}.ring-over{stroke:var(--accent-strong)}.ring-center{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.ring-value{font-variant-numeric:tabular-nums;font-size:30px;font-weight:700}.ring-label{color:var(--muted);font-size:13px}.ring-pct{color:var(--accent);margin-top:2px;font-size:15px;font-weight:600}.ring-pct.over{color:var(--accent-strong)}.no-goal{text-align:center;gap:4px;display:grid}.bars{gap:12px;width:100%;display:grid}.bar-label{justify-content:space-between;gap:8px;font-size:15px;display:flex}.bar-numbers{color:var(--muted);font-variant-numeric:tabular-nums}.bar-numbers b{color:var(--text);font-weight:600}.bar-row.over .bar-numbers b{color:var(--accent-strong);font-weight:800}.bar-track{background:var(--field);border-radius:4px;height:8px;margin-top:5px;overflow:hidden}.bar-track span{background:var(--accent);border-radius:4px;height:100%;display:block}.bar-row.over .bar-track span{background:var(--accent-strong)}.banner{background:var(--card);text-align:left;cursor:pointer;width:100%;box-shadow:inset 4px 0 0 var(--accent);border:0;border-radius:12px;gap:2px;margin:12px 0 0;padding:12px 14px;display:grid}.banner span{color:var(--muted);font-size:14px}.month-nav{justify-content:space-between;align-items:center;margin:8px 0;display:flex}.month-nav h2{margin:0;font-size:18px}.month-nav .link{font-size:17px}.month-nav .link:disabled{opacity:.3}.calendar{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.cal-head{text-align:center;color:var(--muted);padding-bottom:2px;font-size:12px}.cal-day{aspect-ratio:1;color:var(--muted);font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:0;border-radius:10px;font-size:15px;position:relative}.cal-day:disabled{opacity:.35;cursor:default}.cal-day.today{box-shadow:inset 0 0 0 2px var(--text);color:var(--text);font-weight:600}.cal-day.logged,.swatch.logged{background:var(--card);color:var(--text)}.cal-day.logged:after{content:"";background:var(--muted);border-radius:50%;width:5px;height:5px;margin-left:-2.5px;position:absolute;bottom:7px;left:50%}.cal-day.b0,.swatch.b0{background:var(--b0);color:var(--b-text)}.cal-day.b1,.swatch.b1{background:var(--b1);color:var(--b-text)}.cal-day.b2,.swatch.b2{background:var(--b2);color:#fff}.cal-day.b3,.swatch.b3{background:var(--b3);color:var(--b-text-strong);font-weight:700}.legend{color:var(--muted);flex-wrap:wrap;gap:6px 14px;margin:12px 4px 0;font-size:13px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.swatch{width:14px;height:14px;box-shadow:inset 0 0 0 1px var(--separator);border-radius:4px;display:inline-block}.field select{text-align:right;text-align-last:right;color:var(--accent);background:0 0;border:0;flex:1}.scan-photo,.scan-reading img{object-fit:contain;background:var(--card);border-radius:12px;width:100%;max-height:260px;margin:12px 0;display:block}.scan-reading p{color:var(--muted);justify-content:center;align-items:center;gap:10px;display:flex}.spinner{border:2.5px solid var(--field);border-top-color:var(--accent);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.scan-problem{background:var(--card);box-shadow:inset 4px 0 0 var(--warning);border-radius:12px;margin:12px 0;padding:14px 16px}.scan-problem p{color:var(--muted);margin:6px 0}.scan-problem ul{color:var(--muted);margin:6px 0 0;padding-left:20px;font-size:14px;line-height:1.5}.paste-box{resize:vertical;width:100%;min-height:220px;font:inherit;background:0 0;border:0;outline:none;padding:12px 16px;font-size:15px;display:block}.review-head p{margin:0 4px;font-size:14px}.scan-detail{word-break:break-word;-webkit-user-select:text;user-select:text;font-family:ui-monospace,Menlo,monospace;font-size:12px}.backdrop{z-index:-1;pointer-events:none;background:var(--bg);position:fixed;inset:-20%;overflow:hidden}.backdrop i{filter:blur(60px);opacity:.85;will-change:transform;border-radius:50%;width:70vmax;height:70vmax;position:absolute}.backdrop i:first-child{background:var(--bg-a);animation:48s ease-in-out infinite alternate drift1;top:-10%;left:-10%}.backdrop i:nth-child(2){background:var(--bg-b);animation:62s ease-in-out infinite alternate drift2;top:20%;right:-15%}.backdrop i:nth-child(3){background:var(--bg-c);animation:55s ease-in-out infinite alternate drift3;bottom:-25%;left:10%}@keyframes drift1{to{transform:translate(18vw,22vh)scale(1.15)}}@keyframes drift2{to{transform:translate(-22vw,14vh)scale(.9)}}@keyframes drift3{to{transform:translate(14vw,-24vh)scale(1.1)}}@media (prefers-reduced-motion:reduce){.backdrop i{animation:none}}body{background:0 0}.large-title{letter-spacing:-.02em;color:var(--accent);padding-top:2px;font-size:34px}.nav-bar{background:var(--bar)}.page[aria-hidden=true] .nav-bar{-webkit-backdrop-filter:none}.group{margin:24px 0}.group-title{text-transform:none;letter-spacing:-.01em;color:var(--text);align-items:center;gap:8px;margin:0 0 8px 4px;font-size:19px;font-weight:700;display:flex}.group-body{box-shadow:var(--shadow);border-radius:16px}.dot{border-radius:50%;flex:none;width:10px;height:10px}.totals-card,.day-card,.banner,.scan-problem{box-shadow:var(--shadow);border-radius:18px}.search input{box-shadow:var(--shadow);border-radius:14px;padding:11px 14px}.search{background:0 0}.button{box-shadow:var(--shadow);border-radius:16px}.button.primary{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;padding:15px;font-size:18px}@media (prefers-color-scheme:dark){.button.primary{color:#0f1420}}.link{color:var(--accent)}.chip.on{background:var(--accent);border-color:var(--accent)}@media (prefers-color-scheme:dark){.chip.on{color:#0f1420}}.bar-row[data-key=protein] .bar-track span{background:var(--protein)}.bar-row[data-key=carbs] .bar-track span{background:var(--carbs)}.bar-row[data-key=fat] .bar-track span{background:var(--fat)}.bar-row.over .bar-track span{filter:saturate(1.2)brightness(.8)}@media (prefers-color-scheme:dark){.bar-row.over .bar-track span{filter:saturate(1.1)brightness(1.25)}}.bar-label .key{align-items:center;gap:8px;font-weight:600;display:inline-flex}.cal-day.b2{color:#fff}@media (prefers-color-scheme:dark){.cal-day.b2{color:#0f1420}}.actions{grid-template-columns:1fr 1fr;gap:12px;margin:16px 0 8px;display:grid}.action{text-align:left;cursor:pointer;box-shadow:var(--shadow);border:0;border-radius:18px;flex-direction:column;align-items:flex-start;gap:10px;padding:16px;display:flex}.action svg{width:30px;height:30px}.action b{font-size:18px}.action span{opacity:.9;font-size:13px;line-height:1.3}.action.primary{background:linear-gradient(135deg, var(--amber), var(--amber-2));color:#fff}@media (prefers-color-scheme:dark){.action.primary{color:#0f1420}}.action.secondary{background:var(--card);color:var(--text);box-shadow:var(--shadow), inset 0 0 0 2px var(--amber-soft)}.action.secondary svg{color:var(--amber)}.browse{gap:12px;margin:20px 0;display:grid}.tile{background:var(--card);width:100%;box-shadow:var(--shadow);text-align:left;cursor:pointer;border:0;border-radius:18px;align-items:center;gap:14px;padding:16px;display:flex}.tile .badge{border-radius:14px;flex:none;place-items:center;width:46px;height:46px;display:grid}.tile .badge svg{width:26px;height:26px}.tile.mine .badge{background:var(--amber-soft);color:var(--amber)}.tile.usda .badge{background:var(--teal-soft);color:var(--teal)}.tile b{font-size:19px;display:block}.tile span{color:var(--muted);font-size:14px}.tile .count{color:var(--muted);margin-left:auto;font-size:22px;font-weight:700}html,body{height:100%;overflow:hidden}.pager{touch-action:pan-y;position:fixed;inset:0;overflow:hidden}.page{will-change:transform;position:absolute;inset:0}.page.lifting{box-shadow:-12px 0 30px #0000002e}.page-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:calc(env(safe-area-inset-bottom) + 92px);position:absolute;inset:0;overflow-y:auto}.tab-bar{padding:8px 6px calc(env(safe-area-inset-bottom) + 6px);border-top:0;gap:4px;box-shadow:0 -6px 20px #1b243014}.tab-bar button{color:var(--muted);gap:4px;padding:0;font-size:13px;font-weight:600}.tab-bar .tab-icon{border-radius:17px;place-items:center;width:58px;height:34px;transition:background .25s;display:grid}.tab-bar .tab-icon svg{width:26px;height:26px}.tab-bar button.active{color:var(--tab-color)}.tab-bar button.active .tab-icon{background:var(--tab-soft)}.toast{bottom:calc(env(safe-area-inset-bottom) + 98px);border-radius:16px}.slide-left{animation:.28s cubic-bezier(.2,.8,.2,1) slideL}.slide-right{animation:.28s cubic-bezier(.2,.8,.2,1) slideR}@keyframes slideL{0%{opacity:.4;transform:translate(28px)}}@keyframes slideR{0%{opacity:.4;transform:translate(-28px)}}@media (prefers-reduced-motion:reduce){.slide-left,.slide-right{animation:none}}.title-kcal{color:var(--muted);white-space:nowrap;margin-left:auto;margin-right:4px;font-size:15px;font-weight:600}.date-line{font-size:16px;font-weight:500}.pager:has(.page[aria-hidden=false] .overlay,.page[aria-hidden=false] .sheet-backdrop){z-index:30}.ingredient-hint.warn{color:var(--warning)}
