.catalog-shell{position:relative;display:flex;flex-direction:column;gap:10px;min-height:240px;overflow:hidden}.catalog-actions{display:flex;gap:8px;flex-wrap:wrap}.catalog-actions .btn{font-size:11px;padding:9px 12px;min-height:38px}.catalog-search{display:flex;align-items:center;gap:10px;position:relative;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:0 12px;min-height:46px}.catalog-search>svg{width:18px;color:var(--muted)}.catalog-search input{flex:1;width:0;min-width:0;border:0;background:transparent;box-shadow:none;padding:12px 32px 12px 0;color:var(--ink)}.catalog-search input::-webkit-search-cancel-button{display:none}.catalog-broom{position:absolute;right:5px;top:3px;width:38px;height:38px;color:var(--ink)}.catalog-reference{font-size:10px;color:var(--muted);margin:0 34px 0 3px}.catalog-columns{display:grid;grid-template-columns:30px minmax(70px,1fr) repeat(4,65px) 70px;align-items:center;column-gap:4px;font-variant-numeric:tabular-nums}.catalog-columns>[data-catalog-column],.catalog-columns>[data-catalog-value]{text-align:right}.catalog-heading{min-height:33px;padding:6px 10px 6px 0;margin-right:34px;background:var(--surface-alt);border-bottom:1px solid var(--line);font-size:11px;font-weight:650;flex-shrink:0}.catalog-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:34px;scrollbar-width:none;overscroll-behavior:contain;position:relative;overflow-anchor:none}.catalog-scroll::-webkit-scrollbar{display:none}#foods-body{position:relative}.catalog-letter-heading{font-size:18px;font-weight:750;min-height:38px;padding:9px 8px 5px;color:var(--ink);border-bottom:1px solid var(--line)}.catalog-row{position:relative;overflow:hidden;touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;outline-offset:-3px;border-bottom:1px solid var(--line)}.catalog-row-content{position:relative;z-index:1;background:var(--surface);min-height:58px;padding:7px 10px 7px 0;transform:translateX(var(--catalog-swipe,0px));transition:transform .18s ease;color:var(--ink);font-size:12px}.catalog-row.swipe-open{--catalog-swipe:-64px}.catalog-row.swiping .catalog-row-content{transition:none}.catalog-name{min-width:0;padding:0 4px}.catalog-name strong{font-size:12px;font-weight:550;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.45}.catalog-name small{font-size:9px;opacity:.8;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catalog-favorite{border:0;background:transparent;display:grid;place-items:center;padding:0;min-height:44px;width:30px;color:inherit}.catalog-favorite svg{width:18px;height:18px}.catalog-favorite.is-favorite svg{fill:#ffc955;stroke:#99600a}.catalog-swipe-actions{position:absolute;right:0;top:0;bottom:0;width:64px;display:flex}.catalog-swipe-actions button{width:100%;border:0;background:var(--bad,#b23753);color:#fff}.catalog-recipe .catalog-row-content{background:var(--recipe-color,var(--surface));color:var(--recipe-ink,var(--ink))}.catalog-recipe .catalog-name small{color:inherit}.catalog-alphabet{position:absolute;right:0;width:30px;display:grid;grid-template-rows:repeat(26,minmax(0,1fr));gap:0;padding:0;border:0;background:transparent;overflow:visible;z-index:3}.catalog-alphabet .alphabet-letter{position:relative;isolation:isolate;box-sizing:border-box;width:30px;height:calc(100% - 1px);min-height:0;display:grid;place-items:center;align-self:center;padding:0 7px;border:0;border-radius:5px;color:var(--muted);background:transparent;box-shadow:none;font-size:10px;font-weight:900;line-height:1;touch-action:manipulation}.catalog-alphabet .alphabet-letter:before{content:"";position:absolute;top:50%;left:50%;width:16px;height:16px;border:1px solid var(--line);border-radius:50%;background:var(--surface);box-sizing:border-box;transform:translate(-50%,-50%);z-index:-1}.catalog-alphabet .is-active{color:var(--good,#07855e);cursor:pointer}.catalog-alphabet .is-disabled{opacity:.65;cursor:default}.catalog-alphabet .is-current{color:var(--good,#07855e)}.catalog-alphabet .is-current:before{background:#18b86f21;border-color:#18b86f66}.catalog-alphabet .is-current:after{content:"";position:absolute;top:50%;left:calc(50% + 10px);width:4px;height:4px;border-radius:50%;background:#18b86f;transform:translateY(-50%)}.catalog-alphabet button:focus-visible{outline:2px solid var(--accent);outline-offset:0}.catalog-shell .empty-state{padding:30px 10px}.catalog-shell [hidden]{display:none!important}
@media(max-width:760px){.catalog-shell{gap:8px}.catalog-actions{gap:6px;flex-wrap:nowrap}.catalog-actions .btn{padding:7px 8px;font-size:10px;min-width:0;min-height:35px;gap:5px}.catalog-actions svg{width:15px;height:15px}.catalog-columns{grid-template-columns:26px minmax(65px,1fr) repeat(4,31px) 37px;column-gap:1px}.catalog-heading{font-size:10px;padding-right:4px}.catalog-row-content{font-size:11px;padding-right:4px;min-height:58px}.catalog-name strong{font-size:11px}.catalog-name small{font-size:8px}.catalog-favorite{width:26px}.catalog-favorite svg{width:16px;height:16px}.catalog-reference{font-size:9px}.catalog-search input{font-size:13px}.catalog-letter-heading{font-size:16px}}
@media(max-width:360px){.catalog-actions .btn{font-size:9px;padding:7px 5px;gap:4px}.catalog-columns{grid-template-columns:23px minmax(52px,1fr) repeat(4,27px) 32px;column-gap:0}.catalog-row-content{font-size:10px}.catalog-name strong{font-size:10px}.catalog-favorite{width:23px}.catalog-scroll{padding-right:29px}.catalog-heading{margin-right:29px}.catalog-alphabet{right:-2px}}
@media(prefers-reduced-motion:reduce){.catalog-row-content{transition:none}}

body[data-page=foods]{overflow:hidden}body[data-page=foods] .app-footer{display:none}
