@charset "UTF-8";:root{color-scheme:light;--c-brand: #b00020;--c-brand-deep: #9c001c;--c-brand-soft: #fff1f1;--c-pink: #ff8fa3;--c-pink-soft: #ffc1d0;--c-bg: #ffffff;--c-bg-alt: #fff1f1;--c-surface: #ffffff;--c-border: #efe4e4;--c-pill: #f3ecec;--c-pill-text: #5c5c5c;--c-text: #111111;--c-text-2: #4a4a4a;--c-text-muted: #8a8a8a;--c-on-brand: #ffffff;--c-success: #34c759;--c-danger: #b00020;--c-mode-cycle: #ff4d8d;--c-mode-conceive: #7c4dff;--c-mode-pregnancy: #b00020;--c-mode-postpartum: #2dd4bf;--s-xxs: 4px;--s-xs: 8px;--s-sm: 12px;--s-md: 16px;--s-lg: 20px;--s-xl: 24px;--s-xxl: 32px;--s-3xl: 48px;--s-4xl: 72px;--s-5xl: 104px;--r-sm: 12px;--r-md: 16px;--r-lg: 22px;--r-xl: 28px;--r-pill: 999px;--font-sans: "Poppins", system-ui, -apple-system, "Segoe UI", roboto, sans-serif;--t-display: clamp(2.25rem, 1.4rem + 3.6vw, 3.75rem);--t-h1: clamp(1.9rem, 1.3rem + 2.6vw, 3rem);--t-h2: clamp(1.5rem, 1.15rem + 1.5vw, 2.25rem);--t-h3: clamp(1.15rem, 1rem + .6vw, 1.4rem);--t-lead: clamp(1.02rem, .96rem + .35vw, 1.2rem);--t-body: 1rem;--t-sm: .9rem;--t-xs: .8rem;--e-1: 0 1px 2px rgba(17, 17, 17, .04), 0 2px 8px rgba(176, 0, 32, .04);--e-2: 0 4px 12px rgba(17, 17, 17, .06), 0 12px 32px rgba(176, 0, 32, .06);--e-3: 0 12px 28px rgba(17, 17, 17, .08), 0 28px 64px rgba(176, 0, 32, .1);--container: 1160px;--container-narrow: 800px;--hd-h: 72px;--ease: cubic-bezier(.22, 1, .36, 1);--dur: .24s}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--hd-h) + var(--s-md))}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}body{margin:0;font-family:var(--font-sans);font-size:var(--t-body);line-height:1.6;color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased;overflow-wrap:break-word}h1,h2,h3,h4{margin:0;line-height:1.18;letter-spacing:-.015em;font-weight:700;text-wrap:balance}p{margin:0;text-wrap:pretty}ul,ol{margin:0;padding:0;list-style:none}a{color:inherit;text-decoration:none}img,svg{display:block;max-width:100%;height:auto}button{font:inherit;cursor:pointer}:focus-visible{outline:3px solid var(--c-mode-conceive);outline-offset:2px;border-radius:var(--r-sm)}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--s-lg)}@media(min-width:768px){.container{padding-inline:var(--s-xxl)}}.container--narrow{max-width:var(--container-narrow)}.section{padding-block:var(--s-4xl)}@media(min-width:768px){.section{padding-block:var(--s-5xl)}}.section--tint{background:var(--c-bg-alt)}.skip-link{position:absolute;left:var(--s-md);top:-100px;z-index:100;padding:var(--s-sm) var(--s-md);background:var(--c-brand);color:var(--c-on-brand);border-radius:var(--r-sm);font-weight:600;transition:top var(--dur) var(--ease)}.skip-link:focus{top:var(--s-md)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;scrollbar-width:thin}.scroll-x:focus-visible{outline:3px solid var(--c-mode-conceive);outline-offset:2px;border-radius:var(--r-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-xs);padding:14px var(--s-xl);border:1px solid transparent;border-radius:var(--r-xl);font-size:var(--t-body);font-weight:600;line-height:1.2;text-align:center;transition:transform var(--dur) var(--ease),background-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease)}@media(prefers-reduced-motion:no-preference){.btn:hover:not(:disabled){transform:translateY(-2px)}}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--c-brand);color:var(--c-on-brand);box-shadow:var(--e-1)}.btn--primary:hover:not(:disabled){background:var(--c-brand-deep);box-shadow:var(--e-2)}.btn--secondary{background:var(--c-surface);color:var(--c-brand);border-color:var(--c-border)}.btn--secondary:hover:not(:disabled){border-color:var(--c-pink);box-shadow:var(--e-1)}.btn--ghost{background:transparent;color:var(--c-text-2)}.btn--ghost:hover:not(:disabled){color:var(--c-brand);background:var(--c-brand-soft)}.btn--lg{padding:17px var(--s-xxl);font-size:var(--t-lead)}.btn--block{width:100%}.badge{display:inline-flex;align-items:center;gap:var(--s-xxs);padding:6px var(--s-sm);border-radius:var(--r-pill);font-size:var(--t-xs);font-weight:600;letter-spacing:.01em}.badge--brand{background:var(--c-brand-soft);color:var(--c-brand-deep)}.badge--neutral{background:var(--c-pill);color:var(--c-pill-text)}.badge--free{background:#eaf9ee;color:#1c7a35}.eyebrow{display:inline-flex;align-items:center;gap:var(--s-xs);margin-bottom:var(--s-sm);font-size:var(--t-sm);font-weight:600;color:var(--c-brand);text-transform:uppercase;letter-spacing:.08em}.section-head{max-width:44rem;margin-bottom:var(--s-xxl)}@media(min-width:768px){.section-head{margin-bottom:var(--s-3xl)}}.section-head--center{margin-inline:auto;text-align:center}.section-title{font-size:var(--t-h2)}.section-sub{margin-top:var(--s-md);font-size:var(--t-lead);color:var(--c-text-2)}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--e-1);padding:var(--s-xl);transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease)}@media(prefers-reduced-motion:no-preference){.card--hover:hover{transform:translateY(-4px);box-shadow:var(--e-2);border-color:var(--c-pink-soft)}}.card__icon{display:grid;place-items:center;width:48px;height:48px;margin-bottom:var(--s-md);border-radius:var(--r-md);background:var(--c-brand-soft);color:var(--c-brand)}.card__title{font-size:var(--t-h3);margin-bottom:var(--s-xs)}.card__text{color:var(--c-text-2);font-size:var(--t-sm)}.card__benefit{display:flex;align-items:flex-start;gap:var(--s-xs);margin-top:var(--s-md);padding-top:var(--s-md);border-top:1px solid var(--c-border);font-size:var(--t-sm);font-weight:500;color:var(--c-brand-deep)}.grid{display:grid;gap:var(--s-lg)}@media(min-width:768px){.grid--2{grid-template-columns:repeat(2,1fr)}}@media(min-width:768px){.grid--3{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.grid--3{grid-template-columns:repeat(3,1fr)}}@media(min-width:480px){.grid--4{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.grid--4{grid-template-columns:repeat(4,1fr)}}.field{display:flex;flex-direction:column;gap:6px}.field__label{font-size:var(--t-sm);font-weight:600;color:var(--c-text)}.field__hint{font-size:var(--t-xs);color:var(--c-text-muted)}.field__error{font-size:var(--t-xs);font-weight:500;color:var(--c-danger)}.input,.select{width:100%;padding:13px var(--s-md);font:inherit;color:var(--c-text);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-sm);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.input::placeholder,.select::placeholder{color:var(--c-text-muted)}.input:hover,.select:hover{border-color:var(--c-pink-soft)}.input:focus,.select:focus{border-color:var(--c-brand);box-shadow:0 0 0 4px #b000201a;outline:none}.input[aria-invalid=true],.select[aria-invalid=true]{border-color:var(--c-danger)}.select{appearance:none;background-repeat:no-repeat;background-position:right var(--s-md) center;padding-right:var(--s-xxl)}.alert{display:flex;gap:var(--s-sm);padding:var(--s-md);border-radius:var(--r-md);font-size:var(--t-sm);border:1px solid transparent}.alert--error{background:#fdf2f3;border-color:#f3c9ce;color:#8a0018}.alert--success{background:#f1fbf3;border-color:#bfe8c9;color:#1c7a35}.alert--info{background:var(--c-brand-soft);border-color:var(--c-border);color:var(--c-text-2)}.accordion{border:1px solid var(--c-border);border-radius:var(--r-lg);overflow:hidden;background:var(--c-surface)}.accordion__item+.accordion__item{border-top:1px solid var(--c-border)}.accordion__trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--s-md);width:100%;padding:var(--s-lg) var(--s-xl);background:none;border:0;text-align:left;font-size:var(--t-body);font-weight:600;color:var(--c-text)}.accordion__trigger:hover{background:var(--c-brand-soft)}.accordion__trigger svg{flex-shrink:0;color:var(--c-brand);transition:transform var(--dur) var(--ease)}.accordion__trigger[aria-expanded=true] svg{transform:rotate(180deg)}.accordion__panel{padding:0 var(--s-xl) var(--s-lg);color:var(--c-text-2);font-size:var(--t-sm)}.tabs{display:inline-flex;gap:var(--s-xxs);padding:var(--s-xxs);background:var(--c-pill);border-radius:var(--r-pill)}.tabs__btn{padding:10px var(--s-lg);border:0;border-radius:var(--r-pill);background:transparent;color:var(--c-pill-text);font-size:var(--t-sm);font-weight:600;transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease)}.tabs__btn[aria-selected=true],.tabs__btn[aria-pressed=true]{background:var(--c-surface);color:var(--c-brand);box-shadow:var(--e-1)}.checklist{display:grid;gap:var(--s-sm)}.checklist__item{display:flex;align-items:flex-start;gap:var(--s-sm);font-size:var(--t-sm);color:var(--c-text-2)}.checklist__item svg{flex-shrink:0;margin-top:3px;color:var(--c-success)}.prose{color:var(--c-text-2)}.prose p+p{margin-top:var(--s-md)}.prose h2{margin-top:var(--s-xxl);margin-bottom:var(--s-sm);font-size:var(--t-h3);color:var(--c-text)}.dash__main,.pane-stack{display:grid;gap:var(--s-xl);align-content:start}.dash__head{display:flex;flex-wrap:wrap;gap:var(--s-md);align-items:flex-end;justify-content:space-between}.dash__title{font-size:var(--t-h2)}.dash__sub{margin-block-start:var(--s-xs);max-width:62ch;color:var(--c-text-2);font-size:var(--t-sm)}.stats{display:grid;gap:var(--s-md);grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr))}.stat{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--e-1);display:flex;align-items:flex-start;gap:var(--s-md);padding:var(--s-lg)}.stat__mark{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border-radius:var(--r-md);background:var(--c-brand-soft);color:var(--c-brand)}.stat__body{min-width:0}.stat__label{display:flex;align-items:center;gap:var(--s-xs);font-size:var(--t-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--c-text-muted)}.stat__value{margin-block-start:2px;font-size:clamp(1.6rem,1.3rem + 1vw,2.1rem);font-weight:700;line-height:1.1;color:var(--c-text)}.stat__value--text{font-size:var(--t-h3)}.stat__hint{font-size:var(--t-xs);color:var(--c-text-muted)}.pane{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--e-1);overflow:hidden}.pane__head{display:flex;flex-wrap:wrap;gap:var(--s-sm);align-items:baseline;justify-content:space-between;padding:var(--s-md) var(--s-lg);border-block-end:1px solid var(--c-border);background:var(--c-bg-alt)}.pane__title{display:flex;align-items:center;gap:var(--s-xs);font-size:var(--t-sm);font-weight:700;color:var(--c-text)}.pane__title app-icon{color:var(--c-brand)}.pane__count{font-size:var(--t-xs);font-weight:600;color:var(--c-text-muted)}.pane__body{padding:var(--s-lg)}.dtable{width:100%;min-width:560px;border-collapse:collapse}.dtable th,.dtable td{padding:var(--s-sm) var(--s-lg);text-align:left;font-size:var(--t-sm);border-block-end:1px solid var(--c-border);vertical-align:middle}.dtable thead th{font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--c-text-muted);background:var(--c-bg-alt);white-space:nowrap}.dtable tbody tr:last-child th,.dtable tbody tr:last-child td{border-block-end:0}.dtable tbody tr:hover{background:var(--c-brand-soft)}.dtable--rows tbody tr{cursor:pointer}.dtable__open{padding:0;border:0;background:none;font:inherit;font-weight:700;color:var(--c-brand-deep);text-align:left;text-decoration:underline;text-decoration-color:var(--c-pink-soft);text-underline-offset:3px}.dtable__open:hover{color:var(--c-brand);text-decoration-color:var(--c-brand)}.dtable__actions{display:flex;flex-wrap:wrap;gap:var(--s-xs)}.dtable__actions .btn{padding:8px var(--s-md);font-size:var(--t-xs);border-radius:var(--r-sm)}.state{display:grid;justify-items:center;gap:var(--s-xs);padding:var(--s-3xl) var(--s-lg);text-align:center;color:var(--c-text-2);font-size:var(--t-sm)}.state app-icon{color:var(--c-text-muted)}.state__title{font-weight:700;color:var(--c-text)}.state--boxed{border:1px dashed var(--c-border);border-radius:var(--r-md);background:var(--c-surface)}.hours{display:grid;gap:var(--s-xs)}.hours__row{display:grid;gap:var(--s-xs);align-items:center;padding:var(--s-sm) var(--s-md);border:1px solid var(--c-border);border-radius:var(--r-sm);background:var(--c-surface)}@media(min-width:768px){.hours__row{grid-template-columns:1fr auto;gap:var(--s-md)}}.hours__day{display:flex;align-items:center;gap:var(--s-sm);font-weight:600;font-size:var(--t-sm)}.hours__times{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-xs);font-size:var(--t-sm);color:var(--c-text-2)}.hours__times .input{width:auto;min-width:7.5rem;padding:8px var(--s-sm)}.hours__closed{font-size:var(--t-sm);color:var(--c-text-muted)}.form,.form__row{display:grid;gap:var(--s-md)}@media(min-width:768px){.form__row--2{grid-template-columns:repeat(2,1fr)}}@media(min-width:768px){.form__row--3{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.form__row--3{grid-template-columns:repeat(3,1fr)}}.form__actions{display:flex;flex-wrap:wrap;gap:var(--s-xs);align-items:center}.chipset{display:grid;gap:var(--s-xs)}.chipset+.chipset{margin-block-start:var(--s-lg)}.chipset__label{font-size:var(--t-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--c-text-muted)}.chips{display:flex;flex-wrap:wrap;gap:var(--s-xs)}.chip{position:relative;display:inline-flex;align-items:center;gap:var(--s-xxs);padding:8px var(--s-md);border:1px solid var(--c-border);border-radius:var(--r-pill);background:var(--c-surface);color:var(--c-text-2);font-size:var(--t-sm);cursor:pointer;transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.chip input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}.chip:hover{border-color:var(--c-pink)}.chip:has(input:checked){border-color:var(--c-brand);background:var(--c-brand-soft);color:var(--c-brand);font-weight:600}.chip:has(input:focus-visible){outline:3px solid var(--c-mode-conceive);outline-offset:2px;border-radius:var(--r-sm)}.switch{display:flex;align-items:center;gap:var(--s-sm);font-size:var(--t-sm)}.switch input{inline-size:1.15rem;block-size:1.15rem;accent-color:var(--c-brand)}.cal{display:grid;gap:var(--s-xs)}.cal__nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-xs)}.cal__month{font-weight:700;text-transform:capitalize}.cal__week,.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--s-xxs)}.cal__weekday{padding-block:var(--s-xxs);text-align:center;font-size:var(--t-xs);font-weight:700;color:var(--c-text-muted)}.cal__day{display:grid;gap:2px;justify-items:center;align-content:center;min-block-size:3.25rem;padding:var(--s-xxs);border:1px solid var(--c-border);border-radius:var(--r-sm);background:var(--c-surface);color:var(--c-text);font-size:var(--t-sm);cursor:pointer;transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.cal__day:hover{border-color:var(--c-pink);background:var(--c-brand-soft)}.cal__day.is-today{border-color:var(--c-brand);font-weight:700}.cal__day.is-selected{background:var(--c-brand);border-color:var(--c-brand);color:var(--c-on-brand)}.cal__day:disabled{border-color:transparent;background:none;color:var(--c-text-muted);cursor:default}.cal__marks{display:flex;gap:2px;min-block-size:6px}.cal__mark{inline-size:6px;block-size:6px;border-radius:var(--r-pill);background:var(--c-pink)}.cal__mark--period{background:var(--c-mode-cycle)}.cal__mark--fertile{background:var(--c-mode-conceive)}.cal__mark--log{background:var(--c-mode-postpartum)}.cal__legend{display:flex;flex-wrap:wrap;gap:var(--s-md);font-size:var(--t-xs);color:var(--c-text-2)}.cal__legend span{display:inline-flex;align-items:center;gap:var(--s-xxs)}.rank{display:grid;gap:var(--s-sm)}.rank__row{display:grid;grid-template-columns:minmax(8rem,1fr) 2fr auto;gap:var(--s-sm);align-items:center;font-size:var(--t-sm)}.rank__bar{block-size:8px;border-radius:var(--r-pill);background:var(--c-pill);overflow:hidden}.rank__fill{display:block;block-size:100%;border-radius:var(--r-pill);background:var(--c-brand)}.rank__value{font-weight:700;font-variant-numeric:tabular-nums}
