@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,500&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&display=swap";:root{--cream:#f7f3ea;--cream-dark:#ede6d8;--sage:#3d5c4a;--sage-soft:#5a7a66;--sage-mist:#d8e4dc;--terracotta:#c4785a;--terracotta-soft:#e8c4b4;--clay:#d4a574;--clay-soft:#f0e0cc;--ink:#1c2420;--ink-muted:#4a564f;--gold:#b8954a;--gold-soft:#f0e6c8;--white:#fffcf7;--shadow:0 4px 24px #1c242014;--shadow-sm:0 2px 10px #1c24200f;--radius:18px;--radius-sm:12px;--nav-h:64px;--font-display:"Cormorant Garamond", Georgia, serif;--font-ui:"DM Sans", system-ui, sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;max-width:100%;font-size:16px;overflow-x:clip}body{font-family:var(--font-ui);background:var(--cream);color:var(--ink);background-image:radial-gradient(at 20% 0,#3d5c4a0f,#0000 50%),radial-gradient(at 90% 20%,#c4785a0d,#0000 45%),url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");max-width:100%;min-height:100svh;line-height:1.5;overflow-x:clip}#root{flex-direction:column;max-width:100%;min-height:100dvh;display:flex;overflow-x:clip}h1,h2,h3,.display{font-family:var(--font-display);letter-spacing:-.01em;font-weight:600;line-height:1.2}button{cursor:pointer;color:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:none;font-family:inherit}input[type=time]{font-family:var(--font-ui);border:1.5px solid var(--sage-mist);background:var(--white);width:0;min-width:0;max-width:100%;min-height:44px;color:var(--ink);border-radius:10px;flex:1 1 0;padding:.5rem .45rem;font-size:16px}.app-shell{width:100%;min-width:0;max-width:720px;min-height:100svh;padding-bottom:calc(var(--nav-h) + 1.25rem + env(safe-area-inset-bottom,0px));padding-left:max(.75rem, env(safe-area-inset-left,0px));padding-right:max(.75rem, env(safe-area-inset-right,0px));flex-direction:column;flex:1;margin:0 auto;display:flex;overflow-x:clip}.app-header{padding:.75rem 1rem .35rem;padding-top:max(.75rem, env(safe-area-inset-top,0px));justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.app-header h1{color:var(--sage);font-size:1.35rem}.app-header .subtitle{color:var(--ink-muted);margin-top:.1rem;font-size:.72rem;font-weight:400}.main-content{flex:1;min-width:0;max-width:100%;padding:.5rem 0 1.25rem;overflow-x:clip}.card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid #3d5c4a0f;padding:1.15rem 1.2rem}.card+.card{margin-top:.85rem}.card-title{font-family:var(--font-display);color:var(--sage);margin-bottom:.65rem;font-size:1.25rem}.badge{letter-spacing:.04em;text-transform:uppercase;border-radius:999px;align-items:center;gap:.3rem;padding:.25rem .65rem;font-size:.7rem;font-weight:600;display:inline-flex}.badge-prep{background:var(--sage-mist);color:var(--sage)}.badge-flush{background:var(--terracotta-soft);color:#8b4a32}.badge-wean{background:var(--gold-soft);color:#7a6320}.day-strip{scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x pan-y;gap:.45rem;min-width:0;max-width:100%;padding:.4rem .15rem .75rem;display:flex;overflow:auto hidden}.day-strip::-webkit-scrollbar{display:none}.day-btn{background:var(--cream-dark);width:44px;min-width:44px;height:44px;min-height:44px;color:var(--ink-muted);scroll-snap-align:center;touch-action:manipulation;border:2px solid #0000;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:.8rem;font-weight:600;transition:transform .2s,box-shadow .2s,background .2s;display:flex;position:relative}.day-btn.flush-ring{border-color:var(--terracotta)}.day-btn.wean-ring{border-color:var(--gold)}.day-btn.current{background:var(--sage);width:48px;height:48px;color:var(--cream);font-size:.95rem;transform:scale(1.05);box-shadow:0 4px 14px #3d5c4a59}.day-btn.current.flush-ring{background:var(--terracotta);box-shadow:0 4px 14px #c4785a66}.day-btn.current.wean-ring{background:var(--gold);color:var(--ink);box-shadow:0 4px 14px #b8954a66}.day-btn.done:not(.current){background:var(--sage-mist);color:var(--sage)}.day-btn .check-dot{background:var(--sage);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;font-size:8px;display:flex;position:absolute;bottom:-2px;right:-2px}.progress-ring-wrap{flex-shrink:0;width:72px;height:72px;position:relative}.progress-ring-wrap svg{transform:rotate(-90deg)}.progress-ring-label{color:var(--sage);flex-direction:column;justify-content:center;align-items:center;font-size:.95rem;font-weight:600;display:flex;position:absolute;inset:0}.progress-ring-label span{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.55rem;font-weight:500}.block{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid #3d5c4a0d;grid-template-columns:64px 1fr;gap:.85rem;margin-bottom:.75rem;padding:1rem;display:grid}.block-icon{background:var(--sage-mist);width:64px;height:64px;color:var(--sage);border-radius:16px;justify-content:center;align-items:center;display:flex}.block.flush-accent .block-icon{background:var(--terracotta-soft);color:var(--terracotta)}.block-meta{justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.5rem;display:flex}.block-meta h3{color:var(--ink);font-size:1.15rem}.block-meta .hint{color:var(--ink-muted);font-size:.7rem;font-weight:500}.block-body{flex:1;min-width:0}.item-row{touch-action:manipulation;-webkit-tap-highlight-color:transparent;text-align:left;border-top:1px solid #3d5c4a0f;align-items:center;gap:.75rem;width:100%;min-height:48px;padding:.7rem .1rem;display:flex}.item-row:first-of-type{border-top:none}.item-copy{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.check{border:2px solid var(--sage-soft);color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-self:center;align-items:center;width:26px;height:26px;margin-left:auto;transition:background .15s,border-color .15s;display:flex}.check.on{background:var(--sage);border-color:var(--sage)}.item-row.done .item-label{opacity:.55;text-decoration:line-through}.item-label{color:var(--ink);font-size:.92rem;font-weight:500;line-height:1.3;display:block}.item-detail{overflow-wrap:anywhere;word-break:break-word;color:var(--ink-muted);font-size:.74rem;line-height:1.4;display:block}.flush-timeline{background:linear-gradient(180deg, #fdf6f2 0%, var(--white) 100%);border-radius:var(--radius);border:1.5px solid var(--terracotta-soft);box-shadow:var(--shadow-sm);margin-bottom:.75rem;padding:1.25rem 1.1rem 1.1rem}.flush-timeline-header{align-items:center;gap:.65rem;margin-bottom:1.1rem;display:flex}.flush-timeline-header h3{color:var(--terracotta);font-size:1.3rem}.timeline{padding-left:1.1rem;position:relative}.timeline:before{content:"";background:linear-gradient(180deg, var(--terracotta), var(--clay), var(--sage));border-radius:3px;width:3px;position:absolute;top:8px;bottom:8px;left:7px}.timeline-step{padding:0 0 1.35rem 1.5rem;position:relative}.timeline-step:last-child{padding-bottom:.25rem}.timeline-dot{background:var(--white);border:3px solid var(--terracotta);width:18px;height:18px;box-shadow:0 0 0 4px var(--terracotta-soft);z-index:1;border-radius:50%;position:absolute;top:4px;left:-1.1rem}.timeline-step:nth-child(2) .timeline-dot{border-color:#c4895a}.timeline-step:nth-child(3) .timeline-dot{border-color:var(--clay)}.timeline-step:nth-child(4) .timeline-dot{border-color:var(--sage);box-shadow:0 0 0 4px var(--sage-mist)}.timeline-clock{letter-spacing:.06em;text-transform:uppercase;color:var(--terracotta);margin-bottom:.2rem;font-size:.7rem;font-weight:700}.timeline-title-row{align-items:center;gap:.45rem;margin-bottom:.35rem;display:flex}.timeline-title-row h4{font-family:var(--font-display);color:var(--ink);font-size:1.15rem}.timeline-details{flex-direction:column;gap:.3rem;list-style:none;display:flex}.timeline-details li{color:var(--ink-muted);background:#f7f3eacc;border-radius:8px;padding:.35rem .55rem;font-size:.78rem;line-height:1.4}.callout{background:linear-gradient(135deg, var(--gold-soft), #f8f0dc);border:1.5px solid var(--clay);border-radius:var(--radius);align-items:flex-start;gap:.85rem;margin-bottom:.85rem;padding:1.1rem 1.15rem;display:flex}.callout-icon{color:#7a6320;background:#b8954a40;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.callout h3{color:#6b5420;margin-bottom:.35rem;font-size:1.15rem}.window-card{background:var(--sage-mist);border-radius:var(--radius-sm);flex-direction:column;align-items:stretch;gap:.65rem;min-width:0;max-width:100%;margin-bottom:.85rem;padding:.8rem .85rem;display:flex;overflow:hidden}.window-card-top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.window-card label{color:var(--sage);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:600}.window-summary{color:var(--ink);font-size:.8rem;font-weight:500}.window-times{flex-direction:column;align-items:stretch;gap:.45rem;width:100%;min-width:0;display:flex}.window-to{color:var(--ink-muted);text-align:center;font-size:.75rem;font-weight:500;display:none}.ampm-group{background:var(--white);border:1.5px solid #3d5c4a1f;border-radius:12px;align-items:center;gap:.25rem;width:100%;min-width:0;min-height:48px;padding:.25rem .4rem;display:flex}.ampm-select{appearance:none;font-family:var(--font-ui);color:var(--ink);text-align:center;background:0 0;border:none;flex:1;min-width:0;min-height:44px;padding:.45rem .2rem;font-size:16px;font-weight:500}.ampm-period{color:var(--sage);flex:0 0 3.2rem;font-weight:600}.ampm-colon{color:var(--ink-muted);flex:none;font-weight:600}.tab-nav{min-height:var(--nav-h);-webkit-backdrop-filter:blur(12px);z-index:50;padding:0;padding-bottom:env(safe-area-inset-bottom,0px);background:#fffcf7f0;border-top:1px solid #3d5c4a1a;justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tab-nav-inner{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scroll-snap-type:x proximity;justify-content:flex-start;align-items:stretch;width:100%;max-width:720px;padding:.15rem .2rem .2rem;display:flex;overflow:auto hidden}.tab-nav-inner::-webkit-scrollbar{display:none}.tab-btn{color:var(--ink-muted);touch-action:manipulation;-webkit-tap-highlight-color:transparent;scroll-snap-align:center;white-space:nowrap;flex-direction:column;flex:1 0 auto;justify-content:center;align-items:center;gap:.12rem;min-width:48px;min-height:48px;padding:.35rem;font-size:.58rem;font-weight:500;line-height:1.1;transition:color .15s;display:flex}.tab-btn svg{flex-shrink:0;width:20px;height:20px}.tab-btn.active{color:var(--sage);font-weight:600}.tab-btn.active svg{transform:translateY(-1px)}@media (width>=400px){.tab-btn{flex:1 1 0;min-width:0;font-size:.62rem}}.cycle-diagram{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.25rem;overflow-x:auto}.cycle-row{flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.85rem;display:flex}.cycle-label{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-muted);flex-shrink:0;width:70px;font-size:.7rem;font-weight:700}.cycle-pill{border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:.75rem;font-weight:700;display:flex}.cycle-pill.prep{background:var(--sage-mist);color:var(--sage)}.cycle-pill.flush{background:var(--terracotta-soft);color:#8b4a32;border:2px solid var(--terracotta)}.cycle-pill.wean{background:var(--gold-soft);color:#7a6320;border:2px solid var(--gold)}.cycle-arrow{color:var(--ink-muted);opacity:.4;font-size:.9rem}.prep-list{flex-direction:column;gap:.45rem;display:flex}.prep-item{background:var(--white);border-radius:var(--radius-sm);min-height:48px;box-shadow:var(--shadow-sm);text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:1px solid #0000;align-items:center;gap:.75rem;width:100%;padding:.75rem .9rem;transition:border-color .15s;display:flex}.prep-item.checked{border-color:var(--sage-mist);opacity:.7}.prep-item.checked .prep-label{text-decoration:line-through}.prep-emoji{text-align:center;width:2rem;font-size:1.35rem}.prep-label{flex:1;font-size:.9rem;font-weight:500}.kit-grid{grid-template-columns:repeat(2,1fr);gap:.65rem;display:grid}.kit-card{background:var(--white);border-radius:var(--radius-sm);text-align:center;box-shadow:var(--shadow-sm);padding:1rem .85rem}.kit-card .emoji{margin-bottom:.4rem;font-size:1.75rem;display:block}.kit-card .name{color:var(--ink);font-size:.82rem;font-weight:600}.practice-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid #3d5c4a0d;margin-bottom:.75rem;padding:1.1rem}.practice-head{cursor:pointer;text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent;align-items:flex-start;gap:.85rem;width:100%;min-height:44px;display:flex}.practice-icon{background:var(--sage-mist);width:56px;height:56px;color:var(--sage);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.practice-head h3{color:var(--ink);font-size:1.2rem}.practice-summary{color:var(--ink-muted);margin-top:.2rem;font-size:.78rem}.practice-steps{border-top:1px solid var(--cream-dark);flex-direction:column;gap:.65rem;margin-top:1rem;padding-top:.75rem;display:flex}.step-card{grid-template-columns:32px 1fr;align-items:start;gap:.65rem;display:grid}.step-num{background:var(--sage);width:32px;height:32px;color:var(--cream);border-radius:50%;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:flex}.step-caption{font-size:.9rem;font-weight:600}.step-detail{color:var(--ink-muted);margin-top:.15rem;font-size:.75rem}.chevron{color:var(--ink-muted);flex-shrink:0;align-self:center;margin-left:auto;transition:transform .2s}.chevron.open{transform:rotate(180deg)}.foods-cols{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=560px){.foods-cols{grid-template-columns:1fr 1fr}}.foods-col h3{align-items:center;gap:.4rem;margin-bottom:.65rem;font-size:1.15rem;display:flex}.foods-col.include h3{color:var(--sage)}.foods-col.avoid h3{color:var(--terracotta)}.chip-list{flex-wrap:wrap;gap:.45rem;display:flex}.food-chip{background:var(--white);box-shadow:var(--shadow-sm);border-radius:999px;align-items:center;gap:.35rem;padding:.45rem .7rem;font-size:.78rem;font-weight:500;display:inline-flex}.food-chip.include{border:1px solid var(--sage-mist);color:var(--sage)}.food-chip.avoid{border:1px solid var(--terracotta-soft);color:#8b4a32}.food-chip .note{opacity:.7;width:100%;margin-top:.1rem;font-size:.65rem;font-weight:400;display:block}.food-chip.stacked{border-radius:14px;flex-direction:column;align-items:flex-start}.recipe-grid{grid-template-columns:1fr;gap:.75rem;display:grid}@media (width>=640px){.recipe-grid{grid-template-columns:1fr 1fr}}.recipe-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid #3d5c4a0d;padding:1.1rem}.recipe-header{align-items:center;gap:.55rem;margin-bottom:.75rem;display:flex}.recipe-header .emoji{font-size:1.75rem}.recipe-header h3{color:var(--sage);font-size:1.15rem}.ingredient-chips{flex-wrap:wrap;gap:.35rem;display:flex}.ing-chip{background:var(--cream-dark);color:var(--ink-muted);border-radius:999px;padding:.3rem .55rem;font-size:.72rem;font-weight:500}.recipe-note{color:var(--terracotta);margin-top:.55rem;font-size:.72rem;font-style:italic}.disclaimer{color:var(--ink-muted);text-align:center;border-top:1px solid var(--cream-dark);margin-top:1.5rem;padding:.85rem 1rem;font-size:.68rem;line-height:1.5}.section-intro{margin-bottom:1rem}.section-intro h2{color:var(--sage);margin-bottom:.25rem;font-size:1.45rem}@media (width>=640px){.app-header{padding:1.25rem 1.25rem .5rem}.app-header h1{font-size:1.65rem}.app-header .subtitle{font-size:.8rem}.main-content{padding:.75rem 0 1.5rem}.window-times{flex-direction:row;align-items:center;gap:.5rem}.window-to{flex:none;display:block}.ampm-group{flex:1}.section-intro h2{font-size:1.75rem}}.section-intro p{color:var(--ink-muted);font-size:.85rem}.today-top{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem;display:flex}.today-top h2{color:var(--ink);font-size:1.6rem}.muted{color:var(--ink-muted);font-size:.8rem}.legend{flex-wrap:wrap;gap:.5rem;margin:.75rem 0 1rem;display:flex}.overview-stats{grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1rem;display:grid}.stat-card{background:var(--white);border-radius:var(--radius-sm);text-align:center;box-shadow:var(--shadow-sm);padding:.85rem .5rem}.stat-card .num{font-family:var(--font-display);color:var(--sage);font-size:1.75rem;line-height:1}.stat-card .lbl{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em;margin-top:.25rem;font-size:.65rem;font-weight:600}.section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);margin:1.25rem 0 .65rem;font-size:.7rem;font-weight:700}.tab-nav-inner,.block,.card,.callout,.today-top,.recipe-grid,.kit-grid{min-width:0;max-width:100%}.chip,.ing-chip,.food-chip,.recipe-card .chips span,.item-label{overflow-wrap:anywhere}
