:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Sans,Yu Gothic UI,Meiryo,sans-serif;color:#27312c;background:#f7f4ec;font-synthesis:none;--ink: #27312c;--muted: #667169;--green: #3f6650;--green-dark: #315342;--green-pale: #e5f0e8;--ice: #e4f1f5;--ice-dark: #33758c;--warm: #f0e9d8;--surface: #fffdf8;--accent: #c96b45;--accent-strong: #b85b38;--danger: #b54e46;--line: #e1ded6;--shadow: 0 8px 28px rgba(39, 49, 44, .08)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#f7f4ec}button,input,textarea,select{font:inherit}button{-webkit-tap-highlight-color:transparent}.app-shell,.sheet-page,.detail-page{width:min(100%,540px);min-height:100vh;margin:0 auto;background:#f7f4ec;position:relative;box-shadow:0 0 50px #23362c0f}.loading-screen{min-height:100vh;background:#f7f4ec}.app-boot-icon{background-image:url(/okonomi-loading-icon.png?v=20260905-2)}.app-boot-copy{transition:opacity 90ms ease-out}.app-boot-overlay{min-height:0;position:fixed;z-index:1000;opacity:1;pointer-events:none;transition:opacity .22s ease-out}.app-boot-overlay.is-fading{opacity:0}@media(prefers-reduced-motion:reduce){.app-boot-copy{transition:none}.app-boot-overlay{transition-duration:1ms}}.auth-page{min-height:100vh;padding:max(36px,6vh) 24px 40px;background:#f7f4ec;text-align:center}.auth-brand{display:grid;justify-items:center;margin:0 auto 22px}.auth-brand-icon{width:76px;height:76px;display:block;border-radius:19px;box-shadow:0 8px 22px #744d1421}.auth-brand-wordmark{width:112px;height:auto;display:block;margin-top:18px}.auth-brand p{margin:11px 0 0;color:var(--muted);font-size:12px;font-weight:500;letter-spacing:.035em}.auth-page h1{font-size:22px;margin:0 0 10px;color:var(--ink)}.auth-copy{color:var(--muted);font-size:12px;margin:0 0 24px}.auth-card{max-width:400px;margin:0 auto;padding:24px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:none}.auth-card label,.stock-form label{display:block;margin-bottom:16px;font-size:12px;font-weight:700;color:#52615a}.auth-card input,.stock-form input,.stock-form select,.stock-form textarea{display:block;width:100%;margin-top:7px;padding:13px 14px;border:1px solid #dce2dc;border-radius:11px;outline:none;background:var(--surface);color:var(--ink);font-size:15px}.auth-card input:focus,.stock-form input:focus,.stock-form select:focus,.stock-form textarea:focus{border-color:var(--green);box-shadow:none}.password-field{position:relative;display:block;margin-top:7px}.auth-card .password-field input{margin-top:0;padding-right:50px}.password-visibility-toggle{width:42px;height:42px;position:absolute;top:50%;right:3px;display:grid;place-items:center;border:0;border-radius:9px;background:transparent;color:#66756d;transform:translateY(-50%)}.password-visibility-toggle:hover{background:#f3f5f1}.password-visibility-toggle:focus-visible{outline:2px solid var(--green);outline-offset:-2px}.password-visibility-toggle svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.auth-captcha{min-height:65px;margin:2px 0 16px;overflow:hidden}.local-note{margin-top:22px;color:#7a8980;font-size:11px}.local-note:before{content:"●";color:var(--green);margin-right:6px;font-size:8px}.form-error{color:var(--danger);font-size:12px;font-weight:600}.primary{border:0;border-radius:12px;padding:14px 18px;background:var(--green);color:#fff;font-weight:700;cursor:pointer;box-shadow:0 7px 18px #3f6e5a2e}.primary:disabled{opacity:.6}.wide{width:100%}.text-button{border:0;background:transparent;color:var(--green);font-weight:700;font-size:13px;cursor:pointer}.list-content{padding:10px 18px calc(98px + env(safe-area-inset-bottom))}.recipe-list-content{min-height:100vh}.recipe-list-content.is-recipe-library{min-height:100dvh;display:flex;flex-direction:column}.app-menu-header{min-height:60px;display:flex;align-items:center;gap:7px;padding:2px 0 7px}.app-menu-trigger{width:44px;height:44px;flex:0 0 auto;display:grid;place-items:center;padding:0;border:0;border-radius:10px;background:transparent;color:var(--green);cursor:pointer}.app-menu-trigger svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.app-menu-trigger:focus-visible{outline:2px solid var(--green);outline-offset:2px}.app-menu-header .list-heading{min-width:0;flex:1;margin:0}.app-brand-lockup{min-width:0;display:flex;align-items:center;gap:8px}.app-brand-icon{width:34px;height:34px;flex:0 0 auto;display:block;border-radius:9px;box-shadow:0 2px 7px #533a141f}.app-title{min-width:0;display:grid;gap:1px}.app-wordmark{width:72px;height:auto;display:block}.app-menu-header .app-title h1{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.08em;white-space:nowrap}.app-menu-header .list-heading-meta{min-width:0;gap:6px}.recipe-add-fab{width:58px;height:58px;position:fixed;z-index:19;right:max(20px,calc((100vw - 540px)/2 + 20px));bottom:calc(76px + env(safe-area-inset-bottom));display:grid;place-items:center;border:0;border-radius:50%;background:var(--green);color:#fff;box-shadow:0 8px 20px #25493945;font-size:31px;font-weight:300;cursor:pointer}.app-bottom-nav{width:min(100%,540px);min-height:calc(66px + env(safe-area-inset-bottom));position:fixed;z-index:40;left:50%;bottom:0;display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:5px 8px env(safe-area-inset-bottom);border-top:1px solid var(--line);background:#fffdf8fb;transform:translate(-50%)}.app-bottom-nav button{min-height:56px;position:relative;display:grid;place-items:center;align-content:center;gap:2px;overflow:hidden;padding:2px;border:0;border-radius:10px;background:transparent;color:#9aa39e;font-size:11px;font-weight:700;cursor:pointer;transition:color .14s ease}.app-bottom-nav button.active{background:transparent;color:var(--green);box-shadow:none}.app-bottom-nav button.active svg{stroke-width:2.1;transform:scale(1.14)}.app-bottom-nav button.active>span{font-weight:900;transform:scale(1.09)}.app-bottom-nav svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .14s ease}.app-bottom-nav button>span{transition:transform .14s ease}.app-nav-badge{min-width:18px;height:18px;position:absolute;top:2px;left:calc(50% + 5px);display:grid;place-items:center;padding:0 4px;border:2px solid var(--surface);border-radius:9px;background:#dce1de;color:#68746d;font-size:9px;line-height:1;pointer-events:none;transition:background-color .14s ease,color .14s ease}.app-bottom-nav button.active .app-nav-badge{border-color:var(--surface);background:var(--accent-strong);color:#fff}.menu-companion{width:32px;height:32px;position:absolute;z-index:2;top:3px;left:calc(16.6667% + 30px);pointer-events:none;opacity:1;transform:translate(-50%);transition:left .42s cubic-bezier(.3,.75,.28,1),opacity .14s ease}.menu-companion.at-make{left:calc(50% + 30px)}.menu-companion.at-ready{left:calc(83.3333% + 30px)}.menu-companion.is-hidden{opacity:0}.app-bottom-nav .menu-companion-figure{width:100%;height:100%;display:block;background-image:url(/menu-companion-sprite-v4.png?v=20260905-1);background-repeat:no-repeat;background-size:500% auto;background-position-y:50%;transform-origin:center bottom}.menu-companion-figure.pose-recipes{background-size:500% auto;background-position:0% 50%;scale:.9}.menu-companion-figure.pose-make{background-size:390% auto;background-position:79% 36%}.menu-companion-figure.pose-ready{height:34px;margin-top:-1px;background-size:500% auto;background-position:102% 50%;scale:.9}.menu-companion.is-moving .menu-companion-figure{background-size:500% auto;scale:.9;animation:menu-companion-run .18s steps(1,end) infinite}.menu-companion.is-moving.moving-left .menu-companion-figure{scale:-.9 .9}.menu-companion.at-recipes:not(.is-moving) .menu-companion-figure{animation:menu-companion-think 2.8s ease-in-out infinite}.menu-companion.at-make:not(.is-moving) .menu-companion-figure{animation:menu-companion-cook 2.2s ease-in-out infinite}.menu-companion.at-ready:not(.is-moving) .menu-companion-figure{animation:menu-companion-eat 2.4s ease-in-out infinite}@keyframes menu-companion-run{0%,49%{background-position:27.7% 50%;transform:translateY(0) rotate(-1deg)}50%,to{background-position:51% 50%;transform:translateY(-2px) rotate(1deg)}}@keyframes menu-companion-think{0%,72%,to{transform:rotate(0)}80%{transform:rotate(-2deg)}88%{transform:rotate(1deg)}}@keyframes menu-companion-cook{0%,64%,to{transform:translate(0)}72%{transform:translate(1.5px)}80%{transform:translate(-1.5px)}88%{transform:translate(1px)}}@keyframes menu-companion-eat{0%,66%,to{transform:rotate(0)}74%,88%{transform:rotate(2.5deg)}81%{transform:rotate(-1deg)}}.stock-summary{display:flex;justify-content:space-between;align-items:center;padding:21px 22px;border-radius:20px;color:#fff;background:linear-gradient(135deg,#345e4c,#527e68);box-shadow:0 12px 28px #2b56432e;overflow:hidden}.stock-summary small{display:block;margin-bottom:3px;opacity:.86;font-size:12px;font-weight:600}.stock-summary strong{font-size:34px;line-height:1}.stock-summary em{margin-left:6px;font-size:12px;font-style:normal;font-weight:500;opacity:.8}.summary-snow{font-size:42px;opacity:.55;transform:rotate(9deg)}.search-box{min-height:50px;display:flex;align-items:center;gap:8px;margin:7px 0 12px;padding:0 13px;background:var(--surface);border:1px solid var(--line);border-radius:12px;color:#68736c}.search-box span{font-size:23px;line-height:1;transform:rotate(-15deg)}.search-box input{width:100%;min-height:44px;border:0;outline:0;background:transparent;color:var(--ink);font-size:14px}.filter-tabs{display:flex;gap:0;justify-content:space-between;margin:0 -8px;padding:2px 0 10px;overflow:hidden}.filter-tabs::-webkit-scrollbar{display:none}.filter-tabs button{min-width:0;min-height:44px;flex:1 1 0;padding:8px 3px 6px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:#59635d;font-size:11px;font-weight:700;white-space:nowrap;cursor:pointer}.recipe-filters button:nth-child(4){flex-grow:1.55}.recipe-filters button:nth-child(5){flex-grow:1.35}.filter-tabs button.active{border-bottom-color:var(--green);color:var(--green)}.recipe-list-toolbar{min-height:38px;display:flex;align-items:center;justify-content:space-between;padding:0}.recipe-list-toolbar>span{color:var(--muted);font-size:11px}.recipe-list-controls{display:flex;align-items:center;gap:14px}.recipe-filter-trigger{min-height:38px;display:inline-flex;align-items:center;gap:5px;padding:5px 0 5px 4px;border:0;background:transparent;color:var(--ink);font-size:12px;font-weight:700;cursor:pointer}.recipe-filter-trigger svg{width:15px;height:15px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.recipe-filter-trigger.active{color:var(--green)}.recipe-filter-trigger b{min-width:17px;height:17px;display:grid;place-items:center;padding:0 4px;border-radius:9px;background:var(--green);color:#fff;font-size:9px;line-height:1}.recipe-list-toolbar select{min-height:38px;padding:5px 20px 5px 8px;appearance:none;border:0;border-radius:0;background-color:transparent;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 7'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23667169' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 3px center;background-repeat:no-repeat;background-size:10px 6px;color:var(--ink);font-size:12px!important;line-height:1.2;font-weight:700;cursor:pointer}.recipe-secondary-filters{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-2px 0 2px}.recipe-cooked-filter{min-width:0;display:flex;align-items:center;gap:2px}.recipe-cooked-filter>span{margin-right:3px;color:var(--muted);font-size:10px;font-weight:700;white-space:nowrap}.recipe-cooked-filter button,.recipe-favorite-filter{min-height:30px;padding:4px 7px;border:1px solid transparent;border-radius:999px;background:transparent;color:#59635d;font-size:10px;font-weight:800;white-space:nowrap;cursor:pointer}.recipe-cooked-filter button.active,.recipe-favorite-filter.active{border-color:#b9c9bf;background:#e8f0eb;color:var(--green)}.recipe-favorite-filter{flex:0 0 auto;padding-inline:8px}.recipe-favorite-filter span{color:#927530;font-size:13px}.list-heading{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:15px 2px 10px}.list-heading h1,.list-heading h2{margin:0;font-size:16px;line-height:1.4}.list-heading span{color:var(--muted);font-size:11px}.list-heading-meta{min-height:44px;display:flex;align-items:center;gap:8px}.list-heading-meta select{min-height:44px;padding:6px 26px 6px 9px;border:1px solid #d5ddd7;border-radius:7px;background:var(--surface);color:#46534c;font-size:11px;font-weight:700}.history-link-button{min-height:44px;padding:6px 2px 6px 8px;border:0;background:transparent;color:var(--green);font-size:11px;font-weight:800;cursor:pointer}.ready-order-toggle{min-height:44px;padding:5px 8px;border:1px solid #cbd6ce;border-radius:7px;background:var(--surface);color:var(--green);font-size:11px;font-weight:800}.ready-order-toggle.active{border-color:var(--green);background:var(--green);color:#fff}.recipe-drag-hint{margin:0 2px 9px;color:#7d8881;font-size:9px;font-weight:600}@media(max-width:360px){.app-menu-header .list-heading-meta>span{display:none}}.stock-list{display:grid;gap:10px}.stock-card{width:100%;display:grid;grid-template-columns:54px 1fr auto;align-items:center;gap:12px;padding:14px;border:1px solid #e5e9e3;border-radius:16px;background:var(--surface);color:var(--ink);text-align:left;box-shadow:0 4px 13px #273a3009;cursor:pointer}.card-icon{width:54px;height:54px;display:grid;place-items:center;border-radius:15px;font-size:24px}.card-icon.frozen{background:var(--ice);color:var(--ice-dark)}.card-icon.refrigerated{background:var(--green-pale);color:var(--green);font-size:17px}.card-main{min-width:0}.card-main h3{margin:4px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.card-main>span{color:var(--muted);font-size:10px}.card-labels{display:flex;gap:5px}.card-labels span{padding:2px 6px;border-radius:5px;background:#f0f3ef;color:#65716a;font-size:9px;font-weight:700}.empty-state{padding:48px 28px;color:var(--muted);text-align:center}.empty-state>div{width:54px;height:54px;margin:0 auto 14px;display:grid;place-items:center;border-radius:50%;background:var(--green-pale);color:var(--green);font-size:22px}.empty-state h3{margin:0 0 7px;color:#56615b;font-size:15px}.empty-state p{margin:0;font-size:12px;line-height:1.7}.recipe-list-skeleton{display:grid;gap:10px;padding-top:2px}.recipe-skeleton-row{min-height:86px;display:grid;grid-template-columns:62px minmax(0,1fr) 54px;align-items:center;gap:12px;padding:11px 10px;border:1px solid #e5e2da;border-radius:14px;background:var(--surface)}.recipe-skeleton-thumbnail,.recipe-skeleton-copy span,.recipe-skeleton-action{display:block;background:linear-gradient(100deg,#ece9e1 20%,#f7f4ed,#ece9e1 64%);background-size:220% 100%;animation:recipe-skeleton-shimmer 1.25s ease-in-out infinite}.recipe-skeleton-thumbnail{width:62px;height:62px;border-radius:11px}.recipe-skeleton-copy{display:grid;gap:9px}.recipe-skeleton-copy span{height:11px;border-radius:6px}.recipe-skeleton-copy span:last-child{width:62%;height:8px}.recipe-skeleton-action{width:44px;height:28px;justify-self:end;border-radius:999px}@keyframes recipe-skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media(prefers-reduced-motion:reduce){.recipe-skeleton-thumbnail,.recipe-skeleton-copy span,.recipe-skeleton-action{animation:none}}.empty-action{min-height:44px;margin-top:17px;padding:10px 16px;border:0;border-radius:11px;background:var(--green);color:#fff;font-size:12px;font-weight:800;cursor:pointer}.add-button{position:fixed;right:max(22px,calc((100vw - 540px)/2 + 22px));bottom:max(24px,env(safe-area-inset-bottom));width:58px;height:58px;border:0;border-radius:20px;background:var(--green);color:#fff;font-size:31px;font-weight:300;box-shadow:0 11px 24px #2d59474d;cursor:pointer}.recipe-add-button{width:auto;min-width:58px;padding:0 17px;border-radius:18px;font-size:13px;font-weight:800}.page-bar{position:sticky;top:0;z-index:10;min-height:59px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:10px 16px;background:#fffdf8f0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.page-bar .text-button:first-child{justify-self:start}.page-bar .text-button:last-child{justify-self:end}.page-bar button{min-height:44px}.page-bar-edit-actions{justify-self:end;display:flex;align-items:center;gap:3px}.page-bar-edit-actions .text-button{padding:6px 7px}.page-bar-save-button{min-width:54px;padding:7px 10px;border:0;border-radius:8px;background:var(--green);color:#fff;font-size:12px;font-weight:800}.page-bar-save-button:disabled{opacity:.6}.bar-spacer{width:60px}.back-button{justify-self:start;width:44px;height:44px;border:0;background:transparent;color:var(--green);font-size:36px;line-height:.8;cursor:pointer}.stock-form{padding:18px 16px 45px}.form-section{margin-bottom:14px;padding:19px 17px 4px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.form-section h2{margin:0 0 16px;color:var(--ink);font-size:15px}.stock-form textarea{min-height:86px;resize:vertical;line-height:1.6}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:11px}.save-button{margin-top:4px}.detail-hero{padding:30px 24px 25px;text-align:center}.detail-hero.frozen{background:linear-gradient(145deg,#edf6f6,#dfeff0)}.detail-hero.refrigerated{background:linear-gradient(145deg,#eff5e9,#e3eedf)}.storage-icon{width:57px;height:57px;margin:0 auto 11px;display:grid;place-items:center;border-radius:18px;background:#ffffffc7;color:var(--ice-dark);box-shadow:0 5px 14px #2e524b14;font-size:27px}.detail-hero.refrigerated .storage-icon{color:var(--green);font-size:17px}.storage-label{color:#54767a;font-size:10px;font-weight:800;letter-spacing:.08em}.detail-hero h1{margin:7px 0 11px;font-size:25px}.detail-meta{display:flex;justify-content:center;gap:8px}.detail-meta span{padding:4px 9px;border-radius:7px;background:#ffffffb8;color:#667775;font-size:10px}.detail-content{padding:16px 17px 50px}.instruction-card{margin-bottom:11px;padding:19px;border-radius:17px}.instruction-card.thaw{border:1px solid #d7e9eb;background:#f1f8f8}.instruction-card.cook{border:1px solid #e8e0d2;background:#faf6ee}.step-heading{display:flex;align-items:center;gap:11px}.step-heading>span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--ice-dark);color:#fff;font-weight:800}.cook .step-heading>span{background:#a67b43}.step-heading small{color:var(--muted);font-size:9px}.step-heading h2{margin:-1px 0 0;font-size:16px}.instruction-card>p{margin:14px 0 0;padding-top:13px;border-top:1px dashed rgba(74,100,94,.2);white-space:pre-wrap;font-size:14px;font-weight:500;line-height:1.85}.memo-card{margin-top:14px;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.memo-card>h2{margin:0 0 14px;font-size:15px}.memo-card div+div{margin-top:13px;padding-top:13px;border-top:1px solid #edf0ec}.memo-card h3{margin:0 0 5px;color:var(--green);font-size:10px}.memo-card p{margin:0;white-space:pre-wrap;font-size:12px;line-height:1.75}.prepared-date{color:var(--muted);text-align:center;font-size:10px}.delete-button{width:100%;min-height:44px;margin-top:16px;padding:12px;border:0;background:transparent;color:var(--danger);font-size:12px;cursor:pointer}.recipe-list-swipe-viewport{position:relative;overflow:hidden;border-top:1px solid var(--line);touch-action:pan-y}.recipe-list-swipe-viewport.is-swipe-enabled{min-height:76px;flex:1 0 auto}.recipe-list{min-height:76px;position:relative;z-index:1;background:#f7f4ec;transform:translate3d(var(--recipe-swipe-offset, 0),0,0);transition:transform .18s cubic-bezier(.22,.78,.28,1);will-change:transform}.recipe-list.is-dragging{transition:none}.recipe-list.is-longpress-dragging{touch-action:none;user-select:none;-webkit-user-select:none}.recipe-swipe-cue{min-width:72px;position:absolute;z-index:0;top:18px;display:grid;gap:2px;color:var(--green);opacity:var(--recipe-swipe-progress, 0);transform:scale(var(--recipe-swipe-scale, .92));transition:opacity 80ms linear;pointer-events:none}.recipe-swipe-cue.previous{left:8px;transform-origin:left center;text-align:left}.recipe-swipe-cue.next{right:8px;transform-origin:right center;text-align:right}.recipe-swipe-cue span{color:var(--muted);font-size:9px;font-weight:700}.recipe-swipe-cue strong{font-size:13px;white-space:nowrap}.recipe-list.swipe-next{animation:recipe-list-enter-next .26s cubic-bezier(.2,.75,.25,1)}.recipe-list.swipe-previous{animation:recipe-list-enter-previous .26s cubic-bezier(.2,.75,.25,1)}@keyframes recipe-list-enter-next{0%{opacity:.55;transform:translate3d(34px,0,0)}to{opacity:1;transform:translateZ(0)}}@keyframes recipe-list-enter-previous{0%{opacity:.55;transform:translate3d(-34px,0,0)}to{opacity:1;transform:translateZ(0)}}.ready-storage-heading{min-height:50px;display:flex;align-items:center;gap:8px;padding:8px 12px 7px;border-bottom:1px solid var(--line);background:#eef5f0;color:#315d46}.ready-storage-heading.frozen{margin-top:10px;border-top:1px solid #d9e5e9;background:#edf5f8;color:#28677d}.ready-storage-heading-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#ffffffb3}.ready-storage-heading-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.ready-storage-heading strong{font-size:14px}.ready-storage-heading small{margin-left:auto;color:currentColor;font-size:10px;font-weight:800;opacity:.72}.recipe-row{min-height:76px;position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);transition:background-color .12s ease,box-shadow .12s ease,transform .12s ease}.recipe-row.ready-refrigerated{box-shadow:inset 3px 0 #a9c9b4}.recipe-row.ready-frozen{box-shadow:inset 3px 0 #a7cad7}.recipe-row.make-row,.recipe-row.ready-row{-webkit-touch-callout:none}.recipe-row.is-longpress-active{position:relative;z-index:4;border-radius:8px;background:var(--surface);box-shadow:0 8px 22px #1f372a2e;transform:scale(1.015)}.recipe-row.is-longpress-target{box-shadow:inset 0 3px 0 var(--green)}body.recipe-dragging{overscroll-behavior:none;user-select:none;-webkit-user-select:none}.recipe-card-main{width:100%;min-width:0;display:grid;grid-template-columns:68px minmax(0,1fr);align-items:center;gap:11px;padding:10px 8px 10px 0;border:0;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.recipe-card-icon{width:68px;height:52px;position:relative;display:grid;place-items:center;overflow:hidden;padding:4px 6px;border-radius:6px;background:#f1efe9}.recipe-card-icon img{width:100%;height:100%;display:block;object-fit:contain}.recipe-card-thumbnail{width:68px;height:52px;position:relative;overflow:hidden;border-radius:6px;background:#ece9e1}.recipe-card-thumbnail img{width:100%;height:100%;display:block;object-fit:cover}.recipe-source-badge{width:20px;height:20px;position:absolute;z-index:1;right:3px;bottom:3px;display:grid;place-items:center;overflow:hidden;border:2px solid rgba(255,255,255,.94);border-radius:50%;background:#fff;box-shadow:0 1px 4px #00000042;color:#26372f;font-size:6px;font-weight:900;letter-spacing:-.02em;line-height:1}.recipe-source-badge.youtube{background:#e51c23;color:#fff}.recipe-source-badge.instagram{background:linear-gradient(135deg,#7544b2,#d93279 56%,#f29b3d);color:#fff}.recipe-source-badge.tiktok,.recipe-source-badge.x{background:#111;color:#fff}.recipe-source-badge img,.recipe-card-icon .recipe-source-badge img{width:100%;height:100%;display:block;object-fit:cover}.recipe-card-main>div:nth-child(2){min-width:0}.planning-row .recipe-card-main>div:nth-child(2){padding-right:28px}.recipe-favorite-button{width:30px;height:30px;position:absolute;z-index:2;top:5px;right:65px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:transparent;color:#7c827e;font-size:20px;line-height:1;cursor:pointer}.recipe-favorite-button.active{color:#927530}.recipe-favorite-button:disabled{opacity:.45}.recipe-card-labels{display:flex;min-height:16px;align-items:center;color:var(--green);font-size:11px;font-weight:700}.recipe-card-labels span+span:before{content:"・";margin:0 4px;color:#9aa39d}.recipe-card-labels span.needs-thaw{color:var(--ice-dark)}.storage-location-badges{display:inline-flex;align-items:center;gap:4px}.storage-location-badge{min-height:22px;display:inline-flex;align-items:center;gap:3px;padding:2px 6px;border-radius:999px;font-size:10px;font-weight:900;line-height:1}.storage-location-badge+.storage-location-badge:before{content:none;margin:0}.storage-location-badge svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.storage-location-badge.refrigerated{background:#e6f1e9;color:#246044}.storage-location-badge.frozen{background:#e4f1f6;color:#23677e}.recipe-storage-method-badge{width:fit-content;min-height:23px;display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:900;line-height:1}.recipe-storage-method-badge svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.recipe-storage-method-badge.refrigerated{background:#e6f1e9;color:#246044}.recipe-storage-method-badge.frozen{background:#e4f1f6;color:#23677e}.recipe-storage-method-badge.both{background:#ecf0ef;color:#375c59}.recipe-storage-method-badge.both>span{display:inline-flex}.recipe-storage-method-badge.both svg+svg{margin-left:-2px}.recipe-title-block>.recipe-storage-method-badge{margin-top:8px}.recipe-card-labels>.recipe-storage-method-badge{margin-left:5px}.recipe-card-labels>.recipe-storage-method-badge:before{content:none;margin:0}.recipe-row h3{margin:1px 0 2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.recipe-row small{display:block;overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.recipe-row .recipe-ready-dates{color:#68756d;font-size:10px;font-weight:700}.cooking-history-content{padding:20px 18px 48px}.cooking-history-content>header{margin-bottom:24px}.cooking-history-content>header h1{margin:0 0 5px;font-size:22px}.cooking-history-content>header p{margin:0;color:var(--muted);font-size:12px}.cooking-history-group+.cooking-history-group{margin-top:24px}.cooking-history-group>h2{margin:0 0 7px;color:#59665f;font-size:12px}.cooking-history-list{border-top:1px solid var(--line)}.cooking-history-row{width:100%;min-height:72px;display:grid;grid-template-columns:68px minmax(0,1fr) 18px;align-items:center;gap:11px;padding:9px 0;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);text-align:left}button.cooking-history-row{cursor:pointer}.cooking-history-main{min-width:0;display:grid;justify-items:start;gap:6px}.cooking-history-main>strong{max-width:100%;overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.cooking-history-chevron{color:#88938d;font-size:24px}.cooking-result-badge{min-height:22px;display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:900;line-height:1}.cooking-result-badge svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.cooking-result-badge.refrigerated{background:#e6f1e9;color:#246044}.cooking-result-badge.frozen{background:#e4f1f6;color:#23677e}.cooking-result-badge.eat-now{background:#f1eee6;color:#765d31}.cooking-result-badge.unknown{background:#edf0ee;color:#59665f}.cooking-history-state{margin:60px 0;color:var(--muted);text-align:center;font-size:12px}.cooking-history-state.error p{margin:0 0 12px;color:var(--danger)}.cooking-history-state.error button{min-height:44px;padding:8px 14px;border:1px solid var(--green);border-radius:7px;background:var(--surface);color:var(--green);font-size:12px;font-weight:800}.cooking-history-empty{padding-top:56px}.recipe-lifecycle-card{margin-top:20px;padding:18px 16px 12px;border:1px solid #e5e1d8;border-radius:16px;background:#fffdf8c7}.recipe-lifecycle-track{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.recipe-lifecycle-track:before{content:"";height:1px;position:absolute;z-index:0;top:21px;right:25%;left:25%;background:#d8ddd9}.recipe-lifecycle-card.planned .recipe-lifecycle-track:before{background:linear-gradient(90deg,var(--green) 0 50%,#d8ddd9 50%)}.recipe-lifecycle-stage{min-width:0;position:relative;z-index:1;display:grid;justify-items:center;gap:5px;padding:0 7px 5px;border:0;background:transparent;color:var(--ink)}.recipe-lifecycle-stage:disabled{opacity:.5}.recipe-lifecycle-icon{width:43px;height:43px;display:grid;place-items:center;border:1px solid #d8dfda;border-radius:50%;background:var(--surface);color:#7b8780}.recipe-lifecycle-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.recipe-lifecycle-stage>strong{margin-top:1px;font-size:15px;line-height:1.3}.recipe-lifecycle-stage>span:last-child{min-width:82px;min-height:29px;display:inline-flex;align-items:center;justify-content:center;padding:5px 11px;border-radius:999px;background:#edf1ee;color:var(--green);font-size:9px;font-weight:800}.recipe-lifecycle-card.planned .recipe-lifecycle-stage.make .recipe-lifecycle-icon{border-color:#cbdad1;background:var(--green-pale);color:var(--green)}.recipe-lifecycle-card.planned .recipe-lifecycle-stage.make>span:last-child{color:#69766f}.recipe-lifecycle-stage.ready .recipe-lifecycle-icon{border-color:var(--green);background:var(--green);color:#fff}.recipe-lifecycle-stage.ready>span:last-child{background:var(--green);color:#fff}.recipe-lifecycle-card>.form-error{margin:7px 0 0;text-align:center}.recipe-lifecycle-history{min-height:43px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:11px;padding-top:10px;border-top:1px solid var(--line);color:var(--ink);font-size:11px;font-weight:800}.recipe-lifecycle-history span{display:flex;align-items:baseline;gap:7px}.recipe-lifecycle-history strong{color:var(--green);font-size:11px}.recipe-lifecycle-history button{min-height:38px;padding:4px 0 4px 10px;border:0;background:transparent;color:var(--green);font-size:10px;font-weight:800}.recipe-history-recent{margin-top:10px;border-top:1px solid var(--line)}.recipe-history-recent>button{width:100%;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);text-align:left}.recipe-history-recent>button:last-child{border-bottom:0}.recipe-history-recent>button>span{display:flex;align-items:center;gap:8px}.recipe-history-recent b{min-width:50px;font-size:12px}.recipe-history-recent small{color:var(--green);font-size:11px;font-weight:800}.history-edit-sheet{width:min(100%,512px);padding:18px;border-radius:12px 12px 8px 8px;background:var(--surface);box-shadow:0 18px 44px #15251d38}.history-edit-recipe{margin:8px 0 14px;color:var(--muted);font-size:12px}.history-edit-sheet form{display:grid;gap:12px}.history-edit-sheet label{display:grid;gap:6px;color:#4b5851;font-size:11px;font-weight:800}.history-edit-sheet input,.history-edit-sheet select{width:100%;min-height:46px;padding:0 11px;border:1px solid #cfd8d2;border-radius:7px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px}.history-edit-note,.history-undo-note{margin:0;color:var(--muted);font-size:10px;line-height:1.6}.history-undo-button{width:100%;min-height:46px;margin-top:17px;border:1px solid #e4d2cf;border-radius:7px;background:transparent;color:var(--danger);font-size:12px;font-weight:800}.history-undo-note{margin-top:5px;text-align:center}.recipe-plan-check{width:62px;min-height:76px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-left:1px solid var(--line);color:var(--green);font-size:10px;font-weight:800;cursor:pointer}.recipe-plan-check input{width:24px;height:24px;display:grid;place-items:center;margin:0;appearance:none;border:2px solid #83958b;border-radius:4px;background:transparent}.recipe-plan-check input:checked{border-color:var(--green);background:var(--green)}.recipe-plan-check input:checked:after{content:"✓";color:#fff;font-size:16px;font-weight:900;line-height:1}.make-row-actions{width:112px;display:grid;grid-template-columns:36px minmax(0,1fr);align-content:center;gap:4px;padding:5px 0 5px 4px;border-left:1px solid var(--line)}.make-row-actions button:disabled,.recipe-ready-actions button:disabled{opacity:.5}.make-serving-control{grid-column:1 / -1;display:grid;grid-template-columns:30px minmax(0,1fr) 30px;align-items:center;gap:2px}.make-serving-control button{min-height:32px;padding:0;border:1px solid #cfd8d2;border-radius:6px;background:var(--surface);color:var(--green);font-size:17px;font-weight:800}.make-serving-control strong{min-width:0;color:var(--ink);text-align:center;font-size:14px}.make-serving-control strong span{margin-left:1px;color:var(--muted);font-size:8px}.make-cancel-button{width:100%;min-height:44px;padding:0;border:1px solid #cfd8d2;border-radius:6px;background:transparent;color:#52615a;font-size:22px;line-height:1;cursor:pointer}.make-complete-button{width:100%;min-width:0;min-height:44px;align-self:center;display:flex;align-items:center;justify-content:center;gap:4px;padding:9px 5px;border:1px solid #a9b9b0;border-radius:6px;background:transparent;color:var(--green);font-size:11px;font-weight:800;cursor:pointer}.recipe-ready-actions{width:118px;display:grid;align-content:center;gap:5px;padding-left:8px;border-left:1px solid var(--line);text-align:center}.recipe-ready-actions button{min-height:44px;padding:7px 8px;border:0;border-radius:6px;background:var(--green);color:#fff;font-size:10px;font-weight:800;cursor:pointer}.recipe-ready-buttons{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:4px}.ready-order-buttons{display:grid;grid-template-columns:1fr 1fr;gap:4px}.recipe-ready-actions .ready-order-buttons button{min-height:44px;padding:0;border:1px solid #cbd6ce;background:var(--surface);color:var(--green);font-size:20px}.recipe-ready-actions .ready-order-buttons button:disabled{color:#adb7b1;opacity:.55}.recipe-ready-actions .ready-more-button{padding:0;border:1px solid #cfd8d2;background:transparent;color:#52615a;font-size:22px}.make-row-actions .row-primary-action,.recipe-ready-actions .row-primary-action{min-height:44px;display:flex;align-items:center;justify-content:center;gap:4px;padding:8px 5px;border:1px solid var(--green);border-radius:6px;background:var(--green);color:#fff;font-size:11px;font-weight:800;line-height:1;white-space:nowrap;cursor:pointer}.row-primary-action svg{width:15px;height:15px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.recipe-creator-credit{min-height:78px;display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:12px;margin-top:14px;padding:13px 14px;border:1px solid #e6ded0;border-radius:12px;background:var(--warm);color:var(--ink);text-decoration:none}.creator-platform{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#c94d42;color:#fff;font-size:16px}.recipe-creator-credit>span:last-child{min-width:0;display:grid;gap:2px}.recipe-creator-credit small{color:var(--muted);font-size:10px}.recipe-creator-credit strong{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.recipe-creator-credit b{color:var(--green);font-size:10px}.recipe-empty>div{background:var(--warm);color:#806238}.cooking-complete-toast{width:calc(100% - 28px);max-width:492px;min-height:64px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;position:fixed;z-index:45;left:50%;bottom:calc(76px + env(safe-area-inset-bottom));padding:10px 11px 10px 14px;border:1px solid rgba(255,255,255,.25);border-radius:9px;background:#2b4c3dfa;color:#fff;box-shadow:0 12px 28px #19322640;opacity:var(--toast-swipe-opacity, 1);transform:translate(calc(-50% + var(--toast-swipe-x, 0px)));transition:transform .18s ease-out,opacity .18s ease-out;animation:toast-arrive .24s ease-out}.swipe-dismiss-toast{touch-action:pan-y}.swipe-dismiss-toast.dragging{transition:none;animation:none;-webkit-user-select:none;user-select:none}.cooking-complete-toast>span{min-width:0;display:grid;gap:2px}.cooking-complete-toast strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.cooking-complete-toast small{color:#ffffffd1;font-size:12px}.cooking-complete-toast button{min-height:44px;padding:7px 9px;border:0;border-radius:6px;background:#ffffff24;color:#fff;font-size:11px;font-weight:800}.toast-actions{display:flex;gap:5px}@keyframes toast-arrive{0%{opacity:0;transform:translate(-50%,18px) scale(.97)}}.meal-reflection-overlay{position:fixed;z-index:50;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:14px;background:#1a241f61}.meal-reflection-sheet{width:min(100%,512px);padding:18px;border-radius:12px 12px 8px 8px;background:var(--surface);box-shadow:0 18px 44px #15251d38}.meal-reflection-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.meal-reflection-heading small{color:var(--green);font-size:11px;font-weight:800}.meal-reflection-heading h2{margin:2px 0 0;font-size:19px}.meal-reflection-heading>button{width:44px;height:44px;border:0;background:transparent;color:var(--muted);font-size:24px}.meal-reflection-recipe{margin:8px 0 16px;color:var(--muted);font-size:12px}.meal-reflection-sheet label{display:block;color:#52615a;font-size:12px;font-weight:700}.meal-reflection-sheet textarea{width:100%;min-height:118px;margin-top:7px;padding:12px;resize:vertical;border:1px solid #cfd8d2;border-radius:7px;background:var(--surface);color:var(--ink);line-height:1.65}.meal-reflection-actions{margin-top:14px}.meal-reflection-actions button{min-height:48px;border-radius:7px;font-size:12px}.secondary-action{border:1px solid #cfd8d2;background:var(--surface);color:var(--green);font-weight:800}.recipe-filter-overlay{position:fixed;z-index:50;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:14px;background:#1a241f61}.recipe-filter-sheet{width:min(100%,512px);max-height:calc(100dvh - 28px);overflow-y:auto;padding:18px;border-radius:12px 12px 8px 8px;background:var(--surface);box-shadow:0 18px 44px #15251d38}.recipe-filter-heading{min-height:44px;display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.recipe-filter-heading h2{margin:5px 0 0;font-size:19px}.recipe-filter-heading>button{width:44px;height:44px;padding:0;border:0;background:transparent;color:var(--muted);font-size:24px}.recipe-filter-sheet fieldset{margin:14px 0 0;padding:0;border:0}.recipe-filter-sheet legend{margin-bottom:8px;color:#52615a;font-size:11px;font-weight:800}.recipe-filter-options{display:grid;gap:6px}.recipe-filter-options.cooked-options{grid-template-columns:repeat(3,minmax(0,1fr))}.recipe-filter-options label{min-width:0}.recipe-filter-options input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.recipe-filter-options span{min-height:42px;display:grid;place-items:center;padding:6px 5px;border:1px solid #d5ddd7;border-radius:7px;background:var(--surface);color:#52615a;font-size:11px;font-weight:700;text-align:center}.recipe-filter-options input:checked+span{border-color:var(--green);background:#e9f1ec;color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.recipe-filter-options input:focus-visible+span{outline:2px solid var(--green);outline-offset:2px}.recipe-source-filter select{width:100%;min-height:44px;padding:7px 30px 7px 11px;border:1px solid #d5ddd7;border-radius:7px;background-color:var(--surface);color:var(--ink);font-size:12px;font-weight:700}.recipe-source-filter small{display:block;margin-top:6px;color:var(--muted);font-size:9px}.recipe-favorite-only-option{min-height:48px;display:flex;align-items:center;gap:10px;margin-top:16px;padding:2px 1px;color:var(--ink);font-size:12px;font-weight:700}.recipe-favorite-only-option input{width:22px;height:22px;margin:0;accent-color:var(--green)}.recipe-favorite-only-option b{margin-right:2px;color:#927530;font-size:17px}.recipe-filter-actions{display:grid;grid-template-columns:88px minmax(0,1fr);gap:8px;margin-top:15px;padding-top:14px;border-top:1px solid var(--line)}.recipe-filter-actions button{min-height:48px;border:1px solid #cfd8d2;border-radius:7px;background:var(--surface);color:var(--green);font-size:12px;font-weight:800}.recipe-filter-actions button[type=submit]{border-color:var(--green);background:var(--green);color:#fff}.consumption-sheet-overlay{position:fixed;z-index:50;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:14px;background:#1a241f61}.consumption-sheet{width:min(100%,512px);padding:18px;border-radius:12px 12px 8px 8px;background:var(--surface);box-shadow:0 18px 44px #15251d38}.consumption-sheet-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.consumption-sheet-heading small{color:var(--green);font-size:11px;font-weight:800}.consumption-sheet-heading h2{margin:2px 0 0;font-size:19px}.consumption-sheet-heading>button{width:44px;height:44px;flex:0 0 auto;border:0;background:transparent;color:var(--muted);font-size:24px}.consumption-sheet-recipe{margin:8px 0 16px;color:var(--muted);font-size:12px}.consumption-result-actions,.consumption-location-actions{display:grid;gap:8px}.consumption-result-actions>button,.consumption-location-actions>button{min-height:64px;display:grid;align-content:center;gap:3px;padding:12px 14px;border:1px solid #cfd8d2;border-radius:7px;background:var(--surface);color:var(--ink);text-align:left}.consumption-result-actions strong,.consumption-location-actions strong{font-size:14px}.consumption-result-actions span,.consumption-location-actions span{color:var(--muted);font-size:11px}.consumption-result-actions>button:first-child{border-color:var(--green);background:var(--green);color:#fff}.consumption-result-actions>button:first-child span{color:#ffffffc7}.consumption-location-actions{grid-template-columns:1fr 1fr}.consumption-location-actions .consumption-step-back{grid-column:1 / -1;min-height:44px;border-color:transparent;background:transparent;color:var(--green);text-align:center}.cooking-storage-actions>button:not(.eat-now-action):not(.other-storage-toggle){min-width:0;grid-template-columns:26px minmax(0,1fr);grid-template-areas:"icon title" "icon sub";column-gap:7px;padding:11px 10px}.cooking-storage-actions>button:not(.eat-now-action):not(.other-storage-toggle)>svg{grid-area:icon;width:22px;height:22px;align-self:center;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.cooking-storage-actions>button:not(.eat-now-action):not(.other-storage-toggle)>strong{grid-area:title;min-width:0}.cooking-storage-actions>button:not(.eat-now-action):not(.other-storage-toggle)>span{grid-area:sub;min-width:0}.cooking-storage-actions .recommended-storage{grid-column:1 / -1;min-height:72px;border-width:2px}.cooking-storage-actions .recommended-storage.refrigerated{border-color:#3b7557;background:#e9f3ec;color:#245c41}.cooking-storage-actions .recommended-storage.frozen{border-color:#37768d;background:#e8f3f7;color:#205f76}.storage-method-guide{min-height:42px;display:flex;align-items:center;gap:9px;margin:-4px 0 12px;padding:8px 10px;border-radius:7px;font-size:12px}.storage-method-guide svg{width:20px;height:20px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.storage-method-guide.refrigerated{background:#e9f3ec;color:#245c41}.storage-method-guide.frozen{background:#e8f3f7;color:#205f76}.cooking-storage-actions .other-storage-toggle{grid-column:1 / -1;min-height:44px;border-color:transparent;background:transparent;color:var(--green);text-align:center}.cooking-storage-actions .alternate-storage{grid-column:1 / -1}.cooking-storage-actions .eat-now-action{grid-column:1 / -1;min-height:54px;border-color:transparent;background:#eef2ee;text-align:center}.consumption-result-actions button:disabled,.consumption-location-actions button:disabled{opacity:.5}.ready-actions-overlay{position:fixed;z-index:50;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:14px;background:#1a241f61}.ready-actions-sheet{width:min(100%,512px);padding:18px;border-radius:12px 12px 8px 8px;background:var(--surface);box-shadow:0 18px 44px #15251d38}.ready-actions-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.ready-actions-heading>div{min-width:0}.ready-actions-heading small{color:var(--green);font-size:11px;font-weight:800}.ready-actions-heading h2{margin:2px 0 0;overflow:hidden;font-size:19px;text-overflow:ellipsis;white-space:nowrap}.ready-actions-heading>button{width:44px;height:44px;flex:0 0 auto;border:0;background:transparent;color:var(--muted);font-size:24px}.ready-actions-location{margin:8px 0 16px;color:var(--muted);font-size:12px}.ready-cooked-date-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 12px;margin:0 0 14px;padding:11px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.ready-cooked-date-actions>strong{align-self:start;padding-top:9px;font-size:12px}.ready-cooked-date-actions>button{grid-column:2;min-width:92px;min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 8px;border:1px solid #d2dad5;border-radius:7px;background:var(--surface);color:var(--ink)}.ready-cooked-date-actions>button span{font-size:12px;font-weight:700}.ready-cooked-date-actions>button b{color:var(--green);font-size:10px}.ready-actions-list{display:grid;gap:8px}.ready-actions-list>button{min-height:62px;display:grid;align-content:center;gap:3px;padding:12px 14px;border:1px solid #cfd8d2;border-radius:7px;background:var(--surface);color:var(--ink);text-align:left}.ready-actions-list strong{font-size:14px}.ready-actions-list span{color:var(--muted);font-size:11px}.ready-actions-list .ready-remove-action{border-color:#e4d2cf;color:var(--danger)}.ready-actions-list button:disabled{opacity:.5}.account-menu-overlay{width:min(100%,540px);position:fixed;z-index:50;top:0;bottom:0;left:50%;display:flex;align-items:stretch;justify-content:flex-start;background:#1d27226b;transform:translate(-50%)}.account-menu-sheet{width:min(86%,420px);height:100%;max-height:none;overflow-y:auto;overscroll-behavior:contain;padding:calc(18px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom));border-radius:0 14px 14px 0;background:var(--surface);box-shadow:14px 0 38px #15251d33;animation:account-drawer-in .18s ease-out}@keyframes account-drawer-in{0%{transform:translate(-24px);opacity:.7}to{transform:translate(0);opacity:1}}@media(prefers-reduced-motion:reduce){.account-menu-sheet{animation:none}}.account-menu-heading{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:14px}.account-menu-heading h2{margin:0;font-size:20px}.account-menu-brand{min-width:0;display:flex;align-items:center;gap:10px}.account-menu-brand img{width:38px;height:38px;flex:0 0 auto;border-radius:10px;box-shadow:0 2px 8px #533a141f}.account-menu-brand>div{min-width:0;display:grid;gap:1px}.account-menu-brand small{color:var(--muted);font-size:10px}.account-close-button,.account-back-button{width:44px;height:44px;display:grid;place-items:center;padding:0;border:0;background:transparent;color:var(--muted);font-size:24px}.account-subpage-heading{min-height:44px;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;margin-bottom:14px}.account-subpage-heading h2{margin:0;text-align:center;font-size:17px}.account-back-button{color:var(--green);font-size:30px}.account-identity{display:flex;align-items:center;gap:12px;padding:10px 0 14px}.account-identity>b{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:var(--green);color:#fff;font-size:19px}.account-identity>div{min-width:0;display:grid;gap:2px}.account-identity strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.account-identity small{color:var(--muted);font-size:10px}.account-menu-groups>section{padding:15px 0 10px;border-top:1px solid var(--line)}.account-menu-groups h3{margin:0 0 5px;color:var(--muted);font-size:11px}.account-menu-groups button{width:100%;min-height:54px;display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:11px;padding:6px 3px;border:0;background:transparent;color:var(--ink);text-align:left}.account-menu-row-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--warm);color:var(--green)}.account-menu-row-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.account-menu-groups button>span:nth-child(2){min-width:0;display:grid;gap:2px}.account-menu-groups button strong{font-size:13px}.account-menu-groups button small{overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.account-menu-groups button>b{color:var(--green);font-size:23px;font-weight:400}.account-menu-groups button:focus-visible,.account-close-button:focus-visible,.account-back-button:focus-visible{outline:2px solid var(--green);outline-offset:2px}.account-owner-note{margin:18px 0 0;color:var(--muted);font-size:10px;line-height:1.6}.account-history-link{width:100%;min-height:54px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;margin-bottom:14px;padding:8px 12px;border:1px solid #cddbd2;border-radius:10px;background:#edf5f0;color:var(--ink);text-align:left}.account-history-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:var(--surface);color:var(--green)}.account-history-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.account-history-link>span:nth-child(2){min-width:0}.account-history-link strong{font-size:13px}.account-history-link>b{color:var(--green);font-size:23px;font-weight:400}.account-history-link:focus-visible{outline:2px solid var(--green);outline-offset:2px}.account-family-name>h3,.account-placeholder-menu>h3{margin:0 0 8px;font-size:15px}.account-family-name-row{width:100%;min-height:62px;display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:11px;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);text-align:left}.account-setting-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--warm);color:var(--green)}.account-setting-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.account-family-name-row>span:nth-child(2){min-width:0;display:grid;gap:2px}.account-family-name-row strong{font-size:13px}.account-family-name-row small{overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.account-family-name-row>b{color:var(--green);font-size:10px}.account-family-name-row:disabled{opacity:.75}.account-family-name-row:focus-visible{outline:2px solid var(--green);outline-offset:2px}.account-family-name form{padding:12px;border:1px solid #cddbd2;border-radius:9px;background:#f5f8f5}.account-family-name form label{display:grid;gap:7px;color:#52615a;font-size:11px;font-weight:800}.account-family-name form input{width:100%;min-height:44px;padding:0 11px;border:1px solid #cbd6ce;border-radius:7px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px}.account-family-name form>div{display:flex;justify-content:flex-end;gap:8px;margin-top:9px}.account-family-name form button{min-height:40px;padding:7px 14px;border:1px solid #cbd6ce;border-radius:7px;background:var(--surface);color:#59665f;font-size:11px;font-weight:800}.account-family-name form button[type=submit]{border-color:var(--green);background:var(--green);color:#fff}.account-family-name .form-error,.account-setting-notice{margin:7px 2px 0;font-size:10px}.account-setting-notice{color:var(--green);font-weight:700}.family-access{margin-top:20px;padding-top:17px;border-top:1px solid var(--line)}.family-access-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.family-access-heading h3{margin:0;font-size:15px}.family-access-heading>span{color:var(--muted);font-size:11px}.family-access-row{min-height:50px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}.family-access-row>span{min-width:0;display:grid;gap:2px}.family-access-row strong,.family-access-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.family-access-row strong{font-size:12px}.family-access-row small{color:var(--muted);font-size:10px}.family-access-row>b{color:var(--green);font-size:10px}.family-access-row>button{min-height:34px;padding:0 9px;border:1px solid #e3c7c3;border-radius:6px;background:var(--surface);color:var(--danger);font-size:10px;font-weight:700}.family-access-row.pending strong{color:#7b6a38}.family-invite-form{display:grid;gap:9px;margin-top:15px}.family-invite-form label{color:#52615a;font-size:11px;font-weight:700}.family-invite-form input,.family-invite-link input{width:100%;min-height:42px;margin-top:6px;padding:0 11px;border:1px solid #dce2dc;border-radius:7px;background:var(--surface);color:var(--ink);font-size:12px}.family-invite-form .primary{min-height:42px;box-shadow:none}.family-invite-link{display:grid;grid-template-columns:1fr auto;align-items:end;gap:7px;margin-top:10px}.family-invite-link input{min-width:0;margin:0}.family-invite-link button{min-height:42px;padding:0 12px;border:1px solid var(--green);border-radius:7px;background:var(--surface);color:var(--green);font-size:11px;font-weight:800}.family-access .import-success,.family-access .form-error{margin:10px 0 0}.family-access-note{margin:10px 0 0;color:var(--muted);font-size:10px;line-height:1.6}.account-placeholder-menu{margin-top:20px;padding-top:17px;border-top:1px solid var(--line)}.account-placeholder-row{min-height:52px;display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:10px;border-bottom:1px solid var(--line)}.account-placeholder-symbol{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#f1f3ef;color:#66736b;font-size:13px;font-weight:800}.account-placeholder-row strong{font-size:12px}.account-logout{width:100%;min-height:48px;margin-top:16px;border:1px solid #e3c7c3;border-radius:7px;background:var(--surface);color:var(--danger);font-size:12px;font-weight:800}.import-content{padding:20px 20px 50px;text-align:center}.import-method-tabs{max-width:430px;display:grid;grid-template-columns:repeat(3,1fr);margin:0 auto 16px;border-bottom:1px solid var(--line)}.import-method-tabs button{min-height:46px;padding:8px 3px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font-size:11px;font-weight:800;white-space:nowrap}.import-method-tabs button.active{border-bottom-color:var(--green);color:var(--green)}.import-symbol{width:64px;height:64px;margin:0 auto 17px;display:grid;place-items:center;border-radius:20px;background:linear-gradient(135deg,var(--green),#719984);color:#fff;font-size:19px;font-weight:800;box-shadow:0 10px 24px #2d594733}.import-symbol.link{font-size:30px;font-weight:400}.import-content>h1{margin:0 0 9px;font-size:23px}.import-content>p{max-width:390px;margin:0 auto 24px;color:var(--muted);font-size:12px;line-height:1.8}.import-content .form-section{max-width:430px;margin:0 auto 16px;padding-bottom:18px;text-align:left}.import-content .form-section label{display:block;margin-bottom:16px;color:#52615a;font-size:12px;font-weight:700}.import-content .form-section input{display:block;width:100%;margin-top:7px;padding:14px;border:1px solid #dce2dc;border-radius:11px;outline:none;font-size:14px}.api-note{font-size:10px!important}.bridge-step{max-width:430px;margin:0 auto 14px;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface);text-align:left}.bridge-step label{display:block;margin-bottom:14px;color:#52615a;font-size:13px;font-weight:700}.bridge-step input,.bridge-step select,.bridge-step textarea{display:block;width:100%;margin-top:7px;padding:13px;border:1px solid #dce2dc;border-radius:11px;outline:none;background:var(--surface);color:var(--ink);font-size:13px;line-height:1.6}.bridge-step textarea{min-height:210px;resize:vertical}.bridge-step input:focus,.bridge-step select:focus,.bridge-step textarea:focus{border-color:var(--green);box-shadow:none}.manual-recipe-details{margin:4px 0 14px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.manual-recipe-details summary{min-height:48px;display:flex;align-items:center;gap:8px;color:#46534c;font-size:13px;font-weight:800;cursor:pointer;list-style:none}.manual-recipe-details summary::-webkit-details-marker{display:none}.manual-recipe-details summary small{margin-left:auto;padding:2px 6px;border-radius:5px;background:#f0f3ef;color:var(--muted);font-size:9px}.manual-recipe-details summary:after{content:"＋";color:var(--green);font-size:16px}.manual-recipe-details[open] summary:after{content:"−"}.manual-recipe-details>div{padding:2px 0 4px}.manual-recipe-details textarea{min-height:104px}.photo-import-intro{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:11px;margin-bottom:16px}.photo-import-intro>span{width:42px;height:42px;display:grid;place-items:center;border:1px solid #ccd9d1;border-radius:50%;background:#edf4ef;color:var(--green);font-size:22px;line-height:1}.photo-import-intro>div{min-width:0;display:grid;gap:3px}.photo-import-intro strong{color:var(--ink);font-size:14px}.photo-import-intro small{color:var(--muted);font-size:10px;font-weight:500;line-height:1.55}.bridge-step .photo-import-picker{margin:0 0 12px}.photo-import-picker input{position:absolute;width:1px;height:1px;margin:0;opacity:0;pointer-events:none}.photo-import-picker span{min-height:48px;display:flex;align-items:center;justify-content:center;border:1px solid var(--green);border-radius:9px;background:var(--surface);color:var(--green);font-size:12px;font-weight:900;cursor:pointer}.photo-import-picker input:disabled+span{border-color:#d6ddd8;color:#98a39d;cursor:default}.photo-import-picker input:focus-visible+span{outline:3px solid #1f6647;outline-offset:2px}.photo-import-previews{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:0 0 12px}.photo-import-previews figure{aspect-ratio:3 / 4;position:relative;margin:0;overflow:hidden;border:1px solid #d8dfda;border-radius:8px;background:#f1f2ef}.photo-import-previews img{width:100%;height:100%;display:block;object-fit:cover}.photo-import-previews figcaption{min-width:20px;height:20px;position:absolute;left:5px;bottom:5px;display:grid;place-items:center;padding:0 5px;border-radius:10px;background:#1a231ebf;color:#fff;font-size:9px;font-weight:900}.photo-import-previews button{width:26px;height:26px;position:absolute;top:4px;right:4px;display:grid;place-items:center;padding:0 0 2px;border:1px solid rgba(255,255,255,.65);border-radius:50%;background:#1a231eb8;color:#fff;font-size:16px;line-height:1}.photo-import-guidance{margin:0 0 14px;color:var(--muted);font-size:10px;line-height:1.7}.photo-import-privacy{display:block;margin-top:10px;color:var(--muted);text-align:center;font-size:9px;font-weight:500;line-height:1.5}.photo-review-heading{display:grid;gap:3px;margin-bottom:16px;padding-bottom:13px;border-bottom:1px solid var(--line)}.photo-review-heading small{color:var(--green);font-size:10px;font-weight:900}.photo-review-heading strong{color:var(--ink);font-size:16px}.photo-review-form textarea{min-height:112px}.photo-review-form label:nth-of-type(5) textarea{min-height:156px}.photo-review-actions{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:8px}.photo-review-actions>button{min-height:48px;padding:9px;border:1px solid #d6ddd8;border-radius:9px;background:var(--surface);color:#5f6c65;font-size:11px;font-weight:800}.photo-review-actions>button.primary{border-color:var(--green);background:var(--green);color:#fff}.manual-recipe-note{margin:10px 0 0;color:var(--muted);text-align:center;font-size:10px}.copy-prompt-button{width:100%;margin-top:10px;padding:9px;border:0;background:transparent;color:var(--green);font-size:10px;font-weight:700;cursor:pointer}.subscription-note{max-width:430px!important;margin-top:18px!important;color:var(--muted)!important;font-size:12px!important}.manual-import-notice{max-width:430px;margin:0 auto 14px;padding:14px 16px;border:1px solid #eadbbf;border-radius:13px;background:#fff8e9;color:#735d39;text-align:left}.manual-import-notice strong{font-size:12px}.manual-import-notice p{margin:5px 0 0;font-size:10px;line-height:1.7}.import-error{max-width:430px;margin:0 auto 14px}.import-success{max-width:430px!important;margin:0 auto 14px!important;padding:12px 14px;border-radius:11px;background:#e8f3eb;color:#35664f!important;text-align:left;font-size:11px!important;font-weight:700}.analysis-jobs-panel{max-width:430px;margin:16px auto;padding:15px;border:1px solid #dce7e0;border-radius:16px;background:#faf7f0;color:var(--ink);text-align:left}.analysis-jobs-panel.compact{max-width:none;margin:0 0 12px;padding:13px;background:#eef5f0}.analysis-jobs-heading{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-bottom:11px}.analysis-jobs-heading>div{display:grid;gap:2px}.analysis-jobs-heading small{color:var(--green);font-size:11px;font-weight:800}.analysis-jobs-heading strong{font-size:12px}.analysis-jobs-heading>span{color:var(--muted);font-size:11px}.analysis-job-list{display:grid;gap:7px}.analysis-job{min-width:0;display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:9px;padding:9px 10px;border:1px solid #e3e9e4;border-radius:11px;background:var(--surface)}.analysis-job>i{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#edf3ef;color:var(--green);font-size:12px;font-style:normal;font-weight:900}.analysis-job>i.job-spinner{border:2px solid rgba(57,117,132,.2);border-top-color:var(--ice-dark);background:transparent;animation:research-spin .8s linear infinite}.analysis-job.failed{border-color:#ead7d2;background:snow}.analysis-job.failed>i{background:#f4e3df;color:var(--danger)}.analysis-job.failed>div small{overflow:visible;color:#80554e;white-space:normal;line-height:1.45}.analysis-job>div{min-width:0;display:grid;gap:2px}.analysis-job>div strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.analysis-job>div small{overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.research-status{max-width:430px;display:flex;align-items:flex-start;gap:10px;margin:14px auto;padding:13px;border-radius:11px;background:var(--ice);color:#557276;text-align:left}.research-status span{width:15px;height:15px;flex:0 0 auto;margin-top:2px;border:2px solid rgba(57,117,132,.25);border-top-color:var(--ice-dark);border-radius:50%;animation:research-spin .8s linear infinite}.research-status div{min-width:0}.research-status strong{display:block;margin-bottom:3px;color:#37575c;font-size:12px}.research-status p{margin:0;font-size:10px;line-height:1.7}@keyframes research-spin{to{transform:rotate(360deg)}}.import-rules{max-width:390px;margin:24px auto 0;padding:17px 18px 17px 35px;border-radius:13px;background:#f0f3ef;color:#647169;text-align:left;font-size:10px;line-height:2}.recipe-body{padding:0 18px 50px}.recipe-title-block{padding:18px 0 15px}.recipe-title-block>p{margin:0 0 4px;color:var(--green);font-size:12px;font-weight:700}.recipe-title-block h1{margin:0;font-size:24px;line-height:1.45}.recipe-title-block a{min-height:44px;display:inline-flex;align-items:center;margin-top:5px;color:#5f6a63;text-decoration:underline;text-underline-offset:3px;font-size:12px;font-weight:600}.recipe-video-section{margin:0 0 16px}.recipe-video{max-width:430px;margin:0 auto;overflow:hidden;border-radius:8px;background:#17211c}.recipe-video iframe{display:block;width:100%;aspect-ratio:16 / 9;border:0;background:#17211c}.recipe-video-source{max-width:430px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin:10px auto 0}.recipe-video-source p{min-width:0;display:grid;gap:2px;margin:0}.recipe-video-source p span{color:var(--muted);font-size:10px;font-weight:700}.recipe-video-source p strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.youtube-source-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:8px 11px;border:1px solid #d7deda;border-radius:7px;background:var(--surface);color:#a72c2c;font-size:11px;font-weight:800;text-decoration:none}.youtube-source-button:hover{background:#f8f9f7}.youtube-source-button:focus-visible{outline:2px solid #9e1d1d;outline-offset:2px}.instagram-source-card{max-width:430px;margin:0 auto 16px;padding:10px;border:1px solid #e4d9e1;border-radius:10px;background:#fffafd}.instagram-source-summary{display:grid;grid-template-columns:74px minmax(0,1fr);align-items:center;gap:10px}.instagram-source-preview{width:74px;height:60px;overflow:hidden;border-radius:7px;background:#f3ebe8;pointer-events:none}.instagram-source-preview .recipe-card-thumbnail,.instagram-source-preview .recipe-card-icon{width:100%;height:100%;border-radius:0}.instagram-source-copy{min-width:0;display:grid;justify-items:start;gap:0}.instagram-source-button{min-height:32px;display:inline-flex;align-items:center;padding:5px 0;border:0;background:transparent;color:#9b2c73;font-size:11px;font-weight:800;text-decoration:underline;text-underline-offset:3px}.instagram-source-button:hover{background:#fbf7fa}.instagram-source-button:focus-visible{outline:2px solid #9b2c73;outline-offset:2px}.instagram-recipe-jump{min-height:32px;display:inline-flex;align-items:center;gap:5px;padding:5px 0;border:0;background:transparent;color:var(--green);font-size:11px;font-weight:800}.instagram-recipe-jump>span{font-size:11px}.instagram-recipe-jump:focus-visible{outline:2px solid var(--green);outline-offset:2px}.tiktok-source-card{max-width:430px;margin:0 auto 16px;padding:10px;border:1px solid #d9dfdc;border-radius:10px;background:#fbfcfb}.tiktok-source-summary{display:grid;grid-template-columns:78px minmax(0,1fr);align-items:center;gap:11px}.tiktok-source-preview{width:78px;height:96px;display:grid;place-items:center;overflow:hidden;border-radius:7px;background:#171717;color:#fff;font-size:13px;font-weight:900}.tiktok-source-preview img{width:100%;height:100%;display:block;object-fit:cover}.tiktok-source-copy{min-width:0;display:grid;justify-items:start;gap:3px}.tiktok-source-copy>small{color:var(--muted);font-size:9px;font-weight:800}.tiktok-source-copy>strong{max-width:100%;overflow:hidden;color:var(--ink);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.tiktok-source-copy>div{display:flex;align-items:center;gap:13px}.tiktok-source-button,.tiktok-recipe-jump{min-height:32px;display:inline-flex;align-items:center;padding:5px 0;border:0;background:transparent;font-size:10px;font-weight:800;white-space:nowrap}.tiktok-source-button{color:#202b26;text-decoration:underline;text-underline-offset:3px}.tiktok-recipe-jump{gap:4px;color:var(--green)}.tiktok-source-button:focus-visible,.tiktok-recipe-jump:focus-visible{outline:2px solid var(--green);outline-offset:2px}.social-source-card{max-width:430px;display:grid;grid-template-columns:78px minmax(0,1fr);align-items:center;gap:11px;margin:0 auto 16px;padding:10px;border:1px solid #d9dfdc;border-radius:10px;background:#fbfcfb}.social-source-card.instagram{border-color:#e4d9e1;background:#fffafd}.social-source-preview{width:78px;height:96px;padding:0;overflow:hidden;border:0;border-radius:7px;background:#171717}.social-source-preview:disabled{opacity:1}.social-source-thumbnail{width:100%;height:100%;position:relative;display:grid;place-items:center;overflow:hidden}.social-source-thumbnail>img,.social-source-thumbnail .recipe-card-icon{width:100%;height:100%;display:block;border-radius:0;object-fit:cover}.social-source-thumbnail>i{width:32px;height:32px;position:absolute;inset:50% auto auto 50%;display:grid;place-items:center;padding-left:2px;border:1px solid rgba(255,255,255,.72);border-radius:50%;background:#181e1bb8;color:#fff;font-size:11px;font-style:normal;transform:translate(-50%,-50%);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.social-source-copy{min-width:0;display:grid;justify-items:start;gap:3px}.social-source-copy>small{color:var(--muted);font-size:9px;font-weight:800}.social-source-copy>strong{max-width:100%;overflow:hidden;color:var(--ink);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.social-source-copy>div{display:flex;flex-wrap:wrap;align-items:center;gap:0 12px}.social-source-copy button,.social-source-copy a{min-height:32px;display:inline-flex;align-items:center;gap:4px;padding:5px 0;border:0;background:transparent;color:var(--green);font-size:10px;font-weight:800;text-decoration:none;white-space:nowrap}.social-source-copy a{color:#52615a;text-decoration:underline;text-underline-offset:3px}.social-post-player{max-width:430px;margin:0 auto 16px}.social-post-player-marker{height:1px}.social-post-player-space{height:min(68vh,620px);min-height:440px}.social-post-player-shell{width:min(100%,350px);height:100%;position:relative;margin:0 auto;overflow:hidden;border:1px solid #d9dfdc;border-radius:12px;background:#151816;box-shadow:0 10px 28px #1d28221f;transition:width .18s ease,height .18s ease,border-radius .18s ease,box-shadow .18s ease}.social-post-player-shell iframe{width:100%;height:100%;display:block;border:0;background:#151816}.social-player-close{width:32px;height:32px;position:absolute;z-index:2;top:8px;right:8px;display:grid;place-items:center;padding:0;border:1px solid rgba(255,255,255,.42);border-radius:50%;background:#141816b8;color:#fff;font-size:20px;line-height:1;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.social-player-recipe-jump{min-height:42px;position:absolute;z-index:2;right:12px;bottom:12px;left:12px;border:1px solid rgba(255,255,255,.55);border-radius:22px;background:#1e3128e0;color:#fff;font-size:11px;font-weight:900;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.social-post-player-shell.is-floating{width:142px;height:252px;position:fixed;z-index:35;top:70px;right:10px;margin:0;border-radius:10px;box-shadow:0 12px 32px #141e194d}.social-post-player-shell.is-floating .social-player-close{width:28px;height:28px;top:5px;right:5px;font-size:17px}.social-post-player-meta{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 2px 0}.social-post-player-meta>span{min-width:0;display:grid;gap:1px}.social-post-player-meta small{color:var(--muted);font-size:9px;font-weight:700}.social-post-player-meta strong{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.social-post-player-meta a{flex:0 0 auto;color:var(--green);font-size:10px;font-weight:800;text-underline-offset:3px}.creator-profile-embed{margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}.creator-profile-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.creator-profile-identity{min-width:0;display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:10px}.creator-profile-avatar{width:42px;height:42px;display:grid;place-items:center;overflow:hidden;border-radius:50%;background:#27312c;color:#fff;font-size:10px;font-weight:900}.creator-profile-embed.youtube .creator-profile-avatar{background:#c94d42}.creator-profile-embed.instagram .creator-profile-avatar{background:linear-gradient(135deg,#7544b2,#d93279 56%,#f29b3d)}.creator-profile-avatar img{width:100%;height:100%;display:block;object-fit:cover}.creator-profile-identity>span:last-child{min-width:0;display:grid;gap:2px}.creator-profile-identity small{color:var(--muted);font-size:9px;font-weight:700}.creator-profile-identity strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.creator-profile-heading>a{flex:0 0 auto;color:var(--green);font-size:10px;font-weight:800;text-underline-offset:3px}.creator-profile-embed>h2{margin:20px 0 12px;font-size:17px}.creator-profile-embed iframe{width:100%;display:block;border:1px solid #e3e5e2;border-radius:12px;background:#fff}.creator-youtube-frame{aspect-ratio:16 / 9}.creator-youtube-recent{min-width:0}.creator-youtube-player{position:relative;margin-bottom:10px}.creator-youtube-player iframe{aspect-ratio:16 / 9;background:#171917}.creator-youtube-player>button{width:30px;height:30px;position:absolute;top:7px;right:7px;display:grid;place-items:center;padding:0 0 2px;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:#141816b8;color:#fff;font-size:19px;line-height:1;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.creator-youtube-cards{display:flex;gap:9px;margin:0 -24px 0 0;padding:0 24px 7px 0;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none}.creator-youtube-cards::-webkit-scrollbar{display:none}.creator-youtube-cards>button{width:min(68vw,210px);flex:0 0 auto;display:grid;gap:7px;padding:0 0 8px;overflow:hidden;border:1px solid #dde2de;border-radius:10px;background:#fbfcfb;color:var(--ink);text-align:left;scroll-snap-align:start}.creator-youtube-cards>button.active{border-color:#9cafa5;background:#f4f8f5}.creator-youtube-thumbnail{aspect-ratio:16 / 9;position:relative;display:block;overflow:hidden;background:#202420}.creator-youtube-thumbnail img{width:100%;height:100%;display:block;object-fit:cover}.creator-youtube-thumbnail i{width:31px;height:31px;position:absolute;inset:50% auto auto 50%;display:grid;place-items:center;padding-left:2px;border:1px solid rgba(255,255,255,.72);border-radius:50%;background:#1b221eb3;color:#fff;font-size:11px;font-style:normal;transform:translate(-50%,-50%);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.creator-youtube-cards strong{min-height:34px;display:-webkit-box;margin:0 10px;overflow:hidden;font-size:11px;line-height:1.55;-webkit-box-orient:vertical;-webkit-line-clamp:2}.creator-instagram-profile{min-height:88px;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 16px;border:1px solid #e4ded7;border-radius:14px;background:linear-gradient(135deg,#fffdf9,#f7f2ef);color:var(--ink);text-decoration:none}.creator-instagram-mark{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,#7544b2,#d93279 56%,#f29b3d);color:#fff}.creator-instagram-mark svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7}.creator-instagram-mark .creator-instagram-dot{fill:currentColor;stroke:none}.creator-instagram-profile>span:nth-child(2){min-width:0;display:grid;gap:3px}.creator-instagram-profile strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.creator-instagram-profile small{color:var(--muted);font-size:10px}.creator-instagram-profile>b{color:var(--green);font-size:14px}.creator-tiktok-profile{height:680px}.creator-x-profile{overflow:hidden;border:1px solid #e3e5e2;border-radius:12px;background:#fff}.creator-x-profile .twitter-timeline{min-height:120px;display:flex;align-items:center;justify-content:center;color:var(--green);font-size:12px;font-weight:800}.creator-profile-fallback{min-height:44px;display:flex;align-items:center;justify-content:center;margin-top:10px;color:var(--green);font-size:11px;font-weight:800;text-underline-offset:3px}.recipe-content-anchor{scroll-margin-top:66px}.recipe-original-source{margin:-3px 0 16px;color:var(--muted);font-size:11px}.recipe-original-source a{color:#52615a;font-weight:700;text-underline-offset:3px}.recipe-stock-form{margin-bottom:0;padding:18px 0;border-bottom:1px solid var(--line)}.recipe-stock-form h2{margin:0 0 16px;font-size:16px}.recipe-stock-form h3{margin:22px 0 14px;padding-top:18px;border-top:1px solid var(--line);color:var(--ink);font-size:14px}.recipe-stock-form label{display:block;margin-bottom:14px;color:#52615a;font-size:12px;font-weight:700}.recipe-stock-form input,.recipe-stock-form select,.recipe-stock-form textarea{display:block;width:100%;margin-top:7px;padding:12px;border:1px solid #d6ded8;border-radius:7px;background:var(--surface);color:var(--ink);font-size:13px}.recipe-stock-form textarea{min-height:76px;resize:vertical;line-height:1.6}.recipe-content-editor textarea{min-height:104px}.storage-choice-field{margin:0 0 6px;padding:0;border:0}.storage-choice-field legend{margin-bottom:7px;color:#52615a;font-size:12px;font-weight:700}.storage-choice-options{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.recipe-stock-form .storage-choice-options label{margin:0}.recipe-stock-form .storage-choice-options input{position:absolute;width:1px;height:1px;margin:0;opacity:0;pointer-events:none}.recipe-stock-form .storage-choice-options span{min-height:46px;display:grid;place-items:center;border:1px solid #cfd8d2;border-radius:7px;background:var(--surface);color:#52615a;font-size:12px;font-weight:800}.recipe-stock-form .storage-choice-options input:checked+span{border-color:var(--green);background:#e9f1ec;color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.recipe-stock-form .storage-choice-options input:focus-visible+span{outline:2px solid var(--green);outline-offset:2px}.recipe-detail-page .page-bar>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-bar-detail-actions{justify-self:end;display:flex;align-items:center;gap:1px}.page-bar-detail-actions .text-button{padding:6px 4px 6px 7px}.detail-favorite-button{width:40px;min-height:44px;padding:0;border:0;background:transparent;color:#707a74;font-size:24px;line-height:1;cursor:pointer}.detail-favorite-button.active{color:#927530}.detail-favorite-button:disabled{opacity:.45}.recipe-stock-form .check-label{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:14px;padding:11px;border:1px solid #d6ded8;border-radius:7px;background:var(--surface)}.recipe-stock-form .check-label input{width:auto;margin:0}.remove-stock-button{width:100%;min-height:44px;margin-top:9px;border:0;background:transparent;color:var(--danger);font-size:12px;font-weight:700}.recipe-reanalysis{display:grid;justify-items:center;gap:5px;margin-top:8px}.recipe-reanalysis p{margin:0;color:var(--muted);font-size:10px;font-weight:400;line-height:1.5;text-align:center}.recipe-reanalysis>button{min-height:40px;padding:8px 10px;border:0;background:transparent;color:#7b867f;font-size:10px;font-weight:600;text-decoration:underline;text-underline-offset:3px}.recipe-reanalysis>button:disabled{opacity:.55}.recipe-reanalysis .recipe-reanalysis-notice{color:#35664f;font-weight:700}.eat-now-section{margin:0;padding:21px 0 4px;border-bottom:1px solid var(--line)}.eat-now-section>h2{margin:0 0 10px;font-size:18px}.eat-now-section.no-steps{padding:0}.finish-stock-row{min-height:62px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 0}.finish-stock-row>div:first-child{min-width:0;display:grid;gap:3px}.finish-stock-row small{color:var(--muted);font-size:11px}.finish-stock-row strong{color:var(--ink);font-size:14px}.finish-stock-row em{margin-left:3px;color:var(--muted);font-size:11px;font-style:normal}.finish-stock-row button{min-height:44px;min-width:72px;padding:10px 14px;border:0;border-radius:7px;background:var(--green);color:#fff;font-size:12px;font-weight:800}.finish-stock-row button:disabled{opacity:.5}.stock-edit-link{min-height:44px;display:block;margin-left:auto;padding:8px 0 8px 12px;border:0;background:transparent;color:var(--green);font-size:11px;font-weight:700}.use-undo{min-height:44px;display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-top:1px solid var(--line);color:#466052;font-size:12px;font-weight:700}.use-undo button{min-height:44px;padding:7px 11px;border:0;background:transparent;color:var(--green);font-size:12px;font-weight:800}.stock-change-undo{margin:0;border-bottom:1px solid var(--line)}.eating-instructions{margin:0;padding:0;border-top:1px solid var(--line);list-style:none}.eating-instructions li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:9px;padding:15px 0;border-bottom:1px solid #edf0ec}.eating-instructions li:last-child{border-bottom:0}.eating-instructions b{padding-top:1px;color:var(--green);font-size:13px}.eating-instructions strong{font-size:14px}.eating-instructions p{margin:4px 0 0;white-space:pre-wrap;font-size:14px;line-height:1.75}.recipe-section{margin:0;padding:22px 0;border-bottom:1px solid var(--line)}.recipe-section>h2{margin:0 0 12px;font-size:18px}.recipe-ingredients{margin:0;padding:0;list-style:none}.recipe-ingredients li{display:flex;justify-content:space-between;gap:20px;padding:10px 0;border-bottom:1px solid #edf0ec;font-size:14px}.recipe-ingredients li:last-child{border-bottom:0}.recipe-ingredients strong{flex:0 0 auto;color:#53635b;text-align:right}.recipe-steps{margin:0;padding:0;list-style:none}.recipe-steps li{display:grid;grid-template-columns:27px 1fr;gap:11px;padding:11px 0}.recipe-steps b{padding-top:2px;color:var(--green);font-size:12px}.recipe-steps p{margin:1px 0 0;white-space:pre-wrap;font-size:14px;line-height:1.8}.recipe-step-content{min-width:0}.recipe-step-timestamp{min-height:32px;margin:7px 0 0;padding:5px 10px;border:1px solid #b8cbbf;border-radius:999px;background:#f4f8f5;color:var(--green);font-size:11px;font-weight:800}.recipe-step-timestamp:active{background:#e4eee8;transform:translateY(1px)}.recipe-content-empty{margin:0;padding:20px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px}.detail-plan-cta{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}.detail-plan-cta strong{font-size:13px}.detail-plan-cta>button{min-height:44px;padding:8px 18px;border:1px solid var(--green);border-radius:7px;background:var(--green);color:#fff;font-size:12px;font-weight:800}.detail-plan-cta.planned>button{border-color:#cfd8d2;background:var(--surface);color:#59665f}.detail-plan-cta .form-error{grid-column:1 / -1;margin:0}.recipe-notes,.recipe-personal-memo{padding:20px 0;border-bottom:1px solid var(--line)}.recipe-notes h2,.recipe-personal-memo h2{margin:0 0 7px;font-size:15px}.recipe-notes p{margin:0;white-space:pre-wrap;font-size:14px;line-height:1.75}.recipe-personal-memo{padding-left:12px;border-left:3px solid var(--green)}.recipe-personal-memo h2{color:var(--green)}.recipe-personal-memo p{margin:0;white-space:pre-wrap;font-size:14px;line-height:1.75}.cooking-recipe-page{padding-bottom:calc(78px + env(safe-area-inset-bottom))}.cooking-original-link{padding:6px 0 6px 10px;color:var(--green);font-size:11px;font-weight:800}.cooking-recipe-body{padding:0 18px 30px}.cooking-recipe-heading{padding:18px 0 14px}.cooking-recipe-heading>p{margin:0 0 4px;color:var(--green);font-size:11px;font-weight:800}.cooking-recipe-heading h1{margin:0 0 7px;font-size:24px;line-height:1.4}.cooking-quantity-panel{margin:2px 0 4px;padding:13px 14px 14px;border:1px solid #d3ddd6;border-radius:10px;background:#eef4f0}.cooking-quantity-panel legend{padding:0 5px;color:var(--green);font-size:11px;font-weight:900}.cooking-quantity-panel .number-stepper{margin-top:1px}.cooking-quantity-panel>p{margin:9px 0 0;color:var(--muted);text-align:center;font-size:10px}.cooking-quantity-panel:disabled{opacity:.65}.cooking-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 12px}.cooking-section-heading h2{margin:0;font-size:18px}.cooking-section-heading span{flex:0 0 auto;color:var(--muted);font-size:9px;font-weight:700}.cooking-ingredients-section .recipe-ingredients strong{color:var(--green)}.cooking-recipe-footer{width:min(100%,540px);position:fixed;z-index:20;left:50%;bottom:0;padding:9px 18px calc(9px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fffdf8f5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transform:translate(-50%)}.cooking-recipe-footer button{width:100%;min-height:50px;display:flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:9px;background:var(--green);color:#fff;font-size:13px;font-weight:900}.cooking-recipe-footer button:disabled{opacity:.6}.cooking-recipe-footer svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.storage-location-badge.quantity{background:var(--warm);color:#765d31}.cooking-history-meta{display:flex;align-items:center;gap:6px}.cooking-history-meta>b{color:#765d31;font-size:10px}.recipe-history-recent em{padding:2px 5px;border-radius:4px;background:var(--warm);color:#765d31;font-size:9px;font-style:normal;font-weight:800}.number-stepper{min-height:46px;display:grid;grid-template-columns:46px minmax(78px,auto) 46px;align-items:stretch;justify-content:center;gap:5px}.number-stepper button{min-height:46px;border:1px solid #cbd6ce;border-radius:7px;background:var(--surface);color:var(--green);font-size:22px;font-weight:700}.number-stepper button:disabled{color:#aeb7b1;opacity:.55}.number-stepper strong{min-height:46px;display:flex;align-items:baseline;justify-content:center;gap:3px;padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:#f7f4ec;color:var(--ink);font-size:12px}.number-stepper strong span{font-size:20px}.tracked-consumption{display:grid;gap:12px}.tracked-consumption>p{margin:0;color:var(--muted);text-align:center;font-size:12px}.tracked-consumption>p strong{color:var(--ink)}.tracked-consumption>small{color:var(--muted);text-align:center;font-size:10px}.portion-tracking-choice{margin:0 0 13px;padding:12px;border:1px solid var(--line);border-radius:9px;background:#f8f5ed}.portion-tracking-choice>label{min-height:44px;display:flex;align-items:center;gap:10px;color:var(--ink)}.portion-tracking-choice input{width:22px;height:22px;accent-color:var(--green)}.portion-tracking-choice label span{display:grid;gap:2px}.portion-tracking-choice label strong{font-size:12px}.portion-tracking-choice label small{color:var(--muted);font-size:10px}.portion-tracking-choice .number-stepper{margin-top:10px}.stock-count-editor{margin:10px 0 14px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#f8f5ed}.stock-count-editor>label:last-child{margin-top:8px}@media(min-width:700px){body{background:#e9eee9}.app-shell,.sheet-page,.detail-page{min-height:calc(100vh - 32px);margin-top:16px;margin-bottom:16px;border-radius:22px;overflow:hidden}.auth-page{min-height:100vh}}@media(max-width:380px){.two-columns{grid-template-columns:1fr;gap:0}.stock-card{grid-template-columns:48px 1fr auto;padding:12px}.card-icon{width:48px;height:48px}.recipe-card-main{grid-template-columns:64px minmax(0,1fr);gap:9px}.recipe-card-thumbnail,.recipe-card-icon{width:64px}}@media(max-width:699px){input,select,textarea{font-size:16px!important}}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #1f6647!important;outline-offset:2px}.recipe-list-toolbar select:focus-visible{outline:2px solid #1f6647!important;outline-offset:0}.recipe-row>button:focus-visible{outline-offset:-4px}.cooking-complete-toast button:focus-visible{outline-color:#fff!important}@media(prefers-reduced-motion:reduce){.cooking-complete-toast,.recipe-list,.recipe-swipe-cue,.menu-companion,.menu-companion-figure{animation:none!important;transition:none!important}}
