@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-weight-heading:700;--font-heading-tracking:-.08em;--font-heading-tracking-tight:-.06em;--radius-none:0;--radius-4:4px;--radius-xs:6px;--radius-7:7px;--radius-sm:8px;--radius-control:9px;--radius-10:10px;--radius-11:11px;--radius-md:12px;--radius-14:14px;--radius-card:18px;--radius-lg:20px;--radius-round:50%;--radius-pill:999px;--radius-top-sm:8px 8px 0 0;--color-black:#111;--color-green-dark:#24513f;--color-ink:#2e2528;--color-green-forest:#2e624b;--color-ink-strong:#35272c;--color-green-text:#2e6049;--color-green:#337456;--color-plum-deep:#3a1221;--color-brown-ink:#3f3739;--color-purple-dark:#4f4264;--color-brown-text:#4f4749;--color-brown-warm:#514a4b;--color-green-muted:#4c715b;--color-text-secondary:#51474a;--color-brown-muted-dark:#5a5053;--color-brown-disabled:#655b5d;--color-brown-muted:#62585a;--color-plum-dark:#742341;--color-gold-text:#6a4b18;--color-warm-muted:#60565a;--color-muted:#655b5f;--color-muted-warm:#685c60;--color-rose-dark:#753148;--color-rose-text:#792b49;--color-warm-muted-deep:#71666a;--color-plum-ring:#82324f;--color-plum-light:#a83e62;--color-brand-plum:#9b2852;--color-mint:#9dcdb4;--color-rose-muted:#a24f69;--color-gold:#95601f;--color-rose-mid:#ac5875;--color-warm-gray:#b6aaa8;--color-lavender:#b9a5d8;--color-border-muted:#b9aea9;--color-rose-soft-dark:#bd7f95;--color-gold-border:#c49542;--color-rose-border:#c87490;--color-green-border:#c6ddce;--color-rose-scroll:#cdaeb9;--color-rose-light:#cf7e96;--color-rose-border-soft:#d9b4c0;--color-border-strong:#d7c8ca;--color-rose-ring:#e0b3c2;--color-rose-border-muted:#e2c6ce;--color-gold-border-soft:#e4c995;--color-green-soft:#e7f1e9;--color-lavender-soft:#e6ddf2;--color-period-rose:#e7a6b7;--color-border:#eadfe2;--color-pink-hover:#edccd5;--color-peach-border:#e8c9bf;--color-pink-border:#ead2dd;--color-warm-line:#ebe1de;--color-period-rose-soft:#ecc2d0;--color-skeleton:#ece4e3;--color-warm-gray-soft:#eee9e8;--color-pink-status:#efbdce;--color-border-light:#efe7e4;--color-pink-text:#f2c6d3;--color-period-rose-medium:#f2cbd8;--color-cream:#f2d7bb;--color-pink-soft:#f7e1e8;--color-period-pink:#f4d7df;--color-warm-paper:#f5eee9;--color-warm-surface-muted:#f5f1ef;--color-pink-pale:#f6d8e0;--color-pink-pale-strong:#f7dce4;--color-pink-active:#f8e0e8;--color-pink-selected:#f8e5eb;--color-pink-light:#f8e7ec;--color-warm-hover:#faf1f3;--color-warm-surface:#faf4f1;--color-cream-alert:#fbf4e8;--color-page:#fcf6f5;--color-pink-highlight:#fde9ef;--color-pink-alert:#fdf2f5;--color-pink-surface:#fdf3f5;--color-pink-bright:#ffdce6;--color-white:#fff;--color-warm-white:#fff8f4;--color-surface:#fffdfc;--color-chip-border:#e3d6d3;--color-chip-text:#665d60;--color-chip-active-border:#dda2b4;--color-chip-active-text:#742341;--shadow-plum-18:#68243a26;--shadow-plum-26:#68243a38;--shadow-plum-34:#68243a4d;--shadow-plum-7:#68243a0f;--shadow-plum-9:#68243a14;--shadow-gold-8:#8f682714;--color-flow-30:#9b28524d;--color-flow-65:#9b2852a6;--color-white-16:#ffffff29;--color-white-55:#ffffff8c;--color-white-70:#ffffffb3;--shadow-ink-28:#29232247;--shadow-green-8:#38664e14;--shadow-warm-12:#3823251a;--shadow-warm-18:#38232529;--shadow-warm-5:#3823250a;--shadow-card:0 14px 36px #57263514;--shadow-banner:0 16px 38px #38232524;--shadow-plum-card:0 14px 32px #68243a14;--shadow-reminder:#4b2f270f;font-family:var(--font-body);color:var(--color-ink);background:var(--color-page);font-synthesis:none}*{box-sizing:border-box}html{background:var(--color-page);overscroll-behavior-y:none;min-height:100%}body{background:var(--color-page);-webkit-tap-highlight-color:transparent;min-width:320px;min-height:100%;margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--color-green);outline-offset:3px}.loading-screen{min-height:100vh;color:var(--color-muted);place-items:center;display:grid}.brand{color:var(--color-ink);font-family:var(--font-heading);letter-spacing:-.06em;font-size:1.45rem;font-weight:700;text-decoration:none}.brand span{color:var(--color-brand-plum)}.language-picker{color:var(--color-muted);align-items:center;gap:.4rem;font-size:.75rem;font-weight:700;display:flex}.language-picker select{color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-7);padding:.4rem .55rem;font-size:.75rem}.auth-page>.language-picker,.onboarding-page>.language-picker{position:absolute;top:1.85rem;right:clamp(1.5rem,5vw,4rem)}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.auth-page{background:radial-gradient(circle at 80% 15%,var(--color-pink-soft),transparent 24%),var(--color-page);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{border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);width:min(100%,470px);box-shadow:var(--shadow-card);justify-self:center;margin:auto;padding:clamp(2rem,5vw,3.5rem)}.eyebrow{color:var(--color-brand-plum);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{font-family:var(--font-heading);font-weight:var(--font-weight-heading)}.auth-card h1,.app-main h1{letter-spacing:var(--font-heading-tracking);margin:.75rem 0 1rem;font-size:clamp(2.3rem,5vw,4.3rem);line-height:.96}.auth-intro,.settings-card p{color:var(--color-muted)}.auth-card form,.settings-card{gap:1rem;margin-top:2rem;display:grid}.auth-card label,.log-panel label,.settings-card label{color:var(--color-text-secondary);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{width:100%;color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:.78rem .85rem}.primary-button,.secondary-button,.quiet-button,.text-button,.choice,.symptom,.icon-button{border:0}.primary-button{color:var(--color-white);background:linear-gradient(135deg,var(--color-plum-light),var(--color-brand-plum) 58%,var(--color-plum-dark));border-radius:var(--radius-pill);box-shadow:0 8px 18px var(--shadow-plum-18);padding:.85rem 1rem;font-weight:800;transition:transform .18s,box-shadow .18s}.primary-button:hover{background:linear-gradient(135deg,var(--color-brand-plum),var(--color-plum-dark));box-shadow:0 10px 22px var(--shadow-plum-26);transform:translateY(-1px)}.auth-links{flex-wrap:wrap;gap:.7rem;margin-top:1.4rem;display:flex}.auth-links button,.text-button{color:var(--color-rose-text);background:0 0;border:0;padding:0;text-decoration:underline}.auth-links button{font-size:.87rem}.form-message{color:var(--color-rose-text);margin-top:1rem;font-size:.86rem}.legal-line{color:var(--color-muted);margin:auto;font-size:.75rem}.legal-line a{color:var(--color-rose-text)}.google-button{width:100%;color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);justify-content:center;align-items:center;gap:.65rem;padding:.78rem 1rem;font-weight:700;display:flex}.google-button:hover{background:var(--color-warm-hover);border-color:var(--color-brand-plum)}.google-button:disabled{cursor:wait;opacity:.65}.google-mark{flex:none;width:20px;height:20px}.auth-divider{color:var(--color-muted-warm);align-items:center;gap:.7rem;margin:1.35rem 0 -1rem;font-size:.7rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--color-border);flex:1;height:1px}.app-shell{min-height:100vh}.app-header{border-bottom:1px solid var(--color-border);background:var(--color-surface);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:var(--color-muted);font-size:.78rem}.quiet-button{color:var(--color-rose-text);background:var(--color-pink-soft);border-radius:var(--radius-pill);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 var(--color-border);padding:2.4rem 1.4rem}.nav-button{width:100%;color:var(--color-muted);border-radius:var(--radius-control);text-align:left;background:0 0;border:0;align-items:center;gap:.7rem;padding:.8rem .9rem;font-weight:700;display:flex}.nav-button span{width:18px;color:var(--color-brand-plum)}.nav-button:hover,.nav-button.active{color:var(--color-ink);background:var(--color-pink-soft)}.app-main{padding:clamp(1.5rem,5vw,5rem)}.status{max-width:1100px;color:var(--color-green-dark);background:var(--color-green-soft);border-radius:var(--radius-sm);justify-content:space-between;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-intro{max-width:520px;color:var(--color-muted)}.card,.settings-card{border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-card);padding:1.5rem}.card-kicker{color:var(--color-brand-plum);letter-spacing:.11em;font-size:.63rem;font-weight:800}.card h2,.settings-card h2,.log-panel h2{font-size:1.45rem;font-weight:var(--font-weight-heading);letter-spacing:var(--font-heading-tracking-tight);margin:.65rem 0}.card p{color:var(--color-muted);font-size:.87rem}.card small,.settings-card small{color:var(--color-muted);font-size:.72rem}.empty-state{max-width:660px;margin:clamp(3rem,12vh,8rem) auto}.empty-state p:not(.eyebrow){max-width:490px;color:var(--color-muted)}.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{width:40px;height:40px;color:var(--color-rose-text);background:var(--color-pink-soft);border-radius:var(--radius-round);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{border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-card);padding:clamp(1rem,3vw,1.75rem)}.weekdays,.calendar-grid{grid-template-columns:repeat(7,1fr);gap:.35rem;display:grid}.weekdays{color:var(--color-muted-warm);text-align:center;margin-bottom:.4rem;font-size:.66rem;font-weight:800}.calendar-day{min-height:66px;color:var(--color-ink);background:var(--color-surface);border-radius:var(--radius-sm);border:1px solid #0000;justify-content:space-between;align-items:start;padding:.45rem;display:flex}.calendar-day:hover{border-color:var(--color-brand-plum)}.calendar-day.outside{color:var(--color-warm-muted)}.calendar-day.selected{border:2px solid var(--color-brand-plum)}.calendar-day.today span{text-decoration:underline;-webkit-text-decoration-color:var(--color-brand-plum);text-decoration-color:var(--color-brand-plum);text-decoration-thickness:2px}.calendar-day.period{background:var(--color-period-pink)}.calendar-day.fertile{background:var(--color-green-soft)}.calendar-day.ovulation{color:var(--color-white);background:var(--color-green)}.calendar-day.logged-flow i{background:var(--color-brand-plum);border-radius:var(--radius-round);width:7px;height:7px}.legend{color:var(--color-muted);flex-wrap:wrap;gap:.9rem;margin-top:1.2rem;font-size:.7rem;display:flex}.legend i{border-radius:var(--radius-round);width:9px;height:9px;margin-right:.3rem;display:inline-block}.legend-flow{background:var(--color-brand-plum)}.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:var(--color-brown-muted);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);padding:.45rem .6rem;font-size:.72rem}.choice.active,.symptom.active{color:var(--color-white);background:var(--color-brand-plum);border-color:var(--color-brand-plum)}.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:var(--color-rose-text);background:var(--color-pink-soft);border-radius:var(--radius-pill);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:var(--color-surface);border-top:1px solid var(--color-border);border-right:0;grid-template-columns:repeat(5,minmax(0,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}.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{border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);width:min(100%,560px);box-shadow:var(--shadow-card);padding:clamp(2rem,6vw,4rem)}.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{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);justify-content:space-between;align-items:center;gap:1rem;padding:.45rem;display:flex}.date-step-button{width:42px;height:42px;color:var(--color-rose-text);background:var(--color-pink-soft);border-radius:var(--radius-control);border:0;flex:none;font-size:1.4rem;line-height:1}.date-step-button:hover{background:var(--color-pink-hover)}.date-step-button:disabled{opacity:.45;cursor:not-allowed}.date-step-input{min-width:130px;color:var(--color-ink);flex:1;margin:0;font-weight:600}.floating-log-button{z-index:5;width:58px;height:58px;color:var(--color-white);background:var(--color-brand-plum);border-radius:var(--radius-round);box-shadow:0 12px 25px var(--shadow-plum-26);border:0;place-items:center;transition:transform .2s,background .2s,box-shadow .2s;display:grid;position:fixed;bottom:1.5rem;right:1.5rem}.floating-log-button:hover{background:var(--color-plum-dark);box-shadow:0 18px 32px var(--shadow-plum-34);transform:translateY(-3px)scale(1.05)}.floating-log-button:focus-visible{outline-color:var(--color-mint);outline-width:3px}.floating-log-button span{font-size:1.7rem;line-height:1}.flow-dot{border-radius:var(--radius-round);background:var(--color-brand-plum);width:18px;height:18px;display:block}.flow-dot.none{border:1px dashed var(--color-brand-plum);background:0 0}.mobile-log-header{justify-content:space-between;align-items:center;display:flex}.mobile-log-close{color:var(--color-rose-text);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){max-width:520px;color:var(--color-muted)}.graph-summary{min-width:150px;color:var(--color-white);background:var(--color-plum-dark);text-align:center;padding:1rem}.graph-summary strong{font:700 2.6rem/1 var(--font-heading);display:block}.graph-summary span{color:var(--color-pink-status);font-size:.7rem}.graph-card{border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);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:var(--color-muted)}.graph-grid-line{fill:none;stroke:var(--color-warm-line);stroke-width:1px}.graph-fertile-band{fill:var(--color-green-soft);opacity:.8}.graph-ovulation,.graph-coverline{stroke:var(--color-green);stroke-dasharray:5 5;stroke-width:2px}.graph-coverline{stroke:var(--color-rose-light)}.graph-labels{color:var(--color-muted-warm);grid-column:2;justify-content:space-between;font-size:.68rem;display:flex}.graph-legend{color:var(--color-muted);flex-wrap:wrap;gap:1rem;margin-top:1rem;font-size:.75rem;display:flex}.graph-legend i{border-radius:var(--radius-round);width:9px;height:9px;margin-right:.35rem;display:inline-block}.legend-temperature{background:var(--color-brand-plum)}.legend-fertile-band{background:var(--color-mint)}.graph-period-summary{background:var(--color-border);border:1px solid var(--color-border);grid-template-columns:repeat(3,1fr);gap:1px;margin-bottom:1rem;display:grid;overflow:hidden}.graph-period-summary div{background:var(--color-surface);gap:.2rem;padding:1.1rem 1.3rem;display:grid}.graph-period-summary span,.graph-period-summary small{color:var(--color-muted-warm);font-size:.68rem}.graph-period-summary strong{font:600 1.05rem var(--font-heading)}.phase-band{opacity:.72}.graph-cycle-start{stroke:var(--color-brand-plum);stroke-dasharray:2 5;stroke-width:1.5px}.graph-today{stroke:var(--color-ink);stroke-dasharray:4 4;stroke-width:1.5px}.legend-today{background:var(--color-ink)}.legend-coverline{background:var(--color-green-dark)}.legend-coverline-estimated{border:1px dashed var(--color-green-dark);background:0 0}.graph-note{color:var(--color-muted-warm);margin:1rem 0 0;font-size:.72rem}.graph-phase-band{border-right:1px solid var(--color-white-55);place-items:center;min-width:20px;display:grid;position:absolute;inset-block:0}.graph-phase-band span{color:var(--color-brown-muted-dark);white-space:nowrap;font-size:.66rem;font-weight:700}.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-date-layout{margin-top:.15rem}.cycle-chart-card{background:var(--color-surface);border:1px solid var(--color-border);padding:1rem;overflow:hidden}.cycle-chart-scroll{overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--color-rose-scroll) transparent;overflow-x:auto}.cycle-chart-canvas{width:960px;min-width:960px}.cycle-phase-rail{border-radius:var(--radius-top-sm);background:var(--color-warm-paper);height:42px;margin-left:58px;position:relative;overflow:hidden}.cycle-phase-segment{border-right:1px solid var(--color-white-70);color:var(--color-brown-warm);white-space:nowrap;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{height:320px;color:var(--color-warm-muted-deep);flex-direction:column;justify-content:space-between;align-items:end;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:.3}.cycle-phase-segment[data-phase=ovulation]{color:var(--color-white)}.cycle-grid-line{stroke:var(--color-border-strong);stroke-width:1px;vector-effect:non-scaling-stroke}.cycle-temperature-line{fill:none;stroke:var(--color-brand-plum);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.cycle-coverline{stroke:var(--color-green-dark);stroke-width:1.75px;vector-effect:non-scaling-stroke}.cycle-coverline-estimated{stroke-dasharray:6 5}.cycle-temperature-point{fill:var(--color-surface);stroke:var(--color-brand-plum);stroke-width:2.5px;vector-effect:non-scaling-stroke;cursor:pointer}.cycle-temperature-point:hover,.cycle-temperature-point:focus{fill:var(--color-brand-plum);stroke:var(--color-white);outline:none}.cycle-temperature-sex-point{fill:var(--color-surface);stroke:var(--color-brand-plum);stroke-width:2.5px;vector-effect:non-scaling-stroke;stroke-linejoin:round;cursor:pointer;outline:none}.cycle-temperature-sex-point:hover,.cycle-temperature-sex-point:focus{fill:var(--color-brand-plum);stroke:var(--color-white)}.cycle-start-marker{stroke:var(--color-brand-plum);stroke-width:1.5px;stroke-dasharray:3 4;vector-effect:non-scaling-stroke}.cycle-ovulation-marker{stroke:var(--color-green);stroke-width:2px;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}.cycle-today-marker{stroke:var(--color-ink);stroke-width:1.5px;stroke-dasharray:2 4;vector-effect:non-scaling-stroke}.cycle-point-tooltip{z-index:5;min-width:160px;color:var(--color-white);background:var(--color-ink);border-radius:var(--radius-sm);box-shadow:0 10px 24px var(--shadow-ink-28);pointer-events:none;gap:.15rem;padding:.7rem .8rem;display:grid;position:absolute;transform:translate(-50%,calc(-100% - 12px))}.cycle-point-tooltip strong{font:600 1rem var(--font-heading)}.cycle-point-tooltip span{color:var(--color-warm-line);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:var(--color-brown-muted);font-size:.64rem}.cycle-x-axis small{color:var(--color-muted-warm);font-size:.57rem}.log-panel-fields,.log-field-group{border:0;min-width:0;margin:0;padding:0}.log-field-group legend{color:var(--color-text-secondary);margin-bottom:.35rem;padding:0;font-size:.78rem;font-weight:800}.flow-scale{align-items:center;gap:.45rem;display:flex}.flow-option{width:40px;height:40px;min-height:40px;color:var(--color-brown-muted);border-radius:var(--radius-round);background:0 0;border:0;place-items:center;padding:0;font-size:0;display:grid}.flow-option:hover{background:0 0;border:0}.flow-option:hover .flow-dot{box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px var(--color-rose-ring)}.flow-option.selected{box-shadow:none;background:0 0;border:0}.flow-option.selected .flow-dot{box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px var(--color-brand-plum)}.flow-dot{border-radius:var(--radius-round);background:var(--color-brand-plum);width:26px;height:26px;transition:box-shadow .18s;display:block}.flow-dot.none,.mucus-none{border:1px dashed var(--color-brand-plum);background:0 0}.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{min-height:60px;color:var(--color-brown-muted);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-control);place-items:center;gap:.25rem;padding:.5rem .3rem;font-size:.66rem;display:grid}.mucus-scale-option:hover{border-color:var(--color-rose-border);background:var(--color-pink-alert);transform:translateY(-1px)}.mucus-scale-option.selected{color:var(--color-rose-text);border-color:var(--color-brand-plum);background:var(--color-pink-selected);box-shadow:inset 0 0 0 1px var(--color-brand-plum)}.mucus-scale-option .mucus-icon{width:24px;height:24px}.legend-observed,.legend-period,.legend-fertile,.legend-ovulation{background:var(--color-brand-plum)}.mockup-day-strip span.predicted-fertile{border:1px solid var(--color-mint);background:0 0}.mockup-day-strip span.observed-flow{color:var(--color-white);background:var(--color-brand-plum)}.mockup-day-strip span.observed-flow.intensity-1{color:var(--color-plum-deep);background:var(--color-rose-soft-dark)}.mockup-day-strip span.observed-flow.intensity-2{background:var(--color-rose-mid)}.dashboard-mockup{max-width:1040px;margin:auto}.today-screen{width:100%;max-width:1120px;margin-inline:auto}.today-heading{margin:0 0 1.25rem}.today-heading h1{color:var(--color-ink-strong);font:700 clamp(2rem,4vw,3rem)/1.05 var(--font-heading);letter-spacing:-.07em;margin:.3rem 0 0}.today-dashboard-grid{grid-template-columns:minmax(0,1fr);gap:1rem;min-width:0;display:grid}.today-cycle-card,.today-actions-card,.today-empty-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-width:0;box-shadow:var(--shadow-card);padding:clamp(.8rem,2vw,1.5rem)}.today-cycle-card h2,.today-actions-card h2,.today-empty-card h2{color:var(--color-ink-strong);font:600 1.15rem/1.3 var(--font-heading);letter-spacing:-.035em;margin:0}.today-cycle-body{grid-template-columns:minmax(0,.9fr) minmax(0,1fr);align-items:center;gap:.35rem;min-width:0;margin-top:.8rem;display:grid}.today-screen .mockup-cycle-ring{width:clamp(116px,32vw,190px);margin:0 auto}.today-screen .mockup-cycle-center strong{color:var(--color-ink-strong);font-size:clamp(2rem,5vw,3.2rem)}.today-screen .mockup-cycle-center small{color:var(--color-muted);letter-spacing:.04em}.today-screen .ring-track{stroke:var(--color-border)}.today-screen .ring-marker{fill:var(--color-white);stroke:var(--color-brand-plum)}.today-screen .ring-marker-core{fill:var(--color-brand-plum)}.today-pending-ring{aspect-ratio:1;width:clamp(116px,32vw,190px);color:var(--color-ink-strong);border:12px solid var(--color-border);border-radius:var(--radius-round);text-align:center;align-content:center;justify-items:center;margin:0 auto;display:grid}.today-pending-ring strong{font:700 clamp(2rem,5vw,3.2rem)/1 var(--font-heading)}.today-pending-ring span{color:var(--color-muted);font-size:.66rem}.today-cycle-facts{gap:.55rem;min-width:0;display:grid}.today-phase-label{color:var(--color-rose-text);font:700 1rem/1.3 var(--font-heading);overflow-wrap:anywhere;margin:0}.today-cycle-facts dl{gap:.65rem;min-width:0;margin:0;display:grid}.today-cycle-facts dl>div{gap:.2rem;min-width:0;display:grid}.today-cycle-facts dt{color:var(--color-muted);font-size:.68rem;font-weight:700;line-height:1.35}.today-cycle-facts dd{min-width:0;color:var(--color-ink-strong);font:600 .92rem/1.35 var(--font-heading);overflow-wrap:anywhere;margin:0}.today-estimate-note{color:var(--color-muted-warm);overflow-wrap:anywhere;margin:0;font-size:.61rem;line-height:1.4}.today-actions-card h2{margin-bottom:.75rem}.today-action-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;min-width:0;display:grid}.today-action{min-width:0;min-height:94px;color:var(--color-rose-text);background:var(--color-page);border:1px solid var(--color-border);border-radius:var(--radius-control);font:600 .73rem/1.3 var(--font-heading);text-align:center;overflow-wrap:anywhere;align-content:center;justify-items:center;gap:.35rem;padding:.65rem .35rem;display:grid}.today-action:hover{background:var(--color-pink-soft);border-color:var(--color-brand-plum)}.today-action-icon{width:28px;height:28px;color:var(--color-brand-plum)}.today-empty-card p:not(.eyebrow){max-width:42rem;color:var(--color-muted);line-height:1.5}.today-empty-card .primary-button{margin-top:.5rem}@media (min-width:1024px){.today-dashboard-grid{grid-template-columns:minmax(0,1.25fr) minmax(280px,.8fr);align-items:stretch}}.today-heading .eyebrow{margin:0}.dashboard-skeleton .skeleton-block,.today-skeleton-ring,.today-skeleton-action{background:var(--color-skeleton);animation:1.4s ease-in-out infinite skeleton-pulse}.today-skeleton-ring{aspect-ratio:1;border:12px solid var(--color-surface);border-radius:var(--radius-round);width:clamp(116px,32vw,190px);margin:0 auto}.today-skeleton-action{border:1px solid var(--color-border);border-radius:var(--radius-control);min-height:94px}.mockup-heading{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2.5rem;display:flex}.mockup-heading h1{font:var(--font-weight-heading) clamp(2.4rem,5vw,4.6rem)/.95 var(--font-heading);letter-spacing:var(--font-heading-tracking);margin:.7rem 0 .8rem}.mockup-heading p:not(.eyebrow){max-width:500px;color:var(--color-muted)}.mockup-layout{grid-template-columns:minmax(360px,.95fr) minmax(280px,.75fr);align-items:stretch;gap:1.2rem;display:grid}.mockup-cycle-card{color:var(--color-white);background:linear-gradient(140deg,var(--color-plum-light),var(--color-plum-dark));border-radius:var(--radius-lg);box-shadow:0 20px 38px var(--shadow-plum-18);padding:1.5rem}.mockup-card-header{color:var(--color-white);justify-content:space-between;font-size:.8rem;font-weight:700;display:flex}.mockup-status{color:var(--color-pink-bright);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:var(--color-plum-ring)}.ring-segment{stroke-linecap:butt}.ring-marker{fill:var(--color-white);stroke:var(--color-white);stroke-width:4px}.ring-marker-core{fill:var(--color-plum-dark)}.mockup-cycle-center{text-align:center;pointer-events:none;place-content:center;display:grid;position:absolute;inset:0}.mockup-cycle-center strong{color:var(--color-white);font:700 3.7rem/1 var(--font-heading);letter-spacing:-.1em}.mockup-cycle-center small{color:var(--color-pink-pale-strong);letter-spacing:.18em;font-size:.7rem;font-weight:700}.mockup-cycle-caption{min-height:2.6em;color:var(--color-pink-highlight);text-align:center;font-size:.78rem;line-height:1.3}.mockup-day-strip{color:var(--color-pink-text);justify-content:space-between;align-items:center;margin:1.4rem 0 1.1rem;font-size:.68rem;display:flex}.mockup-day-strip span{border-radius:var(--radius-round);place-items:center;width:30px;height:30px;display:grid}.mockup-day-strip span.current{color:var(--color-plum-dark);font-weight:800}.mockup-day-strip span.current.phase-menstrual{background:var(--color-period-rose)}.mockup-day-strip span.current.phase-follicular{background:var(--color-cream)}.mockup-day-strip span.current.phase-fertile{background:var(--color-mint)}.mockup-day-strip span.current.phase-ovulation{color:var(--color-white);background:var(--color-green)}.mockup-day-strip span.current.phase-luteal{background:var(--color-lavender)}.mockup-day-strip span.ovulation-day{border:1px solid var(--color-green)}.mockup-day-strip span.predicted-period{color:var(--color-pink-light);background:var(--color-rose-muted);border:1px dashed var(--color-pink-light)}.mockup-cycle-footer{color:var(--color-pink-pale);justify-content:center;gap:.8rem;font-size:.7rem;display:flex}.mockup-dot{border-radius:var(--radius-round);background:var(--color-mint);width:7px;height:7px;margin-right:.3rem;display:inline-block}.mockup-dot.menstrual{background:var(--color-period-rose)}.mockup-dot.ovulation{background:var(--color-green)}.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:var(--color-chip-text);border:1px solid var(--color-chip-border);border-radius:var(--radius-pill);background:0 0;padding:.35rem .55rem;font-size:.68rem}.mockup-pills span:first-child{color:var(--color-chip-active-text);background:var(--color-pink-active);border-color:var(--color-chip-active-border)}.mockup-insight{background:var(--color-green-soft);border-radius:var(--radius-card);color:var(--color-green-text);align-items:center;gap:.8rem;padding:1.2rem;display:flex}.mockup-insight-icon{border-radius:var(--radius-round);width:28px;height:28px;color:var(--color-white);background:var(--color-green);flex:none;place-items:center;font-weight:800;line-height:1;display:grid}.mockup-insight strong{font:600 1rem var(--font-heading)}.mockup-insight p{color:var(--color-green-muted);margin:.25rem 0 0;font-size:.78rem}.mockup-context{border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);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:var(--color-muted);font-size:.75rem}.dashboard-skeleton .skeleton-block{height:1em;border-radius:var(--radius-xs);height:1lh;display:block}.dashboard-skeleton .skeleton-text{color:#0000;border-radius:var(--radius-xs);-webkit-box-decoration-break:clone;box-decoration-break:clone}.skeleton-block,.dashboard-skeleton .skeleton-text,.skeleton-ring,.skeleton-dot,.skeleton-pill{background:var(--color-skeleton);animation:1.4s ease-in-out infinite skeleton-pulse}.dashboard-skeleton .mockup-cycle-card .skeleton-block,.dashboard-skeleton .skeleton-ring,.dashboard-skeleton .skeleton-dot{background:var(--color-white-16)}.dashboard-skeleton .mockup-cycle-ring{place-items:center;display:grid}.skeleton-ring{aspect-ratio:1;border-radius:var(--radius-round);border:15px solid var(--color-white-16);background:0 0;width:74.5%}.skeleton-dot{border-radius:var(--radius-round);width:30px;height:30px}.skeleton-pill{border-radius:var(--radius-pill);height:calc(1.2em + .7rem + 2px)}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.55}}@media (max-width:400px){.mockup-insight p{min-height:3lh}}@media (prefers-reduced-motion:reduce){.skeleton-block,.dashboard-skeleton .skeleton-text,.skeleton-ring,.skeleton-dot,.skeleton-pill{animation:none}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.floating-log-button:hover,.mucus-scale-option:hover{transform:none}}.nav-icon{width:20px;height:20px;color:var(--color-brand-plum);flex:none}.mucus-icon{width:28px;height:28px;color:var(--color-brand-plum);flex:none}.calendar-day.observed-flow{background:var(--color-period-rose);color:var(--color-plum-dark)}.calendar-day.predicted-period{background:var(--color-pink-light);border:1px dashed var(--color-rose-border)}.calendar-day.predicted-fertile{background:var(--color-green-soft)}.calendar-day.predicted-ovulation{color:var(--color-white);background:var(--color-green)}.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 var(--color-plum-dark)}.legend-observed{background:var(--color-brand-plum)}.legend-period{background:var(--color-pink-light);border:1px dashed var(--color-rose-border)}.legend-fertile{background:var(--color-mint)}.legend-ovulation{background:var(--color-green)}.onboarding-page{background:radial-gradient(circle at 80% 15%,var(--color-pink-soft),transparent 25%),var(--color-page);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:var(--color-surface);border:1px solid var(--color-border);width:min(100%,560px);box-shadow:var(--shadow-card);padding:clamp(2rem,6vw,4rem)}.wizard-progress{gap:.4rem;margin-bottom:2rem;display:flex}.wizard-progress span{background:var(--color-warm-line);border-radius:var(--radius-control);flex:1;height:4px}.wizard-progress span.active{background:var(--color-brand-plum)}.onboarding-card h1{font:700 clamp(2.4rem,6vw,4.6rem)/.95 var(--font-heading);letter-spacing:-.08em;margin:.8rem 0 1rem}.wizard-copy{max-width:430px;color:var(--color-muted)}.onboarding-card label{color:var(--color-text-secondary);gap:.45rem;margin:2rem 0;font-size:.82rem;font-weight:700;display:grid}.onboarding-card input,.onboarding-card select{width:100%;color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:.85rem}.number-input{align-items:center;gap:.6rem;display:flex}.number-input input{max-width:130px}.number-input span{color:var(--color-muted);font-weight:500}.onboarding-card .field-hint{color:var(--color-muted);font-size:.72rem;font-weight:500}.back-button{color:var(--color-rose-text);background:0 0;border:0;margin:1rem auto 0;padding:0;text-decoration:underline;display:block}.wizard-note{color:var(--color-muted);font-size:.75rem}@media (max-width:800px){.mockup-heading{flex-direction:column;align-items:start;margin-bottom:1.5rem}.mockup-layout{grid-template-columns:1fr}.mockup-cycle-card{padding:1.2rem}.mockup-cycle-ring{width:180px}.skeleton-ring{border-width:11px}.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}.graph-page{overflow-x:auto}.graph-analysis{min-width:0}.graph-legend,.graph-note{max-width:calc(100vw - 2rem)}.graph-header-actions{width:100%}.graph-phase-band span{font-size:.58rem}.app-nav{grid-template-columns:repeat(5,minmax(0,1fr))}.floating-log-button{bottom:5.3rem;right:1rem}.log-panel{display:none}.log-panel.mobile-log-open{z-index:20;background:var(--color-page);border-radius:var(--radius-none);height:100dvh;min-height:0;max-height:100dvh;box-shadow:none;overscroll-behavior:contain;border:0;flex-direction:column;grid-template-rows:auto auto auto auto auto 1fr auto;padding:0;display:flex;position:fixed;inset:0;overflow:hidden}.log-panel.mobile-log-open h2{margin:0}.log-panel.mobile-log-open .primary-button{position:sticky;bottom:0}.log-panel.mobile-log-open .log-panel-fields{flex-direction:column;flex:auto;min-height:0;display:flex}.log-panel.mobile-log-open label{min-width:0}.log-panel.mobile-log-open input,.log-panel.mobile-log-open select,.log-panel.mobile-log-open textarea{width:100%;min-width:0;max-width:100%}.log-panel.mobile-log-open input[type=time]{appearance:none;width:100%;min-width:0;max-width:100%;font-size:16px;display:block}.mobile-log-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);flex:none;padding:1rem 1rem .75rem}.mobile-log-close{display:block}.mobile-log-content{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1 1 0;align-content:start;gap:.7rem;height:0;min-height:0;padding:1rem 1rem 2rem;display:grid;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:var(--color-surface);border-top:1px solid var(--color-border);flex:none}.mobile-log-footer .primary-button{width:100%}.mucus-compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;display:grid}.mucus-compact-option{min-height:52px;color:var(--color-brown-muted);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-control);text-align:left;align-items:center;gap:.4rem;padding:.45rem;font-size:.68rem;display:flex}.mucus-compact-option.active{color:var(--color-rose-text);border-color:var(--color-brand-plum);background:var(--color-pink-selected)}.mucus-compact-option .mucus-icon{width:22px;height:22px}.mucus-none{border:1px dashed var(--color-brand-plum);border-radius:var(--radius-round);width:22px;height:22px;display:block}.mucus-scale{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-layout{display:block}.calendar-card{margin-bottom:1rem}.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}}.calendar-day.observed-flow.intensity-1{background:var(--color-flow-30)}.calendar-day.observed-flow.intensity-2{color:var(--color-plum-deep);background:var(--color-flow-65)}.calendar-day.observed-flow.intensity-3{color:var(--color-white);background:var(--color-brand-plum)}.calendar-day.suggested-flow,.calendar-day.automatic-flow{color:var(--color-plum-dark);background:var(--color-flow-30)}.calendar-day.suggested-flow.intensity-2,.calendar-day.automatic-flow.intensity-2{background:var(--color-flow-65)}.calendar-day.suggested-flow.intensity-3,.calendar-day.automatic-flow.intensity-3{color:var(--color-white);background:var(--color-brand-plum)}.calendar-day.suggested-flow{border:2px dashed var(--color-plum-dark)}.calendar-day.automatic-flow{border:2px dotted var(--color-plum-dark)}.legend-suggested-flow,.legend-automatic-flow{background:var(--color-period-rose);border:2px dashed var(--color-plum-dark)}.legend-automatic-flow{border-style:dotted}.period-controls{gap:.65rem;min-width:0;display:grid}.period-controls h3,.period-controls p{margin:0}.period-controls h3{font-size:.9rem}.period-controls p,.period-controls small{overflow-wrap:anywhere;font-size:.78rem}.period-range{font-weight:700}.period-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;display:grid}.period-action-tile{min-width:0;min-height:104px;color:var(--color-rose-text);background:var(--color-page);border:1px solid var(--color-border-strong);border-radius:var(--radius-control);font:600 .75rem/1.4 var(--font-heading);letter-spacing:-.025em;text-align:center;overflow-wrap:anywhere;align-content:center;justify-items:center;gap:.6rem;padding:.8rem .6rem;display:grid}.period-action-tile:hover:not(:disabled){border-color:var(--color-brand-plum);background:var(--color-pink-soft)}.period-action-tile:disabled{opacity:.55;cursor:not-allowed}.day-entry-icon{width:36px;height:36px;color:var(--color-brand-plum);background:var(--color-pink-soft);border-radius:var(--radius-control);flex:none;place-items:center;display:grid}.day-entry-icon svg{width:23px;height:23px}.day-entry-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;display:grid}.day-entry-tile{min-width:0;min-height:112px;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-control);text-align:center;flex-direction:column;justify-content:flex-start;align-items:center;gap:.45rem;padding:.75rem .4rem;display:flex}.day-entry-tile:hover{color:var(--color-rose-text);border-color:var(--color-brand-plum);background:var(--color-page)}.day-entry-tile strong{overflow-wrap:anywhere;max-width:100%;font-size:.72rem;line-height:1.4}.day-entry-tile small{max-width:100%;color:var(--color-muted);overflow-wrap:anywhere;margin-top:auto;font-size:.68rem}.daily-log-tags{gap:.75rem;min-width:0;display:grid}.daily-log-tags h3{color:var(--color-ink-strong);font:700 1rem/1.2 var(--font-heading);margin:0}.daily-log-tags>p{color:var(--color-muted);margin:0;font-size:.75rem;line-height:1.45}.daily-log-tag-input-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.45rem;display:grid}.daily-log-tag-input-row input{width:100%;min-width:0}.daily-log-tag-input-row button{min-height:44px;padding:.55rem .8rem}.daily-log-tag-list{flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.daily-log-tag-list li{max-width:100%;color:var(--color-plum-dark);background:var(--color-pink-soft);border-radius:var(--radius-pill);overflow-wrap:anywhere;align-items:center;gap:.2rem;padding:.2rem .25rem .2rem .65rem;font-size:.75rem;display:flex}.daily-log-tag-list li span{overflow-wrap:anywhere;min-width:0}.daily-log-tag-list li button{width:32px;height:32px;color:inherit;border-radius:var(--radius-round);background:0 0;border:0;flex:none;padding:0;font-size:1.1rem}.daily-log-tag-suggestions{color:var(--color-muted);flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.72rem;display:flex}.daily-log-tag-suggestion{min-height:36px;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:.3rem .6rem;font-size:.72rem}.day-log-panel{container:day-editor/inline-size}.day-log-panel .mobile-log-header{grid-template-columns:minmax(0,1fr) 32px;align-items:start;gap:.5rem;display:grid}.day-header-heading{min-width:0}.day-log-panel .mobile-log-header .eyebrow{margin:0}.day-date-navigation{grid-template-columns:28px minmax(0,max-content) 28px;justify-content:center;align-items:center;gap:.25rem;display:grid}.day-date-navigation button{min-width:0;min-height:44px;color:var(--color-rose-text);border-radius:var(--radius-xs);background:0 0;border:0;padding:0;font-size:1.5rem}.day-date-static{display:none}.day-date-navigation .day-date-button{vertical-align:middle;min-width:44px;color:inherit;border-radius:var(--radius-xs);font:inherit;letter-spacing:inherit;justify-content:center;align-items:center;gap:.35rem;padding:.35rem .25rem;display:inline-flex}.day-date-return-icon{opacity:.7;flex:none;width:14px;height:14px}.day-date-button:not(:disabled){color:var(--color-rose-text);text-decoration:underline;-webkit-text-decoration-color:var(--color-rose-border-soft);text-decoration-color:var(--color-rose-border-soft);text-underline-offset:4px;text-decoration-thickness:1px}.day-date-navigation button:hover:not(:disabled){background:var(--color-pink-light)}.day-date-button:disabled{cursor:default}.day-log-panel .day-date-navigation h2{letter-spacing:-.04em;text-align:center;margin:0;font-size:1rem;line-height:1.3}.day-log-panel .mobile-log-close{width:32px;min-height:44px;margin:0;padding:0;position:static}.day-week-strip{grid-column:1/-1;grid-template-columns:repeat(7,minmax(0,1fr));gap:.1rem;display:grid}.day-week-strip button{min-width:0;min-height:58px;color:var(--color-muted);border-radius:var(--radius-sm);background:0 0;border:0;justify-items:center;gap:.25rem;padding:.3rem 0;display:grid}.day-week-strip button>span{max-width:100%;font-size:.6rem;overflow:hidden}.day-week-strip button>strong{place-items:center;width:28px;height:28px;font-size:.85rem;display:grid}.day-week-strip button[aria-pressed=true]{color:var(--color-rose-text);background:var(--color-pink-light)}.day-week-strip button[aria-pressed=true]>strong{color:var(--color-white);background:var(--color-brand-plum);border-radius:var(--radius-round)}.day-week-strip button[aria-current=date]>span{text-underline-offset:3px;font-weight:800;text-decoration:underline}.day-section-heading{gap:1rem;margin-bottom:.5rem;display:grid}.day-back-button{min-height:44px;color:var(--color-rose-text);background:0 0;border:0;justify-self:start;align-items:center;gap:.45rem;padding:.35rem 0;font-size:.8rem;font-weight:700;display:flex}.day-back-button>span{font-size:1.5rem}.day-section-heading h2:focus{outline:none}.day-note-fields{gap:.7rem;display:grid}.log-panel [hidden]{display:none!important}@media (min-width:801px){.day-log-panel .day-week-strip,.day-log-panel .day-date-navigation button{display:none}.day-log-panel .mobile-log-header{grid-template-columns:minmax(0,1fr)}.day-log-panel .day-date-navigation{grid-template-columns:minmax(0,1fr);margin-top:.45rem}.day-log-panel .day-date-static{display:inline}.day-log-panel .day-date-navigation h2{text-align:left;font-size:1.15rem}}@container day-editor (width<=270px){.day-entry-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.sex-activity-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;display:grid}.sex-activity-option{min-height:42px;color:var(--color-brown-muted);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-control);padding:.55rem .35rem;font-size:.7rem}.sex-activity-option:hover,.sex-activity-option.selected{color:var(--color-rose-text);border-color:var(--color-brand-plum);background:var(--color-pink-selected)}.temperature-time-field{grid-template-rows:minmax(2.2rem,auto) auto 1.2rem;align-content:start;gap:.42rem;display:grid}.temperature-time-field>label{align-items:end;min-height:2.2rem;display:flex}.temperature-time-toggle{grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;display:grid}.temperature-time-toggle button{min-height:36px;color:var(--color-brown-muted);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:.45rem .6rem;font-size:.72rem}.temperature-time-toggle button:hover,.temperature-time-toggle button.selected{color:var(--color-rose-text);border-color:var(--color-brand-plum);background:var(--color-pink-selected)}.graph-header-actions{justify-items:stretch;gap:.75rem;display:grid}.graph-period-summary{margin-top:1rem}.graph-temperature-toggle{min-width:170px}.calendar-sex-indicator{width:16px;height:16px;color:var(--color-brand-plum);place-items:center;font-size:.85rem;line-height:1;display:grid}.calendar-day.observed-flow.intensity-3 .calendar-sex-indicator{color:var(--color-white)}.danger-zone{border-top:1px solid var(--color-warm-line);margin-top:1rem;padding-top:1rem}.danger-zone h3{color:var(--color-plum-dark);font:600 1rem var(--font-heading);letter-spacing:-.03em;margin:0 0 .35rem}.danger-zone p{color:var(--color-muted);margin:.35rem 0 .8rem;font-size:.75rem}.danger-button{color:var(--color-white);background:var(--color-brand-plum);border:1px solid var(--color-brand-plum);border-radius:var(--radius-pill);padding:.65rem .8rem;font-size:.76rem;font-weight:800}.danger-button:hover{background:var(--color-plum-dark);border-color:var(--color-plum-dark)}.danger-button:focus-visible{outline:3px solid var(--color-green);outline-offset:3px}.deletion-pending{text-align:center;gap:1rem;padding:2rem}.deletion-pending p{max-width:32rem;color:var(--color-muted)}[dir=rtl] .auth-page>.brand,[dir=rtl] .onboarding-page>.brand{left:auto;right:clamp(1.25rem,5vw,4rem)}[dir=rtl] .auth-page>.language-picker,[dir=rtl] .onboarding-page>.language-picker{left:clamp(1.25rem,5vw,4rem);right:auto}[dir=rtl] .app-nav{border-right:0;border-left:1px solid var(--color-border)}[dir=rtl] .icon-button{margin-left:0;margin-right:.4rem}[dir=rtl] .calendar-heading .icon-button{transform:scaleX(-1)}[dir=rtl] .calendar-heading,[dir=rtl] .mockup-context,[dir=rtl] .graph-header{text-align:right}[dir=rtl] .date-stepper,[dir=rtl] .back-button{direction:rtl}@media (min-width:801px){.calendar-page{grid-template-rows:auto minmax(0,1fr);height:calc(100vh - 76px - clamp(3rem,10vw,10rem));min-height:0;display:grid}.calendar-page .calendar-layout{grid-template-rows:minmax(0,1fr);height:100%;min-height:0;margin:0 auto;padding-top:2rem}.calendar-layout{grid-template-columns:minmax(0,1fr) clamp(220px,30vw - .5rem,400px);align-items:start;gap:1.25rem}.log-panel{grid-template-rows:auto minmax(0,1fr) auto;gap:.7rem;max-height:100%;padding:1rem}.log-panel .log-panel-fields{min-height:0}.log-panel .mobile-log-header{gap:.1rem;display:grid}.log-panel .mobile-log-header .eyebrow{margin:0}.log-panel h2{margin:0;font-size:1.3rem;line-height:1.15}.log-panel .mobile-log-content{align-content:start;gap:.55rem;height:100%;min-height:0;display:grid;overflow-y:auto}.log-panel .log-panel-fields input,.log-panel .log-panel-fields select,.log-panel .log-panel-fields textarea{min-width:0}.log-panel .log-field-group{gap:.25rem;display:grid}.log-panel .log-field-group legend{font-size:.8rem}.temperature-time-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:.55rem;display:grid}.temperature-time-grid>div{gap:.42rem;display:grid}.temperature-time-grid .field-hint{margin-top:-.15rem}.temperature-time-grid .temperature-error{color:var(--color-rose-text);font-size:.72rem;font-weight:600}.log-panel .mucus-scale{grid-template-columns:repeat(5,minmax(0,1fr));gap:.3rem}.log-panel .mucus-scale-option{overflow-wrap:anywhere;text-align:center;min-height:54px;padding:.35rem .2rem;font-size:.75rem}.mucus-none-option .mucus-none{border-radius:var(--radius-round);width:20px;height:20px;display:block}.log-panel .symptom-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(44px,auto);gap:.3rem;display:grid}.log-panel .symptom{min-width:0;height:100%;min-height:44px;color:var(--color-brown-muted);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-7);overflow-wrap:anywhere;text-align:start;white-space:normal;padding:.35rem .45rem;font-size:.75rem;line-height:1.2}.log-panel .symptom:hover,.log-panel .symptom.selected{color:var(--color-rose-text);border-color:var(--color-brand-plum);background:var(--color-pink-selected)}.log-panel .mobile-log-footer{border-top:1px solid var(--color-warm-line);padding-top:.1rem}.log-panel .primary-button{width:100%;padding:.72rem .9rem}}@media (max-width:800px){.mucus-scale .mucus-none-option{grid-column:1/-1}}.mucus-none-option{color:var(--color-muted);background:var(--color-warm-surface-muted);border-style:dashed}.api-key-card>p{max-width:50rem;color:var(--color-muted)}.weekdays,.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-day{min-width:0}@media (min-width:801px) and (max-width:1024px){.calendar-day{padding-inline:.25rem}}.api-key-status code{color:var(--color-plum-dark);background:var(--color-pink-selected);border-radius:var(--radius-4);padding:.2rem .4rem;font-family:ui-monospace,monospace}.api-key-reveal{background:var(--color-page);border:1px solid var(--color-border);gap:.5rem;max-width:42rem;margin:1rem 0;padding:1rem;display:grid}.api-key-reveal input{width:100%;color:var(--color-brown-ink);background:var(--color-white);border:1px solid var(--color-border-strong);border-radius:var(--radius-xs);padding:.7rem;font:600 .8rem ui-monospace,monospace}.api-key-reveal small{color:var(--color-muted)}.api-key-actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.form-message{color:var(--color-brand-plum);font-size:.8rem}@media (max-width:700px){.api-key-card{grid-column:auto}}@media (max-width:800px){.graph-header{gap:.75rem;margin-bottom:1rem}.graph-header h1{letter-spacing:-.06em;margin:.35rem 0 .5rem;font-size:clamp(2rem,8vw,2.6rem);line-height:1}.graph-header p:not(.eyebrow){max-width:38rem;font-size:.82rem;line-height:1.45}.graph-header-actions{display:none}}.graph-period-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.graph-period-summary>div{text-align:center;min-width:0}.graph-period-summary .graph-cycle-window-summary{background:var(--color-surface);align-content:start;gap:.2rem;padding:1.1rem 1.3rem;display:grid}.graph-period-summary .graph-cycle-range{background:0 0;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:.45rem;margin:.15rem 0 0;padding:0;display:grid}.graph-period-summary .graph-cycle-range strong{text-align:center;white-space:normal;text-wrap:balance;overflow-wrap:anywhere;grid-column:2;min-width:0}.graph-period-summary .graph-cycle-range strong:only-child{grid-column:1/-1}.graph-period-summary .graph-cycle-range .icon-button{width:44px;height:44px;color:var(--color-rose-text);border-radius:var(--radius-none);background:0 0;border:0;margin:0;padding:0;font-size:1.7rem;font-weight:400;line-height:1}.graph-period-summary .graph-cycle-range .icon-button:hover{color:var(--color-brand-plum);background:0 0}.graph-period-summary .graph-cycle-range .icon-button:disabled{color:var(--color-warm-gray);cursor:not-allowed;opacity:1;background:0 0}@media (max-width:800px){.graph-period-summary{grid-template-columns:1fr;width:min(100%,100vw - 2rem);min-width:0}.graph-period-summary .graph-cycle-range{gap:.15rem}.graph-period-summary .graph-cycle-range .icon-button{font-size:1.55rem}}.settings-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:end;padding-bottom:1.5rem;display:flex}.settings-header h1{margin:.65rem 0 0;font-size:clamp(2.3rem,4vw,3.5rem)}.settings-layout{margin-top:1.5rem}.settings-mobile-nav{display:none}.settings-nav-group{gap:.2rem;display:grid}.settings-nav-group .settings-local-nav{gap:.15rem;margin:.35rem 0 .65rem .75rem;padding:0;display:grid}.settings-local-nav a{width:100%;color:var(--color-muted);border-radius:var(--radius-control);border:0;padding:.55rem .7rem .55rem 1.1rem;font-size:.75rem;font-weight:700;line-height:1.25;text-decoration:none}.settings-local-nav a:hover,.settings-local-nav a:focus-visible,.settings-local-nav a.active{color:var(--color-ink);background:var(--color-pink-soft);outline-offset:-2px}.settings-grid{grid-template-columns:minmax(0,1fr);align-items:start;gap:1rem;margin-top:0;display:grid}.settings-card[id]{scroll-margin-top:1.5rem}.settings-card{align-content:start;margin-top:0}.settings-card-heading{justify-content:space-between;align-items:start;gap:1rem;display:flex}.settings-card-heading h2{margin:0}.settings-fields label{align-content:start}.settings-fields input,.settings-fields select{height:44px;min-height:44px;line-height:1.2}.settings-fields{grid-template-columns:minmax(0,1fr);gap:1rem;display:grid}.settings-field-section{grid-column:1/-1;gap:.75rem;display:grid}.settings-field-section:not(:last-child){border-bottom:1px solid var(--color-border);padding-bottom:1rem}.settings-field-section h3{color:var(--color-muted);font:700 .68rem var(--font-body);letter-spacing:.1em;text-transform:uppercase;margin:0}.settings-description,.settings-card .settings-helper{color:var(--color-muted);font:400 .75rem/1.4 var(--font-body);margin:0}.settings-field-section-grid{grid-template-columns:minmax(0,1fr);gap:1rem;display:grid}.settings-field-group{color:var(--color-text-secondary);align-content:start;gap:.42rem;font-size:.82rem;font-weight:700;display:grid}.settings-field-label{display:block}.settings-temperature-toggle{width:100%}.settings-temperature-toggle button{min-height:44px}.settings-preferences-card>.primary-button{justify-self:start;margin-top:.25rem}.settings-preferences-card>.primary-button:disabled{color:var(--color-brown-disabled);background:var(--color-warm-line);box-shadow:none;cursor:not-allowed}.settings-data-card>p{margin:0}.export-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;display:grid}.export-actions .secondary-button{min-height:44px}.settings-note{color:var(--color-muted);font-size:.72rem}.settings-data-card .danger-zone{margin-top:.25rem}.settings-privacy-choice{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;display:flex}.settings-privacy-choice h3{color:var(--color-text-secondary);font:700 .82rem var(--font-body);margin:0 0 .35rem}.settings-privacy-choice .secondary-button{flex:none;min-height:44px}.api-key-card{grid-column:1}.api-key-layout{grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);align-items:start;gap:1.75rem;display:grid}.api-key-details>p:first-child{margin:0}.api-key-status{color:var(--color-muted);align-items:center;gap:.45rem;margin:1rem 0 0;font-size:.8rem;display:flex}.api-key-status.active{color:var(--color-green-dark)}.api-key-status.unavailable{color:var(--color-rose-text)}.api-key-status-dot{border-radius:var(--radius-round);background:var(--color-warm-gray);flex:none;width:8px;height:8px}.api-key-status.active .api-key-status-dot{background:var(--color-green)}.api-key-status.unavailable .api-key-status-dot{background:var(--color-brand-plum)}.api-key-reveal{max-width:none;margin:1rem 0 0}.api-key-reveal-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.6rem;display:grid}.api-key-reveal-row input{min-width:0}.api-key-controls{border-left:1px solid var(--color-border);min-width:0;padding-left:1.25rem}.api-key-scopes{border:0;min-width:0;margin:0 0 1rem;padding:0}.api-key-scopes legend{color:var(--color-text-secondary);margin-bottom:.35rem;font-size:.82rem;font-weight:800}.api-key-scopes>.settings-helper{margin-bottom:.9rem}.api-key-scope-groups{gap:.8rem;display:grid}.api-key-scope-group{grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));gap:.35rem;display:grid}.api-key-scope-group h3{color:var(--color-muted);letter-spacing:.08em;text-transform:uppercase;grid-column:1/-1;margin:0;font-size:.66rem}.api-key-scope{color:var(--color-text-secondary);background:var(--color-page);border:1px solid var(--color-border);border-radius:var(--radius-7);cursor:pointer;align-items:flex-start;gap:.6rem;padding:.55rem .65rem;display:flex}.api-key-scope:hover{border-color:var(--color-rose-border)}.api-key-scope input{width:18px;height:18px;accent-color:var(--color-rose-text);flex:none;margin:.05rem 0 0}.api-key-scope span{gap:.15rem;min-width:0;display:grid}.api-key-scope strong{color:var(--color-plum-dark);overflow-wrap:anywhere;font:600 .72rem ui-monospace,monospace}.api-key-scope small{color:var(--color-muted);font-size:.7rem;line-height:1.35}.api-key-scopes-summary{color:var(--color-muted);flex-wrap:wrap;align-items:center;gap:.35rem;margin:.55rem 0 0;font-size:.72rem;display:flex}.api-key-scopes-summary code{color:var(--color-plum-dark);background:var(--color-pink-selected);border-radius:var(--radius-4);padding:.18rem .35rem;font:600 .68rem ui-monospace,monospace}.api-key-actions{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;display:grid}.api-key-actions .primary-button,.api-key-actions .danger-button{width:100%}.api-key-actions .primary-button:only-child{grid-column:1/-1}.api-key-actions .danger-button{color:var(--color-rose-text);border-color:var(--color-rose-border);background:0 0}.api-key-actions .danger-button:hover{color:var(--color-white);background:var(--color-plum-dark);border-color:var(--color-plum-dark)}.mcp-card{grid-column:1/-1}.mcp-content,.mcp-upgrade{gap:1rem;display:grid}.mcp-content>p,.mcp-upgrade>p{margin:0}.mcp-label{color:var(--color-text-secondary);margin-bottom:.35rem;font-size:.78rem;font-weight:800;display:block}.mcp-endpoint-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.6rem;display:grid}.mcp-endpoint-row code{overflow-wrap:anywhere;min-width:0;color:var(--color-plum-dark);font:600 .78rem ui-monospace,monospace}.mcp-endpoint-row .secondary-button{min-height:44px}.mcp-tools,.mcp-config{gap:.55rem;display:grid}.mcp-tools h3,.mcp-config h3{color:var(--color-text-secondary);font:700 .78rem var(--font-body);margin:0}.mcp-tools ul{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.mcp-tools li{background:var(--color-page);border:1px solid var(--color-border);border-radius:var(--radius-7);color:var(--color-muted);flex-wrap:wrap;justify-content:space-between;gap:.35rem .75rem;padding:.55rem .65rem;font-size:.72rem;display:flex}.mcp-tools li>code,.mcp-tools li span code{color:var(--color-plum-dark);overflow-wrap:anywhere;font:600 .72rem ui-monospace,monospace}.mcp-config pre{max-width:100%;color:var(--color-pink-selected);background:var(--color-ink);border-radius:var(--radius-sm);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:.8rem;font:.7rem/1.5 ui-monospace,monospace;overflow-x:auto}.mcp-content>a{color:var(--color-rose-text);text-underline-offset:.18em;justify-self:start;font-size:.78rem;font-weight:800}.mcp-upgrade .primary-button{justify-self:start;min-height:44px}@media (max-width:960px){.api-key-layout{grid-template-columns:1fr;gap:1rem}.api-key-controls{border-top:1px solid var(--color-border);border-left:0;padding:1rem 0 0}}@media (max-width:800px){.settings-header{padding-bottom:1rem}.settings-header h1{font-size:2.5rem}.settings-layout{margin-top:1rem;display:block}.settings-nav-group .settings-local-nav{display:none}.settings-mobile-nav{background:var(--color-surface);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);gap:.15rem;margin:0 0 1rem;padding:.35rem 1rem;display:flex;overflow-x:auto}.settings-mobile-nav a{color:var(--color-muted);white-space:nowrap;border-bottom:2px solid #0000;flex:none;padding:.55rem .7rem;font-size:.72rem;font-weight:700;line-height:1.25;text-decoration:none}.settings-mobile-nav a:hover,.settings-mobile-nav a:focus-visible,.settings-mobile-nav a.active{color:var(--color-ink);border-bottom-color:var(--color-brand-plum)}.settings-grid,.settings-fields,.settings-field-section-grid{grid-template-columns:1fr}.api-key-card{grid-column:auto}.api-key-scope-groups,.api-key-scope-group,.api-key-actions{grid-template-columns:1fr}}.calendar-heading-actions{align-items:center;gap:.4rem;display:flex}.calendar-heading-actions .icon-button{margin-left:0}.calendar-today-button{height:40px;color:var(--color-rose-text);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-control);padding:.6rem .8rem;font-size:.75rem;font-weight:800}.calendar-today-button:hover{color:var(--color-plum-dark);background:var(--color-pink-soft);border-color:var(--color-rose-border)}@media (min-width:801px){.calendar-page>.calendar-heading{width:100%;margin-inline:0}.calendar-page .calendar-layout{width:100%;padding-bottom:1rem}.calendar-page .log-panel{border-radius:var(--radius-lg);box-shadow:0 6px 16px var(--shadow-warm-5)}.calendar-page .log-panel .mobile-log-footer{border-top-color:var(--color-border);box-shadow:none}}.app-nav{align-content:start;gap:.35rem;display:grid}@media (max-width:800px){.app-shell{min-height:100svh}.app-header{height:auto;min-height:64px;padding-top:env(safe-area-inset-top)}.app-body{min-height:calc(100svh - 64px - env(safe-area-inset-top))}.app-main{padding-bottom:calc(6rem + env(safe-area-inset-bottom));scroll-padding-bottom:calc(6rem + env(safe-area-inset-bottom))}.app-nav{min-height:calc(64px + env(safe-area-inset-bottom));padding-bottom:calc(.5rem + env(safe-area-inset-bottom))}.nav-button{min-height:48px}.floating-log-button{bottom:calc(5.3rem + env(safe-area-inset-bottom))}.icon-button,.calendar-today-button{min-width:44px;min-height:44px}input,select,textarea{font-size:16px}}.pwa-update-banner{z-index:41;right:1rem;bottom:calc(1rem + var(--analytics-consent-height,0px));max-width:760px;color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-banner);justify-content:space-between;align-items:center;gap:1rem;margin:auto;padding:1rem 1.15rem;display:flex;position:fixed;left:1rem}.pwa-update-banner strong{font:600 1rem var(--font-heading);display:block}.pwa-update-banner p{max-width:520px;color:var(--color-muted);margin:.25rem 0 0;font-size:.76rem;line-height:1.45}.pwa-update-actions{flex:none;gap:.5rem;display:flex}.pwa-update-actions button{border-radius:var(--radius-pill);white-space:nowrap;padding:.6rem .8rem;font-size:.76rem}.pwa-update-actions .secondary-button{color:var(--color-rose-text);background:var(--color-pink-soft)}.pwa-update-banner button:focus-visible{outline:3px solid var(--color-green);outline-offset:3px}.analytics-consent-banner{z-index:40;max-width:760px;color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-banner);justify-content:space-between;align-items:center;gap:1rem;margin:auto;padding:1rem 1.15rem;display:flex;position:fixed;bottom:1rem;left:1rem;right:1rem}.analytics-consent-banner[hidden]{display:none}.analytics-consent-banner strong{font:600 1rem var(--font-heading);display:block}.analytics-consent-banner p{max-width:520px;color:var(--color-muted);margin:.25rem 0;font-size:.76rem;line-height:1.45}.analytics-consent-banner a{color:var(--color-rose-text);font-size:.74rem;font-weight:700}.analytics-consent-actions{flex:none;gap:.5rem;display:flex}.analytics-consent-actions button{border-radius:var(--radius-pill);white-space:nowrap;padding:.6rem .8rem;font-size:.76rem}.analytics-consent-actions .secondary-button{color:var(--color-rose-text);background:var(--color-pink-soft)}.analytics-settings-button{z-index:39;color:var(--color-rose-text);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);box-shadow:0 8px 20px var(--shadow-warm-12);padding:.55rem .8rem;font-size:.72rem;font-weight:700;position:fixed;bottom:1rem;right:1rem}.analytics-consent-banner button:focus-visible,.analytics-consent-banner a:focus-visible,.analytics-settings-button:focus-visible,.analytics-consent-banner button:focus-visible,.analytics-consent-banner a:focus-visible{outline:3px solid var(--color-green);outline-offset:3px}html[data-analytics-consent-open=true] .auth-page{min-height:100svh;padding-bottom:calc(clamp(1.5rem,5vw,4rem) + var(--analytics-consent-height,0px) + 2rem);align-content:center}@media (max-width:800px){.app-root-authenticated .pwa-update-banner{bottom:calc(64px + env(safe-area-inset-bottom) + 1rem + var(--analytics-consent-height,0px))}.settings-privacy-choice{flex-direction:column;align-items:flex-start}html[data-analytics-consent-open=true] .app-root-authenticated .analytics-consent-banner{bottom:calc(64px + env(safe-area-inset-bottom) + 1rem)}html[data-analytics-consent-open=true] .app-root-authenticated .floating-log-button{bottom:calc(5.3rem + env(safe-area-inset-bottom) + var(--analytics-consent-height,0px) + 1rem)}}@media (min-width:801px) and (max-width:923px){html[data-analytics-consent-open=true] .app-root-authenticated .floating-log-button{bottom:calc(1.5rem + var(--analytics-consent-height,0px) + 1rem)}}@media (max-width:700px){.pwa-update-banner{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.8rem;padding:.9rem 1rem;display:grid}.pwa-update-actions{flex-direction:column;justify-content:end;gap:.4rem}.pwa-update-actions button{min-width:7rem}.analytics-consent-banner{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.8rem;padding:.9rem 1rem;display:grid}.analytics-consent-actions{flex-direction:column;justify-content:end;gap:.4rem}.analytics-consent-actions button{min-width:7rem}html[data-analytics-consent-open=true] .auth-page{align-content:start;gap:.5rem;padding-top:1rem}}@media (max-width:360px){html[data-analytics-consent-open=true] .auth-page{align-content:start;gap:2rem;min-height:auto;padding-top:4.5rem;padding-bottom:1.5rem}.auth-card{padding:1.5rem}.auth-card h1{font-size:2.15rem}.analytics-consent-banner{grid-template-columns:1fr;align-items:stretch;width:auto;max-width:none;margin:1rem;position:relative;inset:auto}html[data-analytics-consent-open=true] .app-root-authenticated .analytics-consent-banner{margin-bottom:calc(64px + env(safe-area-inset-bottom) + 1rem)}.analytics-consent-banner strong{font-size:.9rem}.analytics-consent-banner p{font-size:.7rem;line-height:1.35}.analytics-consent-actions{flex-direction:row}.analytics-consent-actions button{flex:1;min-width:0;padding:.55rem .45rem}}.billing-settings-card{padding:clamp(1rem,3vw,2rem)}.billing-page{gap:1.25rem;display:grid}.billing-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:start;gap:1.5rem;padding-bottom:1.25rem;display:flex}.billing-header h2{font:700 clamp(1.8rem,4vw,3rem)/1 var(--font-heading);letter-spacing:-.07em;margin:.65rem 0 .55rem}.billing-header p:not(.eyebrow){max-width:620px;color:var(--color-muted);margin:0;line-height:1.5}.billing-environment{color:var(--color-green-text);background:var(--color-green-soft);border-radius:var(--radius-pill);white-space:nowrap;flex:none;padding:.45rem .65rem;font-size:.68rem;font-weight:800}.billing-toggle{background:var(--color-warm-paper);border-radius:var(--radius-pill);gap:.2rem;width:max-content;padding:.25rem;display:flex}.billing-toggle button{min-width:110px;color:var(--color-muted);border-radius:var(--radius-pill);background:0 0;border:0;padding:.65rem .85rem;font-size:.75rem;font-weight:800}.billing-toggle button:hover,.billing-toggle button.selected{color:var(--color-white);background:var(--color-plum-dark)}.billing-status-card{background:var(--color-surface);border:1px solid var(--color-green-border);max-width:760px;box-shadow:0 18px 38px var(--shadow-green-8);padding:clamp(1.25rem,4vw,2rem)}.billing-status-card-heading{justify-content:space-between;align-items:start;gap:1rem;display:flex}.billing-status-card h3{color:var(--color-ink-strong);font:700 clamp(1.5rem,3vw,2.2rem)/1 var(--font-heading);letter-spacing:-.06em;margin:.55rem 0 0}.billing-status-mark{width:2.2rem;height:2.2rem;color:var(--color-white);background:var(--color-green);border-radius:var(--radius-round);flex:none;place-items:center;font-size:1.2rem;font-weight:800;display:grid}.billing-details{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.5rem 0;padding:1rem 0;display:grid}.billing-details div{gap:.3rem;display:grid}.billing-details dt{color:var(--color-muted-warm);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-weight:800}.billing-details dd{color:var(--color-text-secondary);margin:0;font-size:.9rem;font-weight:700}.billing-status-card .billing-portal-button{width:100%}.billing-status-past_due,.billing-status-paused{border-color:var(--color-gold-border-soft);box-shadow:0 18px 38px var(--shadow-gold-8)}.billing-status-past_due .billing-status-mark,.billing-status-paused .billing-status-mark{background:var(--color-gold)}.billing-status-canceled{border-color:var(--color-rose-border-muted);box-shadow:0 18px 38px var(--shadow-plum-7)}.billing-status-canceled .billing-status-mark{background:var(--color-brand-plum)}.billing-card{background:linear-gradient(145deg,var(--color-surface),var(--color-pink-surface));border:1px solid var(--color-rose-border-soft);max-width:760px;box-shadow:var(--shadow-plum-card);padding:clamp(1.25rem,4vw,2rem)}.billing-card-heading{justify-content:space-between;align-items:start;gap:1.5rem;display:flex}.billing-plan-kicker{color:var(--color-brand-plum);letter-spacing:.12em;text-transform:uppercase;font-size:.66rem;font-weight:800}.billing-card h3{font:700 clamp(1.8rem,4vw,2.7rem)/1 var(--font-heading);letter-spacing:-.08em;margin:.55rem 0 .45rem}.billing-card-heading p{max-width:430px;color:var(--color-muted);margin:0;font-size:.85rem;line-height:1.45}.billing-price{text-align:right;flex:none}.billing-price strong{color:var(--color-plum-dark);font:700 clamp(1.8rem,4vw,2.8rem)/1 var(--font-heading);letter-spacing:-.08em;display:block}.billing-price span{color:var(--color-muted);margin-top:.25rem;font-size:.72rem;display:block}.billing-features{border-top:1px solid var(--color-warm-line);border-bottom:1px solid var(--color-warm-line);grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem 1rem;margin:1.7rem 0;padding:1.25rem 0;list-style:none;display:grid}.billing-features li{color:var(--color-text-secondary);align-items:start;gap:.5rem;font-size:.78rem;line-height:1.35;display:flex}.billing-features li span{color:var(--color-green);font-weight:900}.billing-subscribe{width:100%}.billing-note{color:var(--color-muted-warm);margin:1rem 0 0;font-size:.7rem;line-height:1.45}.billing-error{margin:0}.plus-gate{background:linear-gradient(145deg,var(--color-surface),var(--color-pink-surface));border:1px solid var(--color-rose-border-soft);width:min(100%,760px);box-shadow:var(--shadow-plum-card);padding:clamp(1.25rem,4vw,2rem)}.plus-gate-copy{max-width:620px}.plus-gate h2{color:var(--color-ink-strong);font:700 clamp(1.6rem,4vw,2.5rem)/1.08 var(--font-heading);letter-spacing:-.07em;margin:.6rem 0 .55rem}.plus-gate-copy>p:not(.eyebrow){color:var(--color-muted);margin:0;line-height:1.5}.plus-gate-features{border-top:1px solid var(--color-warm-line);border-bottom:1px solid var(--color-warm-line);grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem 1rem;margin:1.35rem 0;padding:1rem 0;list-style:none;display:grid}.plus-gate-features li{color:var(--color-text-secondary);align-items:start;gap:.5rem;font-size:.8rem;line-height:1.4;display:flex}.plus-gate-features li span{color:var(--color-green);font-weight:900}.plus-gate .primary-button{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.plus-gate-loading{color:var(--color-muted);padding:1rem}.billing-welcome-page{background:radial-gradient(circle at 80% 15%,var(--color-pink-soft),transparent 24%),var(--color-page);align-content:center;place-items:center;gap:2rem;min-height:100vh;padding:clamp(1.5rem,5vw,4rem);display:grid}.billing-welcome-page>.brand{position:absolute;top:2rem;left:clamp(1.5rem,5vw,4rem)}.billing-welcome-card{background:var(--color-surface);border:1px solid var(--color-border);width:min(100%,580px);box-shadow:var(--shadow-card);padding:clamp(2rem,6vw,4rem)}.billing-welcome-card h1{font:700 clamp(2.4rem,6vw,4.6rem)/.95 var(--font-heading);letter-spacing:-.08em;margin:.8rem 0 1rem}.billing-welcome-card p:not(.eyebrow){max-width:470px;color:var(--color-muted);margin-bottom:1.6rem;line-height:1.55}@media (max-width:700px){.billing-header,.billing-card-heading,.billing-status-card-heading{flex-direction:column}.billing-environment{align-self:start}.billing-price{text-align:left}.billing-features,.plus-gate-features,.billing-details{grid-template-columns:1fr}.billing-toggle{width:100%}.billing-toggle button{flex:1;min-width:0}.billing-welcome-page>.brand{position:static}}.onboarding-card .date-stepper-field{gap:.45rem;margin:2rem 0;display:grid}.onboarding-card .date-stepper-field>label{margin:0}@media (max-width:400px){.onboarding-card{min-width:0}.date-stepper{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;display:grid}.date-step-input{grid-area:1/1/auto/-1;min-width:0}.date-step-button{grid-row:2;width:100%}.date-step-button:first-child{grid-column:1}.date-step-button:last-child{grid-column:2}}.multi-cycle-report{width:100%;min-width:0;max-width:100%;color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-border);margin:2.5rem auto 1rem;padding:clamp(1rem,3vw,1.5rem);box-shadow:0 12px 30px #462a2e0f}.multi-cycle-report-header{grid-template-columns:minmax(0,1fr) minmax(190px,260px);align-items:start;gap:1.5rem;display:grid}.multi-cycle-report-header h2{font:700 clamp(1.45rem,3vw,2rem)/1.1 var(--font-heading);letter-spacing:-.06em;margin:.45rem 0 .55rem}.multi-cycle-report-header p:not(.eyebrow){max-width:620px;color:var(--color-muted);margin:.35rem 0 0;font-size:.83rem;line-height:1.45}.multi-cycle-report-actions{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:.55rem;min-width:0;display:grid}.multi-cycle-report-actions label{color:var(--color-text-secondary);grid-column:1/-1;font-size:.76rem;font-weight:700}.multi-cycle-report-actions select{width:100%;min-width:0;min-height:44px;color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:8px;grid-column:1/-1;padding:.55rem .7rem}.multi-cycle-report-actions button{border-radius:999px;min-width:0;min-height:44px;padding:.65rem .7rem;font-size:.75rem;font-weight:800;line-height:1.2}.multi-cycle-report-actions .secondary-button{color:var(--color-rose-text);background:var(--color-pink-soft)}.multi-cycle-report-actions .primary-button{color:var(--color-white);background:var(--color-brand-plum)}.multi-cycle-report-actions button:disabled{cursor:not-allowed;opacity:.5}.multi-cycle-report-status{color:var(--color-text-secondary);background:var(--color-warm-hover);border-radius:8px;margin:1rem 0;padding:.8rem;font-size:.82rem}.multi-cycle-report-table-wrap{width:100%;min-width:0;margin-top:1.2rem}.multi-cycle-report-table{table-layout:fixed;border-collapse:collapse;width:100%;font-size:.73rem}.multi-cycle-report-table caption{padding:.4rem}.multi-cycle-report-table th,.multi-cycle-report-table td{border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top;overflow-wrap:anywhere;min-width:0;padding:.7rem .45rem}.multi-cycle-report-table th{color:var(--color-text-secondary);background:var(--color-warm-surface);font-size:.68rem;line-height:1.3}.multi-cycle-report-table td{color:var(--color-ink);line-height:1.4}.multi-cycle-report-table tfoot th,.multi-cycle-report-table tfoot td{color:var(--color-ink-strong);background:var(--color-warm-surface);border-top:2px solid var(--color-border-strong);font-weight:800}.multi-cycle-report-disclaimer{color:var(--color-muted);margin:1rem 0 0;font-size:.72rem;line-height:1.45}@media (max-width:800px){.multi-cycle-report{width:min(100%,100vw - 2rem);margin:2rem auto 1rem;padding:1rem}.multi-cycle-report-header{grid-template-columns:minmax(0,1fr);gap:1rem}.multi-cycle-report-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.multi-cycle-report-table-wrap{overflow:visible}.multi-cycle-report-table,.multi-cycle-report-table tbody,.multi-cycle-report-table tfoot{width:100%;display:block}.multi-cycle-report-table thead{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.multi-cycle-report-table tbody tr{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;margin:.75rem 0;padding:.2rem .7rem;display:block}.multi-cycle-report-table tbody td{border-bottom:1px solid var(--color-border-light);grid-template-columns:minmax(7.5rem,40%) minmax(0,1fr);gap:.5rem;padding:.65rem 0;display:grid}.multi-cycle-report-table tbody td:last-child{border-bottom:0}.multi-cycle-report-table tbody td:before{content:attr(data-label);color:var(--color-muted);font-size:.67rem;font-weight:800;line-height:1.35}.multi-cycle-report-table tfoot tr{background:var(--color-warm-surface);border:1px solid var(--color-border-strong);border-radius:10px;margin-top:1rem;padding:.75rem;display:block}.multi-cycle-report-table tfoot th{background:0 0;border:0;padding:.2rem 0 .6rem;display:block}.multi-cycle-report-table tfoot td[data-label]{background:0 0;border:0;grid-template-columns:minmax(7.5rem,40%) minmax(0,1fr);gap:.5rem;padding:.65rem 0 .2rem;display:grid}.multi-cycle-report-table tfoot td[data-label]:before{content:attr(data-label);color:var(--color-muted);font-size:.67rem;font-weight:800}.multi-cycle-report-table tfoot td[colspan]{display:none}}@media print{@page{margin:12mm}body{min-width:0;color:var(--color-black);background:var(--color-white)}.app-header,.app-nav,.floating-log-button,.app-main>.status{display:none!important}.app-body{min-height:0!important;display:block!important}.app-main{padding:0!important}.graph-page{min-width:0!important;max-width:none!important;margin:0!important;overflow:visible!important}.graph-page>:not(.multi-cycle-report){display:none!important}.multi-cycle-report{width:100%!important;max-width:none!important;box-shadow:none!important;border:0!important;margin:0!important;padding:0!important}.multi-cycle-report-actions{display:none!important}.multi-cycle-report-header{margin-bottom:1rem;display:block!important}.multi-cycle-report-header h2{font-size:20pt}.multi-cycle-report-table-wrap{overflow:visible!important}.multi-cycle-report-table{table-layout:auto!important;width:100%!important;font-size:8pt!important;display:table!important}.multi-cycle-report-table thead{clip:auto!important;width:auto!important;height:auto!important;position:static!important;overflow:visible!important}.multi-cycle-report-table tbody,.multi-cycle-report-table tfoot{display:table-row-group!important}.multi-cycle-report-table tr{break-inside:avoid;display:table-row!important}.multi-cycle-report-table th,.multi-cycle-report-table td{color:var(--color-black)!important;border:1px solid var(--color-border-muted)!important;background:var(--color-white)!important;padding:5pt 4pt!important;display:table-cell!important}.multi-cycle-report-table tbody td:before,.multi-cycle-report-table tfoot td:before{display:none!important}.multi-cycle-report-table tfoot td[colspan]{display:table-cell!important}.multi-cycle-report-disclaimer{color:var(--color-ink-strong)!important;font-size:8pt!important}}.reminders-settings-card{gap:1rem;display:grid}.reminders-settings-card .settings-card-heading{display:block}.reminders-settings-card .settings-card-heading h2{margin:0 0 .45rem}.reminders-settings-form{gap:1rem;min-width:0;display:grid}.reminder-option{min-width:0;color:var(--color-brown-text);align-items:flex-start;gap:.7rem;font-size:.86rem;line-height:1.45;display:flex}.reminder-option input{width:1.1rem;height:1.1rem;accent-color:var(--color-rose-text);flex:none;margin:.1rem 0 0}.reminder-time-field,.reminder-days-field{max-width:22rem;color:var(--color-text-secondary);gap:.4rem;font-size:.78rem;font-weight:700;display:grid}.reminder-time-field input,.reminder-days-field select{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-10);width:100%;min-width:0;padding:.7rem .75rem}.reminder-notifications{background:var(--color-warm-surface);border:1px solid var(--color-border);border-radius:var(--radius-14);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;min-width:0;padding:1rem;display:grid}.reminder-notifications h3{margin:0 0 .3rem;font-size:.86rem}.reminder-notifications .settings-helper{margin:0;line-height:1.45}.reminder-notification-status{color:var(--color-text-secondary);margin:0;font-size:.76rem;line-height:1.4}.reminder-due-banner{background:var(--color-warm-white);border:1px solid var(--color-peach-border);border-radius:var(--radius-card);max-width:1040px;box-shadow:0 8px 22px var(--shadow-reminder);justify-content:space-between;align-items:center;gap:1rem;margin:0 auto 1rem;padding:1rem 1.15rem;display:flex}.reminder-due-copy{min-width:0}.reminder-due-copy .eyebrow{color:var(--color-brand-plum);margin:0 0 .4rem}.reminder-due-banner ul{color:var(--color-text-secondary);gap:.3rem;margin:0;padding-left:1.1rem;font-size:.85rem;line-height:1.45;display:grid}.reminder-due-banner button{white-space:nowrap;flex:none}@media (max-width:480px){.reminder-notifications{grid-template-columns:minmax(0,1fr);align-items:stretch}.reminder-notifications .secondary-button{white-space:normal;width:100%}.reminder-due-banner{flex-direction:column;align-items:stretch;gap:.75rem;padding:.9rem 1rem}.reminder-due-banner button{white-space:normal;width:100%}}.cycle-report-toolbar{justify-content:flex-end;margin:-.75rem 0 1rem;display:flex}.cycle-report-page{color:var(--color-ink-strong);background:var(--color-surface);border:1px solid var(--color-border);margin:1.5rem 0;padding:clamp(1rem,3vw,2rem);overflow-x:hidden}.cycle-report-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:start;gap:1.5rem;padding-bottom:1rem;display:flex}.cycle-report-header h2{font:700 clamp(1.7rem,4vw,2.5rem)/1.05 var(--font-heading);letter-spacing:-.06em;margin:.4rem 0}.cycle-report-header p:not(.eyebrow){color:var(--color-muted);margin:.4rem 0 0}.cycle-report-actions{flex-wrap:wrap;gap:.5rem;display:flex}.cycle-report-summary{grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem;margin:1rem 0 1.5rem;display:grid}.cycle-report-summary>div{background:var(--color-warm-surface);align-content:start;gap:.45rem;min-width:0;padding:.75rem;display:grid}.cycle-report-summary span{color:var(--color-muted-warm);font-size:.66rem;font-weight:800}.cycle-report-summary strong{overflow-wrap:anywhere;font-size:.88rem}.cycle-report-section{margin:1.5rem 0}.cycle-report-section h3{font:700 1.2rem var(--font-heading);margin:0 0 .75rem}.cycle-report-symptoms{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.cycle-report-symptoms li{background:var(--color-warm-surface);justify-content:space-between;gap:.5rem;padding:.55rem .7rem;font-size:.8rem;display:flex}.cycle-report-table-wrap{width:100%;overflow-x:auto}.cycle-report-table{table-layout:fixed;border-collapse:collapse;width:100%;font-size:.72rem}.cycle-report-table th,.cycle-report-table td{text-align:start;vertical-align:top;border:1px solid var(--color-border);overflow-wrap:anywhere;min-width:0;padding:.5rem}.cycle-report-table th{color:var(--color-text-secondary);background:var(--color-warm-surface);font-weight:800}.cycle-report-disclaimer{color:var(--color-muted-warm);border-top:1px solid var(--color-border);margin:1.5rem 0 0;padding-top:.75rem;font-size:.72rem;line-height:1.45}.cycle-report-error{color:var(--color-rose-text);background:var(--color-pink-surface);padding:1rem}@media (max-width:800px){.cycle-report-header{flex-direction:column}.cycle-report-summary,.cycle-report-symptoms{grid-template-columns:repeat(2,minmax(0,1fr))}}@media print{@page{margin:12mm}body *{visibility:hidden!important}.cycle-report-page,.cycle-report-page *{visibility:visible!important}.cycle-report-page{width:100%!important;max-width:none!important;color:var(--color-black)!important;background:var(--color-white)!important;box-shadow:none!important;border:0!important;margin:0!important;padding:0!important;position:absolute!important;inset:0!important}.cycle-report-screen-only{display:none!important}.cycle-report-summary{grid-template-columns:repeat(5,minmax(0,1fr))}.cycle-report-table{font-size:8pt}.cycle-report-table thead{display:table-header-group}.cycle-report-table tr{break-inside:avoid}}.cycle-trends-section{border-top:1px solid var(--color-border);min-width:0;margin-top:1.75rem;padding-top:1.5rem}.cycle-trends-header h2{color:var(--color-ink-strong);font:700 clamp(1.45rem,3vw,2rem)/1.08 var(--font-heading);letter-spacing:-.06em;margin:.55rem 0 .45rem}.cycle-trends-header p:not(.eyebrow){max-width:680px;color:var(--color-muted);margin:0;font-size:.82rem;line-height:1.5}.cycle-trend-windows{grid-template-columns:repeat(auto-fit,minmax(min(100%,245px),1fr));gap:.7rem;margin-top:1rem;display:grid}.cycle-trend-window{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:0;padding:.95rem}.cycle-trend-window>h3{color:var(--color-ink-strong);font:600 1rem var(--font-heading);letter-spacing:-.03em;margin:0 0 .8rem}.cycle-trend-metric{border-top:1px solid var(--color-border-light);min-width:0;padding:.75rem 0}.cycle-trend-metric h4{color:var(--color-muted);letter-spacing:.06em;text-transform:uppercase;margin:0 0 .4rem;font-size:.68rem;font-weight:800}.cycle-trend-average{color:var(--color-muted);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.3rem .6rem;margin:0;font-size:.7rem;display:flex}.cycle-trend-average strong{color:var(--color-ink);font:600 1rem var(--font-heading)}.cycle-trend-variability,.cycle-trend-count,.cycle-trend-pattern,.cycle-trend-empty{color:var(--color-muted);overflow-wrap:anywhere;margin:.3rem 0 0;font-size:.68rem;line-height:1.4}.cycle-trend-pattern{color:var(--color-green);font-weight:700}.cycle-trends-note{color:var(--color-muted-warm);margin:.75rem 0 0;font-size:.7rem;line-height:1.45}.cycle-trend-flags{color:var(--color-text-secondary);background:var(--color-pink-alert);border:1px solid var(--color-pink-border);border-radius:var(--radius-10);margin-top:.75rem;padding:.8rem .9rem}.cycle-trend-flags h3{color:var(--color-rose-text);margin:0 0 .45rem;font-size:.75rem}.cycle-trend-flags ul{gap:.25rem;margin:0;padding-left:1.1rem;display:grid}.cycle-trend-flags li{overflow-wrap:anywhere;font-size:.68rem;line-height:1.4}.cycle-history-page{width:100%;min-width:0;max-width:1100px;margin-inline:auto}.cycle-history-header{min-width:0;margin-bottom:1.5rem}.cycle-history-header h1{color:var(--color-ink-strong);font:700 clamp(2.4rem,5vw,4.6rem)/.95 var(--font-heading);letter-spacing:-.08em;overflow-wrap:anywhere;margin:.75rem 0 1rem}.cycle-history-header p:not(.eyebrow){max-width:680px;color:var(--color-muted);margin:0;font-size:.82rem;line-height:1.5}.cycle-comparisons-section{border-top:1px solid var(--color-border);min-width:0;margin-top:1.75rem;padding-top:1.5rem}.cycle-comparisons-header h2{color:var(--color-ink-strong);font:700 clamp(1.45rem,3vw,2rem)/1.08 var(--font-heading);letter-spacing:-.06em;margin:.55rem 0 .45rem}.cycle-comparisons-header p:not(.eyebrow){max-width:680px;color:var(--color-muted);margin:0;font-size:.82rem;line-height:1.5}.cycle-history-list{gap:.65rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.cycle-history-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-width:0;box-shadow:var(--shadow-card);padding:.8rem}.cycle-history-item-header{justify-content:space-between;align-items:flex-start;gap:.5rem;min-width:0;display:flex}.cycle-history-dates{flex-wrap:wrap;align-items:center;gap:.35rem .5rem;min-width:0;display:flex}.cycle-history-dates h3{color:var(--color-ink-strong);font:600 .88rem/1.35 var(--font-heading);letter-spacing:-.025em;overflow-wrap:anywhere;margin:0}.cycle-history-current{color:var(--color-rose-text);background:var(--color-pink-selected);border-radius:var(--radius-pill);padding:.15rem .4rem;font-size:.58rem;font-weight:800}.cycle-history-length{color:var(--color-text-secondary);font:700 .75rem var(--font-heading);white-space:nowrap;flex:none}.cycle-history-anomaly{color:var(--color-rose-text);background:var(--color-pink-alert);border-left:3px solid var(--color-brand-plum);margin:.5rem 0 0;padding:.35rem .5rem;font-size:.67rem;line-height:1.4}.cycle-history-anomaly-short_interval{color:var(--color-gold-text);background:var(--color-cream-alert);border-color:var(--color-gold-border)}.cycle-history-bar{grid-template-columns:repeat(auto-fill,minmax(21px,1fr));gap:.25rem;margin-top:.65rem;display:grid}.cycle-history-pill{min-width:0;min-height:24px;color:var(--color-brown-warm);background:var(--color-warm-gray-soft);border-radius:var(--radius-pill);font-variant-numeric:tabular-nums;place-items:center;font-size:.58rem;line-height:1;display:grid}.cycle-history-pill-period{color:var(--color-plum-dark);background:var(--color-period-rose-medium)}.cycle-history-pill-period.flow-1{background:var(--color-period-rose-soft)}.cycle-history-pill-period.flow-2{color:var(--color-white);background:var(--color-brand-plum)}.cycle-history-pill-period.flow-3{color:var(--color-white);background:var(--color-plum-dark)}.cycle-history-pill-fertile{color:var(--color-green-forest);background:var(--color-green-soft)}.cycle-history-pill-ovulation{color:var(--color-white);background:var(--color-green)}.cycle-history-pill-lateLuteal{color:var(--color-purple-dark);background:var(--color-lavender-soft)}.cycle-history-pill-infertile{color:var(--color-brown-muted);background:var(--color-warm-gray-soft)}.cycle-history-pill-unclassified{color:var(--color-brown-muted);background:var(--color-warm-gray-soft);border:1px dashed var(--color-border-muted)}.cycle-history-pill.is-forecast{border:1px dashed}.cycle-history-pill-gap{color:var(--color-muted);border:1px dashed var(--color-border-muted);background:0 0}.cycle-history-legend{color:var(--color-muted);flex-wrap:wrap;gap:.4rem .8rem;margin:.8rem 0 0;padding:0;font-size:.62rem;list-style:none;display:flex}.cycle-history-legend li{align-items:center;gap:.3rem;display:flex}.cycle-history-legend-dot{flex:none;width:10px;height:10px;min-height:10px}.cycle-history-empty,.cycle-comparison-empty{color:var(--color-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-10);margin:.85rem 0 0;padding:.8rem;font-size:.76rem}.cycle-comparison-select-label{min-width:0;color:var(--color-text-secondary);border:0;gap:.45rem;margin:1rem 0;padding:0;font-size:.75rem;font-weight:800;display:grid}.cycle-comparison-select-label legend{margin-bottom:.45rem;padding:0}.cycle-comparison-select-list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-control);gap:.3rem;max-height:172px;padding:.55rem;display:grid;overflow-y:auto}.cycle-comparison-select-item{min-width:0;color:var(--color-text-secondary);align-items:center;gap:.45rem;font-size:.68rem;font-weight:500;line-height:1.3;display:flex}.cycle-comparison-select-item input{width:16px;height:16px;accent-color:var(--color-brand-plum);flex:none}.cycle-comparison-select-item>span{overflow-wrap:anywhere;min-width:0}.cycle-comparison-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:.6rem;display:grid}.cycle-comparison-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-10);min-width:0;padding:.8rem}.cycle-comparison-card h3{color:var(--color-ink-strong);font:600 .78rem/1.35 var(--font-heading);overflow-wrap:anywhere;margin:0}.cycle-comparison-anomaly{color:var(--color-rose-text);margin:.4rem 0 0;font-size:.64rem;line-height:1.35}.cycle-comparison-card dl{gap:.4rem;margin:.65rem 0 0;display:grid}.cycle-comparison-card dl>div{border-top:1px solid var(--color-border-light);justify-content:space-between;align-items:baseline;gap:.5rem;min-width:0;padding-top:.35rem;display:flex}.cycle-comparison-card dt{color:var(--color-muted);font-size:.62rem;line-height:1.3}.cycle-comparison-card dd{max-width:62%;color:var(--color-ink-strong);text-align:right;overflow-wrap:anywhere;margin:0;font-size:.65rem;font-weight:700;line-height:1.3}.cycle-comparison-chart-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-10);min-width:0;margin-top:.9rem;padding:.8rem}.cycle-comparison-chart-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.4rem;display:flex}.cycle-comparison-chart-heading h3{color:var(--color-ink-strong);font:600 .85rem var(--font-heading);margin:0}.cycle-comparison-chart-heading p{color:var(--color-muted);margin:0;font-size:.65rem}.cycle-comparison-chart-heading strong{color:var(--color-ink-strong)}.cycle-comparison-chart-scroll{width:100%;overflow-x:auto}.cycle-comparison-chart{width:100%;min-width:280px;height:auto;margin-top:.35rem;overflow:visible}.cycle-comparison-axis{stroke:var(--color-border-strong);stroke-width:1px}.cycle-comparison-average-line{stroke:var(--color-green);stroke-width:1.5px;stroke-dasharray:5 4}.cycle-comparison-line{fill:none;stroke:var(--color-brand-plum);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.cycle-comparison-point{fill:var(--color-surface);stroke:var(--color-brand-plum);stroke-width:3px}.cycle-comparison-point.is-anomaly{fill:var(--color-period-rose-medium);stroke:var(--color-rose-text);stroke-width:4px}.cycle-comparison-point.is-capped{stroke-dasharray:2 2}.cycle-comparison-chart-outlier{fill:var(--color-rose-text);font:700 9px var(--font-body)}.cycle-comparison-chart-label{fill:var(--color-muted);font:10px var(--font-body)}.cycle-comparison-chart-scale{fill:var(--color-muted);font:9px var(--font-body)}@media (max-width:420px){.cycle-comparisons-section{margin-top:1.25rem;padding-top:1rem}.cycle-history-item{padding:.65rem}.cycle-history-bar{grid-template-columns:repeat(auto-fill,minmax(19px,1fr));gap:.2rem}.cycle-history-pill{min-height:22px;font-size:.54rem}.cycle-comparison-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.cycle-comparison-card{padding:.55rem}.cycle-comparison-card h3{font-size:.68rem}.cycle-comparison-card dl>div{gap:.18rem;display:grid}.cycle-comparison-card dd{text-align:left;max-width:100%}}.app-shell{grid-template-columns:228px minmax(0,1fr);min-height:100vh;display:grid}.app-sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;height:100vh;padding:1.5rem 1rem;display:flex;position:sticky;top:0}.app-sidebar>.brand{padding:0 .55rem}.app-nav.desktop-nav{border:0;margin-top:2.4rem;padding:0}.app-content{min-width:0}.app-header{border-bottom:1px solid var(--color-border);height:76px;padding:0 clamp(1.25rem,3vw,3rem)}.header-actions{margin-left:auto}.mobile-brand,.mobile-nav{display:none}.account-avatar{width:36px;height:36px;color:var(--color-plum-dark);background:var(--color-pink-status);border:0;border-radius:50%;flex:none;place-items:center;font-size:.9rem;font-weight:800;display:grid}.account-menu{position:relative}.account-trigger{min-height:44px;color:var(--color-ink-strong);border-radius:var(--radius-control);background:0 0;border:0;align-items:center;gap:.5rem;padding:.25rem .4rem;font-size:.8rem;font-weight:700;display:flex}.account-trigger-name{text-overflow:ellipsis;white-space:nowrap;max-width:min(45vw,15rem);overflow:hidden}.account-chevron{stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:14px;height:14px}.account-menu-popup{z-index:30;top:calc(100% + .35rem);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-control);min-width:9rem;max-width:calc(100vw - 1.6rem);box-shadow:var(--shadow-card);padding:.35rem;position:absolute;inset-inline-end:0}.account-menu-popup[hidden]{display:none}.account-menu-popup .quiet-button{width:100%;min-height:44px}.app-body{min-width:0;min-height:calc(100vh - 76px);margin:0;display:block}.app-main{width:100%;max-width:1480px;margin:0 auto;padding:clamp(1.5rem,4vw,3.5rem)}.nav-button{min-width:0;min-height:46px;color:var(--color-text-secondary);text-align:left;border:0;padding:.7rem .8rem;transition:background .15s,color .15s;position:relative}.nav-button span{flex:none}.nav-button.active{color:var(--color-ink-strong);background:var(--color-pink-soft)}.nav-button.active .nav-icon{color:var(--color-brand-plum)}.nav-button:focus-visible{outline-offset:2px}@media (max-width:800px){.app-shell{min-height:100svh;display:block}.app-sidebar{display:none}.app-header{height:auto;min-height:64px;padding:env(safe-area-inset-top) .8rem 0}.mobile-brand{flex:none;font-size:1.25rem;display:block}.header-actions{gap:.45rem}.account-email{display:none}.account-avatar{width:32px;height:32px;font-size:.8rem}.quiet-button{white-space:nowrap;padding:.45rem .55rem;font-size:.67rem}.app-body{min-height:calc(100svh - 64px - env(safe-area-inset-top));display:block}.app-main{padding:1.2rem .8rem calc(6rem + env(safe-area-inset-bottom));scroll-padding-bottom:calc(6rem + env(safe-area-inset-bottom))}.mobile-nav{z-index:20;min-height:calc(64px + env(safe-area-inset-bottom));padding:.4rem .3rem calc(.4rem + env(safe-area-inset-bottom));background:var(--color-surface);border-top:1px solid var(--color-border);box-shadow:0 -8px 24px var(--shadow-warm-5);grid-template-columns:repeat(5,minmax(0,1fr));gap:.15rem;display:grid;position:fixed;bottom:0;left:0;right:0}.mobile-nav .settings-nav-group{min-width:0}.mobile-nav .settings-local-nav{display:none}.mobile-nav .nav-button{text-align:center;min-width:0;min-height:48px;box-shadow:none;flex-direction:column;justify-content:center;gap:.15rem;padding:.25rem .1rem;font-size:.62rem;line-height:1.1}.mobile-nav .nav-button.active{background:var(--color-pink-soft)}.mobile-nav .nav-icon{width:19px;height:19px}.floating-log-button{bottom:calc(5.3rem + env(safe-area-inset-bottom))}}.sidebar-illustration{text-align:center;flex-direction:column;align-items:center;gap:.4rem;margin-top:auto;padding:.75rem 0 .1rem;display:flex}.sidebar-illustration-art{flex:none;width:min(100%,164px);height:auto}.sidebar-illustration-caption{color:var(--color-muted);white-space:pre-line;margin:0;font-size:.72rem;font-style:italic;line-height:1.55}.sidebar-illustration-heart{flex:none;width:18px;height:18px}@media (max-height:680px) and (min-width:801px){.sidebar-illustration{display:none}}
