:root{color:#193d35;background:#f3efe5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #193d35;--ink-soft: #557068;--paper: #f3efe5;--surface: #fffdf7;--line: #d5d5c7;--lime: #dff174;--coral: #f06b4f;--mint: #cce3d9;--shadow: 0 22px 60px rgba(35, 54, 47, .12)}*{box-sizing:border-box}html{background:var(--paper);scroll-behavior:smooth}body{min-width:320px;min-height:100vh;margin:0;background:linear-gradient(rgba(25,61,53,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(25,61,53,.045) 1px,transparent 1px),var(--paper);background-size:32px 32px}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--coral);outline-offset:3px}h1,h2,p,dl,dd{margin:0}h1,h2,.day-view__date strong,.timer-card output{font-family:Georgia,Times New Roman,serif;font-weight:600;letter-spacing:-.04em}.app-shell{min-height:100vh}.screen{width:min(1240px,calc(100% - 48px));min-height:100vh;margin:0 auto;padding:40px 0 150px}.eyebrow{color:var(--ink-soft);font-size:.74rem;font-weight:800;letter-spacing:.14em;line-height:1.4}.day-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:36px;align-items:start}.day-rail{position:sticky;top:32px}.week-context{padding:4px 6px 28px;border-bottom:1px solid var(--line)}.week-context span{display:block;color:var(--coral);font-size:.69rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.week-context p{margin-top:8px;color:var(--ink-soft);font-size:.86rem}.day-picker{display:grid;border-bottom:1px solid var(--line)}.day-picker button{display:grid;grid-template-columns:26px 1fr auto;gap:10px;align-items:center;min-height:76px;padding:13px 6px;border:0;border-top:1px solid var(--line);background:transparent;cursor:pointer;text-align:left;transition:background .16s ease,padding .16s ease}.day-picker button:first-child{border-top:0}.day-picker button:hover{background:#fffdf794;padding-left:12px}.day-picker button.is-selected{padding-right:12px;padding-left:12px;background:var(--ink);color:#fff}.day-picker__order{color:var(--ink-soft);font-size:.66rem;font-weight:800}.is-selected .day-picker__order{color:var(--lime)}.day-picker__label{display:grid;gap:2px}.day-picker__label strong{font-size:.95rem}.day-picker__label small{color:var(--ink-soft);font-size:.72rem}.is-selected .day-picker__label small{color:#bed0ca}.day-picker b{font-family:Georgia,Times New Roman,serif;font-size:1.6rem;font-weight:500}.day-view{display:grid;grid-template-columns:116px minmax(0,1fr);column-gap:30px;align-items:start}.day-view__date{display:grid;justify-items:center;padding:17px 14px 14px;border:1px solid var(--ink);background:var(--lime);box-shadow:7px 7px 0 var(--ink)}.day-view__date strong{font-size:clamp(3.6rem,7vw,5.4rem);line-height:.85}.day-view__date span{margin-top:8px;font-size:.75rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.day-view__copy{padding:12px 0 34px;border-bottom:1px solid var(--line)}.day-view__copy h1,.utility-view__intro h1{max-width:760px;margin-top:8px;font-size:clamp(3rem,7vw,6.5rem);line-height:.9}.day-view__copy>p:last-child{max-width:710px;margin-top:22px;color:var(--ink-soft);font-size:1.06rem;line-height:1.7}.timing-note{grid-column:2;display:grid;grid-template-columns:42px 1fr;gap:14px;align-items:center;margin:22px 0 34px;padding:15px 18px;border-left:4px solid var(--ink);background:var(--mint)}.timing-note>span{display:grid;width:40px;height:40px;place-items:center;border:1px solid var(--ink);background:var(--surface);font-size:1.2rem}.timing-note--training{background:#f5c1b4}.timing-note strong{font-size:.88rem}.timing-note p{margin-top:3px;color:var(--ink);font-size:.84rem;line-height:1.4}.recipe-panel,.batch-callout{grid-column:1 / -1;overflow:hidden;border:1px solid var(--ink);background:var(--surface);box-shadow:var(--shadow)}.recipe-panel__intro{display:flex;gap:30px;align-items:start;justify-content:space-between;padding:36px 38px 18px}.recipe-panel__intro h2,.batch-callout h2,.storage-section h2{max-width:720px;margin-top:8px;font-size:clamp(2rem,5vw,3.9rem);line-height:1}.recipe-panel__meta{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.recipe-panel__meta span{padding:7px 10px;border:1px solid var(--ink);background:var(--paper);font-size:.72rem;font-weight:800;text-transform:uppercase}.recipe-panel__description{max-width:700px;padding:0 38px 30px;color:var(--ink-soft);line-height:1.65}.macro-summary{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.macro-summary>div{padding:20px 24px;border-right:1px solid var(--ink)}.macro-summary>div:last-child{border-right:0}.macro-summary__protein{background:var(--lime)}.macro-summary dt{margin-bottom:8px;color:var(--ink-soft);font-size:.68rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.macro-summary dd{font-family:Georgia,Times New Roman,serif;font-size:clamp(1.8rem,3vw,2.5rem);line-height:1}.macro-summary dd span{margin-left:4px;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.7rem;font-weight:800;letter-spacing:.05em}.recipe-panel__details{display:grid;grid-template-columns:repeat(3,1fr)}.recipe-panel__details details{border-right:1px solid var(--line)}.recipe-panel__details details:last-child{border-right:0}.recipe-panel__details summary{padding:19px 24px;border-bottom:1px solid transparent;cursor:pointer;font-weight:900;list-style-position:inside}.recipe-panel__details details[open] summary{border-bottom-color:var(--line)}.ingredient-list,.recipe-steps{margin:0;padding:16px 24px 26px}.ingredient-list{list-style:none}.ingredient-list li{display:grid;grid-template-columns:65px 1fr;gap:10px;padding:9px 0;border-bottom:1px dotted var(--line);font-size:.84rem}.ingredient-list li:last-child{border-bottom:0}.recipe-steps{padding-left:44px}.recipe-steps li{padding:6px 0 6px 5px;color:var(--ink-soft);font-size:.84rem;line-height:1.5}.detail-copy{padding:20px 24px 28px;color:var(--ink-soft);font-size:.88rem;line-height:1.6}.batch-callout{padding:42px;background:var(--lime)}.batch-callout .eyebrow{color:var(--ink)}.batch-callout p:not(.eyebrow){max-width:680px;margin-top:18px;line-height:1.6}.batch-callout button{margin-top:26px;padding:14px 18px;border:1px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;font-weight:800}.batch-callout button span{margin-left:12px}.app-navigation{position:fixed;z-index:20;bottom:20px;left:50%;display:grid;grid-template-columns:repeat(3,minmax(120px,180px));padding:6px;border:1px solid var(--ink);background:var(--surface);box-shadow:0 12px 40px #193d3538;transform:translate(-50%)}.app-navigation button{display:flex;gap:10px;align-items:center;justify-content:center;min-height:48px;padding:8px 14px;border:0;background:transparent;cursor:pointer;font-size:.8rem;font-weight:850}.app-navigation button+button{border-left:1px solid var(--line)}.app-navigation button.is-active{background:var(--ink);color:#fff}.app-navigation button span{color:#a93b28;font-size:.68rem;font-weight:900;letter-spacing:.04em}.app-navigation button.is-active span{color:var(--lime)}.utility-view{max-width:1080px;margin:0 auto}.utility-view__intro{display:flex;gap:36px;align-items:end;justify-content:space-between;padding-bottom:38px;border-bottom:1px solid var(--ink)}.utility-view__intro>div>p:last-child{max-width:580px;margin-top:20px;color:var(--ink-soft);line-height:1.6}.text-action{flex:0 0 auto;padding:10px 0;border:0;border-bottom:1px solid var(--ink);background:transparent;cursor:pointer;font-size:.8rem;font-weight:900}.sync-error{margin-top:18px;padding:12px 14px;border:1px solid #a93b28;background:#f7d7ce;color:#72291d;font-size:.82rem;font-weight:800}.shopping-progress{display:grid;grid-template-columns:135px 1fr;gap:30px;align-items:center;margin:28px 0;padding:22px 24px;border:1px solid var(--ink);background:var(--lime)}.shopping-progress>div:first-child{display:grid}.shopping-progress strong{font-family:Georgia,Times New Roman,serif;font-size:2rem;line-height:1}.shopping-progress span{font-size:.73rem;font-weight:800}.shopping-progress>div:last-child{height:8px;border:1px solid var(--ink);background:var(--surface)}.shopping-progress>div:last-child span{display:block;height:100%;background:var(--ink);transition:width .2s ease}.shopping-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.shopping-group{border:1px solid var(--ink);background:var(--surface)}.shopping-group__title{display:flex;align-items:center;justify-content:space-between;min-height:66px;padding:14px 18px;border-bottom:1px solid var(--ink)}.shopping-group__title h2{font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.9rem;font-weight:900;letter-spacing:0}.shopping-group__title span{display:grid;width:28px;height:28px;place-items:center;border:1px solid var(--ink);background:var(--paper);font-size:.72rem;font-weight:900}.shopping-item{display:grid;grid-template-columns:20px 1fr;gap:11px;align-items:start;padding:13px 17px;border-bottom:1px solid var(--line);cursor:pointer;font-size:.84rem;line-height:1.4}.shopping-item:last-child{border-bottom:0}.shopping-item input,.prep-step input{width:18px;height:18px;margin:0;accent-color:var(--ink)}.shopping-item.is-checked{background:#edf1e9;color:#819089}.shopping-item.is-checked>span{text-decoration:line-through}.prep-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;margin-top:30px;align-items:start}.prep-list{border-top:1px solid var(--ink)}.prep-step{display:grid;grid-template-columns:90px 20px 1fr;gap:16px;align-items:start;min-height:88px;padding:18px 12px;border-bottom:1px solid var(--line);cursor:pointer}.prep-step time{color:var(--coral);font-size:.74rem;font-weight:900}.prep-step>span{display:grid;gap:5px}.prep-step strong{font-size:.9rem}.prep-step small{color:var(--ink-soft);font-size:.82rem;line-height:1.5}.prep-step.is-done{opacity:.52}.prep-step.is-done strong,.prep-step.is-done small{text-decoration:line-through}.timer-card{position:sticky;top:28px;padding:25px;border:1px solid var(--ink);background:var(--ink);color:#fff;box-shadow:8px 8px 0 var(--lime)}.timer-card .eyebrow{color:var(--lime)}.timer-card output{display:block;margin-top:14px;font-size:4rem;line-height:1}.timer-card__progress{height:7px;margin-top:22px;background:#46685f}.timer-card__progress span{display:block;height:100%;background:var(--lime);transition:width .2s linear}.timer-card__actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.timer-card__actions button{min-height:42px;border:1px solid white;background:#fff;cursor:pointer;font-size:.76rem;font-weight:900}.timer-card__actions button:last-child{background:transparent;color:#fff}.timer-card>p:last-child{margin-top:16px;color:#bcd0ca;font-size:.75rem;line-height:1.5}.storage-section{margin-top:70px;padding-top:28px;border-top:1px solid var(--ink)}.storage-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:26px;border:1px solid var(--ink);background:var(--surface)}.storage-grid article{min-height:160px;padding:20px;border-right:1px solid var(--ink)}.storage-grid article:last-child{border-right:0}.storage-grid span{display:block;color:var(--coral);font-size:.7rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.storage-grid strong{display:block;margin-top:20px;font-family:Georgia,Times New Roman,serif;font-size:1.5rem}.storage-grid p{margin-top:9px;color:var(--ink-soft);font-size:.78rem;line-height:1.5}.center-state{display:grid;min-height:100vh;place-content:center;justify-items:center;gap:18px;padding:30px;text-align:center}.center-state button{padding:10px 16px;border:1px solid var(--ink);background:var(--lime);cursor:pointer;font-weight:900}.loading-mark{width:38px;height:38px;border:4px solid var(--line);border-top-color:var(--coral);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:900px){.screen{width:min(100% - 32px,760px);padding-top:24px}.day-layout{display:block}.day-rail{position:static;margin-bottom:30px}.week-context{display:flex;justify-content:space-between;padding:0 0 16px}.week-context p{margin:0}.day-picker{grid-template-columns:repeat(5,minmax(108px,1fr));overflow-x:auto;border-bottom:0}.day-picker button,.day-picker button:first-child{grid-template-columns:1fr auto;min-height:84px;border-top:1px solid var(--line);border-right:1px solid var(--line)}.day-picker__order{display:none}.recipe-panel__details{grid-template-columns:1fr}.recipe-panel__details details{border-right:0;border-bottom:1px solid var(--line)}.recipe-panel__details details:last-child{border-bottom:0}.shopping-groups{grid-template-columns:1fr 1fr}.shopping-group:last-child{grid-column:1 / -1}}@media(max-width:640px){body{background-size:24px 24px}.screen{width:min(100% - 24px,520px);padding-top:18px;padding-bottom:125px}.week-context{display:grid;gap:5px}.day-picker{margin-right:-12px;padding-right:12px}.day-view{grid-template-columns:74px minmax(0,1fr);column-gap:18px}.day-view__date{padding:13px 8px 11px;box-shadow:5px 5px 0 var(--ink)}.day-view__date strong{font-size:3.2rem}.day-view__copy{padding-top:2px;padding-bottom:24px}.day-view__copy h1,.utility-view__intro h1{font-size:clamp(2.6rem,14vw,4.4rem)}.day-view__copy>p:last-child{grid-column:1 / -1;margin-top:16px;font-size:.92rem}.timing-note{grid-column:1 / -1;margin:18px 0 24px}.recipe-panel__intro{display:grid;padding:26px 22px 14px}.recipe-panel__meta{justify-content:flex-start}.recipe-panel__description{padding:0 22px 24px}.macro-summary{grid-template-columns:1fr 1fr}.macro-summary>div:nth-child(2){border-right:0}.macro-summary>div:nth-child(-n+2){border-bottom:1px solid var(--ink)}.macro-summary>div{padding:17px}.batch-callout{padding:28px 22px}.app-navigation{bottom:10px;width:calc(100% - 20px);grid-template-columns:repeat(3,1fr)}.app-navigation button{display:grid;gap:2px;min-height:48px;padding:5px;font-size:.7rem}.utility-view__intro{display:grid;gap:18px;padding-top:12px}.text-action{justify-self:start}.shopping-progress{grid-template-columns:95px 1fr;gap:14px;padding:17px}.shopping-groups,.prep-layout,.storage-grid{grid-template-columns:1fr}.shopping-group:last-child{grid-column:auto}.prep-step{grid-template-columns:70px 18px 1fr;gap:10px;padding-right:2px;padding-left:2px}.timer-card{position:static}.storage-grid article,.storage-grid article:last-child{min-height:0;border-right:0;border-bottom:1px solid var(--ink)}.storage-grid article:last-child{border-bottom:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
