.header{position:fixed;top:0;left:0;right:0;height:calc(var(--header-h) + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px);background:#f6faf8d1;backdrop-filter:blur(16px) saturate(1.6);-webkit-backdrop-filter:blur(16px) saturate(1.6);border-bottom:1px solid rgba(228,239,235,.8);z-index:100;transition:background var(--dur) var(--ease-out)}.header-inner{max-width:var(--max-width);margin:0 auto;height:100%;display:flex;align-items:center;padding:0 16px}.header-logo{display:flex;align-items:center;gap:9px}.logo-mark{font-size:23px;line-height:1;display:inline-block;animation:logoFloat 4s ease-in-out infinite;transition:transform var(--dur) var(--ease-spring)}.header-logo:hover .logo-mark{transform:rotate(-12deg) scale(1.12)}@keyframes logoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.logo-text{font-size:18px;font-weight:800;letter-spacing:-.01em;background:linear-gradient(120deg,var(--primary-deep),var(--primary) 60%,#2fcfae);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.logo-tag{font-size:11px;color:var(--primary-deep);background:var(--primary-light);padding:3px 9px;border-radius:999px;font-weight:600;border:1px solid rgba(23,184,144,.15)}.header-logo{min-height:44px;padding:4px 0}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:#ffffffe6;backdrop-filter:blur(16px) saturate(1.6);-webkit-backdrop-filter:blur(16px) saturate(1.6);border-top:1px solid rgba(228,239,235,.9);display:flex;z-index:100;box-shadow:0 -4px 20px #1f2d2a0a}.nav-item{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--text-muted);min-height:48px;transition:color var(--dur) var(--ease-out)}.nav-item.active{color:var(--primary-dark)}.nav-icon{font-size:22px;line-height:1;transition:transform var(--dur) var(--ease-spring)}.nav-item.active .nav-icon{transform:translateY(-2px) scale(1.12);animation:pop .4s var(--ease-spring)}.nav-label{font-size:11px;font-weight:500;transition:font-weight var(--dur)}.nav-item.active .nav-label{font-weight:700}.nav-item.active:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:22px;height:3px;border-radius:0 0 3px 3px;background:var(--primary);animation:indicatorIn .35s var(--ease-spring)}@keyframes indicatorIn{0%{width:0;opacity:0}to{width:22px;opacity:1}}@media (min-width: 768px) and (min-height: 600px){.bottom-nav{justify-content:center;gap:40px}.nav-item{flex:0 0 auto;flex-direction:row;gap:7px;padding:0 16px}.nav-item.active:before{top:auto;bottom:6px;width:16px;height:2px;border-radius:2px}}@media (orientation: landscape) and (max-height: 520px){:root{--bottom-nav-h: 50px}.nav-item{flex-direction:row;gap:6px}.nav-icon{font-size:17px}.nav-label{font-size:11px}.nav-item.active:before{display:none}}.recipe-card{display:flex;flex-direction:column;transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out);will-change:transform}.recipe-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:#17b89040}.recipe-card:active{transform:translateY(-1px) scale(.99)}.recipe-card-cover{height:142px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eafaf4,#d8f5ec 55%,#fbf3ec);position:relative;overflow:hidden}.recipe-card-cover:after{content:"";position:absolute;top:-50%;right:-50%;bottom:-50%;left:-50%;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.55),transparent 55%);opacity:0;transition:opacity var(--dur-slow) var(--ease-out),transform .9s var(--ease-out)}.recipe-card:hover .recipe-card-cover:after{opacity:1;transform:translate(8%,8%)}.recipe-card-cover img{width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.03);transition:opacity .45s var(--ease-out),transform .6s var(--ease-out)}.recipe-card-cover.img-loaded img{opacity:1;transform:scale(1)}.recipe-card:hover .recipe-card-cover.img-loaded img{transform:scale(1.06)}.recipe-card-emoji{font-size:62px;transition:transform var(--dur) var(--ease-spring);filter:drop-shadow(0 4px 10px rgba(23,184,144,.15))}.recipe-card:hover .recipe-card-emoji{transform:scale(1.1) rotate(-4deg)}.recipe-card-body{padding:15px 17px 17px;display:flex;flex-direction:column;gap:8px;flex:1}.recipe-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.recipe-card-title{font-size:16.5px;font-weight:700;line-height:1.35;color:var(--text);transition:color var(--dur) var(--ease-out)}.recipe-card:hover .recipe-card-title{color:var(--primary-deep)}.recipe-card-desc{font-size:13px;color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.55}.recipe-card-core{font-size:12.5px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recipe-card-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:4px}.recipe-card-meta .chip{font-size:11.5px;padding:4px 10px;background:var(--bg);border-color:var(--border)}.hero{position:relative;background:linear-gradient(135deg,#14b18c,#2fcfae 45%,#7eecd1);border-radius:var(--radius-lg);color:#fff;padding:30px 24px;margin:6px 0 20px;overflow:hidden;box-shadow:0 14px 36px #17b89047;animation:fadeScale .55s var(--ease-out) both}.hero:before{content:"";position:absolute;top:-60px;right:-40px;width:200px;height:200px;border-radius:50%;background:#ffffff2e;filter:blur(2px);animation:float 7s ease-in-out infinite}.hero:after{content:"🍳";position:absolute;right:-8px;bottom:-20px;font-size:100px;opacity:.16;transform:rotate(-8deg);animation:float 6s ease-in-out infinite;animation-delay:1s}.hero-title{position:relative;font-size:clamp(20px,6vw,26px);line-height:1.32;margin-bottom:9px;font-weight:800;letter-spacing:-.01em;animation:fadeUp .6s var(--ease-out) .05s both}.hero-sub{position:relative;font-size:13.5px;opacity:.95;margin-bottom:18px;animation:fadeUp .6s var(--ease-out) .12s both}.hero-btn{position:relative;background:#fff;color:var(--primary-deep);font-weight:700;box-shadow:0 6px 18px #0a7d5e40;animation:fadeUp .6s var(--ease-out) .18s both}.hero-btn:hover{background:#fff;transform:translateY(-2px);box-shadow:0 10px 26px #0a7d5e4d}.hero-stats{position:relative;display:flex;gap:14px;margin-top:20px;font-size:12px;opacity:.95;flex-wrap:wrap;animation:fadeUp .6s var(--ease-out) .24s both}.toolbar{margin-bottom:16px;animation:fadeUp .5s var(--ease-out) .1s both}.search-row{display:flex;gap:9px}.search-input{flex:1;min-width:0;padding:13px 18px;border:1.5px solid var(--border);border-radius:999px;font-size:16px;background:var(--bg-card);color:var(--text);outline:none;transition:border-color var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out);box-shadow:var(--shadow-xs);-webkit-appearance:none;-moz-appearance:none;appearance:none}.search-input::placeholder{color:var(--text-muted)}.search-input:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-glow)}.search-go{padding:0 22px;flex-shrink:0}.cat-row{display:flex;gap:8px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;margin-top:14px;padding-bottom:2px;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;-webkit-mask-image:linear-gradient(to right,#000 94%,transparent 100%);mask-image:linear-gradient(to right,#000 94%,transparent 100%);scroll-snap-type:x proximity}.cat-row::-webkit-scrollbar{display:none}.cat-row .chip{flex:0 0 auto;scroll-snap-align:start}.chip-num{font-size:10px;opacity:.65;margin-left:3px}.chip-active{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600;box-shadow:0 4px 12px #17b89047}.chip-active .chip-num{opacity:.85}.sort-row{display:flex;align-items:center;gap:6px;margin-top:12px}.sort-label{font-size:12px;color:var(--text-muted);margin-right:2px}.sort-btn{padding:6px 14px;border-radius:999px;font-size:12.5px;color:var(--text-secondary);background:transparent;border:1px solid transparent;transition:all var(--dur) var(--ease-out)}.sort-btn:hover{background:var(--bg-card);color:var(--primary-dark)}.sort-active{background:var(--primary-light);border-color:#17b89040;color:var(--primary-deep);font-weight:700}.search-result-hint{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--text-secondary);margin-bottom:14px;animation:fadeIn .3s var(--ease-out)}.clear-search{font-size:12px;color:var(--primary-dark);text-decoration:underline;text-underline-offset:2px}.recipe-grid{display:grid;grid-template-columns:1fr;gap:14px}@media (min-width: 560px){.recipe-grid{grid-template-columns:1fr 1fr}}@media (min-width: 900px){.recipe-grid{grid-template-columns:1fr 1fr 1fr}}.recipe-grid>*{animation:fadeUp .5s var(--ease-out) both}.recipe-grid>*:nth-child(1){animation-delay:.02s}.recipe-grid>*:nth-child(2){animation-delay:.06s}.recipe-grid>*:nth-child(3){animation-delay:.1s}.recipe-grid>*:nth-child(4){animation-delay:.14s}.recipe-grid>*:nth-child(5){animation-delay:.18s}.recipe-grid>*:nth-child(6){animation-delay:.22s}.recipe-grid>*:nth-child(7){animation-delay:.26s}.recipe-grid>*:nth-child(8){animation-delay:.3s}.recipe-grid>*:nth-child(n+9){animation-delay:.34s}.pager{display:flex;align-items:center;justify-content:center;gap:16px;margin:28px 0 8px}.pager-btn{padding:10px 20px;font-size:14px;font-weight:500;border:1.5px solid var(--border-strong);border-radius:999px;background:var(--bg-card);color:var(--text-secondary);transition:all var(--dur) var(--ease-out)}.pager-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary-dark);background:var(--primary-light)}.pager-btn:disabled{opacity:.35;cursor:not-allowed}.pager-num{font-size:13px;color:var(--text-muted);font-variant-numeric:tabular-nums}.random-entry{width:100%;display:flex;align-items:center;gap:13px;padding:15px 18px;margin-bottom:18px;border-radius:var(--radius);background:linear-gradient(120deg,#fff,#f2fcf8);border:1.5px solid rgba(23,184,144,.22);box-shadow:var(--shadow);text-align:left;transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out);animation:fadeUp .5s var(--ease-out) .26s both}.random-entry:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--primary)}.random-entry:active{transform:translateY(0) scale(.99)}.random-entry-icon{font-size:27px;line-height:1;flex-shrink:0;animation:diceShake 3.5s ease-in-out infinite}@keyframes diceShake{0%,86%,to{transform:rotate(0)}90%{transform:rotate(-14deg)}94%{transform:rotate(12deg)}}.random-entry-text{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.random-entry-text b{font-size:15px;font-weight:700;color:var(--text)}.random-entry-text em{font-size:12px;font-style:normal;color:var(--text-muted)}.random-entry-arrow{color:var(--primary);font-size:17px;font-weight:700;flex-shrink:0;transition:transform var(--dur) var(--ease-out)}.random-entry:hover .random-entry-arrow{transform:translate(4px)}.random-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f28216b;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:200;display:flex;align-items:flex-end;justify-content:center;animation:fadeIn .22s var(--ease-out)}.random-sheet{width:100%;max-width:var(--max-width);max-height:86vh;max-height:86dvh;overflow-y:auto;background:var(--bg-card);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:10px 18px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -12px 44px #0f282138;animation:sheetUp .36s var(--ease-out)}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.random-sheet-handle{width:40px;height:4px;border-radius:2px;background:var(--border-strong);margin:0 auto 12px}.random-sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.random-sheet-head h3{font-size:19px;font-weight:800;letter-spacing:-.01em}.random-close{width:34px;height:34px;border-radius:50%;background:var(--bg);color:var(--text-secondary);font-size:21px;line-height:1;display:flex;align-items:center;justify-content:center;transition:all var(--dur-fast) var(--ease-spring)}.random-close:hover{background:var(--primary-light);color:var(--primary-dark);transform:rotate(90deg)}.random-loading{display:flex;flex-direction:column;align-items:center;padding:40px 0;color:var(--text-muted);font-size:14px}.random-empty{text-align:center;padding:40px 0;color:var(--text-muted);font-size:14px}.random-list{display:flex;flex-direction:column;gap:11px;margin-bottom:16px}.random-card{display:flex;align-items:center;gap:13px;padding:11px;border-radius:var(--radius);background:var(--bg);border:1px solid var(--border);transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out);animation:fadeUp .42s var(--ease-out) both}.random-card:hover{transform:translate(3px);border-color:var(--primary);box-shadow:var(--shadow);background:var(--bg-card)}.random-card-media{width:74px;height:74px;border-radius:14px;overflow:hidden;flex-shrink:0;background:linear-gradient(135deg,#eafaf4,#d8f5ec);display:flex;align-items:center;justify-content:center}.random-card-media img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-slow) var(--ease-out)}.random-card:hover .random-card-media img{transform:scale(1.07)}.random-card-emoji{font-size:34px}.random-card-body{flex:1;min-width:0}.random-card-body h4{font-size:16px;font-weight:700;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.random-card-core{font-size:12.5px;color:var(--text-secondary);margin-bottom:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.random-card-meta{display:flex;gap:10px;font-size:11.5px;color:var(--text-muted)}.random-card-meta .meta-unknown{opacity:.85}.random-actions{display:flex;gap:10px;padding-top:4px}.random-reroll{flex:1}.random-done{flex:1.3}@media (max-width: 360px){.hero{padding:20px 16px;margin-bottom:14px}.hero-title{font-size:19px;line-height:1.28;margin-bottom:7px}.hero-sub{font-size:12.5px;margin-bottom:14px}.hero-btn{padding:11px 18px;font-size:14px}.hero-stats{gap:10px;margin-top:14px;font-size:11px}.random-entry{padding:12px 14px;gap:10px}.random-entry-icon{font-size:22px}.random-entry-text b{font-size:14px}.random-entry-text em{font-size:11px}.search-row{gap:7px}.search-go{padding:0 16px;font-size:14px}}@media (max-width: 360px){.hero-sub-extra{display:none}}.fridge-page{animation:fadeIn .3s var(--ease-out)}.page-title{font-size:clamp(20px,5.5vw,25px);font-weight:800;letter-spacing:-.01em;margin:8px 0 5px;animation:fadeUp .5s var(--ease-out) both}.page-sub{color:var(--text-secondary);font-size:14px;margin-bottom:16px;animation:fadeUp .5s var(--ease-out) .05s both}.page-sub b{color:var(--primary-dark);font-weight:700}.pantry-banner{display:flex;gap:11px;align-items:flex-start;background:linear-gradient(120deg,#ecfaf5,#f4fdfa);border:1px solid rgba(23,184,144,.18);border-radius:var(--radius);padding:13px 15px;font-size:13px;color:var(--primary-deep);line-height:1.55;margin-bottom:16px;animation:fadeUp .5s var(--ease-out) .1s both}.pantry-icon{font-size:19px;line-height:1.2;animation:float 3.5s ease-in-out infinite}.pantry-banner b{color:var(--primary-deep);font-size:14px}.pantry-hint{display:block;color:var(--text-muted);font-size:12px;margin-top:3px}.add-box{display:flex;gap:9px;margin-bottom:12px;animation:fadeUp .5s var(--ease-out) .14s both}.add-input{flex:1;min-width:0;padding:14px 20px;border:1.5px solid var(--border);border-radius:999px;font-size:16px;background:var(--bg-card);color:var(--text);outline:none;transition:border-color var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out);box-shadow:var(--shadow-xs);-webkit-appearance:none;-moz-appearance:none;appearance:none}.add-input::placeholder{color:var(--text-muted)}.add-input:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-glow)}.photo-btn-sm{width:50px;height:50px;padding:0;font-size:20px;flex-shrink:0;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:transform var(--dur) var(--ease-spring),border-color var(--dur),color var(--dur)}.photo-btn-sm:hover{transform:rotate(-6deg) scale(1.06);border-color:var(--primary);color:var(--primary)}.suggest-list{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:12px;box-shadow:var(--shadow-md);animation:fadeScale .22s var(--ease-out)}.suggest-item{display:flex;align-items:center;gap:9px;width:100%;padding:13px 17px;font-size:15px;text-align:left;border-bottom:1px solid var(--border);transition:background var(--dur-fast) var(--ease-out)}.suggest-item:last-child{border-bottom:none}.suggest-item:hover{background:var(--primary-light)}.suggest-added{margin-left:auto;font-size:12px;color:var(--primary-dark);font-weight:600}.selected-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.tag{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:var(--primary-light);border:1px solid rgba(23,184,144,.3);color:var(--primary-deep);border-radius:999px;font-size:14px;font-weight:600;animation:pop .32s var(--ease-spring);transition:background var(--dur),border-color var(--dur),transform var(--dur-fast) var(--ease-spring)}.tag:hover{background:#d6f5ea;border-color:var(--primary)}.tag-x{opacity:.55;font-size:15px;transition:opacity var(--dur)}.tag:hover .tag-x{opacity:1}.tag-clear{font-size:13px;color:var(--text-muted);padding:8px 10px;text-decoration:underline;text-underline-offset:3px;transition:color var(--dur)}.tag-clear:hover{color:var(--danger)}.search-btn{width:100%;padding:16px;font-size:16px;margin-bottom:10px;animation:fadeUp .5s var(--ease-out) .18s both}.recognized-note{font-size:13px;color:var(--primary-dark);text-align:center;margin-bottom:8px;animation:fadeIn .3s var(--ease-out)}.quick-presets{margin:18px 0;animation:fadeUp .5s var(--ease-out) .22s both}.quick-title{font-size:13px;color:var(--text-muted);margin-bottom:10px}.quick-list{display:flex;flex-wrap:wrap;gap:9px}.quick-chip{padding:9px 16px;border-radius:999px;background:var(--bg-card);border:1px solid var(--border);font-size:13px;color:var(--text-secondary);transition:all var(--dur) var(--ease-out);box-shadow:var(--shadow-xs)}.quick-chip:hover{border-color:var(--primary);color:var(--primary-deep);background:var(--primary-light);transform:translateY(-1px);box-shadow:var(--shadow)}.quick-chip:active{transform:scale(.96)}.ingredient-groups{margin-top:14px}.panel-toggle{width:100%;padding:12px 16px;text-align:left;font-size:13.5px;font-weight:600;color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;transition:all var(--dur) var(--ease-out);box-shadow:var(--shadow-xs)}.panel-toggle:hover{border-color:var(--primary);color:var(--primary-deep);background:var(--primary-light)}.groups-hint{font-size:13px;color:var(--text-muted);margin-bottom:10px}.ing-group{margin-bottom:10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);overflow:hidden;transition:border-color var(--dur),box-shadow var(--dur)}.ing-group[open]{box-shadow:var(--shadow);border-color:var(--border-strong)}.ing-group-title{padding:13px 16px;font-size:15px;font-weight:700;color:var(--text);cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;transition:background var(--dur-fast)}.ing-group-title:hover{background:var(--bg)}.ing-group-title::-webkit-details-marker{display:none}.ing-group-title:before{content:"▸";color:var(--primary);transition:transform var(--dur) var(--ease-spring);display:inline-block;font-size:13px}details[open] .ing-group-title:before{transform:rotate(90deg)}.group-count{font-size:11.5px;color:var(--text-muted);font-weight:500;background:var(--bg);padding:2px 9px;border-radius:999px}.ing-list{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 16px;animation:fadeIn .3s var(--ease-out)}.ing-item{display:inline-flex;align-items:center;gap:5px;padding:8px 14px;border-radius:999px;background:var(--bg);border:1px solid var(--border);font-size:14px;transition:all var(--dur-fast) var(--ease-out)}.ing-item:hover{border-color:var(--primary);background:var(--primary-light);transform:translateY(-1px)}.ing-item-active{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600;box-shadow:0 4px 12px #17b8904d;animation:pop .3s var(--ease-spring)}.ing-emoji{font-size:15px;line-height:1;flex-shrink:0}.ing-name{line-height:1.2;white-space:nowrap}.results{margin-top:26px;padding-top:22px;border-top:2px dashed var(--border-strong);animation:fadeIn .35s var(--ease-out)}.results-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}.results-title{font-size:clamp(17px,5vw,20px);font-weight:800;letter-spacing:-.01em}.results-summary{display:flex;gap:7px}.summary-chip{padding:6px 13px;border-radius:999px;font-size:12px;font-weight:700;transition:transform var(--dur-fast) var(--ease-spring)}.summary-chip:hover{transform:translateY(-1px)}.summary-can{background:var(--primary-light);color:var(--primary-deep)}.summary-almost{background:var(--warning-light);color:#b9791f}.summary-more{background:var(--bg);color:var(--text-muted)}.notice-banner{background:linear-gradient(120deg,#eef8fb,#f5fbfd);color:#2c5f8d;border:1px solid #d4e7f2;border-radius:var(--radius-sm);padding:13px 15px;font-size:13.5px;line-height:1.6;margin-bottom:16px;animation:fadeUp .4s var(--ease-out)}.notice-banner b{color:#1a4266;font-size:15px}.stale-banner{background:var(--warning-light);color:#b9791f;border:1px solid #f6e2bd;border-radius:var(--radius-sm);padding:11px 15px;font-size:13px;margin-bottom:14px;animation:shakeIn .4s var(--ease-out)}.empty-title{font-size:15px;font-weight:700;color:var(--text-secondary);margin-bottom:5px}.empty-sub{font-size:13px;color:var(--text-muted)}.result-section{margin-bottom:26px;animation:fadeUp .45s var(--ease-out) both}.result-section:nth-of-type(2){animation-delay:.05s}.result-section:nth-of-type(3){animation-delay:.1s}.result-section:nth-of-type(4){animation-delay:.15s}.result-section-title{font-size:16px;font-weight:700;margin-bottom:12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.count-badge{font-size:11.5px;font-weight:700;background:var(--bg);color:var(--text-secondary);padding:2px 9px;border-radius:999px;font-variant-numeric:tabular-nums}.section-hint{font-size:12px;font-weight:400;color:var(--text-muted)}.result-list{display:flex;flex-direction:column;gap:11px}.result-item{display:block;background:var(--bg-card);border-radius:var(--radius);padding:15px 17px;box-shadow:var(--shadow);border:1px solid rgba(228,239,235,.8);border-left:4px solid transparent;transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out);animation:fadeUp .4s var(--ease-out) both}.result-list>*:nth-child(1){animation-delay:.03s}.result-list>*:nth-child(2){animation-delay:.07s}.result-list>*:nth-child(3){animation-delay:.11s}.result-list>*:nth-child(4){animation-delay:.15s}.result-list>*:nth-child(5){animation-delay:.19s}.result-list>*:nth-child(n+6){animation-delay:.22s}.result-item:hover{transform:translate(3px);box-shadow:var(--shadow-md)}.result-can{border-left-color:var(--primary)}.result-almost{border-left-color:var(--warning)}.result-more{border-left-color:#c9d6d1}.result-item-head{display:flex;align-items:center;gap:11px;margin-bottom:9px}.result-item-emoji{font-size:29px;transition:transform var(--dur) var(--ease-spring)}.result-item-thumb{width:54px;height:54px;border-radius:13px;object-fit:cover;flex-shrink:0;background:linear-gradient(135deg,#eafaf4,#d8f5ec);box-shadow:var(--shadow-xs);transition:transform var(--dur) var(--ease-spring)}.result-item:hover .result-item-thumb{transform:scale(1.05)}.meta-unknown{color:var(--text-muted);opacity:.85}.result-item:hover .result-item-emoji{transform:scale(1.12)}.result-item-info{flex:1;min-width:0}.result-item-title{font-size:16px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color var(--dur)}.result-item:hover .result-item-title{color:var(--primary-deep)}.result-item-meta{display:flex;gap:9px;font-size:12px;color:var(--text-muted);align-items:center}.result-item-meta .difficulty{font-size:11px}.result-item-missing{font-size:13px;color:#a46a12;background:var(--warning-light);padding:7px 11px;border-radius:var(--radius-sm);margin-bottom:9px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.missing-badge{flex-shrink:0;background:#f3c674;color:#6b4a10;font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px}.result-item-needs,.result-item-seasoning{display:flex;gap:8px;font-size:12.5px;line-height:1.55;margin-top:5px;align-items:flex-start}.needs-label{flex-shrink:0;color:var(--primary-deep);background:var(--primary-light);padding:0 7px;border-radius:5px;font-size:11px;height:19px;line-height:19px;font-weight:600}.result-item-seasoning .needs-label{color:var(--text-muted);background:var(--bg)}.needs-core{color:var(--text);font-weight:500}.needs-seasoning{color:var(--text-muted)}.more-btn{width:100%;margin-top:11px;padding:12px;font-size:14px;color:var(--text-secondary);background:var(--bg-card);border:1.5px dashed var(--border-strong);border-radius:var(--radius-sm);transition:all var(--dur) var(--ease-out)}.more-btn:hover{border-color:var(--primary);color:var(--primary-deep);background:var(--primary-light)}.replenish-section{background:linear-gradient(130deg,#ecfaf5,#f3fdfa);border:1px solid rgba(23,184,144,.18);border-radius:var(--radius);padding:17px}.replenish-list{display:flex;flex-direction:column;gap:9px}.replenish-item{display:flex;align-items:center;gap:11px;background:var(--bg-card);border-radius:var(--radius-sm);padding:11px 15px;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur) var(--ease-out)}.replenish-item:hover{transform:translate(2px);box-shadow:var(--shadow)}.replenish-emoji{font-size:19px}.replenish-name{flex:1;font-size:14px;font-weight:600}.replenish-count{font-size:13px;color:var(--primary-dark);font-weight:800;background:var(--primary-light);padding:3px 10px;border-radius:999px}@media (max-width: 380px){.add-input{padding:13px 16px;font-size:14px}.page-title{font-size:22px}.results-title{font-size:18px}}.detail-page{padding-bottom:100px;animation:fadeIn .3s var(--ease-out)}.detail-hero{position:relative;height:clamp(170px,46vw,240px);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:18px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eafaf4,#d8f5ec 55%,#fbf3ec);box-shadow:var(--shadow-md);animation:fadeScale .5s var(--ease-out) both}.detail-hero img{width:100%;height:100%;object-fit:cover}.detail-hero-emoji{font-size:84px;filter:drop-shadow(0 8px 20px rgba(23,184,144,.2));animation:float 4s ease-in-out infinite}.detail-hero-overlay{position:absolute;left:0;right:0;bottom:0;padding:48px 20px 18px;background:linear-gradient(transparent,#0f2821b8)}.detail-title{color:#fff;font-size:clamp(20px,5.5vw,25px);font-weight:800;letter-spacing:-.01em;margin-bottom:9px;text-shadow:0 2px 8px rgba(0,0,0,.2)}.detail-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.chip-white{background:#ffffff38;border:1px solid rgba(255,255,255,.3);color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-weight:500}.chip-unknown-white{background:transparent;border-style:dashed;border-color:#ffffff73;color:#fffc}.detail-meta .difficulty{font-size:15px;color:#ffd88a}.detail-desc{color:var(--text-secondary);font-size:14px;line-height:1.65;margin-bottom:18px;animation:fadeUp .5s var(--ease-out) .08s both}.servings-panel{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 17px;margin-bottom:22px;background:linear-gradient(120deg,#f8fdfb,#fff);animation:fadeUp .5s var(--ease-out) .12s both}.servings-info{flex:1;min-width:0}.servings-label{font-size:14.5px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:7px}.estimated-tag{font-size:10.5px;font-weight:700;color:var(--warning);background:var(--warning-light);border:1px solid #f6e2bd;padding:2px 8px;border-radius:999px;letter-spacing:.02em}.servings-hint{font-size:11.5px;color:var(--text-muted);margin-top:3px;line-height:1.4}.servings-control{display:flex;align-items:center;gap:10px;flex-shrink:0}.servings-btn{width:34px;height:34px;border-radius:50%;background:var(--primary-light);color:var(--primary-dark);font-size:19px;font-weight:600;display:flex;align-items:center;justify-content:center;transition:all var(--dur-fast) var(--ease-spring)}.servings-btn:hover:not(:disabled){background:var(--primary);color:#fff;transform:scale(1.08)}.servings-btn:active:not(:disabled){transform:scale(.92)}.servings-btn:disabled{opacity:.35;cursor:not-allowed}.servings-value{font-size:15px;font-weight:700;min-width:52px;text-align:center;color:var(--primary-deep);font-variant-numeric:tabular-nums}.detail-section{margin-bottom:26px;animation:fadeUp .5s var(--ease-out) both}.detail-section:nth-of-type(2){animation-delay:.06s}.detail-section:nth-of-type(3){animation-delay:.1s}.detail-section:nth-of-type(4){animation-delay:.14s}.detail-section:nth-of-type(5){animation-delay:.18s}.detail-section:nth-of-type(n+6){animation-delay:.22s}.section-title{font-size:18px;font-weight:800;letter-spacing:-.01em;margin-bottom:13px;display:flex;align-items:center;gap:7px}.section-title-danger{color:var(--danger)}.ing-group-block{margin-bottom:16px}.ing-group-label{font-size:12.5px;font-weight:700;color:var(--primary-deep);background:var(--primary-light);display:inline-block;padding:3px 11px;border-radius:999px;margin-bottom:8px}.ing-row{display:flex;align-items:center;gap:10px;padding:11px 4px;border-bottom:1px solid var(--border);transition:background var(--dur-fast)}.ing-row:hover{background:#f6faf8cc}.ing-row:last-child{border-bottom:none}.ing-row-emoji{font-size:21px;flex-shrink:0}.ing-row-name{flex:1;font-size:15px;display:flex;align-items:center;gap:7px}.optional-tag{font-size:10.5px;color:var(--text-muted);background:var(--bg);padding:2px 7px;border-radius:5px;border:1px solid var(--border)}.ing-row-amount{font-size:14.5px;color:var(--primary-deep);font-weight:700;font-variant-numeric:tabular-nums}.ing-group-seasoning{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:0;overflow:hidden;margin-bottom:14px}.seasoning-summary{display:flex;align-items:center;gap:9px;padding:12px 15px;cursor:pointer;list-style:none;font-size:13.5px;transition:background var(--dur-fast)}.seasoning-summary:hover{background:#fff9}.seasoning-summary::-webkit-details-marker{display:none}.seasoning-summary:before{content:"▸";color:var(--primary);transition:transform var(--dur) var(--ease-spring);font-size:12px}details[open] .seasoning-summary:before{transform:rotate(90deg)}.seasoning-title{font-weight:700;color:var(--text-secondary)}.seasoning-count{font-size:11.5px;color:var(--text-muted);background:var(--bg-card);padding:1px 8px;border-radius:999px;margin-left:auto}.seasoning-body{padding:0 15px 8px;animation:fadeIn .25s var(--ease-out)}.seasoning-body .ing-row{border-bottom-color:var(--border)}.pitfall-list{display:flex;flex-direction:column;gap:11px}.pitfall-item{background:linear-gradient(120deg,#fef4f2,#fff9f8);border:1px solid #fadfd8;border-left:4px solid var(--danger);border-radius:var(--radius-sm);padding:13px 15px;position:relative;transition:transform var(--dur-fast) var(--ease-out)}.pitfall-item:hover{transform:translate(2px)}.pitfall-problem{font-size:14px;font-weight:700;color:#c0453a;margin-bottom:5px;padding-right:50px}.pitfall-solution{font-size:13px;color:var(--text-secondary);line-height:1.6}.pitfall-severity{position:absolute;top:12px;right:13px;font-size:11px}.step-list{display:flex;flex-direction:column;gap:14px}.step-item{display:flex;gap:13px;animation:fadeUp .45s var(--ease-out) both}.step-item:nth-child(1){animation-delay:.03s}.step-item:nth-child(2){animation-delay:.07s}.step-item:nth-child(3){animation-delay:.11s}.step-item:nth-child(4){animation-delay:.15s}.step-item:nth-child(n+5){animation-delay:.18s}.step-num{flex-shrink:0;width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--primary),#14a888);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;box-shadow:0 3px 10px #17b89047}.step-content{flex:1;padding-top:3px;min-width:0}.step-text{font-size:15px;line-height:1.7;margin-bottom:7px;white-space:pre-line}.step-signal,.step-mark{font-size:13px;padding:8px 12px;border-radius:var(--radius-sm);margin-top:5px;line-height:1.55}.step-signal{background:var(--warning-light);color:#a46a12;border:1px solid #f6e2bd}.step-mark{background:var(--primary-light);color:var(--primary-deep);border:1px solid rgba(23,184,144,.2)}.tip-list{display:flex;flex-direction:column;gap:9px}.tip-item{font-size:14px;color:var(--text-secondary);padding:11px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);line-height:1.6;transition:border-color var(--dur)}.tip-item:hover{border-color:var(--border-strong)}.sub-list{display:flex;flex-direction:column;gap:9px}.sub-item{font-size:14px;display:flex;align-items:center;gap:9px;flex-wrap:wrap;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px}.sub-arrow{color:var(--primary);font-weight:700}.sub-note{color:var(--text-muted);font-size:12px}.cook-entry-btn{width:100%;padding:17px;font-size:16px;margin-top:10px;animation:fadeUp .5s var(--ease-out) .26s both}@media (max-width: 420px){.servings-panel{flex-direction:column;align-items:stretch;gap:12px}.servings-control{justify-content:space-between;padding-top:10px;border-top:1px dashed var(--border)}.servings-value{flex:1;min-width:auto}.step-item{gap:10px}.pitfall-problem{padding-right:46px}.detail-hero-overlay{padding:40px 16px 14px}}@media (orientation: landscape) and (max-height: 520px){.detail-hero{height:150px}.detail-hero-emoji{font-size:56px}}.cook-mode{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:#0f1a17;background-image:radial-gradient(900px 500px at 20% -10%,rgba(23,184,144,.12),transparent 60%),radial-gradient(700px 400px at 90% 10%,rgba(255,154,108,.06),transparent 55%);color:#eaf4f1;animation:fadeIn .35s var(--ease-out);padding-top:env(safe-area-inset-top,0px);overscroll-behavior:contain}.cook-topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;gap:8px;animation:fadeUp .45s var(--ease-out) both}.cook-back{color:#9fc4b9;font-size:14px;font-weight:500;transition:color var(--dur)}.cook-back:hover{color:var(--primary)}.cook-topbar-title{font-size:16px;font-weight:700;flex:1;text-align:center;color:#eaf4f1}.cook-topbar-controls{display:flex;gap:7px}.cook-icon-btn{width:38px;height:38px;border-radius:50%;background:#ffffff12;border:1px solid rgba(255,255,255,.08);color:#cfe4dd;font-size:18px;display:flex;align-items:center;justify-content:center;transition:all var(--dur-fast) var(--ease-spring)}.cook-icon-btn:hover{background:#ffffff1f;transform:scale(1.06)}.cook-icon-btn:active{transform:scale(.94)}.cook-icon-btn.active{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 4px 14px #17b89066}.cook-progress{display:flex;align-items:center;gap:12px;padding:0 16px 14px}.cook-progress-bar{flex:1;height:7px;background:#ffffff14;border-radius:4px;overflow:hidden}.cook-progress-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--primary),#4fe0bd);transition:width .45s var(--ease-out);box-shadow:0 0 12px #17b89080}.cook-progress-text{font-size:14px;color:#8fb0a7;font-variant-numeric:tabular-nums;font-weight:600}.cook-step{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px 24px;animation:stepAnim .45s var(--ease-out)}@keyframes stepAnim{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.cook-step-num{width:clamp(56px,15vw,68px);height:clamp(56px,15vw,68px);border-radius:50%;background:linear-gradient(135deg,var(--primary),#0f9a76);font-size:clamp(26px,7vw,32px);font-weight:800;display:flex;align-items:center;justify-content:center;margin-bottom:26px;box-shadow:0 8px 28px #17b89066;animation:pop .45s var(--ease-spring)}.cook-step-text{font-size:clamp(20px,6vw,26px);line-height:1.55;font-weight:500;max-width:480px;margin-bottom:26px;white-space:pre-line;color:#f2fbf8}.cook-signal,.cook-mark{width:100%;max-width:480px;text-align:left;padding:17px;border-radius:var(--radius);margin-bottom:13px;font-size:clamp(15px,4.2vw,18px);line-height:1.55;animation:fadeUp .4s var(--ease-out) .1s both}.cook-signal{background:#f0a93b1f;color:#f7cd86;border:1px solid rgba(240,169,59,.25)}.cook-mark{background:#17b8901f;color:#7de8cd;border:1px solid rgba(23,184,144,.28)}.cook-signal-label{display:block;font-size:13.5px;font-weight:700;margin-bottom:7px;opacity:.85;letter-spacing:.02em}.cook-pitfalls{width:100%;max-width:480px;margin:0 auto 18px;background:#ef6b5f1a;border:1px solid rgba(239,107,95,.22);border-radius:var(--radius);padding:17px;font-size:15px;color:#f0a9a1;animation:fadeUp .5s var(--ease-out) .15s both}.cook-pitfalls-title{font-weight:700;margin-bottom:9px;color:#f6bdb5;font-size:14.5px}.cook-pitfall{line-height:1.65;padding:3px 0;font-size:14.5px}.cook-nav{display:flex;gap:10px;padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom));animation:fadeUp .5s var(--ease-out) .2s both}.cook-nav-btn{flex:1;min-width:0;padding:16px 8px;font-size:clamp(13px,3.8vw,16px);white-space:nowrap}.cook-nav .btn-outline{background:#ffffff12;border-color:#ffffff1f;color:#dceee9}.cook-nav .btn-outline:hover{background:#ffffff1f;border-color:#fff3;color:#fff}.cook-nav .btn:disabled{opacity:.55;color:#dceee999}:root{--primary: #17b890;--primary-dark: #0f9a76;--primary-deep: #0a7d5e;--primary-light: #e6f9f3;--primary-glow: rgba(23, 184, 144, .18);--accent-warm: #ff9a6c;--accent-warm-dark: #f57f4d;--accent-warm-light: #fff2ea;--accent: #17b890;--accent-light: #e6f9f3;--warning: #f0a93b;--warning-light: #fff8ec;--danger: #ef6b5f;--info: #4a9fd8;--bg: #f6faf8;--bg-warm: #fbfdfc;--bg-card: #ffffff;--text: #1f2d2a;--text-secondary: #5f7570;--text-muted: #98aaa5;--border: #e4efeb;--border-strong: #d3e4de;--radius-sm: 10px;--radius: 16px;--radius-lg: 22px;--radius-xl: 28px;--shadow-xs: 0 1px 3px rgba(31, 45, 42, .04);--shadow: 0 2px 12px rgba(31, 45, 42, .06);--shadow-md: 0 6px 24px rgba(31, 45, 42, .08);--shadow-lg: 0 12px 40px rgba(31, 45, 42, .12);--shadow-primary: 0 8px 24px rgba(23, 184, 144, .25);--max-width: 760px;--header-h: 60px;--bottom-nav-h: 64px;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--dur-fast: .18s;--dur: .3s;--dur-slow: .5s}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;overflow-x:clip}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Segoe UI,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:radial-gradient(1200px 600px at 10% -10%,rgba(23,184,144,.07),transparent 60%),radial-gradient(900px 500px at 100% 0%,rgba(255,154,108,.05),transparent 55%);min-height:100vh;min-height:100dvh;overflow-wrap:break-word;word-break:break-word}a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;touch-action:manipulation}img{max-width:100%;display:block}.container{max-width:var(--max-width);margin:0 auto;padding-left:16px;padding-right:16px}.main-content{padding-top:calc(var(--header-h) + env(safe-area-inset-top,0px) + 12px);padding-bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom,0px) + 24px);min-height:100vh;min-height:100dvh}.main-fullscreen{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.card{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;border:1px solid rgba(228,239,235,.7);transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out)}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:12px 22px;border-radius:999px;font-size:15px;font-weight:600;letter-spacing:.01em;transition:transform var(--dur-fast) var(--ease-spring),box-shadow var(--dur) var(--ease-out),background-color var(--dur) var(--ease-out),color var(--dur) var(--ease-out);white-space:nowrap;overflow:hidden}.btn:active{transform:scale(.96)}.btn-primary{background:linear-gradient(135deg,var(--primary) 0%,#14a888 100%);color:#fff;box-shadow:var(--shadow-primary)}.btn-primary:hover{box-shadow:0 10px 28px #17b89059;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0) scale(.97)}.btn-outline{border:1.5px solid var(--border-strong);color:var(--text-secondary);background:var(--bg-card)}.btn-outline:hover{border-color:var(--primary);color:var(--primary-dark);background:var(--primary-light)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important;box-shadow:none}.chip{display:inline-flex;align-items:center;gap:4px;padding:5px 13px;border-radius:999px;font-size:13px;background:var(--bg);border:1px solid var(--border);color:var(--text-secondary);transition:all var(--dur) var(--ease-out)}.chip-unknown{color:var(--text-muted);background:transparent;border-style:dashed;border-color:var(--border-strong);font-style:normal}.difficulty{color:var(--warning);letter-spacing:1px;font-size:12px}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 20px;color:var(--text-muted);font-size:14px;animation:fadeIn .4s var(--ease-out)}.spinner{width:34px;height:34px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .75s linear infinite;margin-bottom:14px}@keyframes spin{to{transform:rotate(360deg)}}.empty{text-align:center;padding:56px 20px;color:var(--text-muted);animation:fadeUp .5s var(--ease-out)}.empty .empty-emoji{font-size:52px;margin-bottom:14px;animation:float 3s ease-in-out infinite}.error-banner{background:#fef1ef;color:var(--danger);padding:13px 16px;border-radius:var(--radius-sm);margin:12px 0;font-size:14px;border:1px solid #fbdad5;animation:shakeIn .4s var(--ease-out)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeScale{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes pop{0%{transform:scale(1)}45%{transform:scale(1.14)}to{transform:scale(1)}}@keyframes shakeIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.stagger-item{animation:fadeUp .45s var(--ease-out) both}.skeleton{background:linear-gradient(90deg,#eef5f2 25%,#f7fbf9,#eef5f2 75%);background-size:800px 100%;animation:shimmer 1.4s infinite linear;border-radius:var(--radius-sm)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#cfe0da;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#b8cec7}::-webkit-scrollbar-track{background:transparent}.btn,.pager-btn,.more-btn,.panel-toggle,.servings-btn,.random-close,.tag,.quick-chip,.ing-item,.suggest-item{min-height:44px}.servings-btn,.random-close,.cook-icon-btn,.photo-btn-sm{min-width:44px;min-height:44px}@media (max-width: 900px){input,textarea,select,.add-input,.search-input{font-size:16px!important}}input,textarea,select{scroll-margin-top:100px;scroll-margin-bottom:40vh}.recipe-card-cover img,.result-item-thumb,.random-card-media img{-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}.btn,.tag,.quick-chip,.ing-item,.chip,.nav-item,.pager-btn,.random-entry{user-select:none;-webkit-user-select:none}.step-text,.detail-desc,.ing-row-name,.tip-item{user-select:text;-webkit-user-select:text}.ing-list,.result-list,.random-list,.random-sheet,.cook-mode{-webkit-overflow-scrolling:touch}.random-sheet{overscroll-behavior:contain}@media (max-width: 768px){.chip,.sort-btn{min-height:36px;display:inline-flex;align-items:center}}@media (max-width: 380px){:root{--header-h: 56px;--bottom-nav-h: 58px;--radius: 14px;--radius-lg: 18px}.container{padding-left:13px;padding-right:13px}}@media (orientation: landscape) and (max-height: 520px){.main-content{padding-top:calc(var(--header-h) + env(safe-area-inset-top,0px) + 6px)}.hero{padding:16px 18px}.hero-title{font-size:19px;line-height:1.25}.hero-sub,.hero-stats{display:none}}@media (min-width: 900px){:root{--max-width: 880px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
