*{box-sizing:border-box}:root{font-family:Inter,ui-rounded,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--cocoa);background:var(--cream)}body{margin:0;min-width:320px;background:linear-gradient(180deg,var(--cream),var(--background-end))}button,input,textarea,select{font:inherit}button{cursor:pointer}.app-shell{--cream: #fcf4e7;--background-end: #ffeeda;--card: #fffaf2;--field: #fff0dc;--clay: #9e422b;--cocoa: #3d241a;--sage: #526b47;--oat: #e5ccb0;--soft-orange: #f29e59;min-height:100vh;padding:max(18px,env(safe-area-inset-top)) 18px calc(96px + env(safe-area-inset-bottom));color:var(--cocoa);background:radial-gradient(circle at top left,color-mix(in srgb,var(--soft-orange) 18%,transparent),transparent 34rem),linear-gradient(180deg,var(--cream),var(--background-end))}.app-shell.loading{display:grid;place-items:center}.topbar,.section-title,.modal-actions,.button-row,.add-row,.timer-banner{display:flex;align-items:center;justify-content:space-between;gap:12px}.topbar{max-width:1100px;margin:0 auto 18px}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(2rem,7vw,4rem);line-height:.95}h2{margin-bottom:12px;font-size:clamp(1.65rem,6vw,3rem);letter-spacing:0}h3{margin-bottom:8px;font-size:1.25rem}.screen{max-width:1100px;margin:0 auto;display:grid;gap:16px}.hero,.card,.recipe-card,.feature-card,.modal{border:1px solid color-mix(in srgb,var(--clay) 15%,transparent);background:color-mix(in srgb,var(--card) 94%,transparent);box-shadow:0 14px 34px color-mix(in srgb,var(--cocoa) 10%,transparent);border-radius:24px}.hero{padding:22px}.date-line,.eyebrow,.muted{color:color-mix(in srgb,var(--cocoa) 66%,transparent)}.eyebrow{margin-bottom:6px;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.card{padding:18px}.feature-card,.recipe-card,.timeline-card,.theme-card{color:inherit;text-align:left}.feature-card{width:100%;display:grid;grid-template-columns:96px 1fr;gap:18px;padding:18px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.compact-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.rail{display:flex;gap:14px;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x proximity}.recipe-card{position:relative;min-width:232px;padding:14px;border-radius:20px;scroll-snap-align:start}.recipe-card-main{display:block;width:100%;border:0;padding:0;color:inherit;text-align:left;background:transparent}.card-share{position:absolute;z-index:3;top:22px;right:22px;border:1px solid color-mix(in srgb,var(--clay) 18%,transparent);border-radius:999px;padding:7px 10px;color:var(--clay);background:color-mix(in srgb,var(--card) 90%,transparent);font-size:.8rem;font-weight:850;box-shadow:0 8px 18px color-mix(in srgb,var(--cocoa) 9%,transparent)}.recipe-card.compact{min-width:0;min-height:210px}.recipe-card h3,.feature-card h3{display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.recipe-card p,.feature-card p{display:-webkit-box;overflow:hidden;min-height:2.7em;-webkit-line-clamp:2;-webkit-box-orient:vertical}.thumb{position:relative;isolation:isolate;overflow:hidden;width:100%;aspect-ratio:1.3 / 1;display:grid;place-items:center;margin-bottom:12px;border-radius:18px;color:var(--cocoa);background:radial-gradient(circle at 25% 20%,color-mix(in srgb,var(--card) 96%,transparent),transparent 35%),linear-gradient(135deg,color-mix(in srgb,var(--field) 84%,var(--card)),color-mix(in srgb,var(--soft-orange) 24%,var(--card)))}.recipe-card .thumb{aspect-ratio:1.55 / 1}.recipe-card.compact .thumb{aspect-ratio:1.8 / 1}.thumb:before{content:"";position:absolute;inset:auto -8% -26%;height:48%;border-radius:50% 50% 0 0;background:color-mix(in srgb,var(--sage) 18%,var(--card));opacity:.9}.thumb-emoji{position:relative;z-index:1;display:grid;place-items:center;width:62%;max-width:112px;aspect-ratio:1;border-radius:999px;font-size:clamp(2.35rem,10vw,4.8rem);line-height:1;background:color-mix(in srgb,var(--card) 66%,transparent);box-shadow:0 12px 24px color-mix(in srgb,var(--cocoa) 10%,transparent)}.thumb-label{position:absolute;z-index:2;left:12px;bottom:10px;max-width:calc(100% - 24px);overflow:hidden;color:color-mix(in srgb,var(--cocoa) 84%,transparent);font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.feature-card .thumb{aspect-ratio:1;margin:0}.pill-row{display:flex;flex-wrap:wrap;gap:8px}.pill-row.scroll{flex-wrap:nowrap;overflow-x:auto;padding-bottom:3px}.pill{border:1px solid color-mix(in srgb,var(--clay) 20%,transparent);border-radius:999px;padding:7px 11px;white-space:nowrap;color:var(--cocoa);background:color-mix(in srgb,var(--field) 72%,var(--card));font-weight:750}button.pill.selected,.segmented .active,.tabbar .active,.theme-card.selected{border-color:color-mix(in srgb,var(--clay) 52%,transparent);background:color-mix(in srgb,var(--clay) 14%,var(--card));color:var(--clay)}.timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.timeline-card{display:grid;gap:6px;min-height:92px;padding:13px;border:1px solid color-mix(in srgb,var(--sage) 18%,transparent);border-radius:18px;background:color-mix(in srgb,var(--field) 72%,var(--card))}.timeline-card.now{border-color:color-mix(in srgb,var(--soft-orange) 55%,transparent)}.today-plan-card{display:grid;gap:12px}.today-plan-row{display:grid;grid-template-columns:86px 1fr auto;gap:10px;align-items:center;border:1px solid color-mix(in srgb,var(--sage) 16%,transparent);border-radius:16px;padding:12px;color:inherit;text-align:left;background:color-mix(in srgb,var(--field) 72%,var(--card))}.today-plan-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.today-plan-row small{color:color-mix(in srgb,var(--cocoa) 64%,transparent);font-weight:850}.field{width:100%;border:1px solid color-mix(in srgb,var(--clay) 22%,transparent);border-radius:16px;padding:13px 14px;color:var(--cocoa);background:var(--field);outline-color:var(--clay)}.filter-card{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;align-items:end}.filter-check{min-height:48px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--clay) 14%,transparent);border-radius:16px;background:color-mix(in srgb,var(--field) 75%,var(--card));font-weight:800}.textarea{min-height:170px;resize:vertical}.textarea.short{min-height:96px}.small-button,.icon-button,.wide-action,.timer-button,.timer-action,.timer-banner-button,.danger-button,.link-button,.mini-danger{border:1px solid color-mix(in srgb,var(--clay) 25%,transparent);border-radius:16px;padding:11px 14px;color:var(--clay);background:color-mix(in srgb,var(--clay) 12%,var(--card));font-weight:800}button:disabled{cursor:default;opacity:.45}.wide-action{width:100%;margin-top:8px}.cooking-action{margin-top:14px;background:color-mix(in srgb,var(--soft-orange) 22%,var(--card))}.timer-button,.timer-action{width:auto;display:inline-flex;align-items:center;justify-content:center;gap:9px;white-space:nowrap;border-radius:999px;color:var(--clay);background:color-mix(in srgb,var(--soft-orange) 18%,var(--card));border-color:color-mix(in srgb,var(--soft-orange) 45%,transparent);box-shadow:0 8px 18px color-mix(in srgb,var(--cocoa) 8%,transparent)}.timer-action{grid-column:2;justify-self:start;margin-top:18px;padding:13px 17px;font-size:1rem}.timer-glyph{position:relative;width:21px;height:21px;flex:0 0 21px;border:3px solid currentColor;border-radius:50%}.timer-glyph:before,.timer-glyph:after{content:"";position:absolute;left:50%;top:50%;width:3px;border-radius:999px;background:currentColor;transform-origin:50% 0}.timer-glyph:before{height:7px;transform:translate(-50%,-1px) rotate(0)}.timer-glyph:after{height:6px;transform:translate(-50%,-1px) rotate(125deg)}.link-button{border:0;padding:4px 0;background:transparent}.danger-button,.mini-danger{color:#7d1d1d;background:#f6dddd}.file-button{position:relative;overflow:hidden}.file-button input{position:absolute;inset:0;opacity:0}.notice,.timer-banner{max-width:1100px;margin:0 auto 14px;padding:12px 14px;border-radius:18px;color:var(--cocoa);background:color-mix(in srgb,var(--soft-orange) 22%,var(--card));border:1px solid color-mix(in srgb,var(--soft-orange) 38%,transparent)}.app-notice{position:fixed;left:14px;right:14px;top:max(14px,env(safe-area-inset-top));z-index:80;max-width:680px;box-shadow:0 16px 36px color-mix(in srgb,var(--cocoa) 18%,transparent);cursor:pointer}.timer-banner{position:fixed;left:14px;right:14px;bottom:calc(86px + env(safe-area-inset-bottom));z-index:60;justify-content:flex-start;gap:12px;max-width:680px;margin:0 auto;background:color-mix(in srgb,var(--card) 94%,var(--soft-orange));box-shadow:0 18px 42px color-mix(in srgb,var(--cocoa) 22%,transparent)}.timer-banner-done{background:color-mix(in srgb,var(--sage) 18%,var(--card));border-color:color-mix(in srgb,var(--sage) 36%,transparent)}.timer-banner strong{font-size:1.5rem;font-variant-numeric:tabular-nums}.timer-banner .timer-glyph{color:var(--clay)}.timer-banner span:not(.timer-glyph){min-width:0;overflow:hidden;flex:1;text-overflow:ellipsis;white-space:nowrap}.timer-banner-button{flex:0 0 auto;padding:9px 12px;border-radius:999px;background:var(--card)}.timer-banner-button.optional{background:color-mix(in srgb,var(--field) 70%,var(--card))}.tabbar{position:fixed;left:16px;right:16px;bottom:max(12px,env(safe-area-inset-bottom));z-index:10;display:grid;grid-template-columns:repeat(5,1fr);gap:6px;max-width:680px;margin:0 auto;padding:8px;border-radius:28px;background:color-mix(in srgb,var(--card) 94%,transparent);box-shadow:0 16px 34px color-mix(in srgb,var(--cocoa) 18%,transparent)}.tabbar button{border:0;border-radius:20px;padding:11px 6px;color:var(--cocoa);background:transparent;font-weight:850}.jump-top{position:fixed;right:18px;bottom:calc(92px + env(safe-area-inset-bottom));z-index:12;border:1px solid color-mix(in srgb,var(--clay) 24%,transparent);border-radius:999px;padding:11px 14px;color:var(--clay);background:color-mix(in srgb,var(--card) 94%,var(--field));box-shadow:0 12px 28px color-mix(in srgb,var(--cocoa) 14%,transparent);font-weight:900}.modal-backdrop{position:fixed;inset:0;z-index:20;overflow:auto;padding:max(14px,env(safe-area-inset-top)) 14px max(90px,env(safe-area-inset-bottom));background:radial-gradient(circle at top left,color-mix(in srgb,var(--soft-orange) 22%,transparent),transparent 30rem),linear-gradient(180deg,color-mix(in srgb,var(--cream) 88%,transparent),color-mix(in srgb,var(--background-end) 88%,transparent));backdrop-filter:blur(10px) saturate(.96)}.modal{max-width:820px;margin:0 auto;padding:18px;display:grid;gap:14px;background:var(--card)}.sticky-actions{position:sticky;top:calc(-18px + env(safe-area-inset-top));z-index:6;margin:-18px -18px 0;padding:14px 18px;border-bottom:1px solid color-mix(in srgb,var(--clay) 12%,transparent);border-radius:24px 24px 0 0;background:color-mix(in srgb,var(--card) 96%,var(--field));box-shadow:0 12px 24px color-mix(in srgb,var(--cocoa) 8%,transparent)}.recipe-hero-card{padding:18px;border-radius:24px;background:linear-gradient(135deg,color-mix(in srgb,var(--field) 82%,var(--card)),var(--card))}.recipe-hero-card .thumb{max-width:180px;aspect-ratio:1.35 / 1}.onboarding-backdrop{z-index:40;display:grid;align-items:start;scroll-padding-top:max(14px,env(safe-area-inset-top))}.onboarding-card{max-width:760px;gap:18px;margin-top:clamp(12px,5vh,48px);margin-bottom:24px}.onboarding-card h2{margin-bottom:8px}.onboarding-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.onboarding-points div{display:grid;gap:6px;padding:14px;border:1px solid color-mix(in srgb,var(--clay) 14%,transparent);border-radius:18px;background:var(--field)}.onboarding-points span{color:color-mix(in srgb,var(--cocoa) 68%,transparent)}.install-guide{padding:16px;border:1px solid color-mix(in srgb,var(--sage) 18%,transparent);border-radius:20px;background:color-mix(in srgb,var(--field) 72%,var(--card))}.install-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.install-steps strong{display:block;margin-bottom:6px}.install-steps .instructions{margin:0}.ai-modal,.import-modal,.cooking-mode{max-width:720px}.prompt-box{min-height:240px}.steps-card li+li{margin-top:8px}.cooking-backdrop{background:radial-gradient(circle at top,color-mix(in srgb,var(--soft-orange) 22%,transparent),transparent 42%),linear-gradient(180deg,color-mix(in srgb,var(--cream) 88%,transparent),color-mix(in srgb,var(--background-end) 88%,transparent))}.cooking-mode{min-height:min(780px,calc(100vh - 32px))}.cook-progress{overflow:hidden;height:10px;border-radius:999px;background:var(--field)}.cook-progress span{display:block;height:100%;border-radius:inherit;background:var(--soft-orange);transition:width .18s ease}.cook-header{display:grid;grid-template-columns:112px 1fr;gap:16px;align-items:center}.cook-header .thumb{margin:0;aspect-ratio:1}.cook-step-card{display:grid;grid-template-columns:54px 1fr;gap:16px;align-items:start;padding:clamp(20px,5vw,34px);border-radius:26px;background:color-mix(in srgb,var(--field) 76%,var(--card));border:1px solid color-mix(in srgb,var(--clay) 18%,transparent)}.cook-step-card p{font-size:clamp(1.25rem,4vw,2rem);line-height:1.22;font-weight:800}.cook-exit-hint{margin:0;padding:10px 12px;border:1px solid color-mix(in srgb,var(--soft-orange) 42%,transparent);border-radius:14px;color:var(--clay);background:color-mix(in srgb,var(--soft-orange) 16%,var(--card));font-weight:800}.step-number.large{width:54px;height:54px;font-size:1.35rem}details.card summary{cursor:pointer;font-weight:900}.segmented{display:flex;gap:8px;flex-wrap:wrap}.segmented button{min-width:64px;border:1px solid color-mix(in srgb,var(--clay) 18%,transparent);border-radius:999px;padding:10px 13px;color:var(--cocoa);background:var(--field);font-weight:850}.shop-row,.check-row{display:flex;align-items:center;gap:12px}.shop-row{justify-content:space-between;padding:10px 0;border-bottom:1px solid color-mix(in srgb,var(--oat) 35%,transparent)}.check-row{min-width:0;flex:1}.shop-row.checked .check-row{opacity:.56;text-decoration:line-through}.check-row span{min-width:0;overflow-wrap:anywhere}.check-row input{width:22px;height:22px;accent-color:var(--clay)}.step-row{display:grid;grid-template-columns:34px 1fr;gap:12px;padding:12px 0}.step-number{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;color:var(--clay);background:color-mix(in srgb,var(--clay) 14%,var(--card));font-weight:900}.nutrition-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px}.nutrition-grid div{padding:13px;border-radius:16px;background:var(--field)}.nutrition-grid strong,.nutrition-grid span{display:block}.heart-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0}.heart-row button{border:0;padding:4px;color:color-mix(in srgb,var(--clay) 32%,transparent);background:transparent;font-size:1.4rem}.heart-row button.filled{color:var(--clay)}.editor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.theme-card{display:flex;align-items:center;justify-content:space-between;gap:10px;border-radius:18px;padding:14px;border:1px solid color-mix(in srgb,var(--clay) 18%,transparent);background:var(--card);font-weight:850}.swatches{display:flex;gap:4px}.swatches i{display:block;width:18px;height:18px;border-radius:50%;background:var(--clay)}.swatches i:nth-child(2){background:var(--sage)}.swatches i:nth-child(3){background:var(--soft-orange)}.instructions{padding-left:22px}@media(max-width:720px){.app-shell{padding-left:12px;padding-right:12px}.topbar{align-items:flex-start}.feature-card{grid-template-columns:74px 1fr}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.recipe-card{min-width:178px;padding:10px;border-radius:18px}.recipe-card h3{margin-bottom:5px;font-size:1rem;line-height:1.08}.recipe-card p{min-height:2.35em;font-size:.88rem;line-height:1.18}.recipe-card .thumb{margin-bottom:8px;border-radius:14px;aspect-ratio:1.75 / 1}.thumb-emoji{max-width:74px;font-size:clamp(2rem,10vw,3.4rem)}.thumb-label{left:9px;bottom:8px;font-size:.58rem}.card-share{top:14px;right:14px;padding:6px 8px;font-size:.72rem}.timeline{grid-template-columns:repeat(2,minmax(0,1fr))}.today-plan-row{grid-template-columns:72px 1fr auto}.onboarding-points,.install-steps{grid-template-columns:1fr}.tabbar{left:8px;right:8px}.tabbar button{font-size:.82rem}.timer-banner{left:8px;right:8px;bottom:calc(82px + env(safe-area-inset-bottom));gap:8px}.timer-banner strong{font-size:1.25rem}.timer-banner-button{padding:8px 10px}.timer-banner-button.optional{display:none}.jump-top{right:10px;bottom:calc(86px + env(safe-area-inset-bottom))}}
