:root{--primary:#067647;--primary-strong:#075d3b;--primary-soft:#dcfae6;--on-primary:#fff;--on-primary-strong:#fff;--on-primary-soft:#075d3b;--accent:#067647;--accent-strong:#075d3b;--on-accent:#fff;--on-accent-strong:#fff;--warning:#c94212;--warning-strong:#a9360f;--background:#f4f7f4;--surface:#fff;--surface-muted:#edf3ef;--surface-strong:#e1ebe4;--text:#17211b;--muted:#5d6b62;--border:#d8e3dc;--ring:#087443;--danger:#b42318;--protein:#75d5a0;--carbs:#f2bb63;--fat:#f28c6a;--summary-background:#067647;--summary-text:#fff;--summary-muted:#cce2d6;--summary-surface:#1f835b;--summary-track:#3f936c;--summary-progress:#b6d7c5;--shadow:0 14px 45px #1c372524}*,:before,:after{box-sizing:border-box}html{background:var(--background);scroll-behavior:smooth}body{background:var(--background);color:var(--text);margin:0;font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei,system-ui,sans-serif;line-height:1.5}button,input,select,textarea{color:inherit;font:inherit;margin:0}img,svg{display:block}img{max-width:100%}button,a,select{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.46}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb, var(--ring) 38%, transparent);outline-offset:2px}h1,h2,h3,p{margin:0}input,select,textarea{box-sizing:border-box;border:1px solid var(--border);background:var(--surface);border-radius:13px;width:100%;min-width:0;max-width:100%;min-height:46px}input,textarea{padding:10px 12px}select{padding:0 38px 0 12px}textarea{resize:vertical}.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.loading-view{min-height:100dvh;color:var(--muted);place-content:center;justify-items:center;gap:14px;font-size:.9rem;font-weight:700;display:grid}.loading-mark{border:5px solid var(--primary-soft);border-top-color:var(--primary);border-radius:50%;width:44px;height:44px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.app-shell{width:min(100%,1060px);min-height:100dvh;padding:24px 20px calc(110px + env(safe-area-inset-bottom));margin:0 auto}.site-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.site-brand{align-items:center;gap:11px;display:flex}.site-brand-mark{background:url(/favicon.png) 50%/cover no-repeat;border-radius:12px;flex:none;width:42px;height:42px}.site-brand-copy{gap:1px;min-width:0;display:grid}.site-brand strong{letter-spacing:-.02em;font-size:1rem;line-height:1.2}.site-brand small{color:var(--muted);font-size:.72rem;font-weight:700;line-height:1.35}.desktop-nav,.desktop-actions{display:none}.topbar,.section-heading,.subheading{justify-content:space-between;align-items:center;gap:16px;display:flex}.topbar{margin-bottom:20px}h1{letter-spacing:-.035em;margin-top:2px;font-size:clamp(1.78rem,7vw,2.4rem);line-height:1.12}h2{letter-spacing:-.02em;font-size:1.18rem}.eyebrow,.section-kicker{color:var(--muted);letter-spacing:.045em;font-size:.76rem;font-weight:800}.section-kicker{margin-bottom:4px}.today-dashboard-grid{flex-direction:column;gap:20px;display:flex}.date-strip{box-sizing:border-box;align-items:center;gap:8px;width:100%;margin-bottom:13px;display:flex}.date-strip button{border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--primary-strong);white-space:nowrap;border-radius:12px;flex:none;padding:0 13px;font-size:.78rem;font-weight:800}.date-strip input{box-sizing:border-box;text-align:center;flex:auto;width:auto;min-width:0;min-height:44px}.summary-card{background:var(--summary-background);color:var(--summary-text);border-radius:25px;padding:25px}.summary-card .section-kicker{color:var(--summary-muted)}.summary-card h2{align-items:baseline;gap:7px;font-weight:500;display:flex}.summary-card h2 strong{font-variant-numeric:tabular-nums;letter-spacing:-.065em;font-size:clamp(2.65rem,12vw,4.25rem);line-height:1}.summary-card h2 span{color:var(--summary-muted);font-size:.9rem}.calorie-progress{background:var(--summary-track);border-radius:99px;height:9px;margin:20px 0 8px;overflow:hidden}.calorie-progress span{border-radius:inherit;background:var(--summary-progress);height:100%;transition:width .24s ease-out;display:block}.summary-note{color:var(--summary-muted);font-size:.83rem}.macro-strip{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:22px;display:grid}.macro-item{background:var(--summary-surface);border-radius:14px;min-width:0;padding:12px}.macro-item>div:first-child{gap:2px;display:grid}.macro-item span{color:var(--summary-muted);font-size:.7rem}.macro-item strong{font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}.macro-track{background:var(--summary-track);border-radius:99px;height:4px;margin-top:9px;overflow:hidden}.macro-track>span{border-radius:inherit;height:100%;display:block}.macro-track .protein{background:var(--protein)}.macro-track .carbs{background:var(--carbs)}.macro-track .fat{background:var(--fat)}.section-block{margin-top:30px}.text-button,.icon-text-button{min-height:44px;color:var(--primary);background:0 0;border:0;padding:0 7px;font-size:.79rem;font-weight:850}.text-button:hover,.icon-text-button:hover{color:var(--primary-strong)}.danger,.danger-button{color:var(--danger)}.quick-grid{scrollbar-width:thin;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:13px;display:grid;overflow-x:auto}.quick-card{text-align:left;border:1px solid var(--border);background:var(--surface);min-width:0;min-height:96px;color:var(--muted);border-radius:18px;padding:15px;font-size:.72rem;transition:border-color .18s,background .18s}.quick-card:hover{border-color:color-mix(in srgb, var(--primary) 60%, var(--border));background:color-mix(in srgb, var(--surface) 85%, var(--primary-soft))}.quick-card:active,.primary-button:active,.secondary-button:active,.capture-button:active,.add-meal-button:active{transform:scale(.98)}.quick-name{color:var(--text);margin-bottom:17px;font-size:.94rem;font-weight:850;display:block}.source-pill{background:var(--primary-soft);color:var(--primary-strong);border-radius:99px;padding:6px 9px;font-size:.68rem;font-weight:800}.meal-section{gap:10px;display:grid}.meal-section .section-heading{margin-bottom:3px}.meal-card{border:1px solid var(--border);background:var(--surface);border-radius:18px;grid-template-columns:60px minmax(0,1fr) auto auto;align-items:center;gap:13px;padding:14px;display:grid}.meal-time{font-variant-numeric:tabular-nums;gap:2px;display:grid}.meal-time span,.meal-copy p,.meal-copy>span{color:var(--muted);font-size:.72rem}.meal-photo{object-fit:cover;border-radius:14px;width:60px;height:60px}.meal-copy{min-width:0}.meal-copy h3{font-size:.92rem}.meal-copy p{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.meal-numbers{font-variant-numeric:tabular-nums;justify-items:end;display:grid}.meal-numbers strong{color:var(--primary-strong);font-size:1.05rem}.meal-numbers span{color:var(--muted);font-size:.65rem}.empty-card,.mini-empty{border:1px dashed var(--border);text-align:center;background:color-mix(in srgb, var(--surface) 72%, transparent);border-radius:18px;padding:26px 20px}.empty-card p{color:var(--muted);margin:5px auto 15px;font-size:.82rem}.empty-card button{background:var(--primary-soft);min-height:44px;color:var(--primary-strong);border:0;border-radius:13px;padding:0 15px;font-weight:850}.add-meal-button{z-index:20;background:var(--accent);min-height:54px;color:var(--on-accent);border:0;border-radius:17px;padding:0 20px;font-weight:850;transition:background .18s,transform .12s;position:fixed;bottom:82px;right:max(20px,50vw - 380px);box-shadow:0 8px 24px #95360f3d}.add-meal-button:hover{background:var(--accent-strong);color:var(--on-accent-strong)}.add-meal-button span{margin-right:6px;font-size:1.18rem}.bottom-nav{z-index:30;width:min(100%,800px);padding:8px 14px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:color-mix(in srgb, var(--surface) 96%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav button{min-height:53px;color:var(--muted);background:0 0;border:0;border-radius:13px;align-content:center;place-items:center;gap:2px;font-size:.7rem;font-weight:850;display:grid}.bottom-nav button.active{background:var(--primary-soft);color:var(--primary-strong)}.nav-mark{border:1px solid;border-radius:7px;place-items:center;width:24px;height:24px;display:grid}.nav-mark svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;width:16px;height:16px}.calendar-view,.library-view,.settings-view{gap:16px;display:grid}.modal-backdrop{z-index:100;padding-top:max(16px, env(safe-area-inset-top));background:#08120c8a;place-items:end center;display:grid;position:fixed;inset:0}.meal-composer{width:min(100%,800px);max-height:calc(100dvh - max(16px, env(safe-area-inset-top)));background:var(--background);box-shadow:var(--shadow);border-radius:25px 25px 0 0;grid-template-rows:auto minmax(0,1fr) auto;display:grid;overflow:hidden}.composer-header,.composer-footer{border-color:var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:15px;padding:17px 20px;display:flex}.composer-header{border-bottom:1px solid var(--border)}.close-button{border:1px solid var(--border);background:var(--surface-muted);min-height:44px;color:var(--muted);border-radius:12px;padding:0 12px;font-size:.76rem;font-weight:850}.composer-scroll{overscroll-behavior:contain;gap:12px;padding:14px 16px 30px;display:grid;overflow-y:auto}.composer-section{border:1px solid var(--border);background:var(--surface);border-radius:18px;min-width:0;margin:0;padding:16px}fieldset.composer-section{gap:13px;display:grid}.composer-section legend{color:var(--text);padding:0 6px;font-size:.86rem;font-weight:900}.meal-type-grid,.capture-grid{grid-template-columns:repeat(4,1fr);gap:7px;display:grid}.meal-type-grid button{border:1px solid var(--border);background:var(--surface-muted);min-height:46px;color:var(--muted);border-radius:12px;font-size:.76rem;font-weight:850}.meal-type-grid button.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-strong)}.inline-field{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.inline-field input{width:auto;min-width:0;max-width:140px}.capture-grid{grid-template-columns:1fr;gap:7px;display:grid}.capture-button{text-align:left;border:1px solid var(--border);background:var(--surface-muted);border-radius:15px;align-content:center;gap:3px;min-height:82px;padding:12px;display:grid}.capture-button strong{color:var(--primary-strong);font-size:.84rem}.capture-button span{color:var(--muted);font-size:.66rem}.photo-preview-row{background:var(--surface-muted);border-radius:15px;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;display:grid}.photo-preview-row img{object-fit:cover;border-radius:12px;width:64px;height:64px}.photo-preview-row>div{min-width:0;display:grid}.photo-preview-row>div strong{font-size:.78rem}.photo-preview-row>div span{color:var(--muted);font-size:.66rem}.scanner-panel{background:var(--surface-muted);border-radius:15px;gap:8px;padding:10px;display:grid}.scanner-panel video{background:var(--surface-strong);object-fit:cover;border-radius:12px;width:100%;max-height:240px}.scanner-panel p{color:var(--muted);font-size:.7rem}.scanner-panel form{grid-template-columns:1fr auto;align-items:end;gap:8px;display:grid}.scanner-panel form label{color:var(--muted);gap:4px;font-size:.68rem;font-weight:800;display:grid}.food-entry{grid-template-columns:minmax(0,1fr) 96px auto;align-items:end;gap:8px;min-width:0;display:grid;position:relative}.food-entry .grow,.food-entry .amount-field{min-width:0}.food-entry input{width:100%;min-width:0;max-width:100%}.add-food-button{min-width:64px}.suggestion-dropdown{border:1px solid var(--border);background:var(--surface);-webkit-overflow-scrolling:touch;border-radius:14px;gap:2px;max-height:220px;padding:6px;display:grid;overflow-y:auto;box-shadow:0 6px 24px #00000038}.suggestion-dropdown button{text-align:left;background:0 0;border:none;border-radius:10px;align-content:center;gap:2px;min-height:46px;padding:8px 11px;display:grid}.suggestion-dropdown button:hover,.suggestion-dropdown button:active{background:var(--surface-muted)}.suggestion-dropdown strong{font-size:.77rem}.suggestion-dropdown span{color:var(--muted);font-size:.64rem}.suggestion-dropdown .custom-suggestion{border-top:1px dashed var(--border);color:var(--primary-strong);border-radius:0 0 10px 10px;margin-top:2px;padding-top:10px}.custom-food-panel{border:1px dashed var(--border);background:color-mix(in srgb, var(--primary-soft) 35%, var(--surface));border-radius:14px;gap:10px;padding:12px;display:grid}.custom-panel-head{justify-content:space-between;align-items:center;gap:12px;font-size:.77rem;display:flex}.custom-panel-head select{min-height:42px}.nutrition-input-grid{grid-template-columns:repeat(4,1fr);gap:7px;display:grid}.composer-section .subheading{margin-bottom:11px}.mini-empty{color:var(--muted);font-size:.72rem}.composer-item-list{gap:7px;display:grid}.composer-item-list article{background:var(--surface-muted);border-radius:13px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:9px;padding:11px;display:grid}.composer-item-list article>div{min-width:0;display:grid}.composer-item-list article>div strong{font-size:.78rem}.composer-item-list article>div span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.64rem;overflow:hidden}.composer-item-list article>div em{color:var(--warning-strong);font-size:.61rem;font-style:normal;font-weight:800}.composer-item-list article>strong{color:var(--primary-strong);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.75rem}.composer-item-list article>button{min-height:40px;color:var(--danger);background:0 0;border:0;padding:0 7px;font-size:.68rem;font-weight:850}.composer-note{padding:0 2px}.composer-footer{border-top:1px solid var(--border);padding-bottom:calc(17px + env(safe-area-inset-bottom))}.composer-footer>div{grid-template-columns:auto auto;align-items:baseline;gap:2px 8px;display:grid}.composer-footer>div span{color:var(--muted);font-size:.67rem}.composer-footer>div strong{color:var(--primary-strong);font-variant-numeric:tabular-nums;font-size:1.16rem}.composer-footer>div small{color:var(--muted);grid-column:1/-1;font-size:.64rem}.composer-footer-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.re-estimate-button{white-space:nowrap;min-height:44px;padding:0 14px;font-size:.78rem;font-weight:800}.save-meal-button{white-space:nowrap;min-width:116px}.field-label-with-action{justify-content:space-between;align-items:center;gap:10px;display:flex}.compact-button{min-height:30px;padding-inline:7px;font-size:.68rem}.field-error{color:var(--danger);margin-top:-7px;font-size:.7rem;line-height:1.5}.confirmation-editor{border:1px solid color-mix(in srgb, var(--warning) 30%, var(--border));background:var(--surface);border-radius:12px;grid-column:1/-1;padding:12px;gap:11px!important}.confirmation-editor>p{color:var(--muted);font-size:.7rem;line-height:1.55}.confirmation-portion,.confirmation-nutrients{gap:8px;display:grid}.confirmation-portion{grid-template-columns:1fr 1fr}.confirmation-nutrients{grid-template-columns:repeat(4,minmax(0,1fr))}.confirmation-portion label,.confirmation-nutrients label{color:var(--muted);gap:4px;font-size:.64rem;font-weight:800;display:grid}.confirmation-portion input,.confirmation-nutrients input{width:100%;min-height:40px}.confirmation-nutrients label>div{position:relative}.confirmation-nutrients label em{position:absolute;top:50%;right:8px;transform:translateY(-50%);color:var(--muted)!important;font-size:.58rem!important}.confirm-estimate-button{background:var(--accent);min-height:42px;color:var(--on-accent);border:0;border-radius:11px;font-size:.72rem;font-weight:850}.recovery-view{background:var(--background);place-items:center;min-height:100dvh;padding:24px;display:grid}.recovery-card{border:1px solid var(--border);background:var(--surface);width:min(100%,560px);box-shadow:var(--shadow);border-radius:24px;gap:14px;padding:clamp(22px,5vw,38px);display:grid}.recovery-card h1{font-size:clamp(1.5rem,5vw,2.2rem)}.recovery-card>p:not(.eyebrow){color:var(--muted);line-height:1.7}.recovery-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.gemini-help-dialog{border:1px solid var(--border);background:var(--surface);width:min(100% - 28px,620px);max-height:min(86dvh,760px);color:var(--text);box-shadow:var(--shadow);border-radius:22px;padding:0;overflow:hidden}.gemini-help-dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#08190f94}.gemini-help-dialog>header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;display:flex}.gemini-help-content{gap:18px;max-height:calc(86dvh - 84px);padding:20px;display:grid;overflow-y:auto}.gemini-help-content ol,.gemini-help-content ul{color:var(--muted);gap:8px;padding-left:21px;font-size:.8rem;line-height:1.55;display:grid}.gemini-help-content section{gap:8px;display:grid}.gemini-help-content h3{font-size:.93rem}.gemini-help-content p{color:var(--muted);font-size:.78rem;line-height:1.65}.external-link-button{justify-content:center;align-items:center;width:fit-content;text-decoration:none;display:inline-flex}.help-links{flex-wrap:wrap;gap:8px 14px;display:flex}.help-links a{color:var(--primary-strong);font-size:.74rem;font-weight:800}.app-footer{color:var(--muted);opacity:.68;justify-content:center;gap:7px;margin-top:28px;font-size:.66rem;display:flex}.toast{left:50%;bottom:calc(86px + env(safe-area-inset-bottom));z-index:300;background:var(--text);max-width:min(90vw,520px);color:var(--background);box-shadow:var(--shadow);opacity:0;pointer-events:none;border-radius:13px;padding:11px 15px;font-size:.76rem;font-weight:750;transition:opacity .18s,transform .18s;position:fixed;transform:translate(-50%,16px)}.toast.show{opacity:1;transform:translate(-50%)}@media (max-width:620px){.app-shell{padding:22px 15px 124px}.summary-card{padding:21px}.macro-strip{gap:5px}.macro-item{padding:10px 8px}.quick-grid{grid-template-columns:repeat(3,150px);margin-right:-15px;padding-right:15px}.meal-card{grid-template-columns:52px minmax(0,1fr) auto;gap:10px}.meal-photo{width:52px;height:52px}.meal-card .icon-text-button{grid-column:2/-1;justify-self:start;min-height:34px;padding:0}.calendar-toolbar{flex-direction:column;align-items:stretch}.month-switcher{justify-content:space-between}.metric-select{grid-template-columns:auto 1fr;align-items:center}.calendar-grid{gap:4px}.calendar-day,.calendar-empty{border-radius:10px}.calendar-day{padding:5px}.day-number{border-radius:6px;width:21px;height:21px;font-size:.64rem}.day-value strong{font-size:.67rem}.day-value small{font-size:.5rem}.day-empty-label{display:none}.calendar-legend{flex-direction:column}.food-row{grid-template-columns:minmax(0,1fr) auto}.food-row .text-button{grid-column:2;min-height:34px;padding:0}.storage-summary{grid-template-columns:1fr}.modal-backdrop{padding-top:8px}.meal-composer{max-height:calc(100dvh - 8px)}.composer-header{padding:14px 16px}.composer-scroll{padding-inline:11px}.capture-grid,.suggestion-list{grid-template-columns:1fr}.photo-preview-row{grid-template-columns:58px minmax(0,1fr)}.photo-preview-row img{width:58px;height:58px}.photo-preview-row .primary-button{grid-column:1/-1}.food-entry{grid-template-columns:minmax(0,1fr) 84px;gap:8px;min-width:0}.add-food-button{grid-column:1/-1}.nutrition-input-grid{grid-template-columns:repeat(2,1fr)}.confirmation-nutrients{grid-template-columns:repeat(2,minmax(0,1fr))}.recovery-actions{grid-template-columns:1fr}.composer-item-list article{grid-template-columns:minmax(0,1fr) auto}.composer-item-list article>button{grid-column:2}.composer-footer{padding:12px 14px calc(12px + env(safe-area-inset-bottom))}}@media (max-width:540px){.macro-item strong{font-size:.65rem}.goal-grid{grid-template-columns:1fr}.meal-type-grid{grid-template-columns:repeat(2,1fr)}.composer-footer>div small{text-overflow:ellipsis;white-space:nowrap;max-width:165px;overflow:hidden}}@media (min-width:768px){.app-shell{padding:32px 28px 60px}.desktop-nav{background:var(--surface);border:1px solid var(--border);border-radius:16px;align-items:center;gap:6px;padding:4px 6px;display:flex}.desktop-nav button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:7px;padding:8px 15px;font-size:.85rem;font-weight:750;transition:all .16s;display:flex}.desktop-nav button:hover{color:var(--text);background:var(--surface-muted)}.desktop-nav button.active{background:var(--primary-soft);color:var(--primary-strong)}.desktop-nav .nav-mark{justify-content:center;align-items:center;display:flex}.desktop-nav .nav-mark svg{width:17px;height:17px}.desktop-actions{align-items:center;display:flex}.desktop-add-button{cursor:pointer;min-height:42px;padding:0 18px;font-size:.86rem}.bottom-nav,.add-meal-button{display:none}.food-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}}@media (min-width:860px){.today-dashboard-grid{grid-template-columns:380px minmax(0,1fr);align-items:start;gap:28px;display:grid}.today-left-col{flex-direction:column;gap:16px;display:flex;position:sticky;top:24px}.today-right-col{flex-direction:column;gap:20px;min-width:0;display:flex}.today-right-col .section-block{margin-top:0}.settings-view{grid-template-columns:repeat(2,1fr);align-items:start;gap:20px;display:grid}.settings-card.compact-card{grid-column:1/-1}}@media (prefers-color-scheme:dark){:root{--background:#101713;--surface:#172019;--surface-muted:#202c24;--surface-strong:#2a382e;--text:#f0f6f1;--muted:#a8b6ac;--border:#334239;--primary:#4ed48a;--primary-strong:#78e2a6;--primary-soft:#173e29;--on-primary:#101713;--on-primary-strong:#101713;--on-primary-soft:#78e2a6;--accent:#4ed48a;--accent-strong:#78e2a6;--on-accent:#101713;--on-accent-strong:#101713;--warning:#f17d48;--warning-strong:#ff9c70;--ring:#72dfa2;--danger:#ff8c82;--summary-background:#067647;--summary-text:#fff;--summary-muted:#cce2d6;--summary-surface:#1f835b;--summary-track:#3f936c;--summary-progress:#b6d7c5;--shadow:0 14px 45px #00000061}.calendar-day:has(img) .day-value{background:color-mix(in srgb, var(--background) 82%, transparent)}.toast{background:var(--text);color:var(--background)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
.calendar-toolbar{border:1px solid var(--border);background:var(--surface);border-radius:18px;justify-content:space-between;align-items:flex-end;gap:14px;padding:16px;display:flex}.month-switcher{align-items:center;gap:8px;display:flex}.month-switcher h2{text-align:center;min-width:140px}.month-switcher button{border:1px solid var(--border);background:var(--surface-muted);min-width:48px;min-height:44px;color:var(--primary-strong);border-radius:12px;padding:0 9px;font-size:.76rem;font-weight:850}.metric-select{color:var(--muted);gap:4px;font-size:.7rem;font-weight:800;display:grid}.metric-select select{min-height:44px}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;display:grid}.weekdays{color:var(--muted);text-align:center;padding:0 6px;font-size:.72rem;font-weight:850}.calendar-day,.calendar-empty{aspect-ratio:.84;border-radius:15px;min-width:0}.calendar-day{border:1px solid var(--border);background:var(--surface);color:var(--text);text-align:left;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:8px;display:flex;position:relative;overflow:hidden}.calendar-day:hover{border-color:color-mix(in srgb, var(--primary) 60%, var(--border))}.calendar-day.is-today{border:2px solid var(--primary)}.calendar-day img{object-fit:cover;opacity:.82;width:100%;height:100%;position:absolute;inset:0}.calendar-day img:after{content:"";background:linear-gradient(#0000,#0000008c);position:absolute;inset:0}.day-number,.day-value,.day-empty-label{z-index:1;position:relative}.day-number{background:color-mix(in srgb, var(--surface) 88%, transparent);border-radius:8px;place-items:center;width:25px;height:25px;font-size:.72rem;font-weight:900;display:grid}.day-value{color:var(--primary-strong);font-variant-numeric:tabular-nums;line-height:1.05;display:grid}.calendar-day:has(img) .day-value{color:#fff;background:#0a2114c2;border-radius:7px;padding:4px 5px}.day-value strong{font-size:.82rem}.day-value small,.day-empty-label{color:inherit;font-size:.58rem}.day-empty-label{color:var(--muted)}.calendar-legend{color:var(--muted);justify-content:space-between;gap:12px;font-size:.7rem;display:flex}.calendar-legend strong{color:var(--primary-strong)}
.search-field,.form-field{color:var(--muted);gap:6px;min-width:0;font-size:.75rem;font-weight:800;display:grid}.search-field input,.form-field input{width:100%;min-width:0;max-width:100%}.search-field{border:1px solid var(--border);background:var(--surface);border-radius:18px;padding:15px}.segmented-control{background:var(--surface-muted);border-radius:14px;grid-template-columns:repeat(2,1fr);gap:4px;padding:4px;display:grid}.segmented-control button{min-height:44px;color:var(--muted);background:0 0;border:0;border-radius:11px;font-size:.79rem;font-weight:850}.segmented-control button.active{background:var(--surface);color:var(--primary-strong);box-shadow:0 1px #0a281614}.library-filters{grid-template-columns:repeat(3,1fr)}.food-list,.settings-card{border:1px solid var(--border);background:var(--surface);border-radius:19px;overflow:hidden}.food-list .subheading,.settings-card .subheading{border-bottom:1px solid var(--border);padding:16px}.subheading>span{color:var(--muted);font-size:.7rem;font-weight:750}.food-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px;min-height:74px;padding:11px 14px;display:grid}.food-row:last-child{border-bottom:0}.food-row>.food-copy{min-width:0;display:grid}.food-row>.food-copy strong{font-size:.88rem}.food-row>.food-copy span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;overflow:hidden}.food-row-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px;display:flex}.secondary-button,.primary-button,.danger-button{border-radius:12px;min-height:44px;padding:0 14px;font-size:.77rem;font-weight:850;transition:transform .12s,background .18s}.secondary-button{border:1px solid var(--border);background:var(--surface-muted);color:var(--primary-strong)}.primary-button{background:var(--primary);color:var(--on-primary);border:0}.primary-button:hover{background:var(--primary-strong);color:var(--on-primary-strong)}.danger-button{border:1px solid color-mix(in srgb, var(--danger) 30%, var(--border));background:color-mix(in srgb, var(--danger) 6%, var(--surface))}.data-note,.field-note{color:var(--muted);font-size:.73rem;line-height:1.65}
.settings-view{gap:14px}.settings-card{gap:14px;padding:17px;display:grid}.settings-card .subheading{margin:-17px -17px 0}.goal-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.goal-grid label,.nutrition-input-grid label{color:var(--muted);gap:5px;font-size:.7rem;font-weight:800;display:grid}.goal-grid label>div,.nutrition-input-grid label>div{position:relative}.goal-grid input,.nutrition-input-grid input{font-variant-numeric:tabular-nums;width:100%;padding-right:43px}.goal-grid em,.nutrition-input-grid em{color:var(--muted);font-size:.66rem;font-style:normal;position:absolute;top:50%;right:11px;transform:translateY(-50%)}.security-note,.api-key-warning{border-left:4px solid var(--warning);background:color-mix(in srgb, var(--warning) 7%, var(--surface));border-radius:10px;padding:13px}.security-note strong,.api-key-warning strong{color:var(--warning-strong);font-size:.78rem}.security-note p{color:var(--muted);margin-top:3px;font-size:.72rem;line-height:1.58}.api-key-warning-heading{color:var(--warning-strong);align-items:center;gap:7px;display:flex}.api-key-warning-heading svg{flex:none}.api-key-warning ul{color:var(--muted);gap:7px;margin:9px 0 0;padding-left:20px;font-size:.73rem;line-height:1.65;display:grid}.info-button{width:44px;height:44px;color:var(--primary-strong);background:0 0;border:0;border-radius:50%;place-items:center;font-size:.72rem;font-weight:900;display:grid;position:relative}.info-button:before{content:"";border:1px solid var(--border);background:var(--primary-soft);border-radius:50%;width:25px;height:25px;position:absolute}.info-button:after{content:"i";position:relative}.check-row{min-height:44px;color:var(--muted);align-items:center;gap:9px;font-size:.73rem;display:flex}.check-row input{width:20px;min-height:20px;accent-color:var(--primary)}.api-key-actions{flex-wrap:wrap;gap:8px;display:flex}.theme-swatches{grid-template-columns:repeat(6,minmax(44px,1fr));gap:8px;display:grid}.theme-swatches button{color:#0000;min-width:44px;min-height:44px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--text) 24%, transparent);border:3px solid #0000;border-radius:12px;place-items:center;display:grid}.theme-swatches button.active{border-color:var(--surface);color:#fff;box-shadow:0 0 0 3px var(--ring), inset 0 0 0 1px color-mix(in srgb, var(--text) 24%, transparent)}.theme-swatches button.active span{color:#fff;background:#00000094;border-radius:50%;place-items:center;width:24px;height:24px;font-size:.8rem;font-weight:900;display:grid}.theme-color-field{color:var(--muted);grid-template-columns:52px minmax(0,1fr);align-items:center;gap:11px;display:grid}.theme-color-field input[type=color]{cursor:pointer;width:52px;height:48px;padding:4px}.theme-color-field>span{gap:2px;display:grid}.theme-color-field strong{color:var(--text);font-size:.78rem}.theme-color-field small{font-size:.69rem;line-height:1.5}.storage-summary{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.storage-summary>div{background:var(--surface-muted);border-radius:13px;gap:3px;padding:12px;display:grid}.storage-summary span{color:var(--muted);font-size:.66rem}.storage-summary strong{font-variant-numeric:tabular-nums;font-size:.88rem}.button-row,.attribution-row{flex-wrap:wrap;gap:8px;display:flex}.compact-card h2{font-size:1rem}.compact-card p{color:var(--muted);font-size:.75rem;line-height:1.65}.attribution-row a{color:var(--primary);font-size:.72rem;font-weight:800}@media (max-width:520px){.theme-swatches{grid-template-columns:repeat(3,1fr)}.api-key-actions>button{flex:100%}}
