@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations")}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./fraunces-latin-wght-normal-ukD16Tqj.woff2)format("woff2-variations")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#fbf6f1;--surface:#fffdfa;--surface-2:#f4ebe3;--line:#eaddd3;--text:#3e2f2b;--text-soft:#75605a;--accent:#d8a7a7;--accent-soft:#f5e4e1;--accent-deep:#96505b;--period:#c47a5a;--period-soft:#f4dfd4;--period-deep:#9c5335;--fertile:#9caf94;--fertile-soft:#e4ecdf;--fertile-deep:#55704c;--luteal:#b8a9c9;--luteal-soft:#ece6f2;--luteal-deep:#6c5a84;--primary-bg:#3e2f2b;--primary-fg:#fbf6f1;--danger:#a4432f;--shadow-card:0 1px 2px #3e2f2b0a, 0 8px 24px #3e2f2b0f;--shadow-float:0 -8px 40px #3e2f2b24;--backdrop:#3e2f2b61;--radius-s:12px;--radius-m:18px;--radius-l:26px;--radius-pill:999px;--font-title:"Fraunces Variable", "Iowan Old Style", Georgia, serif;--font-body:"Inter Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--tabbar-h:64px;--ease:cubic-bezier(.22, .8, .26, 1)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--bg:#231820;--surface:#2f222a;--surface-2:#3b2b34;--line:#4c3a44;--text:#f3e8e1;--text-soft:#c2aca5;--accent:#d8a7a7;--accent-soft:#4a3338;--accent-deep:#ebc3c3;--period:#d48e70;--period-soft:#4d3027;--period-deep:#ecb59c;--fertile:#9caf94;--fertile-soft:#323d2f;--fertile-deep:#bccdb5;--luteal:#b8a9c9;--luteal-soft:#3a3246;--luteal-deep:#d3c7e0;--primary-bg:#f3e8e1;--primary-fg:#2a1d20;--danger:#f0a08c;--shadow-card:0 1px 2px #0003, 0 8px 24px #00000038;--shadow-float:0 -8px 40px #00000073;--backdrop:#0a060799}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#231820;--surface:#2f222a;--surface-2:#3b2b34;--line:#4c3a44;--text:#f3e8e1;--text-soft:#c2aca5;--accent:#d8a7a7;--accent-soft:#4a3338;--accent-deep:#ebc3c3;--period:#d48e70;--period-soft:#4d3027;--period-deep:#ecb59c;--fertile:#9caf94;--fertile-soft:#323d2f;--fertile-deep:#bccdb5;--luteal:#b8a9c9;--luteal-soft:#3a3246;--luteal-deep:#d3c7e0;--primary-bg:#f3e8e1;--primary-fg:#2a1d20;--danger:#f0a08c;--shadow-card:0 1px 2px #0003, 0 8px 24px #00000038;--shadow-float:0 -8px 40px #00000073;--backdrop:#0a060799}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html{transition:background-color .3s}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;overscroll-behavior:none;background:var(--bg)}body{background:var(--bg);min-height:100dvh;color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0;font-size:1rem;line-height:1.5}body.no-scroll{overflow:hidden}h1,h2,h3{font-family:var(--font-title);font-optical-sizing:auto;letter-spacing:-.01em;text-wrap:balance;margin:0;font-weight:500;line-height:1.15}h1{font-size:1.9rem}h2{font-size:1.35rem}h3{font-size:1.1rem}p{text-wrap:pretty;margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation;background:0 0;border:0;padding:0}:focus-visible{outline:2.5px solid var(--accent-deep);outline-offset:2px;border-radius:6px}[hidden]{display:none!important}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.soft{color:var(--text-soft)}.small{font-size:.875rem}.center{text-align:center}#root{max-width:520px;min-height:100dvh;margin:0 auto;position:relative}.screen{padding:calc(var(--safe-top) + 24px) 20px calc(var(--tabbar-h) + var(--safe-bottom) + 32px);flex-direction:column;gap:20px;display:flex}:where(.screen)>:where(:nth-child(-n+5):not(.sprig,.view-in,.article-list)){animation:screen-in .26s var(--ease) backwards}:where(.screen)>:where(:nth-child(2)){animation-delay:25ms}:where(.screen)>:where(:nth-child(3)){animation-delay:50ms}:where(.screen)>:where(:nth-child(4)){animation-delay:75ms}:where(.screen)>:where(:nth-child(5)){animation-delay:.1s}.screen-full{min-height:100dvh;padding:calc(var(--safe-top) + 24px) 24px calc(var(--safe-bottom) + 24px);animation:screen-in .4s var(--ease) both;flex-direction:column;gap:20px;display:flex}.spacer{flex:1}.stack{flex-direction:column;gap:12px;display:flex}.stack>.chip{align-self:flex-start}.stack-l{flex-direction:column;gap:20px;display:flex}.row-between{justify-content:space-between;align-items:center;gap:12px;display:flex}@keyframes screen-in{0%{opacity:0;transform:translateY(8px)}}.card{background:var(--surface);border-radius:var(--radius-l);box-shadow:var(--shadow-card);padding:20px}.card-flat{background:var(--surface-2);border-radius:var(--radius-m);padding:16px}.eyebrow{letter-spacing:.09em;text-transform:uppercase;color:var(--text-soft);font-size:.75rem;font-weight:600}.btn{border-radius:var(--radius-pill);width:100%;min-height:52px;transition:transform .15s var(--ease), opacity .15s, background-color .2s;justify-content:center;align-items:center;gap:10px;padding:0 24px;font-size:1rem;font-weight:600;display:inline-flex}a.btn{text-decoration:none}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.4;cursor:default}.btn-primary{background:var(--primary-bg);color:var(--primary-fg)}.btn-soft{background:var(--accent-soft);color:var(--text)}.btn-ghost{color:var(--text-soft);min-height:44px}.btn-danger{color:var(--danger);background:0 0;box-shadow:inset 0 0 0 1.5px}.btn-big{min-height:64px;font-size:1.0625rem;box-shadow:0 10px 24px #3e2f2b2e}.icon-btn{width:44px;height:44px;color:var(--text);border-radius:50%;flex:none;place-items:center;transition:background-color .2s;display:inline-grid}.icon-btn:active{background:var(--surface-2)}.icon-btn:disabled{opacity:.3}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border-radius:var(--radius-pill);background:var(--surface-2);min-height:44px;color:var(--text);transition:background-color .2s, box-shadow .2s, transform .15s var(--ease);align-items:center;gap:6px;padding:0 16px;font-size:.9375rem;font-weight:500;display:inline-flex;box-shadow:inset 0 0 0 1.5px #0000}.chip:active{transform:scale(.96)}.chip[aria-pressed=true]{background:var(--accent-soft);box-shadow:inset 0 0 0 1.5px var(--accent-deep);font-weight:600}.chip .chip-check{width:0;transition:width .2s var(--ease);display:inline-flex;overflow:hidden}.chip[aria-pressed=true] .chip-check{width:16px}.chips-period .chip[aria-pressed=true]{background:var(--period-soft);box-shadow:inset 0 0 0 1.5px var(--period-deep)}.chips-period .chip svg{color:var(--period)}.chips-fertile .chip[aria-pressed=true]{background:var(--fertile-soft);box-shadow:inset 0 0 0 1.5px var(--fertile-deep)}.option{text-align:left;border-radius:var(--radius-m);background:var(--surface);width:100%;min-height:60px;box-shadow:var(--shadow-card), inset 0 0 0 1.5px transparent;align-items:center;gap:14px;padding:12px 18px;font-weight:500;transition:box-shadow .2s;display:flex}.option[aria-pressed=true]{box-shadow:var(--shadow-card), inset 0 0 0 2px var(--accent-deep);background:var(--accent-soft)}.option .radio{width:22px;height:22px;box-shadow:inset 0 0 0 1.5px var(--text-soft);color:var(--primary-fg);border-radius:50%;flex:none;place-items:center;display:grid}.option[aria-pressed=true] .radio{background:var(--primary-bg);box-shadow:none}.field{flex-direction:column;gap:6px;display:flex}.field>span,.label{color:var(--text-soft);font-size:.875rem;font-weight:600}.input{border-radius:var(--radius-m);border:1.5px solid var(--line);background:var(--surface);appearance:none;width:100%;min-height:52px;padding:12px 16px;font-size:1rem;transition:border-color .2s}.input:focus{border-color:var(--accent-deep);outline:none}.input::placeholder{color:var(--text-soft);opacity:.6}textarea.input{resize:none;min-height:96px}input[type=date].input,input[type=time].input{text-align:left;display:block}.input-big{font-family:var(--font-title);text-align:center;min-height:64px;font-size:1.5rem}.stepper{background:var(--surface);border-radius:var(--radius-pill);box-shadow:inset 0 0 0 1.5px var(--line);flex:none;justify-content:space-between;align-items:center;gap:8px;width:168px;padding:4px;display:flex}.stepper output{font-family:var(--font-title);text-align:center;font-variant-numeric:tabular-nums;min-width:2ch;font-size:1.25rem}.stepper .icon-btn{background:var(--surface-2)}.stepper[data-disabled=true]{opacity:.4}.switch-row{text-align:left;justify-content:space-between;align-items:center;gap:16px;width:100%;min-height:52px;display:flex}.switch{background:var(--line);border-radius:999px;flex:none;width:50px;height:30px;transition:background-color .25s;position:relative}.switch:after{content:"";width:24px;height:24px;transition:transform .25s var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}[aria-checked=true]>.switch{background:var(--fertile-deep)}[aria-checked=true]>.switch:after{transform:translate(20px)}.level{justify-content:space-between;align-items:center;gap:12px;min-height:48px;display:flex}.level-name{align-items:center;gap:10px;min-width:0;font-weight:500;display:inline-flex}.level-name svg{color:var(--text-soft);flex:none}.level-dots{flex:none;display:flex}.level-dot{place-items:center;width:40px;height:44px;display:grid}.level-dot:before{content:"";background:var(--surface-2);width:22px;height:22px;box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--text-soft) 55%, transparent);transition:background-color .2s, transform .2s var(--ease);border-radius:50%}.level-dot[data-on=true]:before{background:var(--accent);box-shadow:inset 0 0 0 1.5px var(--accent-deep);transform:scale(1.08)}.tabbar{z-index:20;width:100%;max-width:520px;padding:6px 8px calc(var(--safe-bottom) + 6px);background:color-mix(in srgb, var(--bg) 86%, transparent);-webkit-backdrop-filter:blur(18px)saturate(1.4);backdrop-filter:blur(18px)saturate(1.4);border-top:1px solid var(--line);grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tab{touch-action:manipulation;min-height:52px;color:var(--text-soft);border-radius:var(--radius-m);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:.6875rem;font-weight:600;text-decoration:none;transition:color .2s;display:flex;position:relative}.tab svg{transition:transform .3s var(--ease)}.tab.active{color:var(--text)}.tab.active svg{transform:translateY(-1px)scale(1.06)}.tab:before{content:"";background:var(--accent-soft);opacity:0;width:48px;height:30px;transition:opacity .25s, transform .3s var(--ease);z-index:-1;border-radius:999px;position:absolute;top:4px;transform:scaleX(.5)}.tab.active:before{opacity:1;transform:none}.sheet-backdrop{z-index:40;background:var(--backdrop);animation:.25s both fade-in;position:fixed;inset:0}.sheet{z-index:41;width:100%;max-width:520px;max-height:calc(100dvh - var(--safe-top) - 28px);background:var(--bg);box-shadow:var(--shadow-float);transform:translate(-50%, var(--drag,0px));animation:sheet-in .42s var(--ease) both;border-radius:28px 28px 0 0;outline:none;flex-direction:column;display:flex;position:fixed;bottom:0;left:50%}.sheet[data-closing=true]{animation:.24s ease-in both sheet-out}.sheet-backdrop[data-closing=true]{animation:.24s both fade-out}.sheet-grab{touch-action:none;cursor:grab;place-items:center;padding:10px 0 2px;display:grid}.sheet-grab:before{content:"";background:var(--line);border-radius:999px;width:40px;height:5px}.sheet-head{touch-action:none;justify-content:space-between;align-items:center;gap:12px;padding:4px 12px 10px 24px;display:flex}.sheet-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex-direction:column;gap:16px;padding:4px 20px 24px;display:flex;overflow-y:auto}.sheet-foot{padding:12px 20px calc(var(--safe-bottom) + 14px);border-top:1px solid var(--line);background:var(--bg)}@keyframes sheet-in{0%{transform:translate(-50%,100%)}}@keyframes sheet-out{to{transform:translate(-50%,100%)}}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}.list{background:var(--surface);border-radius:var(--radius-l);box-shadow:var(--shadow-card);overflow:hidden}.list-row{text-align:left;align-items:center;gap:14px;width:100%;min-height:60px;padding:10px 14px 10px 16px;display:flex}.list-row+.list-row{border-top:1px solid var(--line)}.list-row:active{background:var(--surface-2)}.list-icon{background:var(--accent-soft);width:38px;height:38px;color:var(--accent-deep);border-radius:12px;flex:none;place-items:center;display:grid}.list-icon.sage{background:var(--fertile-soft);color:var(--fertile-deep)}.list-icon.lav{background:var(--luteal-soft);color:var(--luteal-deep)}.list-icon.terra{background:var(--period-soft);color:var(--period-deep)}.list-text{flex:1;min-width:0}.list-text strong{font-weight:600;display:block}.list-text span{color:var(--text-soft);text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;display:block;overflow:hidden}.list-row>svg:last-child{color:var(--text-soft);flex:none}.notice{border-radius:var(--radius-m);background:var(--fertile-soft);color:var(--text);align-items:flex-start;gap:12px;padding:14px 16px;font-size:.9375rem;display:flex}.notice svg{color:var(--fertile-deep);flex:none;margin-top:1px}.notice.warn{background:var(--period-soft)}.notice.warn svg{color:var(--period-deep)}.toast{left:50%;bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 20px);z-index:60;background:var(--primary-bg);color:var(--primary-fg);animation:toast 2.4s var(--ease) both;pointer-events:none;white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:12px 20px;font-size:.9375rem;font-weight:600;display:inline-flex;position:fixed;transform:translate(-50%);box-shadow:0 10px 30px #00000038}@keyframes toast{0%{opacity:0;transform:translate(-50%,16px)scale(.94)}12%,82%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,8px)scale(.98)}}@media (prefers-contrast:more){:root{--text-soft:#54423d;--line:#b9a79c;--accent-deep:#7a3c47}:root[data-theme=dark]{--text-soft:#e6d8d1;--line:#8a7480;--accent-deep:#f6dada}.chip,.option,.input,.card{box-shadow:inset 0 0 0 1.5px var(--line)}}@media (prefers-contrast:more) and (prefers-color-scheme:dark){:root:not([data-theme=light]){--text-soft:#e6d8d1;--line:#8a7480;--accent-deep:#f6dada}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.toast{animation-name:toast-still;animation-duration:2.4s!important}@keyframes toast-still{0%,90%{opacity:1}to{opacity:0}}}.sprig{pointer-events:none;flex:none}.sprig-corner{top:calc(var(--safe-top) + 4px);opacity:.55;width:110px;position:absolute;right:6px;transform:rotate(14deg)}.sprig-hero{transform-origin:50% 100%;align-self:center;width:150px;margin-top:8vh;animation:7s ease-in-out infinite alternate sway}.sprig-home{top:calc(var(--safe-top) + 2px);opacity:.6;z-index:0;width:104px;position:absolute;right:4px;transform:rotate(16deg)}.sprig-inline{align-self:center;width:84px}@keyframes sway{0%{transform:rotate(-3deg)}to{transform:rotate(4deg)}}.display{letter-spacing:-.02em;font-size:2.25rem;font-weight:400}.lead{font-size:1.0625rem}.reveal{animation:screen-in .3s var(--ease) both}.install-logo{box-shadow:var(--shadow-card);border-radius:22px}.install-steps{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.install-step{animation:screen-in .5s var(--ease) both;align-items:flex-start;gap:16px;padding:16px;display:flex}.install-step-icon{background:var(--accent-soft);width:52px;height:52px;color:var(--accent-deep);border-radius:16px;flex:none;place-items:center;display:grid}.install-step h3{margin:2px 0 4px}.onb-head{justify-content:space-between;align-items:center;margin:-8px -10px 0;display:flex}.onb-progress{gap:6px;display:flex}.onb-progress span{background:var(--line);border-radius:999px;width:28px;height:5px;transition:background-color .3s}.onb-progress span[data-on=true]{background:var(--accent-deep)}.points{flex-direction:column;gap:14px;margin:8px 0 0;padding:0;list-style:none;display:flex}.points li{align-items:center;gap:14px;font-weight:500;display:flex}.legal-item{align-items:flex-start;gap:14px;padding:16px;display:flex}.legal-item h3{margin-bottom:4px}.home{position:relative}.home-head{z-index:1;flex-direction:column;gap:6px;max-width:78%;padding:8px 4px 4px;display:flex;position:relative}.home-cycle{flex-direction:column;align-items:center;gap:14px;padding:24px 20px;display:flex}.home-empty{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:28px 24px;display:flex}.ring{aspect-ratio:1;width:min(260px,68vw);position:relative}.ring svg{width:100%;height:100%;display:block;overflow:visible}.ring path,.ring circle{fill:none}.ring-track{stroke:var(--surface-2)}.ring-track-dashed{stroke:var(--line);stroke-dasharray:2 16;stroke-linecap:round}.ring-elapsed{stroke:var(--accent);stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;opacity:.55;animation:ring-draw 1.1s var(--ease) both}.ring-period{stroke:var(--period);stroke-linecap:round;stroke-dasharray:1;animation:ring-draw .9s var(--ease) both}.ring-predicted{animation:.8s .6s both fade-in}.ring .ring-predicted circle{fill:var(--period);opacity:.8}@keyframes ring-draw{0%{stroke-dashoffset:1px}}.ring-marker{animation:marker-in .6s .7s var(--ease) both}.ring .ring-marker-halo{fill:var(--surface);filter:drop-shadow(0 2px 5px #3e2f2b47)}.ring .ring-marker-dot{fill:var(--text)}@keyframes marker-in{0%{opacity:0;transform:scale(.3)}}.ring-center{color:var(--text);flex-direction:column;justify-content:center;align-items:center;gap:0;display:flex;position:absolute;inset:0}.ring-day{font-family:var(--font-title);letter-spacing:-.03em;font-variant-numeric:lining-nums;font-size:4.25rem;font-weight:400;line-height:1}.ring-empty .ring-center{color:var(--period);opacity:.8}.ring-empty{width:150px}.phase{font-family:var(--font-title);text-align:center;align-items:center;gap:6px;font-size:1.2rem;display:inline-flex}.phase.terra svg{color:var(--period)}.next-event{border-top:1px solid var(--line);text-align:center;flex-direction:column;align-items:center;gap:6px;width:100%;padding-top:14px;display:flex}.next-range{font-size:1.0625rem;font-weight:600}.next-range.left{font-family:var(--font-title);font-size:1.3rem;font-weight:500}.confidence{background:var(--surface-2);color:var(--text-soft);border-radius:999px;align-self:center;align-items:center;gap:8px;padding:5px 12px 5px 10px;font-size:.8125rem;font-weight:600;display:inline-flex}.card.stack>.confidence{align-self:flex-start}.confidence-bars{align-items:flex-end;gap:2px;height:12px;display:inline-flex}.confidence-bars i{background:var(--line);border-radius:2px;width:4px}.confidence-bars i:first-child{height:5px}.confidence-bars i:nth-child(2){height:8px}.confidence-bars i:nth-child(3){height:12px}.confidence-bars i[data-on=true]{background:var(--fertile-deep)}.logged-today{color:var(--fertile-deep);justify-content:center;align-items:center;gap:6px;margin-top:-8px;font-size:.9375rem;font-weight:600;display:flex}.log-section{border-radius:var(--radius-m);flex-direction:column;gap:12px;padding:18px;display:flex}.log-section h3{align-items:center;gap:10px;display:flex}.log-section h3 svg{color:var(--accent-deep)}.temp-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.temp-row .field{min-width:0}.input-temp{font-family:var(--font-title);font-variant-numeric:tabular-nums;font-size:1.25rem}.input[aria-invalid=true]{border-color:var(--danger)}.cal{flex-direction:column;gap:10px;padding:14px 12px 16px;display:flex}.cal h2{font-size:1.2rem}.cal-grid{grid-template-columns:repeat(7,1fr);gap:4px 2px;animation:.3s both fade-in;display:grid}.cal-week span{text-align:center;color:var(--text-soft);padding:4px 0;font-size:.75rem;font-weight:600}.cal-day{aspect-ratio:1/1.12;min-height:46px;color:var(--text);font-variant-numeric:tabular-nums;transition:background-color .2s, transform .15s var(--ease);border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:1px;display:flex;position:relative}.cal-day:active:not(:disabled){transform:scale(.92)}.cal-day:disabled{cursor:default;color:var(--text-soft)}.cal-num{font-size:.9375rem;font-weight:500;line-height:1.2}.cal-marks{align-items:center;gap:2px;height:13px;display:flex}.cal-day[data-period]{background:var(--period-soft)}.cal-day[data-period] .cal-marks svg:first-child{color:var(--period)}.cal-day[data-period] .cal-num{font-weight:700}.cal-day[data-predicted]{background:color-mix(in srgb, var(--period-soft) 45%, transparent);outline:1.5px dashed var(--period);outline-offset:-2px}.cal-day[data-fertile-estimate],.lg-fertile-estimate{outline:1.5px dotted var(--fertile-deep);outline-offset:-2px}.cal-day[data-today] .cal-num{background:var(--primary-bg);color:var(--primary-fg);text-align:center;border-radius:999px;min-width:26px;padding:1px 6px;font-weight:700}.mark-spot,.mark-entry{border-radius:50%;width:6px;height:6px;display:block}.mark-spot{box-shadow:inset 0 0 0 1.5px var(--period)}.mark-entry{background:var(--text-soft);opacity:.5;width:5px;height:5px}.mark-sign{color:var(--fertile-deep)}.legend{color:var(--text-soft);flex-direction:column;gap:8px;padding:0 6px;font-size:.875rem;display:flex}.legend>span{align-items:center;gap:10px;display:flex}.lg{border-radius:7px;flex:none;place-items:center;width:22px;height:22px;display:grid}.lg-period{background:var(--period-soft);color:var(--period)}.lg-predicted{background:color-mix(in srgb, var(--period-soft) 45%, transparent);outline:1.5px dashed var(--period);outline-offset:-2px}.segmented{border-radius:var(--radius-pill);background:var(--surface-2);grid-auto-columns:1fr;grid-auto-flow:column;padding:4px;display:grid}.segmented-fit{grid-auto-columns:auto}.segmented button{touch-action:manipulation;white-space:nowrap;border-radius:var(--radius-pill);min-width:0;min-height:44px;color:var(--text-soft);padding-inline:4px;font-weight:600;transition:background-color .25s,color .25s}.segmented button[aria-selected=true],.segmented button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-card)}.chart-card{flex-direction:column;gap:12px;padding:16px 0;display:flex}.chart-card>.row-between,.chart-card>p{padding:0 12px}.chart-card h2{font-size:1.2rem}.chart-wrap{position:relative}.chart-yaxis{z-index:1;pointer-events:none;background:linear-gradient(to right, var(--surface) 78%, transparent);position:absolute;top:0;left:0}.chart-scroll{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:0 0 4px;overflow-x:auto}.chart-scroll::-webkit-scrollbar{display:none}.chart{font-family:var(--font-body);display:block}.chart-grid{stroke:var(--line);stroke-width:1px}.chart-axis{fill:var(--text-soft);font-variant-numeric:tabular-nums;font-size:10px}.chart-day{fill:var(--text);font-variant-numeric:tabular-nums;font-size:10px;font-weight:600}.chart-day[data-future]{fill:var(--text-soft);opacity:.45}.chart-today{fill:var(--accent-soft);opacity:.7}.chart-postov{fill:var(--luteal-soft);opacity:.75}.chart-line{fill:none;stroke:var(--text-soft);stroke-width:1.6px;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:2000;animation:chart-draw 1.2s var(--ease) both}@keyframes chart-draw{0%{stroke-dashoffset:2000px}}.chart-point{stroke:var(--surface);stroke-width:1.5px}.chart-point-plain{fill:var(--text)}.chart-point-base{fill:var(--accent-deep)}.chart-point-high{fill:var(--luteal-deep)}.chart-point-ring{fill:none;stroke:var(--luteal-deep);stroke-width:1.2px}.chart-point-disturbed{fill:var(--surface);stroke:var(--text-soft);stroke-width:1.4px;stroke-dasharray:2 2}.chart-coverline{stroke:var(--period-deep);stroke-width:1.4px;stroke-dasharray:6 4}.chart-coverline-label{fill:var(--period-deep);font-size:10px;font-weight:600}.chart-mucus-dry{fill:var(--text-soft);opacity:.55}.chart-mucus-lesser{fill:var(--fertile-soft);stroke:var(--fertile-deep);stroke-width:1.2px}.chart-mucus-peak{fill:var(--fertile);stroke:var(--fertile-deep);stroke-width:1.2px}.chart-peak-label{fill:var(--text-soft);font-size:10px;font-weight:600}.chart-peak-label[data-peak]{fill:var(--fertile-deep);font-size:12px;font-weight:800}.chart-flow{fill:var(--period)}.chart-flow[data-spotting]{fill:none;stroke:var(--period);stroke-width:1.5px}.chart-hit{fill:#0000;cursor:pointer;outline-offset:-2px}.chart-legend-p{color:var(--fertile-deep);font-size:.8125rem;font-style:normal;font-weight:800}.lg-postov{background:var(--luteal-soft);box-shadow:inset 0 0 0 1px var(--luteal)}.summary{flex-direction:column;gap:10px;margin:0;display:flex}.summary dt{color:var(--text-soft);font-size:.8125rem;font-weight:600}.summary dd{margin:0;font-weight:600}.fert-card{flex-direction:column;gap:10px;display:flex}.fert-status{align-items:center;gap:12px;display:flex}.fert-status h2{font-size:1.2rem}.gest-weeks{font-family:var(--font-title);font-size:2rem;line-height:1.1}.option-text{flex-direction:column;gap:2px;display:flex}.option-text small{color:var(--text-soft);font-size:.875rem;font-weight:400}.mark-peak{color:var(--fertile-deep);font-size:.625rem;font-weight:800;line-height:1}.stats{grid-template-columns:1fr 1fr;gap:12px;display:grid}.stat{border-radius:var(--radius-m);flex-direction:column;gap:8px;padding:16px;display:flex}.stat-value{font-family:var(--font-title);font-size:1.6rem;line-height:1.1}.stat-value small{font-family:var(--font-body);color:var(--text-soft);font-size:.875rem}.history{margin:0;padding:0;list-style:none}.history-row{flex-direction:column;gap:8px;padding:14px 18px;display:flex}.history-row+.history-row{border-top:1px solid var(--line)}.bar{background:var(--surface-2);border-radius:999px;height:10px;overflow:hidden}.bar-cycle{background:var(--accent);height:100%;animation:bar-grow .8s var(--ease) both;transform-origin:0;border-radius:999px;display:block;overflow:hidden}.bar-cycle[data-open]{background:repeating-linear-gradient(-55deg, var(--accent) 0 6px, color-mix(in srgb, var(--accent) 45%, transparent) 6px 12px)}.bar-period{background:var(--period);border-radius:999px;height:100%;display:block}@keyframes bar-grow{0%{transform:scaleX(0)}}.profile-head{align-items:center;gap:16px;padding:8px 4px;display:flex}.avatar{width:72px;height:72px;font-family:var(--font-title);background:linear-gradient(140deg, var(--accent-soft), var(--luteal-soft));color:var(--accent-deep);box-shadow:inset 0 0 0 1.5px var(--accent);border-radius:50%;flex:none;place-items:center;font-size:2rem;display:grid}.theme-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.theme-option{border-radius:var(--radius-m);background:var(--surface);text-align:center;min-width:0;box-shadow:var(--shadow-card), inset 0 0 0 1.5px transparent;flex-direction:column;align-items:center;gap:8px;padding:12px 8px 14px;transition:box-shadow .2s;display:flex}.theme-option[aria-pressed=true]{box-shadow:var(--shadow-card), inset 0 0 0 2px var(--accent-deep)}.theme-name{align-items:center;gap:6px;font-weight:600;display:inline-flex}.theme-swatch{aspect-ratio:1/1.1;width:100%;box-shadow:inset 0 0 0 1px var(--line);background:#fbf6f1;border-radius:14px;flex-direction:column;justify-content:center;gap:6px;padding:10px;display:flex}.theme-swatch i{background:#d8a7a7;border-radius:999px;height:8px;display:block}.theme-swatch i:first-child{background:#3e2f2b;width:55%}.theme-swatch i:nth-child(3){background:#c47a5a;width:70%}[data-theme-preview=dark] .theme-swatch{background:#231820}[data-theme-preview=dark] .theme-swatch i:first-child{background:#f3e8e1}[data-theme-preview=dark] .theme-swatch i:nth-child(3){background:#d48e70}[data-theme-preview=system] .theme-swatch{background:linear-gradient(115deg,#fbf6f1 50%,#231820 50%)}[data-theme-preview=system] .theme-swatch i:first-child{background:#b9978f}.article-list{flex-direction:column;gap:12px;display:flex}.article-card{text-align:left;border-radius:var(--radius-m);background:var(--surface);width:100%;box-shadow:var(--shadow-card);transition:transform .15s var(--ease);align-items:flex-start;gap:14px;padding:16px;display:flex}.article-card:active{transform:scale(.985)}.card-title{font-family:var(--font-title);text-wrap:balance;margin-bottom:4px;font-size:1.1rem;font-weight:500;line-height:1.15;display:block}.article-meta{letter-spacing:.04em;color:var(--text-soft);margin-top:8px;font-size:.75rem;font-weight:600;display:block}.article{flex-direction:column;gap:14px;font-size:1.0313rem;line-height:1.62;display:flex}.article h3{margin-top:8px;font-size:1.2rem}.article ul{flex-direction:column;gap:6px;margin:0;padding-left:1.2em;display:flex}.article-sources{margin-top:8px;font-size:.9375rem;line-height:1.5}.article-sources ul{color:var(--text-soft);margin-top:8px}.prose{flex-direction:column;gap:14px;display:flex}.sheet-body>.card{border-radius:var(--radius-m)}.tag-add{grid-template-columns:1fr auto;align-items:center;gap:10px;display:grid}.tag-add .field{min-width:0}.tag-add .btn{width:auto;min-height:52px;padding-inline:16px}.tag-manage{margin:0;padding:0;list-style:none}.tag-manage li{overflow-wrap:anywhere;justify-content:space-between;align-items:center;gap:12px;min-height:44px;display:flex}.tag-manage li+li{border-top:1px solid var(--line)}.trend{flex-direction:column;gap:6px;display:flex}.trend-chart{width:100%;height:56px;display:block}.trend-bar{fill:var(--accent)}.trend-chart.terra .trend-bar{fill:var(--period)}.trend-chart.lav .trend-bar{fill:var(--luteal)}.trend-empty{fill:var(--surface-2)}.trend-line{fill:none;stroke:var(--accent-deep);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.ring-gestation{stroke:var(--accent);stroke-linecap:round;stroke-dasharray:1;animation:ring-draw 1.1s var(--ease) both}.gest-icon{aspect-ratio:1;opacity:0;width:62%;display:block}.gest-icon[data-ready]{opacity:1;animation:gest-in .8s var(--ease) both}.gest-icon img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;transform-origin:50% 60%;will-change:transform;backface-visibility:hidden;width:100%;height:100%;display:block}.gest-icon[data-ready] img{animation:4.5s ease-in-out .8s infinite alternate gest-float}.gest-icon-early{color:var(--accent-deep);place-items:center;display:grid}.gest-icon-early svg{width:56px;height:56px}@keyframes gest-in{0%{opacity:0;transform:scale(.55)rotate(-10deg)}}@keyframes gest-float{0%{transform:translateY(2px)rotate(-2.5deg)}to{transform:translateY(-5px)rotate(2.5deg)}}.gest-size{flex-direction:column;align-items:center;gap:4px;display:flex}.view-in>:nth-child(-n+3){animation:screen-in .22s var(--ease) backwards}.history-row:nth-child(n+7) .bar-cycle,.article-list>.reveal:nth-child(n+7){animation:none}.history-row,.mode-cycles li{content-visibility:auto;contain-intrinsic-size:auto 84px}.partner-photo{background:var(--accent-soft);width:56px;height:56px;color:var(--accent-deep);font-size:1.5rem}.move-card{box-shadow:inset 0 0 0 1.5px var(--period), var(--shadow-card)}.move-steps{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.move-steps li{flex-direction:column;gap:8px;padding:16px;display:flex}.move-steps li[data-done]{box-shadow:inset 0 0 0 1.5px var(--fertile)}.move-step-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.move-url{font-family:var(--font-title);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;margin:0;font-size:1.15rem}.nowrap{white-space:nowrap}.lock{justify-content:center;align-items:center;gap:28px}.pinpad{flex-direction:column;align-items:center;gap:22px;width:100%;padding:8px 0;display:flex}.pin-error{color:var(--danger);font-weight:600}.pin-dots{gap:18px;display:flex}.pin-dots i{width:16px;height:16px;box-shadow:inset 0 0 0 1.5px var(--text-soft);transition:background-color .15s, transform .2s var(--ease);border-radius:50%}.pin-dots i[data-on=true]{background:var(--accent-deep);box-shadow:none;transform:scale(1.12)}.pin-dots[data-error]{animation:pin-shake .4s var(--ease)}@keyframes pin-shake{20%,60%{transform:translate(-9px)}40%,80%{transform:translate(9px)}}.pin-keys{grid-template-columns:repeat(3,72px);justify-content:center;gap:14px 22px;display:grid}.pin-key{background:var(--surface);width:72px;height:72px;box-shadow:var(--shadow-card);font-family:var(--font-title);color:var(--text);transition:background-color .15s, transform .12s var(--ease);border-radius:50%;place-items:center;font-size:1.75rem;display:grid}.pin-key:active:not(:disabled){background:var(--accent-soft);transform:scale(.94)}.pin-key:disabled{opacity:.45}.pin-key-ghost{box-shadow:none;background:0 0}.update-bar{top:calc(var(--safe-top) + 8px);z-index:70;background:var(--primary-bg);max-width:calc(100% - 24px);min-height:44px;color:var(--primary-fg);animation:screen-in .4s var(--ease) both;border-radius:999px;align-items:center;gap:8px;padding:8px 18px;font-size:.875rem;font-weight:600;display:inline-flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000038}.reminders{flex-direction:column;gap:10px;display:flex}.reminder,.report-link{border-radius:var(--radius-m);text-align:left;width:100%;color:inherit;align-items:center;gap:14px;padding:14px 16px;text-decoration:none;display:flex}.reminder-action{color:var(--accent-deep);flex:none;font-size:.8125rem;font-weight:700}.list-text .wrap{white-space:normal}.report-link>svg:last-child{color:var(--text-soft);flex:none}.alert-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.alert-list li{align-items:flex-start;gap:10px;display:flex}.alert-list svg{color:var(--period-deep);flex:none;margin-top:3px}.photo-row{align-items:center;gap:16px;display:flex}.avatar{overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.btn-small{cursor:pointer;width:auto;min-height:44px;padding:0 18px;font-size:.9375rem}.three-row{grid-template-columns:repeat(3,1fr);align-items:end;gap:10px;display:grid}.three-row .field{min-width:0}.summary-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.summary-list li{font-family:var(--font-title);align-items:flex-start;gap:10px;font-size:1.0625rem;line-height:1.35;display:flex}.summary-list svg{color:var(--accent-deep);flex:none;margin-top:3px}.reflection{text-align:center;border-top:1px solid var(--line);flex-direction:column;align-items:center;gap:6px;margin:4px 0 0;padding:18px 12px 4px;display:flex}.reflection blockquote{font-family:var(--font-title);color:var(--text-soft);text-wrap:balance;margin:0;font-size:1.0625rem;font-style:italic;line-height:1.45}.sprig-reflection{opacity:.8;width:34px}.featured{border-radius:var(--radius-l);background:var(--accent-soft);flex-direction:column;gap:12px;padding:16px;display:flex}.splash{z-index:100;background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:22px;transition:opacity .32s;display:flex;position:fixed;inset:0}.splash[data-leaving]{opacity:0;pointer-events:none}.splash-mark{place-items:center;width:160px;height:160px;display:grid;position:relative}.splash-mark svg{position:absolute;inset:0;transform:rotate(-90deg)}.splash-ring{fill:none;stroke:var(--accent);stroke-width:2.5px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:splash-ring .95s var(--ease) 50ms forwards}.splash-mark img{animation:splash-bloom .85s var(--ease) both;border-radius:50%}.splash-greeting{font-family:var(--font-title);letter-spacing:-.01em;text-align:center;animation:splash-rise .6s var(--ease) .35s both;padding:0 24px;font-size:1.6rem}@keyframes splash-ring{to{stroke-dashoffset:0}}@keyframes splash-bloom{0%{opacity:0;transform:scale(.72)rotate(-14deg)}}@keyframes splash-rise{0%{opacity:0;transform:translateY(10px)}}.phase-list{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.phase-card{border-radius:var(--radius-m);flex-direction:column;gap:12px;display:flex}.phase-card[data-here]{box-shadow:var(--shadow-card), inset 0 0 0 2px var(--accent-deep)}.phase-head{align-items:center;gap:14px;display:flex}.phase-here{background:var(--accent-soft);color:var(--accent-deep);border-radius:999px;align-self:flex-start;align-items:center;gap:6px;padding:5px 12px;font-size:.8125rem;font-weight:700;display:inline-flex}.phase-facts{flex-direction:column;gap:10px;margin:0;display:flex}.phase-facts dt{letter-spacing:.06em;text-transform:uppercase;color:var(--text-soft);font-size:.75rem;font-weight:700}.phase-facts dd{margin:2px 0 0}.mode-cycles{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.mode-cycles li{border-top:1px solid var(--line);flex-direction:column;gap:8px;padding-top:12px;display:flex}.import-counts{flex-direction:column;gap:4px;margin:0;padding-left:1.2em;font-weight:500;display:flex}.how summary{min-height:44px;color:var(--accent-deep);cursor:pointer;align-items:center;font-weight:600;display:flex}.how dl{flex-direction:column;gap:12px;margin:4px 0 12px;display:flex}.how-list{flex-direction:column;gap:8px;margin:4px 0 10px;padding-left:1.2em;font-size:.9375rem;display:flex}.stamp{stroke:var(--line);stroke-width:1px}.stamp-red{fill:var(--period)}.stamp-green,.stamp-greenBaby{fill:var(--fertile)}.stamp-yellow{fill:#e6c766}.stamp-whiteBaby{fill:#fff}.stamp-baby{fill:var(--text)}.how dt{font-weight:600}.how dd{color:var(--text-soft);margin:2px 0 0;font-size:.9375rem}.report-screen{padding-bottom:calc(var(--safe-bottom) + 32px)}.report-screen .icon-btn{color:var(--text)}.report{flex-direction:column;gap:22px;display:flex}.report section{flex-direction:column;gap:10px;display:flex}.report h3{border-bottom:1px solid var(--line);padding-bottom:6px}.report-head{align-items:center;gap:14px;display:flex}.report-head img{border-radius:12px}.report-grid{grid-template-columns:1fr 1fr;gap:10px 16px;margin:0;display:grid}.report-grid dt{color:var(--text-soft);font-size:.75rem;font-weight:600}.report-grid dd{overflow-wrap:anywhere;margin:0;font-weight:600}.report-list{flex-direction:column;gap:6px;margin:0;padding-left:1.2em;display:flex}.report-table-wrap{overflow-x:auto}.report-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.8125rem}.report-table th,.report-table td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:7px 8px 7px 0}.report-table th{color:var(--text-soft);text-transform:uppercase;letter-spacing:.05em;font-size:.6875rem}.report-figure{break-inside:avoid;margin:0 0 8px}.report-figure figcaption{margin-bottom:4px;font-size:.8125rem;font-weight:600}.mini-chart{width:100%;height:auto}.mini-chart .chart-axis{font-size:9px}.mini-line{stroke-dasharray:none;animation:none}@media print{:root,:root[data-theme=dark],:root:not([data-theme=light]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--surface:#fff;--surface-2:#f3ece6;--line:#d9cdc4;--text:#1f1614;--text-soft:#5b4a45;--accent:#d8a7a7;--accent-soft:#f5e4e1;--accent-deep:#8a4652;--period:#b9684a;--period-soft:#f4dfd4;--period-deep:#8a4428;--fertile:#8fa587;--fertile-soft:#e4ecdf;--fertile-deep:#47603f;--luteal:#a593bb;--luteal-soft:#ece6f2;--luteal-deep:#5b4a73;--shadow-card:none}@page{margin:14mm}html,body{background:#fff}.no-print,.tabbar,.toast,.update-bar{display:none!important}#root{max-width:none}.screen{padding:0;animation:none}.report{border-radius:0;padding:0;font-size:11pt}.report section{break-inside:avoid}.report-grid{grid-template-columns:repeat(3,1fr)}}
