.layout{min-height:100vh;max-width:600px;margin:0 auto;background:var(--color-bg)}@media (min-width: 768px){.layout{max-width:1400px;padding:0 var(--space-4)}}.nav-bar{position:sticky;top:0;display:flex;background:var(--color-surface);border-bottom:1px solid var(--color-border);padding-top:env(safe-area-inset-top);z-index:100}.nav-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:10px 4px;color:var(--color-text-muted);text-decoration:none;transition:color var(--transition-fast)}.nav-tab:hover{color:var(--color-text-secondary)}.nav-tab.active{color:var(--color-primary);font-weight:500;border-bottom:2px solid var(--color-primary)}.nav-tab.disabled{opacity:.5;pointer-events:auto}.nav-tab.disabled:hover{color:var(--color-text-muted)}.nav-icon{width:20px;height:20px}.nav-label{font-size:var(--text-xs)}.nav-debug{flex:.5;border-left:1px solid var(--color-border);color:var(--color-warning, #f59e0b)}.nav-debug.active{color:var(--color-warning, #f59e0b);background:#f59e0b1a}.nav-settings{display:flex;align-items:center;justify-content:center;padding:0 var(--space-2);color:var(--color-text-muted);border-left:1px solid var(--color-border);transition:color var(--transition-fast)}.nav-settings:hover{color:var(--color-text-secondary)}.nav-settings.active{color:var(--color-primary)}.nav-user{display:flex;align-items:center;justify-content:center;padding:0 var(--space-3);border-left:1px solid var(--color-border)}@media (min-width: 640px){.nav-bar{justify-content:center;gap:var(--space-2)}.nav-tab{flex:0 0 auto;flex-direction:row;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md)}.nav-tab.active{background:var(--color-primary-light)}.nav-debug{flex:none;border-left:none;margin-left:auto}.nav-debug.active{background:#f59e0b1a}.nav-label{font-size:var(--text-sm)}}.day-navigator{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);transition:background-color .2s ease}.day-navigator.day-navigator-past{background-color:#fef3c7;border:1px solid #F59E0B}.day-nav-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;color:var(--color-text-secondary);transition:all var(--transition-fast)}.day-nav-btn:hover{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.day-nav-center{flex:1;text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}.day-nav-date{font-size:var(--text-sm);font-weight:500;color:var(--color-text)}.day-nav-relative{font-size:var(--text-xs);font-weight:600;color:#b45309;background:#fde68a;padding:2px 8px;border-radius:var(--radius-sm)}.day-nav-today{font-size:var(--text-xs);padding:var(--space-1) var(--space-2);background:var(--color-primary-light);color:var(--color-primary);border:none;border-radius:var(--radius-sm);cursor:pointer;font-weight:500}.day-nav-today:hover,.day-navigator-past .day-nav-today{background:var(--color-primary);color:#fff}.day-navigator-past .day-nav-today:hover{background:var(--color-primary-dark, #059669)}@media (min-width: 640px){.day-nav-date{font-size:var(--text-base)}}.circular-progress{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);position:relative}.circular-progress__svg{display:block}.circular-progress__bg{opacity:.3}.circular-progress__fill{transition:stroke-dashoffset var(--transition-normal)}.circular-progress__content{position:absolute;top:0;left:0;right:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.circular-progress__value{font-weight:700;color:var(--color-text);line-height:1}.circular-progress__unit{font-size:.6em;color:var(--color-text-muted);line-height:1;margin-top:1px}.circular-progress__label{font-size:var(--text-2xs);font-weight:var(--font-medium);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.circular-progress--sm .circular-progress__content{height:48px}.circular-progress--sm .circular-progress__value{font-size:var(--text-sm)}.circular-progress--md .circular-progress__content{height:64px}.circular-progress--md .circular-progress__value{font-size:var(--text-sm)}.circular-progress--lg .circular-progress__content{height:80px}.circular-progress--lg .circular-progress__value{font-size:var(--text-lg)}.nutrition-summary{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-3);margin-bottom:var(--space-4)}.nutrition-summary.loading{text-align:center;color:var(--color-text-muted);font-size:var(--text-sm);padding:var(--space-6)}.summary-circles{display:flex;justify-content:space-around;align-items:flex-start;padding-bottom:var(--space-3);margin-bottom:var(--space-3);border-bottom:1px solid var(--color-border-light)}.summary-metrics-row{display:flex;justify-content:space-between;align-items:flex-start}.summary-metrics-left{display:flex;gap:var(--space-3)}.summary-metrics-right{display:flex}.summary-item{display:flex;flex-direction:column;align-items:center;gap:2px}.summary-value{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text)}.summary-value.metric-calories{color:var(--color-calories)}.summary-value.metric-protein{color:var(--color-protein)}.summary-value.metric-carbs{color:var(--color-carbs)}.summary-value.metric-fat{color:var(--color-fat)}.summary-value.metric-fiber{color:var(--color-fiber)}.summary-value.metric-sugar{color:var(--color-sugar)}.summary-value.metric-sodium{color:var(--color-sodium)}.summary-value.metric-text{color:var(--color-text-muted)}.summary-label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:lowercase}@media (max-width: 360px){.summary-circles{flex-wrap:wrap;gap:var(--space-3)}}.metric-set-selector{position:relative}.selector-trigger{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);height:32px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--color-text-secondary);cursor:pointer;transition:all .15s ease}.selector-trigger:hover{background:var(--color-surface-hover);border-color:var(--color-border)}.selector-trigger:disabled{opacity:.5;cursor:not-allowed}.selector-label{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chevron{width:14px;height:14px;transition:transform .15s ease;flex-shrink:0}.chevron.open{transform:rotate(180deg)}.selector-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99}.selector-dropdown{position:absolute;top:100%;right:0;margin-top:var(--space-1);min-width:220px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:100;overflow:hidden}.dropdown-item{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:var(--space-3);border:none;background:transparent;text-align:left;cursor:pointer;transition:background .15s ease}.dropdown-item.active{background:var(--color-primary-light)}.item-name{font-weight:500;color:var(--color-text);font-size:var(--text-sm)}.item-description{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:2px}.metric-set-list{display:flex;flex-direction:column;gap:var(--space-2)}.metric-set-option{display:flex;flex-direction:column;width:100%;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-align:left;cursor:pointer;transition:all .15s ease}.metric-set-option:hover{background:var(--color-surface-hover)}.metric-set-option.selected{border-color:var(--color-primary);background:var(--color-primary-light)}.metric-set-option:disabled{opacity:.5;cursor:not-allowed}.option-header{display:flex;justify-content:space-between;align-items:center}.option-name{font-weight:600;color:var(--color-text)}.checkmark{width:20px;height:20px;color:var(--color-primary)}.option-description{font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:var(--space-1)}.adding-entry-card{border:2px dashed var(--color-primary);background:linear-gradient(135deg,var(--color-surface) 0%,#f0f9ff 100%)}.adding-entry-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.adding-entry-label{font-size:var(--text-sm);font-weight:600;color:var(--color-primary);text-transform:uppercase;letter-spacing:.05em}.cancel-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--color-text-muted);padding:var(--space-1);border-radius:var(--radius-sm)}.cancel-btn:hover{color:var(--color-danger);background:#ef44441a}.adding-entry-content{display:flex;flex-direction:column;gap:var(--space-3)}.search-field{position:relative}.search-input-wrapper{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:var(--space-3);width:18px;height:18px;color:var(--color-text-muted);pointer-events:none}.search-input{padding-left:calc(var(--space-3) + 24px);padding-right:var(--space-8)}.clear-btn{position:absolute;right:var(--space-2);display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--color-text-muted);padding:var(--space-1);border-radius:var(--radius-sm)}.clear-btn:hover{color:var(--color-text);background:var(--color-bg)}.search-dropdown{position:absolute;bottom:100%;left:0;right:0;margin-bottom:var(--space-1);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 -4px 12px #0000001a;max-height:200px;overflow-y:auto;z-index:100}.dropdown-loading,.dropdown-empty{padding:var(--space-3);text-align:center;color:var(--color-text-muted);font-size:var(--text-sm)}.dropdown-item{display:flex;flex-direction:column;padding:var(--space-2) var(--space-3);cursor:pointer;border-bottom:1px solid var(--color-border)}.dropdown-item:last-child{border-bottom:none}.dropdown-item:hover{background:var(--color-bg)}.dropdown-item-name{font-weight:500;color:var(--color-text)}.dropdown-item-info{font-size:var(--text-xs);color:var(--color-text-muted)}.dropdown-item-interactive{flex-direction:row;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3);min-height:48px}.dropdown-item-interactive .dropdown-item-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.dropdown-item-qty{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.inline-qty-input{width:64px;padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);text-align:center;background:var(--color-surface);color:var(--color-text)}.inline-qty-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb26}.inline-qty-unit{font-size:var(--text-sm);color:var(--color-text-muted);white-space:nowrap}.recents-section{margin-top:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);overflow:hidden}.recents-label{padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.entry-fields-row{display:flex;gap:var(--space-3)}.field-group{display:flex;flex-direction:column;gap:var(--space-1)}.quantity-field{flex:1}.time-field{width:110px}.field-label{font-size:var(--text-xs);font-weight:500;color:var(--color-text-secondary)}.field-hint{font-size:var(--text-xs);color:var(--color-text-muted)}.meal-type-row{display:flex;gap:var(--space-1)}.meal-btn{flex:1;padding:var(--space-1) var(--space-2);font-size:var(--text-xs);font-weight:500;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-secondary);transition:all .15s ease}.meal-btn:hover{background:var(--color-surface);border-color:var(--color-primary)}.meal-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.save-btn{margin-top:var(--space-1)}.error-message{background:#fee2e2;color:var(--color-danger);padding:var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-sm)}.loading-spinner{position:absolute;right:var(--space-2);display:flex;align-items:center;color:var(--color-primary)}.spinner-icon{animation:spin 1s linear infinite}.quick-add-status{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);color:var(--color-primary);font-size:var(--text-base);font-weight:600}.quick-add-status .spinner-icon{width:28px;height:28px}.modal-content{background:var(--color-background);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:500px;max-height:90vh;display:flex;flex-direction:column}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4);border-bottom:1px solid var(--color-border);flex-shrink:0}.modal-title{font-size:var(--text-lg);font-weight:600;margin:0}.modal-close{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:var(--space-1);display:flex;align-items:center;justify-content:center}.modal-close:hover{color:var(--color-text)}.modal-body{padding:var(--space-4);overflow-y:auto;flex:1}.modal-body .recipe-name{font-size:var(--text-xl);margin:0 0 var(--space-4) 0}.servings-control{display:flex;align-items:center;gap:var(--space-3)}.servings-input{width:120px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:600;text-align:center;background:var(--color-surface);color:var(--color-text)}.servings-unit{color:var(--color-text-muted);font-size:var(--text-sm)}.label-hint{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:calc(-1 * var(--space-1));margin-bottom:var(--space-2)}.ingredients-checklist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-2)}.ingredient-check-item{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-3)}.checkbox-label{display:flex;align-items:center;gap:var(--space-3);cursor:pointer}.checkbox-label input[type=checkbox]{display:none}.checkbox-custom{width:22px;height:22px;border:2px solid var(--color-border);border-radius:var(--radius-sm);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .2s}.checkbox-label input:checked+.checkbox-custom{background:var(--color-primary);border-color:var(--color-primary)}.checkbox-label input:checked+.checkbox-custom:after{content:"✓";color:#fff;font-size:14px;font-weight:700}.ingredient-info{flex:1;display:flex;justify-content:space-between;align-items:center}.ingredient-name{font-weight:500}.ingredient-qty{color:var(--color-text-secondary);font-size:var(--text-sm)}.modal-footer{padding:var(--space-4);border-top:1px solid var(--color-border);flex-shrink:0}.error-message{background:#fee2e2;color:var(--color-danger);padding:var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);margin-top:var(--space-3)}.meal-toggle-btn{flex:1;min-width:70px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;transition:all .2s}.meal-toggle-btn:hover{background:var(--color-border)}.meal-toggle-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.recipe-name .deleted-badge{font-size:var(--text-sm);font-weight:400;color:var(--color-text-muted);font-style:italic;margin-left:var(--space-2)}.orphaned-notice{font-size:var(--text-sm);color:var(--color-text-muted);font-style:italic;margin:0 0 var(--space-4) 0;padding:var(--space-2) var(--space-3);background:var(--color-surface);border-radius:var(--radius-sm);border-left:3px solid var(--color-text-muted)}.ingredient-readonly{padding-left:var(--space-4)}.portion-mode-toggle{display:flex;margin-bottom:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.portion-mode-btn{flex:1;padding:var(--space-2) var(--space-3);border:none;background:var(--color-surface);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all .2s;color:var(--color-text-muted)}.portion-mode-btn:first-child{border-right:1px solid var(--color-border)}.portion-mode-btn.active{background:var(--color-primary);color:#fff}.portion-mode-btn:not(.active):hover{background:var(--color-border)}.serving-hint{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-2);margin-bottom:0}.serving-hint-notice{padding:var(--space-2) var(--space-3);background:var(--color-surface);border-radius:var(--radius-sm);border-left:3px solid var(--color-warning, #F59E0B);line-height:1.4}.serving-hint-link{color:var(--color-primary);text-decoration:underline}.btn-secondary{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text)}.btn-secondary:hover{background:var(--color-border)}.diary-table-wrapper{overflow-x:auto;max-width:100%;border:1px solid var(--color-border);border-radius:var(--radius-md)}.diary-table{border-collapse:collapse;white-space:nowrap;width:max-content;min-width:100%;font-size:13px}.diary-table thead th{position:sticky;top:0;z-index:1;background:#f4f0eb;padding:6px 10px;font-weight:600;font-size:11px;letter-spacing:.02em;color:var(--color-text-secondary);border-bottom:2px solid var(--color-border);text-align:left}.diary-table thead th.col-frozen{z-index:4;background:#ede8e1}.diary-table thead th.col-nutrient{text-align:right}.col-frozen{position:sticky;left:0;z-index:3;background:var(--color-surface);box-shadow:2px 0 4px #0000000f;min-width:200px;max-width:280px}.diary-table td{padding:6px 10px;border-bottom:1px solid var(--color-border);color:var(--color-text)}.diary-table td.col-nutrient{text-align:right;font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.diary-table td.col-time{color:var(--color-text-muted);font-size:12px}.diary-table td.col-qty{font-weight:500}.entry-row{cursor:pointer}.entry-row:hover td,.entry-row:hover td.col-frozen{background:var(--color-bg)}.food-row td.col-name{font-weight:500}.recipe-row td{background:linear-gradient(135deg,var(--color-surface) 0%,#f0f9ff 100%)}.recipe-row td.col-frozen{border-left:3px solid var(--color-primary);background:linear-gradient(135deg,var(--color-surface) 0%,#f0f9ff 100%)}.recipe-row:hover td,.recipe-row:hover td.col-frozen{background:linear-gradient(135deg,#f0f9ff,#e0f2fe)}.recipe-name-cell{display:flex;align-items:center;gap:4px;font-weight:500}.orphaned-row td{opacity:.7;background:var(--color-surface)}.orphaned-row td.col-frozen{border-left:3px solid var(--color-text-muted);background:var(--color-surface)}.deleted-badge{font-size:11px;color:var(--color-text-muted);font-style:italic}.expand-btn{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:2px;color:var(--color-text-muted);flex-shrink:0}.expand-btn:hover{color:var(--color-text)}.expand-chevron{transition:transform .2s ease}.expand-chevron.expanded{transform:rotate(180deg)}.ingredient-subrow td{background:var(--color-bg);border-bottom:1px solid var(--color-border);font-size:12px}.ingredient-subrow td.col-frozen{background:var(--color-bg)}.ingredient-subrow:hover td,.ingredient-subrow:hover td.col-frozen{background:#f0f0f0}.ingredient-name-cell{padding-left:28px!important}.ingredient-indent{color:var(--color-text-secondary)}.meal-separator-row td,.meal-separator-row td.col-frozen{background:var(--color-bg)}.meal-separator-cell{padding:8px 10px 4px!important;border-bottom:1px solid var(--color-border)!important}.meal-separator-cell .table-meal-badge{font-size:11px;padding:2px 8px}.table-meal-badge{font-size:10px;font-weight:500;padding:1px 5px;border-radius:var(--radius-sm);text-transform:capitalize}.table-meal-badge.meal-breakfast{background-color:#fef3c7;color:#b45309}.table-meal-badge.meal-lunch{background-color:#d1fae5;color:#047857}.table-meal-badge.meal-dinner{background-color:#dbeafe;color:#1d4ed8}.table-meal-badge.meal-snack{background-color:#ede9fe;color:#7c3aed}.page-header-row{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2)}.page-header-row .view-toggle{margin-left:auto}.page-header-row .page-title{margin-bottom:0}.diary-content-cap,.meal-groups{max-width:560px}.meal-groups{display:flex;flex-direction:column;gap:var(--space-6)}.meal-group-header{font-size:var(--text-sm);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-2);padding-bottom:var(--space-1);border-bottom:1px solid var(--color-border)}.entries-list{display:flex;flex-direction:column;gap:var(--space-2)}.entry-card.card{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3)}.entry-main{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-2)}.entry-left{display:flex;flex-direction:column;gap:var(--space-1)}.entry-header{display:flex;align-items:center;gap:var(--space-2)}.entry-time{font-size:var(--text-xs);color:var(--color-text-muted)}.meal-badge{font-size:10px;font-weight:500;padding:2px 6px;border-radius:var(--radius-sm);text-transform:capitalize}.meal-badge.meal-breakfast{background-color:#fef3c7;color:#b45309}.meal-badge.meal-lunch{background-color:#d1fae5;color:#047857}.meal-badge.meal-dinner{background-color:#dbeafe;color:#1d4ed8}.meal-badge.meal-snack{background-color:#ede9fe;color:#7c3aed}.entry-name{font-weight:500;color:var(--color-text)}.entry-right{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-1)}.entry-quantity{font-size:var(--text-sm);font-weight:600;color:var(--color-text);white-space:nowrap}.entry-metric-middle{font-size:var(--text-xs);white-space:nowrap}.entry-nutrition{display:flex;flex-wrap:wrap;gap:var(--space-2)}.nutrition-item{font-size:var(--text-xs);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:var(--color-bg)}.nutrition-item.calories{color:var(--color-calories)}.nutrition-item.protein{color:var(--color-protein)}.nutrition-item.carbs{color:var(--color-carbs)}.nutrition-item.fat{color:var(--color-fat)}.metric-calories{color:var(--color-calories)}.metric-protein{color:var(--color-protein)}.metric-carbs{color:var(--color-carbs)}.metric-fat{color:var(--color-fat)}.metric-fiber{color:var(--color-fiber, #10B981)}.metric-sugar{color:var(--color-sugar, #F59E0B)}.metric-sodium{color:var(--color-sodium, #6366F1)}.metric-text{color:var(--color-text-secondary)}.entry-card.recipe-entry{background:linear-gradient(135deg,var(--color-surface) 0%,#f0f9ff 100%);border-left:3px solid var(--color-primary)}.entry-card.recipe-entry:hover{background:linear-gradient(135deg,#f0f9ff,#e0f2fe)}.expand-toggle-inline{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--color-text-muted);padding:var(--space-1);margin-right:var(--space-2)}.expand-toggle-inline:hover{color:var(--color-text)}.expand-icon{width:16px;height:16px;transition:transform .2s ease}.expand-icon.expanded{transform:rotate(180deg)}.recipe-ingredients-list{margin-left:var(--space-4);border-left:2px solid var(--color-border);padding-left:var(--space-3);margin-top:var(--space-1)}.ingredient-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) var(--space-3);background:var(--color-surface);border-radius:var(--radius-sm);margin-bottom:var(--space-1);cursor:pointer;font-size:var(--text-sm)}.ingredient-row:hover{background:var(--color-bg)}.ingredient-name{flex:1;color:var(--color-text)}.ingredient-quantity{color:var(--color-text-secondary);margin:0 var(--space-2)}.ingredient-calories{color:var(--color-text-muted);font-size:var(--text-xs)}.add-buttons-row{display:flex;gap:var(--space-2);max-width:560px}.add-entry-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-1);flex:1;padding:var(--space-3);background:var(--color-surface);border:2px dashed var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all .15s ease}.add-entry-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light)}.add-entry-btn:active{transform:scale(.98)}.date-choice-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4)}.date-choice-modal{background:#fff;border-radius:var(--radius-lg);padding:var(--space-6);max-width:320px;width:100%;text-align:center;box-shadow:0 10px 40px #0003}.date-choice-title{margin:0 0 var(--space-1) 0;font-size:var(--text-lg);font-weight:600;color:var(--color-text)}.date-choice-subtitle{margin:0 0 var(--space-4) 0;font-size:var(--text-sm);color:var(--color-text-muted)}.date-choice-buttons{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-4)}.date-choice-btn{display:flex;flex-direction:column;align-items:center;padding:var(--space-4);border-radius:var(--radius-md);border:2px solid var(--color-border);background:var(--color-surface);cursor:pointer;transition:all .15s ease}.date-choice-btn:hover{border-color:var(--color-primary);background:var(--color-primary-light)}.date-choice-btn-label{font-size:var(--text-base);font-weight:600;color:var(--color-text)}.date-choice-btn-hint{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-1)}.date-choice-viewing{border-color:#f59e0b;background:#fef3c7}.date-choice-viewing:hover{border-color:#d97706;background:#fde68a}.date-choice-viewing .date-choice-btn-label{color:#b45309}.date-choice-today{border-color:var(--color-primary);background:var(--color-primary-light)}.date-choice-today:hover{background:var(--color-primary)}.date-choice-today:hover .date-choice-btn-label{color:#fff}.date-choice-today:hover .date-choice-btn-hint{color:#fffc}.date-choice-cancel{background:none;border:none;color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer;padding:var(--space-2)}.date-choice-cancel:hover{color:var(--color-text)}.date-rollover-toast{position:fixed;bottom:80px;left:50%;transform:translate(-50%);background:#1f2937;color:#fff;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);display:flex;align-items:center;gap:var(--space-3);box-shadow:0 4px 20px #0000004d;z-index:1000;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translate(-50%) translateY(20px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.date-rollover-toast span{font-size:var(--text-sm);font-weight:500}.toast-today-btn{background:var(--color-primary);color:#fff;border:none;padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:500;cursor:pointer}.toast-today-btn:hover{background:var(--color-primary-dark, #059669)}.toast-dismiss-btn{background:none;border:none;color:#fff9;font-size:var(--text-base);cursor:pointer;padding:var(--space-1);line-height:1}.toast-dismiss-btn:hover{color:#fff}.entry-card.orphaned-recipe{opacity:.85;cursor:default}.entry-card.orphaned-recipe:hover{border-color:var(--color-border);background-color:var(--color-surface)}.deleted-badge{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:400;font-style:italic}.search-container{display:flex;flex-direction:column;gap:var(--space-4)}.search-input-wrapper{position:relative}.search-icon{position:absolute;left:var(--space-3);top:50%;transform:translateY(-50%);width:20px;height:20px;color:var(--color-text-muted);pointer-events:none;z-index:1}.search-input{padding-left:44px!important}.search-loading{text-align:center;color:var(--color-text-muted);padding:var(--space-4)}.search-results{display:flex;flex-direction:column;gap:var(--space-2)}.search-result{display:flex;flex-direction:column;gap:var(--space-1)}.result-name{font-size:var(--text-base);font-weight:500;color:var(--color-text)}.result-info{font-size:var(--text-sm);color:var(--color-text-secondary)}.search-hint{text-align:center;padding:var(--space-4) var(--space-4) var(--space-2)}.recipes-section{margin-top:var(--space-4)}.recipes-section-title{font-size:var(--text-sm);font-weight:500;color:var(--color-text);margin-bottom:var(--space-2)}.recipes-list{display:flex;flex-direction:column;gap:var(--space-2)}.recipe-item{display:flex;flex-direction:column;gap:var(--space-1)}.recipe-item .recipe-name{font-size:16px!important;font-weight:500;color:var(--color-text)}.recipe-item .recipe-info{font-size:14px!important;color:var(--color-text-secondary)}.datetime-row{display:flex;gap:var(--space-3);margin-bottom:var(--space-4)}.date-field{flex:1}.time-field{width:120px}.food-info{margin-bottom:var(--space-6)}.food-name{font-size:var(--text-xl);margin-bottom:var(--space-1)}.food-serving{font-size:var(--text-sm)}.food-logged{margin-top:var(--space-2)}.quantity-calc{margin-top:var(--space-1)}.error-message{background:#fee2e2;color:var(--color-danger);padding:var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-4);font-size:var(--text-sm)}.delete-section{margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--color-border)}.foods-table-wrapper{overflow-x:auto;max-width:100%;border:1px solid var(--color-border);border-radius:var(--radius-md)}.foods-table{border-collapse:collapse;white-space:nowrap;min-width:100%;font-size:13px}.foods-table thead th{position:sticky;top:0;z-index:1;background:#f4f0eb;padding:6px 12px;font-weight:600;font-size:11px;letter-spacing:.02em;color:var(--color-text-secondary);border-bottom:2px solid var(--color-border);text-align:left}.foods-table thead th.col-frozen{z-index:4;background:#ede8e1}.foods-table thead th.col-num{text-align:right}.foods-table .col-frozen{position:sticky;left:0;z-index:3;background:var(--color-surface);box-shadow:2px 0 4px #0000000f;min-width:180px;max-width:300px}.foods-table td{padding:8px 12px;border-bottom:1px solid var(--color-border);color:var(--color-text)}.foods-table td.col-name{font-weight:500}.foods-table td.col-serving{color:var(--color-text-secondary)}.foods-table td.col-num{text-align:right;font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.foods-table td.col-source{display:flex;align-items:center;gap:6px}.foods-table .food-row{cursor:pointer}.foods-table .food-row:hover td,.foods-table .food-row:hover td.col-frozen{background:var(--color-bg)}.foods-table .source-badge{font-size:10px;padding:1px 6px;border-radius:var(--radius-sm);font-weight:500}.foods-table .source-badge.usda,.foods-table .source-badge.seeded{background:#e0f2fe;color:#0369a1}.foods-table .source-badge.custom{background:#f3e8ff;color:#7c3aed}.foods-table .source-badge.shared{background:#ccfbf1;color:#0d9488}.foods-table .source-badge.imported{background:#fef3c7;color:#b45309}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.page-header .page-title{margin-bottom:0}.add-btn{background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-full);width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s}.add-btn:hover{background:var(--color-primary-hover)}.add-btn:disabled{opacity:.5;cursor:not-allowed}.search-container{position:relative;margin-bottom:var(--space-4);max-width:560px}.search-icon{position:absolute;left:var(--space-3);top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none}.search-input{width:100%;padding:var(--space-3);padding-left:calc(var(--space-3) + 24px);padding-right:calc(var(--space-3) + 24px);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);background:var(--color-surface)}.search-input:focus{outline:none;border-color:var(--color-primary)}.search-clear{position:absolute;right:var(--space-2);top:50%;transform:translateY(-50%);background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:var(--space-1);display:flex;align-items:center;justify-content:center}.search-clear:hover{color:var(--color-text)}.food-card{padding:var(--space-3);transition:box-shadow .3s,border-color .3s}.food-card-highlighted{border-color:var(--color-primary);box-shadow:0 0 0 2px #22c55e33;animation:highlight-pulse 1s ease-in-out 2}@keyframes highlight-pulse{0%,to{box-shadow:0 0 0 2px #22c55e33}50%{box-shadow:0 0 0 4px #22c55e4d}}.food-card-name{font-weight:500;margin-bottom:var(--space-1)}.food-card-details{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-sm)}.food-card-serving{color:var(--color-text-secondary)}.food-card-badges{display:flex;align-items:center;gap:6px}.food-card-source{font-size:var(--text-xs);padding:2px 6px;border-radius:var(--radius-sm);font-weight:500}.food-card-source.usda,.food-card-source.seeded{background:#e0f2fe;color:#0369a1}.food-card-source.custom{background:#f3e8ff;color:#7c3aed}.food-card-source.shared{background:#ccfbf1;color:#0d9488}.food-card-source.imported{background:#fef3c7;color:#b45309}.foods-count{color:var(--color-text-muted);font-size:var(--text-sm);margin-left:auto}.source-filter{display:flex;gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;max-width:560px}.source-filter-btn{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--text-sm);cursor:pointer;transition:all .15s}.source-filter-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.source-filter-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.food-form{display:flex;flex-direction:column;gap:var(--space-4)}.form-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4)}.form-section-title{font-size:var(--text-sm);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.shared-notice{display:flex;align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm)}.confirm-delete p{margin-bottom:var(--space-4);color:var(--color-danger);font-weight:500}.dirty-indicator{color:var(--color-primary);margin-left:4px;font-weight:400}.header-right{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}.source-badge{font-size:11px;padding:3px 8px;border-radius:var(--radius-sm);font-weight:500;white-space:nowrap}.source-badge.usda,.source-badge.seeded{background:#e0f2fe;color:#0369a1}.source-badge.custom{background:#f3e8ff;color:#7c3aed}.source-badge.shared{background:#ccfbf1;color:#0d9488}.view-toggle-btn{padding:var(--space-2);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);transition:all .15s ease}.view-toggle-btn:hover{background:var(--color-background);color:var(--color-text)}.food-form-grid,.grid-groups-container{display:flex;flex-direction:column;gap:var(--space-3)}@media (min-width: 768px){.grid-groups-container{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}}.grid-group-box{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.grid-group-title{font-size:11px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;padding:6px 12px;background:#00000008;border-bottom:1px solid var(--color-border)}.grid-row{display:grid;grid-template-columns:120px 1fr;align-items:center;border-bottom:1px solid var(--color-border)}.grid-row:last-child{border-bottom:none}.grid-label{font-size:13px;color:#6b7280;padding:6px 12px;background:#00000005;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid-label .required{color:var(--color-danger);margin-left:2px}.grid-input{border:none;background:transparent;padding:6px 12px;font-size:13px;width:100%;outline:none;min-height:32px;color:var(--color-text)}.grid-input:focus{background:#22c55e0d}.grid-input::placeholder{color:var(--color-text-secondary);opacity:.5}.grid-input[type=number]::-webkit-outer-spin-button,.grid-input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.grid-input[type=number]{-moz-appearance:textfield}.grid-actions{display:flex;gap:var(--space-2);align-items:center;padding:var(--space-2) 0}.btn-compact{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);min-height:36px}.btn-danger-link{background:none;border:none;color:var(--color-danger);cursor:pointer;font-size:var(--text-sm);padding:var(--space-2);margin-left:auto;opacity:.7}.btn-danger-link:hover{opacity:1;text-decoration:underline}.confirm-delete-inline{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:#fee2e2;border-radius:var(--radius-md);font-size:var(--text-sm)}.confirm-delete-inline span{color:var(--color-danger);margin-right:var(--space-2)}.btn-sm{padding:var(--space-1) var(--space-2);font-size:var(--text-xs);min-height:28px}@media (min-width: 480px){.grid-row{grid-template-columns:140px 1fr}}.recipe-detail-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.recipe-detail-modal{background:#fff;border-radius:12px;width:calc(100vw - 32px);max-width:900px;max-height:90vh;overflow:hidden;position:relative}.recipe-detail-content{overflow-y:auto;max-height:90vh}.modal-close-btn{position:absolute;top:var(--space-3);right:var(--space-3);z-index:10;background:#ffffffe6;border:none;border-radius:var(--radius-full);width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text-muted);transition:all .2s}.modal-close-btn:hover{background:var(--color-background);color:var(--color-text)}.recipe-detail-content{overflow-y:auto;flex:1}.recipe-detail-image{position:relative;width:100%;aspect-ratio:16 / 9;background:linear-gradient(135deg,var(--color-primary-light) 0%,var(--color-accent-light) 100%);overflow:hidden}.recipe-detail-image img{width:100%;height:100%;object-fit:cover}.recipe-detail-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--color-primary);opacity:.5}.recipe-detail-actions-overlay{position:absolute;bottom:var(--space-3);right:var(--space-3);display:flex;gap:var(--space-2);background:#ffffffe6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:var(--radius-md);padding:var(--space-1)}.recipe-action-btn{width:36px;height:36px;border:none;border-radius:var(--radius-sm);background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.recipe-action-btn.edit-btn{color:var(--color-primary)}.recipe-action-btn.edit-btn:hover{background:var(--color-primary-light)}.recipe-action-btn.delete-btn{color:var(--color-danger)}.recipe-action-btn.delete-btn:hover{background:#ef44441a}.recipe-detail-header{padding:var(--space-4) var(--space-4) var(--space-2)}.recipe-detail-title{font-size:var(--text-2xl);font-weight:700;margin:0 0 var(--space-2) 0;color:var(--color-text);word-wrap:break-word}.recipe-detail-meta{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;color:var(--color-text-muted)}.recipe-meta-item{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-sm)}.recipe-source-link{color:var(--color-primary);text-decoration:none;cursor:pointer;background:none;border:none;font:inherit;padding:0}.recipe-source-link:hover{text-decoration:underline}.recipe-original-text{white-space:pre-wrap;word-wrap:break-word;font-family:inherit;font-size:var(--text-sm);line-height:1.6;color:var(--color-text-secondary);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);margin:0;max-height:400px;overflow-y:auto}.recipe-detail-section{padding:0 var(--space-4) var(--space-4)}.recipe-detail-section h3{font-size:var(--text-lg);font-weight:600;margin:0 0 var(--space-3) 0;color:var(--color-text)}.recipe-detail-description{color:var(--color-text-secondary);font-size:var(--text-base);line-height:1.5;white-space:pre-wrap;margin:var(--space-3) 0 0 0;padding:var(--space-3) var(--space-4);background:var(--color-surface);border-radius:var(--radius-md)}.recipe-detail-notes{color:var(--color-text-secondary);line-height:1.6;white-space:pre-wrap;margin:0}.recipe-detail-ingredients{list-style:none;margin:0;padding:0}.recipe-detail-ingredients li{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-2) 0;color:var(--color-text-secondary);line-height:1.5}.ingredient-bullet{width:6px;height:6px;background:var(--color-primary);border-radius:50%;flex-shrink:0;margin-top:8px}.recipe-detail-instructions{list-style:none;margin:0;padding:0;counter-reset:none}.recipe-detail-instructions li{display:flex;gap:var(--space-3);padding:var(--space-2) 0;color:var(--color-text-secondary);line-height:1.6}.instruction-number{width:28px;height:28px;background:var(--color-primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:600;flex-shrink:0}@media print{#root{display:none}.recipe-detail-overlay{position:static;background:none;padding:0}.recipe-detail-modal{max-width:none;max-height:none;border-radius:0;box-shadow:none;width:100%}.modal-close-btn,.recipe-detail-actions-overlay{display:none}.recipe-detail-content{max-height:none;overflow:visible}}.recipes-table-wrapper{overflow-x:auto;max-width:100%;border:1px solid var(--color-border);border-radius:var(--radius-md)}.recipes-table{border-collapse:collapse;white-space:nowrap;min-width:100%;font-size:13px}.recipes-table thead th{position:sticky;top:0;z-index:1;background:#f4f0eb;padding:6px 12px;font-weight:600;font-size:11px;letter-spacing:.02em;color:var(--color-text-secondary);border-bottom:2px solid var(--color-border);text-align:left}.recipes-table thead th.col-frozen{z-index:4;background:#ede8e1}.recipes-table thead th.col-num{text-align:right}.recipes-table thead th.col-action{width:40px}.recipes-table .col-frozen{position:sticky;left:0;z-index:3;background:var(--color-surface);box-shadow:2px 0 4px #0000000f;min-width:180px;max-width:280px}.recipes-table td{padding:8px 12px;border-bottom:1px solid var(--color-border);color:var(--color-text)}.recipes-table td.col-name{font-weight:500}.recipes-table td.col-desc{color:var(--color-text-secondary);max-width:300px;overflow:hidden;text-overflow:ellipsis}.recipes-table td.col-num{text-align:right;font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.recipes-table td.col-action{text-align:center;padding:4px 8px}.recipes-table .recipe-row{cursor:pointer}.recipes-table .recipe-row:hover td,.recipes-table .recipe-row:hover td.col-frozen{background:var(--color-bg)}.table-delete-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;opacity:0;transition:all .15s ease}.recipe-row:hover .table-delete-btn{opacity:1}.table-delete-btn:hover{background:#fee2e2;color:#dc2626}@media (hover: none){.table-delete-btn{opacity:1}}.shared-icon-table{color:var(--color-text-muted)}.recipe-card{padding:var(--space-3)}.recipe-card-name{font-weight:500;margin-bottom:var(--space-1)}.recipe-card-description{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-card-meta{display:flex;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-text-muted)}.recipe-servings:before{content:"";display:inline-block;width:4px;height:4px;background:var(--color-text-muted);border-radius:50%;margin-right:var(--space-2);vertical-align:middle}.recipe-time:before{content:"";display:inline-block;width:4px;height:4px;background:var(--color-text-muted);border-radius:50%;margin-right:var(--space-2);vertical-align:middle}.recipe-ingredients:before{content:"";display:inline-block;width:4px;height:4px;background:var(--color-text-muted);border-radius:50%;margin-right:var(--space-2);vertical-align:middle}.header-buttons{display:flex;align-items:center;gap:var(--space-sm)}.import-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:var(--gray-100);border:1px solid var(--gray-200);border-radius:var(--radius-md);color:var(--gray-600);cursor:pointer;transition:all .15s ease}.import-btn:hover:not(:disabled){background:var(--gray-200);color:var(--color-primary)}.import-btn:disabled{opacity:.5;cursor:not-allowed}.link-btn{background:none;border:none;padding:0;color:var(--color-primary);font-size:inherit;cursor:pointer;text-decoration:underline}.link-btn:hover{color:var(--green-700)}.recipe-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-2)}.recipe-card-header .recipe-card-name{flex:1}.shared-icon{color:var(--color-text-muted);flex-shrink:0}.recipe-delete-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--gray-400);cursor:pointer;opacity:0;transition:all .15s ease}.recipe-card:hover .recipe-delete-btn{opacity:1}.recipe-delete-btn:hover{background:#fee2e2;color:#dc2626}@media (hover: none){.recipe-delete-btn{opacity:1}}.modal{background:#fff;border-radius:var(--radius-lg);padding:var(--space-lg);max-width:400px;width:100%;box-shadow:0 20px 25px -5px #0000001a}.delete-modal h2{margin:0 0 var(--space-md);font-size:var(--font-lg);color:var(--gray-900)}.delete-modal p{margin:0 0 var(--space-sm);color:var(--gray-600)}.delete-warning{font-size:var(--font-sm);color:var(--gray-500)}.modal-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-lg);justify-content:flex-end}.modal-actions .btn{padding:10px 16px;font-weight:500}.btn-danger:hover:not(:disabled){background:#b91c1c}.btn-danger:disabled{opacity:.6;cursor:not-allowed}.recipe-preview{padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-lg);max-width:600px;margin:0 auto}.preview-image{width:100%;aspect-ratio:16 / 9;border-radius:var(--radius-md);overflow:hidden;background:var(--gray-100)}.preview-image img{width:100%;height:100%;object-fit:cover}.preview-section{display:flex;flex-direction:column;gap:var(--space-xs)}.preview-section label{font-size:var(--font-sm);font-weight:600;color:var(--gray-700)}.preview-section input,.preview-section textarea{width:100%;padding:12px;border:1px solid var(--gray-300);border-radius:var(--radius-md);font-size:var(--font-md);font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease;resize:vertical}.preview-section input:focus,.preview-section textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #22c55e1a}.preview-section input:disabled,.preview-section textarea:disabled{background:var(--gray-50);color:var(--gray-500)}.preview-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md)}.preview-field{display:flex;flex-direction:column;gap:var(--space-xs)}.preview-field label{font-size:var(--font-xs);font-weight:600;color:var(--gray-600)}.preview-field input{padding:10px;border:1px solid var(--gray-300);border-radius:var(--radius-sm);font-size:var(--font-md);text-align:center}.preview-field input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #22c55e1a}.source-section .source-link{display:inline-flex;align-items:center;gap:var(--space-xs);color:var(--color-primary);text-decoration:none;font-size:var(--font-sm)}.source-section .source-link:hover{text-decoration:underline}.reimport-section{padding:var(--space-sm) var(--space-md);background:var(--amber-50);border:1px solid var(--amber-200);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--space-sm)}.reimport-hint{font-size:var(--font-xs);color:var(--amber-800);margin:0}.reimport-btn{align-self:flex-start;display:flex;align-items:center;gap:var(--space-xs);padding:8px 12px;font-size:var(--font-sm);background:#fff;border:1px solid var(--amber-300);color:var(--amber-800)}.reimport-btn:hover:not(:disabled){background:var(--amber-100);border-color:var(--amber-400)}.reimport-btn:disabled{opacity:.6;cursor:not-allowed}.preview-info{padding:var(--space-sm) var(--space-md);background:var(--blue-50);border:1px solid var(--blue-100);border-radius:var(--radius-sm);color:var(--blue-700);font-size:var(--font-xs)}.ingredient-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:2px}.ingredient-list li{padding:var(--space-sm) var(--space-md);background:var(--gray-50);border-radius:var(--radius-sm);font-size:var(--font-sm);color:var(--gray-700)}.ingredient-list li:nth-child(2n){background:var(--gray-100)}.instruction-list{margin:0;padding:0 0 0 var(--space-lg);display:flex;flex-direction:column;gap:var(--space-sm)}.instruction-list li{font-size:var(--font-sm);color:var(--gray-700);line-height:1.5;padding-left:var(--space-xs)}.instruction-list li::marker{color:var(--color-primary);font-weight:600}.preview-actions{display:flex;gap:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--gray-200)}.preview-actions .btn{flex:1;padding:14px;font-size:var(--font-md);font-weight:600;display:flex;align-items:center;justify-content:center;gap:var(--space-sm)}.preview-actions .btn-secondary{background:var(--gray-100);color:var(--gray-700);border:1px solid var(--gray-300)}.preview-actions .btn-secondary:hover:not(:disabled){background:var(--gray-200)}.preview-actions .btn-primary{background:linear-gradient(to right,var(--color-primary),var(--green-600));color:#fff;border:none}.preview-actions .btn:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 480px){.preview-row{grid-template-columns:1fr 1fr 1fr;gap:var(--space-sm)}.preview-field input{padding:8px;font-size:var(--font-sm)}}.ingredient-matcher{padding:var(--space-md);max-width:600px;margin:0 auto}.matcher-loading,.matcher-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-xl);text-align:center;color:var(--gray-600)}.matcher-error{color:var(--red-600)}.matcher-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.matcher-header h2{font-size:var(--font-lg);font-weight:600;margin:0}.matcher-progress{font-size:var(--font-sm);color:var(--gray-500)}.matcher-instructions{padding:var(--space-sm) var(--space-md);background:var(--blue-50);border:1px solid var(--blue-100);border-radius:var(--radius-sm);color:var(--blue-700);font-size:var(--font-sm);margin-bottom:var(--space-md)}.matcher-list{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-lg)}.matcher-actions{display:flex;gap:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--gray-200)}.matcher-actions .btn{flex:1;padding:14px;font-size:var(--font-md);font-weight:600;display:flex;align-items:center;justify-content:center;gap:var(--space-sm)}.ingredient-row{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-md);overflow:hidden}.ingredient-row.matched{border-color:var(--green-200);background:var(--green-50)}.ingredient-row.unmatched{border-color:var(--amber-200);background:var(--amber-50)}.ingredient-original{padding:var(--space-sm) var(--space-md);display:flex;flex-direction:column;gap:2px}.ingredient-text{font-size:var(--font-sm);color:var(--gray-800);font-weight:500}.ingredient-parsed{font-size:var(--font-xs);color:var(--gray-500)}.ingredient-match{padding:var(--space-xs) var(--space-md);background:#00000008;border-top:1px solid var(--gray-100);display:flex;align-items:center;justify-content:space-between}.match-selected,.match-needed{display:flex;align-items:center;gap:var(--space-sm)}.match-food-name{font-size:var(--font-sm);display:flex;align-items:center;gap:var(--space-xs)}.no-match-badge{font-size:var(--font-xs);color:var(--amber-700);background:var(--amber-100);padding:2px 8px;border-radius:var(--radius-full)}.btn-icon{background:transparent;border:none;padding:4px;cursor:pointer;color:var(--gray-500);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.btn-icon:hover{background:var(--gray-200);color:var(--gray-700)}.confidence-badge{font-size:var(--font-xs);font-weight:600;padding:2px 6px;border-radius:var(--radius-sm);min-width:36px;text-align:center}.confidence-high{background:var(--green-100);color:var(--green-700)}.confidence-medium{background:var(--amber-100);color:var(--amber-700)}.confidence-low{background:var(--gray-100);color:var(--gray-600)}.ingredient-options{padding:var(--space-sm) var(--space-md) var(--space-md);border-top:1px solid var(--gray-100);display:flex;flex-direction:column;gap:var(--space-sm)}.match-search{position:relative}.match-search input{width:100%;padding:8px 12px;border:1px solid var(--gray-300);border-radius:var(--radius-sm);font-size:var(--font-sm)}.match-search input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #22c55e1a}.search-spinner{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--gray-400)}.match-candidates{display:flex;flex-direction:column;gap:2px}.candidate-btn{display:flex;align-items:center;gap:var(--space-sm);padding:8px 12px;background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-sm);cursor:pointer;text-align:left;transition:background .15s ease}.candidate-btn:hover{background:var(--gray-50);border-color:var(--color-primary)}.candidate-name{flex:1;font-size:var(--font-sm);color:var(--gray-700)}.candidate-calories{font-size:var(--font-xs);color:var(--gray-500)}.no-candidates{padding:var(--space-sm);text-align:center;color:var(--gray-500);font-size:var(--font-sm)}.create-food-btn{align-self:flex-start;font-size:var(--font-sm);color:var(--color-primary);display:flex;align-items:center;gap:var(--space-xs);padding:6px 10px}.create-food-btn:hover{background:var(--green-50)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;padding:var(--space-md);z-index:1000}.modal{background:#fff;border-radius:var(--radius-lg);width:100%;max-width:400px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md);border-bottom:1px solid var(--gray-200)}.modal-header h2{font-size:var(--font-lg);font-weight:600;margin:0}.modal-close{color:var(--gray-400)}.modal-close:hover{color:var(--gray-600)}.modal-body{padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-md)}.modal-error{padding:var(--space-sm);background:var(--red-50);border:1px solid var(--red-200);border-radius:var(--radius-sm);color:var(--red-700);font-size:var(--font-sm)}.modal-actions{display:flex;gap:var(--space-sm);padding-top:var(--space-sm)}.modal-actions .btn{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-xs)}.form-field{display:flex;flex-direction:column;gap:4px}.form-field label{font-size:var(--font-xs);font-weight:600;color:var(--gray-600)}.form-field input,.form-field select{padding:10px 12px;border:1px solid var(--gray-300);border-radius:var(--radius-sm);font-size:var(--font-sm);font-family:inherit}.form-field input:focus,.form-field select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #22c55e1a}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}.nutrition-row{grid-template-columns:repeat(4,1fr)}.form-section{display:flex;flex-direction:column;gap:var(--space-sm)}.form-section-label{font-size:var(--font-xs);font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.5px}.form-helper{font-size:var(--font-xs);color:var(--gray-500);margin:0}@media (max-width: 480px){.nutrition-row{grid-template-columns:repeat(2,1fr)}}.ingredient-row.no-match{border-color:var(--red-200);background:var(--red-50)}.status-badge{font-size:var(--font-xs);padding:2px 8px;border-radius:var(--radius-full);margin-left:var(--space-xs)}.status-no-match{background:var(--red-100);color:var(--red-700)}.status-needs-review{background:var(--amber-100);color:var(--amber-700)}.status-ai-resolved{background:var(--blue-100);color:var(--blue-700)}.match-reason{font-size:var(--font-xs);color:var(--gray-500);font-style:italic;display:block;margin-top:2px}.matcher-warning{padding:var(--space-sm) var(--space-md);background:var(--amber-50);border:1px solid var(--amber-200);border-radius:var(--radius-sm);color:var(--amber-800);font-size:var(--font-sm);margin-bottom:var(--space-md)}.search-tabs{display:flex;gap:2px;background:var(--gray-100);padding:2px;border-radius:var(--radius-sm);margin-bottom:var(--space-sm)}.search-tab{flex:1;padding:6px 12px;background:transparent;border:none;border-radius:calc(var(--radius-sm) - 2px);font-size:var(--font-xs);font-weight:500;color:var(--gray-600);cursor:pointer;transition:all .15s ease}.search-tab:hover{color:var(--gray-800)}.search-tab.active{background:#fff;color:var(--gray-800);box-shadow:0 1px 2px #0000001a}.match-search{display:flex;gap:var(--space-xs)}.match-search input{flex:1}.search-btn{padding:8px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--font-sm);font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:70px}.search-btn:hover:not(:disabled){background:var(--green-600)}.search-btn:disabled{opacity:.6;cursor:not-allowed}.usda-results{display:flex;flex-direction:column;gap:var(--space-xs);max-height:300px;overflow-y:auto}.usda-result-btn{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm);background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-sm);cursor:pointer;width:100%;text-align:left;font-family:inherit;font-size:inherit;transition:all .15s ease}.usda-result-btn:hover:not(:disabled){border-color:var(--color-primary);background:var(--green-50)}.usda-result-btn:disabled{opacity:.7;cursor:wait}.usda-result-btn .usda-result-info{flex:1;min-width:0;overflow:hidden}.usda-result-btn .usda-result-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-sm);color:var(--gray-800)}.usda-result-btn .usda-result-meta{display:flex;flex-wrap:wrap;gap:4px;font-size:var(--font-xs);color:var(--gray-500);margin-top:2px}.usda-import-label{font-size:var(--font-xs);font-weight:600;color:#fff;background:var(--color-primary);padding:4px 8px;border-radius:var(--radius-sm);flex-shrink:0;white-space:nowrap}.usda-brand{color:var(--blue-600)}.usda-type{background:var(--gray-100);padding:1px 6px;border-radius:var(--radius-sm)}.usda-calories{color:var(--gray-600)}.usda-hint{font-size:var(--font-xs);color:var(--gray-500);margin:var(--space-xs) 0 0;text-align:center}.header-action-btn{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-secondary);padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all .15s ease}.header-action-btn:hover{background:var(--gray-100);color:var(--color-text)}.recipe-form{display:flex;flex-direction:column;gap:var(--space-4)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.section-header .form-section-title{margin:0}.section-header-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.no-items-msg{color:var(--color-text-muted);font-style:italic;margin:0 0 var(--space-3) 0}.ingredients-editor{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-3)}.ingredient-row{display:flex;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);align-items:flex-start}.ingredient-row.matched{background:var(--green-50);border-left:3px solid var(--green-400)}.ingredient-row.unmatched{background:var(--amber-50);border-left:3px solid var(--amber-400)}.ingredient-status-btn{flex-shrink:0;background:none;border:none;padding:4px;cursor:pointer;border-radius:var(--radius-sm);transition:background-color .15s ease;margin-top:2px}.ingredient-status-btn:hover:not(:disabled){background:#00000014}.ingredient-status-btn:disabled{cursor:default;opacity:.6}.status-icon.matched{color:var(--green-600)}.status-icon.unmatched{color:var(--amber-600)}.status-icon.matching{color:var(--color-primary);animation:spin 1s linear infinite}.ingredient-content{flex:1;min-width:0}.ingredient-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-1)}.ingredient-primary{font-weight:500;color:var(--color-text);line-height:1.3}.ingredient-matched-to{font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:var(--space-2)}.matched-food-name{color:var(--green-700);font-weight:500}.ingredient-fields{display:grid;grid-template-columns:70px 70px 1fr;gap:var(--space-2)}.ingredient-qty,.ingredient-unit{text-align:center}.ingredient-unmatched-hint{font-size:var(--text-xs);color:var(--amber-600);font-style:italic}.remove-btn{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:var(--space-1);display:flex;align-items:center;justify-content:center}.remove-btn:hover{color:var(--color-danger)}.food-search-panel{margin-top:var(--space-2)}.search-input-wrap{display:flex;gap:var(--space-2)}.search-input-wrap .input{flex:1}.cancel-search-btn{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:var(--space-2);font-size:var(--text-sm)}.cancel-search-btn:hover{color:var(--color-text)}.search-loading{padding:var(--space-3);color:var(--color-text-muted);text-align:center}.food-search-results{list-style:none;padding:0;margin:var(--space-2) 0 0 0;border:1px solid var(--color-border);border-radius:var(--radius-md);max-height:200px;overflow-y:auto}.food-result-btn{width:100%;display:flex;justify-content:space-between;align-items:center;padding:var(--space-3);background:none;border:none;border-bottom:1px solid var(--color-border);cursor:pointer;text-align:left}.food-result-btn:last-child{border-bottom:none}.food-result-btn:hover{background:var(--color-surface)}.food-result-name{font-weight:500}.food-result-serving{font-size:var(--text-sm);color:var(--color-text-muted)}.no-results{padding:var(--space-3);color:var(--color-text-muted);text-align:center;font-style:italic}.add-ingredient-btn{width:100%}.instructions-editor{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-3)}.instruction-row{display:flex;align-items:center;gap:var(--space-2)}.instruction-number{font-weight:500;color:var(--color-text-muted);min-width:24px}.instruction-input{flex:1}.add-step-btn{width:100%}.textarea{resize:vertical;min-height:80px}.action-buttons{display:flex;gap:var(--space-3)}.action-buttons .btn{flex:1}.action-buttons .btn-secondary{background-color:#f3f4f6;border:none;color:var(--color-text)}.action-buttons .btn-secondary:hover{background-color:#e5e7eb}.delete-section{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.delete-link.btn-ghost{width:100%;color:var(--color-danger);background-color:#fee2e2}.delete-link.btn-ghost:hover{background-color:#fecaca}.confirm-delete{background:#fee2e2;padding:var(--space-4);border-radius:var(--radius-md);text-align:center}.confirm-delete p{margin-bottom:var(--space-2);color:var(--color-danger);font-weight:500}.confirm-delete .delete-warning-detail{font-size:var(--text-sm);font-weight:400;color:var(--color-text-secondary);margin-bottom:var(--space-4)}.confirm-buttons{display:flex;gap:var(--space-3);justify-content:center}.error-message{background:#fee2e2;color:var(--color-danger);padding:var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm)}.image-upload-section{margin-top:var(--space-2)}.image-preview-container{display:flex;flex-direction:column;gap:var(--space-2)}.image-preview{width:100%;max-height:300px;object-fit:contain;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--gray-100)}.image-actions{display:flex;gap:var(--space-2)}.image-actions .btn{cursor:pointer}.image-upload-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-6);border:2px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;transition:all .15s ease}.image-upload-placeholder:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--gray-50)}.image-upload-placeholder svg{opacity:.5}.image-upload-placeholder:hover svg{opacity:.8}.image-upload-placeholder span{font-size:var(--text-sm);font-weight:500}.replace-image-confirm{margin-top:var(--space-3);padding:var(--space-3);background:var(--amber-50);border:1px solid var(--amber-200);border-radius:var(--radius-md);text-align:center}.replace-image-confirm p{margin:0 0 var(--space-3) 0;color:var(--amber-700);font-weight:500}.import-form{padding:0 var(--space-md);display:flex;flex-direction:column;gap:var(--space-lg);max-width:480px;margin:0 auto}.import-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;background-color:var(--gray-100);padding:4px;border-radius:var(--radius-md)}.import-tab{padding:10px 16px;border:none;background:transparent;font-size:var(--font-sm);font-weight:500;color:var(--gray-600);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.import-tab:hover:not(.active){color:var(--gray-800)}.import-tab.active{background:#fff;color:var(--color-primary);box-shadow:0 1px 3px #0000001a}.import-input-section{display:flex;flex-direction:column;gap:var(--space-xs)}.import-input-section label{font-size:var(--font-sm);font-weight:500;color:var(--gray-700)}.input-with-icon{position:relative}.input-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--gray-400);pointer-events:none}.input-with-icon input{width:100%;padding:12px 12px 12px 40px;border:1px solid var(--gray-300);border-radius:var(--radius-md);font-size:var(--font-md);transition:border-color .15s ease,box-shadow .15s ease}.input-with-icon input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #22c55e1a}.input-with-icon input::placeholder{color:var(--gray-400)}.input-helper{font-size:var(--font-xs);color:var(--gray-500);margin:0}.file-input-wrapper{position:relative}.file-input-wrapper input[type=file]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.file-select-btn{display:inline-flex;align-items:center;gap:var(--space-xs);padding:12px 20px;background:#fff;border:2px dashed var(--gray-300);border-radius:var(--radius-md);color:var(--gray-600);font-size:var(--font-md);font-weight:500;cursor:pointer;transition:all .15s ease;width:100%;justify-content:center}.file-select-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--green-50)}.file-select-btn:disabled{opacity:.6;cursor:not-allowed}.selected-file{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm);background:var(--gray-50);border-radius:var(--radius-sm);font-size:var(--font-sm);color:var(--gray-700);margin-top:var(--space-xs)}.selected-file svg{color:var(--gray-500);flex-shrink:0}.file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size{color:var(--gray-500);flex-shrink:0}.error-banner{padding:var(--space-md);background:#fee2e2;border:1px solid #FECACA;border-radius:var(--radius-md);color:#991b1b}.error-banner strong{display:block;margin-bottom:var(--space-xs)}.error-banner p{margin:0;font-size:var(--font-sm)}.import-btn{width:100%;padding:14px;display:flex;align-items:center;justify-content:center;gap:var(--space-sm);font-size:var(--font-md);font-weight:600;background:linear-gradient(to right,var(--color-primary),var(--green-600))}.import-btn:disabled{opacity:.7;cursor:not-allowed}.spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.page-header .back-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:transparent;border:none;color:var(--gray-600);cursor:pointer;border-radius:var(--radius-sm);transition:background-color .15s ease}.page-header .back-btn:hover{background:var(--gray-100)}.page-header .back-btn:disabled{opacity:.5;cursor:not-allowed}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-md)}.modal{background:#fff;border-radius:var(--radius-lg);padding:var(--space-lg);max-width:400px;width:100%;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.duplicate-modal h2{margin:0 0 var(--space-md);font-size:var(--font-lg);color:var(--gray-900)}.duplicate-modal p{margin:0 0 var(--space-sm);font-size:var(--font-md);color:var(--gray-600)}.duplicate-modal p strong{color:var(--gray-900)}.duplicate-modal-actions{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-lg)}.duplicate-modal-actions .btn{width:100%;padding:12px;font-weight:500}.btn-danger{background:#dc2626;color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer}.btn-danger:hover{background:#b91c1c}.duplicate-modal-hint{margin-top:var(--space-md)!important;font-size:var(--font-xs)!important;color:var(--gray-500)!important;font-style:italic}.duplicate-modal-warning{padding:var(--space-sm) var(--space-md);background:#fef3c7;border:1px solid #F59E0B;border-radius:var(--radius-sm);color:#92400e;font-size:var(--font-sm);margin:var(--space-sm) 0}.duplicate-modal-actions .btn:disabled{opacity:.5;cursor:not-allowed}.recipe-name-banner{padding:var(--space-sm) var(--space-md);margin:0 var(--space-md) var(--space-sm);background:var(--gray-100);border-radius:var(--radius-md);font-size:var(--font-md);font-weight:600;color:var(--gray-700);text-align:center}.tabulator{background-color:#888;border:1px solid #999;font-size:14px;overflow:hidden;position:relative;text-align:left;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.tabulator[tabulator-layout=fitDataFill] .tabulator-tableholder .tabulator-table{min-width:100%}.tabulator[tabulator-layout=fitDataTable]{display:inline-block}.tabulator.tabulator-block-select,.tabulator.tabulator-ranges .tabulator-cell:not(.tabulator-editing){-webkit-user-select:none;user-select:none}.tabulator .tabulator-header{background-color:#e6e6e6;border-bottom:1px solid #999;box-sizing:border-box;color:#555;font-weight:700;outline:none;overflow:hidden;position:relative;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;white-space:nowrap;width:100%}.tabulator .tabulator-header.tabulator-header-hidden{display:none}.tabulator .tabulator-header .tabulator-header-contents{overflow:hidden;position:relative}.tabulator .tabulator-header .tabulator-header-contents .tabulator-headers{display:inline-block}.tabulator .tabulator-header .tabulator-col{background:#e6e6e6;border-right:1px solid #aaa;box-sizing:border-box;display:inline-flex;flex-direction:column;justify-content:flex-start;overflow:hidden;position:relative;text-align:left;vertical-align:bottom}.tabulator .tabulator-header .tabulator-col.tabulator-moving{background:#cdcdcd;border:1px solid #999;pointer-events:none;position:absolute}.tabulator .tabulator-header .tabulator-col.tabulator-range-highlight{background-color:#d6d6d6;color:#000}.tabulator .tabulator-header .tabulator-col.tabulator-range-selected{background-color:#3876ca;color:#fff}.tabulator .tabulator-header .tabulator-col .tabulator-col-content{box-sizing:border-box;padding:4px;position:relative}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-popup-button{padding:0 8px}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-popup-button:hover{cursor:pointer;opacity:.6}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title-holder{position:relative}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap;width:100%}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title.tabulator-col-title-wrap{text-overflow:clip;white-space:normal}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title .tabulator-title-editor{background:#fff;border:1px solid #999;box-sizing:border-box;padding:1px;width:100%}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title .tabulator-header-popup-button+.tabulator-title-editor{width:calc(100% - 22px)}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-sorter{align-items:center;bottom:0;display:flex;position:absolute;right:4px;top:0}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-sorter .tabulator-arrow{border-bottom:6px solid #bbb;border-left:6px solid transparent;border-right:6px solid transparent;height:0;width:0}.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols{border-top:1px solid #aaa;display:flex;margin-right:-1px;overflow:hidden;position:relative}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter{box-sizing:border-box;margin-top:2px;position:relative;text-align:center;width:100%}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter textarea{height:auto!important}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter svg{margin-top:3px}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input::-ms-clear{height:0;width:0}.tabulator .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title{padding-right:25px}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable.tabulator-col-sorter-element:hover{background-color:#cdcdcd;cursor:pointer}}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-col-sorter{color:#bbb}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-col-sorter.tabulator-col-sorter-element .tabulator-arrow:hover{border-bottom:6px solid #555;cursor:pointer}}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-col-sorter .tabulator-arrow{border-bottom:6px solid #bbb;border-top:none}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=ascending] .tabulator-col-content .tabulator-col-sorter{color:#666}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=ascending] .tabulator-col-content .tabulator-col-sorter.tabulator-col-sorter-element .tabulator-arrow:hover{border-bottom:6px solid #555;cursor:pointer}}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=ascending] .tabulator-col-content .tabulator-col-sorter .tabulator-arrow{border-bottom:6px solid #666;border-top:none}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=descending] .tabulator-col-content .tabulator-col-sorter{color:#666}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=descending] .tabulator-col-content .tabulator-col-sorter.tabulator-col-sorter-element .tabulator-arrow:hover{border-top:6px solid #555;cursor:pointer}}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=descending] .tabulator-col-content .tabulator-col-sorter .tabulator-arrow{border-bottom:none;border-top:6px solid #666;color:#666}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical .tabulator-col-content .tabulator-col-title{align-items:center;display:flex;justify-content:center;text-orientation:mixed;writing-mode:vertical-rl}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-col-vertical-flip .tabulator-col-title{transform:rotate(180deg)}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-col-title{padding-right:0;padding-top:20px}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable.tabulator-col-vertical-flip .tabulator-col-title{padding-bottom:20px;padding-right:0}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-col-sorter{bottom:auto;justify-content:center;left:0;right:0;top:4px}.tabulator .tabulator-header .tabulator-frozen{left:0;position:sticky;z-index:11}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left{border-right:2px solid #aaa}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right{border-left:2px solid #aaa}.tabulator .tabulator-header .tabulator-calcs-holder{background:#f3f3f3!important;border-bottom:1px solid #aaa;border-top:1px solid #aaa;box-sizing:border-box;display:inline-block}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row{background:#f3f3f3!important}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle{display:none}.tabulator .tabulator-header .tabulator-frozen-rows-holder{display:inline-block}.tabulator .tabulator-header .tabulator-frozen-rows-holder:empty{display:none}.tabulator .tabulator-tableholder{-webkit-overflow-scrolling:touch;overflow:auto;position:relative;white-space:nowrap;width:100%}.tabulator .tabulator-tableholder:focus{outline:none}.tabulator .tabulator-tableholder .tabulator-placeholder{align-items:center;box-sizing:border-box;display:flex;justify-content:center;min-width:100%;width:100%}.tabulator .tabulator-tableholder .tabulator-placeholder[tabulator-render-mode=virtual]{min-height:100%}.tabulator .tabulator-tableholder .tabulator-placeholder .tabulator-placeholder-contents{color:#ccc;display:inline-block;font-size:20px;font-weight:700;padding:10px;text-align:center;white-space:normal}.tabulator .tabulator-tableholder .tabulator-table{background-color:#fff;color:#333;display:inline-block;overflow:visible;position:relative;white-space:nowrap}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs{background:#e2e2e2!important;font-weight:700}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-top{border-bottom:2px solid #aaa}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-bottom{border-top:2px solid #aaa}.tabulator .tabulator-tableholder .tabulator-range-overlay{top:0;right:0;bottom:0;left:0;pointer-events:none;position:absolute;z-index:10}.tabulator .tabulator-tableholder .tabulator-range-overlay .tabulator-range{border:1px solid #2975dd;box-sizing:border-box;position:absolute}.tabulator .tabulator-tableholder .tabulator-range-overlay .tabulator-range.tabulator-range-active:after{background-color:#2975dd;border-radius:999px;bottom:-3px;content:"";height:6px;position:absolute;right:-3px;width:6px}.tabulator .tabulator-tableholder .tabulator-range-overlay .tabulator-range-cell-active{border:2px solid #2975dd;box-sizing:border-box;position:absolute}.tabulator .tabulator-footer{background-color:#e6e6e6;border-top:1px solid #999;color:#555;font-weight:700;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;white-space:nowrap}.tabulator .tabulator-footer .tabulator-footer-contents{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:5px 10px}.tabulator .tabulator-footer .tabulator-footer-contents:empty{display:none}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs{margin-top:-5px;overflow-x:auto}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab{border:1px solid #999;border-bottom-left-radius:5px;border-bottom-right-radius:5px;border-top:none;display:inline-block;font-size:.9em;padding:5px}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab:hover{cursor:pointer;opacity:.7}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab.tabulator-spreadsheet-tab-active{background:#fff}.tabulator .tabulator-footer .tabulator-calcs-holder{background:#f3f3f3!important;border-bottom:1px solid #aaa;border-top:1px solid #aaa;box-sizing:border-box;overflow:hidden;text-align:left;width:100%}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row{background:#f3f3f3!important;display:inline-block}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle{display:none}.tabulator .tabulator-footer .tabulator-calcs-holder:only-child{border-bottom:none;margin-bottom:-5px}.tabulator .tabulator-footer>*+.tabulator-page-counter{margin-left:10px}.tabulator .tabulator-footer .tabulator-page-counter{font-weight:400}.tabulator .tabulator-footer .tabulator-paginator{color:#555;flex:1;font-family:inherit;font-size:inherit;font-weight:inherit;text-align:right}.tabulator .tabulator-footer .tabulator-page-size{border:1px solid #aaa;border-radius:3px;display:inline-block;margin:0 5px;padding:2px 5px}.tabulator .tabulator-footer .tabulator-pages{margin:0 7px}.tabulator .tabulator-footer .tabulator-page{background:#fff3;border:1px solid #aaa;border-radius:3px;display:inline-block;margin:0 2px;padding:2px 5px}.tabulator .tabulator-footer .tabulator-page.active{color:#d00}.tabulator .tabulator-footer .tabulator-page:disabled{opacity:.5}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-footer .tabulator-page:not(disabled):hover{background:#0003;color:#fff;cursor:pointer}}.tabulator .tabulator-col-resize-handle{display:inline-block;margin-left:-3px;margin-right:-3px;position:relative;vertical-align:middle;width:6px;z-index:11}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-col-resize-handle:hover{cursor:ew-resize}}.tabulator .tabulator-col-resize-handle:last-of-type{margin-right:0;width:3px}.tabulator .tabulator-col-resize-guide{background-color:#999;height:100%;margin-left:-.5px;opacity:.5;position:absolute;top:0;width:4px}.tabulator .tabulator-row-resize-guide{background-color:#999;height:4px;left:0;margin-top:-.5px;opacity:.5;position:absolute;width:100%}.tabulator .tabulator-alert{align-items:center;background:#0006;display:flex;height:100%;left:0;position:absolute;text-align:center;top:0;width:100%;z-index:100}.tabulator .tabulator-alert .tabulator-alert-msg{background:#fff;border-radius:10px;display:inline-block;font-size:16px;font-weight:700;margin:0 auto;padding:10px 20px}.tabulator .tabulator-alert .tabulator-alert-msg.tabulator-alert-state-msg{border:4px solid #333;color:#000}.tabulator .tabulator-alert .tabulator-alert-msg.tabulator-alert-state-error{border:4px solid #d00;color:#590000}.tabulator-row{background-color:#fff;box-sizing:border-box;min-height:22px;position:relative}.tabulator-row.tabulator-row-even{background-color:#efefef}@media (hover:hover) and (pointer:fine){.tabulator-row.tabulator-selectable:hover{background-color:#bbb;cursor:pointer}}.tabulator-row.tabulator-selected{background-color:#9abcea}@media (hover:hover) and (pointer:fine){.tabulator-row.tabulator-selected:hover{background-color:#769bcc;cursor:pointer}}.tabulator-row.tabulator-row-moving{background:#fff;border:1px solid #000}.tabulator-row.tabulator-moving{border-bottom:1px solid #aaa;border-top:1px solid #aaa;pointer-events:none;position:absolute;z-index:15}.tabulator-row.tabulator-range-highlight .tabulator-cell.tabulator-range-row-header{background-color:#d6d6d6;color:#000}.tabulator-row.tabulator-range-highlight.tabulator-range-selected .tabulator-cell.tabulator-range-row-header,.tabulator-row.tabulator-range-selected .tabulator-cell.tabulator-range-row-header{background-color:#3876ca;color:#fff}.tabulator-row .tabulator-row-resize-handle{bottom:0;height:5px;left:0;position:absolute;right:0}.tabulator-row .tabulator-row-resize-handle.prev{bottom:auto;top:0}@media (hover:hover) and (pointer:fine){.tabulator-row .tabulator-row-resize-handle:hover{cursor:ns-resize}}.tabulator-row .tabulator-responsive-collapse{border-bottom:1px solid #aaa;border-top:1px solid #aaa;box-sizing:border-box;padding:5px}.tabulator-row .tabulator-responsive-collapse:empty{display:none}.tabulator-row .tabulator-responsive-collapse table{font-size:14px}.tabulator-row .tabulator-responsive-collapse table tr td{position:relative}.tabulator-row .tabulator-responsive-collapse table tr td:first-of-type{padding-right:10px}.tabulator-row .tabulator-cell{border-right:1px solid #aaa;box-sizing:border-box;display:inline-block;outline:none;overflow:hidden;padding:4px;position:relative;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.tabulator-row .tabulator-cell.tabulator-row-header{background:#e6e6e6;border-bottom:1px solid #aaa;border-right:1px solid #999}.tabulator-row .tabulator-cell.tabulator-frozen{background-color:inherit;display:inline-block;left:0;position:sticky;z-index:11}.tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left{border-right:2px solid #aaa}.tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right{border-left:2px solid #aaa}.tabulator-row .tabulator-cell.tabulator-editing{border:1px solid #1d68cd;outline:none;padding:0}.tabulator-row .tabulator-cell.tabulator-editing input,.tabulator-row .tabulator-cell.tabulator-editing select{background:transparent;border:1px;outline:none}.tabulator-row .tabulator-cell.tabulator-validation-fail{border:1px solid #d00}.tabulator-row .tabulator-cell.tabulator-validation-fail input,.tabulator-row .tabulator-cell.tabulator-validation-fail select{background:transparent;border:1px;color:#d00}.tabulator-row .tabulator-cell.tabulator-row-handle{align-items:center;display:inline-flex;justify-content:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none}.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box{width:80%}.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box .tabulator-row-handle-bar{background:#666;height:3px;margin-top:2px;width:100%}.tabulator-row .tabulator-cell.tabulator-range-selected:not(.tabulator-range-only-cell-selected):not(.tabulator-range-row-header){background-color:#9abcea}.tabulator-row .tabulator-cell .tabulator-data-tree-branch-empty{display:inline-block;width:7px}.tabulator-row .tabulator-cell .tabulator-data-tree-branch{border-bottom:2px solid #aaa;border-bottom-left-radius:1px;border-left:2px solid #aaa;display:inline-block;height:9px;margin-right:5px;margin-top:-9px;vertical-align:middle;width:7px}.tabulator-row .tabulator-cell .tabulator-data-tree-control{align-items:center;background:#0000001a;border:1px solid #333;border-radius:2px;display:inline-flex;height:11px;justify-content:center;margin-right:5px;overflow:hidden;vertical-align:middle;width:11px}@media (hover:hover) and (pointer:fine){.tabulator-row .tabulator-cell .tabulator-data-tree-control:hover{background:#0003;cursor:pointer}}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse{background:transparent;display:inline-block;height:7px;position:relative;width:1px}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after{background:#333;content:"";height:1px;left:-3px;position:absolute;top:3px;width:7px}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand{background:#333;display:inline-block;height:7px;position:relative;width:1px}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{background:#333;content:"";height:1px;left:-3px;position:absolute;top:3px;width:7px}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle{align-items:center;background:#666;border-radius:20px;color:#fff;display:inline-flex;font-size:1.1em;font-weight:700;height:15px;justify-content:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;width:15px}@media (hover:hover) and (pointer:fine){.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle:hover{cursor:pointer;opacity:.7}}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-close{display:initial}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-open{display:none}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle svg{stroke:#fff}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle .tabulator-responsive-collapse-toggle-close{display:none}.tabulator-row .tabulator-cell .tabulator-traffic-light{border-radius:14px;display:inline-block;height:14px;width:14px}.tabulator-row.tabulator-group{background:#ccc;border-bottom:1px solid #999;border-right:1px solid #aaa;border-top:1px solid #999;box-sizing:border-box;font-weight:700;min-width:100%;padding:5px 5px 5px 10px}@media (hover:hover) and (pointer:fine){.tabulator-row.tabulator-group:hover{background-color:#0000001a;cursor:pointer}}.tabulator-row.tabulator-group.tabulator-group-visible .tabulator-arrow{border-bottom:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #666;margin-right:10px}.tabulator-row.tabulator-group.tabulator-group-level-1{padding-left:30px}.tabulator-row.tabulator-group.tabulator-group-level-2{padding-left:50px}.tabulator-row.tabulator-group.tabulator-group-level-3{padding-left:70px}.tabulator-row.tabulator-group.tabulator-group-level-4{padding-left:90px}.tabulator-row.tabulator-group.tabulator-group-level-5{padding-left:110px}.tabulator-row.tabulator-group .tabulator-group-toggle{display:inline-block}.tabulator-row.tabulator-group .tabulator-arrow{border-bottom:6px solid transparent;border-left:6px solid #666;border-right:0;border-top:6px solid transparent;display:inline-block;height:0;margin-right:16px;vertical-align:middle;width:0}.tabulator-row.tabulator-group span{color:#d00;margin-left:10px}.tabulator-toggle{background:#dcdcdc;border:1px solid #ccc;box-sizing:border-box;display:flex;flex-direction:row}.tabulator-toggle.tabulator-toggle-on{background:#1c6cc2}.tabulator-toggle .tabulator-toggle-switch{background:#fff;border:1px solid #ccc;box-sizing:border-box}.tabulator-popup-container{-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #aaa;box-shadow:0 0 5px #0003;box-sizing:border-box;display:inline-block;font-size:14px;overflow-y:auto;position:absolute;z-index:10000}.tabulator-popup{border-radius:3px;padding:5px}.tabulator-tooltip{border-radius:2px;box-shadow:none;font-size:12px;max-width:Min(500px,100%);padding:3px 5px;pointer-events:none}.tabulator-menu .tabulator-menu-item{box-sizing:border-box;padding:5px 10px;position:relative;-webkit-user-select:none;user-select:none}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-disabled{opacity:.5}@media (hover:hover) and (pointer:fine){.tabulator-menu .tabulator-menu-item:not(.tabulator-menu-item-disabled):hover{background:#efefef;cursor:pointer}}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-submenu{padding-right:25px}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-submenu:after{border-color:#aaa;border-style:solid;border-width:1px 1px 0 0;content:"";display:inline-block;height:7px;position:absolute;right:10px;top:calc(5px + .4em);transform:rotate(45deg);vertical-align:top;width:7px}.tabulator-menu .tabulator-menu-separator{border-top:1px solid #aaa}.tabulator-edit-list{-webkit-overflow-scrolling:touch;font-size:14px;max-height:200px;overflow-y:auto}.tabulator-edit-list .tabulator-edit-list-item{color:#333;outline:none;padding:4px}.tabulator-edit-list .tabulator-edit-list-item.active{background:#1d68cd;color:#fff}.tabulator-edit-list .tabulator-edit-list-item.active.focused{outline:1px solid hsla(0,0%,100%,.5)}.tabulator-edit-list .tabulator-edit-list-item.focused{outline:1px solid #1d68cd}@media (hover:hover) and (pointer:fine){.tabulator-edit-list .tabulator-edit-list-item:hover{background:#1d68cd;color:#fff;cursor:pointer}}.tabulator-edit-list .tabulator-edit-list-placeholder{color:#333;padding:4px;text-align:center}.tabulator-edit-list .tabulator-edit-list-group{border-bottom:1px solid #aaa;color:#333;font-weight:700;padding:6px 4px 4px}.tabulator-edit-list .tabulator-edit-list-group.tabulator-edit-list-group-level-2,.tabulator-edit-list .tabulator-edit-list-item.tabulator-edit-list-group-level-2{padding-left:12px}.tabulator-edit-list .tabulator-edit-list-group.tabulator-edit-list-group-level-3,.tabulator-edit-list .tabulator-edit-list-item.tabulator-edit-list-group-level-3{padding-left:20px}.tabulator-edit-list .tabulator-edit-list-group.tabulator-edit-list-group-level-4,.tabulator-edit-list .tabulator-edit-list-item.tabulator-edit-list-group-level-4{padding-left:28px}.tabulator-edit-list .tabulator-edit-list-group.tabulator-edit-list-group-level-5,.tabulator-edit-list .tabulator-edit-list-item.tabulator-edit-list-group-level-5{padding-left:36px}.tabulator.tabulator-ltr{direction:ltr}.tabulator.tabulator-rtl{direction:rtl;text-align:initial}.tabulator.tabulator-rtl .tabulator-header .tabulator-col{border-left:1px solid #aaa;border-right:initial;text-align:initial}.tabulator.tabulator-rtl .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols{margin-left:-1px;margin-right:0}.tabulator.tabulator-rtl .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title{padding-left:25px;padding-right:0}.tabulator.tabulator-rtl .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-sorter{left:8px;right:auto}.tabulator.tabulator-rtl .tabulator-tableholder .tabulator-range-overlay .tabulator-range.tabulator-range-active:after{background-color:#2975dd;border-radius:999px;bottom:-3px;content:"";height:6px;left:-3px;position:absolute;right:auto;width:6px}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell{border-left:1px solid #aaa;border-right:initial}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell .tabulator-data-tree-branch{border-bottom-left-radius:0;border-bottom-right-radius:1px;border-left:initial;border-right:2px solid #aaa;margin-left:5px;margin-right:0}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell .tabulator-data-tree-control{margin-left:5px;margin-right:0}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left{border-left:2px solid #aaa}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right{border-right:2px solid #aaa}.tabulator.tabulator-rtl .tabulator-row .tabulator-col-resize-handle:last-of-type{margin-left:0;margin-right:-3px;width:3px}.tabulator.tabulator-rtl .tabulator-footer .tabulator-calcs-holder{text-align:initial}.tabulator-print-fullscreen{bottom:0;left:0;position:absolute;right:0;top:0;z-index:10000}body.tabulator-print-fullscreen-hide>:not(.tabulator-print-fullscreen){display:none!important}.tabulator-print-table{border-collapse:collapse}.tabulator-print-table .tabulator-data-tree-branch{border-bottom:2px solid #aaa;border-bottom-left-radius:1px;border-left:2px solid #aaa;display:inline-block;height:9px;margin-right:5px;margin-top:-9px;vertical-align:middle;width:7px}.tabulator-print-table .tabulator-print-table-group{background:#ccc;border-bottom:1px solid #999;border-right:1px solid #aaa;border-top:1px solid #999;box-sizing:border-box;font-weight:700;min-width:100%;padding:5px 5px 5px 10px}@media (hover:hover) and (pointer:fine){.tabulator-print-table .tabulator-print-table-group:hover{background-color:#0000001a;cursor:pointer}}.tabulator-print-table .tabulator-print-table-group.tabulator-group-visible .tabulator-arrow{border-bottom:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #666;margin-right:10px}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-1 td{padding-left:30px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-2 td{padding-left:50px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-3 td{padding-left:70px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-4 td{padding-left:90px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-5 td{padding-left:110px!important}.tabulator-print-table .tabulator-print-table-group .tabulator-group-toggle{display:inline-block}.tabulator-print-table .tabulator-print-table-group .tabulator-arrow{border-bottom:6px solid transparent;border-left:6px solid #666;border-right:0;border-top:6px solid transparent;display:inline-block;height:0;margin-right:16px;vertical-align:middle;width:0}.tabulator-print-table .tabulator-print-table-group span{color:#d00;margin-left:10px}.tabulator-print-table .tabulator-data-tree-control{align-items:center;background:#0000001a;border:1px solid #333;border-radius:2px;display:inline-flex;height:11px;justify-content:center;margin-right:5px;overflow:hidden;vertical-align:middle;width:11px}@media (hover:hover) and (pointer:fine){.tabulator-print-table .tabulator-data-tree-control:hover{background:#0003;cursor:pointer}}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse{background:transparent;display:inline-block;height:7px;position:relative;width:1px}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after{background:#333;content:"";height:1px;left:-3px;position:absolute;top:3px;width:7px}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand{background:#333;display:inline-block;height:7px;position:relative;width:1px}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{background:#333;content:"";height:1px;left:-3px;position:absolute;top:3px;width:7px}.tabulator-table-container{width:100%;border-radius:4px;overflow-x:auto}.tabulator .tabulator-row{min-height:28px}.tabulator .tabulator-row .tabulator-cell{padding:4px 8px;font-size:13px}.tabulator .tabulator-header{background-color:#f5f5f5;border-bottom:1px solid #e8e8e8}.tabulator .tabulator-header .tabulator-col{background-color:#f5f5f5;border-right:1px solid #eee}.tabulator .tabulator-header .tabulator-col-content{padding:6px 8px}.tabulator .tabulator-header .tabulator-col-title{font-size:12px;font-weight:600;color:#333}.tabulator .tabulator-row:hover{background-color:#f0f0f0}.tabulator .tabulator-row:nth-child(2n){background-color:#fafafa}.tabulator .tabulator-row.tabulator-selected,.tabulator .tabulator-row.tabulator-selected:nth-child(2n),.tabulator .tabulator-row.tabulator-selected:nth-child(odd){background-color:#cce5ff!important}.tabulator .tabulator-row.tabulator-selected .tabulator-cell{background-color:#cce5ff!important}.tabulator .tabulator-row.tabulator-selected:hover,.tabulator .tabulator-row.tabulator-selected:hover .tabulator-cell{background-color:#b8d4ff!important}.tabulator .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title{padding-right:20px}.tabulator .tabulator-row .tabulator-cell{border-right:1px solid #f0f0f0}.tabulator .tabulator-row .tabulator-cell:last-child{border-right:none}.tabulator .tabulator-row{border-bottom:1px solid #f0f0f0}.tabulator .tabulator-footer{background-color:#f5f5f5;border-top:1px solid #e8e8e8;padding:4px}.tabulator .tabulator-footer .tabulator-page{padding:4px 8px;font-size:12px;border:1px solid #ddd;border-radius:3px;margin:0 2px;cursor:pointer}.tabulator .tabulator-footer .tabulator-page:hover{background-color:#e0e0e0}.tabulator .tabulator-footer .tabulator-page.active{background-color:#1976d2;color:#fff;border-color:#1976d2}.tabulator .tabulator-footer .tabulator-page-size{padding:4px;font-size:12px;border:1px solid #e0e0e0;border-radius:3px}.tabulator .tabulator-header .tabulator-col .tabulator-col-resize-handle{width:6px;right:-3px}.tabulator .tabulator-row .tabulator-cell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tabulator .tabulator-row .tabulator-cell.tabulator-cell-empty:after{content:"—";color:#999}.tabulator .tabulator-row .tabulator-cell[tabulator-field*=_g],.tabulator .tabulator-row .tabulator-cell[tabulator-field*=_mg],.tabulator .tabulator-row .tabulator-cell[tabulator-field*=_mcg],.tabulator .tabulator-row .tabulator-cell[tabulator-field=calories]{text-align:right}@media (max-width: 768px){.tabulator{min-width:800px}}.debug-page{--debug-content-max-width: 1400px;--debug-tabs-max-width: 600px;padding:var(--space-4);min-height:100vh;box-sizing:border-box}.debug-header{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-4)}.debug-header h1{font-size:1.25rem;font-weight:600;margin:0}.debug-badge{background:var(--color-warning);color:#fff;font-size:.7rem;font-weight:600;padding:2px 6px;border-radius:var(--radius-sm);text-transform:uppercase}.debug-tabs{display:flex;gap:var(--space-1);margin-bottom:var(--space-4);flex-wrap:wrap;justify-content:center;max-width:var(--debug-tabs-max-width);margin-left:auto;margin-right:auto}.debug-tab{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-sm);font-size:.85rem;cursor:pointer;transition:all .15s}.debug-tab:hover{background:var(--color-primary-light)}.debug-tab.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.debug-content{max-width:var(--debug-content-max-width);margin-left:auto;margin-right:auto}.debug-filters{display:flex;gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;align-items:center}.debug-input,.debug-select{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.85rem;background:var(--color-surface)}.debug-input{min-width:150px}.debug-select{min-width:120px}.debug-input:focus,.debug-select:focus{outline:none;border-color:var(--color-primary)}.debug-btn{padding:var(--space-2) var(--space-3);border:1px solid var(--color-primary);background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);font-size:.85rem;cursor:pointer;transition:opacity .15s}.debug-btn:hover:not(:disabled){opacity:.9}.debug-btn:disabled{opacity:.5;cursor:not-allowed}.debug-btn.secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.debug-btn.secondary:hover:not(:disabled){background:var(--color-primary-light)}.debug-checkbox{display:flex;align-items:center;gap:var(--space-1);font-size:.85rem;cursor:pointer;margin-left:var(--space-2)}.debug-checkbox input{cursor:pointer}.debug-status{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:var(--color-text-secondary);margin-bottom:var(--space-2);padding:var(--space-1) 0;border-bottom:1px solid var(--color-border)}.debug-table-name{font-family:monospace;background:var(--color-bg);padding:2px 6px;border-radius:var(--radius-sm)}.debug-error{background:#fef2f2;color:var(--color-danger);padding:var(--space-3);border-radius:var(--radius-sm);margin-bottom:var(--space-4);font-size:.85rem}.debug-table-wrapper{overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-sm);margin-bottom:var(--space-4);background:var(--color-surface);max-height:70vh}.debug-table{border-collapse:collapse;font-size:.8rem;white-space:nowrap}.debug-table th,.debug-table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);max-width:250px;overflow:hidden;text-overflow:ellipsis}.debug-table th:last-child,.debug-table td:last-child{border-right:none}.debug-table th{background:var(--color-bg);font-weight:600;position:sticky;top:0;font-family:monospace;font-size:.75rem;color:var(--color-text-secondary);border-bottom:2px solid var(--color-border);-webkit-user-select:none;user-select:none}.debug-table tbody tr:nth-child(2n){background:var(--color-bg)}.debug-table tbody tr:hover{background:var(--color-primary-light)}.debug-table td{font-family:monospace;font-size:.75rem}.debug-empty{text-align:center;color:var(--color-text-muted);padding:var(--space-8)!important;font-family:var(--font-body)}.debug-pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-1)}.debug-page-info{font-size:.85rem;color:var(--color-text-secondary);padding:0 var(--space-3)}.debug-tabulator-wrapper{margin-bottom:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow-x:auto}.settings-section{margin-bottom:var(--space-6)}.settings-section-title{font-size:var(--text-lg);font-weight:600;margin-bottom:var(--space-2)}.settings-section-description{color:var(--color-text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-4)}.ring-set-options{display:flex;flex-direction:column;gap:var(--space-2)}.ring-set-option{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:border-color .2s,background-color .2s}.ring-set-option:hover{border-color:var(--color-primary-light)}.ring-set-option.selected{border-color:var(--color-primary);background:var(--color-primary-light)}.ring-set-option input[type=radio]{display:none}.ring-set-option-content{flex:1;display:flex;flex-direction:column;gap:2px}.ring-set-option-name{font-weight:500;color:var(--color-text)}.ring-set-option-description{font-size:var(--text-sm);color:var(--color-text-secondary)}.ring-set-check{width:20px;height:20px;color:var(--color-primary);flex-shrink:0}.settings-error{color:var(--color-error, #ef4444);font-size:var(--text-sm);margin-top:var(--space-3)}.settings-saving{color:var(--color-text-muted);font-size:var(--text-sm);margin-top:var(--space-3)}:root{--color-bg: #FAF8F5;--color-surface: #FFFFFF;--color-surface-hover: #F5F3F0;--color-border: #E8E2D9;--color-border-light: #F0EBE4;--color-text: #4A4543;--color-text-secondary: #6B6662;--color-text-muted: #9A9590;--color-primary: #7A8B7A;--color-primary-hover: #5C6B5C;--color-primary-light: #E8EDE8;--color-accent: #C4836A;--color-accent-hover: #A66B52;--color-accent-light: #F5EBE7;--color-calories: #C4836A;--color-protein: #7A8B7A;--color-carbs: #D4A87C;--color-fat: #B8956A;--color-fiber: #6B8B5E;--color-sugar: #E8A87C;--color-sodium: #8BA4B8;--color-success: #6B9B6B;--color-warning: #C4A836;--color-danger: #C46A6A;--gray-50: #F9FAFB;--gray-100: #F3F4F6;--gray-200: #E5E7EB;--gray-300: #D1D5DB;--gray-400: #9CA3AF;--gray-500: #6B7280;--gray-600: #4B5563;--gray-700: #374151;--gray-800: #1F2937;--green-50: #F0FDF4;--green-100: #DCFCE7;--green-400: #4ADE80;--green-500: #22C55E;--green-600: #16A34A;--green-700: #15803D;--amber-50: #FFFBEB;--amber-100: #FEF3C7;--amber-200: #FDE68A;--amber-400: #FBBF24;--amber-500: #F59E0B;--amber-600: #D97706;--amber-700: #B45309;--blue-50: #EFF6FF;--blue-100: #DBEAFE;--blue-700: #1D4ED8;--space-0: 0;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--font-display: Georgia, "Times New Roman", serif;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--text-2xs: .625rem;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--font-xs: .75rem;--font-sm: .875rem;--font-md: 1rem;--font-lg: 1.125rem;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.625;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 2px 4px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--shadow-lg: 0 4px 8px rgba(0, 0, 0, .08), 0 2px 4px rgba(0, 0, 0, .04);--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--nav-height: 56px;--max-width-sm: 400px;--max-width-md: 600px;--max-width-lg: 800px;--progress-size: 64px;--progress-stroke: 5px;--progress-size-sm: 48px;--progress-stroke-sm: 4px;--progress-size-lg: 80px;--progress-stroke-lg: 8px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}body{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background-color:var(--color-bg);min-height:100vh}h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--font-normal);line-height:var(--leading-tight)}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-hover)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--font-medium);border-radius:var(--radius-md);border:none;cursor:pointer;transition:all var(--transition-fast);min-height:40px;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn-accent{background-color:var(--color-accent);color:#fff}.btn-accent:hover:not(:disabled){background-color:var(--color-accent-hover)}.btn-danger{background-color:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){opacity:.9}.btn-secondary{background-color:transparent;color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:var(--color-surface-hover);border-color:var(--color-text-muted)}.btn-ghost{background-color:transparent;color:var(--color-text-secondary)}.btn-ghost:hover:not(:disabled){background-color:var(--color-surface-hover);color:var(--color-text)}.btn-full{width:100%}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--text-xs);min-height:28px}.btn-lg{padding:var(--space-3) var(--space-6);font-size:var(--text-base);min-height:44px}.input{width:100%;padding:var(--space-2) var(--space-3);font-family:var(--font-body);font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-height:40px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.input::placeholder{color:var(--color-text-muted)}.input-lg{padding:var(--space-3) var(--space-4);font-size:var(--text-base);min-height:44px}.label{display:block;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);margin-bottom:var(--space-1)}.form-group{margin-bottom:var(--space-4)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;padding:var(--space-2) var(--space-3);padding-right:var(--space-8);font-family:var(--font-body);font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236B6662' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right var(--space-2) center;background-repeat:no-repeat;background-size:1.25em 1.25em;min-height:40px;cursor:pointer;transition:border-color var(--transition-fast)}.select:focus{outline:none;border-color:var(--color-primary)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4)}.card-clickable{cursor:pointer;transition:box-shadow var(--transition-fast),border-color var(--transition-fast)}.card-clickable:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-md)}.page{padding:var(--space-4);min-height:100vh}.page-narrow{max-width:600px;margin-left:auto;margin-right:auto}.page-medium{max-width:768px;margin-left:auto;margin-right:auto}.card-grid{display:flex;flex-direction:column;gap:var(--space-2)}@media (min-width: 768px){.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,560px));gap:var(--space-3)}}.card-grid-full{grid-column:1 / -1}.view-toggle{display:none}@media (min-width: 480px){.view-toggle{display:flex;gap:2px;background:#ede8e1;border-radius:6px;padding:2px;width:fit-content;height:32px;align-items:center}}.view-toggle-btn{padding:5px 14px;font-size:12px;font-weight:500;color:var(--color-text-muted);background:transparent;border:none;border-radius:4px;cursor:pointer;transition:all .15s ease}.view-toggle-btn:hover{color:var(--color-text-secondary)}.view-toggle-btn.active{background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 2px #0000001a}.page-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.page-header .view-toggle{margin-left:auto}.page-title{font-size:var(--text-xl);color:var(--color-text)}.back-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);background:transparent;border:none;cursor:pointer;color:var(--color-text-secondary);transition:all var(--transition-fast)}.back-btn:hover{background:var(--color-primary-light);color:var(--color-primary)}.empty-state{text-align:center;padding:var(--space-8) var(--space-4);color:var(--color-text-muted)}.empty-state p{margin-bottom:var(--space-2)}.meal-toggle{display:flex;gap:var(--space-2);flex-wrap:wrap}.meal-toggle-btn{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-sm);font-family:var(--font-body);font-weight:var(--font-medium);min-height:32px;transition:all var(--transition-fast)}.meal-toggle-btn:hover{border-color:var(--color-primary)}.meal-toggle-btn.active{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.loading{display:flex;justify-content:center;align-items:center;padding:var(--space-8);color:var(--color-text-muted)}.badge{display:inline-block;padding:var(--space-1) var(--space-2);font-size:var(--text-xs);font-weight:var(--font-medium);border-radius:var(--radius-sm);background:var(--color-primary-light);color:var(--color-primary);text-transform:capitalize}.badge-accent{background:var(--color-accent-light);color:var(--color-accent)}.badge-muted{background:var(--color-surface-hover);color:var(--color-text-muted)}.toast{position:fixed;bottom:var(--space-6);left:50%;transform:translate(-50%);background:var(--color-text);color:#fff;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:1000;animation:slideUp .2s ease-out}@keyframes slideUp{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.text-muted{color:var(--color-text-muted)}.text-secondary{color:var(--color-text-secondary)}.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mb-2{margin-bottom:var(--space-2)}.mb-4{margin-bottom:var(--space-4)}.gap-2{gap:var(--space-2)}.gap-4{gap:var(--space-4)}.divider{height:1px;background:var(--color-border);margin:var(--space-4) 0}.sign-in-container{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:var(--space-4);background:var(--color-bg)}
