.tabbar{border-top:1px solid var(--line);background:var(--cream);flex-shrink:0;justify-content:space-around;padding:11px 8px 14px;display:flex}.tabbar .tab{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:3px;font-size:9.5px;font-weight:500;text-decoration:none;display:flex}.tabbar .tab .gi{opacity:.55;font-size:18px}.tabbar .tab.act{color:var(--clay-deep)}.tabbar .tab.act .gi{opacity:1}.tabbar .tab.disabled{opacity:.4;cursor:default}.greet{padding:6px 22px 0}.greet .day{color:var(--ink-soft);font-size:12.5px;font-weight:500}.greet h1{margin-top:2px;font-size:25px}.cycle-card{border-radius:var(--r-xl);color:#fff;background:linear-gradient(140deg, var(--plum) 0%, #b58098 55%, var(--clay) 130%);box-shadow:var(--shadow-card);cursor:pointer;margin:16px 22px 0;padding:20px;text-decoration:none;display:block;position:relative;overflow:hidden}.cycle-card-arrow{color:#ffffffb3;font-size:26px;line-height:1;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.cycle-card.phase-menstrual{background:linear-gradient(140deg,#b05f6e,#c97b5e 130%)}.cycle-card.phase-follicular{background:linear-gradient(140deg, var(--sage-deep), var(--sage) 130%)}.cycle-card.phase-ovulatory{background:linear-gradient(140deg, var(--gold), var(--clay) 130%)}.cycle-card.phase-luteal{background:linear-gradient(140deg, var(--plum), #b58098 55%, var(--clay) 130%)}.cycle-card.phase-late{background:linear-gradient(140deg,#8c8377,#a89a8b 130%)}.cycle-card.phase-unknown{background:linear-gradient(140deg,#9a8f82,#b3a596 130%)}.cycle-card .ring{border:14px solid #ffffff29;border-radius:50%;width:130px;height:130px;position:absolute;top:-26px;right:-26px}.cycle-card .ring2{border:6px solid #ffffff38;border-radius:50%;width:64px;height:64px;position:absolute;top:6px;right:6px}.cycle-card .tag{letter-spacing:.1em;text-transform:uppercase;opacity:.9;background:#ffffff2e;border-radius:20px;align-items:center;padding:5px 11px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.cycle-card .big{font-family:var(--font-display);margin:7px 0 3px;font-size:34px;font-weight:500;line-height:1.05}.cycle-card .note{opacity:.92;max-width:200px;font-size:12.5px;line-height:1.45}.row-label .link{color:var(--clay-deep);font-size:12px;font-weight:600;text-decoration:none}.today-summary{gap:10px;padding:12px 22px 0;display:flex}.today-summary .cell{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);text-align:center;flex:1;padding:13px 12px}.today-summary .cell-ic{margin-bottom:6px;font-size:20px}.today-summary .cell b{font-size:16px;display:block}.today-summary .cell small{color:var(--ink-soft);font-size:11px}.checkin{border:1px dashed var(--clay);color:inherit;background:#f3ece1;border-radius:18px;align-items:center;gap:13px;margin:14px 22px 0;padding:15px 16px;text-decoration:none;display:flex}.checkin .em{font-size:26px}.checkin b{font-size:14px;display:block}.checkin span{color:var(--ink-soft);font-size:12px}.tip{background:var(--card);border:1px solid var(--line);border-radius:18px;margin:14px 22px 6px;padding:16px}.tip .eyebrow{margin-bottom:7px;display:block}.tip p{font-size:13.5px;line-height:1.5}.tip .src{color:var(--ink-soft);margin-top:8px;font-size:11px;font-style:italic}.cal{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);margin:16px 22px 0;padding:14px 14px 16px}.cal-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.cal-title{font-family:var(--font-display);color:var(--ink);font-size:16px;font-weight:500}.cal-nav{border:1px solid var(--line);background:var(--cream);width:32px;height:32px;color:var(--ink);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:18px;line-height:1;display:flex}.cal-weekdays{grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:6px;display:grid}.cal-weekdays span{text-align:center;color:var(--ink-soft);font-size:10.5px;font-weight:600}.cal-grid{grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.cal-cell{aspect-ratio:1;cursor:pointer;color:var(--ink);font-family:var(--font-body);background:0 0;border:none;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex;position:relative}.cal-cell.empty{cursor:default}.cal-cell .num{font-size:13px;line-height:1}.cal-cell:hover:not(.empty){background:var(--cream-2)}.cal-cell.today{box-shadow:inset 0 0 0 1.5px var(--clay)}.cal-cell.sel{background:var(--clay-deep)}.cal-cell.sel .num{color:#fff;font-weight:600}.cal-cell.flow{background:var(--plum)}.cal-cell.flow .num{color:#fff}.cal-cell.flow.sel{box-shadow:inset 0 0 0 2px var(--clay-deep)}.cal-cell.ph-menstrual{background:#f3e3e6}.cal-cell.ph-follicular{background:#eef1e8}.cal-cell.ph-ovulatory{background:#f6efe0}.cal-cell.ph-luteal{background:#f1ecf1}.cal-cell.ph-late{background:#ece7e1}.cal-cell.ph-menstrual.sel,.cal-cell.ph-follicular.sel,.cal-cell.ph-ovulatory.sel,.cal-cell.ph-luteal.sel,.cal-cell.ph-late.sel{background:var(--clay-deep)}.cal-dot{border-radius:50%;width:5px;height:5px}.cal-dot.sym{background:var(--clay)}.cal-dot.move{background:var(--sage)}.cal-dot.onsel,.cal-cell.sel .cal-dot.sym,.cal-cell.flow .cal-dot.sym{background:#fff}.phase-card{border-radius:var(--r-lg);border:1px solid var(--line);background:var(--card);margin:16px 22px 0;padding:17px}.phase-card.unknown{background:#f3ece1;border:none;align-items:center;gap:12px;display:flex}.phase-card.unknown .pc-emoji{font-size:24px}.phase-card.unknown p{color:var(--ink-soft);font-size:13px}.phase-card.ph-menstrual{border-top:3px solid #b05f6e}.phase-card.ph-follicular{border-top:3px solid var(--sage)}.phase-card.ph-ovulatory{border-top:3px solid var(--gold)}.phase-card.ph-luteal{border-top:3px solid var(--plum)}.phase-card.ph-late{border-top:3px solid var(--ink-soft)}.pc-head{align-items:flex-start;gap:12px;margin-bottom:13px;display:flex}.pc-emoji{font-size:30px;line-height:1}.pc-titles{flex:1}.pc-eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--clay-deep);font-size:10.5px;font-weight:600;display:block}.pc-titles h3{font-family:var(--font-display);margin:2px 0;font-size:20px;font-weight:500;line-height:1.2}.pc-day{color:var(--ink-soft);font-size:12px}.pc-reliability{border-radius:10px;margin-bottom:14px;padding:9px 12px;font-size:11.5px;line-height:1.45}.pc-reliability.rel-low{color:var(--clay-deep);background:#f7ece4}.pc-reliability.rel-medium{color:var(--ink-soft);background:#f3ece1}.pc-reliability.rel-high{color:var(--sage-deep);background:#eef0e7}.pc-section{margin-bottom:14px}.pc-label{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px;font-size:11px;font-weight:600;display:block}.pc-section>p{color:var(--ink);font-size:13.5px;line-height:1.5}.pc-tip{align-items:flex-start;gap:10px;margin-bottom:9px;display:flex}.pc-tip:last-child{margin-bottom:0}.pc-tip .ic{flex:none;margin-top:1px;font-size:15px}.pc-tip p{color:var(--ink);font-size:12.5px;line-height:1.45}.pc-note{color:var(--ink-soft);margin-top:4px;font-size:11px;font-style:italic;line-height:1.4}.day-detail-label{font-family:var(--font-display);color:var(--ink);padding:20px 22px 0;font-size:17px;font-weight:500}.cal-legend-box{padding:12px 22px 0}.cal-legend-title{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px;font-size:11px;font-weight:600;display:block}.cal-legend-items{flex-wrap:wrap;gap:8px 14px;display:flex}.cl-item{color:var(--ink);align-items:center;gap:6px;font-size:12px;display:inline-flex}.cl-sw{border-radius:5px;flex:none;width:13px;height:13px}.cl-sw.flow{background:var(--plum)}.cl-sw.ph-menstrual{background:#f3e3e6;border:1px solid #e3c4cb}.cl-sw.ph-follicular{background:#eef1e8;border:1px solid #d3ddc6}.cl-sw.ph-ovulatory{background:#f6efe0;border:1px solid #e6d6b0}.cl-sw.ph-luteal{background:#f1ecf1;border:1px solid #dcd}.cl-dot-legend{background:var(--clay);border-radius:50%;flex:none;width:6px;height:6px;margin:0 3px}.clear-day{color:#9a4434;width:100%;font-family:var(--font-body);cursor:pointer;background:0 0;border:1px solid #e3b5ac;border-radius:13px;padding:12px;font-size:13px;font-weight:500}.clear-day:active{background:#f7e4e0}.logsec{padding:20px 22px 0}.logsec h3{margin-bottom:3px;font-size:17px}.logsec .hint{color:var(--ink-soft);margin-bottom:13px;font-size:12px}.cycle-start{border:1px solid var(--line);background:var(--card);width:100%;font-family:var(--font-body);color:var(--ink-soft);cursor:pointer;border-radius:14px;padding:13px;font-size:14px;font-weight:600}.cycle-start.on{border-color:var(--plum);color:var(--plum);background:#f3eef1}.flow-buttons{gap:9px;display:flex}.flow-buttons .cycle-start,.flow-buttons .cycle-end{flex:1}.cycle-end{border:1px solid var(--line);background:var(--card);font-family:var(--font-body);color:var(--ink-soft);cursor:pointer;border-radius:14px;padding:13px;font-size:14px;font-weight:600}.cycle-end.on{border-color:var(--sage);color:var(--sage-deep);background:#eef0e7}.cycle-end:disabled{opacity:.45;cursor:default}.flow-length{color:var(--ink-soft);padding:10px 22px 0;font-size:12.5px;font-style:italic}.intimacy-toggle{border:1px solid var(--line);background:var(--card);font-family:var(--font-body);color:var(--ink-soft);cursor:pointer;border-radius:22px;align-items:center;gap:9px;padding:11px 16px;font-size:14px;display:inline-flex}.intimacy-toggle .it-check{border:1.5px solid var(--line);background:var(--cream);color:#fff;border-radius:6px;flex:none;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;font-weight:700;display:flex}.intimacy-toggle.on{border-color:var(--plum);color:var(--ink);background:#f6f0f3}.intimacy-toggle.on .it-check{background:var(--plum);border-color:var(--plum)}.sym{flex-wrap:wrap;gap:8px;display:flex}.sym .s{border:1px solid var(--line);background:var(--card);color:var(--ink-soft);cursor:pointer;font-size:12.5px;font-family:var(--font-body);border-radius:22px;padding:9px 13px}.sym .s.on{border-color:var(--clay);color:var(--clay-deep);background:#fbf3ec;font-weight:600}.mood{justify-content:space-between;display:flex}.mood .m{background:var(--card);border:1px solid var(--line);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:46px;height:46px;font-size:22px;display:flex}.mood .m.on{border-color:var(--sage);background:#eef0e7;transform:scale(1.06)}.sleep{gap:8px;display:flex}.sleep .sl{border:1px solid var(--line);background:var(--card);font-family:var(--font-body);color:var(--ink-soft);cursor:pointer;border-radius:13px;flex:1;padding:11px 0;font-size:13px;font-weight:600}.sleep .sl.on{border-color:var(--plum);color:var(--plum);background:#f0ecf1}.food-input{background:var(--card);border:1px solid var(--line);border-radius:14px;align-items:center;gap:8px;margin:16px 22px 0;padding:6px 8px 6px 15px;display:flex}.food-input-wrap{position:relative}.suggest{background:var(--card);border:1px solid var(--line);z-index:20;border-radius:14px;list-style:none;position:absolute;top:calc(100% + 4px);left:22px;right:22px;overflow:hidden;box-shadow:0 12px 28px -12px #3c281c59}.suggest li+li{border-top:1px solid var(--line)}.suggest button{cursor:pointer;width:100%;font-family:var(--font-body);text-align:left;background:0 0;border:none;align-items:center;gap:11px;padding:11px 15px;display:flex}.suggest button:hover,.suggest button:focus{background:#fbf3ec}.suggest .s-ic{flex:none;font-size:17px}.suggest .s-name{color:var(--ink);flex:1;font-size:13.5px;font-weight:500}.suggest .s-cat{color:var(--ink-soft);font-size:11px}.gl-estimate{border-radius:14px;align-items:center;gap:11px;margin:12px 22px 0;padding:11px 15px;display:flex}.gl-estimate.load-dolce{background:#eef0e7}.gl-estimate.load-medio{background:#f3ece1}.gl-estimate.load-alto{background:#f7ece4}.gl-badge{letter-spacing:.03em;font-size:11.5px;font-weight:700}.gl-estimate.load-dolce .gl-badge{color:var(--sage-deep)}.gl-estimate.load-medio .gl-badge{color:var(--ink-soft)}.gl-estimate.load-alto .gl-badge{color:var(--clay-deep)}.gl-note{color:var(--ink-soft);font-size:11.5px}.food-input input{font-family:var(--font-body);color:var(--ink);background:0 0;border:none;flex:1;padding:8px 0;font-size:13.5px}.food-input input:focus{outline:none}.food-input button{background:var(--cream-2);width:34px;height:34px;color:var(--clay-deep);cursor:pointer;border:none;border-radius:10px;font-size:18px}.food-block{padding:18px 22px 0}.food-block .eyebrow{margin-bottom:11px;display:block}.pills{flex-wrap:wrap;gap:9px;display:flex}.pill{border:1px solid var(--clay);color:var(--clay-deep);cursor:pointer;font-size:13px;font-weight:600;font-family:var(--font-body);background:#fbf3ec;border-radius:22px;padding:8px 13px}.pill .x{opacity:.6;font-weight:400}.pill-add{background:var(--card);border:1px solid var(--line);color:var(--ink-soft);cursor:pointer;font-size:13px;font-family:var(--font-body);border-radius:22px;padding:8px 13px}.food-ctx{background:#f3ece1;border-radius:16px;align-items:center;gap:11px;margin:20px 22px 0;padding:13px 15px;display:flex}.food-ctx .em{font-size:20px}.food-ctx .ctx-text{flex:1}.food-ctx p{color:var(--ink-soft);font-size:12.5px;line-height:1.45}.food-ctx b{color:var(--ink)}.toggle-low{color:var(--ink-soft);white-space:nowrap;cursor:pointer;font-size:11.5px;font-family:var(--font-body);background:var(--card);border:1px solid var(--line);border-radius:20px;align-items:center;gap:7px;padding:7px 12px;display:flex}.toggle-low .tl-check{border:1.5px solid var(--line);background:var(--cream);color:#fff;border-radius:5px;flex:none;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;font-weight:700;display:flex}.toggle-low.on{border-color:var(--plum);color:var(--ink);background:#f6f0f3}.toggle-low.on .tl-check{background:var(--plum);border-color:var(--plum)}.food-error{color:#9a4434;background:#f7e4e0;border:1px solid #e3b5ac;border-radius:12px;margin:16px 22px 0;padding:12px 14px;font-size:12.5px}.food-thinking{text-align:center;padding:36px 22px}.moon-spin{background:radial-gradient(circle at 66% 34%, var(--gold) 0 38%, var(--clay) 40%);border-radius:50%;width:48px;height:48px;margin:0 auto 16px;animation:1.4s ease-in-out infinite pulse;box-shadow:inset -8px -3px 0 -3px #0000001a}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(.92)}}.food-thinking p{color:var(--ink-soft);font-size:13px}.recipes{padding-bottom:8px}.recipes .row-label{padding:8px 22px 0}.recipes .row-label h3{font-size:17px}.recipe{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);margin:14px 22px 0;overflow:hidden}.recipe-top{color:#fff;justify-content:space-between;align-items:center;height:56px;padding:0 15px;display:flex}.recipe-top.load-dolce{background:linear-gradient(135deg, var(--sage-deep), var(--sage))}.recipe-top.load-medio{background:linear-gradient(135deg, var(--clay-deep), var(--clay))}.badge-row{gap:6px;display:flex}.badge{letter-spacing:.03em;color:var(--sage-deep);background:#ffffffeb;border-radius:20px;padding:5px 9px;font-size:10.5px;font-weight:700}.recipe-top.load-medio .badge{color:var(--clay-deep)}.badge.ghost{color:var(--ink-soft);background:#ffffffeb}.badge.time{color:#fff;background:#0000002e}.recipe-body{padding:13px 16px}.recipe-body h4{font-family:var(--font-display);margin-bottom:7px;font-size:16.5px;font-weight:500;line-height:1.2}.recipe-body .missing{color:var(--clay-deep);margin-bottom:10px;font-size:12px}.why{background:#eef0e7;border-radius:12px;gap:9px;padding:10px 13px;display:flex}.why .em{flex:none;font-size:14px}.why p{color:var(--ink);font-size:11.5px;line-height:1.45}.disclaimer{color:var(--ink-soft);text-align:center;margin:16px 22px 0;font-size:11px;font-style:italic;line-height:1.5}.food-cta-bar{border-top:1px solid var(--line);background:var(--cream);flex-shrink:0;padding:14px 22px}.food-cta-bar .cta:disabled{opacity:.5;box-shadow:none}.cmp-tabs{gap:8px;padding:14px 22px 0;display:flex}.cmp-tab{text-align:center;background:var(--card);border:1px solid var(--line);color:var(--ink-soft);cursor:pointer;border-radius:11px;flex:1;padding:9px;font-size:12.5px;font-weight:600;text-decoration:none}.cmp-tab.act{border-color:var(--clay);color:var(--clay-deep);background:#fbf3ec}.cmp-field{margin:16px 22px 0}.cmp-field label{letter-spacing:.06em;color:var(--ink-soft);text-transform:uppercase;margin-bottom:7px;font-size:11px;font-weight:600;display:block}.cmp-box{background:var(--card);border:1px solid var(--line);border-radius:14px;align-items:center;gap:11px;padding:6px 12px;display:flex}.cmp-box .tag{width:26px;height:26px;font-family:var(--font-display);color:#fff;border-radius:8px;flex:none;justify-content:center;align-items:center;font-size:14px;font-weight:600;display:flex}.cmp-box.a .tag{background:var(--sage)}.cmp-box.b .tag{background:var(--plum)}.cmp-box input{font-family:var(--font-body);color:var(--ink);background:0 0;border:none;flex:1;padding:9px 0;font-size:14.5px}.cmp-box input:focus{outline:none}.cmp-vs{text-align:center;font-family:var(--font-display);color:var(--ink-soft);margin:11px 0;font-size:15px;font-style:italic}.cmp-ctx{background:#f3ece1;border-radius:16px;align-items:center;gap:11px;margin:20px 22px 0;padding:13px 15px;display:flex}.cmp-ctx .em{font-size:20px}.cmp-ctx p{color:var(--ink-soft);font-size:12.5px;line-height:1.45}.cmp-ctx b{color:var(--ink)}.cmp-lead{color:var(--ink);background:#eef0e7;border:1px solid #dde3d2;border-radius:18px;margin:14px 22px 0;padding:15px 16px;font-size:14px;line-height:1.5}.cmp-cols{align-items:stretch;gap:10px;padding:16px 22px 0;display:flex}.cmp-col{background:var(--card);border:1px solid var(--line);border-radius:16px;flex-direction:column;flex:1;min-width:0;padding:14px 12px;display:flex}.cmp-col .head{flex-direction:column;align-items:flex-start;gap:8px;min-height:74px;margin-bottom:11px;display:flex}.cmp-col .tag{width:24px;height:24px;font-family:var(--font-display);color:#fff;border-radius:7px;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex}.cmp-col.a .tag{background:var(--sage)}.cmp-col.b .tag{background:var(--plum)}.cmp-col .name{font-size:13.5px;font-weight:600;line-height:1.3}.gimeter{letter-spacing:.04em;border-radius:20px;align-self:flex-start;margin-bottom:11px;padding:4px 9px;font-size:10.5px;font-weight:700}.gimeter.load-dolce{color:var(--sage-deep);background:#eef0e7}.gimeter.load-medio{color:var(--ink-soft);background:#f3ece1}.gimeter.load-alto{color:var(--clay-deep);background:#f7ece4}.cmp-col ul{flex-direction:column;gap:8px;list-style:none;display:flex}.cmp-col li{color:var(--ink-soft);gap:6px;font-size:11.5px;line-height:1.4;display:flex}.cmp-col li .dot{flex:none}.cmp-tip{background:var(--card);border:1px solid var(--line);border-radius:16px;gap:10px;margin:16px 22px 0;padding:14px 16px;display:flex}.cmp-tip .em{flex:none;font-size:17px}.cmp-tip p{color:var(--ink);font-size:12.5px;line-height:1.5}.cmp-permission{text-align:center;color:var(--ink-soft);margin:14px 22px 0;padding:0 4px;font-size:12.5px;font-style:italic;line-height:1.55}.ins-loading,.ins-empty{text-align:center;color:var(--ink-soft);padding:30px 22px;font-size:13px;line-height:1.6}.ins-empty{flex-direction:column;align-items:center;gap:16px;display:flex}.progress-card{border-radius:var(--r-lg);background:#eef0e7;border:1px solid #dde3d2;margin:16px 22px 0;padding:16px}.progress-card .tag{letter-spacing:.08em;text-transform:uppercase;color:var(--sage-deep);margin-bottom:12px;font-size:11px;font-weight:700;display:block}.prog-item{align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.prog-item .prog-ic{border-radius:7px;flex:none;justify-content:center;align-items:center;width:22px;height:22px;margin-top:1px;font-size:12px;display:flex}.prog-item.tone-up .prog-ic{background:var(--sage);color:#fff;font-weight:700}.prog-item.tone-soft .prog-ic{background:#f0ecf1}.prog-item p{color:var(--ink);font-size:13px;line-height:1.45}.prog-foot{color:var(--ink-soft);margin-top:6px;font-size:11px;font-style:italic;line-height:1.5}.moon-mini,.moon-spin{background:radial-gradient(circle at 66% 34%, var(--gold) 0 38%, var(--clay) 40%);border-radius:50%;width:48px;height:48px;box-shadow:inset -8px -3px 0 -3px #0000001a}.ins-empty p{max-width:280px}.ins-hero{border-radius:var(--r-xl);color:#fff;background:linear-gradient(140deg, var(--sage-deep), var(--sage) 130%);margin:16px 22px 0;padding:18px;position:relative;overflow:hidden}.ins-hero .spark{background:#ffffff1f;border-radius:50%;width:110px;height:110px;position:absolute;top:-20px;right:-20px}.ins-hero .tag{letter-spacing:.1em;text-transform:uppercase;opacity:.9;align-items:center;gap:6px;margin-bottom:9px;font-size:10.5px;font-weight:700;display:inline-flex}.ins-hero h3{font-family:var(--font-display);font-size:19px;font-weight:500;line-height:1.28;position:relative}.ins-hero .conf{opacity:.92;align-items:center;gap:8px;margin-top:12px;font-size:11px;display:flex}.strength{gap:4px;display:inline-flex}.strength i{background:#ffffff4d;border-radius:50%;width:6px;height:6px;display:block}.strength i.on{background:#fff}.insight .strength i{background:var(--line)}.insight .strength i.on{background:var(--sage)}.row-label span{color:var(--ink-soft);font-size:12px}.insight{background:var(--card);border:1px solid var(--line);border-radius:16px;gap:13px;margin:12px 22px 0;padding:15px 16px;display:flex}.insight .ins-ic{background:#f0ecf1;border-radius:11px;flex:none;justify-content:center;align-items:center;width:38px;height:38px;font-size:18px;display:flex}.insight .ins-body{flex:1}.insight .ins-body p{color:var(--ink);font-size:13px;line-height:1.45}.insight .meta{color:var(--ink-soft);align-items:center;gap:8px;margin-top:8px;font-size:10.5px;display:flex}.ins-honest{background:#f3ece1;border-radius:14px;gap:11px;margin:18px 22px 8px;padding:14px 15px;display:flex}.ins-honest .em{flex:none;font-size:17px}.ins-honest p{color:var(--ink-soft);font-size:12px;line-height:1.5}.ins-honest b{color:var(--ink)}.sheet-backdrop{z-index:50;background:#2b242066;justify-content:center;align-items:flex-end;animation:.2s fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}to{opacity:1}}.sheet{background:var(--cream);border-radius:26px 26px 0 0;width:100%;max-width:440px;max-height:88%;padding:10px 22px 24px;animation:.25s slideup;overflow-y:auto}.sheet::-webkit-scrollbar{display:none}@keyframes slideup{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet-grab{background:var(--line);border-radius:3px;width:40px;height:4px;margin:4px auto 14px}.sheet-title{margin-bottom:18px;font-size:22px}.sheet-eyebrow{margin-bottom:11px;display:block}.type-grid{grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:20px;display:grid}.type-cell{border:1px solid var(--line);background:var(--card);cursor:pointer;font-family:var(--font-body);border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:14px 6px;display:flex}.type-cell .ic{font-size:22px}.type-cell .lb{color:var(--ink-soft);text-align:center;font-size:11.5px;line-height:1.2}.type-cell.on{border-color:var(--clay);background:#fbf3ec}.type-cell.on .lb{color:var(--clay-deep);font-weight:600}.minutes-row{flex-wrap:wrap;gap:7px;margin-bottom:10px;display:flex}.min-chip{border:1px solid var(--line);background:var(--card);min-width:48px;color:var(--ink-soft);font-family:var(--font-body);cursor:pointer;border-radius:12px;flex:1;padding:11px 0;font-size:13.5px;font-weight:600}.min-chip.on{border-color:var(--plum);color:var(--plum);background:#f6f0f3}.min-current{text-align:center;font-family:var(--font-display);color:var(--ink);margin-bottom:16px;font-size:18px}.sheet-note{color:var(--ink-soft);text-align:center;margin-bottom:18px;font-size:12px;font-style:italic;line-height:1.5}.sheet-actions{gap:10px;display:flex}.sheet-cancel{border:1px solid var(--line);background:var(--card);color:var(--ink-soft);font-family:var(--font-body);cursor:pointer;border-radius:14px;flex:none;padding:15px 22px;font-size:14px;font-weight:600}.sheet-save{flex:1}.sheet-save:disabled{opacity:.5;box-shadow:none}.ex-sheet{background:var(--cream);border-radius:26px 26px 0 0;width:100%;max-width:440px;max-height:88%;padding:10px 22px 26px;animation:.25s slideup;overflow-y:auto}.ex-sheet::-webkit-scrollbar{display:none}.ex-visual{background:#eef0e7;border-radius:16px;justify-content:center;align-items:center;width:100%;height:130px;margin:4px 0 16px;font-size:52px;display:flex}.ex-visual.has-img{background:var(--cream);height:180px;overflow:hidden}.ex-visual.has-img img{object-fit:contain;width:auto;height:100%}.ex-name{margin-bottom:16px;font-size:21px}.ex-block{margin-bottom:14px}.ex-label{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:6px;font-size:11px;font-weight:700;display:block}.ex-block p{color:var(--ink);font-size:14px;line-height:1.55}.ex-steps{margin:0;padding-left:20px}.ex-steps li{color:var(--ink);margin-bottom:8px;padding-left:4px;font-size:13.5px;line-height:1.5}.ex-steps li::marker{color:var(--clay);font-weight:700}.ex-steps.with-img{counter-reset:step;padding-left:0;list-style:none}.ex-steps.with-img li{border-bottom:1px solid var(--line);counter-increment:step;align-items:center;gap:12px;margin-bottom:12px;padding-bottom:12px;display:flex}.ex-steps.with-img li:last-child{border-bottom:none}.step-thumb{background:var(--cream);border-radius:12px;flex:none;justify-content:center;align-items:center;width:72px;height:72px;display:flex;overflow:hidden}.step-thumb img{object-fit:cover;width:100%;height:100%}.step-text{color:var(--ink);flex:1;font-size:13px;line-height:1.45}.step-text:before{content:counter(step);background:var(--clay);color:#fff;vertical-align:middle;border-radius:50%;justify-content:center;align-items:center;width:19px;height:19px;margin-right:7px;font-size:11px;font-weight:700;display:inline-flex}.ex-block.avoid .ex-label{color:var(--clay-deep)}.ex-block.avoid p{color:var(--ink)}.ex-fallback{color:var(--ink-soft);margin-bottom:14px;font-size:14px}.ex-safety{color:var(--ink-soft);background:#f3ece1;border-radius:12px;margin-top:16px;padding:12px 14px;font-size:12px;line-height:1.5}.week-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);margin:16px 22px 0;padding:17px}.week-top{justify-content:space-between;align-items:baseline;margin-bottom:14px;display:flex}.week-top h3{font-size:16px}.week-top span{color:var(--ink-soft);font-size:11.5px}.wbar{background:#ece3d5;border-radius:6px;height:9px;margin-bottom:5px;overflow:hidden}.wbar i{border-radius:6px;height:100%;transition:width .4s;display:block}.wbar.move i{background:linear-gradient(90deg, var(--sage), var(--sage-deep))}.wbar.str i{background:linear-gradient(90deg, var(--plum), #85607a)}.bar-label{color:var(--ink-soft);justify-content:space-between;margin-bottom:13px;font-size:11.5px;display:flex}.bar-label:last-child{margin-bottom:0}.bar-label b{color:var(--ink);font-weight:600}.log-activity-btn{border:1px dashed var(--clay);width:100%;color:var(--clay-deep);font-family:var(--font-body);cursor:pointer;background:#fbf3ec;border-radius:13px;margin-top:14px;padding:12px;font-size:13.5px;font-weight:600}.cal-legend{color:var(--ink-soft);align-items:center;gap:7px;padding:10px 22px 0;font-size:12px;display:flex}.cal-legend .cal-dot{border-radius:50%;width:7px;height:7px}.cal-legend .cal-dot.move{background:var(--sage)}.day-activities{padding:12px 22px 0}.no-activity{color:var(--ink-soft);text-align:center;padding:8px 0;font-size:13px}.activity-row{background:var(--card);border:1px solid var(--line);border-radius:13px;align-items:center;gap:10px;margin-bottom:8px;padding:12px 14px;display:flex}.activity-row .act-name{color:var(--ink);flex:1;font-size:13.5px;font-weight:500}.activity-row .act-min{color:var(--ink-soft);font-size:12.5px}.activity-row .act-del{color:#9a4434;font-family:var(--font-body);cursor:pointer;background:0 0;border:none;padding:4px 6px;font-size:12.5px;font-weight:600}.phase-strip{border-radius:var(--r-md);color:#fff;background:linear-gradient(135deg, var(--plum), #b58098);align-items:center;gap:12px;margin:18px 22px 0;padding:14px 16px;display:flex}.phase-strip.phase-follicular{background:linear-gradient(135deg, var(--sage-deep), var(--sage))}.phase-strip.phase-ovulatory{background:linear-gradient(135deg, var(--gold), var(--clay))}.phase-strip.phase-menstrual{background:linear-gradient(135deg, #b05f6e, var(--clay))}.phase-strip.phase-unknown{background:linear-gradient(135deg,#9a8f82,#b3a596)}.phase-strip .em{font-size:22px}.phase-strip b{font-size:13.5px;line-height:1.3;display:block}.phase-strip span{opacity:.92;font-size:12px}.row-label{justify-content:space-between;align-items:baseline;padding:22px 22px 0;display:flex}.row-label h3{font-size:17px}.today-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);margin:12px 22px 0;overflow:hidden}.today-banner{color:#fff;flex-direction:column;justify-content:center;height:84px;padding:0 17px;display:flex}.today-banner.kind-strength{background:linear-gradient(135deg, var(--plum), #b58098)}.today-banner.kind-cardio{background:linear-gradient(135deg, var(--clay-deep), var(--clay))}.today-banner.kind-mobility{background:linear-gradient(135deg, var(--sage-deep), var(--sage))}.today-banner.kind-walk{background:linear-gradient(135deg, var(--gold), var(--clay))}.today-banner .k{letter-spacing:.1em;text-transform:uppercase;opacity:.9;font-size:11px;font-weight:600}.today-banner .t{font-family:var(--font-display);margin-top:3px;font-size:20px;font-weight:500}.today-body{padding:14px 17px}.today-body .meta{flex-wrap:wrap;gap:8px;margin-bottom:13px;display:flex}.mchip{background:var(--cream-2);color:var(--ink-soft);border-radius:20px;padding:5px 10px;font-size:11px;font-weight:600}.ex-list{margin-bottom:14px;list-style:none}.ex-list li{border-bottom:1px solid var(--line)}.ex-list li:last-child{border-bottom:none}.ex-row{cursor:pointer;width:100%;font-family:var(--font-body);text-align:left;background:0 0;border:none;align-items:center;gap:12px;padding:9px 0;display:flex}.ex-row .ex-thumb{background:#eef0e7;border-radius:10px;flex:none;justify-content:center;align-items:center;width:38px;height:38px;font-size:19px;display:flex}.ex-row .ex-name{color:var(--ink);flex:1;font-size:13.5px}.ex-row .ex-min{color:var(--ink-soft);font-size:12px;font-weight:600}.ex-row .ex-chevron{color:var(--ink-soft);flex:none;font-size:18px}.done-badge{text-align:center;color:var(--sage-deep);background:#eef0e7;border-radius:13px;padding:13px;font-size:13.5px;font-weight:600}.swap-note{background:#f3ece1;border-radius:14px;align-items:center;gap:11px;margin:11px 22px 0;padding:12px 15px;display:flex}.swap-note .em{flex:none;font-size:18px}.swap-note p{color:var(--ink-soft);font-size:12px;line-height:1.45}.swap-note b{color:var(--ink)}.saved-toast{background:var(--sage-deep);color:#fff;opacity:0;pointer-events:none;border-radius:20px;width:max-content;margin:18px auto 0;padding:8px 16px;font-size:12px;font-weight:600;transition:opacity .25s;position:sticky;bottom:8px}.saved-toast.show{opacity:1}.lang-switcher{justify-content:center;gap:8px;display:flex}.lang-btn{border:1px solid var(--line);background:var(--card);cursor:pointer;width:42px;height:42px;font-family:var(--font-body);opacity:.55;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:opacity .15s,transform .15s;display:inline-flex}.lang-btn .flag{font-size:20px;line-height:1}.lang-btn.on{border-color:var(--clay);opacity:1;box-shadow:0 0 0 1px var(--clay);background:#fbf3ec;transform:scale(1.08)}.settings-top{border-bottom:1px solid var(--line);flex-shrink:0;align-items:center;gap:14px;padding:18px 22px 10px;display:flex}.settings-top h1{font-size:22px}.set-close{border:1px solid var(--line);background:var(--card);width:34px;height:34px;color:var(--ink);cursor:pointer;border-radius:50%;flex:none;font-size:15px}.set-section{padding:20px 22px 0}.set-section .eyebrow{margin-bottom:12px;display:block}.set-lang{justify-content:flex-start;display:flex}.set-field-label{color:var(--ink-soft);margin-bottom:8px;font-size:12px;display:block}.set-name-row{gap:9px;display:flex}.set-name-input{border:1px solid var(--line);background:var(--card);font-family:var(--font-body);color:var(--ink);border-radius:12px;flex:1;padding:12px 14px;font-size:14.5px}.set-name-input:focus{border-color:var(--clay);outline:none}.set-name-save{background:var(--clay);color:#fff;font-family:var(--font-body);cursor:pointer;border:none;border-radius:12px;padding:0 18px;font-size:14px;font-weight:600}.set-desc{color:var(--ink-soft);margin-bottom:13px;font-size:13px;line-height:1.5}.set-btn{border:1px solid var(--line);background:var(--card);width:100%;color:var(--ink);font-family:var(--font-body);cursor:pointer;border-radius:13px;justify-content:center;align-items:center;gap:8px;margin-bottom:9px;padding:14px;font-size:14px;font-weight:600;display:flex}.set-btn.as-label{box-sizing:border-box}.set-privacy{color:var(--sage-deep);background:#eef0e7;border-radius:12px;margin-top:12px;padding:12px 14px;font-size:12.5px;line-height:1.5}.set-toast{left:0;right:0}.set-link-btn{border:1px solid var(--line);background:var(--card);width:100%;color:var(--ink);font-family:var(--font-body);cursor:pointer;text-align:left;border-radius:12px;align-items:center;gap:8px;padding:14px 16px;font-size:14.5px;font-weight:500;display:flex}.set-link-arrow{color:var(--ink-soft);margin-left:auto;font-size:18px}.meds-list{padding:8px 22px 0}.meds-empty{color:var(--ink-soft);text-align:center;padding:24px 0;font-size:13.5px}.med-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);margin-bottom:12px;padding:14px}.med-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.med-name{font-family:var(--font-display);color:var(--ink);font-size:16px;font-weight:500}.med-dose{font-family:var(--font-body);color:var(--ink-soft);font-size:13px;font-weight:400}.med-meta{color:var(--ink-soft);margin-top:3px;font-size:12.5px}.med-note{color:var(--ink);margin-top:4px;font-size:12.5px;font-style:italic}.med-del{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;flex:none;width:28px;height:28px;font-size:15px}.med-reminder{border:1px solid var(--sage);width:100%;color:var(--sage-deep);font-family:var(--font-body);cursor:pointer;background:#eef0e7;border-radius:12px;margin-top:12px;padding:10px;font-size:13px;font-weight:600}.meds-add{border:1px dashed var(--clay);width:calc(100% - 44px);color:var(--clay-deep);font-family:var(--font-body);cursor:pointer;background:#fbf3ec;border-radius:14px;margin:4px 22px 0;padding:13px;font-size:14px;font-weight:600;display:block}.med-form{padding:8px 22px 0}.mf-label{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);margin:12px 0 6px;font-size:11.5px;font-weight:600;display:block}.mf-input{border:1px solid var(--line);background:var(--card);width:100%;font-family:var(--font-body);color:var(--ink);border-radius:12px;padding:12px 14px;font-size:14.5px}.mf-input:focus{border-color:var(--clay);outline:none}.mf-rec{gap:8px;display:flex}.mf-rec-btn{border:1px solid var(--line);background:var(--card);color:var(--ink-soft);font-family:var(--font-body);cursor:pointer;border-radius:11px;flex:1;padding:11px 6px;font-size:12.5px;font-weight:600}.mf-rec-btn.on{border-color:var(--clay);color:var(--clay-deep);background:#fbf3ec}.mf-days{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.mf-day{border:1px solid var(--line);background:var(--card);width:42px;color:var(--ink-soft);font-family:var(--font-body);cursor:pointer;border-radius:10px;padding:9px 0;font-size:12px;font-weight:600}.mf-day.on{border-color:var(--plum);color:var(--plum);background:#f3eef1}.mf-privacy{color:var(--ink-soft);background:#f3ece1;border-radius:10px;margin-top:14px;padding:10px 12px;font-size:11.5px;line-height:1.5}.mf-actions{gap:10px;margin-top:14px;display:flex}.mf-cancel{border:1px solid var(--line);background:var(--card);color:var(--ink-soft);font-family:var(--font-body);cursor:pointer;border-radius:12px;flex:1;padding:12px;font-size:14px;font-weight:600}.mf-save{background:var(--clay);color:#fff;font-family:var(--font-body);cursor:pointer;border:none;border-radius:12px;flex:2;padding:12px;font-size:14px;font-weight:600}.mf-save:disabled{opacity:.5;cursor:default}.meds-reminder-hint{color:var(--ink-soft);padding:16px 22px 0;font-size:11.5px;font-style:italic;line-height:1.5}.onb-shell{background:linear-gradient(170deg,#f6efe6 0%,#f0e2d2 100%)}.onb{flex-direction:column;flex:1;padding:26px 24px 24px;display:flex;overflow-y:auto}.onb::-webkit-scrollbar{display:none}.onb-steps{flex-shrink:0;justify-content:center;gap:7px;margin-bottom:24px;display:flex}.onb-langtop{flex-shrink:0;justify-content:center;margin-bottom:8px;display:flex}.onb-steps i{background:var(--line);border-radius:3px;width:28px;height:5px}.onb-steps i.on{background:var(--clay)}.onb-page{flex-direction:column;flex:1;display:flex}.moon-lg{background:radial-gradient(circle at 66% 34%, var(--gold) 0 38%, var(--clay) 40%);border-radius:50%;width:64px;height:64px;margin:30px auto 0;box-shadow:inset -10px -4px 0 -4px #0000001a,0 8px 20px -6px #c97b5e80}.onb h1{font-family:var(--font-display);text-align:center;letter-spacing:-.4px;margin:24px 0 12px;font-size:30px;font-weight:500;line-height:1.18}.onb .sub{text-align:center;color:var(--ink-soft);margin-bottom:auto;font-size:14.5px;line-height:1.55}.onb .disclaim{color:var(--ink-soft);text-align:center;margin-top:14px;font-size:11px;line-height:1.5}.onb .eyebrow{margin-bottom:6px;display:block}.onb .q{font-family:var(--font-display);letter-spacing:-.3px;margin-bottom:4px;font-size:23px;font-weight:500}.onb .qhelp{color:var(--ink-soft);margin-bottom:20px;font-size:13px}.onb-input{border:1px solid var(--line);background:var(--card);width:100%;font-family:var(--font-body);color:var(--ink);border-radius:14px;margin-bottom:auto;padding:15px;font-size:16px}.onb-input:focus{border-color:var(--clay);outline:none}.choices{flex-direction:column;gap:11px;margin-bottom:auto;display:flex}.choice{background:var(--card);border:1px solid var(--line);text-align:left;cursor:pointer;font-family:var(--font-body);border-radius:16px;align-items:center;gap:13px;padding:15px 16px;display:flex}.choice .ic{background:var(--cream-2);border-radius:10px;flex:none;justify-content:center;align-items:center;width:34px;height:34px;font-size:17px;display:flex}.choice .ct b{font-size:14.5px;font-weight:600;display:block}.choice .ct span{color:var(--ink-soft);font-size:12px}.choice.sel{border-color:var(--clay);box-shadow:0 0 0 1px var(--clay);background:#fbf3ec}.choice.compact{justify-content:center;padding:16px}.choice.compact b{font-size:14.5px}.mark-today{cursor:pointer;text-align:left;background:var(--card);border:1px solid var(--line);width:100%;font-family:var(--font-body);border-radius:14px;align-items:center;gap:11px;margin:14px 0 0;padding:13px 15px;display:flex}.mark-today .check{border:1.5px solid var(--line);background:var(--cream);color:#fff;border-radius:8px;flex:none;justify-content:center;align-items:center;width:24px;height:24px;font-size:13px;font-weight:700;transition:all .15s;display:flex}.mark-today .mt-label{color:var(--ink-soft);font-size:13.5px}.mark-today.on{border-color:var(--plum);background:#f6f0f3}.mark-today.on .check{background:var(--plum);border-color:var(--plum)}.mark-today.on .mt-label{color:var(--ink);font-weight:500}.onb .cta{flex-shrink:0;margin-top:18px}.onb .cta:disabled{opacity:.5;box-shadow:none}.update-bar{z-index:100;background:var(--ink);max-width:440px;color:var(--cream);justify-content:space-between;align-items:center;gap:12px;margin:0 auto;padding:13px 18px;animation:.3s ub-slide;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -6px 20px -8px #0000004d}@keyframes ub-slide{0%{transform:translateY(100%)}to{transform:translateY(0)}}.ub-text{font-size:13px;font-weight:500}.ub-btn{background:var(--clay);color:#fff;font-family:var(--font-body);cursor:pointer;border:none;border-radius:10px;flex:none;padding:9px 16px;font-size:13px;font-weight:600}:root{--shell:#2b2420;--cream:#f6efe6;--cream-2:#efe5d8;--ink:#3a322c;--ink-soft:#7c7066;--clay:#c97b5e;--clay-deep:#a85d44;--sage:#8a9a7b;--sage-deep:#6f8062;--plum:#9a6b86;--line:#e3d8c9;--gold:#d8a657;--card:#fffdf9;--font-display:"Fraunces", Georgia, serif;--font-body:"Inter", system-ui, sans-serif;--r-sm:12px;--r-md:16px;--r-lg:20px;--r-xl:22px;--shadow-cta:0 8px 18px -8px #a85d44b3;--shadow-card:0 14px 26px -14px #9a6b8680}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-body);color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased}.app-shell{background:var(--cream);flex-direction:column;max-width:440px;height:100dvh;margin:0 auto;display:flex;position:relative;overflow:hidden}.scroll{-webkit-overflow-scrolling:touch;flex:1;padding-bottom:12px;overflow:hidden auto}.scroll::-webkit-scrollbar{display:none}.eyebrow{letter-spacing:.13em;text-transform:uppercase;color:var(--clay-deep);font-size:11px;font-weight:600}.h-display{font-family:var(--font-display);letter-spacing:-.4px;font-weight:500;line-height:1.15}.screen-head{padding:14px 22px 0}.screen-head .eyebrow{margin-bottom:5px;display:block}.screen-head h1{font-family:var(--font-display);letter-spacing:-.4px;font-size:25px;font-weight:500;line-height:1.15}.screen-head p{color:var(--ink-soft);margin-top:5px;font-size:13px;line-height:1.5}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px}.cta{background:var(--clay);color:#fff;font-family:var(--font-body);cursor:pointer;width:100%;box-shadow:var(--shadow-cta);border:none;border-radius:14px;justify-content:center;align-items:center;gap:9px;padding:15px;font-size:15px;font-weight:600;display:flex}.cta:active{transform:translateY(1px)}.statusbar{color:var(--ink);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 22px 4px;font-size:12px;font-weight:600;display:flex}.statusbar .dots{gap:3px;display:flex}.statusbar .dots i{background:var(--ink);opacity:.45;border-radius:50%;width:5px;height:5px;display:block}:focus-visible{outline:2px solid var(--clay);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
