@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/poppins-devanagari-400-normal-CJDn6rn8.woff2)format("woff2"),url(/assets/poppins-devanagari-400-normal-CqVvlrh5.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/poppins-latin-ext-400-normal-by3JarPu.woff2)format("woff2"),url(/assets/poppins-latin-ext-400-normal-DaBSavcJ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Poppins;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/poppins-latin-400-normal-cpxAROuN.woff2)format("woff2"),url(/assets/poppins-latin-400-normal-BOb3E3N0.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/poppins-devanagari-600-normal-STEjXBNN.woff2)format("woff2"),url(/assets/poppins-devanagari-600-normal-ClASKHrr.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/poppins-latin-ext-600-normal-CAhIAdZj.woff2)format("woff2"),url(/assets/poppins-latin-ext-600-normal-Df5ffKXP.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Poppins;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/poppins-latin-600-normal-zEkxB9Mr.woff2)format("woff2"),url(/assets/poppins-latin-600-normal-BJdTmd5m.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/poppins-devanagari-700-normal-O-jipLrW.woff2)format("woff2"),url(/assets/poppins-devanagari-700-normal-fHs-vx92.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/poppins-latin-ext-700-normal-cby-RkWa.woff2)format("woff2"),url(/assets/poppins-latin-ext-700-normal-DctTR6Tg.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Poppins;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/poppins-latin-700-normal-Qrb0O0WB.woff2)format("woff2"),url(/assets/poppins-latin-700-normal-BVuQR_eA.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2)format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2)format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2)format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2)format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2)format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-BasfLYem.woff2)format("woff2"),url(/assets/inter-cyrillic-500-normal-CxZf_p3X.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-ext-500-normal-C4iEst2y.woff2)format("woff2"),url(/assets/inter-greek-ext-500-normal-2j5mBUwD.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-500-normal-BIZE56-Y.woff2)format("woff2"),url(/assets/inter-greek-500-normal-Xzm54t5V.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-vietnamese-500-normal-DOriooB6.woff2)format("woff2"),url(/assets/inter-vietnamese-500-normal-mJboJaSs.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2)format("woff2"),url(/assets/inter-latin-ext-500-normal-BxGbmqWO.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2)format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2)format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2)format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2)format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2)format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2)format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2)format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-heading:"Poppins",sans-serif;--font-body:"Inter",sans-serif;font-family:var(--font-body);color:#292322;font-synthesis:none;background:#fbf7f2}*{box-sizing:border-box}body{background:#fbf7f2;min-width:320px;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:3px;outline:3px solid #39755e}.loading-screen{color:#6d6561;place-items:center;min-height:100vh;display:grid}.brand{color:#292322;font-family:var(--font-heading);letter-spacing:-.06em;font-size:1.45rem;font-weight:700;text-decoration:none}.brand span{color:#9b3d58}.auth-page{background:radial-gradient(circle at 80% 15%,#f3dce2,#0000 24%),#fbf7f2;align-content:center;gap:2rem;min-height:100vh;padding:clamp(1.5rem,5vw,4rem);display:grid}.auth-page>.brand{position:absolute;top:2rem;left:clamp(1.5rem,5vw,4rem)}.auth-card{background:#fffdfa;border:1px solid #e7ddd4;width:min(100%,470px);margin:auto;padding:clamp(2rem,5vw,3.5rem);box-shadow:0 24px 65px #462a2e1c}.eyebrow{color:#9b3d58;letter-spacing:.13em;text-transform:uppercase;font-size:.68rem;font-weight:800}.auth-card h1,.app-main h1,.card h2,.settings-card h2,.log-panel h2,.cycle-summary strong{font-family:var(--font-heading)}.auth-card h1,.app-main h1{letter-spacing:-.08em;margin:.75rem 0 1rem;font-size:clamp(2.3rem,5vw,4.3rem);font-weight:700;line-height:.96}.auth-intro,.settings-card p{color:#6d6561}.auth-card form,.settings-card{gap:1rem;margin-top:2rem;display:grid}.auth-card label,.log-panel label,.settings-card label{color:#554d49;gap:.42rem;font-size:.82rem;font-weight:700;display:grid}.auth-card input,.log-panel input,.log-panel select,.log-panel textarea,.settings-card input,.settings-card select{color:#292322;background:#fffdfa;border:1px solid #d9cec4;border-radius:8px;width:100%;padding:.78rem .85rem}.primary-button,.secondary-button,.quiet-button,.text-button,.choice,.symptom,.icon-button{border:0}.primary-button{color:#fff;background:#9b3d58;border-radius:999px;padding:.85rem 1rem;font-weight:800;box-shadow:0 8px 18px #68243a2e}.primary-button:hover{background:#68243a}.auth-links{flex-wrap:wrap;gap:.7rem;margin-top:1.4rem;display:flex}.auth-links button,.text-button{color:#782e46;background:0 0;border:0;padding:0;text-decoration:underline}.auth-links button{font-size:.87rem}.form-message{color:#782e46;margin-top:1rem;font-size:.86rem}.legal-line{color:#6d6561;margin:auto;font-size:.75rem}.legal-line a{color:#782e46}.google-button{color:#292322;background:#fffdfa;border:1px solid #d9cec4;border-radius:999px;justify-content:center;align-items:center;gap:.65rem;width:100%;padding:.78rem 1rem;font-weight:700;display:flex}.google-button:hover{background:#f8f0eb;border-color:#9b3d58}.google-button:disabled{cursor:wait;opacity:.65}.google-mark{flex:none;width:20px;height:20px}.auth-divider{color:#968a82;align-items:center;gap:.7rem;margin:1.35rem 0 -1rem;font-size:.7rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:#e7ddd4;flex:1;height:1px}.app-shell{min-height:100vh}.app-header{background:#fffdfa;border-bottom:1px solid #e7ddd4;justify-content:space-between;align-items:center;height:76px;padding:0 clamp(1rem,4vw,3.5rem);display:flex}.header-actions{align-items:center;gap:1rem;display:flex}.account-email{color:#6d6561;font-size:.78rem}.quiet-button{color:#782e46;background:#f3dce2;border-radius:999px;padding:.5rem .7rem;font-size:.75rem;font-weight:800}.app-body{grid-template-columns:225px minmax(0,1fr);max-width:1500px;min-height:calc(100vh - 76px);margin:auto;display:grid}.app-nav{border-right:1px solid #e7ddd4;padding:2.4rem 1.4rem}.nav-button{color:#6d6561;text-align:left;background:0 0;border:0;border-radius:9px;align-items:center;gap:.7rem;width:100%;padding:.8rem .9rem;font-weight:700;display:flex}.nav-button span{color:#9b3d58;width:18px}.nav-button:hover,.nav-button.active{color:#292322;background:#f3dce2}.app-main{padding:clamp(1.5rem,5vw,5rem)}.status{color:#285d47;background:#e4f0e7;border-radius:8px;justify-content:space-between;max-width:1100px;margin:0 auto 1rem;padding:.7rem .9rem;font-size:.84rem;display:flex}.status button{color:inherit;background:0 0;border:0;font-size:1.1rem}.dashboard-hero{border-bottom:1px solid #e7ddd4;justify-content:space-between;align-items:end;gap:2rem;max-width:1100px;margin:auto;padding-bottom:3rem;display:flex}.dashboard-intro{color:#6d6561;max-width:520px}.cycle-summary{color:#fff;text-align:center;background:#68243a;min-width:160px;padding:1.3rem}.cycle-summary span{color:#efbdca;letter-spacing:.1em;text-transform:uppercase;font-size:.67rem;font-weight:800;display:block}.cycle-summary strong{letter-spacing:-.1em;margin:.1rem 0;font-size:3rem;line-height:1;display:block}.cycle-summary p{margin:0;font-size:.8rem}.dashboard-grid{grid-template-columns:repeat(3,1fr);gap:1rem;max-width:1100px;margin:2rem auto;display:grid}.card,.settings-card{background:#fffdfa;border:1px solid #e7ddd4;padding:1.5rem}.card-kicker{color:#9b3d58;letter-spacing:.11em;font-size:.63rem;font-weight:800}.card h2,.settings-card h2,.log-panel h2{letter-spacing:-.06em;margin:.65rem 0;font-size:1.45rem}.card p{color:#6d6561;font-size:.87rem}.phase-progress{background:#f3dce2;border-radius:99px;height:8px;margin:1.5rem 0 .5rem;overflow:hidden}.phase-progress span{background:#9b3d58;height:100%;display:block}.card small,.settings-card small{color:#6d6561;font-size:.72rem}.empty-state{max-width:660px;margin:clamp(3rem,12vh,8rem) auto}.empty-state p:not(.eyebrow){color:#6d6561;max-width:490px}.empty-state .primary-button{margin-top:1.5rem}.calendar-heading{justify-content:space-between;align-items:end;max-width:1100px;margin:auto;display:flex}.calendar-heading h1,.settings-page h1{margin-bottom:0}.icon-button{color:#782e46;background:#f3dce2;border-radius:50%;width:40px;height:40px;margin-left:.4rem}.calendar-layout{grid-template-columns:minmax(0,1.35fr) minmax(310px,.75fr);gap:1.5rem;max-width:1100px;margin:2rem auto;display:grid}.calendar-card,.log-panel{background:#fffdfa;border:1px solid #e7ddd4;padding:clamp(1rem,3vw,1.75rem)}.weekdays,.calendar-grid{grid-template-columns:repeat(7,1fr);gap:.35rem;display:grid}.weekdays{color:#8d8179;text-align:center;margin-bottom:.4rem;font-size:.66rem;font-weight:800}.calendar-day{color:#292322;background:#fffdfa;border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:start;min-height:66px;padding:.45rem;display:flex}.calendar-day:hover{border-color:#9b3d58}.calendar-day.outside{color:#b6aaa2}.calendar-day.selected{border:2px solid #9b3d58}.calendar-day.today span{-webkit-text-decoration:underline #9b3d58;text-decoration:underline #9b3d58;text-decoration-thickness:2px}.calendar-day.period{background:#f4d7df}.calendar-day.fertile{background:#e4f0e7}.calendar-day.ovulation{color:#fff;background:#39755e}.calendar-day.logged-flow i{background:#9b3d58;border-radius:50%;width:7px;height:7px}.legend{color:#6d6561;flex-wrap:wrap;gap:.9rem;margin-top:1.2rem;font-size:.7rem;display:flex}.legend i{border-radius:50%;width:9px;height:9px;margin-right:.3rem;display:inline-block}.legend-flow{background:#9b3d58}.log-panel{align-self:start;gap:1.3rem;display:grid}.log-panel h2{font-size:1.4rem}.log-panel fieldset{border:0;margin:0;padding:0}.log-panel legend{margin-bottom:.6rem;font-size:.78rem;font-weight:800}.choice-row,.symptom-grid,.export-actions{flex-wrap:wrap;gap:.45rem;display:flex}.choice,.symptom{color:#665d59;background:#fffdfa;border:1px solid #d9cec4;border-radius:999px;padding:.45rem .6rem;font-size:.72rem}.choice.active,.symptom.active{color:#fff;background:#9b3d58;border-color:#9b3d58}.log-panel textarea{resize:vertical;min-height:96px}.settings-page{max-width:1000px;margin:auto}.settings-grid{grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:2rem;display:grid}.secondary-button{color:#782e46;background:#f3dce2;border-radius:999px;padding:.75rem .9rem;font-size:.8rem;font-weight:800}@media (max-width:800px){.app-header{height:64px}.account-email{display:none}.app-body{min-height:calc(100vh - 64px);display:block}.app-nav{z-index:4;padding:.5rem .8rem calc(.5rem + env(safe-area-inset-bottom));background:#fffdfa;border-top:1px solid #e7ddd4;border-right:0;grid-template-columns:repeat(3,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.nav-button{flex-direction:column;align-items:center;gap:.15rem;padding:.35rem;font-size:.68rem}.app-main{padding:1.4rem 1rem 6rem}.dashboard-hero{flex-direction:column;align-items:start}.cycle-summary{width:100%}.dashboard-grid,.calendar-layout,.settings-grid{grid-template-columns:1fr}.calendar-day{min-height:48px;padding:.25rem;font-size:.78rem}.weekdays{font-size:.55rem}.calendar-heading{align-items:start}.calendar-heading h1,.settings-page h1{font-size:2.5rem}.auth-page>.brand{position:static}.auth-card,.legal-line{margin:0}}.onboarding-card h1{font-family:var(--font-heading);letter-spacing:-.08em;margin:.8rem 0 1rem;font-size:clamp(2.4rem,6vw,4.6rem);line-height:.95}.date-stepper{background:#fffdfa;border:1px solid #d9cec4;border-radius:12px;justify-content:space-between;align-items:center;gap:1rem;padding:.45rem;display:flex}.date-step-button{color:#782e46;background:#f3dce2;border:0;border-radius:9px;width:42px;height:42px;font-size:1.4rem;line-height:1}.date-step-button:hover{background:#e8c4ce}.date-step-value{color:#292322;justify-content:center;align-items:baseline;gap:.5rem;min-width:130px;display:flex}.date-step-value strong{font:700 2rem/1 var(--font-heading);letter-spacing:-.07em}.date-step-value span{color:#6d6561;font-size:.85rem}.floating-log-button{z-index:5;color:#fff;background:#9b3d58;border:0;border-radius:50%;place-items:center;width:58px;height:58px;transition:transform .2s,background .2s,box-shadow .2s;display:grid;position:fixed;bottom:1.5rem;right:1.5rem;box-shadow:0 12px 25px #68243a42}.floating-log-button:hover{background:#68243a;transform:translateY(-3px)scale(1.05);box-shadow:0 18px 32px #68243a57}.floating-log-button:focus-visible{outline-width:3px;outline-color:#9dcdb4}.floating-log-button span{font-size:1.7rem;line-height:1}.flow-choice-row{grid-template-columns:repeat(4,1fr);gap:.35rem;display:grid}.flow-choice{color:#665d59;background:#fffdfa;border:1px solid #d9cec4;border-radius:9px;justify-items:center;gap:.35rem;padding:.55rem .3rem;font-size:.68rem;display:grid}.flow-choice.active{color:#782e46;background:#f8e5e9;border-color:#9b3d58}.flow-dot.none{background:0 0;border:1px dashed #9b3d58}.mobile-log-header{justify-content:space-between;align-items:center;display:flex}.mobile-log-close{color:#782e46;background:0 0;border:0;font-size:1.6rem;display:none}.log-panel.mobile-log-open{display:grid}.graph-page{max-width:1100px;margin:auto}.graph-header{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2rem;display:flex}.graph-header h1{font:700 clamp(2.5rem,5vw,4.6rem)/.95 var(--font-heading);letter-spacing:-.08em;margin:.7rem 0 .8rem}.graph-header p:not(.eyebrow){color:#6d6561;max-width:520px}.graph-summary{color:#fff;text-align:center;background:#68243a;min-width:150px;padding:1rem}.graph-summary strong{font:700 2.6rem/1 var(--font-heading);display:block}.graph-summary span{color:#efbdca;font-size:.7rem}.graph-stats{background:#e7ddd4;border:1px solid #e7ddd4;grid-template-columns:repeat(3,1fr);gap:1px;margin-bottom:1rem;display:grid;overflow:hidden}.graph-stats div{background:#fffdfa;gap:.15rem;padding:1rem 1.2rem;display:grid}.graph-stats span,.graph-stats small{color:#8d8179;font-size:.68rem}.graph-stats strong{font:600 1.2rem var(--font-heading)}.graph-card{background:#fffdfa;border:1px solid #e7ddd4;grid-template-columns:45px minmax(0,1fr);align-items:center;min-height:360px;padding:clamp(1rem,3vw,2rem);display:grid}.graph-empty{text-align:center;grid-column:1/-1;max-width:520px;margin:auto}.graph-empty h2{font:700 1.8rem var(--font-heading);letter-spacing:-.06em}.graph-empty p:last-child{color:#6d6561}.graph-axis{color:#8d8179;flex-direction:column;justify-content:space-between;height:300px;font-size:.68rem;display:flex}.temperature-graph{width:100%;height:300px;overflow:visible}.graph-grid-line{fill:none;stroke:#eadfd6;stroke-width:1px}.graph-fertile-band{fill:#e4f0e7;opacity:.8}.graph-area{fill:#f3dce2;opacity:.65}.graph-line{fill:none;stroke:#9b3d58;stroke-width:4px;stroke-linejoin:round;stroke-linecap:round}.graph-point{fill:#fffdfa;stroke:#9b3d58;stroke-width:3px}.graph-ovulation,.graph-coverline{stroke:#39755e;stroke-dasharray:5 5;stroke-width:2px}.graph-coverline{stroke:#d38b9b}.graph-labels{color:#8d8179;grid-column:2;justify-content:space-between;font-size:.68rem;display:flex}.graph-legend{color:#6d6561;flex-wrap:wrap;gap:1rem;margin-top:1rem;font-size:.75rem;display:flex}.graph-legend i{border-radius:50%;width:9px;height:9px;margin-right:.35rem;display:inline-block}.legend-temperature{background:#9b3d58}.legend-coverline{background:#d38b9b}.legend-fertile-band{background:#9dcdb4}.graph-period-summary{background:#e7ddd4;border:1px solid #e7ddd4;grid-template-columns:repeat(3,1fr);gap:1px;margin-bottom:1rem;display:grid;overflow:hidden}.graph-period-summary div{background:#fffdfa;gap:.2rem;padding:1.1rem 1.3rem;display:grid}.graph-period-summary span,.graph-period-summary small{color:#8d8179;font-size:.68rem}.graph-period-summary strong{font:600 1.05rem var(--font-heading)}.timeline-card{min-height:450px}.timeline-graph{height:360px}.phase-band{opacity:.72}.phase-band-label{fill:#6d6561;font:600 12px var(--font-body)}.graph-cycle-start{stroke:#9b3d58;stroke-dasharray:2 5;stroke-width:1.5px}.graph-today{stroke:#292322;stroke-dasharray:4 4;stroke-width:1.5px}.legend-today{background:#292322}.graph-note{color:#8d8179;margin:1rem 0 0;font-size:.72rem}.graph-phase-rail{background:#f5eee8;border-radius:8px;height:42px;margin:0 0 .6rem 45px;position:relative;overflow:hidden}.graph-phase-band{border-right:1px solid #ffffff8c;place-items:center;min-width:20px;display:grid;position:absolute;inset-block:0}.graph-phase-band span{color:#5d5550;white-space:nowrap;font-size:.66rem;font-weight:700}.graph-plot-wrap{min-width:0;position:relative}.graph-tooltip{z-index:3;color:#fff;pointer-events:none;background:#292322;border-radius:8px;gap:.15rem;min-width:150px;padding:.7rem .8rem;display:grid;position:absolute;transform:translate(-50%,calc(-100% - 12px));box-shadow:0 8px 20px #29232238}.graph-tooltip:after{content:"";background:#292322;width:12px;height:12px;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)rotate(45deg)}.graph-tooltip strong{font:600 1rem var(--font-heading)}.graph-tooltip span{color:#eadfd6;white-space:nowrap;font-size:.68rem}.graph-date-axis{height:28px;margin-left:45px;position:relative}.graph-date-axis span{color:#8d8179;white-space:nowrap;font-size:.65rem;position:absolute;top:.35rem;transform:translate(-50%)}.graph-phase-layout,.graph-chart-layout,.graph-date-layout{grid-template-columns:45px minmax(0,1fr);gap:0;display:grid}.graph-phase-spacer{min-width:0}.graph-phase-rail{margin:0 0 .6rem}.graph-chart-layout .graph-axis{grid-column:1}.graph-chart-layout .graph-plot-wrap{grid-column:2}.graph-date-layout{margin-top:.15rem}.graph-date-axis{height:40px;margin:0}.graph-date-axis span{text-align:center;gap:.1rem;display:grid}.graph-date-axis strong{color:#6d6561;font-size:.65rem}.graph-date-axis small{color:#a1958d;font-size:.58rem}.graph-point{cursor:pointer}.graph-line{fill:none}.cycle-chart-card{background:#fffdfa;border:1px solid #e7ddd4;padding:1rem;overflow:hidden}.cycle-chart-scroll{overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#cdaeb7 transparent;overflow-x:auto}.cycle-chart-canvas{width:960px;min-width:960px}.cycle-phase-rail{background:#f5eee8;border-radius:8px 8px 0 0;height:42px;margin-left:58px;position:relative;overflow:hidden}.cycle-phase-segment{color:#514a46;white-space:nowrap;border-right:1px solid #ffffffb3;place-items:center;font-size:.65rem;font-weight:700;display:grid;position:absolute;inset-block:0;overflow:hidden}.cycle-plot-row{grid-template-columns:58px minmax(0,1fr);min-height:320px;display:grid}.cycle-y-axis{color:#786e68;flex-direction:column;justify-content:space-between;align-items:end;height:320px;padding:.1rem .55rem .1rem 0;font-size:.68rem;display:flex}.cycle-plot{height:320px;position:relative;overflow:visible}.cycle-plot svg{width:100%;height:100%;overflow:visible}.cycle-phase-background{opacity:.46}.cycle-grid-line{stroke:#d9cec4;stroke-width:1px;vector-effect:non-scaling-stroke}.cycle-temperature-line{fill:none;stroke:#9b3d58;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.cycle-temperature-point{fill:#fffdfa;stroke:#9b3d58;stroke-width:2.5px;vector-effect:non-scaling-stroke;cursor:pointer}.cycle-temperature-point:hover,.cycle-temperature-point:focus{fill:#9b3d58;stroke:#fff;outline:none}.cycle-start-marker{stroke:#9b3d58;stroke-width:1.5px;stroke-dasharray:3 4;vector-effect:non-scaling-stroke}.cycle-ovulation-marker{stroke:#39755e;stroke-width:2px;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}.cycle-today-marker{stroke:#292322;stroke-width:1.5px;stroke-dasharray:2 4;vector-effect:non-scaling-stroke}.cycle-coverline{stroke:#d06782;stroke-width:1.5px;stroke-dasharray:8 4;vector-effect:non-scaling-stroke}.cycle-point-tooltip{z-index:5;color:#fff;pointer-events:none;background:#292322;border-radius:8px;gap:.15rem;min-width:160px;padding:.7rem .8rem;display:grid;position:absolute;transform:translate(-50%,calc(-100% - 12px));box-shadow:0 10px 24px #29232247}.cycle-point-tooltip strong{font:600 1rem var(--font-heading)}.cycle-point-tooltip span{color:#eadfd6;white-space:nowrap;font-size:.68rem}.cycle-x-axis{height:46px;margin-left:58px;position:relative}.cycle-x-axis span{text-align:center;white-space:nowrap;gap:.1rem;display:grid;position:absolute;top:.4rem;transform:translate(-50%)}.cycle-x-axis strong{color:#665d59;font-size:.64rem}.cycle-x-axis small{color:#998e87;font-size:.57rem}.flow-scale{align-items:center;gap:.45rem;display:flex}.flow-option{color:#665d59;background:0 0;border:0;border-radius:50%;place-items:center;width:27px;height:27px;min-height:27px;padding:0;font-size:0;transition:transform .18s,opacity .18s;display:grid}.flow-option:hover{background:0 0;border:0;transform:scale(1.12)}.flow-option.selected{box-shadow:none;background:0 0;border:0;transform:scale(1.16)}.flow-option.selected .flow-dot{box-shadow:0 0 0 2px #fffdfa,0 0 0 4px #9b3d58}.flow-dot{background:#9b3d58;border-radius:50%;width:27px;height:27px;display:block}.flow-dot.none,.mucus-none{background:0 0;border:1px dashed #9b3d58}.flow-dot.intensity-1{opacity:.3}.flow-dot.intensity-2{opacity:.65}.flow-dot.intensity-3{opacity:1}.mucus-scale{grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;display:grid}.mucus-scale-option{color:#665d59;background:#fffdfa;border:1px solid #d9cec4;border-radius:9px;place-items:center;gap:.25rem;min-height:60px;padding:.5rem .3rem;font-size:.66rem;display:grid}.mucus-scale-option:hover{background:#fdf2f5;border-color:#c8748a;transform:translateY(-1px)}.mucus-scale-option.selected{color:#782e46;background:#f8e5e9;border-color:#9b3d58;box-shadow:inset 0 0 0 1px #9b3d58}.mucus-scale-option .mucus-icon{width:24px;height:24px}.flow-scale{margin-bottom:.85rem}.legend-observed,.legend-period,.legend-fertile,.legend-ovulation{background:#9b3d58}.dashboard-mockup{max-width:1040px;margin:auto}.mockup-heading{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2.5rem;display:flex}.mockup-heading h1{font:700 clamp(2.4rem,5vw,4.6rem)/.95 var(--font-heading);letter-spacing:-.08em;margin:.7rem 0 .8rem}.mockup-heading p:not(.eyebrow){color:#6d6561;max-width:500px}.mockup-date-badge{color:#fff;text-align:center;background:#68243a;min-width:130px;padding:1rem}.mockup-date-badge span,.mockup-date-badge small{color:#efbdca;font-size:.65rem;display:block}.mockup-date-badge strong{font:700 2.5rem/1 var(--font-heading);letter-spacing:-.1em;margin:.1rem 0;display:block}.mockup-layout{grid-template-columns:minmax(360px,.95fr) minmax(280px,.75fr);align-items:stretch;gap:1.2rem;display:grid}.mockup-cycle-card{color:#fff;background:linear-gradient(140deg,#934058,#68243a);border-radius:22px;padding:1.5rem;box-shadow:0 20px 38px #68243a2e}.mockup-card-header{color:#fff;justify-content:space-between;font-size:.8rem;font-weight:700;display:flex}.mockup-status{color:#ffdce5;font-size:.7rem}.mockup-cycle-ring{aspect-ratio:1;place-items:center;width:240px;margin:1.5rem auto .8rem;display:grid;position:relative}.mockup-cycle-ring svg{width:100%;height:100%;overflow:visible}.ring-track,.ring-segment{fill:none;stroke-width:15px}.ring-track{stroke:#823249}.ring-segment{stroke-linecap:butt}.ring-marker{fill:#fff;stroke:#fff;stroke-width:4px}.ring-marker-core{fill:#68243a}.mockup-cycle-center{text-align:center;pointer-events:none;place-content:center;display:grid;position:absolute;inset:0}.mockup-cycle-center strong{color:#fff;font:700 3.7rem/1 var(--font-heading);letter-spacing:-.1em}.mockup-cycle-center small{color:#f7dce3;letter-spacing:.18em;font-size:.62rem;font-weight:700}.mockup-cycle-caption{color:#fde9ef;text-align:center;font-size:.78rem}.mockup-day-strip{color:#f2c6d1;justify-content:space-between;align-items:center;margin:1.4rem 0 1.1rem;font-size:.68rem;display:flex}.mockup-day-strip span{border-radius:50%;place-items:center;width:30px;height:30px;display:grid}.mockup-day-strip span.current{color:#68243a;background:#9dcdb4;font-weight:800}.mockup-day-strip span.ovulation-day{border:1px solid #f4c2cd}.mockup-cycle-footer{color:#f6d8df;justify-content:center;gap:.8rem;font-size:.6rem;display:flex}.mockup-dot{background:#9dcdb4;border-radius:50%;width:7px;height:7px;margin-right:.3rem;display:inline-block}.mockup-dot.menstrual{background:#e7a6b7}.mockup-dot.ovulation{background:#efb0bf}.mockup-side{gap:1.2rem;display:grid}.mockup-checkin{flex-direction:column;justify-content:center;min-height:220px;display:flex}.mockup-checkin h2{font:700 1.65rem/1 var(--font-heading);letter-spacing:-.06em;margin:.5rem 0 1rem}.mockup-pills{flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;display:flex}.mockup-pills span{color:#753148;background:#f8e0e6;border-radius:999px;padding:.35rem .55rem;font-size:.68rem}.mockup-insight{color:#38664e;background:#e4f0e7;border-radius:16px;align-items:center;gap:.8rem;padding:1.2rem;display:flex}.mockup-insight-icon{color:#fff;background:#39755e;border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-weight:800;line-height:1;display:grid}.mockup-insight strong{font:600 1rem var(--font-heading)}.mockup-insight p{color:#527863;margin:.25rem 0 0;font-size:.78rem}.mockup-context{background:#fffdfa;border:1px solid #e7ddd4;justify-content:space-between;align-items:center;margin-top:1.2rem;padding:1.1rem 1.3rem;display:flex}.mockup-context div{gap:.2rem;display:grid}.mockup-context strong{font:600 1rem var(--font-heading)}.mockup-context small{color:#6d6561;font-size:.75rem}.nav-icon{color:#9b3d58;flex:none;width:20px;height:20px}.mucus-grid{gap:.5rem;display:grid}.mucus-choice{text-align:left;color:#665d59;background:#fffdfa;border:1px solid #d9cec4;border-radius:10px;align-items:center;gap:.7rem;padding:.6rem;display:flex}.mucus-choice:hover,.mucus-choice.active{color:#782e46;background:#f8e5e9;border-color:#9b3d58}.mucus-icon{color:#9b3d58;flex:none;width:28px;height:28px}.mucus-choice span{gap:.1rem;display:grid}.mucus-choice strong{font-size:.78rem}.mucus-choice small{color:#8d8179;font-size:.65rem}.calendar-day.observed-flow{color:#68243a;background:#e7a6b7}.calendar-day.predicted-period{background:#f8e7ec;border:1px dashed #c8748a}.calendar-day.predicted-fertile{background:#e4f0e7}.calendar-day.predicted-ovulation{color:#fff;background:#39755e}.calendar-day.observed-flow.predicted-period,.calendar-day.observed-flow.predicted-fertile,.calendar-day.observed-flow.predicted-ovulation{box-shadow:inset 0 0 0 3px #68243a}.legend-observed{background:#9b3d58}.legend-period{background:#f8e7ec;border:1px dashed #c8748a}.legend-fertile{background:#9dcdb4}.legend-ovulation{background:#39755e}.onboarding-page{background:radial-gradient(circle at 80% 15%,#f3dce2,#0000 25%),#fbf7f2;align-content:center;place-items:center;gap:1.5rem;min-height:100vh;padding:2rem clamp(1.25rem,5vw,4rem);display:grid}.onboarding-page>.brand{position:absolute;top:2rem;left:clamp(1.25rem,5vw,4rem)}.onboarding-card{background:#fffdfa;border:1px solid #e7ddd4;width:min(100%,560px);padding:clamp(2rem,6vw,4rem);box-shadow:0 24px 65px #462a2e1c}.wizard-progress{gap:.4rem;margin-bottom:2rem;display:flex}.wizard-progress span{background:#eadfd6;border-radius:9px;flex:1;height:4px}.wizard-progress span.active{background:#9b3d58}.onboarding-card h1{font:700 clamp(2.4rem,6vw,4.6rem)/.95 var(--font-heading);letter-spacing:-.08em;margin:.8rem 0 1rem}.wizard-copy{color:#6d6561;max-width:430px}.onboarding-card label{color:#554d49;gap:.45rem;margin:2rem 0;font-size:.82rem;font-weight:700;display:grid}.onboarding-card input,.onboarding-card select{color:#292322;background:#fffdfa;border:1px solid #d9cec4;border-radius:8px;width:100%;padding:.85rem}.number-input{align-items:center;gap:.6rem;display:flex}.number-input input{max-width:130px}.number-input span{color:#6d6561;font-weight:500}.back-button{color:#782e46;background:0 0;border:0;margin:1rem auto 0;padding:0;text-decoration:underline;display:block}.wizard-note{color:#6d6561;font-size:.75rem}@media (max-width:800px){.mockup-heading{flex-direction:column;align-items:start;margin-bottom:1.5rem}.mockup-date-badge{width:100%}.mockup-layout{grid-template-columns:1fr}.mockup-cycle-card{padding:1.2rem}.mockup-cycle-ring{width:180px}.mockup-context{flex-direction:column;align-items:start;gap:1rem}.nav-button{flex-direction:column;align-items:center;gap:.15rem;padding:.35rem;font-size:.68rem}.graph-header{flex-direction:column;align-items:start}.graph-summary{width:100%}.graph-period-summary{grid-template-columns:1fr}.timeline-card{min-width:680px}.graph-page{overflow-x:auto}.graph-analysis{min-width:680px}.graph-legend,.graph-note{max-width:calc(100vw - 2rem)}.graph-phase-rail,.graph-date-axis{margin-left:35px}.graph-phase-band span{font-size:.58rem}.graph-tooltip{position:fixed;bottom:5rem;transform:translate(-50%);top:auto!important;left:50%!important}.graph-tooltip:after,.app-nav .nav-graph{display:none}.floating-log-button{bottom:5.3rem;right:1rem}.log-panel{display:none}.log-panel.mobile-log-open{z-index:10;padding:1.25rem 1rem calc(1.5rem + env(safe-area-inset-bottom));background:#fbf7f2;border:0;grid-template-rows:auto auto auto auto auto 1fr auto;display:grid;position:fixed;inset:0;overflow-y:auto}.log-panel.mobile-log-open h2{margin-top:0}.log-panel.mobile-log-open .primary-button{position:sticky;bottom:0}.flow-choice-row{gap:.25rem}.flow-choice{min-height:66px}.mucus-compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;display:grid}.mucus-compact-option{color:#665d59;text-align:left;background:#fffdfa;border:1px solid #d9cec4;border-radius:9px;align-items:center;gap:.4rem;min-height:52px;padding:.45rem;font-size:.68rem;display:flex}.mucus-compact-option.active{color:#782e46;background:#f8e5e9;border-color:#9b3d58}.mucus-compact-option .mucus-icon{width:22px;height:22px}.mucus-none{border:1px dashed #9b3d58;border-radius:50%;width:22px;height:22px;display:block}.calendar-layout{display:block}.app-nav{grid-template-columns:repeat(3,1fr)}.log-panel.mobile-log-open{z-index:20;overscroll-behavior:contain;flex-direction:column;padding:0;display:flex;inset:0;overflow:hidden}.mobile-log-header{background:#fffdfa;border-bottom:1px solid #e7ddd4;flex:none;padding:1rem 1rem .75rem}.mobile-log-content{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1;min-height:0;padding:1rem 1rem 2rem;overflow-y:auto}.mobile-log-footer{padding:1rem calc(1rem + env(safe-area-inset-right)) calc(1rem + env(safe-area-inset-bottom)) calc(1rem + env(safe-area-inset-left));background:#fffdfa;border-top:1px solid #e7ddd4;flex:none}.mobile-log-footer .primary-button{width:100%}.mobile-log-close,.calendar-layout{display:block}.calendar-card{margin-bottom:1rem}.mucus-scale{grid-template-columns:repeat(2,minmax(0,1fr))}.cycle-chart-canvas{width:960px;min-width:960px}}.app-main>.status,.app-main>.dashboard-mockup,.app-main>.graph-page,.app-main>.calendar-heading,.app-main>.calendar-layout,.app-main>.settings-page,.app-main>.empty-state{width:100%;max-width:1120px;margin-inline:auto}.app-main>.calendar-layout{margin-top:2rem}.app-main>.calendar-heading{margin-bottom:0}.app-main>.graph-page{max-width:1120px}@media (max-width:800px){.app-main>.graph-page{min-width:0;overflow:visible}.app-main>.graph-page .timeline-card{min-width:0;overflow-x:auto}.app-main>.graph-page .temperature-graph,.app-main>.graph-page .graph-phase-rail,.app-main>.graph-page .graph-date-axis{min-width:640px}}
