:root{--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--screen-pad-inline: var(--space-3);--screen-pad-block: var(--space-2);--inset-pad-inline: var(--space-3);--modal-gap-after-header: var(--space-4);--modal-pad-bottom: var(--space-6);--modal-section-gap-above-divider: var(--space-5);--modal-section-pad-below-divider: var(--space-3);--section-title-description-gap: var(--space-1);--section-description-content-gap: var(--space-5);--color-background-primary: #FFFFFF;--color-background-secondary: #F5F4EE;--color-background-highlight: #E6F1FB;--color-background-inset: #E6E4DC;--color-text-primary: #1A1A1A;--color-text-secondary: #6B6B6B;--color-text-tertiary: #999999;--color-text-highlight: #0C447C;--color-border-primary: rgba(0, 0, 0, .4);--color-border-secondary: rgba(0, 0, 0, .3);--color-border-tertiary: rgba(0, 0, 0, .15);--color-border-highlight: #B5D4F4;--color-divider: rgba(0, 0, 0, .4);--color-divider-strong: rgba(0, 0, 0, .22);--color-action-primary: #1E40AF;--color-on-primary: #FFFFFF;--color-danger: #B42318;--color-link: var(--color-action-primary);--color-negative: var(--macro-cal);--color-overlay-scrim: rgba(0, 0, 0, .5);--color-shadow-sm: rgba(0, 0, 0, .1);--color-shadow-md: rgba(0, 0, 0, .12);--color-progress-tick: rgba(0, 0, 0, .18);--color-loading-scrim: rgba(250, 250, 247, .72);--macro-cal: #C41E1E;--macro-carb: #1E40AF;--macro-prot: #166534;--macro-fat: #7C3AED;--macro-cal-bg: #F8E7E7;--macro-carb-bg: #EFF4FF;--macro-prot-bg: #EDF7EF;--macro-fat-bg: #F3E8FF;--macro-cal-border: rgba(196, 30, 30, .35);--macro-carb-border: rgba(30, 64, 175, .35);--macro-prot-border: rgba(22, 101, 52, .35);--macro-fat-border: rgba(124, 58, 237, .35);--color-google-text: #3c4043;--color-google-surface: #ffffff;--color-google-border: #dadce0;--color-google-surface-hover: #f8f9fa;--color-google-surface-active: #f1f3f4;--color-google-shadow: rgba(0, 0, 0, .04);--color-google-brand-blue: #4285F4;--color-google-brand-green: #34A853;--color-google-brand-yellow: #FBBC05;--color-google-brand-red: #EA4335;--color-auth-placeholder: #BDBDB7;--color-auth-placeholder-fg: #6B6B6B;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--text-xs: 13px;--text-sm: 15px;--text-md: 17px;--text-lg: 19px;--text-xl: 22px;--border-radius-md: var(--space-2);--border-radius-lg: var(--space-3);--button-sm-height: 40px;--button-md-height: 42px;--button-sm-px: 14px;--button-md-px: var(--space-4);--input-md-height: 40px;--icon-button-size: var(--button-sm-height);--icon-size: var(--text-lg);--swipe-action-gap: var(--space-2);--color-button-ghost-background: transparent;--color-button-ghost-border: transparent;--color-button-ghost-text: var(--color-text-primary);--color-button-ghost-hover-background: rgba(0, 0, 0, .06);--focus-ring: var(--color-border-highlight);--focus-ring-shadow: 0 0 0 2px var(--color-background-primary), 0 0 0 4px var(--focus-ring);--app-max-width: 480px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}html{background-color:var(--color-background-secondary)}*{box-sizing:border-box}html,body{margin:0;padding:0;font-family:var(--font-sans);background:var(--color-background-secondary);-webkit-tap-highlight-color:transparent;font-size:var(--text-md);min-height:100%;min-height:100dvh}input:focus,.search-input:focus,.form-group input:focus,.quantity-input-group input:focus,.editable-macro input:focus,.form-select:focus,button:focus,.dropdown-trigger:focus{outline:none}input:focus,.search-input:focus,.form-group input:focus,.quantity-input-group input:focus,.editable-macro input:focus,.form-select:focus{border-color:var(--focus-ring);box-shadow:var(--focus-ring-shadow)}button:focus-visible,.dropdown-trigger:focus-visible{border-color:var(--focus-ring);box-shadow:var(--focus-ring-shadow)}.app-container{width:100%;max-width:var(--app-max-width);margin:0 auto;background:var(--color-background-secondary);min-height:100dvh;display:flex;flex-direction:column;padding-bottom:var(--safe-bottom)}.header{background:var(--color-background-primary);border-bottom:.5px solid var(--color-divider);padding:var(--screen-pad-block) var(--screen-pad-inline);padding-top:calc(var(--screen-pad-block) + var(--safe-top));position:sticky;top:0;z-index:100}.header-controls{display:flex;gap:var(--space-2);justify-content:space-between;align-items:center}.date-nav,.header-actions{display:flex;gap:var(--space-2);align-items:center}.date-nav button{padding:0;border:.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);background:var(--color-background-primary);color:var(--color-text-primary);cursor:pointer;white-space:nowrap;height:var(--button-sm-height);width:var(--button-sm-height);display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-md)}.date-display{font-size:var(--text-md);font-weight:500;color:var(--color-text-primary);min-width:84px;text-align:center;flex-shrink:0}.btn-primary{background:var(--color-action-primary);color:var(--color-on-primary);border:.5px solid var(--color-action-primary);cursor:pointer;font-family:var(--font-sans);font-weight:500;border-radius:var(--border-radius-md);min-height:var(--button-md-height);padding:0 var(--button-md-px);font-size:var(--text-md)}.btn-secondary{background:var(--color-background-primary);color:var(--color-text-primary);border:.5px solid var(--color-border-secondary);cursor:pointer;font-family:var(--font-sans);font-weight:500;border-radius:var(--border-radius-md);min-height:var(--button-md-height);padding:0 var(--button-md-px);font-size:var(--text-md)}.btn-block{width:100%}.btn-icon{width:var(--icon-button-size);height:var(--icon-button-size);min-width:var(--icon-button-size);min-height:var(--icon-button-size);padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-md);flex-shrink:0;border:.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);background:var(--color-background-primary);color:var(--color-text-primary)}.btn-icon.btn-primary,.btn-icon.btn-secondary{border:.5px solid var(--color-border-secondary);background:var(--color-background-primary);color:var(--color-text-primary)}.btn-icon.btn-ghost{background:var(--color-button-ghost-background);border-color:var(--color-button-ghost-border);color:var(--color-button-ghost-text)}.btn-icon.btn-ghost:hover{background:var(--color-button-ghost-hover-background)}.btn-icon.btn-ghost:focus-visible{outline:none;box-shadow:var(--focus-ring-shadow)}.dropdown{position:relative;display:inline-block}.dropdown-trigger{width:100%;height:var(--button-sm-height);padding:0 var(--button-sm-px);border:.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);background:var(--color-background-primary);color:var(--color-text-primary);font-family:var(--font-sans);font-size:var(--text-md);font-weight:400;cursor:pointer;display:inline-flex;align-items:center;justify-content:space-between;gap:var(--space-2);white-space:nowrap;text-align:left}.dropdown-trigger .caret{display:inline-block;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--color-text-secondary);flex-shrink:0}.dropdown-menu{display:none;position:absolute;top:calc(100% + var(--space-1));left:0;right:0;background:var(--color-background-primary);border:.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);box-shadow:0 4px 12px var(--color-shadow-sm);min-width:100%;z-index:200;overflow:hidden;max-height:240px;overflow-y:auto}.dropdown-menu.right-aligned{left:auto;right:0;min-width:max-content}.dropdown-menu.open{display:block}.dropdown-item{padding:var(--space-3);font-size:var(--text-md);font-family:var(--font-sans);color:var(--color-text-primary);cursor:pointer;white-space:nowrap}.dropdown-item.selected{background:var(--color-background-highlight);color:var(--color-text-highlight)}.macros-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-1);padding:var(--screen-pad-block) var(--screen-pad-inline);background:var(--color-background-primary);border-bottom:.5px solid var(--color-divider)}.macro-card{padding:6px 5px;border-radius:var(--border-radius-md);min-width:0}.macro-card.calories{border:.5px solid var(--macro-cal-border);background:var(--macro-cal-bg)}.macro-card.carbs{border:.5px solid var(--macro-carb-border);background:var(--macro-carb-bg)}.macro-card.protein{border:.5px solid var(--macro-prot-border);background:var(--macro-prot-bg)}.macro-card.fat{border:.5px solid var(--macro-fat-border);background:var(--macro-fat-bg)}.macro-card .label{font-size:var(--text-xs);line-height:1.2;margin-bottom:2px;text-align:center;color:var(--color-text-primary);font-weight:600}.macro-card .remainder{display:flex;justify-content:center;align-items:baseline;gap:var(--space-1);margin-bottom:var(--space-1)}.macro-card .value{font-size:var(--text-lg);line-height:1.2;font-weight:600;color:var(--color-text-primary);text-align:center}.macro-card .remainder-suffix{font-size:var(--text-xs);line-height:1.2;color:var(--color-text-secondary);font-weight:400}.macro-card .value.is-negative{color:var(--color-negative)}.macro-card .progress{position:relative;height:7px;background:var(--color-background-primary);border-radius:999px;overflow:hidden;margin-bottom:var(--space-1)}.macro-card.calories .progress-bar{background:var(--macro-cal)}.macro-card.carbs .progress-bar{background:var(--macro-carb)}.macro-card.protein .progress-bar{background:var(--macro-prot)}.macro-card.fat .progress-bar{background:var(--macro-fat)}.macro-card.calories .progress{border:.5px solid var(--macro-cal-border)}.macro-card.carbs .progress{border:.5px solid var(--macro-carb-border)}.macro-card.protein .progress{border:.5px solid var(--macro-prot-border)}.macro-card.fat .progress{border:.5px solid var(--macro-fat-border)}.macro-card .progress-bar{position:relative;z-index:0;height:100%;border-radius:999px 0 0 999px;transition:width .2s}.macro-card .progress-ticks{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;justify-content:space-between;box-sizing:border-box;padding:0 25%;pointer-events:none;z-index:1}.macro-card .progress-ticks span{width:1px;height:100%;background:var(--color-progress-tick)}.macro-card .meta{display:flex;justify-content:center;align-items:baseline;gap:var(--space-1);font-size:var(--text-xs);line-height:1.2;color:var(--color-text-secondary)}.macro-card .target{text-align:center}.content{flex:1;overflow-y:auto;padding:var(--screen-pad-block) var(--screen-pad-inline)}.food-category{margin-bottom:var(--screen-pad-block)}.food-category-shell{background:var(--color-background-primary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);overflow:hidden}.food-category-header{display:flex;justify-content:space-between;align-items:center;padding:var(--screen-pad-block) var(--inset-pad-inline);gap:var(--space-2)}.food-category-title{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1);flex:1;min-width:0}.food-category h3{margin:0;font-size:var(--text-xl);font-weight:600;line-height:1.2;color:var(--color-text-primary);text-transform:capitalize;flex-shrink:0}.category-total{font-size:var(--text-xs);color:var(--color-text-secondary);min-width:0}.add-food-header{padding:0 var(--button-sm-px);min-height:var(--button-sm-height);font-size:var(--text-md);white-space:nowrap;flex-shrink:0}.food-list{padding:0 var(--inset-pad-inline);border-top:.5px solid var(--color-divider)}.food-list>.food-item,.swipe-row .food-item{padding:.375rem 0;display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}.food-list .food-info{gap:1px}.food-list .food-name,.food-list .food-macros{line-height:1.2}.food-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.food-name-row{display:flex;gap:var(--space-1);margin:0;align-items:baseline;min-width:0}.food-name{font-size:var(--text-md);font-weight:400;color:var(--color-text-primary);margin:0}.food-weight{font-size:var(--text-xs);color:var(--color-text-secondary);margin:0;font-weight:400;flex-shrink:0}.food-list .food-name{min-width:0;flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.food-macros{font-size:var(--text-xs);color:var(--color-text-secondary);margin:0}.macro-line .cal{color:var(--macro-cal);font-weight:500}.macro-line .carb{color:var(--macro-carb);font-weight:500}.macro-line .prot{color:var(--macro-prot);font-weight:500}.macro-line .fat{color:var(--macro-fat);font-weight:500}.macro-line .sep{color:var(--color-text-tertiary);display:inline-block;padding:0 var(--space-2);font-weight:400}.macro-badge-row{display:flex;flex-wrap:wrap;gap:var(--space-1)}.macro-badge-row .macro-badge{display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;border:.5px solid;font-size:var(--text-xs);font-weight:500;line-height:1.2;white-space:nowrap;background:transparent}.macro-badge-row .macro-badge.cal{color:var(--macro-cal);border-color:var(--macro-cal-border)}.macro-badge-row .macro-badge.carb{color:var(--macro-carb);border-color:var(--macro-carb-border)}.macro-badge-row .macro-badge.prot{color:var(--macro-prot);border-color:var(--macro-prot-border)}.macro-badge-row .macro-badge.fat{color:var(--macro-fat);border-color:var(--macro-fat-border)}.category-total .macro-badge-row .macro-badge.cal{background:var(--macro-cal-bg)}.category-total .macro-badge-row .macro-badge.carb{background:var(--macro-carb-bg)}.category-total .macro-badge-row .macro-badge.prot{background:var(--macro-prot-bg)}.category-total .macro-badge-row .macro-badge.fat{background:var(--macro-fat-bg)}.macro-line.muted .cal,.macro-line.muted .carb,.macro-line.muted .prot,.macro-line.muted .fat{color:var(--color-text-secondary);font-weight:400}.food-actions{display:flex;gap:var(--space-1);flex-shrink:0}.food-actions button{padding:0;border:.5px solid var(--color-border-secondary);background:var(--color-background-primary);color:var(--color-text-primary);cursor:pointer;border-radius:var(--border-radius-md);font-size:var(--text-sm);min-width:var(--icon-button-size);min-height:var(--icon-button-size);display:inline-flex;align-items:center;justify-content:center}#searchResults>*+*{border-top:.5px solid var(--color-divider)}.swipe-row{position:relative;overflow:hidden}.swipe-row+.swipe-row{border-top:.5px solid var(--color-divider)}.swipe-delete{position:absolute;top:0;right:0;bottom:0;width:auto;aspect-ratio:1;border:none;padding:0;background:var(--color-danger);color:var(--color-on-primary);font-size:0;line-height:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.swipe-delete-icon{width:var(--icon-size);height:var(--icon-size);display:block;flex-shrink:0}.swipe-row .swipe-content{position:relative;z-index:1;transition:transform .2s ease;background:var(--color-background-primary);touch-action:pan-y}.swipe-row.is-open .swipe-content{transform:translate(calc(-1 * var(--swipe-row-reveal, 48px)))}.food-option{padding:var(--space-2) 0;background:transparent;display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);cursor:pointer}.food-option+.food-option{border-top:.5px solid var(--color-divider)}.food-option .food-info{flex:1;min-width:0}.food-option .actions{display:flex;gap:var(--space-2);flex-shrink:0}.search-empty{text-align:center;color:var(--color-text-secondary);padding:var(--space-4) 0;margin:0}.modal-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:var(--color-overlay-scrim);z-index:1000;align-items:stretch;justify-content:center;overscroll-behavior:contain}.modal-overlay.active{display:flex;overscroll-behavior:none}.modal-overlay .modal{width:100%;max-width:var(--app-max-width);margin-left:auto;margin-right:auto}html.modal-open,html.modal-open body{overflow:hidden;height:100%;overscroll-behavior:none}html.modal-open .app-container{overflow:hidden;touch-action:none}.modal{background:var(--color-background-secondary);min-height:100dvh;border-radius:0;overflow-y:auto;padding-bottom:0}.modal-header{padding:calc(var(--screen-pad-block) + var(--safe-top)) var(--screen-pad-inline) calc(var(--screen-pad-block) + var(--space-1));border-bottom:.5px solid var(--color-divider);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:var(--color-background-primary);z-index:10}.modal-header h2{margin:0;font-size:var(--text-xl);font-weight:600;line-height:1.2;color:var(--color-text-primary);text-transform:capitalize;flex-shrink:0}.modal-header-left{display:flex;gap:var(--space-2);align-items:center}.modal-add-new{padding:0 var(--button-sm-px);min-height:var(--button-sm-height);font-size:var(--text-md);white-space:nowrap}.modal-close{background:var(--color-background-primary);border:.5px solid var(--color-border-secondary);width:var(--icon-button-size);height:var(--icon-button-size);min-width:var(--icon-button-size);min-height:var(--icon-button-size);border-radius:var(--border-radius-md);cursor:pointer;color:var(--color-text-primary);padding:0;display:inline-flex;align-items:center;justify-content:center}.modal-body{padding:var(--modal-gap-after-header) var(--screen-pad-inline) calc(var(--modal-pad-bottom) + var(--safe-bottom));background:var(--color-background-secondary)}.search-input{width:100%;padding:0 var(--space-3);height:var(--input-md-height);border:.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);font-size:var(--text-md);margin-bottom:var(--space-2);background:var(--color-background-primary);color:var(--color-text-primary)}.search-controls{display:flex;gap:var(--space-2);align-items:center;margin-bottom:var(--space-2)}.search-controls .search-input{margin-bottom:0;flex:1}.search-results{max-height:60vh;overflow-y:auto;background:var(--color-background-primary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);padding:0 var(--screen-pad-inline)}#addFoodModal .modal{display:flex;flex-direction:column;height:100dvh;min-height:100dvh;overflow:hidden;padding-bottom:0}#addFoodModal .modal-body{display:flex;flex-direction:column;flex:1;min-height:0;padding:var(--modal-gap-after-header) var(--screen-pad-inline) calc(var(--modal-pad-bottom) + var(--safe-bottom))}#addFoodModal .search-controls{flex-shrink:0;margin-bottom:0}#addFoodModal .search-results{flex:1;min-height:0;max-height:none;margin-top:var(--space-2);-webkit-overflow-scrolling:touch}.form-group{margin-bottom:0}.form-group label{display:block;font-size:var(--text-xs);font-weight:500;color:var(--color-text-primary);margin-bottom:var(--space-1)}.form-checkbox{display:flex;align-items:center;gap:var(--space-2);margin:0;font-size:var(--text-md);font-weight:400;color:var(--color-text-primary);cursor:pointer}.form-checkbox input{margin:0;width:16px;height:16px;flex-shrink:0;accent-color:var(--color-action-primary)}.form-group input{width:100%;padding:0 var(--space-3);height:var(--input-md-height);border:.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);font-size:var(--text-md);font-family:var(--font-sans);background:var(--color-background-primary);color:var(--color-text-primary)}#addToLogModal .modal-body,#personalizeModal .modal-body,#backupDataModal .modal-body{display:flex;flex-direction:column;row-gap:var(--space-4)}#createFoodForm .modal-body__scroll,#editFoodForm .modal-body__scroll{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:var(--space-2);row-gap:var(--space-4);align-content:start}#createFoodForm .modal-body__scroll>.form-group:first-child,#createFoodForm .modal-body__scroll>.form-checkbox,#editFoodForm .modal-body__scroll>.form-group:first-child{grid-column:1 / -1}#createFoodForm .modal-body__scroll>#createFoodReferenceMeasure,#editFoodForm .modal-body__scroll>#editFoodReferenceMeasure{grid-column:1 / 3;min-width:0}#createFoodForm .modal-body__scroll>.default-serving-size,#editFoodForm .modal-body__scroll>.default-serving-size{grid-column:3 / 5;min-width:0}#createFoodForm .modal-body__scroll>.macro-input-group,#editFoodForm .modal-body__scroll>.macro-input-group{grid-column:1 / -1;margin-bottom:0}#createFoodForm .macro-input-group .form-group,#editFoodForm .macro-input-group .form-group{margin-bottom:0;min-width:0}#createFoodReferenceMeasure .measure-input,#createFoodForm .modal-body__scroll>.default-serving-size .serving-size-input,#editFoodReferenceMeasure .measure-input,#editFoodForm .modal-body__scroll>.default-serving-size .serving-size-input{width:100%}#createFoodReferenceMeasure .measure-input__unit .dropdown-trigger,#editFoodReferenceMeasure .measure-input__unit .dropdown-trigger{min-width:52px}#createFoodReferenceMeasure .measure-input__unit .dropdown-menu,#editFoodReferenceMeasure .measure-input__unit .dropdown-menu{min-width:7rem}#personalizeModal .modal,#backupDataModal .modal{display:flex;flex-direction:column;height:100dvh;min-height:100dvh;max-height:100dvh;overflow:hidden;overscroll-behavior:contain;padding-bottom:0}#personalizeModal .modal-header,#backupDataModal .modal-header{position:relative;top:auto;flex-shrink:0;z-index:2}#personalizeModal .modal-body,#backupDataModal .modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;touch-action:pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:var(--modal-gap-after-header) var(--screen-pad-inline) calc(var(--modal-pad-bottom) + var(--safe-bottom))}#createFoodModal .modal-body,#editFoodModal .modal-body{overflow:visible}#addToLogModal .modal-body{display:flex;flex-direction:column;row-gap:0;overflow:hidden}#addToLogModal .modal-body__scroll{display:flex;flex-direction:column;row-gap:var(--space-4);flex:1 1 auto;min-height:0;overflow-x:visible;overflow-y:auto;touch-action:pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}#addToLogModal .add-to-log-fields,#addToLogModal .add-to-log-fields .form-group{overflow:visible}#addToLogModal .dropdown-menu{z-index:300}.measure-input{overflow:visible}#appMenuDropdown .dropdown-menu{min-width:200px}#appMenuDropdown .dropdown-trigger.btn-icon{width:var(--icon-button-size);padding:0;justify-content:center}#appMenuDropdown .dropdown-trigger .caret{display:none}.menu-item-btn{width:100%;text-align:left;padding:var(--space-3);font-size:var(--text-md);color:var(--color-text-primary);cursor:pointer;border:none;background:none;font-family:var(--font-sans);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.profile-measures-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,.72fr);gap:var(--space-2);align-items:end}.profile-age-field{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.profile-age-field label{display:block;font-size:var(--text-xs);font-weight:500;color:var(--color-text-primary);margin-bottom:0}.profile-age-field input{width:100%;padding:0 var(--space-3);height:var(--input-md-height);border:.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);font-size:var(--text-md);font-family:var(--font-sans);background:var(--color-background-primary);color:var(--color-text-primary);min-width:0}.measure-input{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.measure-input__label{display:block;font-size:var(--text-xs);font-weight:500;color:var(--color-text-primary);margin:0}.measure-input__control{display:flex;align-items:stretch;border:.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);background:var(--color-background-primary);min-width:0;overflow:visible}.measure-input__control:focus-within{border-color:var(--focus-ring);box-shadow:var(--focus-ring-shadow)}.measure-input__field{flex:1;min-width:0;border:none;height:var(--input-md-height);padding:0 var(--space-3);font-size:var(--text-md);font-family:var(--font-sans);background:transparent;color:var(--color-text-primary)}.measure-input__field:focus{outline:none;box-shadow:none}.measure-input__unit{flex:0 0 auto;position:relative;border-left:.5px solid var(--color-border-tertiary)}.measure-input__unit .dropdown-trigger{border:none;border-radius:0;height:var(--input-md-height);min-width:56px;padding:0 10px;background:transparent}.measure-input__unit .dropdown-menu{z-index:300}.radio-fieldset{border:none;margin:0;padding:0}.radio-fieldset legend{font-size:var(--text-xs);font-weight:500;color:var(--color-text-primary);margin-bottom:var(--space-2);padding:0}.radio-fieldset-legend{display:inline-flex;align-items:center;gap:2px}.radio-row{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.field-info-tip{position:relative;display:inline-flex;align-items:center;flex-shrink:0}.info-tip-btn{width:32px;height:32px;border:none;background:transparent;color:var(--color-text-secondary);cursor:help;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:50%;font-family:var(--font-sans);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.info-tip-btn .lucide{width:var(--text-md);height:var(--text-md)}.info-tip-btn:focus-visible{outline:none;box-shadow:var(--focus-ring-shadow)}.info-tip-content{position:fixed;left:0;top:0;width:min(272px,calc(100vw - 16px));padding:var(--space-2) 10px;font-size:var(--text-xs);line-height:1.45;font-weight:400;color:var(--color-text-primary);background:var(--color-background-primary);border:.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);box-shadow:0 4px 12px var(--color-shadow-md);opacity:0;visibility:hidden;pointer-events:none;z-index:1100;text-align:left}.field-info-tip.is-tip-open .info-tip-content{opacity:1;visibility:visible;pointer-events:auto}.radio-pill{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-md);color:var(--color-text-primary);cursor:pointer;padding:6px 10px;border:.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);background:var(--color-background-primary)}.radio-pill:has(input:checked){background:var(--color-background-highlight);border-color:var(--color-border-highlight);color:var(--color-text-highlight)}.radio-pill input{margin:0}.profile-section{display:flex;flex-direction:column;gap:0}.profile-section .profile-measures-row+.radio-fieldset,.profile-section .radio-fieldset+.radio-fieldset{margin-top:8px}.targets-section{display:flex;flex-direction:column;gap:0;margin-top:var(--modal-section-gap-above-divider);padding-top:var(--modal-section-pad-below-divider);border-top:.5px solid var(--color-divider-strong)}.targets-section .targets-hint{margin-top:8px}.profile-section__header,.targets-section__header{display:flex;align-items:center;gap:2px;margin:0}.section-heading,.profile-section__header h4,.targets-section__header h4,.settings-section h4{margin:0;font-size:var(--text-md);font-weight:600;color:var(--color-text-primary)}.section-description{margin:var(--section-title-description-gap) 0 var(--section-description-content-gap);font-size:var(--text-sm);line-height:1.45;color:var(--color-text-primary)}.settings-section .section-description:last-child{margin-bottom:0}.targets-levels-list{display:flex;flex-direction:column;gap:var(--space-2)}.targets-level-row{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2) var(--inset-pad-inline);border-radius:var(--border-radius-md);background:var(--color-background-inset);border:.5px solid var(--color-divider-strong)}.targets-level-row__name{font-size:var(--text-sm);font-weight:600;color:var(--color-text-primary);line-height:1.3}.targets-level-row__fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-1);align-items:end}.targets-level-row .form-group{margin:0;min-width:0}.targets-level-row .profile-target-label-row{display:flex;align-items:center;gap:var(--space-1);margin-bottom:var(--space-1);min-width:0}.targets-level-row .profile-target-label-row label{margin:0;line-height:1.25;flex:0 1 auto;min-width:0;overflow-wrap:anywhere}.targets-level-row .profile-target-field input{box-sizing:border-box;width:100%;min-width:0;height:var(--input-md-height);padding:0 var(--space-2);font-size:var(--text-md);font-family:var(--font-sans);border:.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);background:var(--color-background-primary);color:var(--color-text-primary)}.targets-level-row .profile-target-lock-icon{flex-shrink:0;width:12px;height:12px;color:var(--color-text-secondary);opacity:0;pointer-events:none}.targets-level-row .profile-target-field.is-locked .profile-target-lock-icon{opacity:1}.targets-hint{font-size:var(--text-xs);line-height:1.45;color:var(--color-text-secondary);margin:0}.targets-hint .profile-target-lock-icon{opacity:1;display:inline-block;vertical-align:-2px;margin-right:4px}.targets-hint .btn-text-link{display:inline;align-self:auto;vertical-align:baseline}.targets-hint[hidden]{display:none}.btn-text-link{margin:0;padding:0;border:none;background:none;color:var(--color-link);font-family:var(--font-sans);font-size:var(--text-xs);font-weight:500;cursor:pointer;text-decoration:underline;text-underline-offset:2px;align-self:flex-start}.save-toast{position:fixed;bottom:calc(1rem + var(--safe-bottom));left:50%;transform:translate(-50%);background:var(--color-text-primary);color:var(--color-on-primary);font-size:var(--text-sm);padding:10px 16px;border-radius:var(--border-radius-md);z-index:1100;opacity:0;pointer-events:none;transition:opacity .2s ease}.save-toast.is-visible{opacity:1}.modal--primary-footer{display:flex;flex-direction:column;height:100dvh;min-height:100dvh;max-height:100dvh;overflow:hidden;padding-bottom:0}.modal--primary-footer .modal-header{position:relative;top:auto;flex-shrink:0;z-index:2}.modal--primary-footer .modal-body{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden;padding:var(--modal-gap-after-header) var(--screen-pad-inline) 0}.modal--primary-footer .modal-body__scroll{flex:1 1 auto;min-height:0;overflow-x:visible;overflow-y:auto;touch-action:pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.modal--primary-footer #editFoodForm,.modal--primary-footer #createFoodForm{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.modal--primary-footer #editFoodForm .modal-body__scroll,.modal--primary-footer #createFoodForm .modal-body__scroll{flex:1 1 auto;min-height:0}.modal--primary-footer .modal-secondary-actions{flex-shrink:0;margin-top:0;padding-top:var(--space-3);padding-bottom:var(--space-3)}.modal--primary-footer .modal-footer{flex-shrink:0;padding:var(--space-3) var(--screen-pad-inline) calc(var(--space-3) + var(--safe-bottom));background:var(--color-background-primary);border-top:.5px solid var(--color-divider)}.modal--primary-footer .modal-footer .btn-block{width:100%}.serving-input-group{display:flex;gap:var(--space-2);margin-bottom:0;align-items:stretch;overflow:visible}.serving-input-group .form-group{margin-bottom:0}.serving-input-group .reference-size,.serving-input-group .serving-unit,.serving-input-group .default-serving-size{flex:1 1 0;min-width:0}.serving-input-group .reference-size .measure-input__unit .dropdown-trigger{min-width:52px}.serving-input-group .reference-size .measure-input__unit .dropdown-menu{min-width:7rem}.serving-input-group .serving-unit .dropdown{display:block;width:100%}.serving-input-group .field-separator{width:1px;background:var(--color-divider);margin-top:1.75rem;flex-shrink:0}.macro-input-group{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2);margin-bottom:0}.macro-input-group .form-group{margin-bottom:0;min-width:0}.form-select{width:100%;height:var(--input-md-height);padding:0 var(--space-3);border:.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);font-size:var(--text-md);font-family:var(--font-sans);background:var(--color-background-primary);color:var(--color-text-primary)}.form-actions{display:flex;gap:var(--space-2);margin-top:0}.form-actions button{flex:1;min-height:var(--button-md-height);padding:0 var(--button-md-px);font-size:var(--text-md)}.form-actions--single{justify-content:stretch}.form-actions--single button{flex:1 1 auto;width:100%}.log-food-preview{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:var(--space-2);margin-bottom:0;padding:var(--space-2);border-radius:var(--border-radius-md);background:var(--color-background-inset);border:.5px solid var(--color-divider-strong)}.log-food-preview #logFoodPreview{grid-column:1;grid-row:1;min-width:0}.log-food-preview .food-info{gap:var(--space-1)}.log-food-preview__edit-library{grid-column:2;grid-row:1;justify-self:end;flex-shrink:0}.log-food-preview__edit-library[hidden]{display:none}.modal-secondary-actions{margin-top:var(--space-2);padding-top:var(--space-2)}.modal-secondary-actions[hidden]{display:none}.modal-text-action{display:inline-flex;align-items:center;gap:var(--space-1);margin:0;padding:0;border:none;background:none;font-family:var(--font-sans);font-size:var(--text-xs);font-weight:400;line-height:1.45;color:var(--color-text-secondary);cursor:pointer;text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.modal-text-action span{text-decoration:underline;text-underline-offset:2px}.modal-text-action .lucide{width:var(--text-xs);height:var(--text-xs);flex-shrink:0}.modal-text-action[hidden]{display:none}.modal-text-action:focus-visible{outline:none;box-shadow:var(--focus-ring-shadow);border-radius:4px}.quantity-input-group{display:flex;gap:var(--space-2);margin-bottom:0}.quantity-input-group .form-group{margin-bottom:0;flex:1 1 50%;min-width:0}.quantity-input-group input{width:100%;min-width:0;padding:0 var(--space-3);border:.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);font-size:var(--text-md);background:var(--color-background-primary);color:var(--color-text-primary);height:var(--input-md-height)}.quantity-input-group .dropdown{width:100%;min-width:0}.quantity-input-group .dropdown-trigger{height:var(--input-md-height)}.add-to-log-fields{display:flex;gap:var(--space-2);margin-bottom:0}.add-to-log-fields .form-group{flex:1 1 50%;min-width:0}.add-to-log-fields .dropdown{width:100%;min-width:0}.modal-body .dropdown-trigger,.add-to-log-fields .dropdown-trigger,.quantity-input-group .dropdown-trigger{height:var(--input-md-height)}.serving-size-input{display:flex;align-items:stretch;border:.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);background:var(--color-background-primary);min-height:var(--input-md-height);overflow:hidden}.serving-size-input input{flex:1;min-width:0;border:none;border-radius:0;height:var(--input-md-height);padding:0 var(--space-3);font-size:var(--text-md);font-family:var(--font-sans);background:transparent;color:var(--color-text-primary)}.serving-size-input input:focus{border-color:transparent;box-shadow:none}.serving-size-input:focus-within{border-color:var(--focus-ring);box-shadow:var(--focus-ring-shadow)}.serving-size-unit{display:flex;align-items:center;padding:0 var(--space-3);color:var(--color-text-secondary);font-size:var(--text-md);border-left:.5px solid var(--color-border-tertiary);white-space:nowrap}.modal-body .form-group>.dropdown{width:100%}.editable-macros{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-2);margin-bottom:.5rem}.editable-macro{display:flex;flex-direction:column}.editable-macro label{font-size:var(--text-xs);color:var(--color-text-secondary);margin-bottom:var(--space-1);font-weight:500}.editable-macro input{width:100%;padding:0 var(--space-3);height:var(--input-md-height);border:.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);font-size:var(--text-md);font-family:var(--font-sans);background:var(--color-background-primary);color:var(--color-text-primary)}.input-with-clear{position:relative;display:block;width:100%;min-width:0}.input-with-clear>input{width:100%;box-sizing:border-box}.input-with-clear.show-clear>input{padding-right:calc(var(--icon-button-size) + var(--space-1))}.input-clear-btn{position:absolute;top:50%;right:0;z-index:1;transform:translateY(-50%);width:var(--icon-button-size);height:var(--icon-button-size);padding:0;border:none;border-radius:var(--border-radius-md);background:transparent;color:var(--color-text-secondary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.input-clear-btn .lucide,.input-clear-btn svg{pointer-events:none}.input-clear-btn[hidden]{display:none}.input-clear-btn .lucide{width:var(--text-md);height:var(--text-md)}.input-clear-btn:focus-visible{outline:none;box-shadow:var(--focus-ring-shadow)}.search-controls .input-with-clear{flex:1;min-width:0}.search-controls .input-with-clear.show-clear .search-input{padding-right:calc(var(--icon-button-size) + var(--space-1))}.settings-section{margin-top:var(--modal-section-gap-above-divider);padding-top:var(--modal-section-pad-below-divider);border-top:.5px solid var(--color-divider-strong);display:flex;flex-direction:column;gap:0}.settings-section--first{margin-top:0;padding-top:0;border-top:none}.settings-notice{display:flex;align-items:flex-start;gap:var(--space-2);margin:0 0 var(--space-4);font-size:var(--text-xs);line-height:1.45;color:var(--color-text-secondary)}.settings-notice__icon{width:var(--text-md);height:var(--text-md);flex-shrink:0;margin-top:1px;color:var(--color-text-secondary);stroke-width:2}.settings-actions{display:flex;gap:var(--space-2)}.settings-actions button{flex:1;min-height:var(--button-md-height);padding:0 var(--button-md-px);font-size:var(--text-md)}.btn-with-icon{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2)}.btn-with-icon .lucide{width:var(--icon-size);height:var(--icon-size);flex-shrink:0}.auth-gate{width:100%;max-width:var(--app-max-width);margin-left:auto;margin-right:auto;min-height:100dvh;display:none;align-items:center;justify-content:center;padding:var(--space-6);padding-top:calc(var(--space-6) + var(--safe-top));padding-bottom:calc(var(--space-6) + var(--safe-bottom));background:var(--color-background-secondary)}html.show-auth-gate:not(.is-auth-loading):not(.is-auth-callback) .auth-gate:not([hidden]){display:flex}.auth-card{width:100%;max-width:400px;background:var(--color-background-inset);border:.5px solid var(--color-divider-strong);border-radius:var(--border-radius-md);padding:var(--space-8) var(--space-5);text-align:center;box-shadow:none}.auth-card__placeholder{width:72px;height:72px;margin:0 auto 1.25rem;border-radius:var(--border-radius-md);background:var(--color-auth-placeholder);display:flex;align-items:center;justify-content:center;flex-shrink:0}.auth-card__placeholder-x{font-size:2rem;font-weight:300;line-height:1;color:var(--color-auth-placeholder-fg);-webkit-user-select:none;user-select:none}.auth-card h1{margin:0 0 .5rem;font-size:1.375rem;font-weight:600;letter-spacing:-.02em;color:var(--color-text-primary);line-height:1.25}.auth-card__subtitle{margin:0 0 1.25rem;font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.4;font-weight:400}.auth-card__divider{height:1px;margin:0 0 var(--space-5) 0;background:var(--color-divider-strong);border:none}.inline-error,.auth-error{min-height:1.25rem;margin:0 0 1rem;font-size:var(--text-sm);color:var(--color-danger);text-align:center}.auth-error:empty{display:none;margin:0;min-height:0}.auth-card__footer{margin:1.25rem 0 0;font-size:var(--text-xs);color:var(--color-text-secondary);line-height:1.45}.btn-google-sign-in{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:0 16px;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:500;color:var(--color-google-text);background:var(--color-google-surface);border:1px solid var(--color-google-border);border-radius:10px;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;box-shadow:0 1px 2px var(--color-google-shadow)}.btn-google-sign-in:hover{background:var(--color-google-surface-hover)}.btn-google-sign-in:active{background:var(--color-google-surface-active)}.btn-google-sign-in .btn-google-sign-in__icon{flex-shrink:0;width:18px;height:18px}.btn-google-sign-in:focus-visible{outline:none;box-shadow:0 0 0 2px var(--color-background-inset),0 0 0 4px var(--color-action-primary)}.auth-gate[hidden],.app-loading[hidden],.app-container[hidden]{display:none!important}html:not(.is-app-ready) .app-container{display:none!important;visibility:hidden!important}html.is-auth-loading #authGate,html.is-auth-loading #authGate[hidden],html.is-auth-callback #authGate,html.is-auth-callback #authGate[hidden]{display:none!important}html.is-auth-loading #appLoading,html.is-auth-loading #appLoading[hidden],html.is-auth-callback #appLoading,html.is-auth-callback #appLoading[hidden]{display:flex!important}html.is-auth-loading .app-container,html.is-auth-callback .app-container{display:none!important}.app-loading{position:fixed;top:0;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:var(--app-max-width);display:flex;align-items:center;justify-content:center;background:var(--color-loading-scrim);z-index:1200;font-size:var(--text-sm);color:var(--color-text-secondary)}.app-loading--fullscreen{background:var(--color-background-secondary)}.lucide{width:var(--icon-size);height:var(--icon-size);stroke-width:2}.targets-level-row .profile-target-lock-icon,.targets-hint .profile-target-lock-icon,.lucide.profile-target-lock-icon{width:12px;height:12px;flex-shrink:0;color:var(--color-text-secondary)}
