:root{--ground:#fbf7f5;--surface:#fff;--surface-sunk:#f5eeea;--hairline:#ece2dd;--hairline-strong:#ddd0c9;--ink:#2e2030;--ink-soft:#6b5a66;--ink-muted:#9b8b94;--bloom:#b23a5b;--bloom-deep:#8e2b48;--bloom-tint:#fbedf1;--phase-menstruation:#b23a5b;--phase-follicular:#3e7a6b;--phase-fertile:#5e5a9e;--phase-pms:#b4713a;--danger:#a93f35;--focus:#5e5a9e;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-xl:26px;--shadow-card:0 1px 2px #2e20300a, 0 8px 24px -12px #2e20301f;--shadow-lift:0 2px 4px #2e20300f, 0 18px 44px -20px #2e203038;--ease:cubic-bezier(.22, .61, .36, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis-weight:none}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--surface-sunk);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overscroll-behavior-y:none;margin:0;font-family:Plus Jakarta Sans,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:15px;line-height:1.55}h1,h2,h3,h4,p,figure{margin:0}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}input,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}.tnum{font-variant-numeric:tabular-nums}.display{letter-spacing:-.015em;font-optical-sizing:auto;font-family:Fraunces,ui-serif,Georgia,Times New Roman,serif;font-weight:600}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}::selection{background:var(--bloom-tint);color:var(--bloom-deep)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.app{background:var(--ground);flex-direction:column;max-width:520px;min-height:100dvh;margin-inline-start:auto;margin-inline-end:auto;display:flex;position:relative}@media (min-width:640px){.app{max-width:680px;box-shadow:0 0 0 1px var(--hairline)}}.topbar{z-index:20;background:color-mix(in srgb, var(--ground) 88%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:border-color .2s var(--ease);border-bottom:1px solid #0000;justify-content:space-between;align-items:center;gap:12px;padding:10px 18px;display:flex;position:sticky;top:0}.topbar--scrolled{border-bottom-color:var(--hairline)}.topbar__mark{letter-spacing:-.02em;color:var(--ink);align-items:center;gap:9px;font-family:Fraunces,ui-serif,Georgia,serif;font-size:19px;font-weight:600;display:flex}.topbar__moon{color:var(--bloom);flex:none}.main{flex:1;order:2;min-width:0;padding:4px 18px 28px}@media (min-width:640px){.main{padding-inline-start:26px;padding-inline-end:26px}}.tabbar{z-index:20;background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--hairline);padding-bottom:env(safe-area-inset-bottom,0);order:3;grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:sticky;bottom:0}.tabbar__item{color:var(--ink-muted);transition:color .16s var(--ease);justify-items:center;gap:3px;padding:9px 4px 8px;font-size:10.5px;font-weight:500;display:grid}.tabbar__item:hover{color:var(--ink-soft)}.tabbar__item[aria-current=page]{color:var(--bloom);font-weight:700}.tabbar__item svg{transition:transform .2s var(--ease)}.tabbar__item[aria-current=page] svg{transform:translateY(-1px)}@media (min-width:1000px){.app{grid-template:"rail head""rail body"1fr/248px minmax(0,1fr);align-content:start;max-width:none;min-height:100dvh;margin:0;display:grid}.app:before{content:"";background:var(--surface);border-right:1px solid var(--hairline);grid-area:rail}.topbar{background:color-mix(in srgb, var(--ground) 88%, transparent);border-bottom:1px solid #0000;grid-area:head;padding:16px clamp(24px,4vw,56px);position:sticky;top:0}.topbar__mark{display:none}.main{grid-area:body;width:100%;max-width:980px;padding:8px clamp(24px,4vw,56px) 56px}.tabbar{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:none;order:0;grid-area:rail;grid-auto-columns:auto;grid-auto-flow:row;align-content:start;align-self:start;gap:2px;height:100dvh;padding:22px 12px;display:grid;position:sticky;top:0}.tabbar:before{content:"Lunas";letter-spacing:-.02em;color:var(--ink);padding:0 12px 22px;font-family:Fraunces,ui-serif,Georgia,serif;font-size:21px;font-weight:600;display:block}.tabbar__item{border-radius:var(--radius-md);transition:background-color .16s var(--ease), color .16s var(--ease);place-items:center start;gap:11px;padding:10px 12px;font-size:13.5px;display:flex}.tabbar__item:hover{background:var(--surface-sunk)}.tabbar__item[aria-current=page]{background:var(--bloom-tint);color:var(--bloom-deep)}.tabbar__item[aria-current=page] svg{transform:none}}.card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-lg);padding:18px}.card--sunk{background:var(--surface-sunk);border-color:#0000}.card--flat{box-shadow:none}.btn{border-radius:var(--radius-md);transition:background-color .16s var(--ease), border-color .16s var(--ease), transform .12s var(--ease), color .16s var(--ease);white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:12px 16px;font-size:14px;font-weight:700;line-height:1.2;display:inline-flex}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{cursor:not-allowed;opacity:.45}.btn--primary{background:var(--bloom);color:#fff}.btn--primary:hover:not(:disabled){background:var(--bloom-deep)}.btn--ghost{background:var(--surface);border:1px solid var(--hairline);color:var(--ink);font-weight:500}.btn--ghost:hover:not(:disabled){background:var(--surface-sunk);border-color:var(--hairline-strong)}.btn--quiet{border-radius:var(--radius-sm);color:var(--ink-soft);padding:8px 10px;font-size:13px;font-weight:500}.btn--quiet:hover:not(:disabled){background:var(--surface-sunk);color:var(--ink)}.btn--block{width:100%}.chip{border:1px solid var(--hairline);background:var(--surface-sunk);color:var(--ink-soft);transition:border-color .16s var(--ease), background-color .16s var(--ease), color .16s var(--ease);border-radius:999px;align-items:center;gap:6px;padding:7px 12px;font-size:12.5px;font-weight:500;line-height:1.3;display:inline-flex}.chip:hover{border-color:var(--hairline-strong);color:var(--ink)}.chip[aria-pressed=true]{background:var(--surface);border-color:var(--chip-color,var(--bloom));color:var(--chip-color,var(--bloom));font-weight:700}.chip svg{flex:none}.field{gap:6px;display:grid}.field__label{color:var(--ink-soft);letter-spacing:.01em;font-size:12px;font-weight:700}.field__hint{color:var(--ink-muted);font-size:11.5px;line-height:1.5}.field__error{color:var(--danger);align-items:flex-start;gap:5px;font-size:12px;display:flex}.input{border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--ground);width:100%;transition:border-color .16s var(--ease), background-color .16s var(--ease);padding:11px 13px;font-size:14.5px;font-weight:500}.input:hover{border-color:var(--hairline-strong)}.input:focus{border-color:var(--focus);background:var(--surface);outline:none;box-shadow:0 0 0 3px #5e5a9e1f}.input[aria-invalid=true]{border-color:var(--danger)}textarea.input{resize:vertical;min-height:92px;font-weight:400;line-height:1.6}.section-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);justify-content:space-between;align-items:baseline;gap:12px;margin:22px 0 10px;font-size:11.5px;font-weight:700;display:flex}.section-label:first-child{margin-top:0}.section-label__trailing{letter-spacing:0;text-transform:none;color:var(--ink-muted);font-size:11.5px;font-weight:500}.legend{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.legend__item{color:var(--ink-soft);align-items:center;gap:6px;font-size:11.5px;display:inline-flex}.legend__swatch{border-radius:50%;flex:none;width:8px;height:8px}.rows{display:grid}.row{border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:center;gap:14px;padding:11px 0;display:flex}.row:last-child{border-bottom:none;padding-bottom:0}.row:first-child{padding-top:0}.row__left{align-items:center;gap:10px;min-width:0;display:flex}.row__icon{border-radius:var(--radius-sm);flex:none;place-items:center;width:28px;height:28px;display:grid}.row__label{color:var(--ink-soft);font-size:13px}.row__value{color:var(--ink);text-align:right;font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}.stack{gap:12px;display:grid}.cluster{flex-wrap:wrap;gap:7px;display:flex}.dial{animation:dial-in .9s var(--ease) both;place-items:center;margin-inline-start:auto;margin-inline-end:auto;display:grid;position:relative}.dial svg{display:block;overflow:visible;transform:rotate(-90deg)}.dial__track{fill:none;stroke:var(--surface-sunk)}.dial__seg{fill:none;stroke-linecap:butt;transition:stroke-dasharray .6s var(--ease), stroke-dashoffset .6s var(--ease)}.dial__center{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding-inline-start:28%;padding-inline-end:28%;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.dial__label{letter-spacing:.09em;text-transform:uppercase;color:var(--ink-muted);font-size:10.5px;font-weight:700}.dial__value{letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums;font-family:Fraunces,ui-serif,Georgia,serif;font-size:clamp(38px,11vw,56px);font-weight:600;line-height:1.02}.dial__hint{color:var(--ink-soft);margin-top:2px;font-size:12px}@keyframes dial-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.setup{background:radial-gradient(120% 80% at 50% 0%, color-mix(in srgb, var(--bloom-tint) 70%, transparent), transparent 60%), var(--ground);place-items:center;min-height:100dvh;padding:24px 20px 48px;display:grid}.setup__panel{gap:26px;width:100%;max-width:440px;display:grid}@media (min-width:900px){.setup{grid-template-columns:minmax(0,420px) minmax(0,360px);align-content:center;gap:clamp(40px,7vw,96px)}.setup__panel{max-width:none}}.setup__mark{color:var(--ink);align-items:center;gap:8px;margin-bottom:18px;font-family:Fraunces,ui-serif,Georgia,serif;font-size:18px;font-weight:600;display:inline-flex}.setup__mark svg{color:var(--bloom)}.setup__kicker{letter-spacing:.1em;text-transform:uppercase;color:var(--bloom);margin-bottom:12px;font-size:11px;font-weight:700}.setup__heading{letter-spacing:-.025em;color:var(--ink);text-wrap:balance;font-family:Fraunces,ui-serif,Georgia,serif;font-size:clamp(30px,7.4vw,40px);font-weight:600;line-height:1.1}.setup__body{color:var(--ink-soft);text-wrap:pretty;max-width:38ch;margin-top:14px;font-size:14px;line-height:1.68}.setup__form{gap:18px;display:grid}.setup__quick{grid-template-columns:repeat(3,1fr);gap:7px;margin-top:2px;display:grid}.setup__privacy{color:var(--ink-muted);align-items:flex-start;gap:7px;margin-top:-4px;font-size:11.5px;line-height:1.55;display:flex}.setup__privacy svg{flex:none;margin-top:1px}.setup__preview{display:none}@media (min-width:900px){.setup__preview{align-content:center;gap:14px;display:grid}}.setup__preview-note{color:var(--ink-muted);max-width:30ch;font-size:12px;line-height:1.6}.today{animation:rise .38s var(--ease) both;gap:0;display:grid}.today__greeting{margin-bottom:18px}.today__hello{letter-spacing:-.025em;color:var(--ink);text-wrap:balance;font-family:Fraunces,ui-serif,Georgia,serif;font-size:clamp(24px,6vw,30px);font-weight:600;line-height:1.15}.today__date{color:var(--ink-soft);text-transform:capitalize;margin-top:3px;font-size:13px}.today__phase{letter-spacing:.01em;align-items:center;gap:8px;font-size:12px;font-weight:700;display:flex}.today__phase-dot{border-radius:50%;flex:none;width:7px;height:7px}.today__phase-day{color:var(--ink-muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px;font-weight:500}.today__sentence{border-top:1px solid var(--hairline);color:var(--ink-soft);text-align:center;text-wrap:pretty;margin-top:14px;padding-top:14px;font-size:13px;line-height:1.62}.today__actions{grid-template-columns:1fr 1fr;gap:9px;margin-top:12px;margin-bottom:4px;display:grid}@media (max-width:380px){.today__actions{grid-template-columns:1fr}}.today .section-label{margin-top:22px}.today__care-head{color:var(--ink);margin-bottom:6px;font-size:15px;font-weight:700}.today__care-body{color:var(--ink-soft);text-wrap:pretty;font-size:13.5px;line-height:1.66}.today__columns{gap:0;display:grid}@media (min-width:760px){.today__columns{grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);align-items:start;gap:34px}.today__columns>*{min-width:0}}.today__dial-card{gap:4px;display:grid}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.today__period{border-radius:var(--radius-md);background:var(--phase-period-tint,#fbedf1);border:1px solid color-mix(in srgb, var(--bloom) 18%, transparent);margin-top:12px;padding:12px 14px}.today__period-text{color:var(--ink-soft);text-wrap:pretty;margin-bottom:10px;font-size:12.5px;line-height:1.55}.today__period .btn{padding:10px 14px;font-size:13px}.today__pms{border-radius:var(--radius-md);background:var(--phase-pms-tint,#fbf1e6);border:1px solid color-mix(in srgb, var(--phase-pms) 22%, transparent);color:var(--ink-soft);text-wrap:pretty;align-items:flex-start;gap:9px;margin-top:20px;padding:11px 13px;font-size:12.5px;line-height:1.55;display:flex}.today__pms svg{color:var(--phase-pms);flex:none;margin-top:2px}.today__pms strong{color:var(--ink)}.today__period-note{color:var(--ink-muted);text-align:center;margin-top:8px;font-size:11px}.cal{animation:rise .38s var(--ease) both}.cal__head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.cal__title{color:var(--ink);text-align:center;flex:1;font-size:15px;font-weight:700}.cal__nav{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--ink-soft);transition:background-color .16s var(--ease), color .16s var(--ease);place-items:center;display:grid}.cal__nav:hover:not(:disabled){background:var(--surface-sunk);color:var(--ink)}.cal__nav:disabled{opacity:.3;cursor:not-allowed}.cal__grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.cal__dow{text-align:center;color:var(--ink-muted);padding-bottom:4px;font-size:10.5px;font-weight:700}.cal__day{aspect-ratio:1;font-variant-numeric:tabular-nums;color:var(--ink);transition:background-color .14s var(--ease), box-shadow .14s var(--ease), color .14s var(--ease);border-radius:10px;place-items:center;font-size:13px;font-weight:500;display:grid;position:relative}.cal__day:hover{box-shadow:inset 0 0 0 1px var(--hairline-strong)}.cal__day--out{color:#d8cdd2}.cal__day--today{box-shadow:inset 0 0 0 1.5px var(--ink);font-weight:700}.cal__day--selected{box-shadow:inset 0 0 0 1.5px var(--bloom);font-weight:700}.cal__day--selected.cal__day--today{box-shadow:inset 0 0 0 2px var(--bloom)}.cal__day--logged:after{content:"";background:var(--ink-soft);border-radius:50%;width:3px;height:3px;position:absolute;bottom:5px}.cal__detail-date{color:var(--ink);font-size:14px;font-weight:700}.cal__detail-phase{margin-top:2px;font-size:12.5px}.cal__detail-list{border-top:1px solid var(--hairline);gap:7px;margin-top:12px;padding-top:12px;display:grid}.cal__detail-item{color:var(--ink-soft);align-items:flex-start;gap:8px;font-size:12.5px;line-height:1.55;display:flex}.cal__detail-item svg{color:var(--ink-muted);flex:none;margin-top:2px}.cal__empty{color:var(--ink-muted);margin-top:10px;font-size:12.5px}.cal__note{color:var(--ink-soft);margin-top:14px;font-size:12px;line-height:1.62}.cal__note strong{color:var(--ink)}@media (min-width:760px){.cal{grid-template-columns:minmax(0,420px) minmax(0,1fr);align-items:start;gap:34px;display:grid}.cal__side{position:sticky;top:76px}}.about{animation:rise .38s var(--ease) both}.about__hero{margin-bottom:20px}.about__kicker{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:8px;font-size:11px;font-weight:700}.about__phase{align-items:center;gap:9px;margin-bottom:8px;display:flex}.about__dot{border-radius:50%;flex:none;width:9px;height:9px}.about__title{letter-spacing:-.025em;color:var(--ink);text-wrap:balance;font-family:Fraunces,ui-serif,Georgia,serif;font-size:clamp(25px,6.6vw,32px);font-weight:600;line-height:1.15}.about__body{color:var(--ink-soft);text-wrap:pretty;max-width:62ch;font-size:14px;line-height:1.68}.about__lists{gap:14px;display:grid}@media (min-width:760px){.about__lists{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:20px}}.about__list-title{align-items:center;gap:7px;margin-bottom:11px;font-size:12.5px;font-weight:700;display:flex}.about__list-title svg{flex:none}.about__list--do .about__list-title{color:var(--phase-follicular)}.about__list--dont .about__list-title{color:var(--danger)}.about__items{gap:10px;margin:0;padding:0;list-style:none;display:grid}.about__item{color:var(--ink);text-wrap:pretty;align-items:flex-start;gap:9px;font-size:13.5px;line-height:1.55;display:flex}.about__bullet{border-radius:50%;flex:none;width:5px;height:5px;margin-top:8px}.about__list--do .about__bullet{background:var(--phase-follicular)}.about__list--dont .about__bullet{background:var(--danger)}.about__track{grid-auto-columns:1fr;grid-auto-flow:column;gap:3px;margin-top:22px;margin-bottom:8px;display:grid}.about__track-seg{background:var(--surface-sunk);border-radius:2px;height:4px;position:relative;overflow:hidden}.about__track-fill{opacity:.32;border-radius:2px;position:absolute;top:0;bottom:0;left:0;right:0}.about__track-seg[data-active=true] .about__track-fill{opacity:1}.about__track-seg[data-active=true]{height:6px;margin-top:-2px}.about__track-labels{color:var(--ink-muted);text-align:center;grid-auto-columns:1fr;grid-auto-flow:column;gap:3px;font-size:10px;display:grid}.about__track-labels span[data-active=true]{color:var(--ink);font-weight:700}.about__track-labels span{color:var(--ink-muted)}.about__ahead{color:var(--ink-soft);align-items:flex-start;gap:9px;font-size:12.5px;line-height:1.6;display:flex}.about__ahead svg{flex:none;margin-top:2px}.about__ahead strong{color:var(--ink)}.about__disclaimer{color:var(--ink-muted);gap:8px;margin-top:16px;font-size:11.5px;line-height:1.62;display:flex}.about__disclaimer svg{flex:none;margin-top:1px}.journal{animation:rise .38s var(--ease) both;gap:0;display:grid}.journal__datebar{flex-wrap:nowrap;align-items:center;gap:10px;margin-top:0;padding:6px 6px 2px;display:flex}.journal__date-center{text-align:center;flex:1}.journal__date-title{color:var(--ink);font-variant-numeric:tabular-nums;font-size:14px;font-weight:700}.journal__date-sub{color:var(--ink-muted);margin-top:1px;font-size:11.5px}.journal__row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;display:flex}.journal__saved{color:var(--phase-follicular);align-items:center;gap:5px;font-size:12px;font-weight:500;display:inline-flex}.journal__counter{color:var(--ink-muted);text-align:right;font-variant-numeric:tabular-nums;margin-top:4px;font-size:10.5px}.journal__toggles{gap:10px;margin-top:4px;display:grid}.journal__switch{border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:center;gap:14px;padding:11px 0;display:flex}.journal__switch:last-child{border-bottom:none}.journal__switch-text{color:var(--ink);font-size:13px}.journal__switch-hint{color:var(--ink-muted);margin-top:1px;font-size:11.5px}.switch{background:var(--hairline-strong);width:42px;height:24px;transition:background-color .18s var(--ease);border-radius:999px;flex:none;position:relative}.switch[aria-checked=true]{background:var(--phase-follicular)}.switch:after{content:"";width:18px;height:18px;transition:transform .2s var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #2e203040}.switch[aria-checked=true]:after{transform:translate(18px)}@media (min-width:760px){.journal{grid-template-columns:minmax(0,1fr);max-width:640px}}.settings{animation:rise .38s var(--ease) both;gap:0;display:grid}.settings__stepper{justify-content:space-between;align-items:center;gap:14px;display:flex}.settings__value{letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums;font-family:Fraunces,ui-serif,Georgia,serif;font-size:26px;font-weight:600;line-height:1.2}.settings__controls{flex:none;gap:6px;display:flex}.settings__step{border-radius:var(--radius-sm);border:1px solid var(--hairline);background:var(--surface);width:36px;height:36px;color:var(--ink);transition:background-color .16s var(--ease), border-color .16s var(--ease);place-items:center;display:grid}.settings__step:hover:not(:disabled){background:var(--surface-sunk);border-color:var(--hairline-strong)}.settings__step:disabled{opacity:.35;cursor:not-allowed}.settings__phase{border-bottom:1px solid var(--hairline);gap:11px;margin-bottom:12px;padding-bottom:12px;display:flex}.settings__phase:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.settings__phase-bar{border-radius:2px;flex:none;width:3px}.settings__phase-title{color:var(--ink);margin-bottom:2px;font-size:12.5px;font-weight:700}.settings__phase-body{color:var(--ink-soft);text-wrap:pretty;font-size:12px;line-height:1.55}.settings__disclaimer{color:var(--ink-muted);gap:8px;margin-top:16px;font-size:11.5px;line-height:1.6;display:flex}.settings__disclaimer svg{flex:none;margin-top:1px}.settings__grid{gap:0;display:grid}@media (min-width:760px){.settings__grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:0 34px}}
