*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f0f0f;--surface:#1a1a1a;--border:#2a2a2a;--text:#e8e8e8;--text-muted:#888;--accent:#10b981;--accent-hover:#059669;--accent-strong:#047857;--accent-strong-hover:#065f46;--success:#22c55e;--danger:#ef4444;--macro-protein:#3b82f6;--macro-fat:#f59e0b;--macro-carbs:#22c55e;--diet-vegan:#22c55e;--diet-vegan-soft:#86efac;--diet-paleo:#f59e0b;--diet-keto:#a855f7;--diet-longevity:#00e0ff;font-family:system-ui,-apple-system,sans-serif}html,body,#root{background:var(--bg);height:100%;color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none}body{overscroll-behavior-y:contain}button{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none}input,textarea{font:inherit;color:inherit}.macro-chart{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.macro-donut{border-radius:50%;flex:none;width:140px;height:140px;position:relative}.macro-donut:after{content:"";background:var(--surface);border-radius:50%;position:absolute;inset:32%}.macro-legend{gap:.25rem;margin:0;padding:0;font-size:.9375rem;list-style:none;display:grid}.macro-legend li{align-items:center;gap:.5rem;min-height:44px;display:flex}.macro-dot{border-radius:50%;flex:none;width:.75rem;height:.75rem}.macro-dot-protein{background:var(--macro-protein)}.macro-dot-fat{background:var(--macro-fat)}.macro-dot-carbs{background:var(--macro-carbs)}.switch{background:var(--border);touch-action:manipulation;border-radius:999px;flex:none;width:52px;height:30px;transition:background .15s;position:relative}.switch.is-on{background:var(--success)}.switch-knob{background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .15s;position:absolute;top:3px;left:3px}.switch.is-on .switch-knob{transform:translate(22px)}.switch:disabled{opacity:.45;cursor:not-allowed}.vegan-row{justify-content:space-between;align-items:center;gap:1rem;min-height:44px;margin-bottom:.75rem;display:flex}.vegan-label{font-weight:600;display:block}.vegan-subtitle{color:var(--text-muted);font-size:.8125rem;display:block}.vegan-hint{color:var(--text-muted);margin:0 0 .75rem;font-size:.8125rem}.vegan-hint-active{color:var(--success)}.ingredient-vegan-hint{color:var(--success);font-size:.78rem;display:block}.bottom-nav{z-index:40;border-top:1px solid var(--border);background:color-mix(in srgb, var(--surface) 94%, transparent);width:100%;max-width:480px;padding-bottom:env(safe-area-inset-bottom);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.nav-item{min-height:56px;color:var(--text-muted);flex-direction:column;flex:1;align-items:center;gap:.2rem;padding:.4rem .25rem;font-size:.68rem;display:flex;position:relative}.nav-item svg{width:21px;height:21px}.nav-item.is-active{color:var(--accent)}.nav-item.is-active:before{content:"";background:var(--accent);border-radius:0 0 2px 2px;width:26px;height:2px;position:absolute;top:0;left:50%;transform:translate(-50%)}.header{text-align:left;background:#12161f;padding:1.1rem 1rem .9rem}.header-eyebrow{color:#10b981;letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:.64rem;font-weight:700}.header-title{letter-spacing:-.04em;margin:.15rem 0 0;font-size:1.65rem;font-weight:800;line-height:1.05}.header-subtitle{color:#e8e8e88c;letter-spacing:.14em;text-transform:uppercase;margin-top:.2rem;font-size:.64rem}.header-button{width:100%;min-height:44px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:block}.header-button:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:8px}.btn{border-radius:8px;padding:.6rem 1.2rem;font-size:1rem;font-weight:600;transition:background .15s,transform .1s}.btn:active{transform:scale(.96)}.btn-primary{background:var(--accent-strong);color:#fff}.btn-primary:hover{background:var(--accent-strong-hover)}.btn-ghost{border:1px solid var(--border);background:0 0}.btn-ghost:hover{background:var(--surface)}.import-dialog{padding-bottom:calc(1rem + env(safe-area-inset-bottom));border-radius:16px}.import-count{color:var(--accent);margin:0 0 .4rem;font-size:.9rem;font-weight:600}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.25rem}.card h2{margin-bottom:.5rem;font-size:1.1rem}.card h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem;font-size:.95rem}.ingredient-search{background:var(--bg);padding:0 0 .75rem}.ingredient-search-bar{background:var(--surface);border:1px solid var(--border);border-radius:12px;align-items:center;gap:.5rem;min-height:44px;padding:0 .75rem;transition:border-color .12s;display:flex}.ingredient-search-bar:focus-within{border-color:var(--accent)}.ingredient-search-icon{width:20px;height:20px;color:var(--text-muted);flex:none}.ingredient-search-input{min-width:0;min-height:44px;color:var(--text);background:0 0;border:0;outline:none;flex:1;padding:0;font-size:1rem}.ingredient-search-input::placeholder{color:var(--text-muted)}.ingredient-search-input::-webkit-search-cancel-button{cursor:pointer}.ingredient-chips{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.ingredient-chip{background:var(--surface);border:1px solid var(--border);border-radius:999px;align-items:center;min-height:44px;padding:0 .25rem 0 .875rem;font-size:.875rem;display:inline-flex}.ingredient-chip-remove{width:44px;height:44px;color:var(--text-muted);border-radius:999px;justify-content:center;align-items:center;margin-left:.125rem;display:inline-flex}.ingredient-chip-remove:active{background:var(--border)}.ingredient-clear{min-height:44px;color:var(--text-muted);padding:0 .5rem;font-size:.875rem;text-decoration:underline}.ingredient-panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;max-height:50vh;margin-top:.5rem;overflow-y:auto;box-shadow:0 16px 40px #00000073}.ingredient-results{list-style:none}.ingredient-result{text-align:left;border-bottom:1px solid var(--border);align-items:center;gap:.75rem;width:100%;min-height:44px;padding:.5rem .75rem;display:flex}.ingredient-results li:last-child .ingredient-result{border-bottom:0}.ingredient-result.is-selected{background:#10b9812e}.ingredient-result-main{flex-direction:column;flex:1;gap:.125rem;min-width:0;display:flex}.ingredient-result-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ingredient-result-kcal{color:var(--text-muted);font-size:.8125rem}.ingredient-result-check{color:var(--accent);flex:none;font-weight:700}.ingredient-panel-message{padding:.875rem;font-size:.875rem}.ingredient-panel-hint{border-bottom:1px solid var(--border);color:var(--text-muted);padding:.5rem .75rem;font-size:.75rem}.recipe-count{margin:0 0 .25rem;font-size:.875rem}.app{flex-direction:column;max-width:480px;height:100%;margin:0 auto;display:flex;position:relative}.content>.header{margin:-1rem -1rem 0}.content>.view-toolbar{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.view-toolbar .view-subtitle{flex:1;margin:0}.view-toolbar .btn{flex:none;min-height:36px;padding:.45rem .8rem;font-size:.82rem}.view-subtitle{color:var(--text-muted);font-size:.8rem}.shopping-view{flex-direction:column;gap:1rem;display:flex}.shopping-head{margin-bottom:.5rem}.offline-banner{margin:0 -1rem}.content{padding:1rem 1rem calc(6rem + env(safe-area-inset-bottom));overscroll-behavior-y:contain;flex-direction:column;flex:1;gap:1rem;display:flex;overflow-y:auto}.offline-banner{border-bottom:1px solid color-mix(in srgb, var(--diet-paleo) 35%, transparent);background:color-mix(in srgb, var(--diet-paleo) 15%, transparent);color:var(--diet-paleo);text-align:center;padding:.4rem 1rem;font-size:.75rem}.pull-indicator{color:var(--text-muted);justify-content:center;align-items:flex-end;font-size:.75rem;transition:height .12s;display:flex;overflow:hidden}.back-to-top{right:1rem;bottom:calc(4.5rem + env(safe-area-inset-bottom));z-index:50;border:1px solid var(--border);background:var(--surface);width:48px;height:48px;color:var(--text);border-radius:999px;font-size:1.2rem;position:absolute;box-shadow:0 8px 24px #00000073}.recipe-list{flex-direction:column;gap:1rem;display:flex}.tag-bar{scrollbar-width:thin;scrollbar-color:var(--border) transparent;cursor:grab;gap:.5rem;margin-top:.75rem;padding-bottom:.5rem;display:flex;overflow-x:auto}.tag-bar.is-dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.tag-bar::-webkit-scrollbar{height:6px}.tag-bar::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.tag-bar::-webkit-scrollbar-track{background:0 0}.tag-chip{border:1px solid var(--border);background:var(--surface);min-height:36px;color:var(--text-muted);white-space:nowrap;border-radius:999px;flex:none;padding:.25rem .75rem;font-family:inherit;font-size:.8rem}.tag-chip.is-active{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.recipe-tags{flex-wrap:wrap;gap:.35rem;margin-top:.5rem;display:flex}.tag{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;border-radius:999px;padding:.1rem .5rem;font-family:inherit;font-size:.7rem}.tag-keto{border-color:var(--diet-keto);color:var(--diet-keto)}.tag-paleo{border-color:var(--diet-paleo);color:var(--diet-paleo)}.tag-longevity{border-color:var(--diet-longevity);color:var(--diet-longevity);box-shadow:0 0 10px color-mix(in srgb, var(--diet-longevity) 30%, transparent)}.tag-pantry,.tag-vegan{border-color:var(--diet-vegan);color:var(--diet-vegan)}.tag-vegan-soft{border-color:var(--diet-vegan-soft);color:var(--diet-vegan-soft)}.keto-hint{color:var(--text-muted);margin-top:.5rem;font-size:.8rem;display:block}.recipe-link{width:100%;min-height:44px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;padding:0;display:block}.recipe-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.recipe-link:active .card{transform:scale(.99)}.recipe-head{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.recipe-name,.detail-title{margin:0;font-size:1.15rem;line-height:1.3}.recipe-name{flex:1;min-width:0;margin:0;font-size:1.15rem;line-height:1.3}.recipe-open{width:100%;color:inherit;font:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:.45rem;padding:0;display:flex}.recipe-open>span{min-width:0}.dish-icon{width:20px;height:20px;color:var(--text-muted);flex:none}.detail-title{font-size:1.35rem}.recipe-servings{color:var(--text-muted);white-space:nowrap;font-size:.85rem}.recipe-time{color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.85rem}.portion-group{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-top:.75rem;display:flex}.portion-stepper{align-items:center;gap:.25rem;display:flex}.portion-button{border:1px solid var(--border);background:var(--surface);width:44px;height:44px;color:var(--text);border-radius:10px;font-size:1.2rem;line-height:1}.portion-button:disabled{opacity:.35}.portion-value{text-align:center;font-variant-numeric:tabular-nums;min-width:7.5rem}.portion-default{color:var(--text-muted);font-size:.8rem}.portion-reset{color:var(--accent);font-size:inherit;text-decoration:underline}.card-footer{justify-content:space-between;align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.save-button{border:1px solid var(--border);min-height:36px;color:var(--text-muted);border-radius:999px;padding:0 .7rem;font-size:.78rem}.save-button.is-saved{border-color:var(--diet-vegan);color:var(--diet-vegan);background:color-mix(in srgb, var(--diet-vegan) 12%, transparent)}.recipe-macros{gap:.9rem;margin:.75rem 0 .25rem;display:flex}.recipe-macros div{flex-direction:column;gap:.1rem;display:flex}.recipe-macros dt{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem}.recipe-macros dd{font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;font-size:1.05rem;font-weight:700}.actions{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.skeleton{background:var(--border);border-radius:4px;animation:1.4s ease-in-out infinite skeleton-pulse}.skeleton-title{width:55%;height:1.1rem;margin-bottom:.75rem}.skeleton-line{width:100%;height:.85rem;margin-bottom:.5rem}.skeleton-line.short{width:70%}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.45}}.recipe-detail{flex-direction:column;gap:1rem;display:flex}.section-title{margin:0 0 .75rem;font-size:1.05rem}.ingredient-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.ingredient-list li{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:baseline;gap:.35rem;padding-bottom:.5rem;display:flex}.ingredient-list li:last-child{border-bottom:none;padding-bottom:0}.ingredient-grams{font-variant-numeric:tabular-nums;min-width:4.5ch;font-weight:700}.ingredient-qty{text-align:right;background:var(--surface);border:1px solid var(--border);width:5ch;min-height:44px;color:var(--text);font-variant-numeric:tabular-nums;appearance:textfield;border-radius:8px;padding:0 .4rem}.ingredient-qty:focus{border-color:var(--accent);outline:none}.ingredient-qty::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ingredient-qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.ingredient-actions{margin-left:auto}.ingredient-original{color:var(--text-muted);font-size:.85rem;text-decoration:line-through}.ingredient-added{color:var(--text-muted);font-size:.85rem}.preview-hint{color:var(--text-muted);margin-bottom:.5rem;font-size:.85rem}.preview-error{color:var(--diet-paleo);margin:0 0 .5rem;font-size:.8rem}.ingredient-name{flex-direction:column;flex:auto;gap:.15rem;display:flex}.ingredient-note{width:100%;color:var(--text-muted);font-size:.85rem}.table-scroll{overflow-x:auto}.macro-table,.micro-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.macro-table th,.macro-table td,.micro-table th,.micro-table td{border-bottom:1px solid var(--border);text-align:right;padding:.45rem 0}.macro-table th:first-child,.macro-table td:first-child,.micro-table th:first-child,.micro-table td:first-child{text-align:left;padding-right:.5rem}.macro-table tbody tr:last-child th,.macro-table tbody tr:last-child td,.micro-table tbody tr:last-child th,.micro-table tbody tr:last-child td{border-bottom:none}.macro-table thead th,.micro-table thead th{color:var(--text-muted);font-size:.8rem;font-weight:600}.micro-coverage{color:var(--text-muted);font-size:.75rem;font-weight:400;display:block}.micro-table td:last-child{text-align:right;white-space:nowrap}.coverage-badge{border:1px solid var(--border);border-radius:999px;padding:.2rem .55rem;font-size:.8rem;font-weight:600;display:inline-block}.coverage-ok{color:var(--accent);border-color:var(--accent)}.coverage-warn{color:#b45309;border-color:#b45309}.coverage-low{color:#b91c1c;border-color:#b91c1c}.coverage-hint{color:#b45309;margin-top:.4rem;font-size:.85rem;display:block}.coverage-hint-low{color:#b91c1c}.instructions{white-space:pre-line;margin:0;line-height:1.6}.instructions-list{counter-reset:step-counter;margin:0;padding:0;list-style:none}.instructions-list li{overflow-wrap:break-word;align-items:flex-start;gap:.75rem;margin-bottom:.85rem;line-height:1.5;display:flex}.instructions-list li:before{counter-increment:step-counter;content:counter(step-counter);background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:.8rem;font-weight:700;line-height:1;display:flex}.step-text{overflow-wrap:break-word;flex:auto}.step-timer{border:1px solid var(--border);color:var(--text-muted);white-space:nowrap;border-radius:999px;flex-shrink:0;padding:.1rem .5rem;font-size:.8rem}.instructions-note{border-top:1px solid var(--border);color:var(--text-muted);margin-top:1rem;padding-top:.75rem;font-size:.9rem}.muted{color:var(--text-muted);font-size:.9rem}.tag-chip-keto{border-color:color-mix(in srgb, var(--diet-keto) 45%, transparent);color:var(--diet-keto)}.tag-chip-paleo{border-color:color-mix(in srgb, var(--diet-paleo) 45%, transparent);color:var(--diet-paleo)}.tag-chip-vegan{border-color:color-mix(in srgb, var(--diet-vegan) 45%, transparent);color:var(--diet-vegan)}.tag-chip-vegan-plus{border-color:color-mix(in srgb, var(--diet-vegan-soft) 45%, transparent);color:var(--diet-vegan-soft)}.tag-chip-tag{border-color:var(--border);color:var(--text-muted)}.tag-chip-longevity{border-color:color-mix(in srgb, var(--diet-longevity) 55%, transparent);color:var(--diet-longevity);box-shadow:0 0 10px color-mix(in srgb, var(--diet-longevity) 25%, transparent)}.tag-chip-longevity.is-active{border-color:var(--diet-longevity);color:#001014;background:var(--diet-longevity);box-shadow:0 0 18px color-mix(in srgb, var(--diet-longevity) 65%, transparent)}.tag-chip-keto.is-active{border-color:var(--diet-keto);color:var(--diet-keto);background:color-mix(in srgb, var(--diet-keto) 18%, transparent)}.tag-chip-paleo.is-active{border-color:var(--diet-paleo);color:var(--diet-paleo);background:color-mix(in srgb, var(--diet-paleo) 18%, transparent)}.tag-chip-vegan.is-active{border-color:var(--diet-vegan);color:var(--diet-vegan);background:color-mix(in srgb, var(--diet-vegan) 18%, transparent)}.tag-chip-vegan-plus.is-active{border-color:var(--diet-vegan-soft);color:var(--diet-vegan-soft);background:color-mix(in srgb, var(--diet-vegan-soft) 18%, transparent)}.tag-chip-tag.is-active{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb, var(--accent) 18%, transparent)}.tag-chip-reset{color:var(--text-muted);border-color:#0000;text-decoration:underline}.chip-count{color:var(--text-muted);font-variant-numeric:tabular-nums;opacity:.85;margin-left:.3rem;font-size:.75em}.tag-chip.is-active .chip-count{color:inherit}.list-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin:0 0 .5rem;display:flex}.list-actions{align-items:center;gap:.5rem;display:flex}.sort-select{border:1px solid var(--border);background:var(--surface);min-height:40px;color:var(--text);border-radius:10px;padding:0 .5rem;font-family:inherit;font-size:.8rem}.filter-button{border:1px solid var(--border);background:var(--surface);min-height:40px;color:var(--text-muted);border-radius:999px;padding:0 .75rem;font-size:.8rem}.filter-button.is-active{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.filter-reset{min-height:40px;color:var(--text-muted);padding:0 .25rem;font-size:.8rem;text-decoration:underline}.active-filters{flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem;display:flex}.active-filter-chip{border:1px solid var(--border);background:var(--surface);min-height:32px;color:var(--text-muted);border-radius:999px;padding:0 .6rem;font-size:.75rem}.filter-section+.filter-section{margin-top:1rem}.filter-heading{margin:0 0 .25rem;font-size:.95rem}.filter-sub{color:var(--text-muted);margin:0 0 .6rem;font-size:.8rem}.filter-chips{flex-wrap:wrap;gap:.4rem;display:flex}.sheet-actions{margin-top:1rem}.sheet-clear{border:1px solid var(--border);min-height:40px;color:var(--text-muted);border-radius:999px;padding:0 .75rem;font-size:.8rem}.range-grid{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.range-field{color:var(--text-muted);flex-direction:column;gap:.25rem;font-size:.75rem;display:flex}.range-field input,.filter-input{border:1px solid var(--border);background:var(--bg);min-height:40px;color:var(--text);border-radius:10px;padding:0 .6rem;font-family:inherit;font-size:.9rem}.range-field input:focus,.filter-input:focus{border-color:var(--accent);outline:none}.filter-input{width:100%;margin-top:.5rem}.exclude-chips{margin-bottom:.5rem}.exclude-heading{color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;margin:.6rem 0 .25rem;font-size:.7rem}.exclude-count{color:var(--text-muted);margin-left:.5rem;font-size:.75rem}.exclude-results{border:1px solid var(--border);border-radius:10px;margin:.25rem 0 0;padding:0;list-style:none;overflow:hidden}.exclude-result{border-bottom:1px solid var(--border);width:100%;min-height:40px;color:var(--text);text-align:left;padding:.4rem .6rem;font-size:.85rem}.exclude-results li:last-child .exclude-result{border-bottom:0}.exclude-result:active{background:var(--border)}.fat-quality{border-top:1px solid var(--border);margin-top:1rem;padding-top:.75rem}.fat-row{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.fat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem}.fat-ratio{font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:700}.fat-ratio.is-good{color:var(--success)}.fat-ratio.is-mid{color:var(--macro-fat)}.fat-ratio.is-bad{color:var(--danger)}.fat-detail{font-variant-numeric:tabular-nums;margin-top:.25rem;font-size:.9rem}.fat-hint{color:var(--text-muted);margin-top:.35rem;font-size:.75rem;line-height:1.4;display:block}.sheet-backdrop{z-index:60;background:#0009;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);border:1px solid var(--border);border-radius:16px 16px 0 0;flex-direction:column;width:100%;max-width:480px;max-height:80vh;padding:1rem;display:flex}.sheet-head{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.sheet-close{width:44px;height:44px;color:var(--text-muted);border-radius:10px;flex:none;font-size:1.1rem}.sheet-body{padding-top:.5rem;overflow-y:auto}.source-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.source-item{border:1px solid var(--border);background:var(--bg);border-radius:12px;padding:.75rem}.source-head{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.source-name{font-weight:700}.source-count{color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.75rem}.source-desc{margin-top:.35rem;font-size:.85rem;line-height:1.45}.source-meta{color:var(--text-muted);margin-top:.35rem;font-size:.75rem}.source-link{color:var(--accent)}.source-note{border-top:1px solid var(--border);color:var(--text-muted);margin-top:1rem;padding-top:.75rem;font-size:.75rem;line-height:1.45}.ingredient-drift{border:1px solid var(--danger);color:var(--danger);cursor:help;border-radius:999px;margin-top:.25rem;padding:.1rem .45rem;font-size:.7rem;font-weight:600;display:inline-block}.vegan-hint-drift{color:var(--danger)}
