@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./fraunces-vietnamese-wght-normal.CnvboYUG.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./fraunces-latin-ext-wght-normal.Ca2vKHc0.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@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");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./plus-jakarta-sans-vietnamese-wght-normal.qRpaaN48.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./plus-jakarta-sans-latin-ext-wght-normal.DmpS2jIq.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./plus-jakarta-sans-latin-wght-normal.eXO_dkmS.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-display: "Fraunces Variable", "Iowan Old Style", Georgia, serif;--font-body: "Plus Jakarta Sans Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--bg: #faf5f0;--surface: #ffffff;--surface-2: #f4ece5;--text: #241b2f;--muted: #72687b;--line: #ece2da;--night: #221a38;--night-2: #3a2c5e;--moon: #f6d38d;--accent: #6f4fe0;--on-accent: #ffffff;--accent-soft: #ece6fd;--menstrual: #e2506b;--menstrual-soft: #fde4e8;--follicular: #2f9c86;--follicular-soft: #dcf2ec;--ovulatory: #d2812a;--ovulatory-soft: #fdead2;--luteal: #8a6ae8;--luteal-soft: #ece6fd;--period: var(--menstrual);--period-soft: var(--menstrual-soft);--fertile: var(--ovulatory);--fertile-soft: var(--ovulatory-soft);--ovulation: #d9761a;--low: var(--follicular);--low-soft: var(--follicular-soft);--plum: var(--accent);--plum-soft: var(--accent-soft);--on-plum: var(--on-accent);--ink-k: 70%;--ink-to: #000;--radius: 22px;--radius-s: 14px;--shadow: 0 1px 2px rgba(34, 26, 56, .04), 0 8px 28px rgba(34, 26, 56, .07);--shadow-l: 0 20px 50px rgba(34, 26, 56, .18);color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #141021;--surface: #1e1830;--surface-2: #272040;--text: #f3eefb;--muted: #a79fbb;--line: #2f2747;--night: #0f0b1c;--night-2: #2a2050;--accent: #a48cff;--on-accent: #160f2b;--accent-soft: #2c2350;--menstrual: #f0708a;--menstrual-soft: #3d1d2a;--follicular: #4cc0a7;--follicular-soft: #163a33;--ovulatory: #f6a956;--ovulatory-soft: #3d2b16;--luteal: #a88cff;--luteal-soft: #2c2350;--ovulation: #f6a956;--ink-k: 78%;--ink-to: #fff;--shadow: 0 1px 0 rgba(255,255,255,.03);--shadow-l: 0 20px 50px rgba(0,0,0,.5);color-scheme:dark}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-body);font-size:15px;line-height:1.45;background:var(--bg);color:var(--text);min-height:100vh;min-height:100dvh;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;font-weight:700;letter-spacing:-.01em}.display{font-family:var(--font-display);font-weight:600;letter-spacing:-.02em;font-optical-sizing:auto}p{margin:0}a{color:var(--accent)}button{font:inherit;color:inherit}.muted{color:var(--muted)}.center{text-align:center}.small{font-size:.84rem}.xs{font-size:.74rem}.cap:first-letter{text-transform:uppercase}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:10px}:focus:not(:focus-visible){outline:none}.skip{position:absolute;left:12px;top:-60px;z-index:50;background:var(--night);color:#fff;padding:10px 16px;border-radius:12px;font-weight:700;text-decoration:none}.skip:focus{top:calc(10px + env(safe-area-inset-top))}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.btn{appearance:none;border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;font-weight:700;font-size:.95rem;padding:13px 20px;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;transition:transform .15s ease,background .2s,box-shadow .2s}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);color:var(--on-accent);border-color:transparent;box-shadow:0 8px 20px color-mix(in srgb,var(--accent) 30%,transparent)}.btn.dark{background:var(--night);color:#fff;border-color:transparent}.btn.ghost{background:transparent;border-color:transparent}.btn.danger{color:color-mix(in srgb,var(--menstrual) var(--ink-k),var(--ink-to));border-color:color-mix(in srgb,var(--menstrual) 40%,transparent)}.btn.wide{width:100%}.btn.sm{padding:8px 14px;font-size:.82rem}.icon-btn{appearance:none;border:1px solid var(--line);background:var(--surface);color:var(--text);width:42px;height:42px;border-radius:50%;cursor:pointer;flex:none;display:inline-flex;align-items:center;justify-content:center}.icon-btn:disabled{opacity:.35}input,textarea,select{font:inherit;color:var(--text);background:var(--surface);border:1.5px solid var(--line);border-radius:var(--radius-s);padding:12px 14px;width:100%;margin-top:6px;transition:border-color .2s}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent)}label{display:block;font-size:.86rem;font-weight:600;margin-bottom:14px;color:var(--text)}label.check{display:flex;gap:10px;align-items:center;font-weight:500}label.check input{width:20px;height:20px;margin:0;accent-color:var(--accent);flex:none}.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.card{background:var(--surface);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);border:1px solid var(--line)}.card+.card{margin-top:12px}.card h3{font-size:1rem;margin-bottom:10px}.section-title{font-size:1.15rem;margin:28px 0 12px;font-family:var(--font-display);font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:8px}.section-title a{font-family:var(--font-body);font-size:.82rem;font-weight:700;text-decoration:none}.eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.disclaimer{display:flex;gap:10px;align-items:flex-start;background:var(--surface-2);border-radius:var(--radius-s);padding:12px 14px;font-size:.8rem;color:var(--muted);margin:20px 0}.disclaimer.small{font-size:.76rem}.disclaimer :global(svg){flex:none;margin-top:1px}.error{background:var(--menstrual-soft);color:var(--text);border-radius:var(--radius-s);padding:11px 14px;font-size:.9rem;margin-bottom:14px}.ok{background:var(--follicular-soft);border-radius:var(--radius-s);padding:11px 14px;font-size:.9rem;margin-bottom:14px}.st-period{background:var(--menstrual)!important;color:#fff!important}.st-predicted{background:var(--menstrual-soft)!important;border:1.5px dashed var(--menstrual)!important;color:color-mix(in srgb,var(--menstrual) var(--ink-k),var(--ink-to))!important}.st-fertile{background:var(--ovulatory-soft)!important;color:var(--text)!important}.st-peak{background:color-mix(in srgb,#f5a54e 50%,var(--surface))!important;color:var(--text)!important}.st-ovulation{background:var(--ovulatory)!important;color:#fff!important}.chips{display:flex;flex-wrap:wrap;gap:8px}.chips button,.chip{appearance:none;border:1.5px solid var(--line);background:var(--surface);color:var(--text);font:inherit;font-size:.86rem;font-weight:600;padding:9px 14px;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.chips button.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.auth-page{min-height:100dvh;display:flex;flex-direction:column;background:var(--bg)}.auth-sky{position:relative;overflow:hidden;color:#fff;text-align:center;background:radial-gradient(120% 90% at 70% 0%,#4b3a86 0%,var(--night) 60%);padding:calc(48px + env(safe-area-inset-top)) 24px 72px}.auth-sky h1{font-family:var(--font-display);font-size:2.6rem;font-weight:600;letter-spacing:-.02em;margin-top:14px}.auth-sky p{opacity:.8;margin-top:6px}.auth-body{flex:1;margin-top:-36px;position:relative;background:var(--bg);border-radius:32px 32px 0 0;padding:28px 20px calc(28px + env(safe-area-inset-bottom))}.auth-body>*{max-width:420px;margin-left:auto;margin-right:auto}.auth-body h2{font-family:var(--font-display);font-size:1.6rem;font-weight:600;margin-bottom:4px}.auth-body form{margin-top:20px}.auth-body form .btn{width:100%;margin-top:6px}.auth-foot{text-align:center;margin-top:20px;font-size:.92rem}.auth-foot a{font-weight:700;text-decoration:none}button,.btn,.tabbar,.chip{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}@media(display-mode:standalone){html,body{overscroll-behavior-y:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.auth-sky .stars{position:absolute;inset:0;pointer-events:none;opacity:.8;background-image:radial-gradient(1.5px 1.5px at 10% 25%,#fff,transparent),radial-gradient(1px 1px at 30% 70%,#fff,transparent),radial-gradient(1.2px 1.2px at 78% 30%,#fff,transparent),radial-gradient(1px 1px at 90% 70%,#fff,transparent),radial-gradient(1px 1px at 55% 15%,#fff,transparent),radial-gradient(1.4px 1.4px at 20% 50%,#fff,transparent)}.auth-sky>*{position:relative}.lang-top{position:absolute;top:calc(14px + env(safe-area-inset-top));right:14px;z-index:2}
