:root{--bg-primary: #ffffff;--bg-secondary: #f7fafc;--bg-tertiary: #f8f9fa;--bg-hover: #edf2f7;--border-light: #f7fafc;--border-default: #e2e8f0;--border-medium: #cbd5e0;--text-primary: #1a202c;--text-secondary: #2d3748;--text-tertiary: #718096;--text-muted: #a0aec0;--primary: #5A9A6A;--green-primary: #5A9A6A;--green-rgb: 90, 154, 106;--green-hover: #4A8A5A;--green-dark: #3A5A42;--green-light-bg: #F0E6D2;--green-bg: #F0E6D2;--green-text: #3A5A42;--yellow-bg: #FEF0CF;--yellow-border: #FEE465;--yellow-text: #5D4E1F;--orange-bg: #FFE8D9;--orange-border: #FFB86B;--orange-text: #8B4513;--purple-bg: #F0E9FF;--purple-border: #EA9CDD;--purple-text: #5B3A8B;--gold-primary: #D4AF37;--gold-light: #FFD700;--gold-dark: #B8860B;--action-primary: #2d3748;--action-hover: #4a5568;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-2xl: 32px;--space-3xl: 48px;--space-4xl: 64px;--page-title: 42px;--section-heading: 24px;--card-heading: 16px;--body-large: 16px;--body-regular: 15px;--body-small: 13px;--label-text: 12px;--small-text: 11px;--micro-text: 10px;--shadow-subtle: 0 1px 3px rgba(0,0,0,.08);--shadow-card: 0 2px 4px rgba(0,0,0,.06);--shadow-dropdown: 0 4px 12px rgba(0,0,0,.12);--radius-sm: 3px;--radius-md: 6px;--radius-lg: 8px;--transition-fast: .15s;--transition-base: .2s;--transition-slow: .3s}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg-secondary);color:var(--text-primary);line-height:1.6}.container{max-width:1200px;margin:0 auto;padding:var(--space-3xl) var(--space-xl)}@media(max-width:480px){.container{padding:var(--space-lg) var(--space-md)}}header{margin-bottom:var(--space-3xl);border-bottom:1px solid var(--border-default);padding-bottom:var(--space-xl)}.header-logo,.mobile-s{display:none}@media(max-width:480px){header{margin-bottom:var(--space-xl);padding-bottom:var(--space-md)}.mobile-s{display:inline}}.tab-navigation{display:flex;gap:var(--space-xs);margin-bottom:var(--space-xl);border-bottom:2px solid var(--border-default);position:relative;z-index:10;background:var(--bg-secondary);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tab-navigation::-webkit-scrollbar{display:none}.tab-btn{padding:var(--space-md) var(--space-xl);background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;color:var(--text-tertiary);font-size:var(--body-regular);font-weight:500;cursor:pointer;transition:all var(--transition-fast) ease-out;pointer-events:auto;position:relative;z-index:11;outline:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;white-space:nowrap;flex-shrink:0}.tab-btn:hover{color:var(--text-secondary);background:var(--bg-tertiary)}.tab-btn:active{transform:scale(.98)}.tab-btn.active{color:var(--text-primary);border-bottom-color:var(--action-primary)}.tab-content{display:none}.tab-content.active{display:block}@media(max-width:480px){.tab-navigation{overflow-x:auto;-webkit-overflow-scrolling:touch}.tab-btn{padding:var(--space-sm) var(--space-lg);white-space:nowrap}}h1{font-size:var(--page-title);font-weight:300;color:var(--text-primary);margin-bottom:var(--space-sm);line-height:1.2}.subtitle{font-size:var(--label-text);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:3px;font-weight:400}.controls{background:var(--bg-primary);padding:var(--space-xl);border-radius:var(--radius-lg);border:1px solid var(--border-default);box-shadow:var(--shadow-subtle);margin-bottom:var(--space-xl)}.search-bar{margin-bottom:var(--space-lg)}.search-bar input{width:100%;padding:10px 16px;border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--body-regular);color:var(--text-secondary);background:var(--bg-primary);transition:border-color var(--transition-base) ease-out}.search-bar input:focus{outline:none;border-color:var(--action-primary)}.search-bar input::placeholder{color:var(--text-muted)}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-md);align-items:center}select{width:100%;padding:10px 16px;border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--body-regular);color:var(--text-secondary);background-color:var(--bg-primary);cursor:pointer;transition:all var(--transition-base) ease-out}select:focus{outline:none;border-color:var(--action-primary)}select:hover{border-color:var(--border-medium);background:var(--bg-tertiary)}.btn-secondary{padding:10px 20px;background-color:var(--action-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:400;letter-spacing:.5px;cursor:pointer;transition:background var(--transition-fast) ease-out,transform .1s ease;white-space:nowrap}.btn-secondary:hover{background-color:var(--action-hover)}.btn-secondary:active{background-color:var(--action-hover);transform:scale(.98)}.btn-secondary:focus{background-color:var(--action-hover);outline:none}.results-info{margin-bottom:var(--space-xl);color:var(--text-tertiary);font-size:var(--body-small);font-weight:400}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-xl);margin-bottom:var(--space-3xl)}.recipe-card{background:var(--bg-primary);border-radius:var(--radius-lg);border:1px solid var(--border-default);box-shadow:var(--shadow-subtle);cursor:pointer;transition:all var(--transition-base) ease-out;display:flex;flex-direction:column;height:100%;overflow:hidden}.recipe-card:hover{transform:translateY(-3px);box-shadow:0 4px 12px #0000001a;border-color:var(--border-medium)}.recipe-card-photo{width:100%;height:180px;background-size:cover;background-position:center;background-repeat:no-repeat;background-color:var(--bg-tertiary)}.recipe-card-photo-placeholder{width:100%;height:180px;background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-tertiary) 100%);display:flex;align-items:center;justify-content:center}.recipe-card-content{padding:var(--space-xl);display:flex;flex-direction:column;flex-grow:1}.recipe-card h3{font-size:18px;font-weight:500;margin-bottom:var(--space-lg);color:var(--text-primary);line-height:1.4;min-height:50px;display:flex;align-items:center}.recipe-meta{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:auto}.recipe-badges{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-md)}.recipe-badge{display:inline-block;padding:4px 10px;border-radius:var(--radius-sm);font-size:var(--small-text);font-weight:500;white-space:nowrap;border:1px solid;text-transform:capitalize}.recipe-badge.concept{background:var(--yellow-bg);color:var(--yellow-text);border-color:var(--yellow-border)}.recipe-badge.type{background:var(--green-light-bg);color:var(--green-text);border-color:var(--green-primary)}.recipe-badge.servings{background:var(--purple-bg);color:var(--purple-text);border-color:var(--purple-border)}.recipe-tags-inline{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-md)}.tag-badge{display:inline-block;padding:3px 8px;border-radius:var(--radius-sm);font-size:11px;font-weight:500;background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-default);white-space:nowrap}.tag-badge-more{display:inline-block;padding:3px 8px;border-radius:var(--radius-sm);font-size:11px;font-weight:500;background:var(--bg-tertiary);color:var(--text-muted);border:1px solid var(--border-default);white-space:nowrap}.recipe-menus-inline{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-md)}.menu-badge{display:inline-block;padding:3px 8px;border-radius:var(--radius-sm);font-size:11px;font-weight:500;background:#dbeafe;color:#1e40af;border:1px solid #3b82f6;white-space:nowrap}.menu-badge-more{display:inline-block;padding:3px 8px;border-radius:var(--radius-sm);font-size:11px;font-weight:500;background:var(--bg-tertiary);color:var(--text-muted);border:1px solid var(--border-default);white-space:nowrap}.recipe-info{display:flex;flex-direction:column;gap:6px;padding-top:var(--space-sm);border-top:1px solid var(--border-light)}.recipe-info-item{display:flex;align-items:center;color:var(--text-tertiary);font-size:var(--body-small);gap:6px}.recipe-info-item strong{color:var(--text-secondary);font-weight:500;min-width:70px}.recipe-time{color:var(--text-tertiary);font-size:var(--body-small)}.modal{display:none;position:fixed;z-index:1000000;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#00000080;padding:var(--space-2xl)}.modal-content{background-color:var(--bg-primary);margin:var(--space-2xl) auto;padding:0;border-radius:12px;max-width:900px;width:95%;max-height:calc(100vh - 4rem);box-shadow:var(--shadow-dropdown);border:1px solid var(--border-default);position:relative;overflow-y:auto;display:flex;flex-direction:column}#recipeModal .modal-content{max-width:860px;width:95%}.close{position:absolute;right:var(--space-lg);top:var(--space-lg);color:var(--green-dark);font-size:32px;font-weight:300;cursor:pointer;line-height:1;transition:all var(--transition-fast) ease-out;z-index:10;background:var(--green-bg);border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;text-align:center;padding:0;margin:0;box-shadow:0 2px 8px #00000026;border:2px solid var(--green-dark)}.close:hover{color:var(--green-dark);transform:scale(1.1);background:#fff;box-shadow:0 4px 12px #0003}@media(max-width:1024px){.modal{padding:var(--space-md)}.modal-content{margin:var(--space-md) auto;max-width:100%}.close{right:var(--space-md);top:var(--space-md);width:40px;height:40px;font-size:28px}}#modalBody h2{font-size:var(--section-heading);font-weight:300;margin-bottom:var(--space-xl);color:var(--text-primary);line-height:1.2;padding-right:var(--space-2xl)}#modalBody .modal-section{margin-bottom:var(--space-xl)}#modalBody .modal-section h3{font-size:var(--label-text);font-weight:400;margin-bottom:var(--space-md);color:var(--text-secondary);text-transform:uppercase;letter-spacing:2px}.recipe-meta-section{background:transparent;padding:0;border-radius:0;margin-top:var(--space-md)}.recipe-modal-header .recipe-badge{background:#fff3;color:#fff;border-color:#ffffff4d;font-weight:500}#modalBody .modal-badges{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-lg);padding-bottom:var(--space-lg);border-bottom:1px solid var(--border-light)}.recipe-times{display:flex;gap:var(--space-xl);padding-top:var(--space-md)}.recipe-time-item{display:flex;flex-direction:column;gap:4px}.recipe-time-item .time-label{font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:var(--text-tertiary);font-weight:600}.recipe-time-item .time-value{font-size:18px;font-weight:600;color:var(--text-primary);letter-spacing:-.2px}#modalBody ul{list-style-position:inside;margin-left:var(--space-lg)}#modalBody li{margin-bottom:var(--space-sm);line-height:1.6;color:var(--text-secondary);font-size:var(--body-regular)}.ingredients-table{width:100%;border-spacing:0}.ingredients-table tbody{display:block}.ingredient-row{display:grid;grid-template-columns:auto auto minmax(0,3fr) 120px 70px 110px 90px;align-items:baseline;gap:var(--space-md);padding:6px var(--space-md);border-radius:var(--radius-sm);transition:background var(--transition-fast) ease-out}.ingredient-row:hover{background:var(--bg-tertiary)}.ingredient-checkbox-cell{display:flex;align-items:center}.ingredient-checkbox{width:18px;height:18px;cursor:pointer;flex-shrink:0}.ingredient-nutrition-status{width:24px;text-align:center}.ingredient-name-cell{display:flex;align-items:baseline}.ingredient-checkbox.usda-linked{accent-color:#22c55e;pointer-events:none}.ingredient-checkbox.usda-linked:checked{background-color:#22c55e;border-color:#22c55e}.ingredient-name{color:var(--text-secondary);font-size:var(--body-regular);line-height:1.6;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--transition-fast) ease-out;display:flex;align-items:center;gap:var(--space-xs)}.ingredient-preparation{color:var(--text-tertiary);font-size:var(--body-regular);font-style:italic;text-align:left;transition:color var(--transition-fast) ease-out}.ingredient-link{color:var(--text-secondary);text-decoration:none;display:flex;align-items:center;gap:6px;transition:all var(--transition-fast) ease-out;cursor:pointer}.ingredient-link:hover{color:var(--action-primary);text-decoration:underline}.ingredient-linked-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--green-primary);color:#fff;border-radius:50%;font-size:12px;font-weight:700;flex-shrink:0;margin-left:4px;box-shadow:0 1px 3px #0003}.ingredient-market-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--gold-primary);color:#fff;border-radius:50%;font-size:12px;font-weight:700;flex-shrink:0;margin-left:4px;box-shadow:0 1px 3px #0003}.sub-recipe-link{color:var(--action-primary);font-size:14px;cursor:pointer;transition:all var(--transition-fast) ease-out;padding:2px 4px;border-radius:var(--radius-sm)}.sub-recipe-link:hover{background:var(--bg-hover);transform:scale(1.1)}.sub-recipe-complete-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--green-primary);color:#fff;border-radius:50%;font-size:12px;font-weight:700;flex-shrink:0;margin-left:4px;box-shadow:0 1px 3px #0003}.market-indicators{display:inline-flex;align-items:center;gap:3px;margin-left:6px;flex-shrink:0}.market-dot{display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:600;padding:2px 4px;background:var(--gold-primary);color:#fff;border-radius:3px;box-shadow:0 1px 2px #00000026;white-space:nowrap}.ingredient-row.has-sub-recipe{background:var(--bg-secondary)}.ingredient-row.has-sub-recipe:hover{background:var(--bg-hover)}.ingredient-row:has(.ingredient-checkbox:checked:not(.usda-linked)) .ingredient-name{text-decoration:line-through;color:var(--text-muted)}.ingredient-row:has(.ingredient-checkbox:checked:not(.usda-linked)) .ingredient-preparation,.ingredient-row:has(.ingredient-checkbox:checked:not(.usda-linked)) .ingredient-amount,.ingredient-row:has(.ingredient-checkbox:checked:not(.usda-linked)) .ingredient-unit{text-decoration:line-through;color:var(--text-muted)}.ingredient-amount{color:var(--text-secondary);font-size:var(--body-regular);font-weight:500;text-align:right;white-space:nowrap;transition:color var(--transition-fast) ease-out}.ingredient-unit{color:var(--text-tertiary);font-size:var(--body-regular);font-weight:400;text-align:left;white-space:nowrap;transition:color var(--transition-fast) ease-out}.ingredient-cost{color:var(--text-secondary);font-size:var(--body-regular);font-weight:600;text-align:right;white-space:nowrap;transition:color var(--transition-fast) ease-out}.ingredient-cost.no-cost{color:var(--text-muted);font-weight:400}.recipe-cost-summary{margin-top:var(--space-lg);padding:var(--space-md);background:var(--bg-secondary);border-radius:var(--radius-md);border-left:3px solid var(--primary)}.cost-summary-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-xs) 0}.cost-summary-row.total{font-weight:600;font-size:var(--body-large);color:var(--text-primary);border-bottom:1px solid var(--border);padding-bottom:var(--space-sm);margin-bottom:var(--space-xs)}.cost-summary-row.per-serving{color:var(--text-secondary);font-size:var(--body-regular);padding-top:var(--space-sm)}.cost-label{color:inherit}.cost-value{color:var(--primary);font-weight:700;font-size:inherit;text-align:right;min-width:100px}.ingredient-row:has(.ingredient-checkbox:checked:not(.usda-linked)) .ingredient-cost{text-decoration:line-through;color:var(--text-muted)}#modalBody p{line-height:1.6;white-space:pre-wrap;color:var(--text-secondary);font-size:var(--body-regular)}.error-message{background-color:var(--orange-bg);color:var(--orange-text);padding:var(--space-lg);border-radius:var(--radius-md);border:1px solid var(--orange-border);text-align:center;margin:var(--space-lg) 0;font-size:var(--body-regular)}.loading{text-align:center;padding:var(--space-3xl);color:var(--text-tertiary);font-size:var(--body-regular)}@media(max-width:768px){.container{padding:var(--space-xl) var(--space-lg)}h1{font-size:36px}.filters,.recipe-grid{grid-template-columns:1fr}.modal-content{margin:var(--space-lg) auto;width:95%;padding:var(--space-xl)}}.import-section{background:var(--bg-primary);padding:var(--space-xl);border-radius:var(--radius-lg);border:1px solid var(--border-default);box-shadow:var(--shadow-subtle);margin-bottom:var(--space-xl)}.import-section h2{font-size:var(--section-heading);font-weight:300;margin-bottom:var(--space-sm);color:var(--text-primary)}.import-section p{font-size:var(--body-small);color:var(--text-tertiary);margin-bottom:var(--space-lg)}.import-section input[type=file]{display:block;width:100%;max-height:50px;overflow:hidden;padding:var(--space-md);margin-bottom:var(--space-xl);border:2px dashed var(--border-medium);border-radius:var(--radius-md);background:var(--bg-tertiary);cursor:pointer;font-size:var(--body-regular);color:var(--text-secondary);transition:all var(--transition-base) ease-out}.import-section input[type=file]:hover{border-color:var(--action-primary);background:var(--bg-secondary)}.import-section input[type=file]::file-selector-button{margin-right:var(--space-md);padding:8px 16px;border:none;border-radius:var(--radius-sm);background:var(--action-primary);color:#fff;cursor:pointer;font-size:var(--body-small)}#importBtn{display:inline-block;clear:both}.import-template-info{background:#f0f9ff;border:1px solid #bae6fd;border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-lg)}.import-template-info p{margin-bottom:var(--space-sm);color:var(--text-primary)}.import-template-info button{margin-top:var(--space-xs)}.btn-primary{padding:12px 24px;background-color:var(--green-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:500;letter-spacing:.5px;cursor:pointer;transition:background var(--transition-fast) ease-out,transform .1s ease;white-space:nowrap}.btn-primary:hover{background-color:var(--green-hover)}.btn-primary:active{background-color:var(--green-hover);transform:scale(.98)}.btn-primary:focus{background-color:var(--green-hover);outline:none}.btn-primary:disabled{background-color:var(--border-medium);cursor:not-allowed}.import-progress{margin-top:var(--space-lg);padding:var(--space-md);border-radius:var(--radius-md);font-size:var(--body-small);min-height:20px}.import-progress.success{background-color:var(--green-light-bg);color:var(--green-text);border:1px solid var(--green-primary)}.import-progress.error{background-color:var(--orange-bg);color:var(--orange-text);border:1px solid var(--orange-border)}.import-progress.info{background-color:var(--purple-bg);color:var(--purple-text);border:1px solid var(--purple-border)}.results-info{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-md)}.view-toggle{display:flex;gap:0;border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden}.view-btn{padding:8px 16px;background:var(--bg-primary);color:var(--text-secondary);border:none;font-size:var(--body-small);font-weight:400;cursor:pointer;transition:all var(--transition-fast) ease-out;border-right:1px solid var(--border-default)}.view-btn:last-child{border-right:none}.view-btn:hover{background:var(--bg-tertiary)}.view-btn.active{background:var(--action-primary);color:#fff}.recipe-table{background:var(--bg-primary);border-radius:var(--radius-lg);border:1px solid var(--border-default);box-shadow:var(--shadow-subtle);overflow:hidden;margin-bottom:var(--space-3xl)}.recipe-table table{width:100%;border-collapse:collapse}.recipe-table thead{background:var(--bg-tertiary);border-bottom:2px solid var(--border-default)}.recipe-table th{padding:var(--space-md) var(--space-lg);text-align:left;font-size:var(--body-small);font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;white-space:nowrap}.recipe-table th.photo-column{width:60px;padding:var(--space-md)}.recipe-table th.status-column{width:100px;text-align:center}.recipe-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast) ease-out}.recipe-table th.sortable:hover{background:var(--bg-secondary)}.recipe-table th.sort-asc .sort-icon:after{content:" ↑";color:var(--action-primary)}.recipe-table th.sort-desc .sort-icon:after{content:" ↓";color:var(--action-primary)}.recipe-table tbody tr{border-bottom:1px solid var(--border-light);transition:background var(--transition-fast) ease-out;cursor:pointer}.recipe-table tbody tr:hover{background:var(--bg-secondary)}.recipe-table tbody tr:last-child{border-bottom:none}.recipe-table td{padding:var(--space-md) var(--space-lg);font-size:var(--body-regular);color:var(--text-secondary)}.recipe-table-photo-cell{padding:var(--space-sm)!important;width:60px}.recipe-table-photo{width:48px;height:48px;background-size:cover;background-position:center;background-repeat:no-repeat;border-radius:var(--radius-sm);background-color:var(--bg-tertiary)}.recipe-table-photo-placeholder{width:48px;height:48px;background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-tertiary) 100%);border-radius:var(--radius-sm)}.recipe-table td:nth-child(2){font-weight:500;color:var(--text-primary)}.table-badge{display:inline-block;padding:2px 6px;border-radius:var(--radius-sm);font-size:var(--micro-text);font-weight:400;white-space:nowrap;border:1px solid}.table-badge.concept{background:var(--yellow-bg);color:var(--yellow-text);border-color:var(--yellow-border)}.table-badge.type{background:var(--green-light-bg);color:var(--green-text);border-color:var(--green-primary)}.concept-cell{padding:var(--space-sm) var(--space-lg)!important}.concept-select{width:100%;padding:4px 8px;font-size:var(--body-small);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;transition:border-color var(--transition-fast) ease-out}.concept-select:hover{border-color:var(--border-medium)}.concept-select:focus{outline:none;border-color:var(--action-primary);box-shadow:0 0 0 1px var(--action-primary)}.uom-review-badge{display:inline-block;margin-left:8px;padding:2px 6px;background:var(--orange-bg);color:var(--orange-text);border:1px solid var(--orange-border);border-radius:var(--radius-sm);font-size:var(--micro-text);font-weight:500;vertical-align:middle}.status-indicators{text-align:center;white-space:nowrap}.status-check{display:inline-block;width:24px;height:24px;line-height:24px;text-align:center;border-radius:50%;font-size:14px;font-weight:600;margin:0 2px;background:var(--bg-tertiary);color:var(--border-default);border:2px solid var(--border-light);transition:all var(--transition-fast) ease-out}.status-check.active{background:var(--green-primary);color:#fff;border-color:var(--green-primary)}@media(max-width:768px){.recipe-table{overflow-x:auto}.results-info{flex-direction:column;align-items:flex-start}.view-toggle{width:100%}.view-btn{flex:1}}.recipe-modal-header{padding:var(--space-3xl) var(--space-4xl);padding-right:100px;border-bottom:none;display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-lg);flex-wrap:wrap;flex-shrink:0;background:linear-gradient(135deg,var(--primary) 0%,#4a7c59 100%);color:#fff}.recipe-modal-title-section{flex:1;min-width:0}.recipe-modal-title-section h2{font-size:28px;font-weight:700;margin-bottom:var(--space-md);color:#fff!important;line-height:1.3;padding-right:var(--space-3xl);text-shadow:0 1px 3px rgba(0,0,0,.15)}.recipe-modal-actions{display:flex;gap:var(--space-sm);flex-shrink:0;flex-wrap:wrap}.modal-action-btn{display:flex;align-items:center;gap:var(--space-sm);padding:10px 16px;background:var(--green-bg);color:var(--green-dark);border:1px solid var(--green-dark);border-radius:var(--radius-md);font-size:var(--body-small);font-weight:600;cursor:pointer;transition:all var(--transition-fast) ease-out;box-shadow:0 2px 4px #00000026}.modal-action-btn:hover{background:#fff;border-color:var(--green-dark);color:var(--green-dark);transform:translateY(-1px);box-shadow:0 4px 8px #0003}.modal-action-btn svg{flex-shrink:0}.modal-action-btn.btn-delete{background:#ffe8d9;color:#8b4513;border-color:#8b4513}.modal-action-btn.btn-delete:hover{background:#fff;border-color:#8b4513;color:#8b4513;transform:translateY(-1px);box-shadow:0 4px 8px #0003}.recipe-modal-content{padding:var(--space-3xl) var(--space-4xl);padding-right:var(--space-4xl);overflow-y:auto;flex:1;max-width:100%;margin:0 auto;width:100%}.recipe-photo-section{margin-bottom:var(--space-2xl)}.recipe-photo{width:100%;height:300px;object-fit:cover;border-radius:var(--radius-lg);border:1px solid var(--border-default)}.recipe-photo-placeholder{width:100%;height:300px;background:var(--bg-tertiary);border:2px dashed var(--border-medium);border-radius:var(--radius-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);color:var(--text-muted)}.add-photo-btn{padding:8px 16px;background:var(--action-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--body-small);font-weight:400;cursor:pointer;transition:background var(--transition-fast) ease-out}.add-photo-btn:hover{background:var(--action-hover)}.recipe-details{display:flex;flex-direction:column;gap:var(--space-2xl)}.recipe-top-section{display:grid;grid-template-columns:min(400px,45%) 1fr;gap:var(--space-3xl);align-items:start;margin-bottom:var(--space-3xl)}.recipe-photo-section{width:100%}.recipe-nutrition-section{display:flex;align-items:flex-start}.recipe-details-section{display:flex;flex-direction:column;gap:var(--space-3xl)}.ingredients-section,.instructions-section{width:100%}.instructions-two-column{column-count:2;column-gap:var(--space-3xl);column-rule:1px solid var(--border-light)}.instructions-two-column ol{margin:0;padding-left:var(--space-xl)}.instructions-two-column li{break-inside:avoid;margin-bottom:var(--space-lg)}.nutrition-facts{background:var(--bg-primary);border:2px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-lg);width:100%;min-width:280px}.nutrition-facts h3{font-size:var(--label-text);font-weight:600;margin-bottom:var(--space-md);color:var(--text-primary);text-transform:uppercase;letter-spacing:1.5px;border-bottom:4px solid var(--text-primary);padding-bottom:var(--space-sm)}.nutrition-servings{font-size:var(--body-small);color:var(--text-tertiary);margin-bottom:var(--space-md);padding-bottom:var(--space-md);border-bottom:1px solid var(--border-default);display:flex;flex-direction:column;gap:4px}.nutrition-servings .serving-size{font-size:15px;font-weight:600;color:var(--text-primary)}.nutrition-servings .serving-count{font-size:var(--body-small);color:var(--text-tertiary)}.nutrition-row{display:flex;justify-content:space-between;padding:var(--space-sm) 0;border-bottom:1px solid var(--border-light);font-size:var(--body-regular)}.nutrition-row.calories{font-weight:600;font-size:16px;border-bottom:4px solid var(--text-primary);padding:var(--space-md) 0}.nutrition-row.indent{padding-left:var(--space-lg);font-size:var(--body-small)}.nutrition-label{color:var(--text-secondary)}.nutrition-value{font-weight:600;color:var(--text-primary)}@media(max-width:1024px){.recipe-top-section{grid-template-columns:1fr}.instructions-two-column{column-count:1}}.modal-section{margin-bottom:0}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md);flex-wrap:wrap;gap:var(--space-md)}.scale-controls{display:flex;align-items:center;gap:var(--space-sm)}.scale-controls label{font-size:var(--body-small);color:var(--text-tertiary);font-weight:400}.scale-btn{width:28px;height:28px;padding:0;background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:16px;font-weight:400;cursor:pointer;transition:all var(--transition-fast) ease-out;display:flex;align-items:center;justify-content:center}.scale-btn:hover{background:var(--border-default);border-color:var(--border-medium)}#scaleInput{width:60px;padding:4px 8px;border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--body-small);text-align:center;color:var(--text-secondary)}#scaleInput:focus{outline:none;border-color:var(--action-primary)}.market-select{padding:4px 8px;border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--body-small);color:var(--text-secondary);background:var(--bg-primary);cursor:pointer;transition:all var(--transition-fast) ease-out;min-width:150px}.market-select:hover{border-color:var(--border-medium)}.market-select:focus{outline:none;border-color:var(--action-primary)}.instructions-list{display:flex;flex-direction:column;gap:var(--space-md)}.instruction-step{display:flex;gap:var(--space-md);line-height:1.7;color:var(--text-secondary);font-size:var(--body-regular);padding:var(--space-md);background:var(--bg-tertiary);border-radius:var(--radius-md);border-left:3px solid var(--border-medium);break-inside:avoid;margin-bottom:var(--space-md)}.step-number{font-weight:600;color:var(--text-primary);flex-shrink:0;min-width:28px}.recipe-metadata{padding-top:var(--space-lg);border-top:1px solid var(--border-light)}.recipe-metadata p{font-size:var(--body-small);color:var(--text-tertiary);margin:0}.edit-form{display:flex;flex-direction:column;gap:var(--space-lg);padding:var(--space-2xl)}.form-group{display:flex;flex-direction:column;gap:var(--space-sm)}.form-group label{font-size:var(--body-small);font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px}.form-group input,.form-group textarea{padding:10px 14px;border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--body-regular);color:var(--text-secondary);font-family:inherit;background:var(--bg-primary);transition:border-color var(--transition-base) ease-out}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--action-primary)}.form-group textarea{resize:vertical;line-height:1.6}.checkbox-label{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;text-transform:none;font-weight:400}.checkbox-label input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:var(--action-primary)}.checkbox-label span{font-size:var(--body-regular);color:var(--text-primary)}.field-hint{margin-top:var(--space-xs);font-size:var(--body-small);color:var(--text-tertiary)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg)}.form-actions{display:flex;gap:var(--space-md);justify-content:flex-end;padding-top:var(--space-lg);border-top:1px solid var(--border-light)}.photo-upload-form{padding:var(--space-2xl);display:flex;flex-direction:column;gap:var(--space-lg)}.photo-upload-form p{font-size:var(--body-regular);color:var(--text-secondary);margin:0}.photo-upload-form input{padding:10px 14px;border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--body-regular);color:var(--text-secondary)}.photo-upload-form input:focus{outline:none;border-color:var(--action-primary)}@media(max-width:1280px){#recipeModal .modal-content{max-width:85%;width:85%}}@media(max-width:1024px){.recipe-modal-header{padding:var(--space-2xl) var(--space-xl);padding-right:80px}.recipe-modal-title-section h2{padding-right:0}.recipe-modal-content{padding:var(--space-2xl) var(--space-xl)}#recipeModal .modal-content{max-width:90%;width:90%}}@media(max-width:900px)and (min-width:769px){#recipeModal .modal-content{max-width:75%;width:75%}}@media(max-width:768px){.modal{padding:0;overflow-y:auto}#recipeModal{padding:0}.modal-content{width:100%;max-width:100%;height:auto;min-height:100vh;max-height:none;margin:0;border-radius:0;border:none;display:block}#recipeModal .modal-content{width:100%;max-width:100%;height:100vh;min-height:100vh;max-height:100vh;margin:0;border-radius:0;border:none}.close{position:fixed;right:var(--space-lg);top:var(--space-lg);width:40px;height:40px;font-size:28px;z-index:1000;background:#fffffff2;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0003;border:1px solid var(--border-light)}.recipe-modal-header{padding:var(--space-lg) var(--space-lg) var(--space-md);padding-right:60px;border-bottom:1px solid var(--border-light)}.recipe-modal-title-section h2{font-size:22px;font-weight:700;line-height:1.3;margin:0 0 var(--space-sm) 0;padding-right:0;color:#fff!important}.recipe-modal-title-section .recipe-meta-section{display:flex;flex-direction:column;gap:var(--space-sm);align-items:flex-start}.modal-badges{display:flex;gap:var(--space-xs);flex-wrap:wrap}.recipe-badge{font-size:10px;padding:3px 8px;font-weight:500}.recipe-times{display:flex;gap:var(--space-md);font-size:12px;color:var(--text-secondary)}.recipe-time-item{display:flex;align-items:baseline;gap:4px}.time-label{font-size:11px;color:var(--text-tertiary)}.time-value{font-weight:600;color:var(--text-primary);font-size:11px}.recipe-modal-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border-light)}.modal-action-btn{flex:1;padding:var(--space-sm) var(--space-xs);font-size:12px;display:flex;align-items:center;justify-content:center;gap:4px}.modal-action-btn svg{width:13px;height:13px}.recipe-modal-content{padding:0;padding-bottom:var(--space-3xl)}.recipe-top-section{display:flex;flex-direction:column;gap:0;margin-bottom:var(--space-xl)}.recipe-photo-section{margin:0 0 var(--space-xl) 0;width:100%}.recipe-photo{width:100%;height:280px;border-radius:0;border:none;object-fit:cover}.recipe-photo-placeholder{height:280px;border-radius:0;border:none}.recipe-nutrition-section{display:none}.ingredients-section{padding:0 var(--space-lg);background:var(--bg-primary);margin-bottom:var(--space-2xl)}.section-header{flex-direction:column;align-items:stretch;gap:var(--space-sm);margin-bottom:var(--space-lg);border-bottom:2px solid var(--border-default);padding-bottom:var(--space-sm)}.section-header h3{font-size:20px;font-weight:700;margin:0;text-transform:none;letter-spacing:0;color:var(--text-primary)}.scale-controls{display:flex;align-items:center;gap:var(--space-sm);font-size:14px;padding:var(--space-sm) 0}.scale-controls label{font-weight:500;color:var(--text-secondary)}@media(max-width:900px)and (min-width:769px){.ingredient-row{grid-template-columns:auto auto minmax(0,3fr) 0 60px 90px 80px}.ingredient-row td.ingredient-preparation{display:none}}.ingredients-table{display:block}.ingredients-table tbody{display:flex;flex-direction:column;gap:var(--space-sm)}.ingredient-row{display:flex;align-items:baseline;gap:var(--space-sm);padding:var(--space-sm) 0;border:none;background:transparent;border-radius:0;border-bottom:1px solid var(--border-light);position:relative}.ingredient-row:last-child{border-bottom:none}.ingredient-row:hover,.ingredient-row.has-sub-recipe{background:transparent}.ingredient-checkbox-cell{position:absolute;opacity:0;pointer-events:none}.ingredient-nutrition-status{display:none}.ingredient-amount{font-size:16px;font-weight:600;color:var(--text-primary);min-width:50px;flex-shrink:0}.ingredient-unit{font-size:16px;color:var(--text-secondary);min-width:45px;flex-shrink:0}.ingredient-name-cell{flex:1;font-size:16px;font-weight:400;line-height:1.5}.ingredient-name{color:var(--text-primary)}.sub-recipe-link{font-size:16px;margin-left:var(--space-xs)}.ingredient-preparation{display:block;font-size:14px;color:var(--text-tertiary);font-style:italic;margin-top:2px}.ingredient-preparation:empty{display:none}.ingredient-cost-cell,.ingredient-usda,.ingredient-actions{display:none}.recipe-cost-summary{margin-top:var(--space-xl);padding:var(--space-lg);background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-light);display:block}.cost-summary-row{font-size:15px;display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) 0}.cost-summary-row.total .cost-label,.cost-summary-row.total .cost-value,.cost-summary-row.per-serving .cost-label,.cost-summary-row.per-serving .cost-value{grid-column:auto;border-bottom:none;padding:0;text-align:inherit}.cost-summary-row.total{border-bottom:1px solid var(--border);padding-bottom:var(--space-md);margin-bottom:var(--space-sm)}.cost-summary-row.total .cost-value,.cost-summary-row.per-serving .cost-value{text-align:right}.instructions-section{padding:0 var(--space-lg);background:var(--bg-primary);margin-bottom:var(--space-2xl)}.instructions-section h3{font-size:20px;font-weight:700;margin:0 0 var(--space-lg) 0;text-transform:none;letter-spacing:0;color:var(--text-primary);border-bottom:2px solid var(--border-default);padding-bottom:var(--space-sm)}.instructions-two-column{column-count:1}.instructions-two-column ol{padding-left:var(--space-lg);margin:0}.instructions-two-column li{font-size:16px;line-height:1.7;margin-bottom:var(--space-xl);color:var(--text-primary)}.tags-section{padding:0 var(--space-lg);background:var(--bg-primary);margin-bottom:var(--space-xl)}.tags-section h3{font-size:18px;font-weight:600;margin:0 0 var(--space-md) 0;text-transform:none;letter-spacing:0;color:var(--text-secondary)}.recipe-tags-display{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.tag-display-chip{font-size:13px;padding:6px 12px}.modal-section{margin-bottom:0}.recipe-metadata{padding:var(--space-lg);font-size:13px;color:var(--text-tertiary);text-align:center}.nutrition-facts{display:none}}.edit-recipe-header{padding:var(--space-2xl) var(--space-2xl) 0}.edit-recipe-header h2{font-size:var(--heading-large);font-weight:300;color:var(--text-primary);margin:0}.ingredient-edit-row{display:grid;grid-template-columns:1fr 120px 80px 80px 40px 40px;gap:var(--space-sm);align-items:center;margin-bottom:var(--space-sm)}.ingredient-edit-row input,.ingredient-edit-row select{padding:8px 12px;border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--body-regular);color:var(--text-secondary);background:var(--bg-primary);transition:border-color var(--transition-base) ease-out}.ingredient-edit-row input:focus,.ingredient-edit-row select:focus{outline:none;border-color:var(--action-primary)}.ingredient-edit-row select{cursor:pointer}.ingredient-edit-row .ing-amount{text-align:right}.ingredient-edit-row .ing-uom{text-align:left}.ingredient-edit-row.is-section-title{grid-template-columns:1fr 40px 40px;background:linear-gradient(135deg,#5a9a6a14,#4a81580d);padding:var(--space-sm);border-radius:var(--radius-md);border-left:3px solid var(--action-primary)}.ingredient-edit-row.is-section-title .ing-name{font-weight:600;color:var(--text-primary)}.btn-toggle-title{width:32px;height:32px;padding:0;border:1px solid var(--border-default);background:#fff;border-radius:var(--radius-md);color:var(--text-tertiary);font-weight:700;font-size:14px;cursor:pointer;transition:all var(--transition-base) ease-out;display:flex;align-items:center;justify-content:center}.btn-toggle-title:hover{background:var(--bg-secondary);border-color:var(--action-primary);color:var(--action-primary)}.ingredient-edit-row.is-section-title .btn-toggle-title{background:var(--action-primary);color:#fff;border-color:var(--action-primary)}.section-title-row{background:linear-gradient(135deg,#5a9a6a14,#4a81580d)}.section-title-cell{padding:var(--space-md)!important;border-left:3px solid var(--action-primary);font-size:var(--body-large);color:var(--text-primary)}.section-title-row:not(:first-child) .section-title-cell{padding-top:var(--space-lg)!important}.instruction-edit-row{display:grid;grid-template-columns:auto 1fr 40px;gap:var(--space-sm);align-items:center;margin-bottom:var(--space-sm)}.instruction-edit-row .step-label{font-weight:500;color:var(--text-secondary);font-size:var(--body-regular);min-width:30px}.instruction-edit-row .instruction-input{padding:8px 12px;border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--body-regular);color:var(--text-secondary);background:var(--bg-primary);transition:border-color var(--transition-base) ease-out}.instruction-edit-row .instruction-input:focus{outline:none;border-color:var(--action-primary)}.btn-remove-step{background:transparent;border:none;color:var(--text-tertiary);font-size:24px;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-fast) ease-out}.btn-remove-step:hover{background:var(--bg-hover);color:var(--error-dark)}.select-with-add{display:grid;grid-template-columns:1fr auto;gap:var(--space-sm);align-items:start}.select-with-add select,.select-with-add input[type=text]{padding:10px 14px;border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--body-regular);color:var(--text-secondary);font-family:inherit;background:var(--bg-primary);transition:border-color var(--transition-base) ease-out}.select-with-add input[type=text]{grid-column:1 / -1}.select-with-add select:focus,.select-with-add input[type=text]:focus{outline:none;border-color:var(--action-primary)}.ingredients-edit-list,.instructions-edit-list{display:flex;flex-direction:column;gap:var(--space-xs)}.btn-link-recipe{background:transparent;border:1px solid var(--border-default);color:var(--text-tertiary);font-size:16px;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-fast) ease-out}.btn-link-recipe:hover{background:var(--bg-hover);border-color:var(--action-primary)}.btn-link-recipe.linked{background:var(--green-light-bg);border-color:var(--green-primary);color:var(--green-primary)}.btn-remove-ing{background:transparent;border:none;color:var(--text-tertiary);font-size:24px;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-fast) ease-out}.btn-remove-ing:hover{background:var(--bg-hover);color:var(--error-dark)}#ingredientsEditList{display:flex;flex-direction:column;gap:var(--space-xs)}@media(max-width:768px){.ingredient-edit-row{grid-template-columns:1fr 90px 60px 60px 35px 35px;gap:var(--space-xs)}.ingredient-edit-row input,.ingredient-edit-row select{padding:6px 8px;font-size:var(--body-small)}.instruction-edit-row{grid-template-columns:25px 1fr 35px}.modal-action-btn{flex:1;justify-content:center;min-width:80px}.section-header{flex-direction:column;align-items:flex-start}.form-row{grid-template-columns:1fr}.recipe-photo,.recipe-photo-placeholder{height:200px}.recipe-grid{grid-template-columns:1fr}.filters{flex-direction:column;gap:var(--space-sm)}.filters select,.filters button{width:100%}.controls{flex-direction:column;gap:var(--space-md)}.search-bar input{width:100%}.results-info{flex-direction:column;align-items:flex-start;gap:var(--space-md)}.view-toggle{width:100%}.view-btn{flex:1}.recipe-modal-content{padding:var(--space-lg)}.modal-section{padding:var(--space-lg) 0}.recipe-table{overflow-x:auto}.modal-content{width:95%;max-width:900px;max-height:95vh;margin:2.5vh auto}}@media(min-width:769px)and (max-width:1024px){.modal{background-color:#000000bf;overflow-y:auto;padding:0}#recipeModal{padding:0}.modal-content{width:95%;max-width:900px;max-height:none;height:auto;margin:0 auto;border-radius:var(--radius-lg);box-shadow:var(--shadow-dropdown);border:1px solid var(--border-default)}#recipeModal .modal-content{width:75%;max-width:100%;height:100vh;min-height:100vh;max-height:100vh;margin:0;border-radius:0;border:none}}@media(min-width:1025px){.modal{background-color:#000000bf;overflow-y:auto;padding:var(--space-2xl) 0}.modal-content{width:95%;max-width:900px;max-height:none;height:auto;margin:0 auto;border-radius:var(--radius-lg);box-shadow:var(--shadow-dropdown);border:1px solid var(--border-default)}#recipeModal .modal-content{width:75%;max-width:1400px}}@media print{@page{margin:.5in;size:letter}body{background:#fff;margin:0;padding:0}.controls,.results-info,.close,.recipe-grid,.import-section,.recipe-modal-actions,.scale-controls,header,.recipe-table{display:none!important}.modal{display:block;position:static;background:none}.modal-content{box-shadow:none;max-width:100%;margin:0;padding:0;border:none}.recipe-modal-header{border:none;padding:0 0 6px;margin-bottom:8px}.recipe-modal-header h2{font-size:16px;margin-bottom:3px;font-weight:700}.recipe-modal-title-section{margin-bottom:0}.recipe-meta-section{margin-top:4px}.modal-badges{gap:4px;margin-bottom:4px}.recipe-badge{font-size:8px;padding:2px 6px}.recipe-times{gap:8px}.recipe-time-item{font-size:8px}.time-label{font-size:7px}.time-value{font-size:8px}.recipe-modal-content{padding:0}.recipe-top-section{display:grid;grid-template-columns:180px 1fr;gap:12px;margin-bottom:10px;page-break-inside:avoid}.recipe-photo-section{width:100%}.recipe-photo{max-height:140px;width:100%;object-fit:cover;page-break-inside:avoid}.recipe-details-section{gap:8px}.ingredients-section{width:100%;page-break-inside:avoid}.modal-section{margin-bottom:8px}.modal-section h3{font-size:11px;margin-bottom:4px;font-weight:700}.section-header h3{font-size:11px;margin-bottom:4px}.ingredients-table{font-size:8px}.ingredient-row{padding:1px 0;font-size:8px}.ingredient-row td{padding:2px 4px}.ingredient-name,.ingredient-amount,.ingredient-unit,.ingredient-preparation,.ingredient-cost{font-size:8px}.sub-recipe-link,.sub-recipe-complete-badge{font-size:7px}.recipe-cost-summary{margin-top:6px;padding:4px 8px;font-size:8px}.cost-summary-row{padding:2px 0}.cost-label,.cost-value{font-size:8px}.instructions-section{width:100%}.instructions-two-column{column-count:2;column-gap:12px;column-rule:1px solid #ddd;font-size:8px;line-height:1.4}.instructions-two-column ol{padding-left:12px;margin:0}.instructions-two-column li{margin-bottom:3px;break-inside:avoid}.nutrition-facts{font-size:7px;padding:6px;margin:0;min-width:auto}.nutrition-facts h3{font-size:9px;margin-bottom:2px;padding-bottom:2px}.nutrition-servings{font-size:7px;margin-bottom:3px;padding-bottom:3px}.nutrition-row{padding:1px 0;font-size:7px}.nutrition-row.calories{font-size:8px;padding:2px 0}.nutrition-row.indent{padding-left:6px;font-size:7px}.nutrition-label,.nutrition-value{font-size:7px}.tags-section{margin-bottom:6px}.recipe-tags-display{gap:4px}.tag-display-chip{font-size:7px;padding:2px 6px}#modalBody h2,#modalBody h3,#modalBody p,#modalBody li{color:#000}.ingredient-checkbox{-webkit-appearance:checkbox;-moz-appearance:checkbox;appearance:checkbox}.ingredient-row:has(.ingredient-checkbox:checked){display:none}.recipe-metadata{font-size:7px}.recipe-metadata p{margin:2px 0}}.recipe-search-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000001}.recipe-search-modal{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-large);width:90%;max-width:500px;max-height:80vh;display:flex;flex-direction:column}.recipe-search-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg);border-bottom:1px solid var(--border-default)}.recipe-search-header h3{font-size:var(--section-heading);font-weight:500;color:var(--text-primary);margin:0}.btn-close-search{background:transparent;border:none;font-size:28px;color:var(--text-tertiary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-fast) ease-out}.btn-close-search:hover{background:var(--bg-hover);color:var(--text-primary)}.recipe-search-body{padding:var(--space-lg);flex:1;overflow:hidden;display:flex;flex-direction:column;gap:var(--space-md)}.search-input{padding:6px 10px;border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:.9em;color:var(--text-secondary);font-family:inherit;background:var(--bg-primary);transition:border-color var(--transition-base) ease-out;height:36px;box-sizing:border-box}.search-input:focus{outline:none;border-color:var(--action-primary)}.search-input-small{padding:8px 12px;border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--body-small);color:var(--text-secondary);font-family:inherit;background:var(--bg-primary);transition:border-color var(--transition-base) ease-out;width:100%;max-width:400px}.search-input-small:focus{outline:none;border-color:var(--action-primary)}.recipe-search-results{flex:1;overflow-y:auto;border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-tertiary)}.search-hint,.search-error{padding:var(--space-xs);text-align:center;color:var(--text-tertiary);font-size:var(--body-small)}.search-error{color:var(--error-dark)}.recipe-search-item{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-light);cursor:pointer;transition:background var(--transition-fast) ease-out}.recipe-search-item:last-child{border-bottom:none}.recipe-search-item:hover{background:var(--bg-hover)}.recipe-search-item span{color:var(--text-primary);font-size:var(--body-regular)}.recipe-search-actions{display:flex;gap:var(--space-md);justify-content:flex-end;padding:var(--space-lg);border-top:1px solid var(--border-default)}.suggestions-section{margin-bottom:var(--space-md);padding-bottom:var(--space-md);border-bottom:1px solid var(--border-light)}.suggestions-label{font-size:var(--body-small);font-weight:500;color:var(--text-tertiary);margin-bottom:var(--space-sm);text-transform:uppercase;letter-spacing:.5px}.suggestions-list{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.suggestion-chip{display:inline-flex;align-items:center;gap:var(--space-xs);padding:6px 10px;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:20px;font-size:var(--body-small);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast) ease-out;max-width:200px}.suggestion-chip:hover{background:var(--action-primary);border-color:var(--action-primary);color:#fff}.suggestion-chip:hover .suggestion-add{color:#fff}.suggestion-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suggestion-add{font-size:14px;font-weight:600;color:var(--action-primary);flex-shrink:0}.previous-days-section{margin-bottom:var(--space-md);padding-bottom:var(--space-md);border-bottom:1px solid var(--border-light)}.previous-days-label{font-size:var(--body-small);font-weight:500;color:var(--text-tertiary);margin-bottom:var(--space-sm);text-transform:uppercase;letter-spacing:.5px}.previous-days-list{display:flex;flex-direction:column;gap:var(--space-sm)}.previous-day-group{display:flex;flex-direction:column;gap:var(--space-xs)}.previous-day-group-label{font-size:var(--body-small);font-weight:600;color:var(--text-primary);padding-left:2px}.previous-day-chips{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.previous-day-chip{display:inline-flex;align-items:center;gap:var(--space-xs);padding:6px 10px;background:#e8f4f8;border:1px solid #b3d9e8;border-radius:20px;font-size:var(--body-small);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast) ease-out;max-width:200px}.previous-day-chip:hover{background:var(--action-primary);border-color:var(--action-primary);color:#fff}.previous-day-chip:hover .previous-day-add{color:#fff}.previous-day-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.previous-day-add{font-size:14px;font-weight:600;color:var(--action-primary);flex-shrink:0}.recipe-item.already-added{opacity:.5;cursor:default}.recipe-item.already-added:hover{background:transparent}.added-badge{font-size:11px;color:var(--text-tertiary);background:var(--bg-secondary);padding:2px 6px;border-radius:4px;margin-left:auto}@media(max-width:768px){.recipe-search-modal{width:95%;max-height:90vh}}.ingredients-page{display:flex;flex-direction:column;gap:var(--space-lg)}.ingredients-header{text-align:center;margin-bottom:var(--space-md)}.ingredients-header h2{font-size:var(--heading-large);font-weight:500;color:var(--text-primary);margin-bottom:var(--space-xs)}.ingredients-controls{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md);flex-wrap:wrap}.filter-buttons{display:flex;gap:var(--space-sm)}.filter-btn{padding:var(--space-xs) var(--space-md);background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--body-small);font-weight:500;cursor:pointer;transition:all var(--transition-fast) ease-out;white-space:nowrap}.filter-btn:hover{background:var(--bg-secondary);border-color:var(--border-strong)}.filter-btn.active{background:var(--action-primary);color:#fff;border-color:var(--action-primary)}.filter-btn.active:hover{background:var(--action-hover);border-color:var(--action-hover)}.ingredients-stats{display:flex;gap:var(--space-md);align-items:center;color:var(--text-secondary);font-size:var(--body-regular)}.stat-separator{color:var(--border-medium)}.ingredients-table-container{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-lg);overflow:hidden}.ingredients-data-table{width:100%;border-collapse:collapse}.ingredients-data-table thead{background:var(--bg-secondary);border-bottom:2px solid var(--border-default)}.ingredients-data-table th{padding:var(--space-md) var(--space-lg);text-align:left;font-weight:500;color:var(--text-primary);font-size:var(--body-regular);white-space:nowrap}.ingredients-data-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast) ease-out}.ingredients-data-table th.sortable:hover{background:var(--bg-hover)}.ingredients-data-table th.sort-asc .sort-icon:after{content:" ↑";color:var(--action-primary)}.ingredients-data-table th.sort-desc .sort-icon:after{content:" ↓";color:var(--action-primary)}.ingredient-data-row{border-bottom:1px solid var(--border-light);transition:background var(--transition-fast) ease-out}.ingredient-data-row:hover{background:#5a9a6a26}.ingredient-data-row.has-nutrition{background:var(--bg-hover)}.ingredient-data-row.has-nutrition:hover{background:#5a9a6a26}.ingredients-data-table td{padding:var(--space-md) var(--space-lg);color:var(--text-secondary);font-size:var(--body-regular)}.ingredient-name-cell{font-weight:500;cursor:pointer}.ingredient-name-wrapper{display:flex;align-items:center;gap:var(--space-sm);width:100%;min-height:44px}.btn-edit-name{padding:4px 8px;background:transparent;color:var(--text-tertiary);border:1px solid transparent;border-radius:var(--radius-sm);font-size:14px;cursor:pointer;transition:all var(--transition-fast) ease-out;opacity:0}.ingredient-data-row:hover .btn-edit-name{opacity:1}.btn-edit-name:hover{background:var(--bg-hover);border-color:var(--border-default);color:var(--text-primary)}.nutrition-badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;background:var(--green-primary);color:#fff;border-radius:50%;font-size:12px;font-weight:700}.market-indicator-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:#10b981;color:#fff;border-radius:4px;font-size:11px;font-weight:700;margin-left:6px;cursor:help}.recipe-count-cell{text-align:center}.recipe-count{display:inline-block;padding:4px 12px;background:var(--bg-secondary);border-radius:var(--radius-full);font-weight:500}.recipe-count-btn{display:inline-block;padding:4px 12px;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-full);font-weight:500;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast) ease-out;font-size:var(--body-regular)}.recipe-count-btn:hover{background:var(--action-primary);color:#fff;border-color:var(--action-primary);transform:translateY(-1px)}.usda-cell{max-width:300px}.usda-info{display:flex;flex-direction:column;gap:4px}.usda-name{font-weight:500;color:var(--text-primary)}.usda-type{font-size:var(--body-small);color:var(--text-tertiary)}.no-usda{color:var(--text-muted);font-style:italic}.nutrition-preview{display:flex;flex-wrap:wrap;gap:var(--space-sm);font-size:var(--body-small)}.nutrition-preview span{padding:4px 8px;background:var(--bg-secondary);border-radius:var(--radius-sm);white-space:nowrap}.no-nutrition{color:var(--text-muted)}.actions-cell{text-align:right;white-space:nowrap}.btn-link-usda{padding:6px 16px;background:var(--action-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--body-small);font-weight:500;cursor:pointer;transition:background var(--transition-fast) ease-out;white-space:nowrap;display:inline-block}.btn-link-usda:hover{background:var(--action-hover)}.btn-link-market{padding:6px 16px;background:var(--action-secondary, #3b82f6);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--body-small);font-weight:500;cursor:pointer;transition:background var(--transition-fast) ease-out;white-space:nowrap;display:inline-block;margin-left:var(--space-sm)}.btn-link-market:hover{background:var(--action-secondary-hover, #2563eb)}.market-links-badge{display:inline-flex;align-items:center;padding:4px 10px;background:var(--blue-light, #dbeafe);color:var(--blue-dark, #1e40af);border-radius:var(--radius-sm);font-size:var(--body-small);font-weight:500}.no-market{color:var(--text-muted);font-style:italic}.category-cell{padding:var(--space-md) var(--space-lg);text-align:left}.category-badge{display:inline-block;padding:4px 8px;background-color:var(--green-light-bg);color:var(--green-dark);border-radius:var(--radius-sm);font-size:var(--body-small);font-weight:500}.no-category{color:var(--text-muted);font-style:italic}.market-pricing-cell{text-align:center;padding:var(--space-sm)}.market-progress-cell{padding:var(--space-sm)}.market-progress-wrapper{display:flex;align-items:center;gap:var(--space-sm)}.market-progress-bar{flex:1;height:20px;background:var(--bg-secondary);border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border-default);min-width:60px}.market-progress-fill{height:100%;background:linear-gradient(90deg,#10b981,#059669);transition:width var(--transition-normal) ease-out;border-radius:var(--radius-sm)}.market-progress-text{font-size:var(--body-small);font-weight:600;color:var(--text-secondary);white-space:nowrap;min-width:30px;text-align:center}.market-progress-col{min-width:140px;text-align:center}.btn-delete-ingredient{padding:6px 10px;background:transparent;color:var(--text-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:18px;font-weight:700;cursor:pointer;transition:all var(--transition-fast) ease-out;margin-left:var(--space-sm);display:inline-block;vertical-align:middle}.btn-delete-ingredient:hover{background:var(--error-light);border-color:var(--error-dark);color:var(--error-dark)}.bulk-actions{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md)}#selectedCount,#mogSelectedCount{font-size:var(--body-regular);color:var(--text-secondary);font-weight:500}.bulk-edit-panel{background:var(--green-light-bg);border:1px solid var(--green-primary);border-radius:var(--radius-md);padding:var(--space-lg);margin-bottom:var(--space-lg);animation:slideDown .2s ease}.bulk-edit-content{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}.bulk-edit-content label{font-weight:600;color:var(--green-text);font-size:var(--body-regular)}.bulk-edit-content input[type=text]{flex:1;min-width:250px;padding:var(--space-sm) var(--space-md);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--body-regular)}.bulk-edit-content input[type=text]:focus{outline:none;border-color:var(--green-primary)}.btn-delete-bulk{padding:6px 16px;background:var(--error-light);color:var(--error-dark);border:1px solid var(--error-dark);border-radius:var(--radius-md);font-size:var(--body-small);font-weight:500;cursor:pointer;transition:all var(--transition-fast) ease-out}.btn-delete-bulk:hover{background:var(--error-dark);color:#fff}.checkbox-col{width:40px;text-align:center}.checkbox-cell{text-align:center;padding:var(--space-md)}.ingredient-checkbox,#selectAllCheckbox{width:18px;height:18px;cursor:pointer;accent-color:var(--action-primary)}.nutrition-status-col{width:40px;text-align:center;color:var(--green-primary);font-size:16px}.nutrition-status-cell{text-align:center;padding:var(--space-md)}.ingredient-data-row.selected{background:var(--bg-hover)}.ingredients-list{max-height:200px;overflow-y:auto;border:1px solid var(--border-light);border-radius:var(--radius-md);padding:var(--space-sm);background:var(--bg-tertiary);margin:var(--space-md) 0}.ingredient-item{padding:var(--space-xs) var(--space-sm);border-bottom:1px solid var(--border-light)}.ingredient-item:last-child{border-bottom:none}.btn-auto-link{padding:var(--space-sm) var(--space-lg);background:var(--action-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--body-regular);font-weight:500;cursor:pointer;transition:background var(--transition-fast) ease-out;white-space:nowrap}.btn-auto-link:hover{background:var(--action-hover)}.mog-action-buttons{display:flex;flex-direction:column;gap:var(--space-sm);align-items:flex-end}.btn-auto-categorize{padding:var(--space-sm) var(--space-lg);background:#5a9a6a;color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--body-regular);font-weight:500;cursor:pointer;transition:background var(--transition-fast) ease-out;white-space:nowrap}.btn-auto-categorize:hover{background:#4a8559}.auto-link-modal{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-large);width:90%;max-width:600px;display:flex;flex-direction:column}.auto-link-header{padding:var(--space-lg);border-bottom:1px solid var(--border-default)}.auto-link-header h3{font-size:var(--section-heading);font-weight:500;color:var(--text-primary);margin:0}.auto-link-body{padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md)}.progress-bar{width:100%;height:24px;background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--action-primary),var(--action-hover));width:0%;transition:width .3s ease-out}.progress-stats{text-align:center;font-size:var(--body-regular);color:var(--text-secondary);font-weight:500}.progress-log{max-height:300px;overflow-y:auto;border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-tertiary);padding:var(--space-sm);font-size:var(--body-small)}.log-success{padding:var(--space-xs);color:#059669;border-bottom:1px solid var(--border-light)}.log-skip{padding:var(--space-xs);color:var(--text-tertiary);border-bottom:1px solid var(--border-light)}.log-error{padding:var(--space-xs);color:var(--error-dark);border-bottom:1px solid var(--border-light)}.log-summary{padding:var(--space-sm);background:var(--bg-secondary);border-radius:var(--radius-sm);margin-bottom:var(--space-sm);font-weight:500}.auto-link-actions{padding:var(--space-lg);border-top:1px solid var(--border-default);display:flex;justify-content:flex-end;gap:var(--space-md)}.usda-search-modal{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-large);width:90%;max-width:600px;max-height:80vh;display:flex;flex-direction:column}.usda-search-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg);border-bottom:1px solid var(--border-default)}.usda-search-header h3{font-size:var(--section-heading);font-weight:500;color:var(--text-primary);margin:0}.usda-search-body{padding:var(--space-lg);flex:1;overflow:hidden;display:flex;flex-direction:column;gap:var(--space-md)}.usda-search-results{max-height:100px;overflow-y:auto;border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-tertiary)}.usda-search-item{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-light);cursor:pointer;transition:background var(--transition-fast) ease-out}.usda-search-item:last-child{border-bottom:none}.usda-search-item:hover{background:var(--bg-hover)}.usda-food-info{display:flex;flex-direction:column;gap:4px}.usda-food-info strong{color:var(--text-primary);font-size:var(--body-regular)}.usda-food-type{font-size:var(--body-small);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.usda-brand{margin-top:4px;font-size:var(--body-small);color:var(--text-secondary)}.usda-search-actions{display:flex;gap:var(--space-md);justify-content:flex-end;padding:var(--space-lg);border-top:1px solid var(--border-default)}.btn-clear-usda{margin-right:auto}@media(max-width:768px){.ingredients-controls{flex-direction:column;align-items:stretch}.ingredients-stats{justify-content:center}.ingredients-table-container{overflow-x:auto}.ingredients-data-table{min-width:800px}.usda-search-modal{width:95%;max-height:90vh}}.combined-link-modal{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-large);width:90%;max-width:900px;max-height:85vh;display:flex;flex-direction:column}.modal-header-combined{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) var(--space-lg);border-bottom:1px solid var(--border-default)}.modal-header-combined h3{font-size:var(--section-heading);font-weight:600;color:var(--text-primary);margin:0}.modal-body-combined{padding:var(--space-md);overflow-y:auto;display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg);flex:1}.recipe-selector-modal .modal-body-combined{grid-template-columns:340px 1fr;gap:var(--space-lg);overflow:hidden}.modal-left-panel{display:flex;flex-direction:column;gap:var(--space-md)}.modal-right-panel{display:flex;flex-direction:column;min-height:0}.link-section{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-md);background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-default)}.link-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xs)}.link-section-header h4{font-size:var(--body-large);font-weight:600;color:var(--text-primary);margin:0}.market-select-inline{padding:var(--space-xs) var(--space-sm);font-size:var(--body-small);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary)}.search-results{overflow-y:auto;max-height:200px;min-height:10px;padding:4px 8px;background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:.9em;color:var(--text-secondary)}.search-result-item{padding:var(--space-md);border:1px solid var(--border-default);border-radius:var(--radius-sm);margin-bottom:var(--space-sm);cursor:pointer;transition:all var(--transition-fast);background:var(--bg-primary)}.search-result-item:hover{background:var(--bg-tertiary);border-color:var(--primary);transform:translateY(-1px);box-shadow:var(--shadow-medium)}.result-info{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm)}.result-type{font-size:var(--body-small);color:var(--text-tertiary);padding:2px 8px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.result-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xs)}.result-price-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.result-price{font-size:var(--body-small);color:var(--primary);font-weight:600}.result-price-base{font-size:var(--body-small);font-weight:700;color:#0369a1;background:#e0f2fe;border-radius:4px;padding:1px 6px}.result-brand,.result-pack{font-size:var(--body-small);color:var(--text-secondary);margin-top:var(--space-xs)}.modal-footer-combined{display:flex;justify-content:flex-end;gap:var(--space-md);padding:var(--space-lg);border-top:1px solid var(--border-default)}.ingredient-link-modal{cursor:pointer;color:var(--primary);text-decoration:none;transition:color var(--transition-fast)}.ingredient-link-modal:hover{color:var(--action-primary-hover);text-decoration:underline}.current-link-info{padding:var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-sm);margin-bottom:var(--space-sm);font-size:var(--body-small);color:var(--text-secondary)}.current-link-info strong{color:var(--text-primary);font-weight:600}.current-link-info div{margin-top:var(--space-xs)}.current-link-info div:first-child{margin-top:0}@media(max-width:768px){.combined-link-modal{width:95%;max-height:90vh}.modal-body-combined{grid-template-columns:1fr;gap:var(--space-lg)}.search-results{max-height:120px;min-height:10px}}.recipe-list-modal{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-large);width:90%;max-width:600px;max-height:80vh;display:flex;flex-direction:column}.recipe-list-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg);border-bottom:1px solid var(--border-default)}.recipe-list-header h3{font-size:var(--section-heading);font-weight:500;color:var(--text-primary);margin:0}.recipe-list-body{padding:var(--space-lg);flex:1;overflow-y:auto}.recipes-list{display:flex;flex-direction:column;gap:var(--space-xs)}.recipe-list-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-lg);background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast) ease-out}.recipe-list-item:hover{background:var(--bg-secondary);border-color:var(--border-medium);transform:translate(4px)}.recipe-list-item .recipe-name{font-weight:500;color:var(--text-primary);flex:1}.recipe-list-item .recipe-arrow{color:var(--text-tertiary);font-size:18px;transition:transform var(--transition-fast) ease-out}.recipe-list-item:hover .recipe-arrow{transform:translate(4px);color:var(--text-primary)}.no-recipes{text-align:center;color:var(--text-muted);font-style:italic;padding:var(--space-2xl)}.recipe-list-actions{display:flex;justify-content:flex-end;padding:var(--space-lg);border-top:1px solid var(--border-default);gap:var(--space-md)}.delete-confirmation-modal{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-large);width:90%;max-width:500px;display:flex;flex-direction:column}.delete-confirmation-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg);border-bottom:1px solid var(--border-default)}.delete-confirmation-header h3{font-size:var(--section-heading);font-weight:500;color:var(--error-dark);margin:0}.btn-close-delete{background:transparent;border:none;font-size:28px;color:var(--text-tertiary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-fast) ease-out}.btn-close-delete:hover{background:var(--bg-hover);color:var(--text-primary)}.delete-confirmation-body{padding:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-md)}.warning-text{font-size:var(--body-regular);color:var(--text-primary);margin:0}.warning-text strong{color:var(--error-dark)}.warning-subtext{font-size:var(--body-regular);color:var(--text-secondary);margin:0}.warning-note{font-size:var(--body-small);color:var(--text-tertiary);font-style:italic;margin:0}.delete-confirmation-actions{display:flex;gap:var(--space-md);justify-content:flex-end;padding:var(--space-lg);border-top:1px solid var(--border-default)}.btn-danger{padding:10px 20px;background:var(--error-dark);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--body-regular);font-weight:500;cursor:pointer;transition:background var(--transition-fast) ease-out,transform .1s ease}.btn-danger:hover{background:#c92a2a}.btn-danger:active{background:#c92a2a;transform:scale(.98)}.btn-danger:focus{background:#c92a2a;outline:none}@media(max-width:768px){.delete-confirmation-modal{width:95%}.delete-confirmation-actions{flex-direction:column-reverse}.delete-confirmation-actions button{width:100%}}.edit-name-modal{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-large);width:90%;max-width:500px;display:flex;flex-direction:column}.edit-name-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg);border-bottom:1px solid var(--border-default)}.edit-name-header h3{font-size:var(--section-heading);font-weight:500;color:var(--text-primary);margin:0}.btn-close-edit{background:transparent;border:none;font-size:28px;color:var(--text-tertiary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-fast) ease-out}.btn-close-edit:hover{background:var(--bg-hover);color:var(--text-primary)}.edit-name-body{padding:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-md)}.edit-name-body label{font-size:var(--body-regular);font-weight:500;color:var(--text-primary);margin-bottom:var(--space-xs)}.ingredient-name-input{padding:12px 16px;font-size:var(--body-regular);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);transition:border-color var(--transition-fast) ease-out}.ingredient-name-input:focus{outline:none;border-color:var(--action-primary)}.edit-note{font-size:var(--body-small);color:var(--text-secondary);margin:0}.edit-name-actions{display:flex;gap:var(--space-md);justify-content:flex-end;padding:var(--space-lg);border-top:1px solid var(--border-default)}@media(max-width:768px){.edit-name-modal{width:95%}.edit-name-actions{flex-direction:column-reverse}.edit-name-actions button{width:100%}}.concept-books-view{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-2xl);padding:var(--space-2xl) 0}.concept-card{background:var(--bg-primary);border-radius:var(--radius-lg);border:1px solid var(--border-default);box-shadow:var(--shadow-subtle);cursor:pointer;transition:all var(--transition-base) ease-out;display:flex;flex-direction:column;height:100%;overflow:hidden}.concept-card:hover{transform:translateY(-3px);box-shadow:0 4px 12px #0000001a;border-color:var(--border-medium)}.concept-card-photo{width:100%;height:200px;background-size:cover;background-position:center;background-repeat:no-repeat;background-color:var(--bg-tertiary)}.concept-card-photo-placeholder{width:100%;height:200px;background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-tertiary) 100%);display:flex;align-items:center;justify-content:center;color:var(--text-tertiary)}.concept-card-content{padding:var(--space-xl);display:flex;flex-direction:column;flex:1}.concept-card h3{font-size:20px;font-weight:600;margin-bottom:var(--space-md);color:var(--text-primary);line-height:1.3}.concept-meta{display:flex;flex-direction:column;gap:var(--space-md);margin-top:auto}.concept-recipe-count{font-size:var(--body-regular);color:var(--text-secondary);font-weight:500}.concept-tags{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.concept-tag{padding:4px 10px;background:var(--bg-secondary);border-radius:var(--radius-full);font-size:var(--body-small);color:var(--text-secondary);border:1px solid var(--border-default)}@media(max-width:768px){.concept-books-view{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-lg)}}.book-index-header{text-align:center;padding:var(--space-2xl) var(--space-lg);border-bottom:2px solid var(--border-default);background:linear-gradient(to bottom,var(--bg-secondary),var(--bg-primary))}.book-index-header h2{font-size:var(--heading-xlarge);font-weight:600;color:var(--text-primary);margin:0 0 var(--space-sm) 0}.book-index-subtitle{font-size:var(--body-regular);color:var(--text-secondary);margin:0}.book-index-content{padding:var(--space-2xl)}.book-index-grid{display:grid;grid-template-columns:1fr;gap:var(--space-md)}.book-index-item{display:flex;align-items:flex-start;gap:var(--space-lg);padding:var(--space-lg);background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast) ease-out}.book-index-item:hover{background:var(--bg-secondary);border-color:var(--border-medium);transform:translate(4px);box-shadow:0 4px 12px #0000001a}.book-index-number{display:flex;align-items:center;justify-content:center;min-width:36px;height:36px;background:var(--action-primary);color:#fff;border-radius:var(--radius-full);font-weight:600;font-size:var(--body-regular)}.book-index-details{flex:1;display:flex;flex-direction:column;gap:var(--space-sm)}.book-index-recipe-name{font-size:18px;font-weight:500;color:var(--text-primary);margin:0}.book-index-meta{display:flex;flex-wrap:wrap;gap:var(--space-xs);align-items:center}.book-index-meta .recipe-badge{font-size:var(--body-small)}.recipe-badge.tag{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-default)}@media(max-width:768px){.book-index-content{padding:var(--space-lg)}.book-index-item{flex-direction:column;align-items:stretch;gap:var(--space-md)}.book-index-number{align-self:flex-start}.book-index-recipe-name{font-size:16px}}.tags-input-container{display:flex;gap:var(--space-sm);margin-bottom:var(--space-md)}.tags-input-container input{flex:1;padding:var(--space-sm) var(--space-md);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--body-regular);background:var(--bg-primary);color:var(--text-primary)}.tags-input-container input:focus{outline:none;border-color:var(--action-primary)}.current-tags{display:flex;flex-wrap:wrap;gap:var(--space-xs);min-height:40px;padding:var(--space-sm);border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-tertiary)}.tag-chip{display:inline-flex;align-items:center;gap:var(--space-xs);padding:6px 12px;background:var(--action-primary);color:#fff;border-radius:var(--radius-full);font-size:var(--body-small);font-weight:500;white-space:nowrap}.tag-chip .remove-tag{background:transparent;border:none;color:#fff;font-size:18px;font-weight:700;cursor:pointer;padding:0;margin:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background var(--transition-fast) ease-out}.tag-chip .remove-tag:hover{background:#0003}.menu-selector-container{display:flex;gap:var(--space-sm);align-items:center;margin-bottom:var(--space-sm)}.menu-selector-container select{flex:1;padding:var(--space-sm);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--body-regular)}.current-menus{display:flex;flex-wrap:wrap;gap:var(--space-xs);min-height:40px;padding:var(--space-sm);border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-tertiary)}.menu-chip{display:inline-flex;align-items:center;gap:var(--space-xs);padding:6px 12px;background:#f59e0b;color:#fff;border-radius:var(--radius-sm);font-size:var(--body-small);font-weight:500;white-space:nowrap}.menu-chip .remove-menu{background:transparent;border:none;color:#fff;font-size:18px;font-weight:700;line-height:1;padding:0;cursor:pointer;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background var(--transition-fast) ease-out}.menu-chip .remove-menu:hover{background:#0003}.selected-items{display:flex;flex-wrap:wrap;gap:var(--space-xs);min-height:40px;padding:var(--space-sm);border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-tertiary);margin-top:var(--space-sm)}.concept-chip{display:inline-flex;align-items:center;gap:var(--space-xs);padding:6px 12px;background:var(--action-primary);color:#fff;border-radius:var(--radius-sm);font-size:var(--body-small);font-weight:500;white-space:nowrap}.concept-chip .remove-concept{background:transparent;border:none;color:#fff;font-size:18px;font-weight:700;line-height:1;padding:0;cursor:pointer;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background var(--transition-fast) ease-out}.concept-chip .remove-concept:hover{background:#0003}.recipe-tags-display{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-sm)}.tag-display-chip{display:inline-flex;align-items:center;padding:6px 12px;background:var(--green-light-bg);color:var(--green-text);border:1px solid var(--green-primary);border-radius:var(--radius-full);font-size:var(--body-small);font-weight:500;white-space:nowrap}.tags-section{margin-top:var(--space-lg)}.magazine-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;padding:var(--space-xl);perspective:2000px}.magazine-spread{display:flex;position:relative;box-shadow:0 20px 60px #0000004d}.magazine-page{background:#fff;position:relative;overflow-y:auto;overflow-x:hidden}.magazine-page::-webkit-scrollbar{display:none}.magazine-page{scrollbar-width:none}.magazine-page-content{padding:32px 32px 48px;height:100%}.magazine-page-left .magazine-page-content{padding-right:40px}.magazine-page-right .magazine-page-content{padding-left:40px}.magazine-page-left:after{content:"";position:absolute;inset:0 0 0 auto;width:32px;background:linear-gradient(to left,rgba(0,0,0,.1),transparent);pointer-events:none}.magazine-page-right:before{content:"";position:absolute;inset:0 auto 0 0;width:32px;background:linear-gradient(to right,rgba(0,0,0,.1),transparent);pointer-events:none}.magazine-spine{position:absolute;top:0;left:50%;transform:translate(-50%);width:1px;height:100%;background:linear-gradient(to right,#0003,#0000004d,#0003);pointer-events:none;z-index:10}.flipping-page{position:absolute;top:0;height:100%;width:50%;transform-style:preserve-3d;z-index:20}.flipping-page.flip-next{left:50%;transform-origin:left center;animation:flipNext .6s ease-in-out forwards}.flipping-page.flip-prev{right:50%;transform-origin:right center;animation:flipPrev .6s ease-in-out forwards}.flip-face{position:absolute;width:100%;height:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:#fff;overflow:hidden}.flip-face-front{transform:rotateY(0)}.flip-face-back{transform:rotateY(180deg)}.index-page{padding:var(--space-3xl)}.magazine-header{text-align:center;padding-bottom:var(--space-3xl);border-bottom:3px solid var(--border-default);margin-bottom:var(--space-3xl)}.magazine-title{font-size:48px;font-weight:700;color:var(--text-primary);margin:0 0 var(--space-md) 0;letter-spacing:-1px;font-family:Georgia,Times New Roman,serif}.magazine-subtitle{font-size:var(--body-large);color:var(--text-secondary);font-style:italic;margin:0}.magazine-toc{flex:1;overflow-y:auto}.toc-title{font-size:28px;font-weight:600;color:var(--text-primary);margin:0 0 var(--space-2xl) 0;text-transform:uppercase;letter-spacing:2px;font-size:20px}.toc-list{display:flex;flex-direction:column;gap:var(--space-md)}.toc-item{display:grid;grid-template-columns:40px 1fr auto 60px;gap:var(--space-md);align-items:baseline;padding:var(--space-md) 0;cursor:pointer;transition:all var(--transition-fast) ease-out;border-bottom:1px solid var(--border-light)}.toc-item:hover{padding-left:var(--space-md);background:var(--bg-hover)}.toc-number{font-weight:600;color:var(--action-primary);font-size:var(--body-large)}.toc-recipe-name{font-size:var(--body-large);color:var(--text-primary);font-weight:500}.toc-dots{flex:1;border-bottom:2px dotted var(--border-default);margin:0 var(--space-sm)}.toc-page-num{font-weight:600;color:var(--text-secondary);text-align:right;min-width:40px}.recipe-page{padding:var(--space-2xl);overflow-y:auto}.recipe-page-header{border-bottom:2px solid var(--border-default);padding-bottom:var(--space-xl);margin-bottom:var(--space-xl);position:relative}.recipe-page-number{position:absolute;top:-10px;right:0;font-size:72px;font-weight:200;color:#0000001a;line-height:1;font-family:Georgia,serif}.recipe-page-title{font-size:36px;font-weight:700;color:#fff;margin:0 0 var(--space-md) 0;font-family:Georgia,Times New Roman,serif;letter-spacing:-.5px}.recipe-page-meta{display:flex;gap:var(--space-sm);flex-wrap:wrap}.recipe-page-content{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2xl);margin-bottom:var(--space-2xl)}.recipe-page-photo{grid-column:1;aspect-ratio:4 / 3;border-radius:var(--radius-md);overflow:hidden;box-shadow:0 4px 12px #00000026}.recipe-page-photo img{width:100%;height:100%;object-fit:cover}.recipe-page-details{grid-column:2;display:flex;flex-direction:column;gap:var(--space-xl)}.recipe-page-content:not(:has(.recipe-page-photo)) .recipe-page-details{grid-column:1 / -1}.recipe-page-section h3{font-size:20px;font-weight:600;color:var(--text-primary);margin:0 0 var(--space-md) 0;text-transform:uppercase;letter-spacing:1px;font-size:16px;border-bottom:2px solid var(--action-primary);padding-bottom:var(--space-sm)}.recipe-page-ingredients{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-sm)}.recipe-page-ingredients li{display:flex;gap:var(--space-sm);padding:var(--space-xs) 0;border-bottom:1px solid var(--border-light);font-size:var(--body-regular);line-height:1.6}.ing-amount{font-weight:600;color:var(--action-primary);min-width:80px;flex-shrink:0}.ing-name{flex:1;color:var(--text-primary)}.ing-prep{color:var(--text-secondary);font-style:italic;font-size:var(--body-small)}.recipe-page-instructions{font-size:var(--body-regular);line-height:1.8;color:var(--text-primary)}.recipe-page-instructions ol{padding-left:var(--space-xl);margin:0}.recipe-page-instructions li{margin-bottom:var(--space-md);padding-left:var(--space-sm)}.nutrition-compact .nutrition-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm);font-size:var(--body-regular);line-height:1.8}.magazine-nav{display:flex;justify-content:space-between;padding-top:var(--space-xl);margin-top:auto;border-top:1px solid var(--border-light)}.magazine-nav-btn{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);background:var(--action-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--body-regular);font-weight:500;cursor:pointer;transition:all var(--transition-fast) ease-out}.magazine-nav-btn:hover{background:var(--action-hover);transform:translateY(-2px);box-shadow:0 4px 12px #0003}.magazine-nav-btn.next{margin-left:auto}.page-flip-out{animation:pageFlipOut .3s ease-out forwards}.page-flip-in{animation:pageFlipIn .3s ease-out forwards}.page-flip-out-reverse{animation:pageFlipOutReverse .3s ease-out forwards}.page-flip-in-reverse{animation:pageFlipInReverse .3s ease-out forwards}@keyframes flipNext{0%{transform:rotateY(0)}to{transform:rotateY(-180deg)}}@keyframes flipPrev{0%{transform:rotateY(0)}to{transform:rotateY(180deg)}}@media(max-width:768px){.flipping-page{width:100%}.flipping-page.flip-next{left:0;right:auto;transform-origin:left center;animation:flipNextMobile .6s ease-in-out forwards}.flipping-page.flip-prev{left:0;right:auto;transform-origin:left center;animation:flipPrevMobile .6s ease-in-out forwards}}@keyframes flipNextMobile{0%{transform:rotateY(0)}to{transform:rotateY(-180deg)}}@keyframes flipPrevMobile{0%{transform:rotateY(0)}to{transform:rotateY(180deg)}}@media(max-width:1024px){.recipe-page-content{grid-template-columns:1fr}.recipe-page-photo,.recipe-page-details{grid-column:1}.magazine-title{font-size:36px}.recipe-page-title{font-size:28px}}@media(max-width:768px){.magazine-container{padding:var(--space-md)}.index-page{padding:var(--space-xl)}.recipe-page{padding:var(--space-lg)}.magazine-title{font-size:28px}.recipe-page-title{font-size:24px}.toc-item{grid-template-columns:30px 1fr}.toc-dots,.toc-page-num{display:none}.recipe-page-number{font-size:48px}.nutrition-compact .nutrition-grid{grid-template-columns:1fr}}.print-view{display:none}@media print{body>*:not(.print-view){display:none!important}.print-view{display:block!important}.print-recipe{max-width:100%;margin:0;padding:20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#000;background:#fff}.print-header{border-bottom:2px solid #000;padding-bottom:16px;margin-bottom:24px}.print-header h1{font-size:28px;font-weight:700;margin:0 0 12px;color:#000}.print-meta{display:flex;gap:16px;margin-bottom:12px;font-size:14px}.print-meta span{background:#f0f0f0;padding:4px 12px;border-radius:4px}.print-times{display:flex;gap:24px;font-size:14px;margin-top:12px}.print-times strong{font-weight:600}.print-section{page-break-inside:avoid;margin-bottom:28px}.print-section h2{font-size:20px;font-weight:700;margin:0 0 12px;color:#000;border-bottom:1px solid #ddd;padding-bottom:8px}.print-ingredients{list-style:none;padding:0;margin:0}.print-ingredients li{padding:6px 0;border-bottom:1px solid #eee;display:flex;gap:12px;font-size:13px;line-height:1.6}.print-amount{font-weight:600;min-width:80px;color:#000}.print-ingredient-name{flex:1;color:#000}.print-preparation{color:#666;font-style:italic}.print-instructions{padding-left:24px;margin:0}.print-instructions li{margin-bottom:12px;font-size:13px;line-height:1.7;color:#000;page-break-inside:avoid}.print-instructions-text{font-size:13px;line-height:1.7;color:#000;margin:0;white-space:pre-wrap}.print-section p{font-size:13px;line-height:1.7;color:#000;margin:0}.ingredient-checkbox-cell,.ingredient-checkbox,.ingredient-linked-badge,.ingredient-nutrition-status,.recipe-modal-actions{display:none!important}.print-ingredients-table .ingredient-name-cell{padding-left:0}.print-view{padding:20px;max-width:100%;background:#fff}.recipe-modal-header,.recipe-modal-content,.recipe-top-section,.recipe-details-section,.modal-section{display:block!important;page-break-inside:avoid}.recipe-photo-section img{max-width:100%;height:auto}}.gennie-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#fff;z-index:1000000;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:none;backdrop-filter:none;animation:overlayFadeIn .4s ease-out;overflow:hidden}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.dots-background{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.15;overflow:hidden;pointer-events:none}.dots-pattern{background-image:radial-gradient(circle,#333333 1px,transparent 1px);background-size:20px 20px;width:200%;height:200%;animation:wave 25s ease-in-out infinite;transform-origin:center center;position:absolute;top:-50%;left:-50%}@keyframes wave{0%{transform:translate(0) scale(1) rotate(0)}12%{transform:translate(-15px,-12px) scale(1.05) rotate(1deg)}23%{transform:translate(8px,18px) scale(.95) rotate(-.5deg)}34%{transform:translate(-22px,8px) scale(1.08) rotate(1.5deg)}45%{transform:translate(12px,-15px) scale(.92) rotate(-1deg)}56%{transform:translate(-8px,20px) scale(1.03) rotate(.8deg)}67%{transform:translate(18px,-10px) scale(.97) rotate(-1.2deg)}78%{transform:translate(-12px,14px) scale(1.06) rotate(.5deg)}89%{transform:translate(10px,-8px) scale(.94) rotate(-.8deg)}to{transform:translate(0) scale(1) rotate(0)}}.gennie-full-container{width:100%;height:100%;max-width:100%;max-height:100vh;margin:0;padding:0;animation:slideUp .5s cubic-bezier(.16,1,.3,1);position:relative;z-index:1;display:flex;align-items:center;justify-content:center}@keyframes slideUp{0%{transform:translateY(50px) scale(.96);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.chat-container{display:flex;flex-direction:column;height:100%;width:100%;background:transparent;border-radius:0;overflow:visible;box-shadow:none;align-items:center;justify-content:center;transition:justify-content .3s ease}.chat-container.chat-active{justify-content:flex-start}.chat-header{display:none;padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--border-default);background:var(--bg-primary);align-items:center;justify-content:flex-end;position:relative;z-index:10}.chat-header-content{display:none}.chat-header h2{font-size:14px;font-weight:600;margin:0;color:var(--text-primary);letter-spacing:-.5px}.chat-subtitle{display:none;font-weight:400}.chat-messages{flex:0 0 auto;overflow-y:auto;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;background:transparent;max-width:800px;margin:-150px auto 0;width:100%;transition:all .3s ease}.chat-messages.has-messages{flex:1 1 auto;overflow-y:auto;justify-content:flex-start;gap:var(--space-xl);padding:var(--space-2xl) var(--space-xl);margin:0 auto;align-items:stretch}.welcome-message{background:transparent;padding:0 var(--space-4xl) var(--space-lg) var(--space-4xl);border-radius:0;text-align:center;margin:0 auto;max-width:700px;box-shadow:none;border:none;animation:fadeIn .6s ease-out}.genni-header{margin-bottom:var(--space-xs)}.genni-header h2{font-size:52px;font-weight:400;margin:0 0 var(--space-md) 0;color:#000;letter-spacing:2px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.genni-subtitle{font-size:15px;color:var(--text-secondary);font-weight:500;margin:var(--space-sm) 0 var(--space-md) 0;letter-spacing:.3px}.genni-tagline{font-size:14px;color:var(--text-tertiary);font-style:italic;margin:0 0 var(--space-xl) 0;line-height:1.6}.learn-more-btn{margin:0 0 var(--space-xs) 0;padding:var(--space-xs) var(--space-lg);background:transparent;color:var(--text-tertiary);border:1px solid #000000;border-radius:16px;font-size:12px;font-weight:400;cursor:pointer;transition:all .2s ease;opacity:.6}.learn-more-btn:hover{opacity:1;color:var(--text-secondary);border-color:#000;transform:translateY(-1px)}.learn-more-btn:active{transform:translateY(0)}.genni-info-modal{display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000000;animation:fadeIn .2s ease}.genni-info-modal.active{display:block}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10000;display:flex;align-items:center;justify-content:center}.modal-dialog{position:relative;background:#fff;border-radius:16px;max-width:700px;width:90%;max-height:85vh;overflow:hidden;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translate(-50%,-45%)}to{opacity:1;transform:translate(-50%,-50%)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2xl);border-bottom:1px solid var(--border-default);background:var(--bg-secondary)}.modal-header h2{margin:0;font-size:28px;font-weight:600;color:var(--text-primary)}.modal-close-btn{background:none;border:none;font-size:32px;line-height:1;color:var(--text-tertiary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.modal-close-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.modal-body{padding:var(--space-2xl);overflow-y:auto;max-height:calc(85vh - 80px)}.modal-section{margin-bottom:var(--space-3xl)}.modal-section:last-child{margin-bottom:0}.modal-section h3{font-size:20px;font-weight:600;color:#000;margin:0 0 var(--space-md) 0}.modal-section p{font-size:16px;line-height:1.7;color:var(--text-secondary);margin:0}.capabilities-list{list-style:none;padding:0;margin:0}.capabilities-list li{padding:var(--space-md) 0;font-size:15px;line-height:1.6;color:var(--text-secondary);border-bottom:1px solid var(--border-light)}.capabilities-list li:last-child{border-bottom:none}.capabilities-list strong{color:var(--text-primary);font-weight:600}.genni-greeting{margin:var(--space-3xl) 0 var(--space-xl) 0}.warm-greeting{font-size:20px;color:#000;font-weight:600;margin:0;line-height:1.5}.genni-personality{margin:var(--space-xl) 0;padding:var(--space-xl);background:var(--green-light-bg);border-radius:var(--radius-lg);border-left:3px solid var(--green-primary)}.personality-intro{font-size:15px;color:var(--text-secondary);line-height:1.7;margin:0}.genni-examples{margin-top:var(--space-3xl);padding:var(--space-xl);background:var(--bg-tertiary);border-radius:var(--radius-lg)}.examples-label{font-size:13px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;font-weight:600;margin:0 0 var(--space-md) 0}.typing-container{display:flex;align-items:center;justify-content:center;gap:4px;min-height:60px;font-size:16px;color:var(--text-primary);line-height:1.6}.typing-prompt{font-size:20px;color:var(--text-muted);font-weight:300}.typing-text{font-style:italic;color:var(--text-secondary);font-weight:500;white-space:normal;text-align:center;max-width:600px}.typing-cursor{color:var(--green-primary);font-weight:400;animation:blink 1s infinite;font-size:20px}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}.welcome-message h3{font-size:48px;font-weight:700;margin:0 0 var(--space-lg) 0;color:#000;letter-spacing:-1px}.welcome-message p{margin:0;color:#666;line-height:1.7;font-size:18px}.chat-message{display:flex;gap:var(--space-lg);align-items:flex-start;animation:fadeIn .3s ease-in;width:100%;max-width:800px;margin:0 auto}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.user-message{flex-direction:row-reverse}.message-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 12px #00000026,0 2px 4px #0000001a}.user-avatar{background:linear-gradient(135deg,var(--action-primary) 0%,var(--action-hover) 100%);color:#fff}.assistant-avatar{background:linear-gradient(135deg,var(--green-primary) 0%,var(--green-hover) 100%);color:#fff}.error-avatar{background:#ef4444;color:#fff;font-size:18px;box-shadow:0 4px 12px #ef44444d,0 2px 4px #ef444433}.message-content{max-width:70%;min-width:100px}.user-message .message-content{background:var(--action-primary);color:#fff;padding:var(--space-lg) var(--space-xl);border-radius:16px 16px 4px;box-shadow:0 4px 12px #00000026,0 2px 4px #0000001a}.assistant-message .message-content{background:var(--bg-primary);padding:var(--space-lg) var(--space-xl);border-radius:16px 16px 16px 4px;box-shadow:0 0 0 1px #0000000f,0 8px 24px -6px #0000001f,0 4px 8px -4px #00000014;border:1px solid rgba(0,0,0,.04)}.message-text{line-height:1.6;font-size:var(--body-regular);word-wrap:break-word}.message-text p{margin:0 0 var(--space-md) 0}.message-text p:last-child{margin:0}.message-text strong{font-weight:600}.message-text code{background:#0000000d;padding:2px 6px;border-radius:3px;font-family:Monaco,Menlo,Consolas,monospace;font-size:var(--body-small)}.user-message .message-text code{background:#fff3}.error-text{color:#ef4444}.thinking-message .message-content{padding:var(--space-lg)}.thinking-indicator{display:flex;gap:6px;align-items:center}.thinking-indicator span{width:8px;height:8px;border-radius:50%;background:var(--text-muted);animation:thinking 1.4s ease-in-out infinite}.thinking-indicator span:nth-child(2){animation-delay:.2s}.thinking-indicator span:nth-child(3){animation-delay:.4s}@keyframes thinking{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-10px);opacity:1}}.chat-input-container{display:flex;gap:var(--space-lg);padding:var(--space-lg) var(--space-4xl) var(--space-3xl) var(--space-4xl);max-width:700px;width:100%;margin:0;background:transparent;border-top:none;align-items:flex-end;box-shadow:none;position:relative;z-index:10;flex:0 0 auto}.chat-active .chat-input-container{position:sticky;bottom:0;background:linear-gradient(to top,#ffffff 80%,transparent);padding-top:var(--space-4xl)}.chat-input{flex:1;padding:var(--space-lg) var(--space-xl);border:2px solid var(--border-default);border-radius:16px;font-family:inherit;font-size:var(--body-regular);resize:none;max-height:200px;line-height:1.6;transition:all var(--transition-base);background:#fff;box-shadow:0 0 0 1px #00000014,0 4px 16px #0000001f;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none}.chat-input::-webkit-scrollbar{display:none}.chat-input:focus{outline:none;border-color:var(--action-primary);box-shadow:0 0 0 3px #2d37481a,0 4px 12px #00000014;transform:translateY(-1px)}.chat-input::placeholder{color:var(--text-muted)}.chat-send-btn{width:48px;height:48px;border:none;border-radius:10px;background:linear-gradient(135deg,var(--action-primary) 0%,var(--action-hover) 100%);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-base);flex-shrink:0;box-shadow:0 4px 12px #2d374840,0 2px 4px #2d374826}.chat-send-btn:hover:not(:disabled){background:linear-gradient(135deg,var(--action-hover) 0%,var(--action-primary) 100%);transform:translateY(-2px) scale(1.05);box-shadow:0 8px 20px #2d37484d,0 4px 8px #2d374833}.chat-send-btn:active:not(:disabled){transform:translateY(0) scale(.98)}.chat-send-btn:disabled{background:var(--border-medium);cursor:not-allowed;opacity:.4;box-shadow:none}.suggestion-dropdown{position:absolute;top:100%;left:0;right:60px;background:#fff;border:1px solid var(--border-default);border-radius:12px;box-shadow:0 8px 24px #00000026;margin-top:8px;max-height:150px;overflow-y:auto;z-index:100;scrollbar-width:none;-ms-overflow-style:none;width:calc(100% - 60px)}.suggestion-dropdown::-webkit-scrollbar{display:none}.suggestion-item{padding:var(--space-md) var(--space-lg);cursor:pointer;transition:background var(--transition-base);border-bottom:1px solid var(--border-light);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.suggestion-item:last-child{border-bottom:none}.suggestion-item:hover,.suggestion-item.highlighted{background:#2d37480d}@media(max-width:768px){.suggestion-dropdown{right:56px;width:calc(100% - 56px);max-height:135px}.suggestion-item{padding:var(--space-sm) var(--space-md);font-size:var(--body-small)}}.close-gennie-btn{position:fixed;top:24px;right:24px;width:40px;height:40px;border:none;background:#0000000d;color:#666;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all var(--transition-base);flex-shrink:0;z-index:1000001}.close-gennie-btn:hover{background:#0000001a;color:#000;transform:scale(1.1)}@media(max-width:768px){.gennie-full-container{padding:0;max-height:100vh}.message-content{max-width:85%}.chat-messages{padding:var(--space-xl)}.welcome-message{padding:var(--space-2xl) var(--space-lg)}.genni-header h2{font-size:38px;letter-spacing:2px}.genni-subtitle{font-size:13px}.genni-tagline{font-size:12px}.warm-greeting{font-size:18px}.personality-intro{font-size:14px}.typing-container{flex-direction:column;align-items:flex-start;gap:var(--space-sm);min-height:80px}.typing-text{font-size:14px;text-align:left}.typing-prompt{font-size:18px}.chat-header{padding:var(--space-xl)}.chat-header h2{font-size:24px}.chat-input-container{padding:var(--space-lg)}.message-avatar{width:36px;height:36px}}.tags-page{min-height:100vh;background:var(--bg-secondary)}.tags-header{background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 100%);border-bottom:2px solid var(--border-default);padding:var(--space-3xl) var(--space-xl)}.tags-header .header-content{max-width:1400px;margin:0 auto}.tags-header h1{font-size:2.5rem;font-weight:700;color:var(--text-primary);margin-bottom:var(--space-md)}.page-subtitle{font-size:1.1rem;color:var(--text-secondary);line-height:1.6;max-width:900px;margin-bottom:var(--space-2xl)}.stats-bar{display:flex;gap:var(--space-3xl);margin-top:var(--space-xl)}.stat{display:flex;flex-direction:column;gap:var(--space-xs)}.stat-number{font-size:2rem;font-weight:700;color:var(--green-primary)}.stat-label{font-size:.875rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.tags-content{max-width:1400px;margin:0 auto;padding:var(--space-3xl) var(--space-xl)}.tag-category-section{background:var(--bg-primary);border-radius:12px;padding:var(--space-2xl);margin-bottom:var(--space-2xl);box-shadow:0 1px 3px #0000000d}.category-header{margin-bottom:var(--space-xl);border-bottom:2px solid var(--border-light);padding-bottom:var(--space-lg)}.category-header h2{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin-bottom:var(--space-sm)}.category-description{font-size:1rem;color:var(--text-secondary);line-height:1.5;margin-bottom:var(--space-sm)}.category-stats{font-size:.875rem;color:var(--text-tertiary);font-weight:500}.tags-table table{width:100%;border-collapse:collapse}.tags-table thead{background:var(--bg-tertiary)}.tags-table th{text-align:left;padding:var(--space-md) var(--space-lg);font-size:.875rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--border-default)}.tags-table th:first-child{width:20%}.tags-table th:nth-child(2){width:50%}.tags-table th:nth-child(3){width:15%}.tags-table th:last-child{width:15%;text-align:center}.tag-row{border-bottom:1px solid var(--border-light);transition:background-color .15s ease}.tag-row:hover{background:var(--bg-secondary)}.tag-row td{padding:var(--space-lg);vertical-align:top}.tag-badge{display:inline-block;padding:var(--space-xs) var(--space-md);border-radius:6px;font-size:.875rem;font-weight:600;white-space:nowrap}.tag-badge.tag-sustainability{background:var(--green-light-bg);color:var(--green-text);border:1px solid var(--green-primary)}.tag-badge.tag-cultural{background:var(--purple-bg);color:var(--purple-text);border:1px solid var(--purple-border)}.tag-badge.tag-nutritional{background:var(--yellow-bg);color:var(--yellow-text);border:1px solid var(--yellow-border)}.tag-badge.tag-dietary{background:var(--orange-bg);color:var(--orange-text);border:1px solid var(--orange-border)}.tag-badge.tag-cuisine,.tag-badge.tag-concept,.tag-badge.tag-uncategorized{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-default)}.tag-description{font-size:.9375rem;color:var(--text-secondary);line-height:1.6}.no-description{color:var(--text-muted);font-size:.875rem}.tag-actions{text-align:center;display:flex;gap:var(--space-xs);justify-content:center}.edit-tag-btn,.delete-tag-btn{padding:var(--space-xs);background:transparent;color:var(--text-muted);border:none;border-radius:4px;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center;opacity:.4}.edit-tag-btn:hover{opacity:1;color:var(--green-primary);background:var(--green-bg)}.delete-tag-btn:hover{opacity:1;color:var(--red-primary);background:var(--red-bg)}.edit-tag-btn svg,.delete-tag-btn svg{display:block}.create-tag-btn{padding:var(--space-sm) var(--space-lg);background:var(--green-primary);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .15s ease;white-space:nowrap}.create-tag-btn:hover{background:var(--green-primary);opacity:.9;transform:translateY(-1px);box-shadow:0 4px 8px #0000001a}.tag-type{font-size:.875rem;color:var(--text-tertiary);text-transform:capitalize}.tags-footer{max-width:1400px;margin:0 auto;padding:0 var(--space-xl) var(--space-3xl)}.footer-note{background:var(--bg-primary);border-radius:12px;padding:var(--space-2xl);border-left:4px solid var(--green-primary)}.footer-note h3{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin-bottom:var(--space-md)}.footer-note p{font-size:1rem;color:var(--text-secondary);line-height:1.6}.confirm-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.confirm-modal{background:var(--bg-primary);border-radius:12px;padding:var(--space-2xl);max-width:500px;width:90%;box-shadow:0 20px 60px #0000004d;border:1px solid var(--border-default)}.confirm-modal h3{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin-bottom:var(--space-md)}.confirm-modal p{font-size:1rem;color:var(--text-secondary);line-height:1.6;margin-bottom:var(--space-2xl)}.confirm-actions{display:flex;gap:var(--space-md);justify-content:flex-end}.confirm-cancel-btn,.confirm-ok-btn{padding:var(--space-sm) var(--space-xl);border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .15s ease;border:none}.confirm-cancel-btn{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-default)}.confirm-cancel-btn:hover{background:var(--bg-tertiary)}.confirm-delete-btn{padding:var(--space-sm) var(--space-xl);border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .15s ease;border:none;background:var(--red-primary);color:#fff}.confirm-delete-btn:hover{background:var(--red-primary);opacity:.9}.confirm-ok-btn{background:var(--green-primary);color:#fff}.confirm-ok-btn:hover{background:var(--green-primary);opacity:.9}@media(max-width:768px){.tags-header{padding:var(--space-xl) var(--space-lg)}.tags-header h1{font-size:1.75rem}.stats-bar{gap:var(--space-lg)}.stat-number{font-size:1.5rem}.tags-content{padding:var(--space-xl) var(--space-lg)}.tag-category-section{padding:var(--space-lg)}.tags-table{overflow-x:auto}.tags-table th:first-child,.tags-table th:last-child{width:auto}}.tag-selection-modal{display:none;position:fixed;z-index:1000002;left:0;top:0;width:100%;height:100%}.tag-selection-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#00000080}.tag-selection-content{position:relative;background-color:var(--bg-primary);margin:5% auto;padding:0;border-radius:var(--radius-lg);max-width:600px;max-height:80vh;box-shadow:var(--shadow-dropdown);display:flex;flex-direction:column;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.tag-selection-header{padding:var(--space-xl);border-bottom:1px solid var(--border-default);display:flex;justify-content:space-between;align-items:center}.tag-selection-header h2{font-size:var(--section-heading);font-weight:300;color:var(--text-primary);margin:0}.tag-selection-close{background:none;border:none;font-size:32px;color:var(--text-tertiary);cursor:pointer;line-height:1;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:color var(--transition-fast) ease-out}.tag-selection-close:hover{color:var(--text-primary)}.tag-selection-body{padding:var(--space-xl);overflow-y:auto;flex:1}.tag-checkbox-item{display:flex;align-items:center;padding:var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-sm);transition:background-color var(--transition-fast) ease-out}.tag-checkbox-item:hover{background-color:var(--bg-secondary)}.tag-checkbox-item input[type=checkbox]{width:20px;height:20px;margin-right:var(--space-md);cursor:pointer;accent-color:var(--green-primary)}.tag-checkbox-label{font-size:14px;color:var(--text-primary);cursor:pointer;min-width:120px}.tag-reason{font-size:13px;color:var(--text-tertiary);font-style:italic;margin-left:var(--space-md);flex:1}.tag-selection-footer{padding:var(--space-xl);border-top:1px solid var(--border-default);display:flex;gap:var(--space-md);justify-content:flex-end}.tag-selection-empty{text-align:center;padding:var(--space-2xl);color:var(--text-tertiary)}@media(max-width:768px){.tag-selection-content{margin:10% var(--space-lg);max-width:calc(100% - 32px)}.tag-selection-header,.tag-selection-body,.tag-selection-footer{padding:var(--space-lg)}}.chat-history-sidebar{position:fixed;top:0;left:0;width:280px;height:100vh;background:#fff;border-right:1px solid #e2e8f0;transform:translate(-100%);transition:transform .25s ease;z-index:1000000;display:flex;flex-direction:column;overflow:hidden}.chat-history-sidebar.open{transform:translate(0)}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-bottom:1px solid #e2e8f0;min-height:60px;background:#fff}.sidebar-header h3{font-size:1rem;font-weight:600;color:#000;margin:0}.close-sidebar-btn{background:transparent;border:none;color:#718096;cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .15s ease}.close-sidebar-btn:hover{background:#f7fafc;color:#000}.new-chat-section{background:#fff;padding:0}.new-chat-btn{margin:var(--space-md);padding:10px var(--space-md);background:#fff;color:#000;border:1px solid #e2e8f0;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:var(--space-sm);justify-content:center;transition:all .15s ease}.new-chat-btn:hover{background:#f7fafc;border-color:#cbd5e0}.chat-history-list{flex:1;overflow-y:auto;padding:0 var(--space-md) var(--space-md);background:#fff}.chat-history-list::-webkit-scrollbar{width:6px}.chat-history-list::-webkit-scrollbar-track{background:transparent}.chat-history-list::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:3px}.chat-history-list::-webkit-scrollbar-thumb:hover{background:#a0aec0}.chat-history-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:10px var(--space-md);border-radius:6px;cursor:pointer;transition:all .15s ease;margin-bottom:4px;border:1px solid transparent}.chat-history-item:hover{background:#f7fafc}.chat-history-item:hover .delete-chat-btn{opacity:1}.chat-history-item.active{background:#57e51e14;border-color:#57e51e}.chat-history-content{flex:1;min-width:0}.chat-history-title{font-size:.8125rem;font-weight:500;color:#000;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-history-date{font-size:.6875rem;color:#2d3748}.delete-chat-btn{background:transparent;border:none;color:#718096;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .15s ease;opacity:0;flex-shrink:0}.delete-chat-btn:hover{background:#ff3b301a;color:#ff3b30}.hamburger-menu-btn{position:fixed;top:20px;left:20px;z-index:9999;background:var(--bg-primary);border:1px solid var(--border-default);border-radius:6px;padding:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-primary);transition:all .15s ease;box-shadow:0 1px 3px #0000001a;width:40px;height:40px}.hamburger-menu-btn:hover{background:var(--bg-secondary);box-shadow:0 2px 6px #00000026}.recipe-link{color:var(--green-primary);text-decoration:none;font-weight:600;transition:all .15s ease;border-bottom:1px solid transparent}.recipe-link:hover{border-bottom-color:var(--green-primary)}.chat-history-sidebar:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:-1;opacity:0;transition:opacity .25s ease;pointer-events:none}.chat-history-sidebar.open:before{opacity:1;pointer-events:all}@media(max-width:768px){.chat-history-sidebar{width:85%;max-width:280px}}.delete-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000001;opacity:0;animation:fadeIn .2s ease forwards}@keyframes fadeIn{to{opacity:1}}.delete-modal-content{background:#fff;border-radius:12px;padding:var(--space-xl);max-width:400px;width:90%;box-shadow:0 20px 60px #0000004d;transform:scale(.9);animation:scaleIn .2s ease forwards}@keyframes scaleIn{to{transform:scale(1)}}.delete-modal-header{margin-bottom:var(--space-lg)}.delete-modal-title{font-size:1.25rem;font-weight:600;color:#1a202c;margin:0 0 var(--space-sm) 0}.delete-modal-message{font-size:.9375rem;color:#4a5568;line-height:1.5;margin:0}.delete-modal-actions{display:flex;gap:var(--space-md);justify-content:flex-end;margin-top:var(--space-xl)}.delete-modal-btn{padding:10px 20px;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .15s ease;border:none;min-width:80px}.delete-modal-cancel{background:#f7fafc;color:#1a202c;border:1px solid #e2e8f0}.delete-modal-cancel:hover{background:#edf2f7}.delete-modal-confirm{background:#ff3b30;color:#fff}.delete-modal-confirm:hover{background:#e63329}@media(max-width:768px){.chat-history-sidebar{width:100%;max-width:320px}.hamburger-menu-btn{top:16px;left:16px;width:44px;height:44px}.chat-history-item{padding:var(--space-md)}}@media(max-width:768px){.modal-header{flex-direction:column;align-items:flex-start;gap:var(--space-md)}.modal-actions{width:100%;justify-content:flex-end}.modal-title{font-size:24px}.ingredients-section,.instructions-section{padding:var(--space-lg)}.ingredient-row{font-size:var(--body-small);padding:var(--space-sm) 0}.instruction-step{padding:var(--space-md)}.recipe-times{flex-direction:column;gap:var(--space-sm)}.recipe-time-item{width:100%}}@media(max-width:768px){.tags-grid{grid-template-columns:1fr;gap:var(--space-md)}.tag-card{padding:var(--space-lg)}.tag-header{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}}@media(max-width:768px){.ingredients-list{grid-template-columns:1fr}.ingredient-item{padding:var(--space-lg);font-size:var(--body-small)}}@media(max-width:768px){.magazine-grid{grid-template-columns:1fr}.magazine-card{min-height:300px}.magazine-card-content{padding:var(--space-xl)}.magazine-card h2{font-size:28px}}@media(max-width:768px){input[type=text],input[type=search],select,textarea{font-size:16px}.search-box input{font-size:16px;padding:var(--space-md)}button,.btn{min-height:44px;padding:var(--space-md) var(--space-lg)}}@media(max-width:768px){.concept-header{padding:var(--space-xl)}.concept-cover-photo{height:200px}.concept-title{font-size:28px}}@media(max-width:768px){.tab-navigation{margin-bottom:var(--space-lg)}.tab-btn{font-size:var(--body-small)}}@media(max-width:768px){.gennie-container{padding:var(--space-md)}.gennie-input-section{padding:var(--space-lg)}.gennie-input{font-size:16px}.close-gennie-btn{top:16px;right:16px}}@media(max-width:768px){.import-section{padding:var(--space-lg)}.import-section h2{font-size:20px}}@media(max-width:768px){.recipe-card-content{padding:var(--space-lg)}.recipe-card h3{font-size:16px;min-height:auto}.recipe-card-photo,.recipe-card-photo-placeholder{height:200px}}@media(max-width:768px){.controls{padding:var(--space-lg)}.filters{gap:var(--space-md)}.filter-group{flex-direction:column;gap:var(--space-sm)}.filter-group label,.filter-group select,.filter-group input{width:100%}}.costing-page{display:flex;flex-direction:column;gap:var(--space-xl);max-width:1600px;margin:0 auto}.costing-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-md);padding-bottom:var(--space-lg);border-bottom:1px solid var(--border-light)}.costing-header h2{font-size:var(--section-heading);font-weight:600;color:var(--text-primary);margin:0;letter-spacing:-.5px}.costing-actions{display:flex;gap:var(--space-md);align-items:center}.costing-actions select{min-width:180px}.btn-primary,.btn-secondary{padding:10px 18px;border-radius:var(--radius-md);font-size:var(--body-regular);font-weight:500;cursor:pointer;transition:all var(--transition-fast) ease-out;display:flex;align-items:center;gap:var(--space-sm);border:none}.btn-primary{background:var(--action-primary);color:#fff}.btn-primary:hover{background:var(--action-primary-hover)}.btn-primary:active{background:var(--action-primary-hover);transform:scale(.98)}.btn-primary:focus{background:var(--action-primary-hover);outline:none}.btn-primary:disabled{background:var(--border-medium);cursor:not-allowed}.btn-secondary{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-default)}.btn-secondary:active{background:#e2e8f0;border-color:var(--border-medium);transform:scale(.98)}.btn-secondary:focus{background:#e2e8f0;border-color:var(--border-medium);outline:none}.btn-icon{background:none;border:none;cursor:pointer;padding:var(--space-xs);color:var(--text-tertiary);transition:all var(--transition-fast);display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm)}.btn-icon:hover{color:var(--text-primary);background:var(--bg-tertiary)}.btn-icon:active{transform:scale(.95);background:var(--bg-tertiary)}.btn-icon:focus{color:var(--text-primary);background:var(--bg-tertiary);outline:none}.btn-icon svg{display:block}.sync-status{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);padding:var(--space-xl) var(--space-2xl);border-radius:var(--radius-lg);font-size:var(--body-regular);display:none;z-index:1000000;box-shadow:0 8px 24px #00000026;min-width:320px;max-width:500px;text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:notificationSlide .3s ease-out}@keyframes notificationSlide{0%{opacity:0;transform:translate(-50%,-60%)}to{opacity:1;transform:translate(-50%,-50%)}}.sync-status.success{display:block;background:var(--green-light-bg);color:var(--green-text);border:2px solid var(--green-primary)}.sync-status.error{display:block;background:var(--orange-bg);color:var(--orange-text);border:2px solid var(--orange-border)}.sync-status.info{display:block;background:var(--yellow-bg);color:var(--yellow-text);border:2px solid var(--yellow-border)}.costing-stats{padding:var(--space-lg);background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border)}.market-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-sm)}.market-stat-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) 0;cursor:pointer;border-radius:6px;margin:0 calc(-1 * var(--space-xs));padding:var(--space-xs);transition:background-color .2s}.market-stat-row:hover{background-color:var(--bg-tertiary)}.market-stat-label{font-size:.85em;font-weight:500;color:var(--text-secondary);min-width:100px;flex-shrink:0}.market-stat-bar-container{flex:1;display:flex;align-items:center;gap:var(--space-sm);position:relative;background:#0000001a;border:1px solid var(--border);border-radius:6px;height:24px;overflow:hidden;transition:border-color .2s,box-shadow .2s}.market-stat-row:hover .market-stat-bar-container{border-color:var(--primary);box-shadow:0 0 0 2px #3b82f61a}.market-stat-bar{position:absolute;left:0;top:0;height:100%;background:linear-gradient(90deg,#5a9a6a,#4a8a5a);transition:width .5s ease;border-radius:6px;min-width:2px}.market-stat-percentage{position:relative;z-index:2;font-size:.75em;font-weight:600;color:var(--text-primary);margin-left:auto;padding-right:var(--space-sm);text-shadow:0 0 2px rgba(255,255,255,.8)}.total-stat-bar-container{flex:1;display:flex;align-items:center;gap:var(--space-sm);position:relative;background:#0000001a;border:1px solid rgba(212,175,55,.3);border-radius:8px;height:32px;overflow:hidden;box-shadow:0 2px 4px #0000001a}.total-stat-bar{position:absolute;left:0;top:0;height:100%;background:linear-gradient(90deg,#d4af37,#f4d03f,#d4af37);background-size:200% 100%;transition:width .5s ease;border-radius:8px;min-width:2px}.total-stat-percentage{position:relative;z-index:2;font-size:.85em;font-weight:700;color:var(--text-primary);margin-left:auto;padding-right:var(--space-sm);text-shadow:0 0 3px rgba(255,255,255,.9)}.stat-card{background:transparent;padding:var(--space-md);border-radius:var(--radius-sm);border:1px solid rgba(0,0,0,.05);text-align:center;transition:all var(--transition-fast)}.stat-card:hover{background:var(--bg-secondary);border-color:var(--border-light)}.stat-value{font-size:20px;font-weight:500;color:var(--text-secondary);margin-bottom:2px;letter-spacing:-.3px}.stat-label{font-size:12px;color:var(--text-tertiary);text-transform:none;letter-spacing:0;font-weight:400}.costing-filters{display:flex;gap:var(--space-md);flex-wrap:wrap}.search-input,.filter-select{padding:10px 14px;border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--body-regular);color:var(--text-secondary);background:var(--bg-primary);transition:border-color var(--transition-base) ease-out}.search-input{flex:1;min-width:250px}.search-input:focus,.filter-select:focus{outline:none;border-color:var(--action-primary)}.costing-table-container{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-md);overflow-x:visible;overflow-y:visible;max-width:100%;position:relative}.costing-table{width:100%;min-width:auto;border-collapse:collapse}.costing-table thead{background:var(--bg-secondary);border-bottom:1px solid var(--border-light)}.costing-table th{text-align:left;padding:8px 6px;font-size:10px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.3px;width:110px;max-width:110px;min-width:110px;white-space:normal;word-wrap:break-word;line-height:1.2}.costing-table th:not(.sticky-col){text-align:center}.costing-table tbody tr{border-bottom:1px solid var(--border-light);transition:background-color var(--transition-fast)}.costing-table tbody tr:hover{background:var(--bg-secondary)}.costing-table tbody tr.highlight-row{background:#fff3cd;animation:highlight-fade 2s ease-in-out}@keyframes highlight-fade{0%{background:#ffc}to{background:transparent}}.costing-table tbody tr:last-child{border-bottom:none}.costing-table td{padding:8px 6px;font-size:13px;color:var(--text-secondary);vertical-align:middle}.ingredient-name{font-weight:500;color:var(--text-primary)}.actions-cell{white-space:nowrap}.status-badge{padding:4px 10px;border-radius:var(--radius-sm);font-size:var(--body-small);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.status-mapped{background:#d4edda;color:#155724}.status-unmapped{background:#fff3cd;color:#856404}.ingredient-usage{display:block;font-size:10px;color:var(--text-muted);font-weight:400;margin-top:2px}.market-item-name{font-size:var(--body-small);color:var(--text-secondary);margin-bottom:2px}.market-cost{font-size:var(--body-small);font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.not-linked{font-size:var(--body-small);color:var(--text-muted);font-style:italic}.market-cell{text-align:center;padding:8px 4px!important;width:110px;min-width:110px;max-width:110px;white-space:normal;word-wrap:break-word;font-size:12px}.market-cell.linked{text-align:center;vertical-align:middle}.market-cell.not-linked{opacity:.5}.costing-table .sticky-col{width:160px;min-width:160px;max-width:160px;position:sticky;left:0;background:var(--bg-primary);z-index:1;box-shadow:2px 0 4px #0000000d;white-space:normal;word-wrap:break-word;overflow-wrap:break-word;padding:8px 6px!important;font-size:13px}.costing-table thead th.sticky-col{background:var(--bg-secondary);z-index:2;white-space:nowrap}.costing-table tbody tr:hover .sticky-col{background:var(--bg-secondary)}.btn-linked{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--green-primary);border:none;border-radius:var(--radius-md);cursor:pointer;color:#fff;transition:all var(--transition-fast);padding:0}.btn-linked:hover{background:var(--green-hover);transform:scale(1.05)}.btn-linked svg{stroke:#fff}.price-display{display:inline-flex;align-items:center;padding:6px 12px;background:var(--blue-light);color:var(--blue-primary);border-radius:6px;font-weight:600;font-size:14px;cursor:pointer;transition:all var(--transition-fast);margin-right:8px}.price-display:hover{background:var(--blue-primary);color:#fff;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.price-change-icon{margin-left:6px;font-size:16px;font-weight:700;display:inline-block;animation:priceChangeAppear .3s ease-in-out}.price-change-icon.price-increase{color:#dc3545}.price-change-icon.price-decrease{color:#28a745}.price-display.price-increased{border:2px solid rgba(220,53,69,.3);background:#dc35451a}.price-display.price-decreased{border:2px solid rgba(40,167,69,.3);background:#28a7451a}@keyframes priceChangeAppear{0%{opacity:0;transform:scale(.5)}50%{transform:scale(1.2)}to{opacity:1;transform:scale(1)}}.verified-badge{margin-left:var(--space-sm);padding:2px 8px;border-radius:var(--radius-sm);font-size:11px;background:var(--action-primary);color:#fff}.loading,.no-data{text-align:center;padding:var(--space-2xl);color:var(--text-tertiary);font-style:italic}.modal{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:1000000;align-items:center;justify-content:center;padding:var(--space-lg)}.modal-content{background:var(--bg-primary);border-radius:var(--radius-lg);max-width:600px;width:100%;max-height:90vh;overflow:auto;box-shadow:0 10px 40px #0000004d;position:relative;z-index:10001}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg);border-bottom:1px solid var(--border-default)}.modal-header h3{margin:0;font-size:20px;font-weight:600;color:var(--text-primary)}.modal-close{background:none;border:none;font-size:28px;cursor:pointer;color:var(--text-tertiary);width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.modal-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.modal-body{padding:var(--space-lg)}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-md);padding:var(--space-lg);border-top:1px solid var(--border-default)}.ingredient-name-display{font-size:18px;font-weight:600;color:var(--text-primary);padding:var(--space-md);background:var(--bg-tertiary);border-radius:var(--radius-md)}.form-input,.form-textarea{width:100%;padding:10px 14px;border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--body-regular);color:var(--text-secondary);background:var(--bg-primary);font-family:inherit;transition:border-color var(--transition-base)}.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--action-primary)}.form-textarea{min-height:80px;resize:vertical}.external-items-list{max-height:200px;overflow-y:auto;border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-sm);margin-top:var(--space-sm)}.inventory-search-results{max-height:150px;overflow-y:auto;margin-top:var(--space-md)}.inventory-item{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-md);background:var(--bg-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.inventory-item:hover{border-color:var(--border-medium);box-shadow:0 2px 8px #0000000d}.inventory-item-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-sm);gap:var(--space-md)}.inventory-item-header strong{flex:1;color:var(--text-primary);font-size:var(--body-regular)}.item-brand{color:var(--text-tertiary);font-size:var(--body-small);font-style:italic}.inventory-item-details{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-bottom:var(--space-md);color:var(--text-tertiary);font-size:var(--body-small)}.inventory-item-details span{display:inline-block}.btn-sm{padding:6px 12px;font-size:var(--body-small)}.market-selector{padding:8px 12px;border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--body-regular);color:var(--text-secondary);background:var(--bg-primary);cursor:pointer;transition:border-color var(--transition-fast)}.market-selector:focus{outline:none;border-color:var(--action-primary)}.help-text{color:var(--text-tertiary);font-size:var(--body-small);margin-top:var(--space-xs);margin-bottom:0}.error-text{color:#721c24;text-align:center;padding:var(--space-md);background:#f8d7da;border-radius:var(--radius-md);margin:var(--space-md) 0}.info-text{text-align:center;color:var(--text-tertiary);font-size:var(--body-small);padding:var(--space-lg);margin:0}.spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@media(max-width:768px){.costing-page{padding:var(--space-lg)}.costing-header{flex-direction:column;align-items:flex-start}.costing-actions{width:100%;flex-direction:column}.costing-actions button,.costing-actions select{width:100%}.market-stats-grid{grid-template-columns:1fr}.market-stat-label{min-width:80px;font-size:.8em}.costing-table-container{overflow-x:auto;border-radius:var(--radius-sm)}.costing-table{min-width:800px;font-size:var(--body-small)}.costing-table th,.costing-table td{padding:var(--space-sm)}.costing-table th{font-size:11px}}@media(max-width:480px){.costing-table{min-width:700px;font-size:12px}.costing-table th,.costing-table td{padding:8px 6px}.costing-table th{font-size:10px}.modal-content{max-height:95vh}}.auto-link-review-content{max-width:1200px;width:95%;max-height:90vh;display:flex;flex-direction:column}.review-modal-info{padding:var(--space-md) var(--space-lg);background:var(--bg-secondary);border-bottom:1px solid var(--border-default)}.review-modal-info p{margin:0 0 var(--space-sm) 0;color:var(--text-secondary)}.review-summary{margin-top:var(--space-sm);padding:var(--space-sm);background:var(--bg-tertiary);border-radius:var(--radius-md);font-size:.95em}.review-filters{display:flex;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);background:var(--bg-primary);border-bottom:1px solid var(--border-default);flex-wrap:wrap}.review-filters .filter-btn{padding:var(--space-xs) var(--space-md);border:1px solid var(--border-default);background:var(--bg-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all .2s;font-size:.9em}.review-filters .filter-btn:hover{background:var(--bg-tertiary)}.review-filters .filter-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.review-modal-body{flex:1;overflow-y:auto;padding:var(--space-lg)}.review-matches-list{display:flex;flex-direction:column;gap:var(--space-md)}.review-match-item{border:2px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-md);background:var(--bg-primary);transition:all .2s}.review-match-item:hover{box-shadow:0 2px 8px #0000001a}.review-match-item.high{border-color:#10b981;background:#10b9810d}.review-match-item.medium{border-color:#f59e0b;background:#f59e0b0d}.review-match-item.low{border-color:#ef4444;background:#ef44440d}.review-match-item.no-match{border-color:var(--text-tertiary);background:var(--bg-secondary);opacity:.7}.review-match-header{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md)}.match-checkbox{width:20px;height:20px;cursor:pointer}.match-checkbox:disabled{cursor:not-allowed;opacity:.5}.review-ingredient-name{flex:1;font-weight:600;font-size:1.05em;color:var(--text-primary)}.confidence-badge{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:.85em;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.confidence-badge.high{background:#10b981;color:#fff}.confidence-badge.medium{background:#f59e0b;color:#fff}.confidence-badge.low{background:#ef4444;color:#fff}.confidence-badge.no-match{background:var(--text-tertiary);color:#fff}.review-match-body{padding-left:calc(20px + var(--space-md))}.match-selection{margin-bottom:var(--space-sm)}.match-selection label{display:block;font-size:.9em;color:var(--text-secondary);margin-bottom:var(--space-xs)}.match-select{width:100%;padding:var(--space-sm);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-primary);font-size:.95em}.review-match-details{display:flex;gap:var(--space-lg);margin-top:var(--space-sm);padding:var(--space-sm);background:var(--bg-secondary);border-radius:var(--radius-sm);font-size:.9em}.review-match-details span{color:var(--text-secondary)}.no-match-message{padding:var(--space-md);background:var(--bg-tertiary);border-radius:var(--radius-md);color:var(--text-secondary);font-style:italic}.no-match-message p{margin:0 0 var(--space-md) 0}.not-found-checkbox-label{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;padding:var(--space-sm);background:var(--bg-primary);border-radius:var(--radius-sm);transition:background .2s ease}.not-found-checkbox-label:hover{background:var(--bg-secondary)}.not-found-checkbox-label input[type=checkbox]{cursor:pointer}.not-found-checkbox-label span{font-style:normal;font-weight:500;color:var(--text-primary)}.review-modal-footer{display:flex;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-lg);border-top:1px solid var(--border-default);background:var(--bg-secondary)}.review-modal-footer button{min-width:120px}@media(max-width:768px){.auto-link-review-content{width:100%;max-height:100vh;border-radius:0}.review-filters{flex-direction:column}.review-match-header{flex-wrap:wrap}.review-match-details{flex-direction:column;gap:var(--space-xs)}.review-modal-footer{flex-direction:column}.review-modal-footer button{width:100%}}.genni-golden{color:var(--gold-primary);font-weight:600;background:linear-gradient(135deg,var(--gold-light) 0%,var(--gold-primary) 50%,var(--gold-dark) 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 0 20px rgba(212,175,55,.3)}.recipe-preview-modal{background:#fff;border:2px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:0 20px 60px #0000004d;width:90%;max-width:700px;max-height:85vh;display:flex;flex-direction:column}.recipe-preview-header{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-lg);border-bottom:1px solid var(--border-default);position:relative}.recipe-preview-header h3{font-size:var(--section-heading);font-weight:600;color:var(--text-primary);margin:0;padding-right:var(--space-2xl)}.preview-concept{font-size:var(--body-text);color:var(--text-secondary);margin:0}.btn-close-preview{position:absolute;top:var(--space-lg);right:var(--space-lg);background:none;border:none;font-size:28px;line-height:1;color:var(--text-tertiary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-fast) ease-out}.btn-close-preview:hover{background:var(--bg-tertiary);color:var(--text-primary)}.recipe-preview-controls{display:flex;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-light);background:var(--bg-secondary)}.recipe-preview-controls button{padding:var(--space-xs) var(--space-md);font-size:var(--small-text)}.recipe-preview-body{flex:1;overflow-y:auto;padding:var(--space-md);background:#f7fafc}.recipe-preview-list{display:flex;flex-direction:column;gap:var(--space-xs)}.recipe-preview-item{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-md);transition:all var(--transition-fast) ease-out}.recipe-preview-item:hover{background:var(--bg-secondary);border-color:var(--border-default)}.recipe-preview-checkbox{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);cursor:pointer;-webkit-user-select:none;user-select:none}.recipe-preview-checkbox input[type=checkbox]{width:20px;height:20px;cursor:pointer;flex-shrink:0}.recipe-preview-info{display:flex;flex-direction:column;gap:var(--space-2xs);flex:1}.recipe-preview-name{font-size:var(--body-text);font-weight:500;color:var(--text-primary)}.recipe-preview-meta{font-size:var(--small-text);color:var(--text-tertiary)}.recipe-preview-actions{display:flex;justify-content:space-between;padding:var(--space-lg);border-top:1px solid var(--border-default);gap:var(--space-md)}.recipe-preview-actions button{padding:var(--space-sm) var(--space-xl)}@media(min-width:1025px){.recipe-preview-modal{max-width:60%}}.import-wizard-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.import-wizard-modal{background:var(--bg-primary);border-radius:var(--radius-lg);width:90%;max-width:1100px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 24px 48px #0000004d}.wizard-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-xl);border-bottom:1px solid var(--border-default)}.wizard-header h2{font-size:var(--section-heading);font-weight:600;color:var(--text-primary)}.btn-close-wizard{background:none;border:none;font-size:32px;color:var(--text-tertiary);cursor:pointer;line-height:1;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.btn-close-wizard:hover{background:var(--bg-secondary);color:var(--text-primary)}.wizard-steps{display:flex;justify-content:center;align-items:center;padding:var(--space-xl);gap:var(--space-md);background:var(--bg-secondary);border-bottom:1px solid var(--border-default)}.wizard-step{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);position:relative;opacity:.5;transition:opacity var(--transition-base);flex:0 0 auto;z-index:1}.wizard-step.active{opacity:1}.wizard-step.completed .step-number{background:var(--green-primary);color:#fff;border-color:var(--green-primary)}.wizard-step:not(:last-child):after{content:"";position:absolute;top:20px;left:calc(50% + 20px);width:80px;height:2px;background:var(--border-default);z-index:0}.step-number{width:40px;height:40px;border-radius:50%;background:var(--bg-primary);border:2px solid var(--border-medium);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:var(--body-regular);color:var(--text-primary);transition:all var(--transition-base)}.wizard-step.active .step-number{background:var(--action-primary);color:#fff;border-color:var(--action-primary)}.step-label{font-size:var(--body-small);color:var(--text-secondary);font-weight:500}.wizard-content{flex:1;overflow-y:auto;padding:var(--space-xl)}.wizard-step-content{max-width:900px;margin:0 auto}.conversion-status{text-align:center;padding:var(--space-4xl) var(--space-xl)}.spinner{width:48px;height:48px;border:4px solid var(--border-default);border-top-color:var(--green-primary);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto var(--space-xl)}.conversion-status h3{font-size:20px;font-weight:600;color:var(--text-primary);margin-bottom:var(--space-sm)}.conversion-status p{color:var(--text-tertiary);font-size:var(--body-regular);margin-bottom:var(--space-xl)}.conversion-log{max-height:200px;overflow-y:auto;background:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--space-lg);text-align:left;margin-top:var(--space-xl)}.log-entry{padding:var(--space-sm);font-size:var(--body-small);font-family:Monaco,monospace;color:var(--text-secondary)}.log-entry.log-success{color:#10b981}.log-entry.log-error{color:#ef4444}.concept-selection{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-lg);margin-bottom:var(--space-xl)}.concept-selection label{display:block;font-weight:600;font-size:var(--body-small);color:var(--text-secondary);margin-bottom:var(--space-sm)}.concept-input-group{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}.concept-input-group input{flex:1;min-width:200px;padding:var(--space-sm) var(--space-md);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--body-regular)}.or-text{color:var(--text-muted);font-size:var(--body-small)}.concept-input-group select{flex:1;min-width:200px;padding:var(--space-sm) var(--space-md);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--body-regular)}.recipes-review{display:flex;flex-direction:column;gap:var(--space-lg)}.recipe-review-card{border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-primary)}.recipe-review-header{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-lg);background:var(--bg-secondary)}.recipe-checkbox{display:flex;align-items:center;cursor:pointer}.recipe-checkbox input[type=checkbox]{margin:0;width:20px;height:20px;cursor:pointer}.checkbox-custom{width:20px;height:20px;border:2px solid var(--border-medium);border-radius:var(--radius-sm);position:relative}.recipe-name-input{flex:1;padding:var(--space-sm) var(--space-md);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--body-regular);font-weight:600}.btn-expand{background:none;border:none;cursor:pointer;padding:var(--space-sm);color:var(--text-tertiary);transition:color var(--transition-fast)}.btn-expand:hover{color:var(--text-primary)}.expand-icon{display:inline-block;transition:transform var(--transition-base)}.recipe-review-details{padding:var(--space-lg)}.ingredients-section,.instructions-section{margin-bottom:var(--space-xl)}.ingredients-section h4,.instructions-section h4{font-size:var(--body-regular);font-weight:600;color:var(--text-secondary);margin-bottom:var(--space-md)}.ingredients-list{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-md)}.recipes-review .ingredient-row{display:grid;grid-template-columns:100px 120px 1fr 32px;gap:var(--space-sm);align-items:center;padding:var(--space-xs) 0}.recipes-review .ingredient-row input{padding:var(--space-sm) var(--space-md);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--body-small);line-height:1.5}.recipes-review .ingredient-row .ing-amount{text-align:right}.empty-notice{color:var(--text-muted);font-style:italic;padding:var(--space-md);background:var(--bg-secondary);border-radius:var(--radius-sm);margin-bottom:var(--space-md)}.btn-remove-ingredient{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-sm);cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);font-size:20px;transition:all var(--transition-fast)}.btn-remove-ingredient:hover{background:#fee;border-color:#ef4444;color:#ef4444}.btn-add-ingredient{padding:var(--space-sm) var(--space-md);border:1px dashed var(--border-medium);background:var(--bg-secondary);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--body-small);color:var(--text-tertiary);transition:all var(--transition-fast)}.btn-add-ingredient:hover{border-color:var(--green-primary);color:var(--green-primary);background:var(--green-light-bg)}.instructions-textarea{width:100%;padding:var(--space-md);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--body-small);font-family:inherit;resize:vertical}.import-confirmation{text-align:center;padding:var(--space-4xl) var(--space-xl)}.import-icon{width:80px;height:80px;border-radius:50%;background:var(--green-light-bg);color:var(--green-primary);display:flex;align-items:center;justify-content:center;font-size:48px;margin:0 auto var(--space-xl)}.import-confirmation h3{font-size:24px;font-weight:600;color:var(--text-primary);margin-bottom:var(--space-sm)}.import-confirmation p{color:var(--text-tertiary);font-size:var(--body-regular);margin-bottom:var(--space-xl)}.import-summary{background:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--space-lg);margin:var(--space-xl) auto;max-width:500px;text-align:left}.summary-item{display:flex;justify-content:space-between;padding:var(--space-sm) 0;border-bottom:1px solid var(--border-default)}.summary-item:last-child{border-bottom:none}.summary-label{font-weight:600;color:var(--text-secondary);font-size:var(--body-small)}.summary-value{color:var(--text-primary);font-size:var(--body-small)}.import-progress{margin-top:var(--space-xl)}.progress-bar{width:100%;height:8px;background:var(--bg-secondary);border-radius:4px;overflow:hidden;margin-bottom:var(--space-md)}.progress-fill{height:100%;background:var(--green-primary);transition:width var(--transition-base);width:0%}.progress-text{font-size:var(--body-small);color:var(--text-tertiary)}.wizard-actions{display:flex;justify-content:space-between;padding:var(--space-xl);border-top:1px solid var(--border-default);gap:var(--space-md);background:var(--bg-secondary)}.wizard-actions button{padding:var(--space-sm) var(--space-xl);min-width:120px}#wizardBackBtn{margin-right:auto}.paste-import-section{max-width:1200px;margin:0 auto;padding:var(--space-xl)}.import-header{text-align:center;margin-bottom:var(--space-xxl)}.import-header h2{margin:0 0 var(--space-sm);color:var(--text-primary);font-size:2em;font-weight:600}.import-header p{color:var(--text-tertiary);font-size:1.1em}.paste-area-container,.mog-upload-container{margin-bottom:var(--space-xxl)}.file-drop-zone{border:2px dashed var(--border-default);border-radius:8px;padding:var(--space-xxl);text-align:center;background:var(--bg-secondary);cursor:pointer;transition:all .3s ease;margin-bottom:var(--space-lg)}.file-drop-zone:hover{border-color:var(--green-primary);background:var(--green-light-bg)}.file-drop-zone.drag-over{border-color:var(--green-primary);background:var(--green-light-bg);transform:scale(1.02)}.drop-zone-content{display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.upload-icon{color:var(--text-tertiary)}.file-drop-zone:hover .upload-icon{color:var(--green-primary)}.drop-zone-content h3{margin:0;color:var(--text-primary);font-size:1.2em;font-weight:600}.drop-zone-content p{margin:0;color:var(--text-tertiary);font-size:.9em}.file-info{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-lg);background:var(--green-light-bg);border:2px solid var(--green-primary);border-radius:8px;margin-bottom:var(--space-lg)}.file-icon{color:var(--green-primary);flex-shrink:0}.file-name{flex:1;font-weight:500;color:var(--text-primary)}.btn-clear-file{background:none;border:none;font-size:24px;color:var(--text-tertiary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.btn-clear-file:hover{background:#0000000d;color:var(--text-primary)}.mog-upload-actions{display:flex;justify-content:flex-end;gap:var(--space-md)}.paste-instructions{background:var(--green-light-bg);border-left:4px solid var(--green-primary);padding:var(--space-lg);margin-bottom:var(--space-xl);border-radius:4px}.paste-instructions p{margin:0;color:var(--green-text);font-size:14px}.recipe-name-input-container{margin-bottom:var(--space-xl)}.recipe-name-input-container label{display:block;font-weight:600;color:var(--text-secondary);font-size:14px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-sm)}.recipe-name-input{width:100%;padding:var(--space-md);border:2px solid var(--border-default);border-radius:6px;font-size:16px;transition:border-color .2s}.recipe-name-input:focus{outline:none;border-color:var(--green-primary)}.paste-grid-wrapper{margin-bottom:var(--space-xl)}.paste-grid-container{background:#fff;border:2px solid var(--border-default);border-radius:8px;overflow-x:auto;margin-bottom:var(--space-md)}.paste-grid{width:100%;border-collapse:collapse}.paste-grid thead{background:var(--bg-secondary);border-bottom:2px solid var(--border-default)}.paste-grid th{padding:var(--space-md);text-align:left;font-weight:600;color:var(--text-secondary);font-size:13px;text-transform:uppercase;letter-spacing:.5px}.paste-grid th.row-num{width:50px;text-align:center}.paste-grid th.actions-col{width:60px}.paste-grid .paste-row{border-bottom:1px solid var(--border-light)}.paste-grid .paste-row:hover{background:var(--bg-tertiary)}.paste-grid td{padding:var(--space-xs)}.paste-grid td.row-num{text-align:center;color:var(--text-muted);font-size:13px;font-weight:500}.paste-grid td.actions-col{text-align:center}.paste-grid .grid-cell{width:100%;padding:var(--space-sm);border:1px solid transparent;border-radius:4px;font-size:14px;transition:all .2s;background:transparent}.paste-grid .grid-cell:hover{border-color:var(--border-medium);background:#fff}.paste-grid .grid-cell:focus{outline:none;border-color:var(--green-primary);background:#fff;box-shadow:0 0 0 2px rgba(var(--green-rgb),.1)}.btn-remove-row{width:32px;height:32px;border:none;background:transparent;color:var(--text-muted);border-radius:4px;cursor:pointer;font-size:20px;display:inline-flex;align-items:center;justify-content:center;transition:all .2s}.btn-remove-row:hover{background:#ef4444;color:#fff}.grid-actions{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md)}.btn-add-row{padding:var(--space-sm) var(--space-lg);border:2px dashed var(--border-default);background:transparent;color:var(--text-tertiary);border-radius:4px;cursor:pointer;font-size:14px;transition:all .2s}.btn-add-row:hover{border-color:var(--green-primary);color:var(--green-primary);background:var(--green-light-bg)}.paste-hint{font-size:13px;color:var(--text-muted)}.instructions-input-container{margin-bottom:var(--space-xl)}.instructions-input-container label{display:block;font-weight:600;color:var(--text-secondary);font-size:14px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-sm)}.instructions-textarea{width:100%;padding:var(--space-md);border:2px solid var(--border-default);border-radius:6px;font-size:14px;line-height:1.6;resize:vertical;transition:border-color .2s}.instructions-textarea:focus{outline:none;border-color:var(--green-primary)}.paste-actions{display:flex;justify-content:flex-end;gap:var(--space-md);margin-top:var(--space-lg)}.recipe-preview-section{background:var(--bg-secondary);border-radius:12px;padding:var(--space-xxl);margin-bottom:var(--space-xxl)}.preview-header{margin-bottom:var(--space-xxl);border-bottom:2px solid var(--border-default);padding-bottom:var(--space-lg)}.preview-header h3{margin:0 0 var(--space-sm);color:var(--text-primary);font-size:1.5em;font-weight:600}.preview-header p{margin:0;color:var(--text-tertiary)}.bulk-edit-section{margin:var(--space-xl) 0;padding:var(--space-lg);background:var(--surface-secondary);border-radius:var(--radius-md);border:1px solid var(--border-default)}.bulk-edit-row{display:flex;align-items:center;gap:var(--space-md)}.bulk-edit-row label{font-weight:600;color:var(--text-primary);min-width:150px}.bulk-edit-row input[type=text]{flex:1;padding:var(--space-sm) var(--space-md);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:14px}.bulk-edit-row button{white-space:nowrap}.preview-content{display:flex;flex-direction:column;gap:var(--space-xxl)}.preview-field{display:flex;flex-direction:column;gap:var(--space-sm)}.preview-field label{font-weight:600;color:var(--text-secondary);font-size:14px;text-transform:uppercase;letter-spacing:.5px}.ingredient-count{color:var(--text-tertiary);font-weight:400;text-transform:none}.preview-input,.preview-select,.preview-textarea{padding:var(--space-md);border:1px solid var(--border-default);border-radius:6px;font-size:15px;transition:border-color .2s;background:#fff}.preview-input:focus,.preview-select:focus,.preview-textarea:focus{outline:none;border-color:var(--green-primary)}.concept-input-group{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--space-md);align-items:center}.or-text{color:var(--text-tertiary);font-size:13px;text-align:center}.ingredients-preview{display:flex;flex-direction:column;gap:var(--space-sm);background:#fff;padding:var(--space-lg);border-radius:6px;border:1px solid var(--border-default)}.ingredient-preview-row{display:grid;grid-template-columns:100px 120px 1fr 40px;gap:var(--space-sm);align-items:center}.ing-amount-preview,.ing-uom-preview,.ing-name-preview{padding:var(--space-sm) var(--space-md);border:1px solid var(--border-default);border-radius:4px;font-size:14px}.ing-amount-preview:focus,.ing-uom-preview:focus,.ing-name-preview:focus{outline:none;border-color:var(--green-primary)}.btn-remove-ing-preview{width:32px;height:32px;border:none;background:var(--bg-tertiary);color:var(--text-tertiary);border-radius:4px;cursor:pointer;font-size:20px;display:flex;align-items:center;justify-content:center;transition:all .2s}.btn-remove-ing-preview:hover{background:#ef4444;color:#fff}.btn-add-ingredient-preview{padding:var(--space-sm) var(--space-lg);border:2px dashed var(--border-default);background:transparent;color:var(--text-tertiary);border-radius:4px;cursor:pointer;font-size:14px;transition:all .2s;margin-top:var(--space-sm)}.btn-add-ingredient-preview:hover{border-color:var(--green-primary);color:var(--green-primary);background:var(--green-light-bg)}.preview-actions{display:flex;justify-content:flex-end;gap:var(--space-md);margin-top:var(--space-xl);padding-top:var(--space-xl);border-top:2px solid var(--border-default)}.import-result-section{text-align:center;padding:var(--space-xxl)}.result-content{margin-bottom:var(--space-xxl)}.result-success,.result-error{background:#fff;border-radius:12px;padding:var(--space-xxl);box-shadow:0 4px 6px #0000000d}.result-icon{font-size:64px;margin-bottom:var(--space-lg)}.result-success .result-icon{color:var(--green-primary)}.result-error .result-icon{color:#ef4444}.result-success h3{color:var(--green-text);margin:0 0 var(--space-md);font-size:1.5em}.result-error h3{color:#dc2626;margin:0 0 var(--space-md);font-size:1.5em}.result-success p,.result-error p{color:var(--text-secondary);font-size:1.1em;margin:0}.result-actions{display:flex;justify-content:center;gap:var(--space-md)}@media(max-width:768px){.paste-instructions p{font-size:13px}.recipe-name-input,.instructions-textarea{font-size:14px}.paste-grid th,.paste-grid .grid-cell{font-size:12px;padding:var(--space-xs)}.paste-grid th.row-num{width:40px}.grid-actions{flex-direction:column;align-items:stretch}.paste-hint{text-align:center;font-size:12px}.concept-input-group{grid-template-columns:1fr}.or-text{display:none}.ingredient-preview-row{grid-template-columns:80px 100px 1fr 40px;gap:var(--space-xs)}.ing-amount-preview,.ing-uom-preview,.ing-name-preview{padding:var(--space-xs) var(--space-sm);font-size:13px}.result-actions{flex-direction:column}}.meal-planner-container{padding:var(--space-xl);max-width:1800px;margin:0 auto;min-height:600px}.meal-planner-header{margin-bottom:var(--space-xl);padding-bottom:var(--space-lg);border-bottom:2px solid var(--border-default);display:flex;flex-direction:column;gap:var(--space-md)}.header-title h2{margin:0;font-size:28px;font-weight:600;color:var(--text-primary)}.header-controls{display:grid;grid-template-columns:1fr 1fr 2fr;gap:var(--space-md);align-items:end}.control-group{display:flex;flex-direction:column;gap:6px}.control-group label{font-size:12px;font-weight:600;color:#666;margin:0}.control-group input[type=text],.control-group select{padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;background:#fff;width:100%}.header-actions{display:flex;gap:var(--space-sm);flex-wrap:wrap;align-items:center}#costSyncStatus{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#e3f2fd;border:1px solid #90caf9;border-radius:6px;font-size:13px;color:#1976d2;animation:fadeIn .3s ease-in-out}.sync-spinner{display:inline-block;font-size:16px;animation:rotate 1s linear infinite}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.sync-text{font-weight:500}#refreshCosts{display:flex;align-items:center;gap:6px;transition:all .2s ease}#refreshCosts:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px)}#refreshCosts .sync-icon{font-size:16px;display:inline-block;transition:transform .3s ease}#refreshCosts:hover:not(:disabled) .sync-icon{transform:rotate(180deg)}#refreshCosts:disabled{cursor:not-allowed;background:#e0e0e0}.global-census-settings{display:flex;flex-direction:column;align-items:stretch;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:12px 16px;margin-bottom:var(--space-lg)}.census-settings-content{display:flex;align-items:center;gap:var(--space-lg);flex-wrap:wrap}.census-settings-label{font-size:13px;font-weight:500;color:var(--text-secondary)}.census-input-group{display:flex;align-items:center;gap:8px}.census-input-group label{font-size:12px;font-weight:500;color:var(--text-tertiary);white-space:nowrap}.census-input{width:80px;padding:6px 10px;border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:14px;background:#fff;text-align:center}.census-input:focus{outline:none;border-color:var(--action-primary)}.btn-small{padding:6px 12px;font-size:13px}.header-left{display:flex;align-items:center;gap:var(--space-xl)}.header-left h2{margin:0;font-size:28px;font-weight:600;color:var(--text-primary)}.week-selector{display:flex;align-items:center;gap:var(--space-sm)}.week-nav-btn{padding:var(--space-sm) var(--space-md);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:6px;cursor:pointer;font-size:18px;font-weight:600;color:var(--text-secondary);transition:all .2s ease}.week-nav-btn:hover{background:var(--bg-tertiary);border-color:var(--border-medium)}.week-date-input{padding:var(--space-sm) var(--space-md);border:1px solid var(--border-default);border-radius:6px;font-size:14px;color:var(--text-primary);background:var(--bg-primary);cursor:pointer}.week-date-input:focus{outline:none;border-color:var(--green-primary);box-shadow:0 0 0 3px rgba(var(--green-rgb),.1)}.header-right{display:flex;gap:var(--space-md)}.meal-planner-grid{width:100%;margin-bottom:var(--space-xl);display:block;min-height:400px;overflow-x:auto}.meal-grid{display:grid;grid-template-columns:100px repeat(7,1fr);gap:var(--space-md);margin-bottom:var(--space-xl);width:100%;min-width:900px}.meal-grid-header{padding:var(--space-md);font-weight:600;color:var(--text-secondary);background:var(--bg-secondary);border-radius:6px;text-align:center;font-size:14px;min-height:40px;display:flex;align-items:center;justify-content:center}.day-header{background:var(--green-light-bg);color:var(--green-text);font-size:16px}.meal-label{display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:1px solid var(--border-default)}.meal-slot{min-height:100px;max-height:140px;padding:6px;background:var(--bg-primary);border:2px dashed var(--border-medium);border-radius:8px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;transition:all .2s ease;overflow:hidden;cursor:pointer}.meal-slot:hover{border-color:var(--green-primary);background:rgba(var(--green-rgb),.02)}.meal-slot::-webkit-scrollbar{width:6px}.meal-slot::-webkit-scrollbar-track{background:transparent}.meal-slot::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:3px}.meal-slot::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.add-meal-btn{flex:1;min-height:40px;padding:var(--space-sm) var(--space-md);background:transparent;border:1px dashed var(--border-default);border-radius:4px;color:var(--text-tertiary);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.add-meal-btn:hover{color:var(--green-primary);background:rgba(var(--green-rgb),.05);border-color:var(--green-primary)}.meal-card{width:100%;display:flex;flex-direction:column;background:var(--bg-primary);padding:6px;border:1px solid var(--border-default);border-radius:6px;margin-bottom:6px;flex-shrink:0}.meal-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:4px;gap:4px}.meal-card-title{font-weight:700;font-size:12px;color:#fff;line-height:1.2;flex:1}.meal-card-remove{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:4px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:18px;color:var(--text-tertiary);transition:all .2s ease;flex-shrink:0}.meal-card-remove:hover{background:#fee;border-color:#fcc;color:#c33}.meal-card-body{display:flex;flex-direction:column;gap:4px;font-size:12px}.meal-card-row{display:flex;gap:var(--space-md);flex-wrap:wrap}.meal-card-input-group{display:flex;align-items:center;gap:var(--space-sm);flex:1;min-width:120px}.meal-card-input-group label{color:var(--text-tertiary);font-size:11px;font-weight:500;white-space:nowrap}.meal-card-servings{display:flex;align-items:center;gap:var(--space-sm)}.meal-card-servings label{color:var(--text-tertiary);font-size:11px;font-weight:500}.servings-input,.forecast-input{width:60px;padding:4px 6px;border:1px solid var(--border-default);border-radius:4px;font-size:12px;color:var(--text-primary)}.servings-input:focus,.forecast-input:focus{outline:none;border-color:var(--green-primary)}.forecast-input{width:50px}.meal-card-cost{display:flex;justify-content:space-between;align-items:center;padding-top:var(--space-xs);border-top:1px solid var(--border-light)}.cost-label{color:var(--text-tertiary);font-size:11px;font-weight:500}.cost-value{color:var(--green-text);font-weight:600;font-size:13px}.meal-card-compact{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:6px;margin-bottom:var(--space-xs);transition:all .2s ease}.meal-card-compact:hover{border-color:var(--green-primary);background:rgba(var(--green-rgb),.05)}.meal-card-title-link{flex:1;font-size:13px;font-weight:400;color:#000;cursor:pointer;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meal-card-title-link:hover{color:var(--green-primary);text-decoration:underline}.meal-card-cost-compact{font-size:13px;font-weight:600;color:var(--green-text);white-space:nowrap;margin-right:var(--space-xs)}.cost-change{font-size:11px;font-weight:700;padding:2px 4px;border-radius:3px;margin-left:4px}.cost-increase{color:#dc3545;background-color:#ffebee}.cost-decrease{color:#28a745;background-color:#e8f5e9}.meal-card-remove-compact{background:transparent;border:none;color:var(--text-tertiary);font-size:20px;cursor:pointer;padding:0 4px;line-height:1;transition:color .2s ease;flex-shrink:0}.meal-card-remove-compact:hover{color:#c33}.meal-slot-actions{display:flex;gap:var(--space-xs);margin-top:auto}.lock-period-btn{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:4px;padding:var(--space-sm);font-size:14px;cursor:pointer;transition:all .2s ease;min-width:40px;text-align:center;flex-shrink:0}.lock-period-btn:hover,.lock-period-btn.locked{background:var(--green-primary);border-color:var(--green-primary);color:#fff}.lock-period-btn.locked:hover{background:#45a049;border-color:#45a049}.meal-slot.locked{background:rgba(var(--green-rgb),.08);border:2px solid var(--green-primary);border-style:solid;cursor:pointer}.meal-slot.locked:hover{background:rgba(var(--green-rgb),.12);border-color:var(--green-dark)}.meal-card-compact.locked{opacity:.9}.meal-card-compact.locked .meal-card-title-link{cursor:pointer}.meal-period-summary{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:6px;text-align:center;height:100%;width:100%;pointer-events:none}.meal-period-empty{display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);font-size:13px;font-style:italic;height:100%;width:100%;pointer-events:none}.summary-row{display:flex;justify-content:space-between;align-items:center;width:100%;gap:8px}.summary-items{display:flex;flex-wrap:wrap;gap:3px;justify-content:center;align-items:center;pointer-events:none}.summary-badge{padding:2px 6px;border-radius:8px;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;pointer-events:none}.summary-badge.entrees{background:rgba(var(--green-rgb),.15);color:var(--green-dark);border:1px solid rgba(var(--green-rgb),.3)}.summary-badge.vegetables{background:#21965326;color:#1b5e37;border:1px solid rgba(33,150,83,.3)}.summary-badge.fruit{background:#ffc10726;color:#f57c00;border:1px solid rgba(255,193,7,.3)}.summary-badge.grains{background:#79554826;color:#5d4037;border:1px solid rgba(121,85,72,.3)}.summary-badge.milk{background:#03a9f426;color:#01579b;border:1px solid rgba(3,169,244,.3)}.summary-badge.condiments{background:#f4433626;color:#c62828;border:1px solid rgba(244,67,54,.3)}.summary-servings{font-size:11px;font-weight:600;color:var(--text-secondary);pointer-events:none}.summary-cost{font-size:14px;font-weight:700;color:var(--text-primary);pointer-events:none;display:flex;flex-direction:column;gap:1px;align-items:center;text-align:center}.cost-total{font-size:13px;font-weight:700;white-space:nowrap;pointer-events:none}.cost-avg{font-size:9px;font-weight:500;color:var(--text-secondary);white-space:nowrap;pointer-events:none}.summary-hint{font-size:8px;color:var(--text-tertiary);margin-top:-2px;pointer-events:none}.recipe-section{margin:4px 0;width:100%;pointer-events:none}.recipe-section-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary);margin-bottom:2px}.recipe-name{font-size:11px;color:var(--text-secondary);line-height:1.3;text-align:left;padding-left:var(--space-xs)}.meal-sections-container{display:flex;flex-direction:column;gap:var(--space-xl)}.meal-section{border:2px solid var(--border-default);border-radius:12px;padding:var(--space-lg);background:var(--bg-secondary)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md);padding-bottom:var(--space-md);border-bottom:2px solid var(--border-default)}.section-header h3{margin:0;font-size:18px;font-weight:700;color:var(--text-primary)}.add-to-section-btn{padding:8px 16px;background:var(--green-primary);color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.add-to-section-btn:hover{background:var(--green-hover);transform:translateY(-1px)}.section-items{display:flex;flex-direction:column;gap:var(--space-sm)}.empty-section{color:var(--text-tertiary);font-style:italic;text-align:center;padding:var(--space-lg);margin:0}.period-modal-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md);background:#fff;border:1px solid var(--border-default);border-radius:8px;transition:all .2s;position:relative}.period-modal-item:hover{border-color:var(--green-primary);box-shadow:0 2px 8px #0000000d}.period-modal-item.dragging{opacity:.5;cursor:grabbing!important}.period-modal-item[draggable=true]:hover{box-shadow:0 4px 12px #0000001a;border-color:var(--green-primary)}.drag-handle{color:var(--text-tertiary);font-size:18px;margin-right:var(--space-sm);cursor:grab;-webkit-user-select:none;user-select:none}.period-modal-item[draggable=true]:active .drag-handle{cursor:grabbing}.section-items.drag-over{background:rgba(var(--green-rgb),.05);border:2px dashed var(--green-primary)!important;padding:var(--space-sm)}.item-info{flex:1;display:flex;flex-direction:column;gap:var(--space-xs)}.item-name{font-weight:600;color:var(--text-primary);font-size:14px}.item-details{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);font-size:12px;color:var(--text-tertiary)}.item-forecast{color:var(--text-secondary)}.item-cost{font-weight:600;color:var(--green-dark)}.item-actions{display:flex;gap:var(--space-xs)}.item-adjust-btn,.item-remove-btn{padding:6px 10px;border:1px solid var(--border-default);background:#fff;border-radius:6px;cursor:pointer;font-size:14px;transition:all .2s}.item-adjust-btn:hover{border-color:var(--green-primary);background:rgba(var(--green-rgb),.05)}.item-remove-btn:hover{border-color:#e53e3e;background:#e53e3e0d;color:#e53e3e}.locked-banner{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);font-weight:600}.ovs-config-section{background:#f8f9fa;border:2px solid var(--border-default);border-radius:12px;padding:var(--space-lg);margin-bottom:var(--space-xl)}.ovs-config-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-md);margin-bottom:var(--space-md)}.config-field{display:flex;flex-direction:column;gap:var(--space-xs)}.config-field label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.ovs-input{padding:8px 12px;border:1px solid var(--border-default);border-radius:6px;font-size:14px;font-weight:600;background:#fff;transition:all .2s}.ovs-input:focus{outline:none;border-color:var(--green-primary);box-shadow:0 0 0 3px rgba(var(--green-rgb),.1)}.ovs-input:disabled{background:#e9ecef;cursor:not-allowed}.ovs-stats{display:flex;gap:var(--space-lg);padding:var(--space-md);background:#fff;border-radius:8px;border:1px solid var(--border-default);flex-wrap:wrap}.stat-item{display:flex;flex-direction:column;gap:4px}.stat-label{font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:18px;font-weight:700;color:var(--text-primary)}.ovs-validation{margin-top:var(--space-md);display:flex;flex-direction:column;gap:var(--space-xs)}.validation-message{padding:10px 14px;border-radius:6px;font-size:13px;font-weight:500;display:flex;align-items:center;gap:var(--space-xs)}.validation-success{background:#4caf501a;color:#2e7d32;border:1px solid rgba(76,175,80,.3)}.validation-info{background:#2196f31a;color:#1565c0;border:1px solid rgba(33,150,243,.3)}.validation-warning{background:#ff98001a;color:#e65100;border:1px solid rgba(255,152,0,.3)}.validation-error{background:#f443361a;color:#c62828;border:1px solid rgba(244,67,54,.3)}.acceptability-input-group{display:flex;align-items:center;gap:6px;font-size:12px}.acceptability-input-group label{font-weight:600;color:var(--text-tertiary)}.acceptability-input{padding:4px 8px;border:1px solid var(--border-default);border-radius:4px;font-size:13px;font-weight:600;text-align:center}.servings-input-group{display:flex;align-items:center;gap:6px;font-size:12px}.servings-input-group label{font-weight:600;color:var(--text-tertiary)}.servings-input{padding:4px 8px;border:1px solid var(--border-default);border-radius:4px;font-size:13px;font-weight:600;text-align:center;color:var(--green-dark)}.acceptability-input:focus{outline:none;border-color:var(--green-primary)}.item-acceptability{font-size:12px;color:var(--text-tertiary)}.item-projection{font-size:13px}.meal-planner-summary{padding:var(--space-xl);background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-default)}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-lg)}.summary-card{padding:var(--space-lg);background:var(--bg-primary);border:1px solid var(--border-default);border-radius:8px;text-align:center}.summary-label{font-size:13px;color:var(--text-tertiary);margin-bottom:var(--space-sm);font-weight:500}.summary-value{font-size:28px;font-weight:700;color:var(--green-text)}.recipe-selector-modal{background:var(--bg-primary);border-radius:12px;width:90%;max-width:700px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0003}.search-input-compact{padding:10px 14px;border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--body-regular);color:var(--text-secondary);font-family:inherit;background:var(--bg-primary);transition:border-color var(--transition-base) ease-out;width:100%}.search-input-compact:focus{outline:none;border-color:var(--action-primary)}.selected-recipes-display{display:none;flex-direction:column;gap:var(--space-sm);flex:1;overflow-y:auto;min-height:0}.selected-recipes-header{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:2px}.selected-recipes-tags{display:flex;flex-direction:column;gap:6px}.selected-recipe-tag{display:flex;align-items:center;justify-content:space-between;gap:var(--space-xs);padding:8px 10px;background:var(--bg-secondary);border-radius:6px;font-size:13px;color:var(--text-primary);border:1px solid var(--border-default)}.selected-recipe-tag span{font-weight:500;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.remove-recipe-btn{background:none;border:none;color:var(--text-tertiary);font-size:18px;line-height:1;cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;transition:color .2s ease;flex-shrink:0}.remove-recipe-btn:hover{color:#e53e3e}.recipe-selector-list{flex:1;overflow-y:auto;padding:var(--space-sm)}.recipe-selector-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);border:1px solid var(--border-default);border-radius:8px;margin-bottom:var(--space-sm);cursor:pointer;transition:all .2s ease}.recipe-selector-item:hover,.recipe-selector-item.selected{background:var(--green-light-bg);border-color:var(--green-primary)}.recipe-checkbox{width:18px;height:18px;cursor:pointer;flex-shrink:0}.recipe-selector-content{flex:1}.recipe-selector-name{font-weight:600;font-size:15px;color:var(--text-primary);margin-bottom:var(--space-xs)}.recipe-selector-meta{display:flex;gap:var(--space-sm);flex-wrap:wrap}.recipe-selector-meta .badge{padding:3px 8px;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:4px;font-size:11px;color:var(--text-secondary);font-weight:500}.modal-actions{display:flex;gap:var(--space-md);justify-content:flex-end;padding-top:var(--space-md);border-top:1px solid var(--border-default)}.recipe-selector-modal .modal-actions{padding:var(--space-lg);padding-top:var(--space-md)}.btn-secondary{padding:var(--space-sm) var(--space-lg);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--body-regular);font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.btn-secondary:hover{background:var(--bg-tertiary);border-color:var(--text-secondary)}.btn-primary{padding:var(--space-sm) var(--space-lg);background:var(--green-primary);border:1px solid var(--green-primary);border-radius:var(--radius-md);font-size:var(--body-regular);font-weight:500;color:#fff;cursor:pointer;transition:all .2s ease}.btn-primary:hover:not(:disabled){background:#45a049;border-color:#45a049}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.meal-plan-list{max-height:500px;overflow-y:auto;padding:var(--space-sm)}.meal-plan-item{padding:var(--space-md);border:1px solid var(--border-default);border-radius:8px;margin-bottom:var(--space-sm);cursor:pointer;transition:all .2s ease;display:flex;justify-content:space-between;align-items:center;gap:var(--space-md)}.meal-plan-item:hover{background:var(--green-light-bg);border-color:var(--green-primary)}.meal-plan-name{font-weight:600;font-size:15px;color:var(--text-primary);margin-bottom:var(--space-xs)}.meal-plan-date{font-size:13px;color:var(--text-tertiary);margin-bottom:6px}.meal-plan-tags{display:flex;gap:6px;flex-wrap:wrap}.meal-plan-tag{display:inline-block;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:500;line-height:1.4}.meal-plan-tag.market-tag{background:#e3f2fd;color:#1976d2;border:1px solid #bbdefb}.meal-plan-tag.account-tag{background:#f3e5f5;color:#7b1fa2;border:1px solid #e1bee7}.delete-plan-btn{padding:6px 12px;font-size:12px}.btn-danger{background:#fee;color:#c33;border:1px solid #fcc}.btn-danger:hover{background:#fcc;border-color:#c33}.btn-small{padding:4px 8px;font-size:11px}@media(max-width:1400px){.meal-grid{grid-template-columns:80px repeat(7,1fr);gap:var(--space-sm)}.meal-card-title{font-size:12px}}@media(max-width:1100px){.header-controls{grid-template-columns:1fr}.control-group-date{grid-column:span 1}.meal-grid{grid-template-columns:1fr}.meal-grid-header.day-header,.meal-label{display:none}.meal-slot{border:2px solid var(--border-default)}.summary-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.header-controls{grid-template-columns:1fr}.header-actions{width:100%}.header-actions button{flex:1}}@media(max-width:600px){.meal-planner-container{padding:var(--space-md)}.header-title h2{font-size:22px}.header-actions{flex-direction:column;width:100%}.header-actions button{width:100%}.week-selector{flex-wrap:wrap}.summary-grid{grid-template-columns:1fr}}.custom-notification{position:fixed;top:20px;left:50%;transform:translate(-50%) translateY(-100px);background:var(--bg-primary);color:var(--text-primary);padding:16px 24px;border-radius:8px;box-shadow:0 4px 20px #00000026;border:1px solid var(--border-default);z-index:1000002;max-width:500px;font-size:15px;font-weight:500;opacity:0;transition:all .3s cubic-bezier(.4,0,.2,1);pointer-events:none}.custom-notification.show{opacity:1;transform:translate(-50%) translateY(0);pointer-events:auto}.custom-notification.notification-success{background:var(--green-light-bg);color:var(--green-text);border-color:var(--green-primary)}.custom-notification.notification-error{background:#fee;color:#c33;border-color:#fcc}.custom-notification.notification-warning{background:var(--yellow-bg);color:var(--yellow-text);border-color:var(--yellow-border)}.custom-alert-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000003;opacity:0;transition:opacity .2s ease-out}.custom-alert-overlay.show{opacity:1}.custom-alert-modal{background:var(--bg-primary);border-radius:12px;box-shadow:0 20px 60px #0000004d;min-width:400px;max-width:500px;max-height:80vh;overflow:hidden;transform:scale(.9);transition:transform .2s ease-out}.custom-alert-overlay.show .custom-alert-modal{transform:scale(1)}.custom-alert-header{padding:20px 24px 16px;border-bottom:1px solid var(--border-default)}.custom-alert-header h3{margin:0;font-size:18px;font-weight:600;color:var(--text-primary)}.custom-alert-icon{width:56px;height:56px;margin:24px auto 16px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;background:var(--bg-secondary);color:var(--text-primary)}.custom-alert-success .custom-alert-icon{background:var(--green-light-bg);color:var(--green-primary)}.custom-alert-error .custom-alert-icon{background:#fee;color:#c33}.custom-alert-warning .custom-alert-icon{background:var(--yellow-bg);color:var(--yellow-text)}.custom-alert-info .custom-alert-icon{background:var(--bg-secondary);color:var(--text-secondary)}.custom-alert-content{padding:20px 24px;text-align:center}.custom-alert-content p{margin:0;font-size:15px;color:var(--text-secondary);line-height:1.5}.custom-prompt-input{width:100%;padding:10px 14px;margin-top:16px;border:1px solid var(--border-default);border-radius:8px;font-size:15px;font-family:inherit;color:var(--text-primary);transition:border-color .2s ease}.custom-prompt-input:focus{outline:none;border-color:var(--green-primary);box-shadow:0 0 0 3px #57e51e1a}.custom-alert-actions{padding:16px 24px 24px;display:flex;gap:12px;justify-content:center}.custom-alert-btn{padding:10px 24px;border:none;border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s ease;min-width:100px;font-family:inherit}.custom-alert-btn.btn-primary{background:var(--green-primary);color:#fff}.custom-alert-btn.btn-primary:hover{background:var(--green-hover);transform:translateY(-1px);box-shadow:0 4px 12px #57e51e4d}.custom-alert-btn.btn-secondary{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-default)}.custom-alert-btn.btn-secondary:hover{background:var(--bg-tertiary);border-color:var(--border-medium)}@media(max-width:600px){.custom-alert-modal{min-width:90%;max-width:90%}.custom-notification{max-width:90%;left:5%;transform:translate(0) translateY(-100px)}.custom-notification.show{transform:translate(0) translateY(0)}}.import-mode-toggle{display:inline-flex;gap:0;margin-bottom:var(--space-xl);border:1px solid var(--border-default);border-radius:6px;overflow:hidden;background:var(--bg-primary)}.mode-btn{padding:10px 24px;background:transparent;border:none;border-right:1px solid var(--border-default);font-size:14px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.mode-btn:last-child{border-right:none}.mode-btn:hover:not(.active){background:var(--bg-secondary)}.mode-btn.active{background:var(--green-primary);color:#fff;font-weight:600}.mog-preview-section{margin-top:var(--space-xxl);padding:var(--space-xl);background:#fff;border:2px solid var(--green-primary);border-radius:var(--radius-lg);box-shadow:0 4px 20px #00000014}.mog-items-preview-container{overflow-x:auto;margin-bottom:var(--space-md)}.mog-items-preview-table{width:100%;border-collapse:collapse;min-width:800px}.mog-items-preview-table thead{background:var(--bg-secondary)}.mog-items-preview-table th{padding:var(--space-sm);text-align:left;font-weight:600;color:var(--text-primary);font-size:13px;border-bottom:2px solid var(--border-default)}.mog-items-preview-table td{padding:var(--space-xs);border-bottom:1px solid var(--border-light)}.mog-item-input{width:100%;padding:6px 8px;border:1px solid var(--border-default);border-radius:4px;font-size:13px;color:var(--text-primary);transition:border-color .2s ease}.mog-item-input:focus{outline:none;border-color:var(--green-primary);box-shadow:0 0 0 2px #57e51e1a}.btn-remove-mog-item{background:none;border:none;color:var(--text-tertiary);font-size:20px;cursor:pointer;padding:4px;line-height:1;transition:color .2s ease}.btn-remove-mog-item:hover{color:#c33}.mog-count{color:var(--green-text);font-weight:600;font-size:14px}.mog-page{max-width:100%;width:100%;margin:0 auto;padding:var(--space-xl);overflow-x:hidden}.mog-header{text-align:center;padding-bottom:var(--space-lg);border-bottom:2px solid var(--border-default)}.mog-header h2{font-size:var(--heading-xlarge);font-weight:700;color:var(--text-primary);margin:0 0 var(--space-sm) 0}.mog-controls{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-xl)}.mog-filters{display:flex;gap:var(--space-md);flex-wrap:wrap;align-items:center}.mog-filters select{padding:var(--space-sm) var(--space-md);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:14px;color:var(--text-primary);background:var(--bg-primary);cursor:pointer;transition:border-color .2s ease}.mog-filters select:focus{outline:none;border-color:var(--green-primary)}.mog-table-container{background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow-x:auto;overflow-y:visible;box-shadow:0 2px 8px #0000000a;max-width:100%;-webkit-overflow-scrolling:touch;position:relative}.mog-table-container:after{content:"";position:absolute;top:0;right:0;bottom:0;width:40px;background:linear-gradient(to right,transparent,var(--bg-primary));pointer-events:none;opacity:.8}.mog-data-table{width:100%;min-width:1100px;border-collapse:collapse;table-layout:fixed}.mog-data-table thead{background:var(--bg-secondary);position:sticky;top:0;z-index:10}.mog-data-table th{padding:var(--space-md);text-align:left;font-weight:600;color:var(--text-primary);font-size:13px;border-bottom:2px solid var(--border-default);white-space:nowrap}.mog-data-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.mog-data-table th.sortable:hover{background:var(--bg-tertiary)}.mog-data-table td{padding:var(--space-md);border-bottom:1px solid var(--border-light);font-size:14px;color:var(--text-secondary)}.mog-data-table tbody tr:hover{background:var(--bg-secondary)}.mog-data-table .item-name-col{font-weight:600;color:var(--text-primary)}.mog-data-table .cost-col{font-weight:600;color:var(--green-text)}.mog-data-table .date-col{font-size:13px;color:var(--text-tertiary)}.btn-edit-mog,.btn-delete-mog,.btn-save-mog,.btn-cancel-mog{background:none;border:none;font-size:16px;cursor:pointer;padding:4px;transition:transform .2s ease}.btn-edit-mog:hover,.btn-delete-mog:hover{transform:scale(1.2)}.btn-save-mog{color:var(--green-primary)}.btn-save-mog:hover{transform:scale(1.2)}.btn-cancel-mog{color:var(--error-text)}.btn-cancel-mog:hover{transform:scale(1.2)}.action-buttons-view,.action-buttons-edit{display:flex;gap:8px;align-items:center}.editable-cell{position:relative}.editable-cell .cell-view{display:block}.editable-cell .cell-edit{width:100%;padding:4px 8px;border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:14px;color:var(--text-primary);background:var(--bg-primary);font-family:inherit}.editable-cell .cell-edit:focus{outline:none;border-color:var(--action-primary);background:var(--bg-secondary)}.mog-data-table tr.editing-row{background:var(--bg-tertiary)}.mog-data-table tr.editing-row td{border-top:2px solid var(--action-primary);border-bottom:2px solid var(--action-primary)}.mog-data-table tr.editing-row td:first-child{border-left:2px solid var(--action-primary)}.mog-data-table tr.editing-row td:last-child{border-right:2px solid var(--action-primary)}.pagination{padding:var(--space-lg);display:flex;justify-content:center}.pagination-controls{display:flex;gap:var(--space-xs);align-items:center}.pagination-btn{padding:var(--space-sm) var(--space-md);background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:14px;color:var(--text-primary);cursor:pointer;transition:all .2s ease;min-width:40px}.pagination-btn:hover:not(.active){background:var(--bg-secondary);border-color:var(--green-primary)}.pagination-btn.active{background:var(--green-primary);color:#fff;border-color:var(--green-primary);font-weight:600}.pagination-ellipsis{padding:var(--space-sm);color:var(--text-tertiary)}@media(max-width:1200px){.mog-data-table{min-width:1000px;font-size:13px}.mog-data-table th,.mog-data-table td{padding:var(--space-sm)}}@media(max-width:768px){.mog-table-container{border-radius:var(--radius-sm)}.mog-data-table{min-width:900px;font-size:12px}.mog-data-table th,.mog-data-table td{padding:8px 6px}.mog-data-table th{font-size:11px}}@media(max-width:480px){.mog-data-table{min-width:800px;font-size:11px}.mog-data-table th,.mog-data-table td{padding:6px 4px}.mog-data-table th{font-size:10px}}@media(max-width:768px){.mog-filters{flex-direction:column;width:100%}.mog-filters select,.mog-filters button{width:100%}.import-mode-toggle{flex-direction:column}.mode-btn{width:100%}.mog-table-container{overflow-x:auto}.mog-data-table{min-width:800px}}.success-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000;opacity:0;transition:opacity var(--transition-base)}.success-overlay.show{opacity:1}.success-modal{background:var(--bg-primary);border-radius:var(--radius-lg);padding:var(--space-3xl);max-width:600px;width:90%;max-height:85vh;overflow-y:auto;box-shadow:var(--shadow-dropdown);text-align:center;transform:scale(.9);transition:transform var(--transition-base)}.success-overlay.show .success-modal{transform:scale(1)}.success-icon{margin:0 auto var(--space-xl);display:flex;align-items:center;justify-content:center}.success-title{font-size:var(--section-heading);font-weight:600;color:var(--text-primary);margin:0 0 var(--space-lg) 0}.success-details{font-size:var(--body-regular);color:var(--text-secondary);line-height:1.6;margin:0 0 var(--space-xl) 0;padding:var(--space-lg);background:var(--green-light-bg);border-radius:var(--radius-md);border-left:3px solid var(--green-primary)}.success-close-btn{background:var(--green-primary);color:#fff;border:none;border-radius:var(--radius-md);padding:var(--space-md) var(--space-2xl);font-size:var(--body-regular);font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.success-close-btn:hover{background:var(--green-hover)}.ingredient-preview-row-enhanced{margin-bottom:var(--space-lg);border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-primary);padding:var(--space-md)}.ing-basic-info{display:grid;grid-template-columns:100px 100px 1fr 150px 140px 40px;gap:var(--space-sm);align-items:center}.ing-amount-preview,.ing-uom-preview,.ing-name-preview{padding:var(--space-sm);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--body-regular)}.market-match-status{padding:var(--space-sm);border-radius:var(--radius-sm);font-size:var(--body-small);font-weight:600;text-align:center}.market-match-status.match-high{background:var(--green-light-bg);color:var(--green-text);border:1px solid var(--green-primary)}.market-match-status.match-medium{background:var(--yellow-bg);color:var(--yellow-text);border:1px solid var(--yellow-border)}.market-match-status.match-low{background:var(--orange-bg);color:var(--orange-text);border:1px solid var(--orange-border)}.market-match-status.match-searching{background:var(--bg-tertiary);color:var(--text-muted);border:1px solid var(--border-default)}.btn-toggle-markets{padding:var(--space-sm) var(--space-md);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--body-small);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn-toggle-markets:hover{background:var(--bg-tertiary);border-color:var(--border-medium)}.market-details{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border-light)}.market-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md);margin-top:var(--space-md)}@media(max-width:1200px){.market-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.market-grid{grid-template-columns:1fr}.ing-basic-info{grid-template-columns:1fr 1fr}.ing-name-preview{grid-column:1 / -1}}.market-match-card{border:2px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-md);background:var(--bg-secondary);transition:all var(--transition-fast)}.market-match-card.match-quality-high{border-color:var(--green-primary);background:var(--green-light-bg)}.market-match-card.match-quality-medium{border-color:var(--yellow-border);background:var(--yellow-bg)}.market-match-card.match-quality-low{border-color:var(--orange-border);background:var(--orange-bg)}.market-match-card.match-quality-none{border-color:var(--border-medium);background:var(--bg-tertiary)}.market-match-card.market-already-linked{border:3px solid var(--success);background:#22c55e4d;box-shadow:0 0 0 3px #22c55e26}.linked-badge{display:inline-block;background:var(--success);color:#fff;font-size:10px;font-weight:700;padding:3px 8px;border-radius:12px;margin-left:8px;letter-spacing:.5px}.market-name{font-size:var(--body-small);font-weight:700;color:var(--text-secondary);margin-bottom:var(--space-sm);text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;flex-wrap:wrap}.match-info{margin-bottom:var(--space-sm)}.match-item-name{font-size:var(--body-regular);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-xs)}.match-details{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xs)}.match-cost{font-size:var(--body-regular);font-weight:700;color:var(--text-primary)}.match-score{font-size:var(--body-small);color:var(--text-tertiary);background:#ffffffb3;padding:2px 6px;border-radius:var(--radius-sm)}.match-pack-size{font-size:var(--body-small);color:var(--text-tertiary)}.match-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-sm)}.btn-change-match,.btn-clear-match,.btn-manual-search{flex:1;padding:var(--space-xs) var(--space-sm);border:1px solid var(--border-medium);border-radius:var(--radius-sm);background:var(--bg-primary);font-size:var(--body-small);cursor:pointer;transition:all var(--transition-fast)}.btn-change-match:hover{background:var(--action-primary);color:#fff;border-color:var(--action-primary)}.btn-clear-match:hover{background:#dc2626;color:#fff;border-color:#dc2626}.btn-manual-search{width:100%}.btn-manual-search:hover{background:var(--green-primary);color:#fff;border-color:var(--green-primary)}.no-match{text-align:center;padding:var(--space-md) 0}.no-match p{font-size:var(--body-small);color:var(--text-tertiary);margin-bottom:var(--space-sm)}.manual-search-modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:10000;display:flex;align-items:center;justify-content:center}.manual-search-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.manual-search-content{position:relative;background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:0 20px 60px #0000004d;width:90%;max-width:700px;max-height:90vh;display:flex;flex-direction:column;z-index:1}.manual-search-header{padding:var(--space-md);border-bottom:1px solid var(--border-default);position:relative}.manual-search-header h3{font-size:var(--body-large);margin-bottom:var(--space-xs);color:var(--text-primary)}.manual-search-header p{font-size:var(--body-small);color:var(--text-secondary);margin:0}.modal-close-btn{position:absolute;top:var(--space-lg);right:var(--space-lg);background:none;border:none;font-size:32px;line-height:1;color:var(--text-tertiary);cursor:pointer;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.modal-close-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.manual-search-body{padding:var(--space-md);overflow-y:auto;flex:1}.search-input-container{display:flex;gap:var(--space-sm);margin-bottom:var(--space-md)}#manualSearchInput{flex:1;padding:var(--space-sm);border:2px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--body-small);transition:border-color var(--transition-fast)}#manualSearchInput:focus{outline:none;border-color:var(--green-primary)}.btn-search{padding:var(--space-sm) var(--space-lg);background:var(--green-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--body-small);font-weight:600;cursor:pointer;transition:background var(--transition-fast);white-space:nowrap}.btn-search:hover:not(:disabled){background:var(--green-hover)}.btn-search:disabled{opacity:.6;cursor:not-allowed}.search-results-container{min-height:10px}.search-hint,.search-loading,.search-no-results,.search-error{text-align:center;padding:var(--space-xs);color:var(--text-tertiary);font-size:var(--body-regular)}.search-loading{color:var(--green-primary)}.search-error{color:#dc2626}.search-count{font-size:var(--body-small);color:var(--text-tertiary);margin-bottom:var(--space-md);font-weight:600}.search-results-list{display:flex;flex-direction:column;gap:var(--space-md)}.search-result-item{display:flex;align-items:center;gap:var(--space-lg);padding:var(--space-md);border:2px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-secondary);transition:all var(--transition-fast)}.search-result-item:hover{border-color:var(--green-primary);background:var(--green-light-bg)}.result-item-info{flex:1}.result-item-name{font-size:var(--body-regular);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-xs)}.result-item-details,.result-item-pricing{font-size:var(--body-small);color:var(--text-tertiary);display:flex;align-items:center;gap:var(--space-sm);margin-bottom:2px}.result-separator{color:var(--border-medium)}.result-cost{font-weight:600;color:var(--text-secondary)}.btn-select-item{padding:var(--space-sm) var(--space-lg);background:var(--green-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--body-small);font-weight:600;cursor:pointer;transition:background var(--transition-fast);white-space:nowrap;position:relative;z-index:10;pointer-events:auto}.btn-select-item:hover{background:var(--green-hover)}.btn-select-item:active{transform:scale(.95)}.manual-search-footer{padding:var(--space-lg) var(--space-xl);border-top:1px solid var(--border-default);display:flex;justify-content:flex-end}.btn-secondary{padding:var(--space-md) var(--space-2xl);background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-medium);border-radius:var(--radius-md);font-size:var(--body-regular);font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.btn-secondary:hover{background:var(--bg-tertiary);border-color:var(--border-medium)}.suggestion-badge{display:inline-block;margin-left:var(--space-sm);padding:2px 8px;background:var(--green-light-bg);color:var(--green-primary);border:1px solid var(--green-primary);border-radius:var(--radius-sm);font-size:11px;font-weight:600}.suggested-item{border:2px solid var(--green-primary)!important;background:var(--green-light-bg)!important}.search-divider{margin:var(--space-xl) 0;padding:var(--space-md) 0;text-align:center;position:relative}.search-divider:before,.search-divider:after{content:"";position:absolute;top:50%;width:calc(50% - 100px);height:1px;background:var(--border-default)}.search-divider:before{left:0}.search-divider:after{right:0}.search-divider span{display:inline-block;padding:0 var(--space-lg);background:var(--bg-primary);color:var(--text-secondary);font-size:var(--body-small);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.photo-upload-container{display:flex;flex-direction:column;gap:var(--space-md)}.photo-upload-input{padding:var(--space-sm);border:2px dashed var(--border-default);border-radius:var(--radius-md);background:var(--bg-secondary);cursor:pointer;font-size:var(--body-regular);transition:all var(--transition-fast)}.photo-upload-input:hover{border-color:var(--primary);background:var(--bg-tertiary)}.photo-preview-box{position:relative;border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-secondary)}.photo-preview-box img{width:100%;max-height:300px;object-fit:cover;display:block}.btn-remove-photo{position:absolute;top:var(--space-sm);right:var(--space-sm);padding:var(--space-xs) var(--space-md);background:#ef4444e6;color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--body-small);font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.btn-remove-photo:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 4px 12px #ef44444d}.mog-analytics-page{display:flex;flex-direction:column;gap:12px;padding:12px}.analytics-header{text-align:center;padding-bottom:8px;border-bottom:2px solid var(--border-default)}.analytics-header h2{font-size:22px;font-weight:700;color:var(--text-primary);margin:0 0 4px}.analytics-controls{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;padding:10px;background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-default)}.analytics-controls .filter-group{display:flex;flex-direction:column;gap:4px;flex:1;min-width:140px}.analytics-controls .filter-group label{font-size:10px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px}.analytics-controls select,.analytics-controls input[type=text]{padding:6px 8px;border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:12px;background:var(--bg-primary);color:var(--text-primary);transition:all var(--transition-fast)}.analytics-controls select:focus,.analytics-controls input[type=text]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3b82f61a}.analytics-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;padding:0}.summary-card{padding:10px;background:var(--bg-secondary);border-radius:var(--radius-md);border:2px solid var(--border-default);text-align:center;transition:all var(--transition-fast)}.summary-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-large)}.summary-card.increase{border-color:#ef4444;background:#ef44440d}.summary-card.decrease{border-color:#10b981;background:#10b9810d}.summary-card.neutral{border-color:#6b7280;background:#6b72800d}.summary-card.new-items{border-color:#3b82f6;background:#3b82f60d}.summary-card.new-items .summary-value{color:#3b82f6}.summary-label{font-size:10px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px;margin-bottom:4px}.summary-value{font-size:1.8rem;font-weight:700;color:var(--text-primary);line-height:1}.summary-card.increase .summary-value{color:#ef4444}.summary-card.decrease .summary-value{color:#10b981}.summary-card.new .summary-value{color:#3b82f6}.usage-insights{margin:12px 0}.usage-insights h3{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.insights-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px}.insight-card{padding:10px;background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-default)}.insight-card.high-frequency{border-left:3px solid #f59e0b}.insight-card.high-impact{border-left:3px solid #ef4444}.insight-card.low-priority{border-left:3px solid #6b7280}.insight-header{display:flex;align-items:center;gap:6px;margin-bottom:4px}.insight-icon{font-size:1rem}.insight-title{font-size:12px;font-weight:600;color:var(--text-primary)}.insight-subtitle{font-size:10px;color:var(--text-tertiary);margin-bottom:8px}.insight-items{display:flex;flex-direction:column;gap:6px}.insight-bar-item{border-radius:var(--radius-sm);overflow:hidden}.insight-bar-header{display:flex;justify-content:space-between;align-items:center;padding:4px 0;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all var(--transition-fast)}.insight-bar-header:hover{color:var(--text-primary)}.insight-item-name{font-weight:500;color:var(--text-primary);font-size:11px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.insight-item-value{font-size:10px;font-weight:600;color:var(--text-secondary);margin:0 4px;font-family:monospace}.expand-icon{font-size:.6rem;color:var(--text-tertiary);transition:transform var(--transition-fast);width:12px;text-align:center}.insight-bar-container{height:5px;background:var(--bg-tertiary);border-radius:3px;overflow:hidden;margin-top:2px}.insight-bar-fill{height:100%;background:linear-gradient(90deg,var(--border-default),var(--text-tertiary));border-radius:3px;transition:width var(--transition-medium)}.insight-card.high-frequency .insight-bar-fill{background:linear-gradient(90deg,#fcd34d,#f59e0b)}.insight-card.high-impact .insight-bar-fill{background:linear-gradient(90deg,#fca5a5,#ef4444)}.insight-card.low-priority .insight-bar-fill{background:linear-gradient(90deg,#d1d5db,#6b7280)}.insight-recipes-expand{max-height:0;overflow:hidden;transition:max-height var(--transition-medium) ease;margin-top:0}.insight-recipes-expand.expanded{max-height:500px;margin-top:6px;padding-top:4px;border-top:1px solid var(--border-default)}.recipe-chip{display:inline-block;padding:3px 6px;background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:10px;color:var(--link-color);margin:2px 2px 2px 0;transition:all var(--transition-fast);text-decoration:none;cursor:pointer}.recipe-chip:hover{background:var(--bg-tertiary);border-color:var(--link-color);color:var(--link-hover-color)}.no-recipes,.no-insights{text-align:center;padding:var(--space-md);color:var(--text-tertiary);font-size:var(--body-small);font-style:italic}.analytics-table-container{overflow-x:visible;overflow-y:visible;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-primary);max-width:100%;position:relative}.mobile-scroll-hint{display:none;font-size:var(--body-small);color:var(--text-tertiary);text-align:center;margin-top:var(--space-xs);font-style:italic}@media(max-width:768px){.mobile-scroll-hint{display:block}}.analytics-data-table{width:100%;min-width:auto;max-width:100%;border-collapse:collapse;font-size:11px;table-layout:fixed}.analytics-data-table thead{background:var(--bg-secondary);position:sticky;top:0;z-index:10}.analytics-data-table th{padding:6px 4px;text-align:left;font-weight:600;color:var(--text-secondary);text-transform:uppercase;font-size:9px;letter-spacing:.3px;border-bottom:2px solid var(--border-default);white-space:nowrap}.analytics-data-table th:nth-child(1){width:28%}.analytics-data-table th:nth-child(2){width:15%}.analytics-data-table th:nth-child(3),.analytics-data-table th:nth-child(4){width:15%;text-align:right}.analytics-data-table th:nth-child(5){width:14%;text-align:right}.analytics-data-table th:nth-child(6){width:13%;text-align:center}.analytics-data-table td{padding:6px 4px;border-bottom:1px solid var(--border-default);color:var(--text-primary);font-size:11px}@media(max-width:768px){.analytics-table-container{border-radius:var(--radius-sm)}.analytics-data-table{min-width:800px;font-size:var(--body-small)}.analytics-data-table th,.analytics-data-table td{padding:var(--space-sm)}.analytics-data-table th{font-size:11px}.recipe-info{min-width:120px}.ingredient-cell,.mog-item-cell{max-width:150px}}@media(max-width:480px){.analytics-data-table{min-width:700px;font-size:12px}.analytics-data-table th,.analytics-data-table td{padding:var(--space-xs) 6px}.analytics-data-table th{font-size:10px}.recipe-info{min-width:100px}.ingredient-cell,.mog-item-cell{max-width:120px}}.analytics-data-table tbody tr{transition:all var(--transition-fast)}.analytics-data-table tbody tr:hover{background:var(--bg-tertiary)}.recipe-info{display:flex;flex-direction:column;gap:var(--space-xs);max-width:110px;min-width:100px}.recipe-name{font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.concept-name{font-size:var(--body-small);color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mog-item-info{display:flex;flex-direction:column;gap:var(--space-xs)}.mog-item-name{color:var(--text-primary)}.mog-item-id{font-size:var(--body-small);color:var(--text-tertiary);font-family:monospace}.ingredient-cell{width:28%;cursor:pointer;overflow:hidden;text-overflow:ellipsis}.analytics-data-table td:nth-child(2){width:15%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cost-cell{font-weight:600;font-family:monospace;text-align:right;white-space:nowrap;width:15%;font-size:11px}.change-cell{font-weight:700;text-align:right;font-family:monospace;white-space:nowrap;width:14%;font-size:11px}.percent-cell{font-weight:700;text-align:center;font-family:monospace;white-space:nowrap;width:13%;font-size:11px}.change-cell.increase,.percent-cell.increase{color:#ef4444}.change-cell.decrease,.percent-cell.decrease{color:#10b981}.change-cell.no-change,.percent-cell.no-change{color:var(--text-tertiary)}.change-symbol{display:inline-block;margin-right:var(--space-xs);font-size:1.2em}.change-row.increase{border-left:3px solid #ef4444}.change-row.decrease{border-left:3px solid #10b981}.change-row.no-change{border-left:3px solid var(--border-default)}.change-row.new{border-left:3px solid #3b82f6}.change-cell.new,.percent-cell.new{color:#3b82f6}.expandable-cell{cursor:pointer;vertical-align:top}.expandable-header{display:flex;align-items:center;gap:4px;padding:2px 0;cursor:pointer;border-radius:var(--radius-sm);max-width:100%}.expandable-header:hover{background:var(--bg-tertiary)}.ingredient-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipe-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;background:var(--primary-color);color:#fff;border-radius:8px;font-size:9px;font-weight:600}.expand-icon-small{font-size:10px;color:var(--text-tertiary);transition:transform .2s ease}.analytics-recipes-expand{max-height:0;overflow:hidden;transition:max-height .3s ease;padding:0;margin-top:0}.analytics-recipes-expand.expanded{max-height:500px;padding:4px 0;margin-top:4px}.analytics-recipes-expand .recipe-chip{display:inline-block;padding:3px 6px;margin:2px 2px 2px 0;background:var(--bg-tertiary);border-radius:var(--radius-sm);color:var(--primary-color);text-decoration:none;font-size:10px;transition:all .2s ease;white-space:nowrap;cursor:pointer}.analytics-recipes-expand .recipe-chip:hover{background:var(--primary-color);color:#fff;transform:translateY(-2px);box-shadow:0 2px 8px #0000001a}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:767px){body.mobile-view #recipeGrid,body.mobile-view #conceptBooksView{display:none}body.mobile-view #recipeTable,body.mobile-view .view-toggle,body.mobile-view .tab-navigation{display:none!important}body.mobile-view{padding-top:56px;padding-bottom:80px}.container{padding:var(--space-xs) var(--space-xs)}header{position:fixed;top:0;left:0;right:0;z-index:100;background:#fffffff2;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);margin-bottom:0;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-default);box-shadow:0 2px 4px #0000000d}header .header-content{flex-direction:row;align-items:center;justify-content:space-between;gap:0;max-width:100%}header .header-title-section{flex:1;display:flex;align-items:center;gap:var(--space-sm)}header .header-logo{display:block;width:40px;height:40px}h1{font-size:18px;margin:0}h1 .database-text,.subtitle{display:none}header .profile-section{flex-shrink:0}.mobile-view #recipesTab{padding-top:var(--space-md)}.tab-navigation{display:none!important}body.mobile-view .tab-btn:not([data-tab=recipes]){display:none!important}body.mobile-view .controls,body.mobile-view .results-info,body.mobile-view .view-toggle,body.mobile-view .recipe-table{display:none!important}body.mobile-view #recipeGrid{grid-template-columns:1fr;gap:var(--space-lg);padding:var(--space-lg) var(--space-md)}body.mobile-view.mobile-grid-mode #recipeGrid{display:grid!important}body.mobile-view.mobile-grid-mode #conceptBooksView{display:none!important}body.mobile-view .recipe-card{border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 2px 8px #0000001a;transition:transform .2s ease,box-shadow .2s ease;cursor:pointer;-webkit-tap-highlight-color:transparent;border-top:4px solid var(--primary)}body.mobile-view .recipe-card:active{transform:scale(.98)}body.mobile-view .recipe-card-photo,body.mobile-view .recipe-card-photo-placeholder{height:220px}body.mobile-view .recipe-card-content{padding:0}body.mobile-view .recipe-card h3{font-size:18px;font-weight:600;margin-bottom:0;padding:var(--space-md);background:#5a9a6a0d}body.mobile-view .recipe-badges{gap:var(--space-sm);margin-bottom:0;padding:var(--space-sm) var(--space-md);background:var(--bg-primary)}body.mobile-view .recipe-badge{font-size:12px;padding:4px 10px;border-radius:var(--radius-sm)}body.mobile-view .recipe-badge.concept{background:var(--primary);color:#fff}body.mobile-view .recipe-badge.type{background:#d97706;color:#fff}body.mobile-view .recipe-tags-inline{flex-wrap:wrap;gap:var(--space-xs);padding:var(--space-md);background:var(--bg-tertiary)}body.mobile-view .tag-chip{background:#fff;border:1px solid var(--border-default);padding:4px 10px;border-radius:12px;font-size:12px}}.mobile-bottom-nav{position:fixed;bottom:0;left:0;right:0;background:var(--bg-primary);border-top:1px solid var(--border-default);display:none;justify-content:center;align-items:center;padding:var(--space-md);box-shadow:0 -2px 10px #0000001a;z-index:1000;height:68px;gap:0}@media(max-width:767px){body.mobile-view .mobile-bottom-nav{display:flex}}.mobile-view-btn{padding:10px 20px;background:var(--bg-primary);color:var(--text-secondary);border:1px solid var(--border-default);font-size:var(--body-small);font-weight:400;cursor:pointer;transition:all var(--transition-fast) ease-out;-webkit-tap-highlight-color:transparent;flex:1;max-width:180px}.mobile-view-btn:first-child{border-radius:var(--radius-md) 0 0 var(--radius-md);border-right:none}.mobile-view-btn:nth-child(2){border-right:none}.mobile-view-btn:hover{background:var(--bg-tertiary)}.mobile-view-btn:active{transform:scale(.98)}.mobile-view-btn.active{background:var(--action-primary);color:#fff}.mobile-filter-btn{padding:10px 16px;background:var(--bg-primary);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:0 var(--radius-md) var(--radius-md) 0;cursor:pointer;transition:all var(--transition-fast) ease-out;-webkit-tap-highlight-color:transparent;display:flex;align-items:center;justify-content:center;position:relative;min-width:56px}.mobile-filter-btn:hover{background:var(--bg-tertiary)}.mobile-filter-btn:active{transform:scale(.98)}.mobile-filter-btn svg{stroke:currentColor}.mobile-filter-btn .filter-badge{position:absolute;top:6px;right:6px;background:var(--green-primary);color:#fff;border-radius:12px;font-size:10px;font-weight:700;padding:2px 6px;min-width:18px;height:18px;display:flex;align-items:center;justify-content:center}.filter-badge{position:absolute;top:-4px;right:-4px;background:var(--green-primary);color:#fff;border-radius:12px;font-size:10px;font-weight:700;padding:2px 6px;min-width:18px;height:18px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #0003}.mobile-filter-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:2000;display:none;opacity:0;transition:opacity .3s ease}.mobile-filter-overlay.active{display:block;opacity:1}.mobile-filter-backdrop{position:absolute;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.mobile-filter-panel{position:absolute;bottom:0;left:0;right:0;background:var(--bg-primary);border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-height:80vh;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1)}.mobile-filter-overlay.active .mobile-filter-panel{transform:translateY(0)}.mobile-filter-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg);border-bottom:1px solid var(--border-default)}.mobile-filter-header h3{font-size:18px;font-weight:600;color:var(--text-primary)}.mobile-filter-close{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:var(--space-sm);display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.mobile-filter-content{flex:1;overflow-y:auto;padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-lg)}.mobile-filter-field{display:flex;flex-direction:column;gap:var(--space-sm)}.mobile-filter-field label{font-size:14px;font-weight:600;color:var(--text-primary)}.mobile-filter-field input,.mobile-filter-field select{width:100%;padding:12px 16px;border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:16px;color:var(--text-secondary);background:var(--bg-primary)}.mobile-filter-actions{display:flex;gap:var(--space-md);padding:var(--space-lg);border-top:1px solid var(--border-default)}.mobile-filter-btn-secondary{flex:1;padding:14px;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:16px;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}.mobile-filter-btn-primary{flex:2;padding:14px;background:var(--action-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:16px;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}@media(max-width:767px){body.mobile-view .modal{padding:0}body.mobile-view .modal-content{width:100%;max-width:100%;height:100vh;max-height:100vh;margin:0;border-radius:0;overflow-y:auto;-webkit-overflow-scrolling:touch}body.mobile-view .modal-content .close{position:fixed;top:var(--space-md);right:var(--space-md);z-index:100;background:#00000080;color:#fff;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}body.mobile-view .recipe-modal-header{flex-direction:column;gap:var(--space-md);padding:var(--space-lg)}body.mobile-view .recipe-modal-actions{display:none!important}body.mobile-view .recipe-modal-content{display:flex;flex-direction:column;gap:var(--space-lg)}body.mobile-view .recipe-top-section{flex-direction:column;gap:var(--space-lg)}body.mobile-view .recipe-photo-section{width:100%}body.mobile-view .recipe-modal-photo{width:100%;height:280px;border-radius:0}body.mobile-view .recipe-nutrition-section{width:100%}body.mobile-view .recipe-details-section{padding:var(--space-lg)}body.mobile-view .section-header{flex-direction:column;align-items:flex-start;gap:var(--space-md)}body.mobile-view .scale-controls{width:100%;justify-content:flex-start;flex-wrap:wrap}body.mobile-view .ingredients-table tbody{display:flex;flex-direction:column;gap:var(--space-sm)}body.mobile-view .ingredient-row{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-md);background:var(--bg-tertiary);border-radius:var(--radius-md);position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent}body.mobile-view .ingredient-row:active{background:var(--bg-hover)}body.mobile-view .ingredient-checkbox-cell,body.mobile-view .ingredient-nutrition-status{display:none!important}body.mobile-view .ingredient-name-cell{display:flex;flex-direction:column;gap:var(--space-xs)}body.mobile-view .ingredient-amount{font-weight:600;color:var(--text-primary);font-size:15px}body.mobile-view .ingredient-unit{color:var(--text-tertiary);font-size:14px}body.mobile-view .ingredient-name{font-size:16px;color:var(--text-primary);font-weight:500}body.mobile-view .ingredient-row:after{content:"›";position:absolute;right:var(--space-md);top:50%;transform:translateY(-50%);font-size:24px;color:var(--text-tertiary)}body.mobile-view .ingredient-row.expanded{background:var(--bg-secondary)}body.mobile-view .ingredient-row.expanded:after{content:"×"}body.mobile-view .ingredient-details-expanded{display:none;margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border-default)}body.mobile-view .ingredient-row.expanded .ingredient-details-expanded{display:block}body.mobile-view .mobile-section-header{font-weight:600;font-size:14px;margin-top:var(--space-md);margin-bottom:var(--space-sm);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.5px}body.mobile-view .mobile-section-header.nutrition-header{background:#5a9a6a1a;color:var(--primary)}body.mobile-view .mobile-section-header.cost-header{background:#eab3081a;color:#d97706}body.mobile-view .mobile-nutrition-section{background:#5a9a6a0d;padding:var(--space-md);border-radius:var(--radius-md);border:1px solid rgba(90,154,106,.2);margin-bottom:var(--space-md)}body.mobile-view .mobile-cost-section{background:#eab3080d;padding:var(--space-sm);border-radius:var(--radius-md);border:1px solid rgba(234,179,8,.2)}body.mobile-view .mobile-data-row{display:flex;justify-content:space-between;padding:var(--space-xs) 0;font-size:14px;gap:var(--space-sm)}body.mobile-view .data-label{color:var(--text-secondary);font-weight:500;flex-shrink:0}body.mobile-view .data-value{color:var(--text-primary);font-weight:600;text-align:right}body.mobile-view .nutrition-values-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xs);margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid rgba(90,154,106,.2)}body.mobile-view .nutrition-note{font-size:12px;color:var(--text-tertiary);font-style:italic;margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid rgba(90,154,106,.2)}body.mobile-view .market-item-card{background:#fff;padding:var(--space-md);border-radius:var(--radius-sm);margin-bottom:var(--space-sm);border:1px solid rgba(234,179,8,.3)}body.mobile-view .market-item-card:last-child{margin-bottom:0}body.mobile-view .market-item-header{font-weight:700;font-size:12px;color:#d97706;text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-sm);padding-bottom:var(--space-xs);border-bottom:1px solid rgba(234,179,8,.3)}body.mobile-view .cost-highlight{color:#d97706;font-weight:700}body.mobile-view .mobile-section-no-data{padding:var(--space-md);text-align:center;color:var(--text-tertiary);font-size:14px;font-style:italic}body.mobile-view .cost-detail-label{color:var(--text-tertiary)}body.mobile-view .cost-detail-value{color:var(--text-primary);font-weight:600;font-family:monospace}body.mobile-view .ingredient-preparation{display:block!important;color:var(--text-tertiary);font-size:14px;font-style:italic}body.mobile-view .ingredient-link,body.mobile-view .sub-recipe-link{display:none!important}body.mobile-view .recipe-modal-header{background:linear-gradient(135deg,var(--primary) 0%,#4a7c59 100%);padding:var(--space-lg);margin:calc(var(--space-lg) * -1) calc(var(--space-lg) * -1) var(--space-lg);color:#fff}body.mobile-view .recipe-modal-title-section h2{color:#fff;font-size:22px;font-weight:700;margin-bottom:var(--space-md);text-shadow:0 1px 2px rgba(0,0,0,.1)}body.mobile-view .recipe-badge{background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}body.mobile-view .recipe-photo-section{margin:0 calc(var(--space-lg) * -1) var(--space-lg)}body.mobile-view .recipe-photo,body.mobile-view .recipe-photo-placeholder{height:280px;border-radius:0}body.mobile-view .modal-section h3{font-size:20px;font-weight:700;margin-bottom:var(--space-md);color:var(--text-primary)}body.mobile-view .ingredients-section{background:var(--bg-primary);padding:var(--space-lg);margin:0 calc(var(--space-lg) * -1)}body.mobile-view .section-header{margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:2px solid var(--border-default)}body.mobile-view .instructions-section{background:var(--bg-tertiary);padding:var(--space-lg);margin:var(--space-lg) calc(var(--space-lg) * -1) 0;border-radius:var(--radius-lg) var(--radius-lg) 0 0}body.mobile-view .instruction-step{background:#fff;padding:var(--space-md);margin-bottom:var(--space-sm);border-radius:var(--radius-md);border-left:3px solid var(--primary);line-height:1.6}body.mobile-view .instruction-step:last-child{margin-bottom:0}body.mobile-view .recipe-cost-summary{background:#eab3081a;border:2px solid rgba(234,179,8,.3);padding:var(--space-lg);border-radius:var(--radius-lg);margin-top:var(--space-lg)}body.mobile-view .cost-summary-row.total{font-size:18px;font-weight:700;color:#d97706;padding-bottom:var(--space-md);border-bottom:2px solid rgba(234,179,8,.3);margin-bottom:var(--space-md)}body.mobile-view .nutrition-facts{background:#5a9a6a1a;border:2px solid rgba(90,154,106,.3);padding:var(--space-lg);border-radius:var(--radius-lg)}body.mobile-view .nutrition-facts h3{color:var(--primary);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:2px solid rgba(90,154,106,.3)}body.mobile-view #modalBody ol,body.mobile-view #modalBody ul{padding-left:var(--space-lg)}body.mobile-view #modalBody li{font-size:15px;line-height:1.7;margin-bottom:var(--space-md)}body.mobile-view .recipe-cost-summary{margin-top:var(--space-xl);padding:var(--space-lg);background:var(--bg-tertiary);border-radius:var(--radius-md)}body.mobile-view .recipe-cost-summary h4{font-size:16px;margin-bottom:var(--space-md)}body.mobile-view .cost-row{display:flex;justify-content:space-between;padding:var(--space-sm) 0;font-size:15px}body.mobile-view .cost-row.total{border-top:2px solid var(--border-default);padding-top:var(--space-md);font-size:18px;font-weight:700}body.mobile-view #conceptBooksView{flex-direction:column;gap:var(--space-xl)}body.mobile-view.mobile-concept-mode #conceptBooksView{display:flex!important}body.mobile-view.mobile-concept-mode #recipeGrid{display:none!important}body.mobile-view .concept-book{background:var(--bg-primary);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 2px 8px #00000014}body.mobile-view .concept-book-header{padding:var(--space-lg);background:var(--green-bg);border-bottom:1px solid var(--border-default);cursor:pointer;-webkit-tap-highlight-color:transparent}body.mobile-view .concept-book-title{font-size:20px;font-weight:600;color:var(--green-text);display:flex;justify-content:space-between;align-items:center}body.mobile-view .concept-book-count{font-size:14px;color:var(--text-tertiary);margin-top:var(--space-xs)}body.mobile-view .concept-book-recipes{display:grid;grid-template-columns:1fr;gap:var(--space-md);padding:var(--space-lg)}body.mobile-view .concept-book.collapsed .concept-book-recipes{display:none}body.mobile-view .recipe-card-hidden{opacity:.3;pointer-events:none;transition:opacity .3s ease-out}body.mobile-view .recipe-card-expanded{box-shadow:0 4px 12px #5a9a6a33;border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:none;transform:scale(1.01);transition:all .3s ease-out}body.mobile-view .recipe-expanded-inline{background:#fff;border:2px solid var(--green-primary);border-top:none;border-radius:0 0 var(--radius-lg) var(--radius-lg);box-shadow:0 4px 12px #5a9a6a33;margin-bottom:var(--space-lg);animation:slideDown .4s ease-out;overflow:hidden}@keyframes slideDown{0%{max-height:0;opacity:0}to{max-height:10000px;opacity:1}}body.mobile-view .inline-header{display:flex;justify-content:flex-end;align-items:center;padding:var(--space-md);background:var(--green-light-bg);border-bottom:2px solid var(--green-primary)}body.mobile-view .inline-close-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#fff;border:2px solid var(--green-primary);border-radius:50%;cursor:pointer;flex-shrink:0;transition:all .2s}body.mobile-view .inline-close-btn:active{background:var(--green-primary);color:#fff}body.mobile-view .inline-content{padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-xl)}body.mobile-view .inline-photo-section{width:100%;border-radius:var(--radius-md);overflow:hidden}body.mobile-view .inline-photo-section img{width:100%;height:auto;display:block}body.mobile-view .inline-meta-section{display:flex;flex-direction:column;gap:var(--space-md)}body.mobile-view .inline-badges{display:flex;gap:var(--space-xs);flex-wrap:wrap}body.mobile-view .inline-timing{display:flex;gap:var(--space-lg);flex-wrap:wrap;font-size:14px}body.mobile-view .inline-timing div{display:flex;gap:var(--space-xs);align-items:center}body.mobile-view .inline-timing span{color:var(--text-secondary)}body.mobile-view .inline-timing strong{font-weight:600;color:var(--text-primary)}body.mobile-view .inline-section{display:flex;flex-direction:column;gap:var(--space-md)}body.mobile-view .inline-section h3{font-size:18px;font-weight:600;color:var(--green-dark);margin:0}body.mobile-view .inline-section-header{display:flex;flex-direction:column;gap:var(--space-md)}body.mobile-view .inline-controls-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);flex-wrap:wrap}body.mobile-view .inline-scale-controls{display:flex;align-items:center;gap:var(--space-sm);background:var(--bg-secondary);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-md)}body.mobile-view .inline-market-select{flex:1;min-width:120px;padding:var(--space-xs) var(--space-sm);border:1px solid var(--border-medium);border-radius:var(--radius-md);background:#fff;color:var(--text-primary);font-size:14px;font-weight:500;cursor:pointer}body.mobile-view .inline-scale-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--border-medium);border-radius:var(--radius-sm);font-size:18px;font-weight:600;cursor:pointer;transition:all .15s}body.mobile-view .inline-scale-btn:active{background:var(--green-primary);color:#fff;border-color:var(--green-primary)}body.mobile-view .inline-scale-value{font-size:16px;font-weight:600;color:var(--text-primary);min-width:32px;text-align:center}body.mobile-view .inline-ingredients-list{display:flex;flex-direction:column;gap:var(--space-sm)}body.mobile-view .inline-ingredient-row{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden;transition:all .2s}body.mobile-view .inline-ingredient-row.expanded{background:#fff;border-color:var(--green-primary)}body.mobile-view .inline-ingredient-main{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);cursor:pointer}body.mobile-view .inline-ingredient-main input[type=checkbox]{width:20px;height:20px;flex-shrink:0}body.mobile-view .inline-ingredient-label{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-xs);flex:1;cursor:pointer}body.mobile-view .inline-ingredient-amount{font-weight:600;color:var(--text-primary)}body.mobile-view .inline-ingredient-unit{color:var(--text-secondary);font-size:14px}body.mobile-view .inline-ingredient-name{color:var(--text-primary);flex:1}body.mobile-view .inline-ingredient-cost{font-weight:600;color:var(--green-dark);flex-shrink:0;font-size:14px}body.mobile-view .inline-ingredient-prep{padding:0 var(--space-md) var(--space-sm) var(--space-md);font-size:13px;color:var(--text-secondary);font-style:italic}body.mobile-view .inline-ingredient-details{max-height:0;overflow:hidden;opacity:0;transition:all .3s ease-out}body.mobile-view .inline-ingredient-row.expanded .inline-ingredient-details{max-height:2000px;opacity:1;padding:var(--space-md);padding-top:0;border-top:1px solid var(--border-light)}body.mobile-view .inline-detail-section{margin-bottom:var(--space-lg)}body.mobile-view .inline-detail-section:last-child{margin-bottom:0}body.mobile-view .inline-detail-header{font-weight:600;font-size:14px;color:var(--green-dark);margin-bottom:var(--space-sm);padding-bottom:var(--space-xs);border-bottom:2px solid var(--green-primary)}body.mobile-view .inline-detail-grid{display:flex;flex-direction:column;gap:var(--space-xs)}body.mobile-view .inline-detail-row{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-md);padding:var(--space-xs) 0;border-bottom:1px solid var(--border-light)}body.mobile-view .inline-detail-row:last-child{border-bottom:none}body.mobile-view .inline-detail-row span:first-child{color:var(--text-secondary);font-size:13px;font-weight:500}body.mobile-view .inline-detail-row span:last-child{color:var(--text-primary);font-size:14px;font-weight:600;text-align:right}body.mobile-view .inline-detail-note{font-size:11px;color:var(--text-tertiary);font-style:italic;margin-top:var(--space-xs)}body.mobile-view .inline-detail-no-data{color:var(--text-tertiary);font-size:13px;padding:var(--space-md);text-align:center;background:var(--bg-tertiary);border-radius:var(--radius-sm);margin-bottom:var(--space-md)}body.mobile-view .inline-market-card{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:var(--space-sm);margin-bottom:var(--space-sm)}body.mobile-view .inline-market-card:last-child{margin-bottom:0}body.mobile-view .inline-market-header{font-weight:600;font-size:12px;color:var(--green-dark);margin-bottom:var(--space-xs);text-transform:uppercase;letter-spacing:.5px}body.mobile-view .inline-cost-summary{background:var(--green-light-bg);border:2px solid var(--green-primary);border-radius:var(--radius-md);padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-md)}body.mobile-view .inline-cost-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md)}body.mobile-view .inline-cost-row:first-child{font-weight:700;font-size:16px;color:var(--green-dark);padding-bottom:var(--space-sm);border-bottom:1px solid var(--green-primary)}body.mobile-view .inline-cost-row:last-child{font-size:14px;color:var(--text-secondary)}body.mobile-view .inline-total-cost{font-size:20px;font-weight:700;color:var(--green-dark)}body.mobile-view .inline-instructions{line-height:1.7;color:var(--text-primary)}body.mobile-view .inline-instructions ol,body.mobile-view .inline-instructions ul{padding-left:var(--space-xl);margin:var(--space-md) 0}body.mobile-view .inline-instructions li{margin-bottom:var(--space-md)}body.mobile-view .inline-instructions li:last-child{margin-bottom:0}body.mobile-view .inline-footer-section{background:var(--bg-tertiary);border-radius:var(--radius-md);padding:var(--space-md)}body.mobile-view .inline-tags{margin-bottom:var(--space-md)}body.mobile-view .inline-tags:last-child{margin-bottom:0}body.mobile-view .inline-tags-label{font-size:13px;color:var(--text-secondary);font-weight:500;margin-bottom:var(--space-xs);display:block}body.mobile-view .inline-tags-list{display:flex;gap:var(--space-xs);flex-wrap:wrap;margin-top:var(--space-xs)}body.mobile-view .inline-source{font-size:14px;padding-top:var(--space-md);border-top:1px solid var(--border-default)}body.mobile-view .inline-source span{color:var(--text-secondary)}body.mobile-view .inline-source strong{font-weight:600;margin-left:var(--space-xs);color:var(--text-primary)}body.mobile-view .inline-back-btn{width:100%;padding:var(--space-md);background:var(--green-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;margin-top:var(--space-md)}body.mobile-view .inline-back-btn:active{background:var(--green-hover);transform:scale(.98)}}.activity-page{max-width:100%;width:100%;margin:0 auto;padding:var(--space-xl)}.activity-header{margin-bottom:var(--space-xl)}.activity-header h2{color:var(--text-primary);font-size:32px;font-weight:700;margin:0 0 var(--space-sm) 0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-lg);margin-bottom:var(--space-xl)}.stat-card{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-lg);text-align:center}.stat-card-wide{grid-column:span 2}.stat-label{font-size:14px;color:var(--text-secondary);margin-bottom:var(--space-sm);font-weight:500}.stat-value{font-size:32px;font-weight:700;color:var(--text-primary)}.stat-card-primary{background:linear-gradient(135deg,var(--primary),var(--primary-dark));border-color:var(--primary)}.stat-value.stat-created{color:var(--success)}.stat-value.stat-updated{color:#3b82f6}.stat-value.stat-deleted{color:var(--error)}.stat-value.stat-imported{color:#8b5cf6}.stat-value.stat-linked{color:#06b6d4}.stat-value.stat-unlinked{color:#f59e0b}.stat-value.stat-calculated{color:#10b981}.last-action-info{text-align:center;padding:var(--space-md);background:var(--bg-tertiary);border-radius:var(--radius-md);color:var(--text-secondary);font-size:14px}.stat-value-small{font-size:18px;font-weight:600;color:var(--text-primary)}.activity-controls{margin-bottom:var(--space-xl)}.activity-filters{display:flex;gap:var(--space-md);flex-wrap:wrap;align-items:center}.filter-select{padding:var(--space-sm) var(--space-md);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-size:14px;min-width:150px}.activity-logs-container{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-lg);min-height:400px;margin-bottom:var(--space-lg)}.activity-table{width:100%;border-collapse:collapse}.activity-table thead{background:var(--bg-primary);border-bottom:2px solid var(--border-default)}.activity-table th{padding:var(--space-md);text-align:left;font-weight:600;color:var(--text-secondary);font-size:13px;text-transform:uppercase;letter-spacing:.5px}.activity-table td{padding:var(--space-md);border-bottom:1px solid var(--border-default);color:var(--text-primary);font-size:14px}.activity-table tbody tr:hover{background:var(--hover-overlay)}.time-cell{color:var(--text-secondary);font-size:13px;white-space:nowrap}.user-cell{font-weight:500}.action-badge{display:inline-block;padding:4px 12px;border-radius:var(--radius-sm);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.action-badge-created{background:#22c55e1a;color:#22c55e}.action-badge-updated{background:#3b82f61a;color:#3b82f6}.action-badge-deleted{background:#ef44441a;color:#ef4444}.action-badge-audited{background:#eab3081a;color:#ca8a04}.btn-details{padding:4px 12px;background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);font-size:12px;cursor:pointer;transition:all .2s}.btn-details:hover{background:var(--hover-overlay);border-color:var(--green-primary)}.activity-pagination{display:flex;justify-content:center;gap:var(--space-md)}.loading,.error,.no-results{text-align:center;padding:var(--space-xl);color:var(--text-secondary)}.error{color:#ef4444}.detail-section{margin-bottom:var(--space-xl)}.detail-section h3{font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:var(--space-md)}.detail-section p{margin:var(--space-sm) 0;color:var(--text-secondary);line-height:1.6}.detail-section pre{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-md);overflow-x:auto;font-size:13px;line-height:1.5;color:var(--text-primary)}@media(max-width:768px){.activity-page{padding:var(--space-md)}.stats-grid{grid-template-columns:1fr}.stat-card-wide{grid-column:span 1}.activity-table{font-size:12px}.activity-table th,.activity-table td{padding:var(--space-sm)}.activity-filters{flex-direction:column;width:100%}.filter-select{width:100%}}.backup-page{padding:var(--space-xl);max-width:1400px;margin:0 auto}.backup-header{margin-bottom:var(--space-xl)}.backup-header h2{font-size:var(--h1);color:var(--text-primary);margin-bottom:var(--space-xs)}.backup-header .subtitle{color:var(--text-tertiary);font-size:var(--body-regular)}.backup-actions{display:flex;align-items:center;gap:var(--space-lg);margin-bottom:var(--space-xl);padding:var(--space-lg);background:linear-gradient(135deg,#5a9a6a14,#4a81580d);border-radius:var(--radius-lg);border-left:4px solid var(--action-primary)}.backup-info{display:flex;align-items:center;gap:var(--space-sm);color:var(--text-secondary);font-size:var(--body-small)}.backup-info svg{flex-shrink:0;color:var(--action-primary)}.backup-list-container{background:#fff;border-radius:var(--radius-lg);border:1px solid var(--border-default);overflow:hidden}.backup-table{width:100%;border-collapse:collapse}.backup-table thead{background:var(--bg-secondary);border-bottom:2px solid var(--border-default)}.backup-table th{padding:var(--space-md);text-align:left;font-weight:600;color:var(--text-primary);font-size:var(--body-small);text-transform:uppercase;letter-spacing:.5px}.backup-table td{padding:var(--space-md);border-bottom:1px solid var(--border-light);color:var(--text-secondary);font-size:var(--body-regular)}.backup-table .text-right{text-align:right}.backup-row:hover{background:var(--bg-secondary)}.backup-row.backup-failed{background:#ef44440d}.backup-row.backup-restored{background:#3b82f60d}.backup-name strong{display:block;color:var(--text-primary);margin-bottom:var(--space-xs)}.backup-notes{font-size:var(--body-small);color:var(--text-tertiary);font-style:italic;margin-top:var(--space-xs)}.backup-reason-badge{display:inline-block;padding:4px 12px;border-radius:var(--radius-full);font-size:var(--body-small);font-weight:500;white-space:nowrap}.backup-reason-badge.pre_mog_import{background:#eab30826;color:#a16207}.backup-reason-badge.manual{background:#3b82f626;color:#1d4ed8}.backup-reason-badge.pre_restore_snapshot{background:#a855f726;color:#6b21a8}.backup-status-badge{display:inline-block;padding:4px 12px;border-radius:var(--radius-full);font-size:var(--body-small);font-weight:500;white-space:nowrap}.backup-status-badge.completed{background:#22c55e26;color:#15803d}.backup-status-badge.failed{background:#ef444426;color:#b91c1c}.backup-status-badge.in_progress{background:#3b82f626;color:#1d4ed8}.backup-restored-info{font-size:var(--body-small);color:var(--text-tertiary);margin-top:var(--space-xs);font-style:italic}.backup-actions-cell{display:flex;gap:var(--space-xs);justify-content:flex-end}.btn-icon{width:32px;height:32px;padding:0;border:1px solid var(--border-default);background:#fff;border-radius:var(--radius-md);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-base) ease-out}.btn-icon:hover{background:var(--bg-secondary);border-color:var(--action-primary)}.btn-icon.btn-restore:hover{background:#3b82f61a;border-color:#3b82f6;color:#3b82f6}.btn-icon.btn-delete:hover{background:#ef44441a;border-color:#ef4444;color:#ef4444}.backup-modal{max-width:600px}.checkbox-group{display:flex;flex-direction:column;gap:var(--space-sm)}.checkbox-group label{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;padding:var(--space-sm);border-radius:var(--radius-md);transition:background var(--transition-base) ease-out}.checkbox-group label:hover{background:var(--bg-secondary)}.checkbox-group input[type=checkbox]{cursor:pointer}.loading-state,.empty-state,.error-state{text-align:center;padding:var(--space-xxl);color:var(--text-tertiary)}.empty-state svg{margin:0 auto var(--space-lg);color:var(--text-tertiary);opacity:.5}.empty-state h3{color:var(--text-primary);margin-bottom:var(--space-sm)}@media(max-width:768px){.backup-page{padding:var(--space-md)}.backup-actions{flex-direction:column;align-items:flex-start}.backup-table{font-size:12px}.backup-table th,.backup-table td{padding:var(--space-sm)}}.menu-analysis-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.menu-analysis-container{background:#f0e6d2;width:100%;height:100%;max-width:100%;max-height:100%;border-radius:12px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0000004d}.menu-analysis-header{display:flex;justify-content:space-between;align-items:center;padding:24px 32px;border-bottom:2px solid #5A9A6A;background:#f0e6d2}.menu-analysis-header .header-left{display:flex;align-items:center;gap:24px}.menu-analysis-header h2{margin:0;font-size:28px;font-weight:700;color:#5a9a6a}.week-navigation{display:flex;align-items:center;gap:12px}.week-navigation .week-nav-btn{background:#fff;border:2px solid #5A9A6A;color:#5a9a6a;padding:8px 16px;border-radius:8px;font-weight:700;font-size:18px;cursor:pointer;transition:all .2s}.week-navigation .week-nav-btn:hover{background:#5a9a6a;color:#fff;transform:scale(1.05)}.week-display{font-size:15px;color:#3a5a42;min-width:160px;text-align:center;font-weight:600}.btn-close-analysis{width:40px;height:40px;border:none;background:transparent;color:#5a9a6a;font-size:32px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s;font-weight:700}.btn-close-analysis:hover{background:#5a9a6a26;color:#3a5a42;transform:scale(1.1)}.week-glance-section{background:#f0e6d2;padding:24px 32px;border-bottom:2px solid #5A9A6A}.meal-period-toggles{display:flex;gap:12px;margin-bottom:20px;justify-content:center}.meal-period-toggle{padding:12px 32px;background:#fff;border:2px solid #5A9A6A;border-radius:8px;font-size:16px;font-weight:600;color:#5a9a6a;cursor:pointer;transition:all .2s;text-transform:uppercase;letter-spacing:.5px}.meal-period-toggle:hover{background:#5a9a6a1a;transform:translateY(-2px);box-shadow:0 4px 12px #5a9a6a33}.meal-period-toggle.active{background:#5a9a6a;color:#fff}.week-glance-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.week-glance-day{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #5a9a6a26;border:2px solid #5A9A6A;transition:transform .2s,box-shadow .2s}.week-glance-day:hover{transform:translateY(-2px);box-shadow:0 4px 12px #5a9a6a40}.week-glance-day-header{background:linear-gradient(135deg,#5a9a6a,#4a8a5a);padding:16px;font-weight:700;font-size:16px;color:#fff;text-align:center;text-transform:uppercase;letter-spacing:.5px}.week-glance-recipes{padding:16px;display:flex;flex-direction:column;gap:12px;min-height:100px}.week-glance-recipe{background:#f0e6d2;padding:12px;border-radius:8px;border:1px solid #5A9A6A}.week-glance-recipe-name{font-weight:600;color:#3a5a42;font-size:14px;margin-bottom:6px;line-height:1.4}.week-glance-recipe-qty{font-size:12px;color:var(--text-secondary);font-weight:500}.week-glance-empty{font-size:13px;color:var(--text-muted);font-style:italic;text-align:center;padding:20px 0}.menu-analysis-body{flex:1;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:24px;background:#f0e6d2}.analysis-calendar{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #5a9a6a26}.analysis-insights-section{display:flex;flex-direction:column;gap:24px}.analysis-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.analysis-summary .summary-card{background:#fff;padding:20px;border-radius:12px;text-align:center;border:2px solid #5A9A6A;transition:transform .2s,box-shadow .2s;box-shadow:0 2px 8px #5a9a6a26}.analysis-summary .summary-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #5a9a6a40}.analysis-summary .summary-label{font-size:12px;color:var(--text-tertiary);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.analysis-summary .summary-value{font-size:28px;font-weight:700;color:var(--text-primary)}.analysis-summary .summary-value.cost{color:var(--green-text)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;background:#5a9a6a;border:2px solid #5A9A6A;border-radius:8px;overflow:hidden}.calendar-day{background:#fff;min-height:280px;display:flex;flex-direction:column}.calendar-day-header{background:linear-gradient(135deg,#5a9a6a,#4a8a5a);padding:12px;font-weight:700;font-size:14px;color:#fff;text-align:center;text-transform:uppercase;letter-spacing:.5px}.calendar-meal-period{padding:10px;border-bottom:1px solid #F0E6D2;flex:1;display:flex;flex-direction:column}.calendar-meal-period:last-child{border-bottom:none}.meal-period-label{font-size:11px;font-weight:700;color:#5a9a6a;text-transform:uppercase;margin-bottom:6px;letter-spacing:.8px}.meal-period-recipes{display:flex;flex-direction:column;gap:6px}.calendar-recipe-item{background:#f0e6d2;padding:8px;border-radius:6px;font-size:12px;border:1px solid #5A9A6A;margin-bottom:6px}.calendar-recipe-item:last-child{margin-bottom:0}.calendar-recipe-item .recipe-name{font-weight:600;color:#3a5a42;margin-bottom:4px;line-height:1.3}.calendar-recipe-item .recipe-stats{display:flex;justify-content:space-between;font-size:11px;color:var(--text-secondary)}.calendar-recipe-item .recipe-cost{font-weight:700;color:#5a9a6a}.meal-period-empty{font-size:11px;color:var(--text-muted);font-style:italic;padding:4px 0}.analysis-insights{display:flex;flex-direction:column;gap:16px}.analysis-insights h3{margin:0;font-size:24px;font-weight:700;color:#5a9a6a}.analysis-insights .insights-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.analysis-insights .insight-card{padding:20px;background:#fff;border-radius:12px;border:2px solid #5A9A6A;box-shadow:0 2px 8px #5a9a6a26;transition:transform .2s,box-shadow .2s}.analysis-insights .insight-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #5a9a6a40}.analysis-insights .insight-header{margin-bottom:8px}.analysis-insights .insight-title{font-size:14px;font-weight:600;color:var(--text-primary)}.analysis-insights .insight-subtitle{font-size:12px;color:var(--text-tertiary);margin-bottom:12px}.analysis-insights .insight-items{display:flex;flex-direction:column;gap:8px}.analysis-insights .insight-item{display:flex;justify-content:space-between;align-items:center;padding:8px;background:#fff;border-radius:4px;font-size:13px}.analysis-insights .insight-item-name{flex:1;color:var(--text-primary)}.analysis-insights .insight-item-value{font-weight:600;color:var(--text-primary)}.analysis-insights .insight-item-value.increase{color:#ef4444}.analysis-insights .insight-item-value.decrease{color:#22c55e}.analysis-insights .no-data{padding:12px;text-align:center;color:var(--text-tertiary);font-size:12px;font-style:italic}.analysis-ingredient-changes{display:flex;flex-direction:column;gap:16px}.analysis-ingredient-changes h3{margin:0;font-size:24px;font-weight:700;color:#5a9a6a}.analysis-ingredient-changes .subtitle{margin:0 0 16px;font-size:14px;color:#3a5a42;font-weight:500}.changes-table-container{overflow-x:auto;border-radius:12px;border:2px solid #5A9A6A;box-shadow:0 2px 8px #5a9a6a26;background:#fff}.changes-table{width:100%;border-collapse:collapse;background:#fff}.changes-table thead{background:linear-gradient(135deg,#5a9a6a,#4a8a5a)}.changes-table th{padding:14px 16px;text-align:left;font-size:12px;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.8px;border-bottom:none}.changes-table td{padding:12px 16px;font-size:13px;color:var(--text-primary);border-bottom:1px solid var(--border-light)}.changes-table tbody tr:hover{background:#f0e6d2}.changes-table tbody tr:last-child td{border-bottom:none}.changes-table .increase{color:#ef4444;font-weight:600}.changes-table .decrease{color:#22c55e;font-weight:600}.changes-table .neutral{color:var(--text-tertiary)}.no-plan-message,.no-insights{padding:60px 20px;text-align:center;color:var(--text-tertiary);font-size:14px}.loading-state{padding:60px 20px;text-align:center;color:#5a9a6a;font-size:16px;font-weight:600;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@media(max-width:1400px){.analysis-summary{grid-template-columns:repeat(2,1fr)}}@media(max-width:1024px){.week-glance-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.menu-analysis-header{padding:16px}.menu-analysis-header h2{font-size:18px}.week-navigation{gap:8px}.week-glance-section{padding:16px}.meal-period-toggles{flex-wrap:wrap;gap:8px}.meal-period-toggle{padding:10px 20px;font-size:14px}.week-glance-grid{grid-template-columns:1fr;gap:12px}.menu-analysis-body{padding:16px;gap:16px}.calendar-grid,.analysis-summary,.analysis-insights .insights-grid{grid-template-columns:1fr}}.menu-analysis-container.simple-cost-view{max-width:900px;max-height:90vh}.cost-breakdown-container{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #5a9a6a26}.cost-breakdown-grid{display:flex;flex-direction:column;gap:24px}.cost-day-section{border:2px solid #5A9A6A;border-radius:12px;overflow:hidden}.cost-day-header{background:#5a9a6a;color:#fff;padding:12px 16px;font-weight:700;font-size:16px}.cost-meal-period{padding:16px;border-bottom:1px solid #e0e0e0}.cost-meal-period:last-child{border-bottom:none}.cost-meal-label{font-weight:600;color:#3a5a42;font-size:14px;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.cost-participating-students{font-size:12px;color:#666;margin-bottom:12px;font-weight:500}.cost-section-group{margin-bottom:16px;padding:12px;background:#fafafa;border-radius:8px;border-left:3px solid #5A9A6A}.cost-section-group:last-child{margin-bottom:0}.cost-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid #e0e0e0}.cost-section-label{font-weight:700;color:#3a5a42;font-size:13px;text-transform:uppercase;letter-spacing:.5px}.cost-section-rule{font-size:11px;color:#888;font-style:italic;background:#eee;padding:2px 8px;border-radius:10px}.cost-recipes-list{display:flex;flex-direction:column;gap:6px}.cost-recipe-row{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;background:#fff;border-radius:6px;border:1px solid #e8e8e8}.cost-recipe-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.cost-recipe-name{font-size:13px;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cost-recipe-meta{font-size:11px;color:#888}.cost-recipe-projected{display:flex;flex-direction:column;align-items:flex-end;gap:2px;margin-left:12px;flex-shrink:0}.cost-projected-servings{font-size:11px;color:#666}.cost-projected-total{font-weight:700;color:#5a9a6a;font-size:14px}.cost-recipe-price{font-weight:700;color:#5a9a6a;font-size:14px;white-space:nowrap;margin-left:16px}.cost-recipe-cost{display:flex;align-items:center;margin-left:12px;flex-shrink:0}.cost-per-serving{font-weight:700;color:#5a9a6a;font-size:15px;white-space:nowrap}.cost-section-subtotal{margin-top:10px;padding-top:8px;border-top:1px dashed #ddd;text-align:right;font-size:12px;color:#666}.cost-section-subtotal strong{color:#3a5a42}.cost-section-total{margin-top:6px;text-align:right;font-size:12px;color:#666}.cost-meal-total{margin-top:12px;padding-top:10px;border-top:2px solid #5A9A6A;text-align:right;font-size:14px;color:#333}.cost-meal-total strong{color:#3a5a42;font-size:16px}.cost-period-summary{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:12px;border-top:2px solid #5A9A6A}.cost-period-total{font-size:14px;color:#333}.cost-period-total strong{color:#3a5a42;font-size:16px}.cost-per-student{font-size:14px;color:#333;background:#e8f5e9;padding:6px 12px;border-radius:6px}.cost-per-student strong{color:#2e7d32;font-size:16px}.cost-grand-total-section{margin-top:24px;padding:20px;background:#5a9a6a;border-radius:12px;color:#fff}.cost-summary-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;font-size:15px}.cost-summary-row.grand-total{border-top:2px solid rgba(255,255,255,.3);margin-top:12px;padding-top:16px;font-size:18px;font-weight:700}@media(max-width:768px){.menu-analysis-container.simple-cost-view{max-width:100%;max-height:100%;border-radius:0}.cost-breakdown-container{padding:16px}.cost-section-group{padding:10px}.cost-recipe-row{flex-direction:row;align-items:center;gap:8px;padding:8px}.cost-recipe-info{min-width:0}.cost-recipe-name{font-size:12px}.cost-recipe-meta{font-size:10px}.cost-recipe-projected{margin-left:8px}.cost-projected-total{font-size:13px}.cost-period-summary{flex-direction:column;gap:8px;align-items:flex-end}.cost-recipe-price{margin-left:0}}.cost-breakdown-table-view{display:flex;flex-direction:column;gap:24px}.cost-day-block{border:2px solid #5A9A6A;border-radius:12px;overflow:hidden}.cost-day-title{background:#5a9a6a;color:#fff;padding:12px 16px;font-weight:700;font-size:16px;text-transform:uppercase;letter-spacing:.5px}.cost-meal-block{padding:16px;border-bottom:1px solid #e0e0e0}.cost-meal-block:last-child{border-bottom:none}.cost-meal-title{font-weight:600;color:#3a5a42;font-size:14px;margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px}.cost-table{width:100%;border-collapse:collapse;margin-bottom:12px;font-size:14px}.cost-table thead th{background:#f5f5f5;padding:10px 12px;text-align:left;font-weight:600;color:#3a5a42;border-bottom:2px solid #5A9A6A;font-size:12px;text-transform:uppercase;letter-spacing:.5px}.cost-table thead th:last-child{text-align:right;width:100px}.cost-table tbody td{padding:10px 12px;border-bottom:1px solid #eee;vertical-align:middle}.cost-table tbody tr:last-child td{border-bottom:none}.cost-table .section-cell{font-weight:600;color:#5a9a6a;background:#f9f9f9;border-right:2px solid #5A9A6A;width:100px;text-transform:uppercase;font-size:11px;letter-spacing:.5px}.cost-table .recipe-cell{color:#333}.cost-table .cost-cell{text-align:right;font-weight:700;color:#5a9a6a;font-size:15px}.cost-meal-summary{text-align:right;padding-top:10px;border-top:2px solid #5A9A6A;font-size:14px;color:#333}.cost-meal-summary strong{color:#3a5a42;font-size:16px}@media(max-width:768px){.cost-table{font-size:12px}.cost-table thead th,.cost-table tbody td{padding:8px}.cost-table .section-cell{font-size:10px;width:80px}.cost-table .cost-cell{font-size:13px}.cost-meal-summary strong{font-size:14px}}#addAccountBtn{font-size:18px;font-weight:600;color:var(--green-primary);width:36px;height:36px}#addAccountBtn:hover{background:var(--green-bg);color:var(--green-hover);border-color:var(--green-primary)}.stats-detail-row{background:var(--bg-secondary);transition:all var(--transition-fast)}.stats-detail-row.hidden{display:none}.member-stats-detail{padding:var(--space-lg)}.stats-grid-small{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-md)}.stat-item{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm);background:var(--bg-primary);border-radius:var(--radius-sm);border:1px solid var(--border-light);transition:all var(--transition-fast)}.stat-item:hover{border-color:var(--primary);box-shadow:0 2px 8px #0000000d}.stat-item-wide{grid-column:span 2}.stat-label-small{font-size:12px;color:var(--text-secondary);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.stat-value-small{font-size:20px;font-weight:700;color:var(--text-primary)}.stat-value-small.stat-total{color:var(--primary)}.stat-value-small.stat-created{color:var(--success)}.stat-value-small.stat-updated{color:#3b82f6}.stat-value-small.stat-deleted{color:var(--error)}.stat-value-small.stat-imported{color:#8b5cf6}.stat-value-small.stat-linked{color:#06b6d4}.stat-value-small.stat-unlinked{color:#f59e0b}.stat-value-small.stat-calculated{color:#10b981}@media(max-width:768px){.stats-grid-small{grid-template-columns:1fr 1fr}.stat-item-wide{grid-column:span 2}}.confidence-badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:600;white-space:nowrap}.confidence-badge.confidence-high{background:#dcfce7;color:#166534;border:1px solid #86efac}.confidence-badge.confidence-medium{background:#fef3c7;color:#92400e;border:1px solid #fde047}.confidence-badge.confidence-low{background:#f3f4f6;color:#6b7280;border:1px solid #d1d5db}.usda-ingredient-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.usda-accept-btn:hover:not(:disabled){background:#2563eb;transform:scale(1.02)}.usda-change-btn:hover:not(:disabled){background:#eff6ff}.usda-skip-btn:hover:not(:disabled){background:#f1f5f9}.usda-search-result:hover{border-color:#3b82f6;background:#f8fafc;transform:translate(4px)}#usda-search-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}#usda-close-btn:hover{background:#f1f5f9;border-color:#94a3b8}#usda-save-btn:hover:not(:disabled){background:#2563eb;transform:translateY(-1px);box-shadow:0 4px 8px #3b82f633}#usda-save-btn:disabled{opacity:.6;cursor:not-allowed}#usda-search-cancel-btn:hover{background:#f1f5f9;border-color:#94a3b8}#usda-search-skip-btn:hover{background:#fef3c7;border-color:#fde047;color:#92400e}.vendors-page{padding:24px}.vendors-header{margin-bottom:24px}.vendors-header h2{font-size:28px;font-weight:700;color:var(--text-primary);margin:0 0 4px}.vendors-header .subtitle{color:var(--text-secondary);font-size:14px;margin:0}.vendors-stats{margin-bottom:24px}.vendors-stats .stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}.vendors-stats .stat-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;padding:16px;text-align:center}.vendors-stats .stat-card.local-stat{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-color:#6ee7b7}.vendors-stats .stat-value{font-size:28px;font-weight:700;color:var(--text-primary)}.vendors-stats .stat-label{font-size:12px;color:var(--text-secondary);margin-top:4px}.vendors-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px}.vendor-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;padding:20px;cursor:pointer;transition:all .2s;position:relative}.vendor-card:hover{border-color:var(--primary);box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.vendor-card-logo{display:flex;justify-content:center;align-items:center;height:80px;margin-bottom:12px}.vendor-card-logo img{max-width:100%;max-height:80px;object-fit:contain;border-radius:4px}.vendor-logo-placeholder{width:80px;height:80px;background:var(--bg-secondary);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.vendor-card-info{text-align:center}.vendor-card-info h3{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.vendor-card-badges{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.vendor-item-count{background:var(--primary);color:#fff;font-size:11px;padding:3px 8px;border-radius:12px;font-weight:500}.vendor-item-count-badge{position:absolute;top:10px;left:10px;background:var(--primary);color:#fff;font-size:11px;padding:4px 10px;border-radius:12px;font-weight:600;z-index:1}.vendor-markets{background:var(--bg-secondary);color:var(--text-secondary);font-size:11px;padding:3px 8px;border-radius:12px}.vendor-edit-btn{position:absolute;top:12px;right:12px;width:32px;height:32px;border:none;background:var(--bg-secondary);border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);opacity:0;transition:all .2s}.vendor-card:hover .vendor-edit-btn{opacity:1}.vendor-edit-btn:hover{background:var(--primary);color:#fff}.add-vendor-card{display:flex;flex-direction:column;align-items:center;justify-content:center;border-style:dashed;color:var(--text-muted);min-height:180px}.add-vendor-card:hover{border-color:var(--primary);color:var(--primary)}.add-vendor-icon{margin-bottom:8px}.add-vendor-card span{font-size:14px;font-weight:500}.vendor-detail-view{padding:0}.vendor-detail-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;background:var(--card-bg);border-bottom:1px solid var(--border-color);margin-bottom:16px}.vendor-detail-title{display:flex;align-items:center;gap:16px}.vendor-detail-logo{width:60px;height:60px;object-fit:contain;border-radius:8px}.vendor-detail-logo-placeholder{width:60px;height:60px;background:var(--bg-secondary);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.vendor-detail-title h2{font-size:24px;font-weight:700;margin:0}.vendor-description{font-size:14px;color:var(--text-secondary);margin:4px 0 0}.vendor-detail-controls{display:flex;flex-wrap:wrap;gap:12px;padding:0 24px;margin-bottom:16px;align-items:center}.vendor-detail-filters{display:flex;gap:12px;flex:1}.vendor-detail-filters select,.vendor-detail-filters input{padding:8px 12px;border:1px solid var(--border-color);border-radius:6px;font-size:14px;min-width:150px}.vendor-detail-filters input{flex:1;max-width:300px}.vendor-detail-actions{display:flex;gap:8px}.bulk-actions-bar{display:flex;align-items:center;gap:12px;padding:12px 24px;background:var(--bg-secondary);border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);margin-bottom:16px}#selectedCount{font-weight:500;color:var(--text-primary)}.bulk-move-select{padding:6px 10px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);font-size:13px;cursor:pointer;min-width:160px}.bulk-move-select:focus{outline:none;border-color:var(--accent-color, #3b82f6)}.vendor-items-table-container{padding:0 24px;overflow-x:auto}.vendor-items-table{width:100%;border-collapse:collapse;font-size:14px}.vendor-items-table th,.vendor-items-table td{padding:12px;text-align:left;border-bottom:1px solid var(--border-color)}.vendor-items-table th{background:var(--bg-secondary);font-weight:600;color:var(--text-secondary);font-size:12px;text-transform:uppercase;letter-spacing:.5px;position:sticky;top:0}.vendor-items-table .checkbox-col{width:40px}.vendor-items-table .local-col{width:60px;text-align:center}.vendor-items-table .item-name-cell{font-weight:500;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vendor-items-table tbody tr:hover{background:var(--bg-secondary)}.local-toggle{width:36px;height:36px;border:none;background:transparent;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-muted);transition:all .2s}.local-toggle:hover{background:var(--bg-secondary);color:#16a34a}.local-toggle.is-local{color:#16a34a;background:#dcfce7}.local-toggle.is-local:hover{background:#bbf7d0}.vendor-modal .modal-content,.vendor-modal-content{max-width:500px}.vendor-form{display:flex;flex-direction:column;gap:20px}.vendor-form .form-group{display:flex;flex-direction:column;gap:6px}.vendor-form label{font-size:14px;font-weight:500;color:var(--text-primary)}.vendor-form input[type=text],.vendor-form textarea{padding:10px 12px;border:1px solid var(--border-color);border-radius:6px;font-size:14px}.vendor-form textarea{resize:vertical;min-height:80px}.logo-upload-area{border:2px dashed var(--border-color);border-radius:8px;padding:24px;text-align:center;cursor:pointer;transition:all .2s}.logo-upload-area:hover,.logo-upload-area.dragover{border-color:var(--primary);background:var(--bg-secondary)}.logo-upload-placeholder{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text-muted)}.logo-upload-placeholder span{font-size:14px}.logo-preview{display:flex;flex-direction:column;align-items:center;gap:12px}.logo-preview img{max-width:120px;max-height:120px;border-radius:8px}.btn-remove-logo{background:#fee2e2;color:#dc2626;border:none;padding:6px 12px;border-radius:4px;font-size:12px;cursor:pointer}.btn-remove-logo:hover{background:#fecaca}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer}.checkbox-label input{width:18px;height:18px}.modal-footer{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-top:1px solid var(--border-color);gap:12px}.modal-footer-right{display:flex;gap:8px}.btn-danger{background:#fee2e2;color:#dc2626;border:1px solid #fecaca;padding:8px 16px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer}.btn-danger:hover{background:#fecaca}.vendor-import-modal .modal-content{max-width:900px;max-height:90vh}.vendor-import-modal-content{max-width:900px}.import-preview-header{margin-bottom:16px}.import-preview-header h3{margin:0 0 8px;font-size:16px}.import-summary{display:flex;gap:12px}.import-stat{padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.import-stat.new{background:#dbeafe;color:#1d4ed8}.import-stat.update{background:#fef3c7;color:#92400e}.import-stat.unchanged{background:var(--bg-secondary);color:var(--text-secondary)}.import-preview-table-container{max-height:400px;overflow-y:auto;border:1px solid var(--border-color);border-radius:8px}.import-preview-table{width:100%;border-collapse:collapse;font-size:13px}.import-preview-table th,.import-preview-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border-color)}.import-preview-table th{background:var(--bg-secondary);position:sticky;top:0;font-weight:600;font-size:11px;text-transform:uppercase}.import-row.new{background:#eff6ff}.import-row.update{background:#fffbeb}.import-row.unchanged{opacity:.6}.status-badge{padding:3px 8px;border-radius:10px;font-size:11px;font-weight:500;text-transform:capitalize}.status-badge.new{background:#dbeafe;color:#1d4ed8}.status-badge.update{background:#fef3c7;color:#92400e}.status-badge.unchanged{background:var(--bg-secondary);color:var(--text-secondary)}.mog-data-table .vendor-cell{min-width:150px}.vendor-select{padding:6px 10px;border:1px solid var(--border-color);border-radius:4px;font-size:13px;background:#fff;cursor:pointer;max-width:140px}.vendor-select:hover{border-color:var(--primary)}.mog-data-table .local-col{width:50px;text-align:center}.summary-card.local-spend{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-color:#6ee7b7}.summary-detail{font-size:11px;color:var(--text-secondary);margin-top:4px}@media(max-width:768px){.vendors-grid{grid-template-columns:repeat(2,1fr)}.vendor-detail-controls{flex-direction:column;align-items:stretch}.vendor-detail-filters{flex-direction:column}.vendor-detail-filters input{max-width:100%}}.mog-bulk-actions{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;margin-bottom:12px}#mogSelectedCount{font-weight:600;color:#1d4ed8;min-width:100px}.mog-bulk-actions select{padding:6px 10px;border:1px solid #bfdbfe;border-radius:4px;font-size:13px;background:#fff;min-width:150px}.btn-sm{padding:6px 12px;font-size:12px}.mog-selection-helper{display:flex;align-items:center;padding:12px 16px;background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;margin-bottom:12px;font-size:14px;color:#0369a1}.mog-selection-helper button{margin-left:8px;color:#0284c7;text-decoration:underline;background:none;border:none;cursor:pointer;font-weight:600;font-size:14px}.mog-selection-helper button:hover{color:#0369a1}#selectAllFilteredBtn{background:#0284c7;color:#fff;border:none;padding:6px 12px;border-radius:4px;font-weight:500;cursor:pointer;font-size:12px}#selectAllFilteredBtn:hover{background:#0369a1}.mog-data-table.mog-compact{font-size:13px}.mog-data-table.mog-compact th,.mog-data-table.mog-compact td{padding:8px 10px;white-space:nowrap}.mog-data-table.mog-compact .checkbox-col{width:36px;text-align:center}.mog-data-table.mog-compact .item-name-col{max-width:200px;min-width:150px}.mog-data-table.mog-compact .item-name-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.mog-data-table.mog-compact .item-code{display:block;font-size:11px;color:var(--text-muted);margin-top:2px}.mog-data-table.mog-compact .brand-col{max-width:100px;overflow:hidden;text-overflow:ellipsis}.mog-data-table.mog-compact .pack-col{width:80px;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mog-data-table.mog-compact .market-col{width:100px;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mog-data-table.mog-compact .cost-col{text-align:right;font-family:monospace;width:70px}.mog-data-table.mog-compact .per-unit-col{text-align:right;font-family:monospace;font-size:11px;width:90px;color:var(--text-secondary)}.mog-data-table.mog-compact .vendor-cell{width:120px}.mog-data-table.mog-compact .local-col{width:40px;text-align:center}.mog-data-table.mog-compact .actions-col{width:70px}.vendor-select-compact{padding:4px 6px;border:1px solid var(--border-color);border-radius:4px;font-size:12px;background:#fff;width:100%;max-width:110px;cursor:pointer}.vendor-select-compact:hover{border-color:var(--primary)}.mog-data-table.mog-compact .local-toggle{width:28px;height:28px;padding:0}.mog-data-table.mog-compact .btn-edit-mog,.mog-data-table.mog-compact .btn-delete-mog{width:28px;height:28px;padding:0;display:inline-flex;align-items:center;justify-content:center}.mog-data-table.mog-compact tbody tr.selected{background:#eff6ff}.mog-data-table.mog-compact tbody tr:hover{background:var(--bg-secondary)}.mog-data-table.mog-compact tbody tr.selected:hover{background:#dbeafe}.mog-edit-modal .modal-content,.mog-edit-modal-content{max-width:600px}.mog-edit-form{display:flex;flex-direction:column;gap:16px}.mog-edit-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.mog-edit-form .form-group{display:flex;flex-direction:column;gap:4px}.mog-edit-form label{font-size:13px;font-weight:500;color:var(--text-secondary)}.mog-edit-form input,.mog-edit-form select{padding:8px 10px;border:1px solid var(--border-color);border-radius:6px;font-size:14px}.mog-edit-form input:focus,.mog-edit-form select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #3b82f61a}@media(max-width:600px){.mog-edit-form .form-row{grid-template-columns:1fr}}.menu-averages-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.menu-averages-container{background:#f0e6d2;width:100%;height:100%;max-width:1200px;max-height:90vh;border-radius:12px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0000004d}.menu-averages-container .menu-averages-header{display:flex;justify-content:space-between;align-items:center;padding:24px 32px;border-bottom:2px solid #5A9A6A;background:#f0e6d2}.menu-averages-container .menu-averages-header .header-left{flex:1}.menu-averages-container .menu-averages-header h2{margin:0 0 8px;font-size:28px;color:#3a5a42;font-weight:700}.menu-averages-container .menu-averages-header .subtitle{margin:0;font-size:14px;color:#5a9a6a;font-weight:400}.menu-averages-body{flex:1;overflow-y:auto;padding:24px;background:#fff}.market-info{margin-bottom:24px;display:flex;align-items:center;gap:12px;padding:16px;background:#f9f6f0;border-radius:8px;border:1px solid #E5DCC8}.market-info .info-label{font-weight:600;color:#3a5a42;font-size:14px}.market-info .info-value{padding:8px 16px;background:#5a9a6a;color:#fff;border-radius:6px;font-size:14px;font-weight:600}.averages-content{display:flex;flex-direction:column;gap:32px}.loading-state{text-align:center;padding:60px 20px;color:#666;font-size:16px}.no-data-message{text-align:center;padding:60px 20px;color:#666;font-size:16px;background:#f9f6f0;border-radius:8px;border:2px dashed #E5DCC8}.averages-analysis{display:flex;flex-direction:column;gap:32px}.summary-section h3,.alternatives-section h3{margin:0 0 16px;font-size:20px;color:#3a5a42;font-weight:700;padding-bottom:12px;border-bottom:2px solid #5A9A6A}.section-description{margin:0 0 20px;color:#666;font-size:14px;line-height:1.6}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.summary-card{background:#fff;border:2px solid #5A9A6A;border-radius:8px;overflow:hidden}.summary-card-header{background:#5a9a6a;color:#fff;padding:12px 16px;font-weight:700;font-size:14px;text-transform:uppercase;letter-spacing:.5px}.summary-card-body{padding:16px;display:flex;flex-direction:column;gap:12px}.summary-stat{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.summary-stat.highlight{background:#f9f6f0;padding:12px;border-radius:6px;margin:4px 0}.stat-label{font-size:13px;color:#666;font-weight:500}.stat-value{font-size:16px;color:#3a5a42;font-weight:700}.summary-stat.highlight .stat-value{font-size:20px;color:#5a9a6a}.alternatives-section{margin-top:8px}.alternatives-card{background:#fff;border:2px solid #E5DCC8;border-radius:8px;overflow:hidden;margin-bottom:20px}.alternatives-header{background:#f9f6f0;padding:16px;display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid #E5DCC8}.alternatives-header h4{margin:0;font-size:16px;color:#3a5a42;font-weight:700}.current-avg{font-size:14px;color:#5a9a6a;font-weight:600;background:#fff;padding:6px 12px;border-radius:4px;border:1px solid #5A9A6A}.alternatives-table{width:100%;border-collapse:collapse}.alternatives-table thead th{background:#f9f6f0;padding:12px;text-align:left;font-weight:600;color:#3a5a42;border-bottom:2px solid #E5DCC8;font-size:13px;text-transform:uppercase;letter-spacing:.3px}.alternatives-table tbody td{padding:12px;border-bottom:1px solid #F0F0F0;vertical-align:middle}.alternatives-table tbody tr:hover{background:#fafafa}.alternatives-table tbody tr.in-menu{background:#f0f8f4}.alternatives-table tbody tr.in-menu:hover{background:#e8f5ee}.alternatives-table .recipe-name{color:#333;font-size:14px;font-weight:500}.alternatives-table .cost-value{font-weight:700;color:#5a9a6a;font-size:15px}.alternatives-table .savings{font-weight:600;font-size:14px}.alternatives-table .savings.positive{color:#22c55e}.alternatives-table .savings.negative{color:#ef4444}.alternatives-table .status{text-align:center}.badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.badge.in-menu{background:#5a9a6a;color:#fff}.badge.available{background:#e5dcc8;color:#3a5a42}.savings-summary{background:linear-gradient(135deg,#f0f8f4,#e8f5ee);border:2px solid #5A9A6A;border-radius:12px;padding:32px;display:flex;align-items:center;gap:24px;box-shadow:0 4px 12px #5a9a6a26}.savings-icon{font-size:48px;flex-shrink:0}.savings-content{flex:1}.savings-content h3{margin:0 0 12px;font-size:22px;color:#3a5a42;font-weight:700;border:none;padding:0}.savings-content p{margin:0 0 16px;color:#666;font-size:14px;line-height:1.6}.savings-amount{font-size:36px;font-weight:800;color:#5a9a6a;margin:16px 0}.savings-note{font-size:12px;color:#999;font-style:italic;margin-top:12px!important}.recipe-name-link{cursor:pointer;color:inherit;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:2px;transition:color .15s ease,text-decoration-color .15s ease}.recipe-name-link:hover{color:#2563eb;text-decoration-color:#2563eb}@media(max-width:768px){.menu-averages-container{max-width:100%;max-height:100%;border-radius:0}.menu-averages-container .menu-averages-header{padding:16px}.menu-averages-container .menu-averages-header h2{font-size:20px}.menu-averages-body{padding:16px}.summary-grid{grid-template-columns:1fr}.market-info{flex-direction:column;align-items:stretch}.market-info .info-value{width:100%}.alternatives-table{font-size:13px}.alternatives-table thead th,.alternatives-table tbody td{padding:8px}.savings-summary{flex-direction:column;text-align:center;padding:24px 16px}.savings-amount{font-size:28px}}.menu-averages-page{padding:24px;max-width:1800px;margin:0 auto}.menu-averages-header{margin-bottom:32px;padding-bottom:var(--space-lg);border-bottom:1px solid var(--border-light)}.menu-averages-header h1{margin:0 0 4px;font-size:28px;color:var(--text-primary);font-weight:700}.menu-averages-header .subtitle{margin:0;font-size:14px;color:var(--text-secondary)}.market-selector-section{margin-bottom:32px}.market-selector-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a}.market-selector-card label{display:block;font-size:14px;font-weight:600;color:#555;margin-bottom:8px}.market-select{width:100%;padding:12px;border:1px solid #ddd;border-radius:8px;font-size:16px;background:#fff;cursor:pointer}.market-select:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.meal-plans-section,.analytics-dashboard,.optimization-section,.detailed-analysis-section{background:#fff;border-radius:12px;padding:24px;margin-bottom:32px;box-shadow:0 2px 8px #0000001a}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #ecf0f1}.section-header h2{margin:0;font-size:24px;color:#2c3e50;font-weight:700}.section-header .subtitle{margin:4px 0 0;font-size:14px;color:#7f8c8d}.section-header-title-group{display:flex;flex-direction:column;gap:4px}.section-header-actions{display:flex;gap:8px;align-items:center}.snapshot-timestamp{font-size:12px;color:#7f8c8d;font-style:italic}.plans-search{display:flex;gap:12px;align-items:center}.plans-search input[type=text]{padding:8px 16px;border:1px solid #ddd;border-radius:8px;font-size:14px;min-width:200px}.date-filters{display:flex;gap:8px}.date-filters input[type=date]{padding:8px 12px;border:1px solid #ddd;border-radius:8px;font-size:14px}.meal-plans-list{margin-top:16px}.plans-count{font-size:14px;color:#7f8c8d;margin-bottom:16px}.meal-plans-table{width:100%;border-collapse:collapse}.meal-plans-table thead th{background:#f8f9fa;padding:12px;text-align:left;font-weight:600;color:#555;border-bottom:2px solid #dee2e6}.meal-plans-table tbody td{padding:12px;border-bottom:1px solid #f0f0f0}.meal-plans-table tbody tr:hover{background:#f8f9fa}.meal-plan-selector-card{background:#fff;border-radius:12px;padding:20px 24px;margin-bottom:24px;box-shadow:0 2px 8px #0000001a}.meal-plan-selector-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;padding-bottom:14px;border-bottom:2px solid #ecf0f1;flex-wrap:wrap;gap:12px}.meal-plan-selector-title-group{display:flex;align-items:center;gap:12px}.meal-plan-selector-title-group h2{margin:0;font-size:18px;font-weight:700;color:#2c3e50}.selection-count{font-size:13px;color:#7f8c8d;background:#f0f4f8;padding:3px 10px;border-radius:12px;font-weight:600}.meal-plan-selector-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.plans-search-input{padding:7px 14px;border:1px solid #ddd;border-radius:8px;font-size:14px;min-width:180px}.btn-link-sm{background:none;border:none;color:#3498db;font-size:13px;font-weight:600;cursor:pointer;padding:4px 2px;text-decoration:underline}.btn-link-sm:hover{color:#2980b9}.meal-plan-checklist{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;max-height:280px;overflow-y:auto;padding:4px 2px}.meal-plan-check-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid #e8ecef;border-radius:8px;cursor:pointer;transition:background .15s,border-color .15s;background:#fafbfc}.meal-plan-check-item:hover{background:#f0f7ff;border-color:#b3d4f5}.meal-plan-check-item.is-checked{background:#eaf5ea;border-color:#a8d5a8}.meal-plan-check-item input[type=checkbox]{margin-top:2px;flex-shrink:0;accent-color:#27ae60;width:15px;height:15px}.plan-check-info{display:flex;flex-direction:column;gap:2px;min-width:0}.plan-check-name{font-size:13px;font-weight:600;color:#2c3e50;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plan-check-meta{font-size:11px;color:#7f8c8d}.summary-metrics{margin-bottom:32px}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.metric-card{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:20px;border-radius:12px;box-shadow:0 4px 12px #0000001a}.metric-label{font-size:14px;opacity:.9;margin-bottom:8px}.metric-value{font-size:28px;font-weight:700}.metric-value.small{font-size:16px;font-weight:600}.category-analytics{margin-top:24px}.category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.category-card{background:#fff;border:2px solid #ecf0f1;border-radius:12px;padding:20px;transition:all .3s ease}.category-card:hover{border-color:#3498db;box-shadow:0 4px 12px #3498db26;transform:translateY(-2px)}.category-card h3{margin:0 0 16px;font-size:20px;color:#2c3e50;font-weight:700;text-transform:capitalize;border-bottom:2px solid #ecf0f1;padding-bottom:12px}.category-stats{display:grid;gap:12px}.category-stats .stat{display:flex;justify-content:space-between;align-items:center}.stat-label{font-size:13px;color:#7f8c8d;font-weight:500}.stat-value{font-size:16px;font-weight:700;color:#2c3e50}.stat-value.small{font-size:14px;font-weight:600;max-width:180px;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.optimization-recommendations{margin-top:24px}.recommendations-summary{margin-bottom:24px}.savings-highlight{background:linear-gradient(135deg,#f0f8f4,#e8f5ee);border:2px solid #5A9A6A;border-radius:12px;padding:32px;text-align:center}.savings-highlight h3{margin:0 0 12px;font-size:20px;color:#3a5a42;font-weight:700}.savings-highlight .savings-amount{font-size:48px;font-weight:800;color:#5a9a6a;margin:16px 0}.savings-highlight p{margin:8px 0 0;color:#666;font-size:14px}.recommendations-list{display:grid;gap:16px}.recommendation-card{background:#fff;border:2px solid #ecf0f1;border-radius:12px;padding:20px;transition:all .3s ease}.recommendation-card.high{border-color:#27ae60;background:#f0fdf4}.recommendation-card.moderate{border-color:#f39c12;background:#fffbeb}.recommendation-card.low{border-color:#95a5a6;background:#f8f9fa}.recommendation-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.rec-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #ecf0f1}.rec-header h4{margin:0;font-size:18px;color:#2c3e50;text-transform:capitalize}.savings-badge{background:#27ae60;color:#fff;padding:6px 12px;border-radius:20px;font-size:14px;font-weight:600}.rec-content{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:center;margin-bottom:16px}.current-item,.suggested-item{display:flex;flex-direction:column;gap:6px}.current-item .label,.suggested-item .label{font-size:12px;color:#7f8c8d;font-weight:600;text-transform:uppercase}.current-item .item-name,.suggested-item .item-name{font-size:15px;color:#2c3e50;font-weight:600}.current-item .cost{font-size:16px;color:#e74c3c;font-weight:700}.suggested-item .cost{font-size:16px;color:#27ae60;font-weight:700}.swap-arrow{font-size:24px;color:#3498db;font-weight:700}.rec-details{font-size:13px;color:#7f8c8d}.rec-details p{margin:4px 0}.projected-savings{color:#27ae60;font-weight:600}.detailed-analysis{margin-top:24px}.detailed-section{margin-bottom:32px}.detailed-section h3{margin:0 0 16px;font-size:20px;color:#2c3e50;font-weight:700;text-transform:capitalize;padding-bottom:12px;border-bottom:2px solid #ecf0f1}.detailed-table{width:100%;border-collapse:collapse;margin-top:16px}.detailed-table thead th{background:#f8f9fa;padding:12px;text-align:left;font-weight:600;color:#555;border-bottom:2px solid #dee2e6;font-size:13px}.detailed-table tbody td{padding:10px 12px;border-bottom:1px solid #f0f0f0;font-size:14px}.detailed-table tbody tr:hover{background:#f8f9fa}.volatility-badge{padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600}.volatility-badge.low{background:#d4edda;color:#155724}.volatility-badge.medium{background:#fff3cd;color:#856404}.volatility-badge.high{background:#f8d7da;color:#721c24}.loading-state,.empty-state{text-align:center;padding:60px 20px;color:#7f8c8d}.empty-state h3{margin:0 0 12px;font-size:22px;color:#2c3e50}.empty-state p{margin:0;font-size:16px;color:#7f8c8d}@media(max-width:768px){.menu-averages-page{padding:16px}.menu-averages-header h1{font-size:24px}.plans-search{flex-direction:column;align-items:stretch}.plans-search input[type=text]{width:100%;min-width:auto}.metrics-grid,.category-grid,.rec-content{grid-template-columns:1fr}.swap-arrow{text-align:center;transform:rotate(90deg)}.detailed-table{font-size:12px}.detailed-table thead th,.detailed-table tbody td{padding:8px}.savings-highlight .savings-amount{font-size:36px}}.analysis-layout{display:flex;flex-direction:column;gap:32px}.category-table-container{margin-bottom:32px}.category-table-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:3px solid #5A9A6A}.category-table-header h3{margin:0;font-size:22px;color:#2c3e50;font-weight:700;text-transform:capitalize}.recipe-count{font-size:14px;color:#7f8c8d;background:#f8f9fa;padding:6px 14px;border-radius:20px;font-weight:600}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:8px;border:1px solid #e0e0e0}.analysis-table{width:100%;min-width:640px;border-collapse:collapse;background:#fff}.analysis-table thead th{background:linear-gradient(180deg,#f8f9fa,#ecf0f1);padding:12px 14px;text-align:left;font-weight:700;color:#2c3e50;border-bottom:2px solid #dee2e6;font-size:13px;white-space:nowrap;position:sticky;top:0;z-index:10}.analysis-table thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease-out}.analysis-table thead th.sortable:hover{background:linear-gradient(180deg,#eef1f4,#e0e5ea)}.analysis-table thead th.sortable .sort-icon:after{content:" ⇅";color:#aab4bc;font-size:11px}.analysis-table thead th.sort-asc .sort-icon:after{content:" ↑";color:#2980b9}.analysis-table thead th.sort-desc .sort-icon:after{content:" ↓";color:#2980b9}.analysis-table tbody td{padding:10px 14px;border-bottom:1px solid #f0f0f0;font-size:14px;vertical-align:middle}.analysis-table tbody tr:hover{background:#f8fbff}.analysis-table tbody tr:last-child td{border-bottom:none}.col-name{min-width:180px}.col-frequency{text-align:center;width:110px;white-space:nowrap}.col-avg-cost{text-align:right;width:120px;white-space:nowrap}.col-range,.col-volatility{text-align:center;width:140px;white-space:nowrap}.col-last-used{text-align:center;width:100px;white-space:nowrap}.frequency-badge{background:#fff;color:#333;border:1px solid #ccc;padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600;display:inline-block;min-width:40px;text-align:center}.rec-table-container{background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:24px}.rec-table-header{background:#f8f9fa;padding:16px 20px;border-bottom:2px solid #e0e0e0}.rec-table-header h4{margin:0;font-size:16px;font-weight:700;color:#2c3e50}.alternatives-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px}.alternatives-table thead th{background:#fafafa;padding:8px 10px;text-align:left;font-weight:600;color:#555;border-bottom:2px solid #e0e0e0;font-size:11px;white-space:normal;line-height:1.3;vertical-align:bottom;word-break:break-word}.alternatives-table tbody td{padding:8px 10px;border-bottom:1px solid #f0f0f0;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alternatives-table .col-name{white-space:normal;word-break:break-word;line-height:1.3}.current-recipe-row{background:#fff5f5;font-weight:600}.current-recipe-row td{border-bottom:2px solid #ffebee}.recipe-name-cell{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.current-badge{background:#e74c3c;color:#fff;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:700;text-transform:uppercase;display:inline-block;width:fit-content}.alternative-row{transition:background .2s ease}.alternative-row:hover{background:#f9f9f9}.best-alternative{background:#f0fdf4}.best-alternative td{border-bottom:1px solid #d1fae5}.cross-market-divider{background:#fef3c7;font-weight:600}.cross-market-divider td{padding:12px 16px;border-top:2px solid #fbbf24;border-bottom:2px solid #fbbf24}.cross-market-label{font-size:13px;color:#92400e;text-transform:uppercase;letter-spacing:.5px}.cross-market-row{background:#fffbeb}.cross-market-row:hover{background:#fef3c7}.savings-positive{color:#059669;font-weight:600}.savings-high{background:#d1fae5;color:#065f46;padding:4px 12px;border-radius:12px;font-weight:700}.savings-moderate{background:#fef3c7;color:#92400e;padding:4px 12px;border-radius:12px;font-weight:700}.savings-low{background:#e5e7eb;color:#374151;padding:4px 12px;border-radius:12px;font-weight:700}.col-id{width:7%;color:#666;font-family:Courier New,monospace}.col-name{width:21%}.col-market{width:8%;font-size:11px}.col-avg-cost{width:9%;text-align:right}.col-times-used,.col-servings{width:7%;text-align:center}.col-proj-total-cost{width:9%;text-align:right}.col-savings-per{width:8%;text-align:right}.col-savings-total{width:10%;text-align:right}.col-savings-percent{width:6%;text-align:center}.col-market-this{color:#555}.col-market-other{color:#92400e;font-weight:600}.col-proj-servings,.col-total-cost{text-align:center;width:9%}.col-cal,.col-protein,.col-sodium{width:6%;text-align:center;font-size:.82rem;white-space:nowrap}.sodium-high{color:#b45309;font-weight:600}.nutr-incomplete{font-size:.75rem;color:#92400e;background:#fef3c7;border-radius:4px;padding:1px 5px}.nutr-na{color:#aaa}.nutr-mismatch{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;background:#f59e0b;color:#fff;border-radius:50%;font-size:.7rem;font-weight:700;cursor:default;vertical-align:middle;margin-left:2px}.nutrition-integrity-panel{margin-bottom:16px}.nutr-integrity-card{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;padding:10px 14px;border-radius:8px;font-size:.875rem;border:1px solid}.nutr-status-good{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.nutr-status-warn{background:#fefce8;border-color:#fde047;color:#854d0e}.nutr-status-poor{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.nutr-integrity-main{flex:0 0 auto}.nutr-integrity-note{font-size:.8rem;opacity:.85}.nutr-tolerance-info{margin-left:auto;font-size:.75rem;opacity:.7}.filter-context-banner{margin-bottom:20px}.filter-context-card{display:flex;align-items:center;gap:16px;background:linear-gradient(135deg,#3a7d5a,#2c5f44);color:#fff;padding:16px 20px;border-radius:8px;box-shadow:0 2px 8px #3a7d5a40}.context-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#fff3;border-radius:50%}.context-icon svg{stroke:#fff}.context-content{flex:1}.context-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;opacity:.9;margin-bottom:4px}.context-details{font-size:15px;font-weight:500}.rec-main{display:grid;grid-template-columns:auto 1fr auto 2fr;gap:24px;align-items:start}.rec-category{display:flex;align-items:center}.category-badge{background:linear-gradient(135deg,#3a7d5a,#2c5f44);color:#fff;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;writing-mode:vertical-lr;text-align:center}.rec-current{background:#fff5f5;border:2px solid #ffebee;border-radius:8px;padding:16px}.rec-label{font-size:11px;font-weight:700;color:#7f8c8d;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.rec-item-name{font-size:16px;font-weight:700;color:#2c3e50;margin-bottom:8px;line-height:1.4}.rec-cost{font-size:20px;font-weight:800;color:#e74c3c;margin-bottom:4px}.rec-usage{font-size:12px;color:#7f8c8d}.rec-arrow{display:flex;align-items:center;justify-content:center;color:#5a9a6a;padding:0 8px}.rec-alternatives{background:#f0fdf4;border:2px solid #d1fae5;border-radius:8px;padding:16px}.alternative-item{padding:12px;margin-bottom:8px;background:#fff;border-radius:6px;border:1px solid #e0e0e0;transition:all .2s ease}.alternative-item:last-child{margin-bottom:0}.alternative-item:hover{border-color:#5a9a6a;box-shadow:0 2px 8px #5a9a6a1a}.alternative-item.best{border:2px solid #5A9A6A;background:#f0fdf4}.alt-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.alt-name{font-size:15px;font-weight:700;color:#2c3e50}.market-badge{background:#f59e0b;color:#fff;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;margin-left:8px}.alt-details{display:flex;justify-content:space-between;align-items:center}.alt-cost{font-size:16px;font-weight:700;color:#5a9a6a}.alt-savings{font-size:14px;font-weight:700;padding:4px 10px;border-radius:20px}.alt-savings.savings-high{background:#d1fae5;color:#065f46}.alt-savings.savings-moderate{background:#fef3c7;color:#92400e}.alt-savings.savings-low{background:#e5e7eb;color:#374151}.btn-export{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-export:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.btn-export svg{width:16px;height:16px}@media(max-width:1024px){.rec-main{grid-template-columns:1fr;gap:16px}.category-badge{writing-mode:horizontal-tb;text-align:left}.rec-arrow{transform:rotate(90deg);padding:8px 0}.analysis-table{min-width:560px}.alternatives-table thead th,.alternatives-table tbody td{padding:7px 8px;font-size:11px}}@media(max-width:768px){.analysis-table{min-width:480px}.analysis-table thead th,.analysis-table tbody td{padding:8px 10px;font-size:12px}.alternatives-table thead th,.alternatives-table tbody td{padding:6px;font-size:11px}.current-badge{display:none}.frequency-badge{padding:4px 8px;font-size:12px}.rec-table-header{padding:12px 14px}.rec-table-header h4{font-size:14px}.rec-card{padding:16px}.alternative-item{padding:10px}.alt-name,.alt-cost{font-size:13px}}.meal-period-section{margin-bottom:48px;padding-bottom:32px;border-bottom:3px solid #ecf0f1}.meal-period-section:last-child{border-bottom:none}.meal-period-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding:20px 24px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 4px 12px #667eea4d}.meal-period-header h3{margin:0;font-size:28px;color:#fff;font-weight:700;text-transform:uppercase;letter-spacing:1px}.period-count{font-size:15px;color:#ffffffe6;background:#fff3;padding:8px 16px;border-radius:20px;font-weight:600}.category-table-container h4{margin:0;font-size:18px;color:#2c3e50;font-weight:700}.rec-period-category{display:flex;flex-direction:column;gap:8px;align-items:center}.period-badge{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:8px 16px;border-radius:8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.rec-period-category .category-badge{background:linear-gradient(135deg,#5a9a6a,#3a5a42);padding:6px 12px;font-size:10px;writing-mode:horizontal-tb}@media(max-width:1024px){.meal-period-header{flex-direction:column;align-items:flex-start;gap:12px}.meal-period-header h3{font-size:24px}.rec-period-category{flex-direction:row}.period-badge{writing-mode:horizontal-tb}}.analysis-header-actions{display:flex;align-items:center;gap:var(--space-sm)}.pdf-export-mode .costing-actions,.pdf-export-mode .costing-filters,.pdf-export-mode .mobile-scroll-hint,.pdf-export-mode .expand-recipes-btn,.pdf-export-mode .recipes-row,.pdf-export-mode .link-btn,.pdf-export-mode .btn-icon,.pdf-export-mode .week-nav-btn,.pdf-export-mode .btn-close-analysis,.pdf-export-mode .analysis-header-actions{display:none!important}.pdf-export-mode{background:#fff}.audit-page{padding:0}.audit-header{background:var(--bg-primary);border-bottom:1px solid var(--border-default);padding:var(--space-xl) var(--space-xl) var(--space-lg);position:sticky;top:0;z-index:10}.audit-header-inner{max-width:1200px;margin:0 auto}.audit-header-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-xl);margin-bottom:var(--space-lg)}.audit-title{font-size:20px;font-weight:600;color:var(--text-primary);margin:0 0 4px}.audit-subtitle{font-size:var(--body-small);color:var(--text-tertiary);margin:0}.audit-progress-bar-container{flex:0 0 260px}.audit-progress-summary{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:10px 14px}.audit-progress-track{height:6px;background:var(--border-default);border-radius:3px;overflow:hidden;margin-bottom:8px}.audit-progress-fill{height:100%;background:var(--green-primary);border-radius:3px;transition:width .3s ease}.audit-progress-stats{display:flex;gap:10px;flex-wrap:wrap}.aps{font-size:var(--label-text);font-weight:500}.aps.confirmed{color:var(--green-primary)}.aps.flagged{color:#d4af37}.aps.unaudited{color:var(--text-tertiary)}.aps.total{color:var(--text-primary);margin-left:auto}.audit-controls-row{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}.audit-mode-toggle{display:flex;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow:hidden;flex-shrink:0;padding:3px;gap:2px}.audit-mode-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;font-size:var(--body-small);font-weight:500;color:var(--text-tertiary);background:transparent;border:none;border-radius:calc(var(--radius-lg) - 3px);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none}.audit-mode-btn:hover:not(.active){color:var(--text-primary);background:var(--bg-hover)}.audit-mode-btn.active{color:var(--text-primary);background:var(--bg-primary);box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014;cursor:default;font-weight:600}.audit-filter-group{display:flex;align-items:center;gap:var(--space-sm);flex:1;flex-wrap:wrap}.audit-select{padding:7px 10px;font-size:var(--body-small);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);cursor:pointer}.audit-search-input{flex:1;min-width:160px;padding:7px 12px;font-size:var(--body-small);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary)}.audit-search-input:focus,.audit-select:focus{outline:none;border-color:var(--green-primary)}.audit-body{padding:var(--space-lg) var(--space-xl);max-width:1200px;margin:0 auto}.audit-loading{display:flex;align-items:center;gap:var(--space-md);padding:60px 20px;justify-content:center;color:var(--text-tertiary);font-size:var(--body-small)}.audit-spinner{width:20px;height:20px;border:2px solid var(--border-default);border-top-color:var(--green-primary);border-radius:50%;animation:auditSpin .7s linear infinite}@keyframes auditSpin{to{transform:rotate(360deg)}}.audit-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:60px 20px;color:var(--text-tertiary);font-size:var(--body-small);text-align:center}.audit-error{padding:20px;background:#fff5f5;border:1px solid #fed7d7;border-radius:var(--radius-lg);color:#c53030;font-size:var(--body-small)}.audit-recipe-group{margin-bottom:var(--space-md);border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow:visible;background:var(--bg-primary)}.audit-recipe-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast)}.audit-recipe-header:hover{background:var(--bg-hover)}.audit-recipe-header-left{display:flex;align-items:center;gap:10px;min-width:0}.audit-chevron{flex-shrink:0;color:var(--text-tertiary);transition:transform var(--transition-base)}.audit-chevron.expanded{transform:rotate(90deg)}.audit-recipe-name{font-size:var(--body-regular);font-weight:600;color:var(--text-primary)}.audit-recipe-num{font-size:var(--label-text);color:var(--text-tertiary);margin-left:6px}.audit-recipe-header-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.audit-mini-progress{width:80px;height:4px;background:var(--border-default);border-radius:2px;overflow:hidden}.audit-mini-bar{height:100%;border-radius:2px;transition:width .3s ease}.audit-recipe-count{font-size:var(--label-text);color:var(--text-tertiary);white-space:nowrap}.audit-flag-badge{font-size:var(--label-text);background:#fef0cf;color:#5d4e1f;border:1px solid #FEE465;border-radius:10px;padding:2px 8px}.audit-confirm-all-btn{font-size:var(--label-text);font-weight:500;padding:4px 12px;border:1px solid var(--border-medium);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.audit-confirm-all-btn:hover{background:var(--green-primary);color:#fff;border-color:var(--green-primary)}.audit-ingredient-list{border-top:1px solid var(--border-light)}.audit-ingredient-list.collapsed{display:none}.audit-table{width:100%;border-collapse:collapse;table-layout:auto}.audit-th{padding:7px 12px;font-size:var(--micro-text);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--bg-secondary);border-bottom:1px solid var(--border-default);text-align:left;white-space:nowrap}.audit-td{padding:10px 12px;font-size:var(--body-small);color:var(--text-primary);border-bottom:1px solid var(--border-light);vertical-align:top}.audit-tr:last-child .audit-td{border-bottom:none}.audit-tr:hover .audit-td{background:var(--bg-secondary)}.audit-tr.confirmed .audit-td{background:#f0faf2}.audit-tr.confirmed:hover .audit-td{background:#e6f7ea}.audit-tr.flagged .audit-td{background:#fffbeb}.audit-tr.flagged:hover .audit-td{background:#fef3c7}.audit-table--mog .ath-ingredient{width:180px}.audit-table--mog .ath-item{min-width:180px}.audit-table--mog .ath-code{width:110px}.audit-table--mog .ath-pack{width:130px}.audit-table--mog .ath-cost{width:120px}.audit-table--mog .ath-base{width:140px}.audit-table--mog .ath-status{width:90px}.audit-table--mog .ath-actions{width:1px;white-space:nowrap}.audit-table--usda .ath-ingredient{width:180px}.audit-table--usda .ath-usda{min-width:200px}.audit-table--usda .ath-per100{width:200px}.audit-table--usda .ath-contrib{width:230px}.audit-table--usda .ath-status{width:90px}.audit-table--usda .ath-actions{width:1px;white-space:nowrap}.audit-ing-name{font-size:var(--body-small);font-weight:600;color:var(--text-primary);margin-bottom:1px}.audit-ing-amount{font-size:var(--label-text);color:var(--text-tertiary);font-weight:400}.audit-timestamp{font-size:var(--micro-text);color:var(--text-muted);margin-top:3px}.audit-no-link{font-size:var(--body-small);color:var(--text-muted);font-style:italic}.audit-mog-name{font-size:var(--body-small);color:var(--text-primary);font-weight:500;margin-bottom:3px}.audit-product-code{font-size:var(--label-text);background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:1px 6px;color:var(--text-secondary);font-family:monospace}.audit-product-code-link{font-size:var(--label-text);background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:1px 6px;color:var(--text-secondary);font-family:monospace;cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px;transition:background .15s,color .15s,border-color .15s}.audit-product-code-link:hover{background:var(--primary-light, #e8f0fe);border-color:var(--primary, #2563eb);color:var(--primary, #2563eb)}.audit-product-code-link--no-code{font-style:italic;color:var(--text-muted)}.audit-product-code-link--unlinked{font-style:italic;color:var(--text-muted);opacity:.5;border-style:dashed}.mip-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:9100;display:flex;align-items:center;justify-content:center;padding:16px}.mip-modal{background:var(--bg-primary, #fff);border-radius:var(--radius-lg, 12px);box-shadow:0 20px 60px #0003;width:100%;max-width:520px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.mip-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 20px 16px;border-bottom:1px solid var(--border-default);gap:12px;flex-shrink:0}.mip-header-info{display:flex;flex-direction:column;gap:6px}.mip-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0}.mip-market-badge{display:inline-block;background:var(--primary-light, #e8f0fe);color:var(--primary, #2563eb);border:1px solid var(--primary-border, #bfdbfe);border-radius:20px;padding:2px 10px;font-size:var(--label-text);font-weight:600;letter-spacing:.04em;width:fit-content}.mip-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,color .15s}.mip-close:hover{background:var(--bg-secondary);color:var(--text-primary)}.mip-body{padding:16px 20px 20px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:14px}.mip-current-item{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md, 8px);padding:12px 14px}.mip-current-item--none{color:var(--text-muted);font-style:italic;font-size:var(--body-small)}.mip-current-label{font-size:var(--label-text);font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}.mip-current-name{font-size:var(--body-small);font-weight:600;color:var(--text-primary);margin-bottom:5px}.mip-current-meta{display:flex;flex-wrap:wrap;gap:6px}.mip-code{font-family:monospace;font-size:var(--label-text);background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:1px 6px;color:var(--text-secondary)}.mip-pack{font-size:var(--label-text);color:var(--text-secondary)}.mip-cost{font-size:var(--label-text);font-weight:600;color:var(--green-primary, #16a34a)}.mip-cost-base{font-size:var(--label-text);font-weight:700;color:#0369a1;background:#e0f2fe;border-radius:4px;padding:1px 6px}.mip-search-section{display:flex;flex-direction:column;gap:10px;flex:1;min-height:0}.mip-search-input{width:100%;padding:9px 13px;border:1px solid var(--border-default);border-radius:var(--radius-md, 8px);font-size:var(--body-small);color:var(--text-primary);background:var(--bg-primary);outline:none;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.mip-search-input:focus{border-color:var(--primary, #2563eb);box-shadow:0 0 0 3px #2563eb1a}.mip-results{max-height:280px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.mip-hint{font-size:var(--body-small);color:var(--text-muted);font-style:italic;margin:0;padding:8px 0}.mip-hint--searching{color:var(--text-secondary)}.mip-hint--error{color:var(--error, #dc2626)}.mip-result-item{width:100%;text-align:left;background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-md, 8px);padding:10px 12px;cursor:pointer;transition:background .12s,border-color .12s;display:flex;flex-direction:column;gap:4px}.mip-result-item:hover{background:var(--bg-secondary);border-color:var(--primary, #2563eb)}.mip-result-main{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.mip-result-name{font-size:var(--body-small);font-weight:600;color:var(--text-primary)}.mip-result-brand{font-size:var(--label-text);color:var(--text-tertiary)}.mip-result-sub{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.mip-result-code{font-family:monospace;font-size:var(--label-text);background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:0 5px;color:var(--text-secondary)}.mip-result-pack{font-size:var(--label-text);color:var(--text-secondary)}.mip-result-cost{font-size:var(--label-text);font-weight:600;color:var(--green-primary, #16a34a)}.mip-result-cost-base{font-size:var(--label-text);font-weight:700;color:#0369a1;background:#e0f2fe;border-radius:4px;padding:1px 6px}.mip-footer-actions{padding-top:4px}.mip-unlink-btn{width:100%;padding:8px 14px;border:1px solid var(--border-default);border-radius:var(--radius-md, 8px);background:none;color:var(--text-secondary);font-size:var(--body-small);cursor:pointer;transition:background .15s,border-color .15s,color .15s}.mip-unlink-btn:hover{background:#fef2f2;border-color:#fca5a5;color:#dc2626}.audit-pack-size{font-size:var(--label-text);color:var(--text-secondary)}.audit-pack-size-btn{font-size:var(--label-text);color:var(--text-secondary);background:none;border:none;padding:2px 4px;margin:0;cursor:pointer;border-radius:3px;text-align:left;transition:background .15s,color .15s}.audit-pack-size-btn:hover{background:var(--blue-light, #ebf4ff);color:var(--blue-primary, #3182ce)}.audit-cost{font-size:var(--body-small);color:var(--green-primary);font-weight:600}.audit-cost-unit{font-size:var(--label-text);color:var(--text-tertiary)}.audit-uom-warning{font-size:var(--label-text);background:#ffe8d9;color:#8b4513;border:1px solid #FFB86B;border-radius:10px;padding:2px 8px;margin-top:4px;display:inline-block}.audit-usda-name{font-size:var(--body-small);color:var(--text-primary);font-weight:500;line-height:1.4}.audit-data-type{font-size:var(--label-text);color:var(--text-muted);font-weight:400;margin-left:6px;background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:var(--radius-sm);padding:1px 5px}.audit-nutrition-pills{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-top:4px}.audit-nutrition-pills.incomplete .npill{opacity:.5}.npill{font-size:var(--micro-text);padding:2px 7px;border-radius:10px;font-weight:500;white-space:nowrap}.npill.cal{background:#fef0cf;color:#5d4e1f}.npill.prot{background:#e6f4ea;color:#2d6a4f}.npill.carb{background:#eff6ff;color:#1e40af}.npill.fat{background:#fff7ed;color:#9a3412}.audit-incomplete-badge{font-size:var(--micro-text);background:#fed7d7;color:#c53030;border-radius:10px;padding:2px 8px;font-weight:500}.audit-contrib-grams{font-size:var(--label-text);color:var(--text-secondary);font-weight:500;margin-bottom:2px}.audit-contrib-na{font-size:var(--micro-text);color:var(--text-muted);font-style:italic}.atd-status,.atd-actions{vertical-align:middle}.audit-status-badge{font-size:var(--micro-text);font-weight:600;padding:3px 9px;border-radius:10px;white-space:nowrap;text-transform:uppercase;letter-spacing:.03em}.audit-status-badge.unaudited{background:var(--bg-tertiary);color:var(--text-muted);border:1px solid var(--border-default)}.audit-status-badge.confirmed{background:#e6f4ea;color:#2d6a4f;border:1px solid #B7E4C7}.audit-status-badge.flagged{background:#fef0cf;color:#5d4e1f;border:1px solid #FEE465}.audit-actions{display:flex;gap:4px}.audit-btn{display:flex;align-items:center;gap:5px;padding:5px 10px;font-size:var(--label-text);font-weight:500;border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--bg-primary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;color:var(--text-secondary)}.audit-btn:hover{border-color:var(--border-medium);background:var(--bg-hover)}.audit-btn.confirm:hover{background:#e6f4ea;border-color:#b7e4c7;color:#2d6a4f}.audit-btn.fix:hover{background:#eff6ff;border-color:#bfdbfe;color:#1e40af}.audit-btn.flag:hover{background:#fef0cf;border-color:#fee465;color:#5d4e1f}.audit-btn.confirm.is-confirmed{background:#e6f4ea;border-color:#b7e4c7;color:#2d6a4f}.audit-btn.confirm.is-confirmed:hover{background:#d4edda;border-color:#a8d5b5;color:#1b4d35}.audit-cost-base-wrap{display:inline-flex;align-items:center;gap:0;position:relative}.audit-has-tooltip{cursor:default}.audit-cost-tooltip{display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:#1a2433;color:#e8edf4;border:1px solid #2e3d52;border-radius:8px;padding:10px 12px;min-width:240px;max-width:320px;z-index:1000100;box-shadow:0 6px 20px #00000059;pointer-events:none;white-space:normal;font-size:11.5px;line-height:1.5}.audit-cost-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#2e3d52}.audit-cost-tooltip--error{background:#2d1a1a;border-color:#5c2e2e;color:#f4b8b8}.audit-cost-tooltip--error:after{border-top-color:#5c2e2e}.audit-has-tooltip:hover .audit-cost-tooltip{display:block}.actt-row{display:flex;justify-content:space-between;gap:12px;padding:2px 0}.actt-label{color:#8a9ab5;font-weight:500;flex-shrink:0;white-space:nowrap}.actt-val{color:#e8edf4;text-align:right;font-family:Courier New,monospace;font-size:11px}.actt-divider{height:1px;background:#2e3d52;margin:6px 0}.actt-formula .actt-label,.actt-formula .actt-val{color:#7eb8f7}.actt-result{margin-top:2px}.actt-result .actt-label{color:#6fcf97}.actt-result .actt-val{color:#6fcf97;font-weight:600;font-size:12px}.actt-error{color:#f4a4a4;font-style:italic;justify-content:flex-start;gap:6px}.audit-btn.fix-cost{color:#1e40af;border-color:#bfdbfe;background:#eff6ff}.audit-btn.fix-cost:hover{background:#dbeafe;border-color:#93c5fd;color:#1d4ed8}.audit-cost-fix-panel-row{background:#f0f6ff}.audit-cost-fix-panel-cell{padding:0!important;border-bottom:2px solid #BFDBFE!important}.audit-cost-fix-panel{padding:14px 20px;border-left:3px solid #3B82F6}.acfp-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.acfp-title{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#1e40af}.acfp-close{background:none;border:none;cursor:pointer;padding:4px;color:var(--text-muted);border-radius:4px;display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast)}.acfp-close:hover{background:var(--bg-hover);color:var(--text-primary)}.acfp-body{display:flex;flex-direction:column;gap:12px}.acfp-fields{display:flex;gap:12px;flex-wrap:wrap}.acfp-field{display:flex;flex-direction:column;gap:4px;min-width:140px}.acfp-label{font-size:11px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.acfp-input{padding:6px 10px;border:1px solid #BFDBFE;border-radius:var(--radius-md);font-size:13px;background:#fff;color:var(--text-primary);outline:none;transition:border-color var(--transition-fast);width:100%;box-sizing:border-box}.acfp-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.acfp-preview{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#fff;border:1px solid #BFDBFE;border-radius:var(--radius-md);font-size:12.5px}.acfp-preview-label{font-weight:600;color:#1e40af;white-space:nowrap;flex-shrink:0}.acfp-preview-result{color:var(--text-secondary);font-family:Courier New,monospace;font-size:11.5px}.acfp-preview-result.acfp-preview-ok{color:#2d6a4f;font-weight:500}.acfp-preview-result.acfp-preview-error{color:#c53030;font-style:italic;font-family:inherit}.acfp-actions{display:flex;gap:8px;align-items:center}.acfp-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 14px;border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;border:1px solid transparent;transition:all var(--transition-fast)}.acfp-btn.acfp-save{background:#2563eb;color:#fff;border-color:#2563eb}.acfp-btn.acfp-save:hover:not(:disabled){background:#1d4ed8;border-color:#1d4ed8}.acfp-btn.acfp-save:disabled{opacity:.6;cursor:not-allowed}.acfp-btn.acfp-cancel{background:var(--bg-primary);color:var(--text-secondary);border-color:var(--border-default)}.acfp-btn.acfp-cancel:hover{background:var(--bg-hover);color:var(--text-primary)}.audit-flag-note-indicator{display:inline-flex;align-items:center;gap:4px;margin-top:4px;font-size:10px;font-weight:600;color:#8a6914;background:#fef5dc;border:1px solid #F5D76E;border-radius:6px;padding:2px 7px;cursor:pointer;transition:all var(--transition-fast);letter-spacing:.02em}.audit-flag-note-indicator:hover{background:#fee465;border-color:#d4af37;color:#5d4e1f}.audit-note-tooltip{position:absolute;z-index:9999;background:var(--bg-primary);border:1px solid var(--border-medium);border-radius:var(--radius-lg);padding:10px 14px;max-width:220px;box-shadow:0 4px 20px #00000026;pointer-events:none;opacity:0;transform:translateY(-4px);transition:opacity .15s ease,transform .15s ease}.audit-note-tooltip.ant-visible{opacity:1;transform:translateY(0)}.ant-text{font-size:12px;color:var(--text-primary);line-height:1.5;word-break:break-word;white-space:pre-wrap}.ant-meta{margin-top:6px;font-size:11px;color:var(--text-muted);font-weight:500}.afnm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:#00000073;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease;padding:16px}.afnm-overlay.afnm-visible{opacity:1}.afnm-dialog{background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:0 20px 60px #00000040;width:100%;max-width:440px;transform:scale(.95) translateY(8px);transition:transform .2s ease;overflow:hidden}.afnm-overlay.afnm-visible .afnm-dialog{transform:scale(1) translateY(0)}.afnm-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-default);background:var(--bg-secondary)}.afnm-header-left{display:flex;align-items:center;gap:8px;color:var(--text-secondary)}.afnm-title{font-size:var(--body-text);font-weight:600;color:var(--text-primary)}.afnm-close{background:none;border:none;cursor:pointer;color:var(--text-muted);padding:4px;border-radius:var(--radius-sm);display:flex;align-items:center;transition:all var(--transition-fast)}.afnm-close:hover{background:var(--bg-hover);color:var(--text-primary)}.afnm-body{padding:20px;display:flex;flex-direction:column;gap:14px}.afnm-ing-name{font-size:var(--body-text);font-weight:600;color:var(--text-primary)}.afnm-existing-note{background:#fef5dc;border:1px solid #F5D76E;border-radius:var(--radius-md);padding:10px 12px}.afnm-existing-meta{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:500;color:#8a6914}.afnm-field{display:flex;flex-direction:column;gap:6px}.afnm-label{font-size:var(--label-text);font-weight:500;color:var(--text-secondary)}.afnm-textarea{width:100%;padding:10px 12px;font-size:var(--body-text);font-family:inherit;border:1px solid var(--border-medium);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);resize:vertical;transition:border-color var(--transition-fast);box-sizing:border-box;line-height:1.5}.afnm-textarea:focus{outline:none;border-color:var(--border-strong);background:var(--bg-primary)}.afnm-tags{display:flex;flex-wrap:wrap;gap:6px}.afnm-tag{padding:4px 12px;border-radius:20px;font-size:12px;font-weight:500;border:1px solid var(--border-medium);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.afnm-tag:hover{border-color:var(--border-strong);color:var(--text-primary)}.afnm-tag.active{background:#1a5276;border-color:#1a5276;color:#fff}.afnm-tag[data-tag=pricing].active{background:#117a65;border-color:#117a65}.afnm-tag[data-tag=ops].active{background:#7d6608;border-color:#7d6608}.afnm-tag[data-tag=name].active{background:#7b241c;border-color:#7b241c}.audit-flag-tags{display:flex;flex-wrap:wrap;gap:3px;margin-top:3px}.audit-flag-tag{display:inline-block;padding:1px 6px;border-radius:10px;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-default)}.audit-flag-tag--pricing{background:#d1f0e8;color:#0e6655;border-color:#a9dfbf}.audit-flag-tag--ops{background:#fdebd0;color:#784212;border-color:#f5cba7}.audit-flag-tag--name{background:#fadbd8;color:#7b241c;border-color:#f1948a}.afnm-footer{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-top:1px solid var(--border-default);background:var(--bg-secondary);gap:10px}.afnm-footer-right{display:flex;align-items:center;gap:8px;margin-left:auto}.afnm-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;font-size:var(--label-text);font-weight:500;border-radius:var(--radius-md);border:1px solid var(--border-default);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.afnm-btn:disabled{opacity:.6;cursor:not-allowed}.afnm-cancel{background:var(--bg-primary);color:var(--text-secondary)}.afnm-cancel:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.afnm-resolve{background:#e6f4ea;color:#2d6a4f;border-color:#b7e4c7}.afnm-resolve:hover:not(:disabled){background:#b7e4c7;border-color:#5a9a6a}.afnm-save{background:#fef0cf;color:#5d4e1f;border-color:#fee465}.afnm-save:hover:not(:disabled){background:#fee465;border-color:#d4af37;color:#3d3210}@media(max-width:900px){.audit-header-top{flex-direction:column;align-items:stretch}.audit-progress-bar-container{flex:none}.audit-ingredient-list{overflow-x:auto}.audit-table{min-width:600px}}.vendors-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap}.btn-bid-comparison{display:inline-flex;align-items:center;gap:var(--space-sm);padding:8px 16px;background:var(--green-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--body-small);font-weight:600;cursor:pointer;transition:background var(--transition-fast);white-space:nowrap;flex-shrink:0}.btn-bid-comparison:hover{background:var(--green-hover)}.bcm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:10000;display:flex;align-items:center;justify-content:center;padding:var(--space-lg);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.bcm-shell{background:var(--bg-primary);border-radius:14px;box-shadow:0 24px 64px #00000038,0 4px 16px #00000014;display:flex;flex-direction:column;width:100%;max-width:1300px;max-height:92vh;overflow:hidden}.bcm-topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border-default);flex-shrink:0;background:var(--bg-primary)}.bcm-topbar-left{display:flex;align-items:center;gap:var(--space-sm);font-weight:700;font-size:1rem;color:var(--text-primary)}.bcm-topbar-title{font-weight:700;font-size:1rem;color:var(--text-primary)}.bcm-topbar-right{display:flex;align-items:center;gap:var(--space-sm)}.bcm-export-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:transparent;border:1px solid var(--border-medium);border-radius:var(--radius-md);font-size:var(--body-small);font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all .15s}.bcm-export-btn:hover{border-color:var(--green-primary);color:var(--green-primary);background:var(--green-bg)}.bcm-close-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;font-size:20px;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-md);transition:all .15s}.bcm-close-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.bcm-body{flex:1;overflow:hidden;display:flex;flex-direction:column}.bcm-setup{flex:1;overflow-y:auto;display:flex;align-items:flex-start;justify-content:center;padding:32px 24px}.bcm-setup-inner{width:100%;max-width:560px;display:flex;flex-direction:column;gap:24px}.bcm-setup-heading{font-size:1.05rem;font-weight:700;color:var(--text-primary)}.bcm-setup-row{display:flex;flex-direction:column;gap:10px}.bcm-field-label{font-size:var(--body-small);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.bcm-select{width:100%;padding:10px 14px;border:1.5px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--body-regular);color:var(--text-primary);background:var(--bg-primary);outline:none;transition:border-color .15s;cursor:pointer}.bcm-select:focus{border-color:var(--green-primary)}.bcm-vendor-header{display:flex;align-items:center;justify-content:space-between}.bcm-link-btn{font-size:var(--body-small);font-weight:600;color:var(--green-primary);background:transparent;border:none;cursor:pointer;padding:2px 6px;border-radius:var(--radius-sm);transition:background .15s}.bcm-link-btn:hover{background:var(--green-bg)}.bcm-vendor-chips{display:flex;flex-wrap:wrap;gap:8px}.bcm-vendor-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1.5px solid var(--border-default);border-radius:10px;font-size:var(--body-small);color:var(--text-secondary);cursor:pointer;transition:all .15s;background:var(--bg-primary);-webkit-user-select:none;user-select:none}.bcm-vendor-chip input[type=checkbox]{display:none}.bcm-vendor-chip:has(input:checked){border-color:var(--green-primary);background:var(--green-bg);color:var(--green-dark)}.bcm-vendor-chip-check{display:none;color:var(--green-primary)}.bcm-vendor-chip:has(input:checked) .bcm-vendor-chip-check{display:flex}.bcm-vendor-chip:hover{border-color:var(--green-primary)}.bcm-hint{font-size:var(--body-small);color:var(--text-muted);padding:4px 0}.bcm-setup-footer{display:flex;justify-content:flex-end;padding-top:8px;border-top:1px solid var(--border-light)}.bcm-run-btn{display:inline-flex;align-items:center;gap:var(--space-sm);padding:11px 28px;background:var(--green-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--body-regular);font-weight:600;cursor:pointer;transition:background .15s,transform .1s}.bcm-run-btn:hover:not(:disabled){background:var(--green-hover);transform:translateY(-1px)}.bcm-run-btn:disabled{opacity:.65;cursor:not-allowed;transform:none}@keyframes bcm-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.bcm-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:bcm-spin .7s linear infinite}.bcm-results{flex:1;overflow:hidden;display:flex;flex-direction:column}.bcm-summary-strip{display:flex;gap:1px;background:var(--border-default);border-bottom:1px solid var(--border-default);flex-shrink:0}.bcm-stat-card{flex:1;background:var(--bg-primary);padding:14px 20px;display:flex;flex-direction:column;gap:3px;min-width:0}.bcm-stat-card.bcm-stat-savings.has-savings{background:#f0faf2}.bcm-stat-card.bcm-stat-winner{background:#fffbf0}.bcm-stat-label{font-size:var(--micro-text);font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted)}.bcm-stat-value{font-size:1.25rem;font-weight:700;color:var(--text-primary);line-height:1}.bcm-stat-card.bcm-stat-savings.has-savings .bcm-stat-value{color:#2d7a3a}.bcm-stat-vendor-name{font-size:.95rem!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bcm-stat-sub{font-size:var(--micro-text);color:var(--text-tertiary);margin-top:2px}.bcm-toolbar{display:flex;align-items:center;gap:var(--space-md);padding:10px 16px;border-bottom:1px solid var(--border-default);flex-shrink:0;background:var(--bg-secondary)}.bcm-back-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;background:transparent;border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--body-small);font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .15s;flex-shrink:0}.bcm-back-btn:hover{background:var(--bg-primary);border-color:var(--border-medium)}.bcm-market-label{font-weight:700;font-size:.9rem;color:var(--text-primary);flex-shrink:0}.bcm-toolbar-right{display:flex;align-items:center;gap:12px;margin-left:auto}.bcm-filter-pills{display:flex;gap:4px;background:var(--bg-primary);border:1px solid var(--border-default);border-radius:8px;padding:3px}.bcm-pill{padding:4px 12px;border:none;background:transparent;border-radius:5px;font-size:var(--body-small);font-weight:500;color:var(--text-tertiary);cursor:pointer;transition:all .15s;white-space:nowrap}.bcm-pill.active{background:var(--green-primary);color:#fff}.bcm-pill:not(.active):hover{background:var(--bg-hover);color:var(--text-primary)}.bcm-search-box{display:flex;align-items:center;gap:7px;padding:5px 12px;background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);transition:border-color .15s}.bcm-search-box:focus-within{border-color:var(--green-primary)}.bcm-search-box svg{color:var(--text-muted);flex-shrink:0}.bcm-search-input{border:none;background:transparent;outline:none;font-size:var(--body-small);color:var(--text-primary);width:180px}.bcm-table-wrap{flex:1;overflow-y:auto;padding:12px 16px 20px}.bcm-count-bar{display:flex;align-items:center;gap:8px;font-size:var(--body-small);color:var(--text-muted);margin-bottom:10px}.bcm-legend{display:inline-flex;align-items:center;gap:5px;margin-left:10px;font-size:var(--micro-text)}.bcm-legend-dot{display:inline-block;width:8px;height:8px;border-radius:2px;flex-shrink:0}.bcm-legend-best{background:#5a9a6a4d;border:1.5px solid var(--green-primary)}.bcm-legend-current{background:#3c64a01f;border:1.5px solid #5a88c8}.bcm-legend-savings{background:#fff2d9;border:1.5px solid #c8971a}.bcm-scroll{overflow-x:auto}.bcm-table{width:100%;border-collapse:collapse;font-size:var(--body-small)}.bcm-table thead{position:sticky;top:0;z-index:10}.bcm-header-row th{background:#f1f4f7;border-bottom:2px solid var(--border-default);font-weight:700;font-size:var(--micro-text);text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);vertical-align:bottom}.bcm-th-name{min-width:180px;width:200px;padding:10px 14px;text-align:left;position:sticky;left:0;background:#f1f4f7;z-index:11;border-right:1px solid var(--border-default)}.bcm-th-savings{min-width:90px;width:95px;padding:10px;text-align:right;white-space:nowrap;background:#fff8e8;border-right:1px solid var(--border-default)}.bcm-th-vendor{min-width:90px;width:110px;padding:8px 6px 6px;text-align:center;border-right:1px solid var(--border-light);vertical-align:bottom}.bcm-th-vendor:last-child{border-right:none}.bcm-th-vendor-inner{display:flex;flex-direction:column;align-items:center;gap:3px}.bcm-th-vendor-name{display:flex;flex-direction:column;align-items:center;line-height:1.3}.bcm-th-word{display:block;white-space:nowrap;text-align:center}.bcm-th-sort-ind{font-size:10px;color:var(--text-muted);margin-top:2px}.bcm-th-label{white-space:nowrap}.bcm-sort-dim{color:var(--text-muted);font-size:10px}.bcm-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .12s}.bcm-sortable:hover{background:#e8ecf0!important}.bcm-sortable.sorted{color:var(--green-primary)}.bcm-table tbody tr.bcm-row{border-bottom:1px solid var(--border-light);transition:background .1s}.bcm-table tbody tr.bcm-row:hover td{background:#f7f9fc}.bcm-table tbody tr.bcm-row:hover td.bcm-td-best{background:#5a9a6a2e!important}.bcm-table tbody tr.bcm-row:hover td.bcm-td-current{background:#e8f5ec}.bcm-table tbody tr.bcm-row.has-savings>td:first-child{border-left:3px solid #e8a020}.bcm-td-name{padding:10px 14px;vertical-align:middle;min-width:180px;position:sticky;left:0;background:var(--bg-primary);z-index:2;border-right:1px solid var(--border-default)}.bcm-row:hover .bcm-td-name{background:#f7f9fc}.bcm-name-cell{display:flex;align-items:center;gap:7px}.bcm-expand-btn{width:20px;height:20px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-default);border-radius:4px;background:transparent;cursor:pointer;flex-shrink:0;transition:all .15s;color:var(--text-tertiary)}.bcm-expand-btn:hover{border-color:var(--green-primary);color:var(--green-primary);background:var(--green-bg)}.bcm-expand-icon{transition:transform .15s}.bcm-expand-gap{width:20px;flex-shrink:0;display:inline-block}.bcm-name-text{display:flex;align-items:baseline;gap:6px;min-width:0}.bcm-ingredient-name{font-weight:500;color:var(--text-primary);font-size:var(--body-small);line-height:1.35}.bcm-recipe-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:16px;padding:0 5px;background:var(--bg-hover);border-radius:8px;font-size:var(--micro-text);font-weight:600;color:var(--text-tertiary);flex-shrink:0}.bcm-td-savings{padding:10px;text-align:right;vertical-align:middle;background:#fffcf2;border-right:1px solid var(--border-default);white-space:nowrap}.bcm-savings-chip{display:inline-block;padding:3px 7px;background:#fff0cc;border:1px solid #e0a820;border-radius:5px;font-size:var(--micro-text);font-weight:700;color:#7a5500;white-space:nowrap}.bcm-no-savings{color:var(--text-muted);font-size:13px}.bcm-th-current{min-width:100px;width:115px;padding:10px 8px;text-align:center;background:#eef6f0;border-right:2px solid #b5d9be;border-left:2px solid #b5d9be}.bcm-th-alts{padding:10px 8px;text-align:center;color:var(--text-muted);font-size:var(--micro-text);letter-spacing:.4px}.bcm-td-current{padding:9px 8px;text-align:center;vertical-align:middle;background:#f3faf5;border-right:2px solid #b5d9be;border-left:2px solid #b5d9be;transition:background .1s}.bcm-td-alt{padding:9px 8px;text-align:center;vertical-align:middle;border-right:1px solid var(--border-light);transition:background .1s;min-width:90px}.bcm-td-alt:last-child{border-right:none}.bcm-td-local{background:#f5fbf6}.bcm-price-vendor{font-size:10px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:110px;margin-top:2px}.bcm-item-name{font-size:9px;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:110px;margin-top:1px;font-style:italic}.bcm-local-leaf{line-height:1;color:var(--success-color, #16a34a);display:inline-flex;align-items:center}.bcm-legend-leaf{margin-left:12px;margin-right:3px;color:var(--success-color, #16a34a);display:inline-flex;align-items:center}.bcm-td-best{background:#5a9a6a1a!important}.bcm-td-noquote{background:var(--bg-tertiary)}.bcm-noquote{color:var(--border-medium);font-size:1rem}.bcm-price-cell{display:flex;flex-direction:column;align-items:center;gap:2px}.bcm-price-main{font-weight:700;font-size:12px;color:var(--text-primary);white-space:nowrap}.bcm-td-best .bcm-price-main{color:var(--green-dark)}.bcm-price-unit{font-size:var(--micro-text);color:var(--text-muted);white-space:nowrap}.bcm-delta-better{font-size:var(--micro-text);font-weight:700;color:#2d7a3a;background:#dff2e5;border-radius:3px;padding:1px 4px;white-space:nowrap}.bcm-delta-worse{font-size:var(--micro-text);font-weight:700;color:#b03a2e;background:#fde8e7;border-radius:3px;padding:1px 4px;white-space:nowrap}.bcm-best-badge{font-size:8px;font-weight:800;letter-spacing:.5px;color:var(--green-dark);background:#5a9a6a2e;border-radius:3px;padding:1px 5px;white-space:nowrap}.bcm-local-cheaper{font-size:8px;font-weight:800;letter-spacing:.5px;color:#fff;background:#2d7a3a;border-radius:3px;padding:1px 5px;white-space:nowrap}.bcm-local-threshold-green{font-size:8px;font-weight:800;letter-spacing:.4px;color:#2d7a3a;background:#dff2e5;border-radius:3px;padding:1px 5px;white-space:nowrap}.bcm-local-threshold-yellow{font-size:8px;font-weight:800;letter-spacing:.4px;color:var(--yellow-text, #5D4E1F);background:var(--yellow-bg, #FEF0CF);border-radius:3px;padding:1px 5px;white-space:nowrap}.bcm-td-local-warn{border-left:3px solid var(--yellow-border, #FEE465)!important}.bcm-legend-badge{display:inline-flex;align-items:center;margin-left:10px;margin-right:3px}.bcm-recipes-row td{padding:0;background:#f8faf9;border-bottom:1px solid var(--border-default)}.bcm-recipes-inner{display:flex;align-items:flex-start;gap:10px;padding:9px 14px 9px 46px;flex-wrap:wrap}.bcm-recipes-label{font-size:var(--micro-text);font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;padding-top:3px}.bcm-recipe-pill{display:inline-block;padding:3px 10px;background:var(--bg-primary);border:1px solid var(--border-default);border-radius:20px;font-size:var(--micro-text);color:var(--text-secondary);white-space:nowrap}.bcm-empty-row{text-align:center;padding:40px 20px;color:var(--text-muted);font-size:var(--body-small)}.bcm-td-clickable{cursor:pointer;transition:background .12s}.bcm-td-clickable:hover{background:rgba(var(--accent-rgb, 37,99,235),.07)!important}.bcm-td-best.bcm-td-clickable:hover{background:#5a9a6a33!important}.bcm-popover{position:fixed;z-index:10100;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:10px;box-shadow:0 8px 32px #0000002e,0 2px 8px #0000001a;width:300px;overflow:hidden;animation:bcmPopoverIn .14s ease}@keyframes bcmPopoverIn{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.bcm-popover-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px 8px;border-bottom:1px solid var(--border-color, #e5e7eb);background:var(--bg-secondary, #f9fafb)}.bcm-popover-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted, #6b7280)}.bcm-popover-close{background:none;border:none;cursor:pointer;font-size:16px;color:var(--text-muted, #6b7280);line-height:1;padding:0;display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:4px;transition:background .1s,color .1s}.bcm-popover-close:hover{background:var(--bg-tertiary, #f3f4f6);color:var(--text-primary, #111827)}.bcm-popover-body{padding:12px 14px}.bcm-popover-loading{display:flex;align-items:center;gap:8px;color:var(--text-muted, #6b7280);font-size:13px;padding:8px 0}.bcm-popover-error{color:var(--red, #ef4444);font-size:13px;padding:8px 0}.bcm-popover-item-name{font-size:14px;font-weight:600;color:var(--text-primary, #111827);line-height:1.3;margin-bottom:4px}.bcm-popover-brand{font-weight:400;color:var(--text-secondary, #6b7280);font-size:13px}.bcm-popover-local-tag{font-size:11px;color:#5a9a6a;font-weight:500;margin-bottom:8px}.bcm-popover-fields{display:flex;flex-direction:column;gap:0;margin-top:10px;border:1px solid var(--border-color, #e5e7eb);border-radius:7px;overflow:hidden}.bcm-popover-field{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;border-bottom:1px solid var(--border-color, #e5e7eb);font-size:12px}.bcm-popover-field:last-child{border-bottom:none}.bcm-popover-field-highlight{background:var(--bg-secondary, #f9fafb)}.bcm-popover-field-label{color:var(--text-muted, #6b7280);font-weight:500;flex-shrink:0;margin-right:8px}.bcm-popover-field-value{color:var(--text-primary, #111827);text-align:right;font-weight:500}.bcm-popover-mono{font-family:monospace;font-size:11px}.bcm-popover-cost{color:var(--text-primary, #111827);font-weight:700;font-size:13px}.bcm-popover-note{margin-top:8px;font-size:11px;color:var(--text-muted, #6b7280);font-style:italic;line-height:1.4;padding:6px 8px;background:var(--bg-secondary, #f9fafb);border-radius:5px}.bcm-popover-footer{margin-top:10px;display:flex;justify-content:flex-end}.bcm-popover-mog-btn{background:var(--bg-secondary, #f3f4f6);border:1px solid var(--border-color, #e5e7eb);border-radius:6px;padding:5px 12px;font-size:12px;font-weight:500;color:var(--text-primary, #374151);cursor:pointer;transition:background .12s,border-color .12s}.bcm-popover-mog-btn:hover{background:var(--accent, #2563eb);border-color:var(--accent, #2563eb);color:#fff}.landing-page{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000010;animation:fadeIn .6s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.landing-split{display:flex;height:100%}.landing-preview{flex:1;background:#3a5a42;position:relative;overflow:hidden}.preview-content{height:100%;padding:40px;position:relative}.preview-header{margin-bottom:32px}.preview-nav{display:flex;gap:32px}.preview-nav-item{color:#ffffff80;font-size:16px;font-weight:500;cursor:default;transition:color .3s}.preview-nav-item.active{color:#fff;border-bottom:2px solid #5A9A6A;padding-bottom:4px}.preview-recipes{display:flex;flex-direction:column;gap:16px;max-width:600px}.preview-recipe-card{background:#ffffff0d;border-radius:12px;padding:16px;display:flex;gap:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}.preview-recipe-image{width:80px;height:80px;background:linear-gradient(135deg,#5a9a6a4d,#c9a05f4d);border-radius:8px;flex-shrink:0}.preview-recipe-info{flex:1;display:flex;flex-direction:column;justify-content:center;gap:8px}.preview-recipe-title{color:#fff;font-size:18px;font-weight:600}.preview-recipe-meta{display:flex;gap:8px}.preview-tag{background:#ffffff1a;color:#ffffffb3;padding:4px 12px;border-radius:12px;font-size:12px}.preview-overlay{position:absolute;bottom:0;left:0;right:0;padding:32px 40px;background:linear-gradient(to top,rgba(0,0,0,.8),transparent)}.preview-overlay-text{color:#fff9;font-size:14px;text-transform:uppercase;letter-spacing:2px;text-align:center}.landing-auth{flex:1;background:linear-gradient(135deg,#fdfbf7,#f8f3e3,#f3edd5 60%,#ede2c4);display:flex;align-items:center;justify-content:center}.landing-content{text-align:center;max-width:450px;padding:40px;animation:slideUp .6s ease-out}.landing-brand{font-family:Georgia,serif;font-size:48px;font-weight:700;color:#5a9a6a;margin-bottom:2px;letter-spacing:2px;line-height:1}.landing-subtitle{font-family:Georgia,serif;font-size:38px;font-weight:400;font-style:italic;color:#c9a05f;margin-bottom:40px;letter-spacing:1px;line-height:1}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.landing-logo{margin-bottom:24px}.landing-logo-image{width:80px;height:80px}.landing-title{font-family:Georgia,serif;font-size:36px;margin:0 0 8px;color:#5a9a6a}.landing-tagline{font-size:14px;color:#666;margin:0 0 32px}.login-form,.registration-form{display:flex;flex-direction:column;gap:16px}.access-code-input,.user-name-input{width:100%;padding:14px 16px;font-size:16px;border:2px solid #e0e0e0;border-radius:8px;box-sizing:border-box;transition:border-color .2s;background:#fff;color:#333}.access-code-input:focus,.user-name-input:focus{outline:none;border-color:#5a9a6a;background:#fff}.login-button,.back-button{padding:14px 24px;font-size:16px;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .2s;position:relative}.login-button{background:#5a9a6a;color:#fff}.login-button:hover:not(:disabled){background:#4a8158;transform:translateY(-1px);box-shadow:0 4px 12px #5a9a6a4d}.login-button:disabled{opacity:.6;cursor:not-allowed}.back-button{background:#f0f0f0;color:#333}.back-button:hover{background:#e0e0e0}.login-spinner{display:none;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-message{display:none;padding:12px;background:#ffebee;color:#c62828;border-radius:8px;font-size:14px;margin:0}.error-message:empty{display:none!important}.success-message{display:none;padding:12px;background:#e8f5e9;color:#2e7d32;border-radius:8px;font-size:14px}.success-message:not(.hidden),.error-message:not(.hidden){display:block}.registration-title{font-size:20px;margin:0 0 16px;color:#333}.hidden{display:none!important}.header-content{display:flex;justify-content:space-between;align-items:center;gap:24px}.header-title-section{flex:1}.profile-section{display:flex;align-items:center}.profile-dropdown{position:relative}.profile-button{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#fff;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer;transition:all .2s}.profile-button:hover{background:#f5f5f5;border-color:#d0d0d0}.profile-avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;background:#5a9a6a;display:flex;align-items:center;justify-content:center}.profile-avatar-img{width:100%;height:100%;object-fit:cover}.profile-avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#5a9a6a;color:#fff;font-weight:600;font-size:18px}.profile-name{font-size:14px;font-weight:500;color:#333}.profile-arrow{color:#666;transition:transform .2s}.profile-button:hover .profile-arrow{transform:translateY(2px)}.profile-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 4px 12px #0000001a;overflow:hidden;z-index:1000}.profile-menu-item{display:block;padding:12px 16px;color:#333;text-decoration:none;transition:background .2s;cursor:pointer}.profile-menu-item:hover{background:#f5f5f5}.profile-menu-divider{height:1px;background:#e0e0e0;margin:4px 0}.profile-page,.team-page{padding:24px;max-width:1200px;margin:0 auto}.profile-container{background:#fff;border-radius:12px;padding:32px;box-shadow:0 2px 8px #0000000d}.page-title{font-size:28px;margin:0 0 32px;color:#333}.profile-photo-section{display:flex;align-items:center;gap:32px;margin-bottom:32px;padding-bottom:32px;border-bottom:1px solid #e0e0e0}.profile-photo-preview{width:150px;height:150px;border-radius:50%;overflow:hidden;background:#f5f5f5;display:flex;align-items:center;justify-content:center}.profile-photo-large{width:100%;height:100%;object-fit:cover}.profile-photo-placeholder{width:100%;height:100%;background:#5a9a6a;display:flex;align-items:center;justify-content:center}.profile-initial{font-size:60px;font-weight:600;color:#fff}.profile-photo-upload{flex:1}.upload-hint{font-size:13px;color:#666;margin:8px 0 0}.upload-progress{margin-top:16px}.progress-bar{width:100%;height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden;margin-bottom:8px}.progress-fill{height:100%;background:#5a9a6a;transition:width .3s;width:0%}.progress-text{font-size:13px;color:#666;margin:0}.profile-form{max-width:600px}.form-group{margin-bottom:24px}.form-group label{display:block;font-weight:500;margin-bottom:8px;color:#333}.form-input{width:100%;padding:12px 16px;font-size:16px;border:1px solid #e0e0e0;border-radius:8px;box-sizing:border-box;transition:border-color .2s}.form-input:focus{outline:none;border-color:#5a9a6a}.profile-info{background:#f5f5f5;padding:20px;border-radius:8px;margin-bottom:24px}.info-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #e0e0e0}.info-row:last-child{border-bottom:none}.info-label{font-weight:500;color:#666}.info-value{display:flex;align-items:center;gap:12px}.role-badge{padding:4px 12px;border-radius:12px;font-size:13px;font-weight:500}.admin-badge{background:#e3f2fd;color:#1976d2}.member-badge{background:#f3e5f5;color:#7b1fa2}.status-badge{padding:4px 12px;border-radius:12px;font-size:13px;font-weight:500}.active-badge{background:#e8f5e9;color:#2e7d32}.inactive-badge{background:#ffebee;color:#c62828}.login-code-masked{font-family:monospace;font-size:14px}.btn-link{background:none;border:none;color:#5a9a6a;text-decoration:underline;cursor:pointer;padding:0;font-size:14px}.btn-link:hover{color:#4a8158}.form-actions{margin-top:24px}.team-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.section-title{font-size:22px;margin:32px 0 16px;color:#333}.team-members-section,.activity-log-section{background:#fff;border-radius:12px;padding:24px;margin-bottom:32px;box-shadow:0 2px 8px #0000000d}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;padding:12px;background:#f5f5f5;font-weight:600;color:#666;border-bottom:2px solid #e0e0e0}.data-table td{padding:12px;border-bottom:1px solid #e0e0e0}.data-table tr:hover{background:#fafafa}.team-member-photo,.team-member-photo-placeholder{width:36px;height:36px;border-radius:50%;object-fit:cover}.team-member-photo-placeholder{background:#5a9a6a;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600}.activity-filters{display:flex;gap:12px;margin-bottom:24px;flex-wrap:wrap}.filter-select,.filter-input{padding:8px 12px;border:1px solid #e0e0e0;border-radius:6px;font-size:14px}.filter-select{min-width:150px}.filter-input{flex:1;min-width:200px}.action-badge{padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500;text-transform:uppercase}.action-created{background:#e8f5e9;color:#2e7d32}.action-updated{background:#e3f2fd;color:#1976d2}.action-deleted{background:#ffebee;color:#c62828}.action-imported{background:#f3e5f5;color:#7b1fa2}.action-linked,.action-unlinked{background:#fff3e0;color:#f57c00}.action-calculated{background:#e0f2f1;color:#00695c}.modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:none;align-items:center;justify-content:center;z-index:10000}.modal:not(.hidden){display:flex}.modal-content{background:#fff;border-radius:12px;max-width:500px;width:90%;box-shadow:0 20px 60px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid #e0e0e0}.modal-title{font-size:20px;margin:0;color:#333}.modal-close{background:none;border:none;font-size:28px;cursor:pointer;color:#666;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px}.modal-close:hover{background:#f5f5f5}.modal-body{padding:24px}.generated-code-display{display:flex;flex-direction:column;gap:16px;align-items:center;margin-bottom:16px}.code-value{font-family:monospace;font-size:24px;font-weight:600;color:#5a9a6a;padding:16px 24px;background:#f5f5f5;border-radius:8px;letter-spacing:2px}.code-info{font-size:14px;color:#666;margin:0}.empty-state{text-align:center;padding:60px 20px;color:#999;font-size:16px}.loading-spinner{text-align:center;padding:40px;color:#666}@media(max-width:968px){.landing-split{flex-direction:column}.landing-preview{display:none}.landing-auth{flex:1}}@media(max-width:768px){.profile-name{display:none}.profile-photo-section{flex-direction:column;align-items:center;text-align:center}.activity-filters{flex-direction:column}.filter-select,.filter-input{width:100%}.header-content{flex-direction:column;align-items:flex-start;gap:16px}.landing-content{margin:20px;padding:24px}.team-header{flex-direction:column;align-items:flex-start;gap:16px}.team-page,.team-members-section,.activity-log-section{padding:16px}.section-title{font-size:18px}.data-table{display:block;overflow-x:auto}.data-table thead{display:none}.data-table tbody{display:block}.data-table tr{display:block;margin-bottom:16px;border:1px solid #e0e0e0;border-radius:8px;padding:12px;background:#fff}.data-table td{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #f0f0f0;text-align:right}.data-table td:last-child{border-bottom:none}.data-table td:before{content:attr(data-label);font-weight:600;color:#666;text-align:left;flex:1}.team-member-photo,.team-member-photo-placeholder{width:48px;height:48px}.code-display{font-size:12px;max-width:150px;overflow:hidden;text-overflow:ellipsis}.btn-link{font-size:14px;min-height:44px;padding:8px 12px}.action-badge{font-size:11px;padding:3px 8px}.pending-invitations-table,.team-members-table,.activity-log-table{overflow-x:visible}.modal-content{width:95%;margin:20px;max-height:90vh;overflow-y:auto}.form-group{margin-bottom:16px}.form-input{font-size:16px;padding:12px}.btn-primary,.btn-secondary{width:100%;min-height:48px;font-size:16px}.form-actions{flex-direction:column;gap:12px}.form-actions button{width:100%}.team-members-section>div:first-child{flex-direction:column;align-items:stretch!important}.team-members-section>div:first-child button{width:100%;margin-top:12px}}.code-display{font-family:monospace;font-size:14px;background:#f5f5f5;padding:4px 8px;border-radius:4px;color:#333;border:1px solid #e0e0e0}.pending-invitations-table{margin-bottom:32px}.contribution-stats-section{margin-bottom:32px;padding-bottom:32px;border-bottom:1px solid #e0e0e0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-top:16px}.stat-card{background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:20px;text-align:center;transition:all .2s}.stat-card:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.stat-card-primary{background:linear-gradient(135deg,#5a9a6a,#4a8158);color:#fff;border:none}.stat-card-primary .stat-label{color:#ffffffe6}.stat-card-primary .stat-value{color:#fff}.stat-label{font-size:13px;color:#666;margin-bottom:8px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:32px;font-weight:700;color:#333;line-height:1}.stat-created{color:#2e7d32}.stat-updated{color:#1976d2}.stat-deleted{color:#c62828}.stat-imported{color:#7b1fa2}.stat-linked,.stat-unlinked{color:#f57c00}.stat-calculated{color:#00695c}.last-action-info{text-align:center;margin-top:16px;font-size:14px;color:#666;font-style:italic}.stats-detail-row{background:#f9f9f9}.stats-detail-row td{padding:0!important;border-bottom:none!important}.member-stats-detail{padding:20px 24px;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.stats-grid-small{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:16px}.stat-item{display:flex;flex-direction:column;gap:4px;padding:12px;background:#fff;border-radius:8px;border:1px solid #e0e0e0}.stat-label-small{font-size:12px;color:#666;font-weight:500}.stat-value-small{font-size:24px;font-weight:700}.view-stats-btn{display:flex;align-items:center;gap:4px;font-weight:600}@media(max-width:768px){.stats-grid{grid-template-columns:repeat(2,1fr)}.stat-card{padding:16px}.stat-value{font-size:24px}.stats-grid-small{grid-template-columns:repeat(2,1fr)}.stat-value-small{font-size:20px}}.user-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin-bottom:32px}.user-contribution-card{background:#fff;border:2px solid #e0e0e0;border-radius:12px;padding:20px;cursor:pointer;transition:all .2s ease}.user-contribution-card:hover{border-color:#5a9a6a;box-shadow:0 4px 12px #5a9a6a26;transform:translateY(-2px)}.user-contribution-card.selected{border-color:#5a9a6a;background:linear-gradient(135deg,#5a9a6a0d,#4a81580d);box-shadow:0 4px 16px #5a9a6a33}.user-card-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.user-avatar{width:48px;height:48px;border-radius:50%;flex-shrink:0;overflow:hidden;position:relative}.user-avatar-img{width:100%;height:100%;object-fit:cover;display:block}.user-avatar-initials{width:100%;height:100%;border-radius:50%;background:linear-gradient(135deg,#5a9a6a,#4a8158);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700}.user-info{flex:1;min-width:0}.user-name{font-size:18px;font-weight:600;color:#333;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-total{font-size:14px;color:#666;font-weight:500}.user-stats-breakdown{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px}.mini-stat{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:#f9f9f9;border-radius:6px;font-size:13px}.mini-stat-label{color:#666;font-weight:500}.mini-stat-value{font-weight:700;font-size:15px}.user-last-action{font-size:12px;color:#999;text-align:center;padding-top:8px;border-top:1px solid #f0f0f0;font-style:italic}@media(max-width:768px){.user-cards-grid,.user-stats-breakdown{grid-template-columns:1fr}}
