:root{--bg: #FBF3EA;--card: #FFFFFF;--border: #EFE2D6;--text: #2E2622;--text-2: #9B8B80;--brand: #CF5A33;--brand-dark: #712B13;--brand-light: #FAECE7;--green: #5C8A2A;--green-light: #EAF3DE;--green-text: #27500A;--ai: #534AB7;--ai-light: #EEEDFE;--ai-text: #3C3489;--r-sm: 8px;--r: 12px;--r-lg: 20px;--shadow: 0 1px 3px rgba(0,0,0,.06), 0 4px 16px rgba(0,0,0,.04);--shadow-up: 0 -1px 0 var(--border);--nav-h: 68px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html{font-size:16px;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;height:100%;overflow:hidden;overscroll-behavior:none}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--text);height:100%;overflow:hidden;overscroll-behavior:none;line-height:1.5}img{max-width:100%;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}#root{height:100vh;height:100dvh;max-width:480px;margin:0 auto;display:flex;flex-direction:column;overflow:hidden;overflow-x:hidden;position:relative;background:var(--bg);box-shadow:0 0 0 1px var(--border);overscroll-behavior:none}@media(min-width:481px){body{background:#1e1814}#root{box-shadow:0 8px 48px #0000008c,0 0 0 1px #0003}}button{cursor:pointer;border:none;font:inherit;background:none}a{color:var(--brand);text-decoration:none}input,textarea,select{font:inherit}.btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:0 24px;height:56px;min-height:56px;flex-shrink:0;border-radius:var(--r);font-size:16px;font-weight:600;line-height:1;width:100%;transition:opacity .15s,transform .1s;-webkit-tap-highlight-color:transparent}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-dark)}.btn-outline{background:transparent;color:var(--brand);border:1.5px solid var(--brand)}.btn-outline:hover:not(:disabled){background:var(--brand-light)}.btn-danger{background:transparent;color:#dc2626;border:1.5px solid #FECACA}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;font-weight:600;color:var(--text-2);text-transform:uppercase;letter-spacing:.04em}.field input{width:100%;padding:14px 16px;border:1.5px solid var(--border);border-radius:var(--r-sm);font-size:16px;background:var(--card);color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s;-webkit-appearance:none}.field input::placeholder{color:var(--text-2)}.field input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-light)}.alert-error{background:#fef2f2;border:1px solid #FECACA;color:#991b1b;padding:12px 14px;border-radius:var(--r-sm);font-size:14px;line-height:1.4}.alert-success{background:#f0fdf4;border:1px solid #BBF7D0;color:#166534;padding:12px 14px;border-radius:var(--r-sm);font-size:14px;line-height:1.4}.auth-wrap{flex:1;overflow-y:auto;display:flex;flex-direction:column;align-items:center;padding:48px 24px 40px;gap:28px}.auth-logo{text-align:center}.auth-logo-icon{font-size:58px;line-height:1;margin-bottom:10px;display:block}.auth-logo h1{font-size:26px;font-weight:800;color:var(--text);letter-spacing:-.02em;margin-bottom:4px}.auth-logo p{font-size:14px;color:var(--text-2)}.auth-logo-title-link{cursor:pointer;transition:color .15s}.auth-logo-title-link:hover{color:var(--brand)}.ai-tagline{font-size:14px;font-weight:500;letter-spacing:.01em;background:linear-gradient(90deg,#38bdf8,#818cf8,#22d3ee,#6366f1,#38bdf8,#22d3ee);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:ai-shimmer 4s linear infinite}@keyframes ai-shimmer{0%{background-position:100% 0}to{background-position:-150% 0}}.auth-card{width:100%;max-width:380px;background:var(--card);border-radius:var(--r-lg);padding:28px 24px;display:flex;flex-direction:column;gap:20px;box-shadow:var(--shadow)}.auth-card h2{font-size:20px;font-weight:700;color:var(--text)}.auth-switch{text-align:center;font-size:14px;color:var(--text-2)}.auth-switch a{color:var(--brand);font-weight:600}.layout{display:flex;flex-direction:column;height:100%}.layout-main{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.layout:has(.modal-overlay) .bottom-nav,.layout:has(.sheet-backdrop) .bottom-nav,.layout:has(.cat-drawer-backdrop) .bottom-nav,.layout:has(.chef-modal-overlay) .bottom-nav{display:none}.bottom-nav{position:relative;z-index:10;display:flex;align-items:stretch;background:var(--card);box-shadow:var(--shadow-up);height:var(--nav-h);flex-shrink:0;padding-bottom:env(safe-area-inset-bottom)}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--text-2);text-decoration:none;font-size:11px;font-weight:500;padding:6px 2px 5px;transition:color .15s;-webkit-tap-highlight-color:transparent;min-width:0}.nav-item svg{flex-shrink:0;transition:transform .15s}.nav-item.active{color:var(--brand)}.nav-item.active svg{transform:scale(1.1)}@keyframes chef-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.nav-item-chef{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-decoration:none;font-size:11px;font-weight:600;padding:6px 2px 5px;cursor:pointer;-webkit-tap-highlight-color:transparent;min-width:0}.nav-item-chef .chef-icon-wrap{position:relative;display:flex;align-items:center;justify-content:center}.nav-item-chef .chef-svg{stroke:#818cf8;transition:stroke .15s;display:block}.nav-item-chef.active .chef-svg{stroke:#6366f1}.nav-item-chef .chef-badge{position:absolute;top:-4px;right:-7px;background:linear-gradient(90deg,#38bdf8,#818cf8);color:#fff;font-size:7px;font-weight:700;line-height:1;padding:1px 3px;border-radius:4px;white-space:nowrap}.chef-label{background:linear-gradient(90deg,#38bdf8,#818cf8,#a78bfa,#38bdf8);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:chef-shimmer 3s linear infinite;font-size:11px;font-weight:600;display:block}.nav-item-chef.active .chef-label{animation-duration:1.8s}.page-header{position:sticky;top:0;z-index:10;background:var(--bg);padding:18px 20px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}.page-header h1{font-size:22px;font-weight:800;color:var(--text);letter-spacing:-.02em}.page-body{padding:20px}.stub-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 24px;text-align:center;gap:12px;min-height:55vh}.stub-icon{font-size:52px;line-height:1}.stub-wrap h2{font-size:18px;font-weight:700;color:var(--text)}.stub-wrap p{font-size:14px;color:var(--text-2);line-height:1.5;max-width:260px}.stub-badge{display:inline-block;background:var(--brand-light);color:var(--brand-dark);font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px;text-transform:uppercase;letter-spacing:.06em;margin-top:4px}.profile-avatar{width:56px;height:56px;border-radius:50%;background:var(--brand-light);color:var(--brand);font-size:22px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.profile-card{display:flex;align-items:center;gap:16px;background:var(--card);border-radius:var(--r);padding:20px 16px;margin-bottom:24px;box-shadow:var(--shadow)}.profile-name{font-size:17px;font-weight:600;color:var(--text)}.profile-email{font-size:13px;color:var(--text-2);margin-top:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes spin{to{transform:rotate(360deg)}}.spinner{display:inline-block;width:18px;height:18px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .55s linear infinite}.icon-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--text);transition:background .15s;flex-shrink:0}.icon-btn:hover{background:var(--border)}.search-wrap{position:relative;margin:0 20px 4px}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-2);pointer-events:none}.search-input{width:100%;padding:12px 14px 12px 42px;border:1.5px solid var(--border);border-radius:var(--r);font-size:15px;background:var(--card);color:var(--text);outline:none;-webkit-appearance:none}.search-input::placeholder{color:var(--text-2)}.search-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-light)}.pills-wrap{display:flex;gap:8px;overflow-x:auto;padding:8px 20px 12px;scrollbar-width:none}.pills-wrap::-webkit-scrollbar{display:none}.admin-tab-bar{display:flex;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.admin-tab-bar::-webkit-scrollbar{display:none}.filters-row{display:flex;gap:8px;padding:8px 20px 12px;align-items:center}.cat-filter-btn{display:flex;align-items:center;gap:5px}.cat-drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:500;display:flex;align-items:stretch;justify-content:flex-start}@media(min-width:481px){.cat-drawer-backdrop{padding-left:calc((100vw - 480px)/2)}}.cat-drawer{width:min(280px,80vw);background:var(--bg);height:100%;display:flex;flex-direction:column;box-shadow:4px 0 24px #00000026;animation:slideInLeft .22s ease-out}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}.cat-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 16px;border-bottom:1px solid var(--border);flex-shrink:0;padding-top:calc(20px + env(safe-area-inset-top,0px))}.cat-drawer-title{font-size:17px;font-weight:800;color:var(--text)}.cat-drawer-close{background:none;border:none;font-size:18px;color:var(--text-2);cursor:pointer;padding:4px 8px;line-height:1}.cat-drawer-list{flex:1;overflow-y:auto;padding:8px 0 calc(8px + env(safe-area-inset-bottom,0px))}.cat-drawer-item{display:block;width:100%;text-align:left;padding:14px 20px;background:none;border:none;font-size:15px;color:var(--text);cursor:pointer;border-left:3px solid transparent;transition:background .12s,border-color .12s}.cat-drawer-item:active{background:var(--surface)}.cat-drawer-item.active{color:var(--brand);font-weight:700;border-left-color:var(--brand);background:var(--surface)}.cat-drawer-divider{height:1px;background:var(--border);margin:8px 0}.cat-drawer-chef{font-weight:600}.pill{flex-shrink:0;padding:6px 14px;border-radius:20px;border:1.5px solid var(--border);background:var(--card);color:var(--text-2);font-size:13px;font-weight:500;white-space:nowrap;transition:all .15s}.pill.active,.pill:active{background:var(--brand);border-color:var(--brand);color:#fff}.page-recipes{display:flex;flex-direction:column;height:100%}.recipe-list{flex:1;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;display:flex;flex-direction:column;gap:12px;padding:4px 20px 80px}.center-note{display:flex;justify-content:center;padding:32px 0}.recipe-card{width:100%;text-align:left;background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:row;transition:transform .1s,box-shadow .1s;-webkit-tap-highlight-color:transparent;min-height:88px}.recipe-card:active{transform:scale(.985);box-shadow:none}.recipe-card-photo{width:88px;min-width:88px;height:88px;overflow:hidden;background:var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0}.recipe-card-photo img{width:100%;height:100%;object-fit:cover}.recipe-card-photo-placeholder{font-size:28px}.recipe-card-body{flex:1;min-width:0;padding:12px 14px;display:flex;flex-direction:column;justify-content:center}.recipe-card-name{font-size:15px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipe-card-cat{font-size:12px;color:var(--text-2);margin-top:2px}.recipe-card-meta{display:flex;gap:10px;margin-top:6px;font-size:12px;color:var(--text-2)}.page-detail{display:flex;flex-direction:column;height:100%;overflow:hidden}.page-detail-loading{display:flex;align-items:center;justify-content:center;height:100%}.detail-photo-wrap{position:relative;width:100%;aspect-ratio:4/3;flex-shrink:0;background:var(--border)}.detail-photo{width:100%;height:100%;object-fit:cover;display:block}.detail-photo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:52px}.detail-back-btn,.detail-edit-btn,.detail-delete-btn{position:absolute;top:14px;width:36px;height:36px;border-radius:50%;background:#ffffffe6;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px #0000001f;color:var(--text)}.detail-back-btn{left:14px}.detail-edit-btn{right:56px}.detail-delete-btn{right:14px;color:#dc2626}.detail-body{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.detail-title-row{padding:18px 20px 0;display:flex;flex-direction:column;gap:8px}.detail-title{font-size:24px;font-weight:800;letter-spacing:-.02em}.detail-cat-badge{align-self:flex-start;background:var(--brand-light);color:var(--brand-dark);font-size:12px;font-weight:600;padding:3px 10px;border-radius:20px}.detail-section{padding:16px 20px 0}.detail-section-label{font-size:11px;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}.serving-row{display:flex;align-items:center;gap:12px}.serving-btn{width:36px;height:36px;border-radius:50%;border:1.5px solid var(--brand);color:var(--brand);display:flex;align-items:center;justify-content:center;transition:background .12s}.serving-btn:active{background:var(--brand-light)}.serving-count{font-size:20px;font-weight:700;min-width:28px;text-align:center}.serving-label{font-size:14px;color:var(--text-2)}.ing-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border)}.ing-name{font-size:15px;flex:1}.ing-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.ing-qty{font-size:14px;color:var(--text)}.ing-badge-have{display:inline-flex;align-items:center;gap:3px;background:var(--green-light);color:var(--green-text);font-size:11px;font-weight:600;padding:3px 8px;border-radius:20px}.ing-badge-low{display:inline-flex;align-items:center;gap:3px;background:#fef9c3;color:#854d0e;font-size:11px;font-weight:600;padding:3px 8px;border-radius:20px;white-space:nowrap}.ing-btn-add{font-size:11px;font-weight:600;color:var(--brand);border:1px solid var(--brand);padding:3px 8px;border-radius:20px;white-space:nowrap;transition:background .12s}.ing-btn-add:active{background:var(--brand-light)}.ing-btn-miss{color:#b91c1c;border-color:#fecaca}.ing-btn-miss:active{background:#fef2f2}.ing-sub-btn{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;padding:0 10px;font-size:15px;font-weight:700;color:var(--ai);background:var(--ai-light);border-radius:8px;white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background .12s;flex-shrink:0}.ing-sub-btn:active{background:#d6d3f6}.sub-card{background:var(--ai-light);border-radius:var(--r-sm);padding:10px 14px}.sub-card-name{font-size:15px;font-weight:600;color:var(--ai-text);margin-bottom:3px}.sub-card-note{font-size:13px;color:var(--text-2);line-height:1.4}.ai-stub-card{background:var(--ai-light);border-radius:var(--r);margin:16px 20px 0;padding:16px}.ai-stub-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.ai-stub-label{font-size:13px;font-weight:700;color:var(--ai-text);text-transform:uppercase;letter-spacing:.04em}.ai-stub-soon{font-size:11px;color:var(--ai);font-weight:500}.ai-stub-text{font-size:13px;color:var(--ai-text);line-height:1.5}.ai-stub-premium-link{margin-top:12px;display:flex;align-items:center;justify-content:center;gap:6px;background:transparent;border:1px solid var(--ai);color:var(--ai);font-size:12px;font-weight:600;padding:7px 12px;border-radius:20px;width:100%;opacity:.7}.dish-cuisine-row{display:flex;flex-direction:column;gap:8px;margin-top:10px}.dish-cuisine-badge{display:inline-block;background:var(--ai);color:#fff;font-size:11px;font-weight:700;padding:3px 10px;border-radius:12px;letter-spacing:.03em;align-self:flex-start}.ai-suggest-row{padding:0 20px 12px}.ai-suggest-btn{width:100%;font-size:14px;font-weight:600;border-color:var(--ai);color:var(--ai)}.ai-suggest-btn:disabled{opacity:.6}.steps-list{list-style:none;display:flex;flex-direction:column;gap:12px}.step-item{display:flex;gap:12px;align-items:flex-start}.step-num{flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--brand);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-top:1px}.step-text{font-size:15px;line-height:1.55}.action-bar{display:flex;gap:8px;padding:12px 20px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--card);flex-shrink:0}.action-btn{flex:1;font-size:13px;height:44px;padding:0 8px}.flash{position:fixed;top:50%;left:16px;right:16px;max-width:480px;margin:0 auto;transform:translateY(-50%);padding:12px 20px;border-radius:20px;font-size:16px;font-weight:600;white-space:normal;word-break:break-word;text-align:center;z-index:600;box-shadow:0 6px 20px #0003;animation:flash-fade-in .25s ease-out}.flash-hide{animation:flash-fade-out .2s ease-in forwards}@keyframes flash-fade-in{0%{opacity:0}to{opacity:1}}@keyframes flash-fade-out{0%{opacity:1}to{opacity:0}}.flash-ok{background:var(--green-light);color:var(--green-text);border:1px solid var(--green)}.flash-err{background:#fef2f2;color:#991b1b;border:1px solid #FCA5A5}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:500;display:flex;align-items:flex-end}.sheet{width:100%;max-width:480px;margin:0 auto;background:var(--card);border-radius:var(--r-lg) var(--r-lg) 0 0;padding:16px 20px calc(24px + env(safe-area-inset-bottom))}.sheet-handle{width:36px;height:4px;border-radius:2px;background:var(--border);margin:0 auto 16px}.sheet-title{font-size:18px;font-weight:700;margin-bottom:20px}.sheet-success{display:flex;align-items:center;justify-content:center;gap:12px;padding:24px 0;color:var(--green-text);font-size:16px;font-weight:600}.meal-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.meal-type-btn{padding:12px;border-radius:var(--r-sm);border:1.5px solid var(--border);background:var(--card);color:var(--text);font-size:14px;font-weight:500;transition:all .15s}.meal-type-btn.active{border-color:var(--brand);background:var(--brand-light);color:var(--brand-dark);font-weight:600}.page-form{display:flex;flex-direction:column;height:100%}.form-body{flex:1;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;display:flex;flex-direction:column;gap:16px;padding:16px 20px 40px}.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-row-2>*{min-width:0}@media(max-width:400px){.form-row-2{grid-template-columns:1fr}}.select-field{padding:14px 16px;border:1.5px solid var(--border);border-radius:var(--r-sm);font-size:16px;background:var(--card);color:var(--text);outline:none;-webkit-appearance:none;width:100%}.select-field:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-light)}.textarea-field{padding:12px 16px;border:1.5px solid var(--border);border-radius:var(--r-sm);font-size:15px;line-height:1.6;background:var(--card);color:var(--text);outline:none;resize:vertical;width:100%;min-height:120px}.textarea-field:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-light)}.textarea-field::placeholder{color:var(--text-2)}.form-section-label{font-size:11px;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}.photo-upload-wrap{display:flex;justify-content:center}.photo-upload-area{width:100%;max-width:320px;aspect-ratio:4/3;border:2px dashed var(--border);border-radius:var(--r);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer;color:var(--text-2);font-size:14px;overflow:hidden;transition:border-color .15s}.photo-upload-area:hover{border-color:var(--brand)}.photo-upload-icon{color:var(--text-2)}.photo-preview{width:100%;height:100%;object-fit:cover}.ing-form-row{display:flex;gap:6px;align-items:flex-start;margin-bottom:8px}.ing-search-wrap{position:relative;flex:1;min-width:0}.ing-search-input{width:100%;padding:10px 12px;border:1.5px solid var(--border);border-radius:var(--r-sm);font-size:15px;background:var(--card);color:var(--text);outline:none}.ing-search-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-light)}.ing-qty-input{width:68px;flex-shrink:0;padding:10px 8px;border:1.5px solid var(--border);border-radius:var(--r-sm);font-size:15px;text-align:center;background:var(--card);color:var(--text);outline:none}.ing-qty-input:focus{border-color:var(--brand)}.ing-unit-select{width:76px;flex-shrink:0;padding:10px 6px;border:1.5px solid var(--border);border-radius:var(--r-sm);font-size:14px;background:var(--card);color:var(--text);outline:none;-webkit-appearance:none}.ing-unit-select:focus{border-color:var(--brand)}.ing-remove-btn{flex-shrink:0;width:36px;height:40px;display:flex;align-items:center;justify-content:center;color:#dc2626;border-radius:var(--r-sm);transition:background .12s}.ing-remove-btn:hover{background:#fef2f2}.suggestions{position:absolute;top:100%;left:0;right:0;background:var(--card);border:1.5px solid var(--border);border-top:none;border-radius:0 0 var(--r-sm) var(--r-sm);z-index:100;max-height:200px;overflow-y:auto;box-shadow:var(--shadow)}.suggestions-up{top:auto;bottom:calc(100% + 1px);border-top:1.5px solid var(--border);border-bottom:none;border-radius:var(--r-sm) var(--r-sm) 0 0}.suggestion-item{width:100%;text-align:left;padding:10px 14px;font-size:14px;color:var(--text);border-bottom:1px solid var(--border);transition:background .12s;display:flex;align-items:center;gap:6px}.suggestion-item:last-child{border-bottom:none}.suggestion-item:hover,.suggestion-item:active{background:var(--brand-light)}.sugg-personal-badge{margin-left:auto;flex-shrink:0;font-size:10px;font-weight:600;color:var(--brand);background:var(--brand-light);border-radius:4px;padding:1px 5px}.suggestion-create{color:var(--brand);font-weight:500}.suggestion-create-form{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--bg);border-top:1px solid var(--border)}.page-menu{display:flex;flex-direction:column;height:100%}.menu-header{flex-shrink:0;background:var(--bg);border-bottom:1px solid var(--border)}.menu-week-nav{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 8px}.menu-week-label{font-size:15px;font-weight:700;color:var(--text)}.menu-week-arrow{width:34px;height:34px;display:flex;align-items:center;justify-content:center;font-size:22px;color:var(--brand);border-radius:var(--r-sm);transition:background .12s;-webkit-tap-highlight-color:transparent}.menu-week-arrow:hover{background:var(--brand-light)}.menu-view-toggle{display:flex;gap:0;margin:0 16px 10px;background:var(--border);border-radius:var(--r-sm);padding:2px}.menu-view-btn{flex:1;padding:5px 0;font-size:13px;font-weight:600;color:var(--text-2);border-radius:6px;transition:background .12s,color .12s}.menu-view-btn.active{background:var(--card);color:var(--text);box-shadow:0 1px 3px #0000001a}.menu-kbju-row{display:flex;gap:8px;margin:0 16px 12px}.menu-kbju-block{flex:1;min-height:62px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:8px 6px;background:#ece8e2;border:1px solid var(--border);border-radius:var(--r-sm);text-align:center}.menu-kbju-label{font-size:11px;font-weight:600;color:var(--text-2);text-transform:uppercase;letter-spacing:.3px}.menu-kbju-kcal{font-size:18px;font-weight:700;color:var(--green)}.menu-kbju-macros{font-size:12px;font-weight:600;color:var(--text-2)}.menu-kbju-empty{font-size:11.5px;color:var(--text-2);line-height:1.3;padding:0 2px}.menu-kbju-pending{font-size:10px;font-weight:600;color:var(--text-2);opacity:.65;animation:menu-kbju-pulse 1.4s ease-in-out infinite}@keyframes menu-kbju-pulse{0%,to{opacity:.4}50%{opacity:.85}}.menu-kbju-locked{background:var(--ai-light);border-color:transparent;-webkit-tap-highlight-color:transparent}.menu-kbju-locked .menu-kbju-label{color:var(--ai-text);opacity:.8}.menu-kbju-locked-body{display:flex;align-items:center;gap:5px;color:var(--ai-text);font-size:12.5px;font-weight:600}.menu-scroll{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;display:flex;flex-direction:column}.menu-day-tabs{display:flex;border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0}.menu-day-tab{flex:1;display:flex;flex-direction:column;align-items:center;padding:8px 4px 6px;gap:2px;position:relative;color:var(--text-2);-webkit-tap-highlight-color:transparent;transition:color .1s}.menu-day-tab.active{color:var(--brand)}.menu-day-tab.today .menu-day-tab-num{background:var(--brand);color:#fff;border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center}.menu-day-tab-short{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.menu-day-tab-num{font-size:14px;font-weight:700;width:22px;height:22px;display:flex;align-items:center;justify-content:center}.menu-day-tab-dot{width:4px;height:4px;border-radius:50%;background:var(--brand);position:absolute;bottom:4px}.menu-day-tab.active:after{content:"";position:absolute;bottom:0;left:10%;right:10%;height:2px;background:var(--brand);border-radius:2px 2px 0 0}.menu-day-content{flex:1;padding:14px 16px 0;display:flex;flex-direction:column;gap:10px}.menu-day-title{font-size:16px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px}.menu-today-badge{font-size:11px;font-weight:600;color:var(--brand);background:var(--brand-light);border-radius:20px;padding:2px 8px}.menu-slot{background:var(--card);border-radius:var(--r);border:1px solid var(--border);overflow:hidden}.menu-slot-label{font-size:11px;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.05em;padding:8px 14px 6px;border-bottom:1px solid var(--border)}.menu-slot-add{display:flex;align-items:center;gap:6px;padding:12px 14px;color:var(--text-2);font-size:13px;width:100%;transition:color .12s;-webkit-tap-highlight-color:transparent}.menu-slot-add:hover{color:var(--brand)}.menu-slot-entries{display:flex;flex-direction:column}.menu-slot-entry{display:flex;align-items:center;gap:10px;padding:8px 10px 8px 12px;border-bottom:1px solid var(--border)}.menu-slot-entry:last-of-type{border-bottom:none}.menu-slot-entry-photo{width:44px;height:44px;flex-shrink:0;border-radius:8px;overflow:hidden;background:var(--border);display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.menu-slot-entry-photo img{width:100%;height:100%;object-fit:cover}.menu-slot-entry-no-photo{font-size:20px}.menu-slot-entry-name{flex:1;min-width:0;font-size:14px;font-weight:500;color:var(--text);text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-tap-highlight-color:transparent}.menu-slot-entry-name:hover{color:var(--brand)}.menu-slot-entry-del{flex-shrink:0;color:var(--text-2);padding:6px;display:flex;align-items:center;opacity:.55;transition:opacity .12s}.menu-slot-entry-del:hover{opacity:1;color:#dc2626}.menu-slot-add-more{align-self:flex-start;margin:4px 12px 8px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1.5px dashed var(--border);border-radius:50%;color:var(--text-2);transition:border-color .12s,color .12s;-webkit-tap-highlight-color:transparent}.menu-slot-add-more:hover{border-color:var(--brand);color:var(--brand)}.menu-week-table-wrap{flex:1;overflow:auto;padding:12px 8px 0}.menu-week-table{width:100%;border-collapse:collapse;table-layout:fixed}.menu-wt-corner{width:34px}.menu-wt-meal-head{font-size:10px;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.04em;padding:0 2px 8px;text-align:center}.menu-wt-day{padding:4px 2px;text-align:center;vertical-align:middle}.menu-wt-day-short{display:block;font-size:9px;font-weight:700;text-transform:uppercase;color:var(--text-2);letter-spacing:.04em}.menu-wt-day-num{display:block;font-size:14px;font-weight:700;color:var(--text)}.menu-wt-today .menu-wt-day-num{color:var(--brand)}.menu-wt-cell{padding:3px 2px;text-align:center;vertical-align:middle}.menu-week-table tr{border-bottom:1px solid var(--border)}.menu-week-table tr:last-child{border-bottom:none}.menu-wt-scroll{display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;scrollbar-width:none;gap:3px}.menu-wt-scroll::-webkit-scrollbar{display:none}.menu-wt-scroll .menu-wt-photo{flex:0 0 100%;min-width:0}.menu-wt-scroll.peek .menu-wt-photo{flex:0 0 calc(100% - 10px);min-width:calc(100% - 10px)}.menu-wt-photo{aspect-ratio:1;border-radius:8px;overflow:hidden;background:var(--border);display:flex;align-items:center;justify-content:center;scroll-snap-align:start;-webkit-tap-highlight-color:transparent}.menu-wt-photo img{width:100%;height:100%;object-fit:cover}.menu-wt-photo-placeholder{font-size:16px}.menu-wt-empty{width:100%;aspect-ratio:1;border-radius:8px;border:1.5px dashed var(--border);display:flex;align-items:center;justify-content:center;color:var(--border);transition:border-color .12s,color .12s}.menu-wt-empty:hover{border-color:var(--brand);color:var(--brand)}.menu-footer{padding:12px 20px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--card);flex-shrink:0;display:flex;gap:8px;align-items:stretch}.menu-footer>.btn{flex:1}.page-shopping{display:flex;flex-direction:column;height:100%}.shop-count{display:inline-flex;align-items:center;justify-content:center;background:var(--brand);color:#fff;font-size:12px;font-weight:700;width:20px;height:20px;border-radius:50%;margin-left:8px;vertical-align:middle}.shop-transfer-btn{font-size:13px;font-weight:600;color:var(--brand);border:1.5px solid var(--brand);padding:6px 14px;border-radius:20px;white-space:nowrap;transition:background .12s}.shop-transfer-btn:hover{background:var(--brand-light)}.shopping-scroll{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.shop-group-header{font-size:11px;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.06em;padding:14px 20px 6px;position:sticky;top:0;z-index:5;background:var(--bg)}.shop-item{display:flex;align-items:center;gap:10px;padding:10px 20px;background:var(--card);border-bottom:1px solid var(--border);transition:background .12s}.shop-item-bought{background:var(--bg);opacity:.65}.shop-check{flex-shrink:0;width:22px;height:22px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;transition:border-color .12s,background .12s;-webkit-tap-highlight-color:transparent}.shop-check.checked{background:var(--green);border-color:var(--green);color:#fff}.shop-check:active{transform:scale(.9)}.shop-item-name{flex:1;font-size:15px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shop-item-bought .shop-item-name{text-decoration:line-through;color:var(--text-2)}.shop-item-qty{flex-shrink:0}.shop-qty-btn{font-size:13px;color:var(--text);border:1px solid transparent;padding:3px 8px;border-radius:var(--r-sm);white-space:nowrap;transition:border-color .12s;display:inline-flex;align-items:center;gap:4px}.shop-qty-btn.editable{border-bottom:1.5px dashed var(--border);cursor:text}.shop-qty-btn.editable:hover{border-color:var(--brand);color:var(--text)}.shop-qty-btn:hover{border-color:var(--border)}.shop-qty-input{width:72px;padding:4px 8px;border:1.5px solid var(--brand);border-radius:var(--r-sm);font-size:13px;text-align:right;background:var(--card);color:var(--text);outline:none}.shop-del-btn{flex-shrink:0;padding:4px;color:var(--text-2);transition:color .12s}.shop-del-btn:hover{color:#dc2626}.shop-merge-btn{background:none;border:none;color:var(--text-2);padding:4px 5px;cursor:pointer;display:flex;align-items:center;opacity:.55;flex-shrink:0}.shop-merge-btn:hover{opacity:1;color:var(--brand)}.shop-add-bar{border-top:1px solid var(--border);background:var(--card);padding:10px 16px calc(10px + env(safe-area-inset-bottom));flex-shrink:0}.shop-add-row{display:flex;gap:6px;align-items:center}.shop-add-input{width:100%;padding:10px 12px;border:1.5px solid var(--border);border-radius:var(--r-sm);font-size:15px;background:var(--bg);color:var(--text);outline:none;-webkit-appearance:none}.shop-add-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-light)}.shop-add-input::placeholder{color:var(--text-2)}.shop-add-btn{flex-shrink:0;width:40px;height:40px;border-radius:var(--r-sm);background:var(--brand);color:#fff;font-size:22px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .12s}.shop-add-btn:hover:not(:disabled){background:var(--brand-dark)}.shop-add-btn:disabled{opacity:.5}.shop-choice-btns{display:flex;flex-direction:column;gap:10px}.sheet-sub{font-size:14px;color:var(--text-2);margin-bottom:16px;line-height:1.4}.location-list{display:flex;flex-direction:column;gap:8px}.location-btn{width:100%;text-align:left;padding:14px 18px;border:1.5px solid var(--border);border-radius:var(--r);font-size:15px;font-weight:500;color:var(--text);background:var(--card);transition:border-color .12s,background .12s;display:flex;align-items:center;gap:8px}.location-btn:hover:not(:disabled){border-color:var(--brand);background:var(--brand-light)}.location-btn:disabled{opacity:.6}.page-pantry{display:flex;flex-direction:column;height:100%}.pantry-expiring-badge{display:inline-flex;align-items:center;justify-content:center;background:#f59e0b;color:#fff;font-size:11px;font-weight:700;width:18px;height:18px;border-radius:50%;margin-left:8px;vertical-align:middle}.pantry-tabs{display:flex;border-bottom:1px solid var(--border);background:var(--card);flex-shrink:0}.pantry-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:10px 4px 8px;font-size:11px;font-weight:600;color:var(--text-2);border-bottom:2px solid transparent;transition:color .15s,border-color .15s;-webkit-tap-highlight-color:transparent}.pantry-tab.active{color:var(--brand);border-bottom-color:var(--brand)}.pantry-tab-emoji{font-size:18px;line-height:1}.pantry-tab-label{font-size:10px;text-transform:uppercase;letter-spacing:.04em}.pantry-tab-count{background:var(--brand-light);color:var(--brand-dark);font-size:10px;font-weight:700;padding:1px 6px;border-radius:10px}.pantry-tab.active .pantry-tab-count{background:var(--brand);color:#fff}.pantry-scroll{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.pantry-list{display:flex;flex-direction:column}.pantry-row{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--card);border-bottom:1px solid var(--border);gap:10px;transition:background .12s}.pantry-row.expiring{background:#fffbeb}.pantry-row-left{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.pantry-row-name{font-size:15px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pantry-row-expire{font-size:11px;color:#d97706;font-weight:600}.pantry-row-right{display:flex;align-items:center;gap:6px;flex-shrink:0}.pantry-qty-btn{font-size:13px;color:var(--text);border:1px solid transparent;border-bottom:1.5px dashed var(--border);padding:4px 10px;border-radius:var(--r-sm);white-space:nowrap;transition:border-color .12s;cursor:text;display:inline-flex;align-items:center;gap:4px}.pantry-qty-btn:hover{border-color:var(--brand);color:var(--text)}.pantry-qty-btn.editable{border-bottom:1.5px dashed var(--border)}.pantry-loc-mini{background:none;border:none;font-size:16px;cursor:pointer;padding:2px 0;color:var(--text-2);flex-shrink:0;-moz-appearance:none;appearance:none;-webkit-appearance:none;width:24px;text-align:center}.pantry-qty-input{width:72px;padding:4px 8px;border:1.5px solid var(--brand);border-radius:var(--r-sm);font-size:13px;text-align:right;background:var(--card);color:var(--text);outline:none}.pantry-add-bar{border-top:1px solid var(--border);background:var(--card);padding:10px 12px calc(10px + env(safe-area-inset-bottom));flex-shrink:0}.pantry-add-name{width:100%;margin-bottom:8px}.pantry-add-controls{display:flex;gap:6px;align-items:center}.pantry-add-controls .ing-qty-input{flex:1;min-width:0}.pantry-add-controls .ing-unit-select,.pantry-add-controls .pantry-loc-select{flex-shrink:0}.pantry-loc-select{flex-shrink:0;width:42px;padding:10px 4px;border:1.5px solid var(--border);border-radius:var(--r-sm);font-size:13px;background:var(--card);color:var(--text);outline:none;-webkit-appearance:none;text-align:center}.pantry-loc-select:focus{border-color:var(--brand)}.pill-cookable{background:var(--green-light);border-color:var(--green);color:var(--green-text)}.pill-cookable.active{background:var(--green);border-color:var(--green);color:#fff}.cookable-hint{font-size:12px;color:var(--green-text);padding:4px 4px 8px;font-weight:600}.cookable-premium-card{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--ai-light);border:1px solid #D8D5F8;border-radius:var(--r);padding:14px 16px;margin-top:8px}.cookable-premium-left{display:flex;align-items:flex-start;gap:10px;color:var(--ai)}.cookable-premium-title{font-size:14px;font-weight:700;color:var(--ai-text)}.cookable-premium-sub{font-size:12px;color:var(--ai);line-height:1.4;margin-top:2px}.cookable-premium-badge{flex-shrink:0;background:var(--ai-light);color:var(--ai);border:1px solid var(--ai);font-size:10px;font-weight:700;padding:3px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:.06em}.page-profile{display:flex;flex-direction:column;height:100%}.profile-scroll{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:0 0 40px}.profile-hero{display:flex;flex-direction:column;align-items:center;padding:28px 20px 24px;background:var(--card);border-bottom:1px solid var(--border);gap:6px}.profile-avatar-lg{width:72px;height:72px;border-radius:50%;background:var(--brand-light);color:var(--brand);font-size:28px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-bottom:4px}.profile-hero-name{font-size:18px;font-weight:700;color:var(--text)}.profile-hero-email{font-size:13px;color:var(--text-2)}.profile-section{margin-top:20px;background:var(--card);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.profile-section-title{font-size:11px;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.06em;padding:14px 20px 8px}.profile-row{display:flex;align-items:center;justify-content:space-between;padding:13px 20px;border-bottom:1px solid var(--border)}.profile-row:last-of-type{border-bottom:none}.profile-row-label{font-size:14px;color:var(--text-2)}.profile-row-value{font-size:14px;color:var(--text);font-weight:500;max-width:60%;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-logout-btn{width:100%;padding:14px 20px;text-align:left;font-size:15px;font-weight:500;color:#dc2626;border-top:1px solid var(--border);transition:background .12s}.profile-logout-btn:hover{background:#fef2f2}.profile-delete-btn{width:100%;padding:14px 20px;text-align:left;font-size:14px;font-weight:500;color:#9b8b80;border-top:1px solid var(--border);transition:background .12s,color .12s}.profile-delete-btn:hover{background:#fef2f2;color:#dc2626}.profile-premium-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;opacity:.75}.profile-premium-left{display:flex;align-items:flex-start;gap:10px;color:var(--ai)}.profile-premium-title{font-size:14px;font-weight:700;color:var(--ai-text)}.profile-premium-sub{font-size:12px;color:var(--ai);line-height:1.4;margin-top:2px}.profile-premium-badge{flex-shrink:0;background:var(--ai-light);color:var(--ai);border:1px solid var(--ai);font-size:10px;font-weight:700;padding:3px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:.06em}.profile-toggle-row{justify-content:space-between;cursor:default}.toggle-switch{flex-shrink:0;width:44px;height:26px;border-radius:13px;background:var(--border);border:none;position:relative;cursor:pointer;transition:background .2s;padding:0}.toggle-switch.on{background:var(--brand)}.toggle-switch:after{content:"";position:absolute;width:20px;height:20px;border-radius:50%;background:#fff;top:3px;left:3px;transition:transform .2s;box-shadow:0 1px 3px #0003}.toggle-switch.on:after{transform:translate(18px)}.sub-plan-premium{font-size:14px;font-weight:700;color:var(--brand)}.sub-ai-unlimited{font-size:14px;font-weight:600;color:var(--brand)}.sub-ai-counter{display:flex;align-items:center;gap:8px}.sub-ai-dots{display:flex;gap:5px;align-items:center}.sub-ai-dot{width:9px;height:9px;border-radius:50%;background:var(--border);transition:background .15s}.sub-ai-dot.filled{background:var(--brand)}.sub-ai-text{font-size:13px;color:var(--text);font-weight:500}.sub-actions{display:flex;flex-direction:column;gap:8px;padding:14px 20px;border-top:1px solid var(--border)}.sub-cta-btn{width:100%;height:44px;font-size:14px;font-weight:600}.sub-error{font-size:13px;color:#991b1b;text-align:center;margin:0}.spinner-sm{width:14px;height:14px;border-width:2px}.spinner-lg{width:36px;height:36px;border-width:3px;margin-bottom:16px}.page-payment-return{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:var(--bg)}.payment-return-card{max-width:360px;width:100%;background:var(--card);border-radius:var(--r-lg);padding:40px 28px 32px;display:flex;flex-direction:column;align-items:center;gap:12px;box-shadow:0 4px 24px #00000014}.payment-return-icon{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700}.payment-return-icon.success{background:#d1fae5;color:#065f46}.payment-return-icon.pending{background:#fef3c7;color:#92400e}.payment-return-title{font-size:20px;font-weight:700;margin:0;text-align:center}.payment-return-msg{font-size:14px;color:var(--text-2);text-align:center;margin:0;line-height:1.5}.payment-return-card .btn{margin-top:8px;width:100%}.payment-return-fireworks{font-size:48px;line-height:1;margin-bottom:4px;animation:pop .4s cubic-bezier(.36,.07,.19,.97)}.payment-return-perks{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:4px 0}.payment-return-perks span{font-size:12px;font-weight:600;background:var(--brand-light);color:var(--brand);padding:4px 10px;border-radius:20px}@keyframes pop{0%{transform:scale(.5);opacity:0}60%{transform:scale(1.15);opacity:1}to{transform:scale(1)}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;background:#2e262273;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:flex-end;justify-content:center;padding:0;animation:fade-in .2s ease}@media(min-width:480px){.modal-overlay{align-items:center;padding:24px}}.modal-card{background:var(--card);border-radius:var(--r-lg) var(--r-lg) 0 0;width:100%;max-width:440px;padding:32px 24px 28px;position:relative;animation:slide-up .28s cubic-bezier(.22,.61,.36,1);max-height:92dvh;overflow-y:auto}@media(min-width:480px){.modal-card{border-radius:var(--r-lg)}}.modal-close{position:absolute;top:16px;right:16px;width:28px;height:28px;border-radius:50%;background:var(--border);border:none;font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-2)}.modal-close:hover{background:#e0d0c6}@keyframes slide-up{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.welcome-modal{text-align:center;padding:48px 28px 36px;border-radius:var(--r-lg)}@media(min-width:480px){.welcome-modal{animation:pop-in .32s cubic-bezier(.22,.61,.36,1)}}@keyframes pop-in{0%{transform:scale(.88);opacity:0}to{transform:scale(1);opacity:1}}.welcome-icon{font-size:52px;line-height:1;margin-bottom:8px;animation:pop .4s cubic-bezier(.36,.07,.19,.97)}.welcome-title{font-size:22px;font-weight:800;margin:0 0 6px;color:var(--brand)}.welcome-greeting{font-size:17px;font-weight:600;margin:0 0 10px;color:var(--text)}.welcome-sub{font-size:14px;color:var(--text-2);margin:0 0 24px;line-height:1.55}.welcome-btn{width:100%}.app-intro-overlay{align-items:flex-end}@media(min-width:480px){.app-intro-overlay{align-items:center}}.app-intro-modal{padding:32px 24px 28px;border-radius:var(--r-lg) var(--r-lg) 0 0;max-height:88dvh;overflow-y:auto;animation:slide-up .3s cubic-bezier(.22,.61,.36,1)}@media(min-width:480px){.app-intro-modal{border-radius:var(--r-lg);animation:pop-in .28s cubic-bezier(.22,.61,.36,1)}}@keyframes slide-up{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}.app-intro-icon{font-size:48px;line-height:1;margin-bottom:8px;text-align:center}.app-intro-title{font-size:22px;font-weight:800;color:var(--brand);text-align:center;margin:0 0 4px}.app-intro-subtitle{font-size:14px;color:var(--text-2);text-align:center;margin:0 0 20px}.app-intro-lead{font-size:14px;color:var(--text);line-height:1.6;margin:0 0 16px}.app-intro-benefits{background:var(--brand-light);border-radius:var(--r);padding:14px 16px;margin:0 0 16px}.app-intro-benefit-title{font-size:13px;font-weight:700;color:var(--brand-dark);margin-bottom:8px}.app-intro-list{margin:0;padding-left:18px;font-size:13px;color:var(--text);line-height:1.65}.app-intro-list li{margin-bottom:4px}.app-intro-list li:last-child{margin-bottom:0}.app-intro-footer{font-size:13px;color:var(--text-2);text-align:center;margin:0 0 20px;line-height:1.5}.app-intro-btn{width:100%}.onboarding-title{font-size:18px;font-weight:700;margin:0 0 18px;padding-right:24px}.onboarding-compare{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.compare-col{display:flex;flex-direction:column;gap:6px}.compare-head{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2);padding-bottom:6px;border-bottom:1.5px solid var(--border);margin-bottom:2px}.compare-head.premium{color:var(--brand);border-color:var(--brand-light)}.compare-note{font-size:11px;color:var(--text-2);margin-bottom:2px}.compare-row{display:flex;align-items:flex-start;gap:6px;font-size:13px;color:var(--text);line-height:1.4}.compare-check{flex-shrink:0;font-size:12px;font-weight:700;margin-top:1px}.compare-check.free{color:#15803d}.compare-check.premium{color:var(--brand)}.onboarding-actions{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--border);padding-top:16px}.onboarding-pay-btn{width:100%;height:48px;font-size:15px}.onboarding-old-price{opacity:.55;font-weight:400;font-size:13px;margin-left:4px}.btn-ghost{background:transparent;border:none;padding:4px 0;font-size:13px;color:var(--text-2);cursor:pointer;text-align:center}.btn-ghost:hover{color:var(--text)}.onboarding-skip{font-size:13px}.onboarding-free-link{background:none;border:none;padding:6px 0 0;font-size:13px;color:var(--text-2);cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-align:center}.onboarding-free-link:hover{color:var(--text)}.plan-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.plan-card{position:relative;display:flex;flex-direction:column;align-items:center;padding:16px 12px 14px;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--r-sm);cursor:pointer;text-align:center;transition:border-color .15s,box-shadow .15s}.plan-card:hover:not(:disabled){border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-light)}.plan-card:disabled{opacity:.6;cursor:default}.plan-card--year{border-color:var(--brand-light);background:var(--brand-light)}.plan-card--year:hover:not(:disabled){border-color:var(--brand)}.plan-badge{position:absolute;top:-9px;left:50%;transform:translate(-50%);background:var(--brand);color:#fff;font-size:10px;font-weight:700;letter-spacing:.03em;padding:2px 8px;border-radius:20px;white-space:nowrap}.plan-badge--year{background:var(--brand-dark)}.plan-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);margin-bottom:6px}.plan-price{font-size:22px;font-weight:800;color:var(--text);line-height:1;margin-bottom:4px}.plan-card--year .plan-price{color:var(--brand)}.plan-note{font-size:11px;color:var(--text-2);line-height:1.4;margin-bottom:2px}.plan-note s{opacity:.6}.plan-cta{margin-top:10px;font-size:12px;font-weight:700;color:var(--brand);letter-spacing:-.01em}.profile-feedback-row{cursor:default}.profile-feedback-email{font-size:13px;color:var(--brand);font-weight:500;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:62%;text-decoration:none;-webkit-tap-highlight-color:transparent}.profile-feedback-email:hover{text-decoration:underline}.profile-about-btn{width:100%;padding:12px 20px;background:none;border:none;border-top:1px solid var(--border);text-align:left;font-size:14px;color:var(--brand);cursor:pointer;font-weight:500}.profile-about-btn:hover{background:var(--brand-light)}.sheet-tall{max-height:82vh;display:flex;flex-direction:column}.sheet-date-inline{font-weight:400;font-size:15px;color:var(--text-2)}.picker-search{width:100%;padding:10px 14px;border:1.5px solid var(--border);border-radius:var(--r-sm);font-size:15px;background:var(--bg);color:var(--text);outline:none;margin-bottom:12px;flex-shrink:0}.picker-search:focus{border-color:var(--brand)}.picker-loading{display:flex;justify-content:center;padding:24px 0;flex-shrink:0}.picker-error{color:#991b1b;font-size:13px;text-align:center;padding:6px 0 10px;flex-shrink:0}.picker-list{overflow-y:auto;flex:1;margin:0 -20px}.picker-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:10px 20px;font-size:15px;color:var(--text);border-bottom:1px solid var(--border);transition:background .1s;min-height:56px}.picker-item:hover{background:var(--brand-light)}.picker-item:disabled{opacity:.5;cursor:default}.picker-item-thumb{width:48px;height:48px;flex-shrink:0;border-radius:8px;object-fit:cover;display:block}.picker-item>span{flex:1;min-width:0}.ing-form-row.ing-error .ing-search-input{border-color:#ef4444;background:#fef2f2}.input-error{border-color:#ef4444!important;background:#fef2f2!important}.form-modal{padding:20px 20px 24px}.form-modal .sheet-handle{margin:0 auto 20px}.form-modal-title{font-size:20px;font-weight:700;color:var(--text);margin-bottom:20px}.form-modal-btns{display:flex;gap:10px;margin-top:24px}.form-modal-btns .btn{flex:1;width:auto;min-width:0;height:48px;font-size:15px}.tag-chip{display:inline-flex;align-items:center;gap:4px;background:var(--brand-light);color:var(--brand-dark);border:1px solid #f0c4b4;border-radius:20px;padding:3px 10px;font-size:13px;font-weight:500;white-space:nowrap;flex-shrink:0}.tag-chip-remove{font-size:14px;line-height:1;color:var(--brand);padding:0 0 0 2px;cursor:pointer;transition:color .1s}.tag-chip-remove:hover{color:var(--brand-dark)}.tag-chip-link{cursor:pointer;transition:background .15s,border-color .15s}.tag-chip-link:hover{background:#f5d8ce;border-color:var(--brand)}.tag-input-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:6px;border:1.5px solid var(--border);border-radius:var(--r-sm);padding:8px 10px;background:#fff;cursor:text;min-height:42px;transition:border-color .15s}.tag-input-wrap:focus-within{border-color:var(--brand)}.tag-input{border:none;outline:none;background:transparent;font-size:14px;color:var(--text);flex:1;min-width:120px;padding:0}.tag-input::placeholder{color:var(--text-2)}.detail-tags{display:flex;flex-wrap:wrap;gap:8px;padding-top:4px}.pill-tag{background:var(--brand-light);border-color:var(--brand);color:var(--brand-dark)}.pill-tag.active{background:var(--brand);color:#fff;border-color:var(--brand)}.chef-page{display:flex;flex-direction:column;height:100%}.chef-scroll{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:16px 20px 32px;display:flex;flex-direction:column;gap:20px}.chef-header-title{display:flex;align-items:center;gap:8px}.chef-premium-badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:20px;background:linear-gradient(90deg,#38bdf8,#818cf8,#a78bfa);color:#fff;letter-spacing:.04em;text-transform:uppercase}.chef-section-label{font-size:11px;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}.chef-chips{display:flex;flex-wrap:wrap;gap:8px}.chef-chip{padding:7px 14px;border-radius:20px;border:1.5px solid var(--border);background:var(--card);color:var(--text);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent}.chef-chip:hover{border-color:#818cf8}.chef-chip.selected{background:linear-gradient(90deg,#38bdf8,#818cf8);border-color:transparent;color:#fff;font-weight:600}.chef-portions-row{display:flex;align-items:center;gap:16px}.chef-portions-count{font-size:22px;font-weight:700;min-width:32px;text-align:center}.chef-portions-btn{width:36px;height:36px;border-radius:50%;border:1.5px solid var(--border);background:var(--card);font-size:20px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text);transition:background .15s}.chef-portions-btn:hover{background:var(--border)}.btn-chef{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:56px;padding:16px 24px;border-radius:var(--r);border:none;cursor:pointer;font-size:17px;font-weight:700;line-height:1.2;letter-spacing:-.01em;background:linear-gradient(90deg,#38bdf8,#818cf8,#a78bfa,#38bdf8);background-size:300% 100%;color:#fff;animation:chef-shimmer 3s linear infinite;transition:opacity .15s,transform .1s;-webkit-tap-highlight-color:transparent;flex-shrink:0}.btn-chef:active:not(:disabled){transform:scale(.97)}.btn-chef:disabled{opacity:.5;cursor:not-allowed;animation:none;background-position:0 0}.chef-quota{text-align:center;font-size:13px;color:var(--text-2);display:flex;align-items:center;justify-content:center;gap:6px}.chef-quota-dot{width:8px;height:8px;border-radius:50%;background:var(--border);display:inline-block}.chef-quota-dot.used{background:#818cf8}.chef-recipe-card{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}.chef-recipe-head{padding:16px 16px 12px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#eef2ff,#faf5ff)}.chef-recipe-name{font-size:17px;font-weight:700;color:var(--text)}.chef-recipe-body{padding:14px 16px;display:flex;flex-direction:column;gap:12px}.chef-sub-label{font-size:11px;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.chef-ing-row{display:flex;justify-content:space-between;font-size:14px;padding:2px 0}.chef-ing-name{color:var(--text)}.chef-ing-amount{color:var(--text-2)}.chef-step{font-size:14px;color:var(--text);line-height:1.5;display:flex;gap:8px}.chef-step-num{font-weight:700;color:#818cf8;flex-shrink:0;min-width:18px}.chef-buy-list{background:#fef3c7;border-radius:var(--r-sm);padding:10px 12px;font-size:14px;color:#92400e;line-height:1.6}.chef-buy-title{font-weight:700;margin-bottom:2px}.chef-all-good{background:var(--green-light);border-radius:var(--r-sm);padding:8px 12px;font-size:14px;color:var(--green-text);font-weight:500}.chef-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:500;display:flex;align-items:flex-end;justify-content:center;padding:0;animation:fadeIn .2s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.chef-modal-card{background:var(--card);border-radius:var(--r-lg) var(--r-lg) 0 0;padding:28px 24px 36px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:20px;animation:slideUp .25s ease-out}@keyframes slideUp{0%{transform:translateY(60px);opacity:0}to{transform:translateY(0);opacity:1}}.chef-modal-gem{font-size:48px;text-align:center;line-height:1}.chef-modal-title{font-size:22px;font-weight:800;text-align:center;color:var(--text);letter-spacing:-.02em}.chef-modal-sub{font-size:14px;color:var(--text-2);text-align:center;line-height:1.5}.chef-feature-list{display:flex;flex-direction:column;gap:10px}.chef-feature-row{display:flex;align-items:flex-start;gap:10px;font-size:15px;color:var(--text);line-height:1.4}.chef-feature-icon{font-size:18px;flex-shrink:0;margin-top:1px}.chef-modal-divider{height:1px;background:var(--border)}.chef-modal-close{background:none;border:none;color:var(--text-2);font-size:14px;text-align:center;width:100%;padding:4px;cursor:pointer}.upsell-btn{font-size:15px;padding:13px 16px;border-radius:var(--r)}.update-toast{position:fixed;bottom:calc(var(--nav-h) + 12px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);background:var(--text);color:#fff;border-radius:var(--r);padding:10px 14px;display:flex;align-items:center;gap:10px;font-size:13px;white-space:nowrap;max-width:calc(100vw - 32px);z-index:600;box-shadow:0 4px 20px #0000004d;animation:slideUp .2s ease-out}.update-toast button{flex-shrink:0}.update-toast>button:first-of-type{background:var(--brand);color:#fff;border:none;border-radius:var(--r-sm);padding:5px 12px;font-size:13px;font-weight:600;cursor:pointer}.update-toast-close{background:none;border:none;color:#ffffff8c;font-size:16px;line-height:1;cursor:pointer;padding:2px 4px}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.privacy-page{display:flex;flex-direction:column;height:100vh;height:100dvh;background:var(--bg)}.privacy-header{display:flex;align-items:center;gap:8px;padding:16px 16px 12px;border-bottom:1px solid var(--border);background:var(--card);flex-shrink:0}.privacy-back-btn{font-size:24px;color:var(--brand);width:36px;height:36px;display:flex;align-items:center;justify-content:center}.privacy-header h1{font-size:17px;font-weight:700}.privacy-scroll{flex:1;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:20px 16px 40px}.privacy-updated{font-size:12px;color:var(--text-2);margin-bottom:20px}.privacy-section{margin-bottom:20px}.privacy-section h2{font-size:14px;font-weight:700;color:var(--text);margin:0 0 8px}.privacy-section p{font-size:13px;color:var(--text);line-height:1.65;margin:0 0 6px}.privacy-section p:last-child{margin-bottom:0}.privacy-section a{color:var(--brand)}.profile-collapsible-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:13px 20px;box-sizing:border-box;background:none;border:none;cursor:pointer}.profile-collapsible-header>span{padding:0}.profile-collapsible-chevron{font-size:11px;color:var(--text-2)}.cookie-banner{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;background:var(--text);color:#fff;display:flex;flex-direction:column;gap:10px;padding:14px 16px 16px;z-index:9000;box-shadow:0 -2px 16px #0000002e}.cookie-banner-text{font-size:12px;line-height:1.5;margin:0}.cookie-banner-link{color:#f5c4b0}.cookie-banner-btn{width:100%;height:38px;font-size:14px}.changelog-modal{padding:32px 24px 28px}.changelog-title{font-size:18px;font-weight:800;margin:0 0 20px;color:var(--text)}.changelog-entry{margin-bottom:16px}.changelog-entry:last-child{margin-bottom:0}.changelog-version{font-size:13px;font-weight:700;color:var(--brand);margin-bottom:4px}.changelog-notes{font-size:13px;color:var(--text);line-height:1.6;margin:0}.announcement-modal{padding:28px 24px 24px}.announcement-title{font-size:18px;font-weight:800;margin:0 0 12px;color:var(--text)}.announcement-body{font-size:14px;color:var(--text);line-height:1.6;margin:0}.recipes-main-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 12px;flex-shrink:0}.recipes-main-tabs>.recipes-main-tab:nth-child(3):last-child{grid-column:1 / -1}.recipes-main-tab{padding:8px 10px;min-height:44px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;line-height:1.25;text-align:center;color:var(--text-2);background:var(--card);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;transition:color .15s,background-color .15s,border-color .15s}.recipes-main-tab.active{color:#fff;background:var(--brand);border-color:var(--brand)}.recipes-main-tab-author{position:relative;grid-column:1 / -1;background:var(--brand);color:#fff;border-color:var(--brand);gap:6px;font-weight:700}.recipes-main-tab-author .soon-badge{font-size:11px;font-weight:600;padding:2px 7px;border-radius:999px;background:#ffffff38;color:#fff}.author-tab-star{display:inline-block;margin-left:2px;color:inherit}.author-tab-star.is-new{color:#ffd24a;text-shadow:0 0 6px #FFD24A,0 0 12px rgba(255,210,74,.7);animation:author-badge-pulse 1.5s ease-in-out infinite}@keyframes author-badge-pulse{0%,to{opacity:1;transform:scale(1);text-shadow:0 0 6px #FFD24A,0 0 12px rgba(255,210,74,.7)}50%{opacity:.5;transform:scale(1.15);text-shadow:0 0 2px #FFD24A,0 0 4px rgba(255,210,74,.4)}}.coming-soon-icon{font-size:44px;text-align:center;margin-bottom:8px}.recipes-chef-tab-wrap{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 20px}.authors-tab{display:flex;flex-direction:column}.authors-view-toggle{display:flex;gap:0;background:var(--brand-light);border-radius:10px;padding:3px;margin:4px 0 10px;flex-shrink:0}.authors-view-btn{flex:1;height:34px;border-radius:8px;border:none;background:transparent;color:#993c1d;font-size:13px;font-weight:600;transition:background-color .15s,color .15s}.authors-view-btn.active{background:var(--brand);color:#fff}.authors-pills-wrap{display:flex;gap:8px;overflow-x:auto;padding:4px 0 12px;scrollbar-width:none;flex-shrink:0}.authors-pills-wrap::-webkit-scrollbar{display:none}.authors-pill{flex-shrink:0;padding:6px 14px;border-radius:20px;border:none;background:var(--brand-light);color:#993c1d;font-size:13px;font-weight:500;white-space:nowrap;transition:all .15s}.authors-pill.active{background:var(--brand);color:#fff}.authors-grid{display:grid;grid-template-columns:1fr;gap:12px;padding-bottom:20px}@media(min-width:560px){.authors-grid{grid-template-columns:1fr 1fr}}.author-card{position:relative;width:100%;text-align:left;background:var(--card);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;transition:transform .1s,box-shadow .1s;-webkit-tap-highlight-color:transparent}.author-card:active{transform:scale(.985);box-shadow:none}.author-card-photo{position:relative;width:100%;padding-top:75%;height:0;background:var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0}@supports (aspect-ratio: 1){.author-card-photo{padding-top:0;height:auto;aspect-ratio:4/3}}.author-card-photo img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.author-card-photo-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:36px}.author-card-badge{position:absolute;top:10px;left:10px;padding:3px 10px;border-radius:999px;background:var(--brand);color:#fff;font-size:11px;font-weight:700}.author-card-new-badge{position:absolute;top:10px;right:10px;width:22px;height:22px;border-radius:50%;background:var(--brand);color:#fff;font-size:12px;line-height:1;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px #00000040}.author-card-body{padding:12px 14px 14px}.author-card-name{font-size:15px;font-weight:600;color:var(--text)}.author-card-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;font-size:12px;color:var(--text-2)}.authors-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 20px;color:var(--text-2)}.authors-empty-icon{font-size:44px;margin-bottom:10px}.author-recipe-page{display:flex;flex-direction:column;height:100%;background:var(--bg)}.author-recipe-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:16px 20px 32px}.author-recipe-back{display:flex;width:fit-content;align-items:center;gap:6px;color:var(--text);font-size:14px;font-weight:600;margin-bottom:14px}.author-recipe-badge{display:inline-block;padding:5px 12px;border-radius:999px;background:#712b13;color:#faece7;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;margin-bottom:10px}.author-recipe-author{font-family:Georgia,Times New Roman,serif;font-style:italic;color:var(--brand);font-size:14px;margin-bottom:4px}.author-recipe-title{font-size:26px;font-weight:800;color:var(--text);line-height:1.2;margin-bottom:16px}.author-recipe-save-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:999px;border:1.5px solid var(--brand);background:transparent;color:var(--brand);font-size:14px;font-weight:600;margin-bottom:16px;transition:background-color .15s,color .15s}.author-recipe-save-btn.is-saved{background:var(--brand);color:#fff}.author-recipe-save-btn:disabled{opacity:.6}.author-recipe-photo-wrap{width:100%;aspect-ratio:1344 / 768;border-radius:14px;overflow:hidden;background:var(--border);margin-bottom:14px}.author-recipe-photo{width:100%;height:100%;object-fit:cover;display:block}.author-recipe-photo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(135deg,var(--brand) 0%,var(--brand-dark) 100%)}.author-recipe-meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px}.author-recipe-pill{padding:5px 12px;border-radius:999px;background:#faece7;color:#993c1d;font-size:12px;font-weight:600;white-space:nowrap}.author-recipe-time{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--text-2);margin-left:auto}.author-recipe-kbju-note{text-align:center;font-size:11px;color:#9b8b80;margin-bottom:6px}.author-recipe-kbju{display:grid;grid-template-columns:repeat(4,1fr);background:#fefbf7;border-radius:14px;box-shadow:var(--shadow);padding:14px 4px;margin-bottom:18px}.author-recipe-kbju-item{text-align:center;border-left:1px solid #E4C9A8}.author-recipe-kbju-item:first-child{border-left:none}.author-recipe-kbju-value{font-size:18px;font-weight:700;color:var(--text)}.author-recipe-kbju-label{font-size:11px;color:var(--text-2);margin-top:2px}.author-recipe-story{font-family:Georgia,Times New Roman,serif;font-style:italic;color:var(--text-2);border-left:3px solid var(--brand);padding-left:14px;margin:0 0 20px;font-size:15px;line-height:1.55}.author-recipe-box{border:1.5px solid #E4C9A8;border-radius:14px;background:#fefbf7;padding:16px;margin-bottom:16px}.author-recipe-box-title{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:700;color:var(--text);margin-bottom:12px}.author-recipe-ing-group+.author-recipe-ing-group{margin-top:14px}.author-recipe-ing-group-title{font-size:12px;font-weight:700;color:var(--brand-dark);text-transform:uppercase;letter-spacing:.02em;margin-bottom:6px}.author-recipe-ing-list{list-style:none;margin:0;padding:0}.author-recipe-ing-row{display:flex;align-items:center;padding:8px 0;border-bottom:1px dashed #E4C9A8;font-size:14px;color:var(--text)}.author-recipe-ing-row:last-child{border-bottom:none}.author-recipe-ing-name{flex:1}.author-recipe-ing-amount{color:var(--text-2);white-space:nowrap}.author-recipe-ing-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;margin-right:9px}.author-recipe-ing-dot.have{background:#639922}.author-recipe-ing-dot.missing{background:#d85a30}.author-recipe-shopping-btn{width:100%;margin-top:14px;padding:10px 16px;border-radius:10px;border:1.5px solid var(--brand);background:transparent;color:var(--brand);font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:center}.author-recipe-shopping-btn:disabled{opacity:.6}.author-recipe-shopping-msg{margin-top:8px;font-size:13px;color:var(--green-text);text-align:center}.author-recipe-cook-btn{width:100%;margin-top:16px;padding:11px 16px;border-radius:10px;border:none;background:var(--brand);color:#fff;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center}.author-recipe-cook-btn:disabled{opacity:.6}.author-recipe-cook-msg{margin-top:8px;font-size:13px;color:var(--green-text);text-align:center}.author-recipe-steps-box{position:relative;overflow:hidden}.author-recipe-steps-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:10px;font-size:14px;line-height:1.5;color:var(--text)}.author-recipe-steps-blur{filter:blur(4px);opacity:.5;pointer-events:none;color:var(--text-2)}.author-recipe-tip{margin-top:16px;padding:12px 14px;border-radius:12px;background:var(--brand-light)}.author-recipe-tip-title{font-size:12px;font-weight:700;color:var(--brand-dark);text-transform:uppercase;margin-bottom:4px}.author-recipe-tip p{margin:0;font-size:14px;color:var(--text)}.author-recipe-lock-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;padding:20px;background:linear-gradient(180deg,#fefbf700,#fefbf7 40%)}.author-recipe-lock-circle{width:48px;height:48px;border-radius:50%;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:4px}.author-recipe-lock-title{font-size:15px;font-weight:700;color:var(--text)}.author-recipe-lock-sub{font-size:13px;color:var(--text-2);max-width:280px;margin-bottom:6px}.quota-line{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;font-size:12px;color:var(--text-2)}.quota-line-label,.quota-line-count{white-space:nowrap}.quota-line-count.exhausted{color:#b91c1c}.quota-line-upgrade{height:26px!important;font-size:11px!important;padding:0 10px!important;flex-shrink:0}.search-mode-switcher{display:flex;gap:0;background:var(--bg-2, #f0e8df);border-radius:10px;padding:3px;margin:0 0 12px;min-width:0}.search-mode-btn{flex:1;min-width:0;height:36px;border-radius:8px;border:none;cursor:pointer;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:transparent;color:var(--text-2);box-shadow:none;transition:all .15s}.search-mode-btn.active{background:var(--card);color:var(--text);box-shadow:0 1px 4px #00000014}.search-mode-btn.ai.active{color:#7c3aed}.landing-page{flex:1;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--bg)}.landing-hero{display:flex;flex-direction:column;align-items:center;gap:32px;padding:48px 24px 40px;background:linear-gradient(170deg,#fff8f2 0%,var(--bg) 60%);border-bottom:1px solid var(--border)}.landing-hero-brand{font-size:14px;font-weight:700;color:var(--brand);letter-spacing:.2px}.landing-hero-title{font-size:28px;font-weight:800;color:var(--text);letter-spacing:-.5px;line-height:1.2;margin-top:6px}.landing-hero-sub{font-size:14px;color:var(--text-2);line-height:1.65;margin-top:10px}.landing-hero-cta{margin-top:8px;max-width:280px;background:#cf5a33;color:#fff;border:none;box-shadow:0 4px 16px #cf5a3359}.landing-hero-cta:hover{background:#712b13}.landing-hero-cta:active{background:#712b13;transform:scale(.97)}.landing-phone{flex-shrink:0;width:clamp(200px,68vw,280px);background:#1a1a1a;border-radius:28px;padding:10px;box-shadow:0 0 0 2px #333,0 16px 48px #0000004d,0 4px 12px #00000026}.landing-phone-inner{border-radius:20px;overflow:hidden;background:#f0ebe4;aspect-ratio:9 / 19.5;display:flex;align-items:center;justify-content:center}.landing-phone-inner img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}.landing-phone-inner img[src$=".jpg"]:not([complete]){background:var(--border)}.landing-features-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:32px 24px 40px;border-bottom:1px solid var(--border)}.landing-feature-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px 14px;display:flex;flex-direction:column;gap:6px}.landing-feature-card-icon{width:34px;height:34px;border-radius:10px;background:var(--brand-light);color:var(--brand);display:flex;align-items:center;justify-content:center;margin-bottom:2px}.landing-feature-card-title{font-size:14px;font-weight:700;color:var(--text);line-height:1.3}.landing-feature-card-desc{font-size:12px;color:var(--text-2);line-height:1.4}.landing-section{padding:40px 24px;border-bottom:1px solid var(--border)}.landing-section-kicker{font-size:12px;font-weight:700;color:var(--brand);letter-spacing:.3px;text-transform:uppercase;margin-bottom:8px}.landing-section-title{font-size:20px;font-weight:800;color:var(--text);margin-bottom:6px}.landing-section-sub{font-size:13px;color:var(--text-2);margin-bottom:24px;line-height:1.5}.landing-menu-highlight{display:flex;flex-direction:column}.landing-menu-highlight .landing-phone{align-self:center}.landing-plans{display:flex;flex-direction:column;gap:16px}.landing-plan{background:var(--card);border:1.5px solid var(--border);border-radius:var(--r-lg);padding:20px}.landing-plan--premium{border-color:var(--brand);box-shadow:0 4px 20px #cf5a331a}.landing-plan-badge{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;border-radius:20px;padding:3px 10px;margin-bottom:12px}.landing-plan-badge--free{background:var(--green-light);color:var(--green-text)}.landing-plan-badge--premium{background:var(--brand-light);color:var(--brand)}.landing-plan-price{font-size:28px;font-weight:800;color:var(--text);margin-bottom:4px;line-height:1.1}.landing-plan-period{font-size:14px;font-weight:500;color:var(--text-2)}.landing-plan-yearly{font-size:12px;color:var(--text-2);margin-bottom:16px}.landing-plan-features{list-style:none;display:flex;flex-direction:column;gap:8px;margin-top:16px}.landing-plan-features li{font-size:13px;color:var(--text);padding-left:20px;position:relative;line-height:1.4}.landing-plan-features li:before{content:"✓";position:absolute;left:0;color:var(--green);font-weight:700}.landing-install-android{display:flex;align-items:center;gap:16px;background:var(--card);border:1.5px solid var(--border);border-radius:var(--r-lg);padding:20px;margin-bottom:16px}.landing-install-icon{font-size:32px;flex-shrink:0}.landing-install-store{font-size:13px;font-weight:700;color:var(--text);margin-bottom:8px}.landing-install-btn{height:40px;min-height:40px;font-size:13px;padding:0 16px;width:auto}.landing-install-ios{background:var(--card);border:1.5px solid var(--border);border-radius:var(--r-lg);padding:20px}.landing-install-ios--link,.landing-install-android--link{display:flex;align-items:center;gap:16px;text-decoration:none;transition:border-color .15s;cursor:pointer}.landing-install-ios--link:hover,.landing-install-android--link:hover{border-color:var(--brand)}.landing-install-store{font-size:13px;font-weight:700;color:var(--text);margin-bottom:4px}.landing-install-ios-hint{font-size:12px;color:var(--text-2);margin-bottom:6px}.landing-install-ios-more{font-size:13px;font-weight:600;color:var(--brand)}.landing-footer{padding:28px 24px 40px;text-align:center;display:flex;flex-direction:column;gap:12px;align-items:center}.landing-footer-copy{font-size:12px;color:var(--text-2)}.landing-footer-links{display:flex;gap:20px;flex-wrap:wrap;justify-content:center}.landing-footer-links a{font-size:12px;color:var(--text-2);text-decoration:none}.landing-footer-links a:hover{color:var(--brand)}.ios-install-page{display:flex;flex-direction:column;height:100vh;height:100dvh;background:var(--bg)}.ios-install-header{display:flex;align-items:center;gap:8px;padding:16px 16px 12px;border-bottom:1px solid var(--border);background:var(--card);flex-shrink:0}.ios-install-back{font-size:24px;color:var(--brand);width:36px;height:36px;display:flex;align-items:center;justify-content:center}.ios-install-header-title{font-size:17px;font-weight:700;color:var(--text)}.ios-install-scroll{flex:1;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:24px 20px 48px}.ios-install-hero{text-align:center;padding-bottom:28px;border-bottom:1px solid var(--border);margin-bottom:28px}.ios-install-hero-icon{font-size:52px;line-height:1;margin-bottom:12px}.ios-install-title{font-size:22px;font-weight:800;color:var(--text);margin-bottom:10px}.ios-install-subtitle{font-size:14px;color:var(--text-2);line-height:1.65;max-width:320px;margin:0 auto}.ios-install-steps{list-style:none;display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.ios-install-step{display:flex;gap:14px;align-items:flex-start}.ios-install-step-num{flex-shrink:0;width:28px;height:28px;border-radius:50%;background:var(--brand);color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-top:1px}.ios-install-step-body{flex:1;display:flex;flex-direction:column;gap:8px}.ios-install-step-icon{display:flex;align-items:center;gap:8px}.ios-install-step-text{font-size:14px;color:var(--text);line-height:1.6}.ios-install-step-text strong{color:var(--text);font-weight:700}.ios-install-note{background:var(--brand-light);border-left:3px solid var(--brand);border-radius:0 var(--r-sm) var(--r-sm) 0;padding:12px 14px;font-size:13px;color:var(--text);line-height:1.6;margin-bottom:28px}.ios-install-note strong{display:block;margin-bottom:4px;color:var(--brand)}.ios-install-cta{background:#cf5a33;color:#fff;border:none;box-shadow:0 4px 16px #cf5a334d;margin-bottom:16px}.ios-install-cta:hover{background:#712b13}.ios-install-cta:active{background:#712b13;transform:scale(.97)}.ios-install-back-link{text-align:center;font-size:13px}.ios-install-back-link a{color:var(--text-2);text-decoration:none}.ios-install-back-link a:hover{color:var(--brand)}.ios-install-link{color:var(--brand);text-decoration:none;font-weight:600}.pwa-hint-banner{position:fixed;bottom:calc(var(--nav-h) + 8px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);width:calc(100% - 24px);max-width:480px;background:var(--bg);border:1.5px solid var(--brand);border-radius:14px;box-shadow:0 4px 20px #cf5a332e;display:flex;align-items:center;gap:8px;padding:12px 14px;z-index:200;animation:pwa-hint-slide-in .3s ease}.pwa-hint-icon{font-size:22px;flex-shrink:0}.pwa-hint-text{flex:1;font-size:13px;line-height:1.4;color:var(--text)}.pwa-hint-btn{flex-shrink:0;background:var(--brand);color:#fff;border:none;border-radius:8px;padding:6px 12px;font-size:12px;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap}.pwa-hint-close{flex-shrink:0;background:none;border:none;color:var(--text-2);font-size:22px;line-height:1;cursor:pointer;padding:0 2px}@keyframes pwa-hint-slide-in{0%{opacity:0;transform:translate(-50%) translateY(16px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.delete-account-modal{padding:28px 24px 24px;max-width:360px}.delete-account-title{font-size:18px;font-weight:700;color:#c0392b;margin:0 0 12px}.delete-account-text{font-size:14px;line-height:1.55;color:var(--text);margin:0 0 20px}.delete-account-actions{display:flex;gap:10px}.gdpr-consent-label{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.5;color:var(--text-2);cursor:pointer;-webkit-user-select:none;user-select:none}.gdpr-consent-checkbox{flex-shrink:0;width:18px;height:18px;margin-top:1px;accent-color:var(--brand);cursor:pointer}.gdpr-consent-link{color:var(--brand);text-decoration:underline}.splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#0a1330;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;cursor:pointer;transition:background .6s ease,opacity .35s ease .45s}.splash--exit{background:#fbf3ea;opacity:0;pointer-events:none}.splash__glow{position:absolute;border-radius:50%;pointer-events:none;will-change:transform}.splash__glow--1{width:min(500px,95vw);height:min(500px,95vw);background:radial-gradient(circle,rgba(132,197,238,.18) 0%,transparent 68%);top:-18%;left:-18%;animation:drift1 9s ease-in-out infinite alternate}.splash__glow--2{width:min(420px,85vw);height:min(420px,85vw);background:radial-gradient(circle,rgba(83,74,183,.14) 0%,transparent 68%);bottom:-12%;right:-12%;animation:drift2 11s ease-in-out infinite alternate}.splash__glow--3{width:min(340px,75vw);height:min(340px,75vw);background:radial-gradient(circle,rgba(132,197,238,.09) 0%,transparent 68%);top:42%;left:22%;animation:drift3 14s ease-in-out infinite alternate}@keyframes drift1{0%{transform:translate(0) scale(1)}to{transform:translate(38px,52px) scale(1.12)}}@keyframes drift2{0%{transform:translate(0) scale(1)}to{transform:translate(-42px,-36px) scale(1.09)}}@keyframes drift3{0%{transform:translate(0)}to{transform:translate(-28px,32px)}}.splash--exit .splash__glow{opacity:0;transition:opacity .25s ease}.splash__scanline{position:absolute;inset:0 0 auto 0;top:50%;height:3px;transform:translateY(-50%);background:linear-gradient(90deg,transparent 0%,rgba(200,232,249,.7) 15%,rgba(255,255,255,.95) 50%,rgba(200,232,249,.7) 85%,transparent 100%);pointer-events:none;z-index:2;animation:scanline-flash .5s ease-out forwards}@keyframes scanline-flash{0%{opacity:0;transform:translateY(-50%) scaleX(.2)}18%{opacity:1;transform:translateY(-50%) scaleX(1)}75%{opacity:.5}to{opacity:0;transform:translateY(-50%) scaleX(1)}}.splash__reveal{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;clip-path:inset(49.7% 0 49.7% 0);animation:crt-expand .48s cubic-bezier(.16,1,.3,1) forwards}@keyframes crt-expand{0%{clip-path:inset(49.7% 0 49.7% 0)}to{clip-path:inset(0% 0 0% 0)}}.splash__body{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 32px;opacity:0;animation:body-appear .55s ease .38s both}@keyframes body-appear{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}.splash__title{font-family:-apple-system,Segoe UI,system-ui,sans-serif;font-size:clamp(28px,8.5vw,52px);font-weight:700;letter-spacing:-.025em;line-height:1.1;text-align:center;background:linear-gradient(90deg,#84c5ee,#84c5ee 12%,#b8dcf5 32%,#fff,#b8dcf5 68%,#84c5ee 88%,#84c5ee);background-size:400% 100%;background-position:100% center;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer-pass 2.4s cubic-bezier(.4,0,.2,1) .8s both}@keyframes shimmer-pass{0%{background-position:100% center}65%{background-position:0% center}to{background-position:0% center}}.splash__sub{font-family:-apple-system,Segoe UI,system-ui,sans-serif;font-size:clamp(12px,3.5vw,15px);color:#84c5ee85;font-weight:400;letter-spacing:.015em;text-align:center}.splash__footer{position:absolute;bottom:max(28px,env(safe-area-inset-bottom,28px));font-family:-apple-system,Segoe UI,system-ui,sans-serif;font-size:10.5px;color:#84c5ee42;letter-spacing:.07em;opacity:0;animation:body-appear .5s ease .95s both}.splash__skip{position:absolute;top:max(20px,env(safe-area-inset-top,20px));right:20px;font-family:-apple-system,Segoe UI,system-ui,sans-serif;font-size:12px;color:#84c5ee59;letter-spacing:.04em;opacity:0;animation:body-appear .5s ease 1.2s both}.splash--exit .splash__body,.splash--exit .splash__footer,.splash--exit .splash__skip{opacity:0;transition:opacity .28s ease}@media(prefers-reduced-motion:reduce){.splash{transition:opacity .3s ease}.splash__reveal{animation:none;clip-path:none}.splash__scanline{display:none}.splash__body{animation:none;opacity:1;transform:none}.splash__title{animation:none;background-position:50% center}.splash__footer,.splash__skip{animation:none;opacity:1}.splash__glow{animation:none}}
