:root{--tomato: #e04e1b;--tomato-deep: #b93b0c;--tomato-soft: #fde8dc;--honey: #f6b92b;--honey-soft: #fdf3d7;--olive: #5f7a2a;--olive-soft: #eef2dd;--aegean: #2f6f7e;--linen: #f1e5cf;--flour: #faf1e3;--paper: #fffdf9;--crust: #eeddc4;--ink: #33261d;--ink-soft: #7a6753;--red: #c92a2a;--red-soft: #fdeaea;--card: var(--paper);--border: var(--crust);--shadow: 0 2px 10px rgba(122, 84, 40, .09);--shadow-lift: 0 10px 30px rgba(122, 84, 40, .16);--radius: 18px;--font-display: "Comfortaa", "Nunito", system-ui, sans-serif;--font-body: "Nunito", -apple-system, "Segoe UI", Roboto, sans-serif;--gingham: repeating-linear-gradient(0deg, rgba(224, 78, 27, .25) 0 5px, transparent 5px 10px), repeating-linear-gradient(90deg, rgba(224, 78, 27, .25) 0 5px, transparent 5px 10px), var(--paper)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;overflow:hidden;overscroll-behavior:none}body{font-family:var(--font-body);background:var(--linen);color:var(--ink);-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,select{font-family:inherit;font-size:16px}:focus-visible{outline:3px solid var(--honey);outline-offset:2px;border-radius:6px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.app{max-width:520px;margin:0 auto;height:100vh;height:100dvh;display:flex;flex-direction:column;background:var(--flour)}@media (min-width: 560px){.app{border-left:1px solid var(--crust);border-right:1px solid var(--crust)}}.app-header{position:relative;display:flex;align-items:center;justify-content:space-between;padding:calc(6px + env(safe-area-inset-top)) 14px 6px 10px;border-bottom:6px solid transparent;border-image:none}.app-header{border-bottom-width:10px}.app-header:after{content:"";position:absolute;left:0;right:0;bottom:-10px;height:10px;background:var(--gingham);background-size:10px 10px,10px 10px,auto;opacity:.9;pointer-events:none}.brand{display:flex;align-items:center;gap:9px;min-width:0}.logo{height:50px;width:auto}.key-warn{font-size:18px}.app-main{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.home-view,.chat-view,.recipes-view,.profile-view,.shop-view{animation:viewIn .28s ease both}@keyframes viewIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.bottom-nav{display:flex;border-top:1px solid var(--border);background:var(--paper);padding:4px 6px calc(4px + env(safe-area-inset-bottom));gap:4px}.bottom-nav button{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 0 6px;font-size:11.5px;font-weight:800;color:var(--ink-soft);border-radius:14px;transition:background .15s ease,color .15s ease}.nav-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 360px){.bottom-nav button{font-size:10.5px}}.bottom-nav .nav-icon{width:24px;height:24px;display:block}.bottom-nav .nav-icon path,.bottom-nav .nav-icon circle{stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;transition:fill .15s ease}.bottom-nav button.active{color:var(--tomato-deep);background:var(--tomato-soft)}.bottom-nav button.active .nav-icon path.fillable,.bottom-nav button.active .nav-icon circle.fillable{fill:#e04e1b2e}.btn{border-radius:999px;font-weight:800;font-size:15px;padding:10px 18px;transition:transform .06s ease,background .15s ease,box-shadow .15s ease}.btn:active{transform:scale(.96)}.btn-primary{background:var(--tomato);color:#fff;box-shadow:0 3px 10px #e04e1b52}.btn-primary:hover{background:var(--tomato-deep)}.btn-primary:disabled{opacity:.5;box-shadow:none}.btn-ghost{background:var(--tomato-soft);color:var(--tomato-deep)}.btn-ghost:hover{background:#fadccb}.btn-danger{background:var(--red);color:#fff}.btn-olive{background:var(--olive);color:#fff;box-shadow:0 3px 10px #5f7a2a4d}.btn-olive:hover{background:#4e6522}.btn-sm{font-size:13.5px;padding:8px 14px}.btn-lg{font-size:16.5px;padding:14px 26px}.full-width{width:100%;margin-top:16px}.btn-with-icon{display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-with-icon .nav-icon{width:20px;height:20px;flex-shrink:0}.btn-with-icon .nav-icon path{stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.icon-btn{font-size:20px;padding:8px;border-radius:12px;min-width:42px;min-height:42px;display:inline-flex;align-items:center;justify-content:center}.icon-btn:active{background:var(--tomato-soft)}.icon-btn .nav-icon{width:23px;height:23px}.icon-btn .nav-icon path,.icon-btn .nav-icon circle{stroke:var(--ink);fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.chat-view{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.chat-scroll{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:14px 18px 18px;display:flex;flex-direction:column;gap:10px}.bubble{max-width:86%;padding:12px 16px;border-radius:var(--radius);line-height:1.5;font-size:15.5px;white-space:pre-wrap;word-break:break-word}.msg-row{display:flex;align-items:flex-end;gap:8px;max-width:100%;animation:bubbleIn .22s ease both}@keyframes bubbleIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.msg-row.user{align-self:flex-end;flex-direction:row-reverse}.msg-avatar{width:32px;height:32px;border-radius:50%;flex-shrink:0;box-shadow:var(--shadow);border:1.5px solid var(--paper);background:var(--tomato-soft)}.bubble.assistant{background:var(--paper);border:1px solid var(--crust);box-shadow:var(--shadow);border-bottom-left-radius:6px;align-self:flex-start}.bubble.user{background:var(--tomato);color:#fff;border-bottom-right-radius:6px;align-self:flex-end;box-shadow:0 2px 8px #e04e1b40}.bubble.error{background:var(--red-soft);border-color:#f5c6c6;color:var(--red)}.typing-dots{display:inline-flex;align-items:center;gap:5px;padding:3px 2px}.typing-dots span{width:8px;height:8px;border-radius:50%;background:var(--tomato);opacity:.4;animation:simmer 1.2s infinite ease-in-out}.typing-dots span:nth-child(2){animation-delay:.18s}.typing-dots span:nth-child(3){animation-delay:.36s}@keyframes simmer{0%,60%,to{transform:translateY(0);opacity:.35}30%{transform:translateY(-5px);opacity:1}}.chat-hero-avatar{width:76px;height:76px;border-radius:50%;border:3px solid var(--paper);box-shadow:var(--shadow-lift);background:var(--tomato-soft);align-self:center;margin-top:10px;animation:chefBob 3.4s ease-in-out infinite}@keyframes chefBob{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-5px) rotate(2deg)}}.msg-row.hero-row{justify-content:center;margin-top:2px}.msg-row.hero-row .bubble{text-align:center;border-radius:var(--radius);max-width:94%}.chips{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:6px 0}.chips .chip{animation:viewIn .3s ease both}.chips .chip:nth-child(2){animation-delay:.06s}.chips .chip:nth-child(3){animation-delay:.12s}.chips .chip:nth-child(4){animation-delay:.18s}.chip{background:var(--paper);border:1.5px solid var(--crust);border-radius:16px;padding:12px 13px;font-size:13.5px;font-weight:700;color:var(--ink);box-shadow:var(--shadow);text-align:left;line-height:1.35;transition:border-color .15s ease,transform .06s ease}.chip:hover{border-color:var(--tomato)}.chip:active{transform:scale(.97)}.chip.active{background:var(--tomato);border-color:var(--tomato);color:#fff}.chat-input-bar{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--paper);border-top:1px solid var(--border)}.chat-input-bar input{flex:1;min-width:0;border:1.5px solid var(--crust);border-radius:999px;padding:12px 18px;outline:none;background:var(--flour);color:var(--ink);transition:border-color .15s ease}.chat-input-bar input::placeholder{color:var(--ink-soft)}.chat-input-bar input:focus{border-color:var(--tomato)}.chat-field{position:relative;flex:1;min-width:0;display:flex;align-items:center}.chat-field input{flex:1;min-width:0;padding-right:46px}.chat-field.dictating input{border-color:var(--olive);background:var(--olive-soft)}.mic-inline{position:absolute;right:5px;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:transparent;flex-shrink:0;transition:background .15s ease,transform .1s ease}.mic-inline:active{transform:scale(.9)}.mic-inline .nav-icon{width:20px;height:20px}.mic-inline .nav-icon path{stroke:var(--ink-soft);fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;transition:stroke .2s ease}.mic-inline.active{background:var(--olive);animation:micHalo 1.8s ease-out infinite}.mic-inline.active .nav-icon path{stroke:#fff}.mic-inline.active .nav-icon .fillable{fill:#ffffff47}.mic-inline:disabled{opacity:1}.mic-spinner{width:17px;height:17px;border-radius:50%;border:2.5px solid var(--olive-soft);border-top-color:var(--olive);animation:micSpin .7s linear infinite}@keyframes micSpin{to{transform:rotate(360deg)}}.chat-input-bar.sending{position:relative}.chat-input-bar.sending:before{content:"";position:absolute;top:-1px;left:0;height:2px;width:38%;background:linear-gradient(90deg,transparent,var(--tomato),transparent);animation:barSweep 1.15s ease-in-out infinite}@keyframes barSweep{0%{transform:translate(-100%)}to{transform:translate(300%)}}.chat-voice-error{margin:0 18px 8px;font-size:12.5px;line-height:1.4;color:var(--red)}.mic-btn{min-width:46px;min-height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--tomato-soft);flex-shrink:0;transition:background .2s ease,transform .1s ease}.mic-btn:active{transform:scale(.92)}.mic-btn .nav-icon{width:22px;height:22px}.mic-btn .nav-icon path{stroke:var(--tomato-deep);fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;transition:stroke .2s ease}.mic-btn.active{background:var(--olive);animation:micHalo 1.8s ease-out infinite}.mic-btn.active .nav-icon path{stroke:#fff}.mic-btn.active .nav-icon .fillable{fill:#ffffff47}@keyframes micHalo{0%{box-shadow:0 0 #5f7a2a73}70%,to{box-shadow:0 0 0 11px #5f7a2a00}}.send-btn{font-size:18px;min-width:46px;min-height:46px;border-radius:50%;background:var(--tomato);color:#fff;flex-shrink:0;box-shadow:0 2px 8px #e04e1b4d}.send-btn:disabled{opacity:.4;box-shadow:none}.talk-action{width:38px;height:38px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:transform .1s ease,background .15s ease}.talk-action:active{transform:scale(.88)}.talk-action .nav-icon{width:21px;height:21px}.talk-hangup{background:var(--red);box-shadow:0 2px 8px #c92a2a59}.talk-hangup .nav-icon path{stroke:#fff;fill:#ffffff38;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.chip.clear-chat{align-self:center;color:var(--ink-soft);font-size:13px;margin-top:4px;border-radius:999px;padding:9px 15px}.inline-recipes{display:flex;flex-direction:column;gap:10px;margin:8px 0 4px}.recipe-card{position:relative;background:var(--paper);border:1px solid var(--crust);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px;transition:box-shadow .15s ease,transform .15s ease}.recipe-card:hover{box-shadow:var(--shadow-lift)}.recipe-card-top{display:flex;gap:12px;align-items:flex-start;padding-right:40px}.recipe-emoji{font-size:34px;width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 32% 28%,#fff 0%,var(--tomato-soft) 78%);border:1px solid var(--crust);border-radius:50%;flex-shrink:0}.recipe-card-body{flex:1;min-width:0}.recipe-name{font-weight:900;font-size:16px;line-height:1.3}.recipe-chef{color:var(--ink-soft);font-size:13px;margin-top:2px}.recipe-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.recipe-meta.center{justify-content:center}.meta-pill{background:var(--flour);border:1px solid var(--crust);border-radius:999px;font-size:12px;font-weight:700;padding:4px 10px;color:var(--ink-soft)}.kcal-pill{color:var(--tomato-deep);border-color:var(--tomato-soft);background:var(--honey-soft)}.recipe-actions{display:flex;gap:8px;margin-top:12px}.recipe-actions .btn{flex:1;white-space:nowrap}.cl-corner{position:absolute;top:10px;right:10px;width:40px;height:40px;border-radius:50%;border:1.7px dashed var(--tomato);background:var(--paper);display:flex;align-items:center;justify-content:center;transition:background .15s ease,border-color .15s ease,transform .1s ease}.cl-corner .nav-icon{width:21px;height:21px}.cl-corner .nav-icon path{stroke:var(--tomato-deep);fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.cl-corner .cl-mark{position:absolute;top:-5px;right:-5px;width:18px;height:18px;border-radius:50%;background:var(--tomato);color:#fff;font-size:13px;font-weight:900;line-height:1;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--paper)}.cl-corner:active{transform:scale(.9)}.cl-corner.in{border-style:solid;border-color:var(--olive);background:var(--olive-soft)}.cl-corner.in .nav-icon path{stroke:var(--olive)}.cl-corner.in .cl-mark{background:var(--olive);font-size:11px}.recipes-view{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:14px 18px 22px}.search-wrap{position:relative;margin-bottom:10px}.search-wrap .search-icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);width:18px;height:18px;pointer-events:none}.search-wrap .search-icon path,.search-wrap .search-icon circle{stroke:var(--ink-soft);fill:none;stroke-width:2;stroke-linecap:round}.search-input{width:100%;border:1.5px solid var(--crust);border-radius:999px;padding:12px 18px 12px 42px;outline:none;background:var(--paper);color:var(--ink);transition:border-color .15s ease}.search-input::placeholder{color:var(--ink-soft)}.search-input:focus{border-color:var(--tomato)}.search-clear{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;font-size:15px;color:var(--ink-soft);transition:color .15s ease,background .15s ease}.search-clear:hover{color:var(--tomato-deep);background:var(--tomato-soft)}.recipes-empty{padding-top:10px}.recipes-empty .empty-note{padding-bottom:14px}.filter-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:12px;scrollbar-width:none}.filter-row::-webkit-scrollbar{display:none}.brunch-badge{display:inline-block;align-self:flex-start;margin-bottom:8px;padding:3px 10px;border-radius:999px;background:var(--accent-soft, rgba(230, 145, 56, .16));color:var(--accent, #b4651a);font-size:12px;font-weight:700;letter-spacing:.01em}.filter-group-label{flex-shrink:0;align-self:center;padding-right:2px;font-size:12px;font-weight:700;color:var(--ink-soft);white-space:nowrap}.filter-row+.filter-row{padding-bottom:8px}.filter-row .chip{flex-shrink:0;border-radius:999px;padding:9px 15px;font-size:14px}.segmented.recipes-source{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;border-radius:18px;margin-bottom:10px}.segmented.recipes-source button{min-width:0;padding:9px 6px;font-size:13.5px;border-radius:999px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recipes-toolbar{display:flex;gap:8px;margin-bottom:10px}.recipes-toolbar .chip{flex:1;min-width:0;border-radius:999px;padding:10px 12px;font-size:13.5px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recipes-toolbar .chip-new{flex:0 0 auto}.recipes-toolbar .chip-ask{flex:1}.chip-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;margin-left:6px;padding:0 4px;border-radius:999px;background:var(--paper);color:var(--tomato-deep);font-size:11.5px;font-weight:900;line-height:1}.cat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:6px}.cat-tile{display:flex;align-items:center;gap:9px;padding:10px 11px;background:var(--paper);border:1.5px solid var(--crust);border-radius:14px;box-shadow:var(--shadow);text-align:left;transition:border-color .15s ease,transform .06s ease}.cat-tile:hover{border-color:var(--tomato)}.cat-tile:active{transform:scale(.97)}.cat-emoji{flex-shrink:0;font-size:20px;line-height:1}.cat-label{flex:1;min-width:0;font-size:12.5px;font-weight:700;line-height:1.25;color:var(--ink)}.cat-count{flex-shrink:0;font-size:12px;font-weight:800;color:var(--ink-soft)}.chapter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px}.chapter-pill{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:var(--tomato);border:1.5px solid var(--tomato);color:#fff;font-size:13.5px;font-weight:800}.chapter-x{font-size:12px;opacity:.85}.chapter-clear{padding:8px 12px;border-radius:999px;border:1.5px solid var(--crust);background:var(--paper);color:var(--ink-soft);font-size:13px;font-weight:700}.recipes-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.recipes-grid>*{animation:viewIn .28s ease both}.recipes-grid>*:nth-child(n+3){animation-delay:.05s}.recipes-grid>*:nth-child(n+5){animation-delay:.1s}.recipe-tile{position:relative;display:flex;flex-direction:column;gap:6px;padding:12px;background:var(--paper);border:1px solid var(--crust);border-radius:var(--radius);box-shadow:var(--shadow);transition:box-shadow .15s ease}.recipe-tile:hover{box-shadow:var(--shadow-lift)}.tile-open{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;border-radius:var(--radius);background:none}.recipe-tile .cl-corner,.recipe-tile .tile-cook{z-index:2}.recipe-tile .cl-corner{top:8px;right:8px;width:34px;height:34px}.recipe-tile .cl-corner .nav-icon{width:18px;height:18px}.tile-delete{position:absolute;z-index:2;top:10px;right:56px;width:30px;height:30px;border-radius:50%;background:none;display:flex;align-items:center;justify-content:center;transition:background .15s ease,transform .1s ease}.tile-delete .nav-icon{width:17px;height:17px}.tile-delete .nav-icon path{stroke:var(--ink-soft);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.tile-delete:hover{background:var(--red-soft)}.tile-delete:hover .nav-icon path{stroke:var(--red)}.tile-delete:active{transform:scale(.9);background:var(--red-soft)}.tile-delete:active .nav-icon path{stroke:var(--red)}.recipe-tile-name{font-size:14.5px;font-weight:900;line-height:1.25;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-tile-chef{font-size:11.5px;font-weight:700;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recipe-tile-foot{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:auto;padding-top:2px}.recipe-tile-meta{display:flex;flex-wrap:nowrap;gap:5px;min-width:0}.recipe-tile .meta-pill{padding:3px 7px;font-size:11px;white-space:nowrap}.tile-cook{flex-shrink:0;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--tomato);transition:transform .1s ease}.tile-cook:active{transform:scale(.9)}.tile-cook .nav-icon{width:15px;height:15px}.tile-cook .nav-icon path{fill:#fff;stroke:none}.recipe-tile .recipe-warning{margin:0}.recipes-list{display:flex;flex-direction:column;gap:12px}.recipes-list .recipe-card,.inline-recipes .recipe-card{animation:viewIn .3s ease both}.recipes-list .recipe-card:nth-child(2){animation-delay:.05s}.recipes-list .recipe-card:nth-child(3){animation-delay:.1s}.recipes-list .recipe-card:nth-child(4){animation-delay:.15s}.recipes-list .recipe-card:nth-child(n+5){animation-delay:.2s}.empty-note{text-align:center;color:var(--ink-soft);padding:30px 0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#33261d80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-end;justify-content:center;z-index:50;animation:backdropIn .2s ease both}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--paper);border-radius:24px 24px 0 0;padding:14px 20px calc(22px + env(safe-area-inset-bottom));width:100%;max-width:520px;max-height:88dvh;overflow-y:auto;overscroll-behavior:contain;position:relative;animation:slideUp .25s ease}.modal:before{content:"";display:block;width:44px;height:5px;border-radius:999px;background:var(--crust);margin:0 auto 12px}.modal.confirm:before{display:none}@keyframes slideUp{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-close{position:absolute;top:14px;right:14px;font-size:15px;background:var(--flour);border:1px solid var(--crust);border-radius:50%;width:34px;height:34px}.modal h3{font-family:var(--font-display);font-size:17px;margin:22px 0 8px}.modal.confirm{border-radius:24px;margin:0 20px 40vh;max-width:420px;padding-top:22px}.confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.detail-hero{text-align:center}.detail-emoji{font-size:54px;display:inline-flex;align-items:center;justify-content:center;width:96px;height:96px;background:radial-gradient(circle at 32% 28%,#fff 0%,var(--tomato-soft) 82%);border:1px solid var(--crust);border-radius:50%;box-shadow:var(--shadow)}.detail-hero h2{font-family:var(--font-display);font-size:22px;margin-top:10px}.nutrition-row{display:flex;gap:8px;justify-content:center;margin-top:14px}.nutri-box{background:var(--flour);border:1px solid var(--crust);border-radius:14px;padding:8px 12px;display:flex;flex-direction:column;min-width:64px}.nutri-box b{font-size:16px;color:var(--tomato-deep)}.nutri-box span{font-size:11px;color:var(--ink-soft)}.ingredient-list{list-style:none}.ingredient-list li{padding:9px 0 9px 28px;border-bottom:1px dashed var(--crust);position:relative}.ingredient-list li:before{content:"🥄";position:absolute;left:0;font-size:14px}.steps-list{padding-left:22px}.steps-list li{padding:7px 0;line-height:1.5}.steps-list li::marker{font-weight:900;color:var(--tomato-deep)}.cooking-session{height:100vh;height:100dvh;display:flex;flex-direction:column;background:var(--flour)}.cook-header{display:flex;align-items:center;gap:8px;padding:calc(10px + env(safe-area-inset-top)) 12px 10px}.cook-title{flex:1;text-align:center;display:flex;flex-direction:column;line-height:1.25;min-width:0}.cook-title b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cook-title span{font-size:12.5px;color:var(--ink-soft)}.step-dots{display:flex;gap:5px;margin:0 16px}.step-dots i{flex:1;height:7px;border-radius:999px;background:var(--crust);transition:background .25s ease}.step-dots i.done{background:var(--tomato)}.step-dots i.now{background:var(--tomato);box-shadow:0 0 0 2.5px var(--tomato-soft)}.progress-track{height:6px;background:var(--tomato-soft);margin:0 16px;border-radius:999px;overflow:hidden}.progress-fill{height:100%;background:var(--tomato);border-radius:999px;transition:width .3s ease}.cook-body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:16px 18px;display:flex;flex-direction:column;gap:14px}.step-card{background:var(--paper);border:1px solid var(--crust);border-radius:22px;box-shadow:var(--shadow);padding:22px 20px;animation:viewIn .25s ease both}.step-number{font-family:var(--font-display);font-size:13px;font-weight:700;color:var(--tomato-deep);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}.step-text{font-size:21px;line-height:1.5;font-weight:700}.tip-box{margin-top:14px;background:var(--honey-soft);border:1px solid #f3dfa5;border-radius:14px;padding:12px 14px;font-size:14px;line-height:1.5;color:#6d500e;display:flex;gap:10px;align-items:flex-start}.tip-box .tip-avatar{width:28px;height:28px;border-radius:50%;flex-shrink:0;border:1.5px solid #f3dfa5;background:var(--tomato-soft)}.timer-widget{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:14px;padding:8px 10px;background:var(--flour);border:1px solid var(--crust);border-radius:999px}.timer-widget.done{border-radius:18px;background:var(--olive-soft);border-color:#d6dfb9}.timer-widget.alarming{background:var(--tomato-soft);border-color:#f3cdbc;animation:stepTimerFlash 1s ease-in-out infinite}@keyframes stepTimerFlash{50%{background:#fbd3c2;border-color:var(--tomato)}}.timer-widget.done.alarming .timer-time{color:var(--tomato-deep)}.timer-widget.done.alarming .ring-fill{stroke:var(--tomato-deep)}.timer-dial{width:30px;height:30px;flex-shrink:0;transform:rotate(-90deg)}.timer-dial .ring-track{fill:none;stroke:var(--crust);stroke-width:4}.timer-dial .ring-fill{fill:none;stroke:var(--tomato);stroke-width:4;stroke-linecap:round;transition:stroke-dashoffset .9s linear,stroke .3s ease}.timer-widget.done .ring-fill{stroke:var(--olive)}.timer-time{font-family:var(--font-display);font-size:19px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink);flex-shrink:0}.timer-widget.done .timer-time{color:var(--olive)}.timer-widget.urgent .timer-time{color:var(--tomato-deep);animation:urgentPulse 1s ease-in-out infinite}@keyframes urgentPulse{0%,to{transform:scale(1)}50%{transform:scale(1.07)}}.timer-controls{display:flex;gap:6px;margin-left:auto}.timer-btn{min-width:38px;padding:8px 10px;font-size:15px;line-height:1}.timer-btn-wide{padding:8px 14px;font-size:14px;white-space:nowrap}.timer-done-note{font-weight:800;font-size:13.5px;color:var(--olive)}.next-peek{position:relative;display:flex;flex-direction:column;gap:4px;width:100%;text-align:left;background:var(--paper);border:1px dashed var(--crust);border-radius:18px;padding:12px 16px 14px;opacity:.62;transition:opacity .18s ease,transform .12s ease}.next-peek:hover{opacity:.85}.next-peek:active{transform:scale(.99);opacity:.9}.next-peek-head{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-soft)}.next-peek-head b{color:var(--tomato-deep)}.next-peek-timer{font-variant-numeric:tabular-nums;letter-spacing:0;text-transform:none}.next-peek-text{font-size:14.5px;line-height:1.45;font-weight:600;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,#000 45%,rgba(0,0,0,.25) 100%);mask-image:linear-gradient(180deg,#000 45%,#00000040)}.next-peek.is-last{border-style:solid;border-color:var(--olive-soft);background:var(--olive-soft);opacity:.75}.next-peek.is-last .next-peek-head b{color:var(--olive)}.cook-keep{position:relative}.cook-keep .nav-icon{width:21px;height:21px}.cook-keep .nav-icon path{stroke:var(--tomato-deep);fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.cook-keep .cl-mark{position:absolute;top:0;right:0;width:16px;height:16px;border-radius:50%;background:var(--tomato);color:#fff;font-size:12px;font-weight:900;line-height:1;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--flour)}.cook-keep.in .nav-icon path{stroke:var(--olive)}.cook-keep.in .cl-mark{background:var(--olive);font-size:10px}.other-timers{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13.5px;color:var(--ink-soft)}.other-timers .chip{border-radius:999px;padding:8px 14px;font-variant-numeric:tabular-nums}.step-nav{display:flex;gap:10px;padding:10px 18px 12px;background:var(--flour);border-top:1px solid var(--crust)}.step-nav .btn{flex:1}.step-nav .btn:disabled{opacity:.4}.cook-ask-open{flex-shrink:0;display:flex;align-items:center;gap:10px;margin:0 18px calc(12px + env(safe-area-inset-bottom));padding:11px 14px;background:var(--paper);border:1.5px solid var(--crust);border-radius:999px;box-shadow:var(--shadow);font-size:14px;font-weight:700;color:var(--ink);text-align:left}.cook-ask-open img{width:28px;height:28px;border-radius:50%;flex-shrink:0;background:var(--tomato-soft)}.cook-ask-open span:not(.cook-ask-chevron){flex:1;min-width:0}.cook-ask-chevron{flex-shrink:0;font-size:22px;line-height:1;color:var(--tomato)}.cook-ask{flex:0 0 auto;height:54dvh;display:flex;flex-direction:column;min-height:0;background:var(--paper);border-top:1.5px solid var(--crust);border-top-left-radius:20px;border-top-right-radius:20px;box-shadow:var(--shadow-lift);animation:askIn .26s cubic-bezier(.34,1.2,.64,1) both;overflow:hidden}.cook-ask.dragging{animation:none}.cook-ask-grip{flex-shrink:0;height:28px;display:flex;align-items:center;justify-content:center;cursor:ns-resize;touch-action:none}.cook-ask-grip span{width:40px;height:4px;border-radius:999px;background:var(--crust);transition:background .15s ease,width .15s ease}.cook-ask-grip:hover span,.cook-ask.dragging .cook-ask-grip span{background:var(--tomato);width:52px}.cook-ask-grip:focus-visible{outline:none}.cook-ask-grip:focus-visible span{background:var(--tomato);box-shadow:0 0 0 3px var(--tomato-soft)}@keyframes askIn{0%{opacity:0;transform:translate(28%)}to{opacity:1;transform:translate(0)}}.cook-ask-head{flex-shrink:0;display:flex;align-items:center;gap:8px;padding:2px 12px 10px 14px;border-bottom:1px solid var(--border)}.cook-ask-avatar{width:30px;height:30px;border-radius:50%;background:var(--tomato-soft);flex-shrink:0}.cook-ask-title{flex:1;min-width:0;font-family:var(--font-display);font-size:15px;font-weight:800;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cook-ask-head .live-btn{width:38px;height:38px}.cook-ask-close{flex-shrink:0;font-size:17px;color:var(--ink-soft)}.cook-ask-messages{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:12px 18px;display:flex;flex-direction:column;gap:8px}.cook-ask-empty{margin:auto 0;text-align:center;font-size:13.5px;line-height:1.5;color:var(--ink-soft)}.cook-ask .chat-input-bar{flex-shrink:0;padding-bottom:calc(10px + env(safe-area-inset-bottom))}.cook-ask .live-bar.at-bottom{padding-bottom:calc(9px + env(safe-area-inset-bottom))}.timer-silence{margin-top:10px}.finished-screen{align-items:center;justify-content:center;text-align:center;padding:30px;gap:12px;position:relative;overflow:hidden}.finish-emoji{font-size:74px;width:140px;height:140px;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 32% 28%,#fff 0%,var(--tomato-soft) 82%);border:1px solid var(--crust);border-radius:50%;box-shadow:var(--shadow-lift);animation:bounceIn .6s ease}@keyframes bounceIn{0%{transform:scale(.3)}60%{transform:scale(1.15)}to{transform:scale(1)}}.finished-screen h1{font-family:var(--font-display);font-size:30px;color:var(--tomato-deep)}.finish-recipe-name{font-weight:800;color:var(--ink-soft);margin-bottom:14px}.confetti{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.confetti i{position:absolute;top:-14px;width:9px;height:13px;border-radius:2px;opacity:0;animation:confettiFall 2.8s ease-in forwards}@keyframes confettiFall{0%{opacity:1;transform:translateY(0) rotate(0)}to{opacity:.85;transform:translateY(105vh) rotate(560deg)}}.onboarding{height:100vh;height:100dvh;display:flex;flex-direction:column;padding:calc(24px + env(safe-area-inset-top)) 20px calc(20px + env(safe-area-inset-bottom));max-width:520px;margin:0 auto;overflow-y:auto;overscroll-behavior:contain}.ob-header{text-align:center}.ob-avatar{width:84px;height:84px;border-radius:50%;border:3px solid var(--paper);box-shadow:var(--shadow-lift);background:var(--tomato-soft);margin-top:14px;animation:chefBob 3.4s ease-in-out infinite}.ob-header h1{font-family:var(--font-display);font-size:24px;margin-top:12px}.ob-subtitle{color:var(--ink-soft);margin-top:8px;font-size:15px}.ob-progress{display:flex;gap:8px;justify-content:center;margin:18px 0 8px}.ob-dot{flex:1 1 auto;max-width:34px;min-width:6px;height:7px;border-radius:999px;background:var(--crust);transition:background .25s}.ob-dot.filled{background:var(--tomato)}.ob-question{flex:1;padding-top:16px}.ob-question h2{font-family:var(--font-display);font-size:20px;margin-bottom:6px}.ob-hint{color:var(--ink-soft);font-size:14px;margin-bottom:6px}.ob-options{display:flex;flex-direction:column;gap:10px;margin-top:14px}.ob-options .ob-option:nth-child(2){animation-delay:.05s}.ob-options .ob-option:nth-child(3){animation-delay:.1s}.ob-options .ob-option:nth-child(4){animation-delay:.15s}.ob-option{animation:viewIn .28s ease both;position:relative;display:flex;align-items:center;gap:12px;background:var(--paper);border:2px solid var(--crust);border-radius:16px;padding:15px 44px 15px 16px;font-size:15.5px;font-weight:700;text-align:left;transition:border-color .15s,background .15s}.ob-option.selected{border-color:var(--tomato);background:var(--tomato-soft)}.ob-option.selected:after{content:"✓";position:absolute;right:14px;top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:50%;background:var(--tomato);color:#fff;font-size:13px;font-weight:900;display:flex;align-items:center;justify-content:center}.ob-emoji{font-size:22px}.ob-footer{display:flex;justify-content:space-between;gap:10px;padding-top:16px}.lang-switch{display:inline-flex;background:var(--paper);border:1.5px solid var(--crust);border-radius:999px;overflow:hidden}.lang-switch button{padding:8px 16px;font-weight:800;font-size:14px;color:var(--ink-soft)}.lang-switch button.active{background:var(--tomato);color:#fff}.profile-view{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:14px 18px 22px}.profile-view h2:first-child{margin-top:4px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:14px;background:var(--paper);border:1px solid var(--crust);border-radius:16px;box-shadow:var(--shadow);padding:15px 16px;margin-bottom:10px}.setting-hint{font-size:12.5px;color:var(--ink-soft);margin-top:3px}.toggle{width:54px;height:32px;border-radius:999px;background:#e3d7c3;position:relative;transition:background .2s;flex-shrink:0}.toggle.on{background:var(--olive)}.toggle .knob{position:absolute;top:3px;left:3px;width:26px;height:26px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #00000040;transition:left .25s cubic-bezier(.34,1.4,.64,1)}.toggle.on .knob{left:25px}.profile-summary{background:var(--paper);border:1px solid var(--crust);border-radius:16px;box-shadow:var(--shadow);padding:6px 16px;margin-bottom:10px}.profile-fact{padding:11px 0;border-bottom:1px dashed var(--crust);font-size:14.5px}.profile-fact:last-child{border-bottom:none}.version-list{display:flex;flex-direction:column;gap:10px;margin-top:18px}.version-option{display:flex;flex-direction:column;gap:4px;text-align:left;background:var(--paper);border:2px solid var(--crust);border-radius:16px;padding:14px 16px;transition:border-color .15s,background .15s}.version-option:active{border-color:var(--tomato);background:var(--tomato-soft)}.version-option.original{border-color:var(--tomato-soft);background:var(--flour)}.version-title{font-weight:800;font-size:15.5px}.version-desc{font-size:13.5px;color:var(--ink-soft);line-height:1.4}.version-date{font-size:12px;color:var(--ink-soft);opacity:.8}.version-note{font-size:14.5px;color:var(--ink-soft);display:flex;flex-direction:column;gap:4px;max-width:300px}.version-note.saved{color:var(--olive);font-weight:800}.version-note.saved span{font-weight:400;font-size:12.5px;color:var(--ink-soft)}.warn-banner{margin-top:18px;background:var(--honey-soft);border:1px solid #f3dfa5;border-radius:14px;padding:13px 15px;font-size:13.5px;line-height:1.5;color:#6d500e}.header-actions{display:flex;align-items:center;gap:4px}.header-btn{position:relative}.header-btn .badge{position:absolute;top:1px;right:-1px;background:var(--tomato);color:#fff;font-size:11px;font-weight:800;border-radius:999px;min-width:18px;height:18px;display:flex;align-items:center;justify-content:center;padding:0 4px;border:1.5px solid var(--flour);animation:badgePop .32s cubic-bezier(.34,1.56,.64,1)}@keyframes badgePop{0%{transform:scale(.4)}70%{transform:scale(1.25)}to{transform:scale(1)}}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#33261d80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:45;display:flex;justify-content:flex-end;animation:backdropIn .2s ease both}.cooklist-drawer{background:var(--flour);width:min(400px,92vw);height:100%;padding:18px 18px calc(18px + env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;animation:slideInRight .22s ease;border-left:6px solid transparent;position:relative}.cooklist-drawer:before{content:"";position:absolute;left:-6px;top:0;bottom:0;width:6px;background:var(--gingham);background-size:10px 10px,10px 10px,auto}@keyframes slideInRight{0%{transform:translate(60px);opacity:.5}to{transform:translate(0);opacity:1}}.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.drawer-head h3{font-family:var(--font-display);font-size:19px}.drawer-title{display:inline-flex;align-items:center;gap:8px}.drawer-title .nav-icon{width:22px;height:22px}.drawer-title .nav-icon path{stroke:var(--tomato-deep);fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.drawer-head .modal-close{position:static}.drawer-count{background:var(--tomato);color:#fff;font-family:var(--font-body);font-size:12.5px;font-weight:800;border-radius:999px;min-width:22px;height:22px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center}.drawer-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px;color:var(--ink-soft);line-height:1.55;padding:20px 14px}.drawer-empty-pot{width:92px;height:92px;border-radius:50%;border:2px dashed #d9c3a3;display:flex;align-items:center;justify-content:center;animation:chefBob 3.4s ease-in-out infinite}.drawer-empty-pot .nav-icon{width:42px;height:42px}.drawer-empty-pot .nav-icon path{stroke:var(--ink-soft);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.drawer-list{display:flex;flex-direction:column;gap:10px;flex:1}.drawer-item{display:flex;gap:10px;background:var(--paper);border:1px solid var(--crust);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px;align-items:flex-start;animation:drawerItemIn .32s ease both}@keyframes drawerItemIn{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}.drawer-item:nth-child(2){animation-delay:.05s}.drawer-item:nth-child(3){animation-delay:.1s}.drawer-item:nth-child(4){animation-delay:.15s}.drawer-item:nth-child(5){animation-delay:.2s}.drawer-item:nth-child(n+6){animation-delay:.25s}.drawer-emoji{font-size:24px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 32% 28%,#fff 0%,var(--tomato-soft) 78%);border:1px solid var(--crust);border-radius:50%;flex-shrink:0}.drawer-item-body{flex:1;display:flex;flex-direction:column;gap:6px}.drawer-item-actions{display:flex;gap:6px;flex-wrap:wrap}.drawer-remove{padding:7px;border-radius:10px;transition:background .15s ease}.drawer-remove .nav-icon{width:19px;height:19px;display:block}.drawer-remove .nav-icon path{stroke:var(--ink-soft);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:stroke .15s ease}.drawer-remove:hover .nav-icon path,.drawer-remove:active .nav-icon path{stroke:var(--red)}.drawer-remove:active{background:var(--red-soft)}.drawer-shop-btn{margin-top:14px}.cooklist-toggle{border:1.7px dashed var(--tomato);color:var(--tomato-deep);background:transparent}.cooklist-toggle.in{border-style:solid;border-color:var(--olive);background:var(--olive-soft);color:var(--olive)}.shop-view{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:14px 18px 22px}.shop-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.shop-header h2{font-family:var(--font-display);font-size:19px}.shop-count{font-size:13px;color:var(--ink-soft);font-weight:700}.shop-period{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px;font-size:14px;font-weight:700}.shop-people{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:18px;font-size:14px;font-weight:700}.people-qty{background:var(--paper);border:1px solid var(--crust);box-shadow:var(--shadow)}.people-qty .qty-btn:disabled{opacity:.4}.people-qty .qty-value{min-width:78px}.segmented{display:flex;background:var(--paper);border:1px solid var(--crust);border-radius:999px;padding:3px;box-shadow:var(--shadow)}.segmented button{padding:7px 13px;border-radius:999px;font-size:13.5px;font-weight:700;color:var(--ink-soft)}.segmented button.active{background:var(--tomato);color:#fff}.shop-hint{font-size:13px;color:var(--ink-soft);line-height:1.45;margin-bottom:8px}.shop-appetite{margin-top:-10px;margin-bottom:18px}.shop-list{background:var(--paper);border:1px solid var(--crust);border-radius:var(--radius);box-shadow:var(--shadow);padding:4px 6px}.shop-row{display:flex;align-items:center;gap:11px;padding:10px;font-size:15px;cursor:pointer;border-radius:12px}.shop-row:active{background:var(--tomato-soft)}.shop-row input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:23px;height:23px;border-radius:50%;border:2px solid #d9c3a3;background:var(--paper);flex-shrink:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:border-color .15s ease,background .15s ease,transform .1s ease}.shop-row input[type=checkbox]:active{transform:scale(.88)}.shop-row input[type=checkbox]:checked{border-color:var(--tomato);background-color:var(--tomato);background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5.5 12.6l4.2 4.3L18.5 8" fill="none" stroke="white" stroke-width="3.4" stroke-linecap="round" stroke-linejoin="round"/></svg>');background-size:15px 15px;background-position:center;background-repeat:no-repeat;animation:checkPop .28s cubic-bezier(.34,1.56,.64,1)}@keyframes checkPop{0%{transform:scale(.6)}65%{transform:scale(1.12)}to{transform:scale(1)}}.shop-row.off span{color:var(--ink-soft)}.shop-name{flex:1;min-width:0;transition:color .2s ease,opacity .2s ease}.shop-qty{display:flex;align-items:center;gap:6px;flex-shrink:0;background:var(--flour);border-radius:999px;padding:3px}.qty-btn{width:26px;height:26px;flex-shrink:0;border-radius:50%;background:var(--paper);border:1px solid var(--crust);box-shadow:var(--shadow);font-size:15px;font-weight:800;line-height:1;color:var(--tomato-deep);display:flex;align-items:center;justify-content:center}.qty-btn:active{background:var(--tomato);color:#fff}.qty-value{min-width:64px;text-align:center;font-size:12.5px;font-weight:800;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums}.qty-unit{font-weight:600;color:var(--ink-soft)}.shop-qty-static{flex-shrink:0;font-size:12.5px;font-weight:700;color:var(--ink-soft);text-align:right}.shop-qty-static.buy-qty{background:var(--flour);border-radius:999px;padding:3px 9px;white-space:nowrap;color:var(--tomato-deep)}.shop-recipe-emoji{width:42px;height:42px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:22px;background:radial-gradient(circle at 32% 28%,#fff 0%,var(--tomato-soft) 78%);border:1px solid var(--crust);border-radius:50%}.shop-recipe{background:var(--paper);border:1px solid var(--crust);border-radius:var(--radius);box-shadow:var(--shadow);padding:6px;margin-bottom:10px}.shop-row.recipe-head{font-size:15.5px}.shop-sublist{margin-left:26px;border-left:2px solid var(--crust);padding-left:4px}.shop-row.sub{padding:7px 10px;font-size:14px}.shop-row.sub input[type=checkbox]{width:21px;height:21px;background-size:13px 13px}.shop-row.sub.ticked .shop-name{color:var(--ink-soft);text-decoration:line-through;text-decoration-color:#7a67538c;text-decoration-thickness:1.5px;opacity:.75}.shop-row.sub.ticked .buy-qty{opacity:.55}.live-btn{flex-shrink:0;width:46px;height:46px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--olive-soft);color:var(--olive);border:1.5px solid transparent;transition:transform .06s ease,background .15s ease}.live-btn:active{transform:scale(.94)}.live-btn .nav-icon{width:22px;height:22px}.live-btn .nav-icon .fillable{fill:var(--olive)}.live-btn.active{background:var(--olive)}.live-btn.active .nav-icon .fillable{fill:#ffffff52}.live-btn.active .nav-icon path{stroke:#fff}.live-bar{flex-shrink:0;background:var(--olive-soft);border-bottom:1.5px solid #d6dfb9;padding:8px 12px 9px;animation:liveBarIn .28s cubic-bezier(.34,1.3,.64,1) both}@keyframes liveBarIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.live-bar.at-bottom{border-bottom:none;border-top:1.5px solid #d6dfb9;animation-name:liveBarInUp}.live-bar.at-bottom.error{border-top-color:#f0c4c4}@keyframes liveBarInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.live-bar.error{background:var(--red-soft);border-bottom-color:#f0c4c4}.live-bar-head{display:flex;align-items:center;gap:10px}.live-bar-avatar-wrap{position:relative;width:34px;height:34px;flex-shrink:0}.live-bar-avatar{width:100%;height:100%;border-radius:50%;border:2px solid var(--paper);background:var(--tomato-soft);display:block}.live-bar-ring{position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;border:2px solid var(--olive);opacity:0;pointer-events:none}.live-bar.hearing .live-bar-ring,.live-bar.speaking .live-bar-ring{animation:liveBarRing 1.6s ease-out infinite}.live-bar.speaking .live-bar-ring{border-color:var(--tomato);animation-duration:1s}.live-bar.connecting .live-bar-avatar{animation:livePulse 1.2s ease-in-out infinite}@keyframes liveBarRing{0%{opacity:.7;transform:scale(.9)}to{opacity:0;transform:scale(1.4)}}@keyframes livePulse{0%,to{opacity:1}50%{opacity:.55}}.live-bar-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.live-bar-eyebrow{display:flex;align-items:center;gap:5px;white-space:nowrap;font-family:var(--font-display);font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--olive)}.live-bar.error .live-bar-eyebrow{color:var(--red)}.live-dot{width:6px;height:6px;border-radius:50%;background:var(--red);animation:liveDot 1.6s ease-in-out infinite}@keyframes liveDot{0%,to{opacity:1}50%{opacity:.25}}.live-bar-status{font-size:13.5px;font-weight:800;color:var(--ink);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-bar.speaking .live-bar-status{color:var(--tomato-deep)}.live-bar.error .live-bar-status{color:var(--red)}.live-bar-detail{margin:6px 0 0 44px;font-size:12.5px;line-height:1.45;color:var(--red)}.live-bar-timer{flex-shrink:0;font-variant-numeric:tabular-nums;font-size:12px;font-weight:700;color:var(--ink-soft)}.live-bar-retry{flex-shrink:0;font-size:13px;padding:6px 12px}.live-bar-hangup,.live-bar-mute{width:34px;height:34px}.live-bar-mute{background:var(--paper);border:1.5px solid var(--crust)}.live-bar-mute .nav-icon path{stroke:var(--ink-soft);fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.live-bar-mute.on{background:var(--red-soft);border-color:#f0c4c4}.live-bar-mute.on .nav-icon path{stroke:var(--red)}.live-bar-mute.on .nav-icon .fillable{fill:#c92a2a24}.live-bar.muted:not(.speaking) .live-bar-ring{animation:none}.live-bar-hangup .nav-icon,.live-bar-mute .nav-icon{width:18px;height:18px}.spoken-window{display:block;position:relative;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;scroll-behavior:smooth}.spoken-window::-webkit-scrollbar{display:none}.spoken-window>.spoken-text{display:block}.live-caption{--cap-line: 20px;height:calc(var(--cap-line) * 2);margin:6px 0 0 44px;font-size:13.5px;line-height:var(--cap-line);color:var(--ink-soft)}.live-caption[data-scrolled=true]{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 22%);mask-image:linear-gradient(to bottom,transparent 0,#000 22%)}.spoken-text .said{color:var(--ink)}.spoken-text .saying{color:var(--tomato-deep);font-weight:800;background:#f6b92b57;border-radius:4px;box-shadow:0 0 0 2px #f6b92b57}.spoken-text .ahead{color:var(--ink-soft)}.live-caption .said{color:var(--ink);font-weight:700}.bubble.assistant.speaking{border-color:var(--honey);box-shadow:0 0 0 2px var(--honey-soft),var(--shadow)}@media (prefers-reduced-motion: reduce){.live-bar,.live-bar-ring,.live-dot,.live-bar-avatar,.mic-spinner,.mic-inline.active,.chat-input-bar.sending:before{animation:none}.spoken-window{scroll-behavior:auto}}.timer-bar{position:fixed;top:8px;left:50%;transform:translate(-50%);width:calc(100% - 20px);max-width:500px;z-index:130;display:flex;gap:6px;overflow-x:auto;padding:4px;scrollbar-width:none;pointer-events:none}.timer-bar::-webkit-scrollbar{display:none}.timer-pill{pointer-events:auto;flex-shrink:0;display:inline-flex;align-items:center;gap:6px;background:var(--ink);color:#fff;border-radius:999px;padding:5px 6px 5px 12px;box-shadow:var(--shadow-lift);font-size:13px;font-weight:700}.timer-pill.done{background:var(--tomato)}.timer-pill.alarming{animation:timerFlash 1s ease-in-out infinite}@keyframes timerFlash{50%{background:var(--tomato-deep)}}.timer-pill-silence{width:auto;padding:0 12px;border-radius:999px;background:#ffffffeb;color:var(--tomato-deep);font-size:12.5px;font-weight:800;white-space:nowrap}.timer-pill-time{font-variant-numeric:tabular-nums;letter-spacing:.5px}.timer-pill-label{font-weight:600;opacity:.85;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timer-pill-btn{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#ffffff2e;color:#fff;font-size:11px;line-height:1}.timer-pill-btn:active{transform:scale(.9)}.timer-pill-close{background:#ffffff47}.splash-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:var(--flour);opacity:1;transition:opacity .3s ease}.splash-screen.splash-leaving{opacity:0}.splash-logo{width:min(70vw,380px);height:auto;opacity:0;transform:scale(.6);animation:splashPop .5s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes splashPop{to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.splash-logo{animation:none;opacity:1;transform:none}}.servings-picker{margin:18px 0 4px;padding:12px 14px;background:var(--honey-soft);border:1px solid var(--crust);border-radius:16px}.servings-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 10px;margin-bottom:10px}.servings-label{font-weight:700;color:var(--ink)}.servings-note{font-size:.82rem;color:var(--ink-soft)}.servings-controls{display:flex;align-items:center;gap:12px}.servings-btn{width:38px;height:38px;flex:0 0 auto;border-radius:50%;border:1px solid var(--crust);background:var(--paper);color:var(--tomato-deep);font-size:1.4rem;line-height:1;cursor:pointer}.servings-btn:disabled{opacity:.4;cursor:default}.servings-count{min-width:2.2ch;text-align:center;font-size:1.35rem;font-weight:800;color:var(--ink)}.servings-reset{margin-left:auto;border:none;background:none;color:var(--tomato);font-size:.85rem;text-decoration:underline;cursor:pointer}.ingredient-list li.ing-fixed{color:var(--ink-soft)}.ing-hint{font-size:.78rem;font-style:normal;color:var(--ink-soft)}.nutri-total{margin:8px 0 0;font-size:.85rem;color:var(--ink-soft)}.shop-servings{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:6px 12px 10px 40px}.shop-servings-orig{font-size:.78rem;color:var(--ink-soft)}.shop-servings-controls{display:flex;align-items:center;gap:8px;flex:0 0 auto}.shop-servings-badge{font-size:.75rem;font-weight:700;color:var(--olive);background:var(--olive-soft);border-radius:999px;padding:2px 9px}.servings-btn.small{width:28px;height:28px;font-size:1.05rem}.servings-count.small{min-width:2.4ch;font-size:1rem;font-variant-numeric:tabular-nums}.shop-forwhat{margin:0 12px 6px 40px;font-size:.78rem;font-weight:700;color:var(--olive)}.shop-forwhat-note{font-style:normal;font-weight:400;color:var(--ink-soft)}.shop-split,.shop-split-basic{display:block;margin-top:2px;font-size:.72rem;font-weight:400;line-height:1.35;color:var(--ink-soft)}.shop-split-spare{font-style:normal;color:var(--tomato)}.shop-split-basic{font-style:italic}.shop-skip-note{display:block;margin-top:2px;font-size:.7rem;font-style:italic;font-weight:400;line-height:1.3;color:var(--ink-soft)}.auth{justify-content:center;gap:8px}.auth-form{display:flex;flex-direction:column;margin-top:22px}.auth-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.auth-field span{font-weight:800;font-size:14px;color:var(--ink-soft);padding-left:4px}.auth-field input{font-family:var(--font-body);font-size:16px;color:var(--ink);background:var(--paper);border:2px solid var(--border);border-radius:14px;padding:13px 16px;width:100%;transition:border-color .15s ease,box-shadow .15s ease}.auth-field input:focus{outline:none;border-color:var(--tomato);box-shadow:0 0 0 4px var(--tomato-soft)}.auth-error,.auth-notice{font-size:14.5px;line-height:1.4;border-radius:14px;padding:11px 14px;margin-top:2px}.auth-error{color:var(--red);background:var(--red-soft)}.auth-notice{color:var(--olive);background:var(--olive-soft)}.auth-link-issue{border:1px solid var(--honey);background:var(--honey-soft);border-radius:14px;padding:13px 14px;display:grid;gap:10px}.auth-link-issue p{margin:0;font-size:14.5px;line-height:1.45;color:var(--ink)}.auth-link{background:none;color:var(--tomato-deep);font-family:var(--font-body);font-weight:800;font-size:14.5px;padding:12px 4px;text-align:center}.auth-link:hover{text-decoration:underline}.auth-link:disabled{opacity:.5}.auth-divider{display:flex;align-items:center;gap:12px;margin:6px 0 2px;color:var(--ink-soft);font-size:13.5px}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:2px;background:var(--border);border-radius:2px}.auth-google{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--paper);color:var(--ink);border:2px solid var(--border)}.auth-google:hover{background:var(--flour)}.account-email{font-size:15px;color:var(--ink);word-break:break-all}.account-label{font-size:13px;color:var(--ink-soft);margin-bottom:2px}.app-message{height:100vh;height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;padding:32px 24px;max-width:460px;margin:0 auto}.app-message h1{font-family:var(--font-display);font-size:21px}.app-message p{color:var(--ink-soft);font-size:15px;line-height:1.5}.app-message code{font-size:13px;background:var(--tomato-soft);color:var(--tomato-deep);border-radius:8px;padding:2px 6px;word-break:break-all}.app-loading{height:100vh;height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--flour)}.app-loading img{width:84px;height:84px;border-radius:50%;border:3px solid var(--paper);box-shadow:var(--shadow-lift);background:var(--tomato-soft);animation:loadingPulse 1.4s ease-in-out infinite}@keyframes loadingPulse{0%,to{opacity:.55;transform:scale(.94)}50%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.app-loading img{animation:none;opacity:1}}.ob-equip .ob-group{font-family:var(--font-display);font-size:14px;letter-spacing:.03em;color:var(--ink-soft);margin:20px 0 2px}.ob-equip .ob-group:first-child{margin-top:12px}.ob-options-dense{display:grid;grid-template-columns:repeat(auto-fill,minmax(154px,1fr));gap:8px;margin-top:10px}.ob-options-dense .ob-option{padding:10px 29px 10px 10px;font-size:13.5px;line-height:1.25;gap:7px;align-items:center;min-height:52px;animation:none}.ob-options-dense .ob-emoji{flex:0 0 auto;font-size:15px}.ob-equip-label{min-width:0;overflow-wrap:anywhere}.ob-options-dense .ob-option.selected:after{right:7px;width:17px;height:17px;font-size:10.5px}.ob-prochef{width:100%;margin-top:22px;justify-content:center;padding-right:16px;border-style:dashed}.ob-prochef.selected{border-style:solid}.ob-prochef.selected:after{display:none}.ob-freetext{display:flex;flex-direction:column;gap:6px;margin-top:22px}.ob-freetext span{font-family:var(--font-display);font-size:14px;letter-spacing:.03em;color:var(--ink-soft)}.ob-freetext input{font-family:var(--font-body);font-size:16px;color:var(--ink);background:var(--paper);border:2px solid var(--border);border-radius:14px;padding:13px 16px;width:100%;transition:border-color .15s ease,box-shadow .15s ease}.ob-freetext input::placeholder{color:var(--ink-soft);opacity:.65}.ob-freetext input:focus{outline:none;border-color:var(--tomato);box-shadow:0 0 0 4px var(--tomato-soft)}.ob-household{margin-top:14px}.ob-stepper{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--paper);border:2px solid var(--crust);border-radius:16px;padding:12px 14px;margin-bottom:10px}.ob-stepper-label{font-weight:700;font-size:15.5px}.ob-stepper-controls{display:flex;align-items:center;gap:14px}.ob-stepper-controls button{width:38px;height:38px;border-radius:50%;border:2px solid var(--crust);background:var(--flour);font-size:20px;font-weight:900;line-height:1;color:var(--ink);transition:border-color .15s,background .15s}.ob-stepper-controls button:disabled{opacity:.4}.ob-stepper-controls button:not(:disabled):active{border-color:var(--tomato);background:var(--tomato-soft)}.ob-stepper-controls b{font-family:var(--font-display);font-size:20px;min-width:24px;text-align:center}.ob-gate{margin-top:24px}.ob-gate .ob-hint{text-align:center;margin-top:10px}.profile-incomplete{background:var(--honey-soft);border-radius:14px}.ob-plan-target{margin-top:14px;padding-top:14px;border-top:2px dashed var(--crust)}.ob-cal-blocked{background:var(--honey-soft);border:2px solid var(--honey);border-radius:14px;padding:10px 12px;margin-top:14px}.ob-cal-form{margin-top:24px;padding-top:20px;border-top:2px solid var(--border)}.ob-sublabel{font-family:var(--font-display);font-size:13.5px;letter-spacing:.03em;color:var(--ink-soft);margin:18px 0 0}.ob-cal-numbers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:8px}.ob-cal-numbers .ob-freetext{margin-top:16px}.ob-cal-numbers input{padding:12px 10px;text-align:center}.ob-cal-result{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:22px;padding:16px;border-radius:16px;background:var(--honey-soft);border:2px solid var(--honey);text-align:center}.ob-cal-result span{font-size:13.5px;color:var(--ink-soft)}.ob-cal-result b{font-family:var(--font-display);font-size:20px;color:var(--ink)}.today-totals{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.today-totals>div{display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px 10px;background:var(--paper);border:1px solid var(--crust);border-radius:16px;box-shadow:var(--shadow)}.today-totals span{font-size:12.5px;color:var(--ink-soft)}.today-totals b{font-family:var(--font-display);font-size:22px;color:var(--ink)}.today-totals>div.over{background:var(--honey-soft);border-color:var(--honey)}.today-empty{margin-top:4px}.today-meals{list-style:none;display:flex;flex-direction:column;gap:8px}.today-meals li{display:flex;align-items:center;gap:10px;background:var(--paper);border:1px solid var(--crust);border-radius:14px;padding:11px 8px 11px 14px}.today-meal-label{flex:1;min-width:0;font-size:14.5px;font-weight:700;overflow-wrap:anywhere}.today-meal-kcal{font-family:var(--font-display);font-size:14px;color:var(--tomato-deep);white-space:nowrap}.today-meals .icon-btn{flex:0 0 auto;width:30px;height:30px;border-radius:50%;color:var(--ink-soft);font-size:14px}.today-meals .icon-btn:hover{background:var(--red-soft);color:var(--red)}.memory-list{list-style:none;display:flex;flex-direction:column;gap:8px;margin-bottom:4px}.memory-list li{display:flex;align-items:center;gap:8px;background:var(--paper);border:1px solid var(--crust);border-radius:14px;padding:11px 8px 11px 14px}.memory-list li.critical{border-color:var(--honey);background:var(--honey-soft)}.memory-badge{flex:0 0 auto;font-size:11px;font-weight:800;letter-spacing:.03em;color:var(--tomato-deep);background:var(--paper);border:1px solid var(--honey);border-radius:999px;padding:3px 8px}.memory-text{flex:1;min-width:0;font-size:14.5px;font-weight:700;overflow-wrap:anywhere}.memory-list .icon-btn{flex:0 0 auto;width:30px;height:30px;border-radius:50%;color:var(--ink-soft);font-size:14px}.memory-list .icon-btn:hover{background:var(--tomato-soft);color:var(--tomato-deep)}.memory-edit{flex:1;display:flex;flex-direction:column;gap:8px}.memory-edit input{font-family:var(--font-body);font-size:16px;color:var(--ink);background:var(--flour);border:2px solid var(--border);border-radius:12px;padding:10px 12px;width:100%}.memory-edit input:focus{outline:none;border-color:var(--tomato)}.memory-edit-actions{display:flex;justify-content:flex-end;gap:8px}.memory-modal .btn:disabled{opacity:.45}.memory-list li.pending{flex-direction:column;align-items:stretch;border-color:var(--tomato);background:var(--tomato-soft)}.memory-pending{display:flex;flex-direction:column;gap:4px}.memory-pending-label{font-size:12.5px;font-weight:800;color:var(--tomato-deep)}.memory-pending-old{font-size:13px;color:var(--ink-soft);text-decoration:line-through}.memory-pending .setting-hint{margin:2px 0 6px}.delete-account{margin-top:34px}.home-view{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:14px 18px 22px}.home-greeting{padding:4px 0 2px}.home-hello{font-family:var(--font-display);font-size:24px;line-height:1.25;color:var(--ink);margin:0}.home-sub{font-size:14.5px;color:var(--ink-soft);margin:6px 0 0}.home-name-nudge{display:inline-block;width:auto;margin-top:12px;padding:9px 14px;border-radius:999px;font-size:13px}.home-section-title,.shop-section-title,.profile-view h2,.form-section{font-family:var(--font-display);margin:22px 0 8px;font-size:16px;color:var(--ink);letter-spacing:normal}.home-section-title:after,.shop-section-title:after,.profile-view h2:after,.form-section:after{content:"";display:block;width:50px;height:10px;margin-top:5px;border-radius:3px;background:var(--gingham);background-size:10px 10px,10px 10px,auto}.home-pick-card{box-shadow:var(--shadow-lift);border-color:var(--tomato-soft)}.home-pick-top{padding-right:0}.home-pick-emoji{font-size:40px}.home-pick-why{margin:10px 0 0;font-size:14px;color:var(--ink-soft);line-height:1.45}.home-pick-none .empty-note,.home-empty .empty-note{padding:18px 0 12px}.home-strip{display:flex;gap:10px;overflow-x:auto;padding:2px 0 12px;scrollbar-width:none}.home-strip::-webkit-scrollbar{display:none}.home-strip-card{flex-shrink:0;width:124px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;background:var(--paper);border:1px solid var(--crust);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px;text-align:left;transition:box-shadow .15s ease,transform .15s ease}.home-strip-card:active{transform:scale(.97)}.home-strip-emoji{font-size:26px}.home-strip-name{font-weight:800;font-size:13px;color:var(--ink);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.home-strip-time{font-size:12px;color:var(--ink-soft)}.home-meals-link{margin-top:12px}.name-row{cursor:text}.name-input{font-family:var(--font-body);font-size:16px;font-weight:700;color:var(--ink);background:var(--flour);border:1.5px solid var(--crust);border-radius:12px;padding:9px 12px;width:46%;min-width:0;text-align:right;transition:border-color .15s ease,box-shadow .15s ease}.name-input::placeholder{font-weight:400;color:var(--ink-soft);opacity:.6}.name-input:focus{outline:none;border-color:var(--tomato);box-shadow:0 0 0 4px var(--tomato-soft)}.home-reroll{display:block;width:100%;margin-top:10px;padding:10px 0;font-size:13.5px;font-weight:800;color:var(--ink-soft);border-radius:12px;transition:color .15s ease,background .15s ease}.home-reroll:hover{color:var(--tomato-deep);background:var(--tomato-soft)}.like-btn{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;padding:0 11px;border-radius:999px;border:1.5px solid var(--crust);background:var(--paper);color:var(--ink-soft);font-size:12.5px;font-weight:800;transition:color .15s ease,border-color .15s ease,background .15s ease}.like-btn .nav-icon{width:19px;height:19px}.like-btn .nav-icon path{stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;transition:fill .15s ease}.like-btn.in{color:var(--tomato-deep);border-color:var(--tomato-soft);background:var(--tomato-soft)}.like-btn.in .nav-icon path{fill:var(--tomato);stroke:var(--tomato)}.like-btn:active{transform:scale(.94)}.like-count{font-variant-numeric:tabular-nums}.detail-actions{display:flex;gap:8px;margin-top:18px}.detail-actions .btn{flex:1;white-space:nowrap}.detail-like.in{color:var(--tomato-deep);background:var(--tomato-soft)}.detail-like.in .nav-icon path{fill:var(--tomato);stroke:var(--tomato)}.like-count-inline{font-variant-numeric:tabular-nums;opacity:.7}.share-toast{position:fixed;left:50%;bottom:calc(78px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:60;max-width:min(88vw,460px);padding:11px 18px;border-radius:999px;background:var(--ink);color:var(--flour);font-size:13.5px;font-weight:700;text-align:center;box-shadow:var(--shadow-lift);animation:toastIn .22s ease both}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.public-view{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:0 18px calc(24px + env(safe-area-inset-bottom));animation:viewIn .28s ease both}.public-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0 6px;margin-bottom:6px}.public-brand .logo{height:30px;display:block}.public-view .detail-hero{padding-top:8px}.like-pill{display:inline-flex;align-items:center;gap:5px;color:var(--tomato-deep);border-color:var(--tomato-soft);background:var(--tomato-soft)}.like-pill .nav-icon{width:15px;height:15px}.like-pill .nav-icon path{fill:var(--tomato);stroke:var(--tomato);stroke-width:1.9;stroke-linejoin:round}.public-allergy-note{margin:16px 0 0;padding:12px 14px;border-radius:14px;background:var(--honey-soft);border:1px solid var(--honey);color:var(--ink);font-size:13px;line-height:1.45}.public-cta{margin-top:30px;padding-top:22px;border-top:1px solid var(--border);text-align:center}.public-cta p{color:var(--ink-soft);font-size:14px;line-height:1.5;margin:0 0 14px}.public-cta .btn{display:block;text-decoration:none}.recipe-form{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:0 18px calc(28px + env(safe-area-inset-bottom));animation:viewIn .28s ease both}.form-header{display:flex;align-items:center;gap:10px;padding:calc(14px + env(safe-area-inset-top)) 0 4px;position:sticky;top:0;background:var(--linen);z-index:2}.form-header h2{font-size:18px;margin:0}.form-field{display:flex;flex-direction:column;gap:5px;margin-top:16px}.form-field>span{font-family:var(--font-display);font-size:13.5px;letter-spacing:.02em;color:var(--ink-soft)}.form-optional{opacity:.75}.form-field input,.form-field textarea,.form-list-row input,.form-list-row textarea{font-family:var(--font-body);font-size:16px;color:var(--ink);background:var(--paper);border:1.5px solid var(--crust);border-radius:12px;padding:11px 13px;width:100%;transition:border-color .15s ease,box-shadow .15s ease}.form-field input:focus,.form-field textarea:focus,.form-list-row input:focus,.form-list-row textarea:focus{outline:none;border-color:var(--tomato);box-shadow:0 0 0 4px var(--tomato-soft)}.form-field .setting-hint{margin:2px 0 0}.form-row{display:flex;gap:12px}.form-row .form-stepper{flex:1}.form-stepper .servings-picker{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:12px 10px}.form-stepper .servings-picker .icon-btn{width:38px;height:38px;flex-shrink:0}.form-stepper .servings-picker b{white-space:nowrap}.form-stepper b em{font-style:normal;font-weight:700;font-size:12px;color:var(--ink-soft)}.emoji-row{display:flex;flex-wrap:wrap;gap:6px}.emoji-pick{width:40px;height:40px;font-size:20px;border-radius:12px;border:1.5px solid transparent;background:var(--paper);transition:border-color .15s ease,background .15s ease}.emoji-pick.active{border-color:var(--tomato);background:var(--tomato-soft)}.form-list-row{margin-top:8px}.form-list-main{display:flex;align-items:flex-start;gap:8px}.form-list-main textarea{resize:vertical}.form-step-n{flex-shrink:0;width:26px;height:40px;display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--tomato-deep)}.form-singular,.form-timer{display:flex;align-items:center;gap:8px;margin:6px 0 0;padding-left:2px}.form-singular span,.form-timer span{font-size:12.5px;color:var(--ink-soft);white-space:nowrap}.form-singular input{flex:1;padding:8px 11px;font-size:15px}.form-timer input{width:84px;padding:8px 11px;font-size:15px;font-family:var(--font-body);border:1.5px solid var(--crust);border-radius:12px;background:var(--paper);color:var(--ink)}.form-tags{padding-bottom:4px}.form-preview{margin-top:22px;padding:14px 16px;border-radius:var(--radius);background:var(--flour);border:1px solid var(--crust)}.form-preview .form-section{margin-top:0}.form-errors{margin:18px 0 0;padding:12px 14px 12px 30px;border-radius:14px;background:var(--red-soft);border:1px solid var(--red);color:var(--ink);font-size:13.5px;line-height:1.5}.recipes-load-error{list-style:none;padding-left:14px;margin-bottom:10px}.form-actions{margin-top:26px;display:flex;flex-direction:column;gap:10px}.delete-recipe{color:var(--red)}.chip-new{border-style:dashed;border-color:var(--tomato);color:var(--tomato-deep);font-weight:800}.source-row{padding-bottom:6px}.detail-mine{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}.publish-row{margin-top:10px}.publish-row.disabled{opacity:.55}.community-intro{margin:0 0 4px;text-align:left}.recipe-warning{margin-top:6px;padding:4px 8px;border-radius:10px;background:var(--red-soft);color:var(--red);font-size:.78rem;font-weight:700;line-height:1.3}.detail-community{margin-top:18px;padding-top:16px;border-top:1px solid var(--border);display:grid;gap:8px}.btn-report{color:var(--ink-soft)}.report-reasons{margin:10px 0 12px;flex-wrap:wrap}.form-publish-note{margin:10px 0 0;padding:8px 12px;border-radius:12px;background:var(--honey-soft);color:var(--ink-soft);font-size:.85rem;line-height:1.4}.report-note{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:.95rem;resize:vertical}.report-note:focus{outline:none;border-color:var(--tomato)}.admin-view h2{margin-bottom:12px}.admin-report{display:grid;gap:10px}.admin-report .setting-hint{margin:4px 0 0;white-space:pre-wrap}.form-preview-block+.form-preview-block{margin-top:14px;padding-top:12px;border-top:1px dashed var(--crust)}.ask-chefy{text-align:center}.ask-avatar{width:74px;height:74px;display:block;margin:0 auto 8px}.ask-chefy h3{margin:0 0 4px}.ask-chefy textarea{font-family:var(--font-body);font-size:16px;color:var(--ink);background:var(--paper);border:1.5px solid var(--crust);border-radius:14px;padding:11px 13px;width:100%;margin-top:12px;resize:vertical;transition:border-color .15s ease,box-shadow .15s ease}.ask-chefy textarea:focus{outline:none;border-color:var(--tomato);box-shadow:0 0 0 4px var(--tomato-soft)}.ask-examples{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:10px}.ask-examples .chip{font-size:12.5px;padding:7px 12px}.ask-error{margin-top:12px;text-align:left}.ask-wait{margin-top:10px}.chip-ask{border-style:dashed;border-color:var(--olive);color:var(--olive);font-weight:800}.draft-note{margin:6px 0 0;padding:12px 14px;border-radius:14px;background:var(--honey-soft);border:1px solid var(--honey);font-size:13px;line-height:1.45}.guest-chat-nudge{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--border);text-align:left;font-size:13px;line-height:1.4;color:var(--ink-soft)}.guest-chat-nudge img{width:34px;height:34px;flex-shrink:0}.guest-chat-nudge:active{background:var(--flour)}.guest-finish{margin:18px 0 4px;padding:16px 18px;border-radius:var(--radius);background:var(--paper);border:1px solid var(--crust);text-align:left;max-width:340px}.guest-finish p{margin:0 0 10px;font-family:var(--font-display);font-size:15px;color:var(--ink)}.guest-finish ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}.guest-finish li{font-size:13.5px;line-height:1.45;color:var(--ink-soft)}.public-start{margin-top:22px}.plan-view{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:14px 18px 22px}.plan-macros{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.plan-macro{background:var(--paper);border:2px solid var(--crust);border-radius:16px;padding:10px;text-align:center;box-shadow:var(--shadow)}.plan-macro-label{display:block;font-size:12.5px;color:var(--ink-soft)}.plan-macro b{font-family:var(--font-display);font-size:18px}.plan-meals{list-style:none;margin-top:12px}.plan-meal{background:var(--paper);border:2px solid var(--crust);border-radius:16px;padding:12px 14px;margin-bottom:8px}.plan-meal-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.plan-meal-title>b{flex:1;min-width:0}.plan-meal-log{flex-shrink:0;padding:4px 10px;font-size:13px;width:auto}.plan-meal-logged{flex-shrink:0;color:var(--ink-soft);font-size:13px;white-space:nowrap}.plan-options{list-style:none;margin:8px 0 0;padding:0}.plan-option{display:flex;align-items:flex-start;gap:10px;width:100%;text-align:left;background:transparent;border:2px solid transparent;border-radius:12px;padding:9px 10px;font:inherit;color:var(--ink-soft);font-size:14px;line-height:1.45;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.plan-options li+li{border-top:1px dashed var(--crust)}.plan-option:hover{background:var(--flour)}.plan-option.is-picked{background:var(--flour);border-color:var(--olive, var(--crust));color:var(--ink);font-weight:600}.plan-option-mark{flex:0 0 22px;height:22px;border-radius:50%;background:var(--flour);color:var(--ink);font-size:11px;font-weight:700;display:grid;place-items:center}.plan-option.is-picked .plan-option-mark{background:var(--olive, var(--ink));color:var(--paper)}.plan-option-text{flex:1;min-width:0}.kcal-pill.is-estimate{background:transparent;border:1px dashed var(--crust);color:var(--ink-soft);font-style:italic}.plan-meal.is-picked{border-color:var(--olive, var(--crust))}.plan-option-side{display:flex;align-items:center;gap:6px}.plan-option-kcal{width:78px;flex:0 0 78px}.plan-option-estimate{color:var(--ink-soft);font-size:15px;font-style:italic}.plan-notes{background:var(--flour);border-radius:14px;padding:12px 14px;margin:12px 0;font-size:14.5px;white-space:pre-wrap}.plan-meal-edit{background:var(--paper);border:2px solid var(--crust);border-radius:16px;padding:10px;margin-bottom:8px}.plan-meal-head{display:flex;gap:8px;align-items:center}.plan-meal-head input,.plan-option-input,.plan-notes-input{border:2px solid var(--crust);border-radius:12px;padding:9px 11px;font-size:14.5px;background:var(--flour);width:100%}.plan-meal-label{flex:1 1 auto;min-width:0}.plan-meal-kcal{flex:0 0 84px}.plan-option-edit{display:flex;align-items:flex-start;gap:6px;margin-top:8px}.plan-meal-head input,.plan-option-kcal{border:2px solid var(--crust);border-radius:12px;padding:9px 11px;font-size:14.5px;background:var(--flour)}.plan-option-input{resize:vertical;font-family:inherit;line-height:1.4;min-height:60px}.plan-add-option{margin-top:8px;width:100%;font-size:13.5px;padding:7px 10px}.plan-notes-input{margin-top:10px;resize:vertical;font-family:inherit}.plan-view .confirm-actions{margin-top:18px}.home-plan{background:var(--paper);border:2px solid var(--crust);border-radius:var(--radius);padding:12px 14px;box-shadow:var(--shadow)}.home-plan-meals{list-style:none}.home-plan-meals li{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--crust)}.home-plan-meals li.is-picked .home-plan-meal{opacity:.55}.home-plan-pick{flex:1;min-width:0;text-align:right;font-size:13px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-plan-meals li:not(.is-picked) .home-plan-pick{font-style:italic;opacity:.7}.home-plan-progress{margin-left:8px;font-size:13px;font-weight:700;color:var(--ink-soft)}.home-plan-meals li:last-child{border-bottom:0}.home-plan-meal{font-weight:700;font-size:14.5px}.home-plan-kcal{color:var(--ink-soft);font-size:13px;white-space:nowrap}.plan-history{overflow-y:auto;overscroll-behavior:contain;min-height:0;padding:14px 18px 22px}.hist-weeknav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:12px 0}.hist-weeklabel{font-weight:700;font-size:14.5px}.hist-weeknav .icon-btn:disabled{opacity:.35;cursor:default}.hist-day{background:var(--paper);border:2px solid var(--crust);border-radius:16px;padding:11px 13px;margin-bottom:8px}.hist-day.is-today{border-color:var(--olive, var(--ink))}.hist-day-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.hist-date{color:var(--ink-soft);font-weight:400;font-size:13px;margin-left:8px}.hist-day-total{font-size:13px;color:var(--ink-soft);white-space:nowrap}.hist-none{color:var(--ink-soft);font-size:13.5px;font-style:italic;margin:6px 0 0}.hist-picks{list-style:none;margin:8px 0 0;padding:0}.hist-picks li{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;padding:6px 0;border-top:1px dashed var(--crust);font-size:14px}.hist-picks li:first-child{border-top:0}.hist-slot{flex:0 0 auto;font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-soft)}.hist-option{flex:1 1 60%;min-width:0}.hist-rank,.hist-untried{list-style:none;margin:8px 0 0;padding:0}.hist-rank li{margin-bottom:12px}.hist-rank-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:14px}.hist-rank-text{flex:1;min-width:0}.hist-rank-count{font-weight:700;white-space:nowrap}.hist-rank-slot{display:block;margin-top:3px;font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-soft)}.hist-bar{height:8px;border-radius:99px;background:var(--flour);overflow:hidden;margin-top:5px}.hist-bar-fill{height:100%;border-radius:99px;background:var(--olive, var(--ink));transition:width .3s ease}.hist-untried li{padding:8px 0;border-top:1px dashed var(--crust);font-size:14px;color:var(--ink-soft)}.hist-untried li:first-child{border-top:0}.chat-proposals{display:flex;flex-direction:column;gap:8px;margin:8px 0 2px}.chat-proposal{background:var(--paper);border:2px dashed var(--crust);border-radius:16px;padding:10px 12px}.chat-proposal-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.chat-proposal-ask{font-size:13px;font-weight:700}.chat-proposal-options{list-style:none;margin:6px 0 0;padding:0}.chat-proposal-options li+li{border-top:1px dashed var(--crust)}.chat-proposal-no{width:100%;margin-top:6px;font-size:13px;padding:6px 10px}.chat-proposal-done{margin-top:4px;font-size:13.5px;color:var(--ink-soft)}.cook-card{position:relative;background:var(--paper);border:1px solid var(--crust);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 14px 14px;margin:8px 0 4px;overflow:hidden;animation:viewIn .3s ease both}.cook-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--honey) 0%,var(--tomato) 100%)}.cook-card-head{display:flex;gap:12px;align-items:flex-start;padding-right:40px}.cook-card-emoji{font-size:30px;width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 32% 28%,#fff 0%,var(--honey-soft) 78%);border:1px solid var(--crust);border-radius:50%;flex-shrink:0}.cook-card-body{flex:1;min-width:0}.cook-card-note{color:var(--ink-soft);font-size:12.5px;margin-top:2px;display:flex;align-items:center;gap:6px}.cook-card-skeleton{margin-top:14px;display:flex;flex-direction:column;gap:8px}.cook-card-skeleton i{height:12px;border-radius:999px;background:linear-gradient(90deg,var(--flour) 0%,var(--crust) 50%,var(--flour) 100%);background-size:200% 100%;animation:cookShimmer 1.3s ease-in-out infinite}.cook-card-skeleton i:nth-child(2){width:82%;animation-delay:.12s}.cook-card-skeleton i:nth-child(3){width:64%;animation-delay:.24s}@keyframes cookShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.cook-card-ingredients{list-style:none;margin:12px 0 14px;padding:10px 12px;background:var(--flour);border:1px dashed var(--crust);border-radius:14px;font-size:13.5px;line-height:1.5;color:var(--ink)}.cook-card-ingredients li+li{margin-top:4px}.cook-card-ingredients .more{color:var(--ink-soft);font-weight:700}.cook-card-caveat{margin-top:8px;font-size:11.5px;line-height:1.45;color:var(--ink-soft);text-align:center}.cook-card.is-failed .cook-card-note{color:var(--red);font-weight:700}.refine-sheet{padding-bottom:calc(18px + env(safe-area-inset-bottom))}.refine-group{margin-top:14px}.refine-label{margin-bottom:8px;font-size:12.5px;font-weight:800;color:var(--ink-soft)}.refine-chips{display:flex;flex-wrap:wrap;gap:8px}.refine-chips .chip{border-radius:999px;padding:9px 14px;font-size:13.5px}.refine-actions{display:flex;gap:10px;margin-top:20px}.refine-actions .btn{white-space:nowrap}.refine-actions .btn-ghost{flex:1.6}.refine-actions .btn-primary{flex:1}.creators-hint{margin:2px 0 14px;font-size:13px;line-height:1.45;color:var(--ink-soft)}.creators-list{display:flex;flex-direction:column;gap:10px;margin-bottom:8px}.creator-row{display:flex;align-items:center;gap:12px;padding:12px;background:var(--paper);border:1px solid var(--crust);border-radius:var(--radius);box-shadow:var(--shadow);text-align:left;transition:box-shadow .15s ease,transform .06s ease}.creator-row:hover{box-shadow:var(--shadow-lift)}.creator-row:active{transform:scale(.99)}.creator-face{flex-shrink:0;width:52px;height:52px;display:flex;align-items:center;justify-content:center;font-size:27px;border-radius:50%;border:1px solid var(--crust);background:radial-gradient(circle at 32% 28%,#fff 0%,var(--flour) 80%)}.creator-body{flex:1;min-width:0}.creator-name{font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--ink)}.creator-desc{margin-top:3px;font-size:12.5px;line-height:1.4;color:var(--ink-soft)}.creator-count{flex-shrink:0;font-size:17px;font-weight:900;color:var(--ink-soft)}.chef-ring{border-width:2.5px;border-style:solid}.chef-none{border-color:var(--crust)}.chef-yiayia{border-color:var(--honey)}.chef-mama{border-color:var(--tomato)}.chef-babas{border-color:var(--olive)}.chef-chefy{border-color:var(--aegean)}.auth-guest{margin-top:18px;padding-top:16px;border-top:1px solid var(--crust)}.auth-guest-note{margin:8px 2px 0;font-size:12.5px;line-height:1.45;color:var(--ink-soft);text-align:center}.auth-back{margin-top:14px}.gate-backdrop{z-index:55}.gate-sheet{padding-bottom:calc(18px + env(safe-area-inset-bottom));text-align:center}.gate-avatar{width:66px;height:66px;margin:2px auto 10px;display:block}.gate-title{margin:0 0 8px;font-family:var(--font-display);font-size:18px;font-weight:700;line-height:1.3;color:var(--ink)}.gate-why{margin:0 auto 16px;max-width:30em;font-size:13.5px;line-height:1.5;color:var(--ink-soft)}.gate-perks{margin:0 0 18px;padding:14px 16px;list-style:none;background:var(--flour);border:1px solid var(--crust);border-radius:14px;text-align:left}.gate-perks li{font-size:13.5px;font-weight:600;line-height:1.4;color:var(--ink)}.gate-perks li+li{margin-top:10px}.gate-stay{display:block;width:100%;margin-top:12px;padding:10px;font-size:13.5px;font-weight:700;color:var(--ink-soft);text-decoration:underline;text-underline-offset:3px}.gate-panel{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:24px 20px calc(20px + env(safe-area-inset-bottom));text-align:center}.gate-panel .gate-avatar{width:84px;height:84px;margin-top:12px}.gate-panel .gate-title{font-size:20px}.guest-account-card{padding:16px;background:var(--paper);border:1px solid var(--crust);border-radius:var(--radius);box-shadow:var(--shadow)}.guest-account-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px}.guest-account-head img{flex-shrink:0;width:46px;height:46px}.guest-account-head b{font-family:var(--font-display);font-size:15px;font-weight:700}.guest-account-head p{margin:4px 0 0;font-size:12.5px;line-height:1.45;color:var(--ink-soft)}.guest-carry-note{margin-top:10px;text-align:center}.finish-fav{border:1.5px solid transparent}.finish-fav .nav-icon path{stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;transition:fill .15s ease}.finish-fav.in{background:var(--paper);border-color:var(--tomato);color:var(--tomato-deep)}.finish-fav.in .nav-icon path{fill:var(--tomato);stroke:var(--tomato)}
