:root{--font:ui-rounded, "SF Pro Rounded", "Nunito", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--radius-lg:24px;--radius:18px;--radius-sm:12px;--tabbar:64px;--ease:cubic-bezier(.2, .8, .2, 1);--bg:#fff8f9;--surface:#fff;--surface-2:#fdf3f6;--ink:#3b2530;--ink-2:#7d6370;--ink-3:#866a7a;--line:#f3e3e9;--shadow:0 1px 2px #501e320a, 0 8px 24px #501e320f;--shadow-lg:0 20px 50px #501e322e;--accent:#e8577e;--accent-strong:#b0305a;--accent-soft:#fde3ea;--accent-softer:#fff0f4;--on-accent:#fff;--solid:var(--accent-strong);--on-solid:#fff;--fert-solid:var(--fert-strong);--fert:#8467e6;--fert-soft:#ece6ff;--fert-strong:#6a4fd0;--good:#3d9b7a;--warn:#c7822a;--warn-soft:#fff3e2;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}[data-theme=lavender]{--bg:#faf8ff;--surface-2:#f5f2ff;--line:#e9e3f8;--ink:#2e2843;--ink-2:#6c6487;--ink-3:#6e6790;--accent:#8467e6;--accent-strong:#5b40c2;--accent-soft:#ece6ff;--accent-softer:#f6f3ff;--fert:#1fa594;--fert-soft:#dbf4ef;--fert-strong:#137d70;--shadow:0 1px 2px #281e500a, 0 8px 24px #281e500f}[data-theme=peach]{--bg:#fffaf6;--surface-2:#fff3ec;--line:#f7e5da;--ink:#3d2a22;--ink-2:#80655a;--ink-3:#826a5f;--accent:#e8744a;--accent-strong:#a8461f;--accent-soft:#ffe7dc;--accent-softer:#fff3ed;--fert:#5b7fe0;--fert-soft:#e3eaff;--fert-strong:#3f63c4;--shadow:0 1px 2px #5028140a, 0 8px 24px #5028140f}[data-theme=sage]{--bg:#f7f9f7;--surface-2:#f0f5f2;--line:#e1ebe5;--ink:#22302a;--ink-2:#5d6f66;--ink-3:#5f7269;--accent:#4a8a73;--accent-strong:#2c614e;--accent-soft:#dfeee7;--accent-softer:#eef6f2;--fert:#c98a2a;--fert-soft:#fbefd9;--fert-strong:#9c6514;--shadow:0 1px 2px #1432280a, 0 8px 24px #1432280f}@media (prefers-color-scheme:dark){:root:not([data-mode=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#17121a;--surface:#221b25;--surface-2:#2a222e;--ink:#f6eef4;--ink-2:#c3b3be;--ink-3:#a3929e;--line:#362c39;--shadow:0 1px 2px #0000004d, 0 8px 24px #00000040;--accent-soft:color-mix(in srgb, var(--accent) 24%, #221b25);--accent-softer:color-mix(in srgb, var(--accent) 12%, #221b25);--accent-strong:color-mix(in srgb, var(--accent) 60%, white);--fert-soft:color-mix(in srgb, var(--fert) 24%, #221b25);--fert-strong:color-mix(in srgb, var(--fert) 55%, white);--warn-soft:#3a2c1a;--solid:var(--accent);--on-solid:#1d0f16;--fert-solid:var(--fert-strong)}}:root[data-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#17121a;--surface:#221b25;--surface-2:#2a222e;--ink:#f6eef4;--ink-2:#c3b3be;--ink-3:#a3929e;--line:#362c39;--shadow:0 1px 2px #0000004d, 0 8px 24px #00000040;--accent-soft:color-mix(in srgb, var(--accent) 24%, #221b25);--accent-softer:color-mix(in srgb, var(--accent) 12%, #221b25);--accent-strong:color-mix(in srgb, var(--accent) 60%, white);--fert-soft:color-mix(in srgb, var(--fert) 24%, #221b25);--fert-strong:color-mix(in srgb, var(--fert) 55%, white);--warn-soft:#3a2c1a;--solid:var(--accent);--on-solid:#1d0f16;--fert-solid:var(--fert-strong)}*{box-sizing:border-box}html,body{background:var(--bg);overscroll-behavior-y:none;min-height:100%;margin:0;overflow-x:clip}.stat,.card,.note,.chip,.item{overflow-wrap:anywhere}body{transition:background .3s var(--ease)}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0;padding:0}input,textarea,select{font:inherit;color:inherit}h1,h2,h3,h4,p{margin:0}:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px;border-radius:8px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.app{max-width:540px;min-height:100dvh;padding:calc(env(safe-area-inset-top) + 6px) 16px calc(var(--tabbar) + env(safe-area-inset-bottom) + 12px);margin:0 auto}.topbar{justify-content:space-between;align-items:center;gap:10px;padding:2px 2px 6px;display:flex}.who{background:var(--surface);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:8px;padding:5px 12px 5px 5px;font-size:15px;font-weight:700;display:inline-flex}.avatar{background:var(--accent-soft);border-radius:50%;flex-shrink:0;place-items:center;width:30px;height:30px;font-size:17px;display:grid}.avatar.lg{width:52px;height:52px;font-size:28px}.icon-btn{background:var(--surface);width:40px;height:40px;box-shadow:var(--shadow);color:var(--ink-2);border-radius:50%;place-items:center;display:grid}.page-title{letter-spacing:-.025em;margin:6px 2px 14px;font-size:30px;font-weight:800}.section-label{color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;margin:22px 4px 10px;font-size:13px;font-weight:800}.muted{color:var(--ink-2)}.faint{color:var(--ink-3)}.small{font-size:13px;line-height:1.4}.tiny{font-size:11.5px}.center{text-align:center}.row{align-items:center;gap:10px;display:flex}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.stack>*+*{margin-top:10px}.mt{margin-top:12px}.mb{margin-bottom:12px}.card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);margin-bottom:12px;padding:16px}.card-title{align-items:center;gap:8px;margin-bottom:12px;font-size:16px;font-weight:800;display:flex}.card-title .sub{color:var(--ink-3);margin-inline-start:auto;font-size:13px;font-weight:700}.card.tint{background:linear-gradient(140deg, var(--accent-soft), var(--accent-softer));box-shadow:none}.card.fert{background:linear-gradient(140deg, var(--fert-soft), var(--surface));box-shadow:none}.card.link{text-align:start;align-items:center;gap:12px;width:100%;display:flex}.btn{text-align:center;min-height:50px;transition:transform .12s var(--ease), background .2s;overflow-wrap:anywhere;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-width:0;padding:8px 18px;font-size:16px;font-weight:750;line-height:1.2;display:inline-flex}.btn svg{flex-shrink:0}.btn:active{transform:scale(.97)}.btn-primary{background:var(--solid);color:var(--on-solid);box-shadow:0 6px 18px color-mix(in srgb, var(--accent) 35%, transparent)}.btn-soft{background:var(--accent-soft);color:var(--accent-strong)}.btn-ghost{color:var(--accent-strong);min-height:44px;padding:6px 12px}.btn-danger{color:#b42318;background:#fde4e4}.btn-sm{min-height:38px;padding:6px 14px;font-size:14px}.btn-block{width:100%}.btn[disabled]{opacity:.45;pointer-events:none}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--surface-2);border:1.5px solid #0000;border-radius:999px;align-items:center;gap:6px;min-height:38px;padding:7px 13px;font-size:14px;font-weight:650;transition:background .15s,color .15s,transform .1s;display:inline-flex}.chip:active{transform:scale(.95)}.chip.on{background:var(--solid);color:var(--on-solid)}.chip.alt.on{background:var(--fert-solid)}.chip.static{cursor:default}.chip .n{opacity:.6;font-weight:700}.group-label{color:var(--ink-3);margin:12px 2px 8px;font-size:12px;font-weight:750}.group-label:first-child{margin-top:0}.flow{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.flow button{overflow-wrap:anywhere;border-radius:var(--radius);background:var(--surface-2);flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:0;height:70px;padding:4px 2px;font-size:12.5px;font-weight:750;line-height:1.15;transition:background .15s,transform .1s;display:flex}.flow button:active{transform:scale(.95)}.flow button.on{background:var(--solid);color:var(--on-solid)}.drops{height:20px;color:var(--accent);align-items:center;gap:1px;display:inline-flex}.flow button.on .drops{color:var(--on-solid)}.seg{background:var(--surface-2);border-radius:14px;grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;padding:4px;display:grid}.seg button{height:36px;color:var(--ink-2);border-radius:10px;font-size:14px;font-weight:700}.seg button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.counter-grid{grid-template-columns:auto repeat(3,1fr);align-items:center;gap:8px 6px;font-size:13px;display:grid}.counter-grid .h{text-align:center;color:var(--ink-3);font-size:11.5px;font-weight:700}.counter{background:var(--surface-2);border-radius:12px;justify-content:space-between;align-items:center;height:38px;padding:0 2px;display:flex}.counter button{width:30px;height:34px;color:var(--accent-strong);font-size:18px;font-weight:800}.counter span{text-align:center;min-width:16px;font-weight:800}.counter.has{background:var(--accent-soft)}.score{background:var(--accent-soft);color:var(--accent-strong);border-radius:999px;align-items:baseline;gap:4px;padding:4px 10px;font-size:13px;font-weight:800;display:inline-flex}.tabbar{z-index:20;padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb, var(--surface) 86%, transparent);-webkit-backdrop-filter:saturate(1.8)blur(20px);border-top:1px solid var(--line);position:fixed;bottom:0;left:0;right:0}.tabbar-inner{max-width:540px;height:var(--tabbar);margin:0 auto;display:flex}.tab{text-align:center;min-width:0;color:var(--ink-3);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:750;transition:color .2s;display:flex}.tab.on{color:var(--accent-strong)}.tab.on svg{transform:translateY(-1px)}.tab svg{transition:transform .2s var(--ease)}.hero{aspect-ratio:1;place-items:center;width:min(236px,62vw,29dvh);margin:2px auto 10px;display:grid;position:relative}.hero svg.ring{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.hero-inner{text-align:center;z-index:1;padding:0 30px}.hero-greet{color:var(--ink-3);margin-bottom:4px;font-size:12px;font-weight:700}.hero-kicker{color:var(--ink-2);font-size:13px;font-weight:750}.hero-big{letter-spacing:-.035em;margin:2px 0 6px;font-size:34px;font-weight:850;line-height:1.05}.hero-sub{color:var(--accent-strong);background:var(--accent-soft);border-radius:999px;padding:5px 12px;font-size:12.5px;font-weight:750;display:inline-block}.hero-sub.fert{color:var(--fert-strong);background:var(--fert-soft)}.greet{color:var(--ink-2);margin:0 4px;font-size:15px;font-weight:700}.actions,.stat-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-bottom:12px;display:grid}.stat{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:14px}.stat .k{color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:800}.stat .v{letter-spacing:-.02em;margin-top:4px;font-size:21px;font-weight:850}.stat .s{color:var(--ink-2);margin-top:2px;font-size:13px}.stat.tint{background:linear-gradient(140deg, var(--accent-soft), var(--accent-softer));box-shadow:none}.stat.fert{background:linear-gradient(140deg, var(--fert-soft), var(--surface));box-shadow:none}.strip{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.strip button{color:var(--ink-3);flex-direction:column;align-items:center;gap:6px;font-size:11.5px;font-weight:750;display:flex}.note{border-radius:var(--radius-lg);background:var(--surface-2);text-align:start;align-items:flex-start;gap:12px;width:100%;margin-bottom:12px;padding:14px;font-size:14px;line-height:1.45;display:flex}.note b{margin-bottom:2px;font-size:15px;display:block}.note .em{font-size:24px;line-height:1}.note.warn{background:var(--warn-soft)}.note.warn svg{color:var(--warn)}.cal-head{justify-content:space-between;align-items:center;margin:4px 2px 12px;display:flex}.cal-head h2{letter-spacing:-.02em;font-size:22px;font-weight:850}.cal-month2{letter-spacing:-.01em;margin:0 4px 10px;font-size:17px;font-weight:850}.cal-grid{grid-template-columns:repeat(7,1fr);row-gap:6px;display:grid}.cal-dow{text-align:center;color:var(--ink-3);padding:2px 0 6px;font-size:12px;font-weight:800}.day{aspect-ratio:1;place-items:center;display:grid;position:relative}.day-num{z-index:1;aspect-ratio:1;width:min(42px,11vw);transition:transform .12s var(--ease);place-items:center;font-size:15px;font-weight:750;display:grid;position:relative}.day-num>b{z-index:1;font-weight:inherit;position:relative}.day:active .day-num{transform:scale(.88)}.day-num .shape{width:118%;height:118%;position:absolute;inset:-9%;overflow:visible}.shape .o{fill:var(--mk-o,transparent);stroke:var(--mk-o,transparent);stroke-width:3.6px;stroke-linejoin:round}.shape .f{fill:var(--mk-f,transparent)}.day.period .day-num{--mk-f:var(--solid);color:var(--on-solid)}.day.predicted .day-num{--mk-o:var(--accent);--mk-f:var(--accent-softer);color:var(--accent-strong)}.day.predicted.maybe .day-num{--mk-o:color-mix(in srgb, var(--accent) 40%, transparent);--mk-f:var(--surface)}.day.fertile .day-num{--mk-f:var(--fert-soft);color:var(--fert-strong)}.day.ovulation .day-num{--mk-f:var(--fert-solid);color:var(--on-solid)}.day.ovulation.est .day-num{--mk-o:var(--fert);--mk-f:var(--fert-soft);color:var(--fert-strong)}.day.today .day-num{font-weight:900}.day.today .day-num:after{content:"";z-index:2;background:currentColor;border-radius:2px;width:14px;height:3px;margin-left:-7px;position:absolute;bottom:4px;left:50%}.day.today:not(.period):not(.ovulation):not(.fertile):not(.predicted) .day-num{--mk-o:var(--ink);--mk-f:var(--surface)}.day.blank{visibility:hidden}.marks{z-index:2;justify-content:center;gap:2px;display:flex;position:absolute;bottom:0;left:0;right:0}.mark{background:var(--ink-3);border-radius:50%;width:5px;height:5px}.mark.spot{background:var(--accent)}.mark.pain{background:var(--warn)}.mark.lh{background:var(--fert)}.legend{color:var(--ink-2);flex-wrap:wrap;justify-content:center;gap:8px 14px;margin-top:4px;font-size:12.5px;font-weight:650;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.sw{border-radius:50%;width:13px;height:13px;display:inline-block}.sheet-backdrop{z-index:40;animation:fade .2s var(--ease);background:#1e0f1961;position:fixed;inset:0}.sheet{z-index:41;-webkit-overflow-scrolling:touch;background:var(--bg);max-width:580px;max-height:93dvh;padding:8px 16px calc(env(safe-area-inset-bottom) + 20px);animation:up .32s var(--ease);overscroll-behavior:contain;box-shadow:var(--shadow-lg);border-radius:28px 28px 0 0;margin:0 auto;position:fixed;bottom:0;left:0;right:0;overflow-y:auto}.grabber{background:var(--line);border-radius:3px;width:40px;height:5px;margin:0 auto 6px}.sheet-head{z-index:3;background:var(--bg);justify-content:space-between;align-items:center;gap:10px;padding:8px 2px 12px;display:flex;position:sticky;top:-8px}.sheet-head h2{letter-spacing:-.02em;font-size:21px;font-weight:850}.tag{color:var(--accent-strong);margin-top:2px;font-size:12.5px;font-weight:800;display:inline-block}.tag.fert{color:var(--fert-strong)}.day-nav{gap:6px;display:flex}@keyframes up{0%{transform:translateY(100%)}}@keyframes fade{0%{opacity:0}}@keyframes drop{0%{opacity:0;transform:translate(-50%,-12px)}}.field{border:1.5px solid var(--line);background:var(--surface);border-radius:14px;outline:none;width:100%;padding:13px 14px;font-size:16px;transition:border-color .15s}.field:focus{border-color:var(--accent)}textarea.field{resize:vertical;min-height:90px;line-height:1.4}.switch{background:var(--line);border-radius:15px;flex-shrink:0;width:50px;height:30px;transition:background .2s;position:relative}.switch:after{content:"";width:24px;height:24px;transition:transform .2s var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 2px 5px #0000002e}.switch.on{background:var(--accent)}.switch.on:after{transform:translate(20px)}.item{border-bottom:1px solid var(--line);text-align:start;align-items:center;gap:12px;width:100%;padding:13px 0;display:flex}.item:last-child{border-bottom:0;padding-bottom:2px}.item:first-child{padding-top:2px}.item b{font-size:15px;font-weight:700;display:block}.item .ico{background:var(--accent-softer);width:34px;height:34px;color:var(--accent-strong);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.stepper{align-items:center;gap:10px;display:flex}.stepper button{background:var(--accent-soft);width:38px;height:38px;color:var(--accent-strong);border-radius:50%;font-size:20px;font-weight:800}.stepper .val{text-align:center;min-width:58px;font-size:22px;font-weight:850}.choice{text-align:start;border-radius:var(--radius);background:var(--surface);border:2px solid var(--line);flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:13px 15px;transition:border-color .15s,background .15s;display:flex}.choice.on{border-color:var(--accent);background:var(--accent-softer)}.choice b{font-size:15.5px}.swatches{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.swatch{color:var(--ink-2);flex-direction:column;align-items:center;gap:6px;font-size:12.5px;font-weight:700;display:flex}.swatch i{border:3px solid var(--surface);width:48px;height:48px;box-shadow:0 0 0 2px var(--line);border-radius:50%;display:block}.swatch.on i{box-shadow:0 0 0 2.5px var(--ink)}.emoji-grid{grid-template-columns:repeat(6,1fr);gap:8px;display:grid}.emoji-grid button{aspect-ratio:1;background:var(--surface-2);border-radius:14px;font-size:24px}.emoji-grid button.on{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}.chart{width:100%;display:block;overflow:visible}.chart text{font-family:var(--font);fill:var(--ink-3);font-size:10.5px;font-weight:650}.pattern{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:11px 0;display:flex}.pattern:last-child{border-bottom:0;padding-bottom:0}.pattern .em{background:var(--surface-2);border-radius:12px;flex-shrink:0;place-items:center;width:38px;height:38px;font-size:20px;display:grid}.dots10{gap:3px;margin-top:4px;display:flex}.dots10 i{background:var(--line);border-radius:50%;width:7px;height:7px}.dots10 i.on{background:var(--accent)}.learn-list{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;display:grid}.learn{text-align:start;border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);flex-direction:column;gap:6px;min-height:104px;padding:14px;display:flex}.learn .em{font-size:24px}.learn b{font-size:14.5px;line-height:1.25}.article p{margin:0 0 12px;font-size:15.5px;line-height:1.55}.article h3{margin:18px 0 6px;font-size:16px;font-weight:800}.article ul{margin:0 0 12px;padding-inline-start:20px;font-size:15px;line-height:1.5}.article .src{color:var(--ink-3);margin-top:16px;font-size:12px}.lock{z-index:100;background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:22px;padding:24px;display:flex;position:fixed;inset:0}.pin-dots{gap:14px;display:flex}.pin-dots i{border:2px solid var(--accent);border-radius:50%;width:14px;height:14px;transition:background .15s}.pin-dots i.on{background:var(--accent)}.pin-dots.shake{animation:.4s shake}@keyframes shake{20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}.keypad{grid-template-columns:repeat(3,76px);gap:14px;display:grid}.keypad button{background:var(--surface);height:76px;box-shadow:var(--shadow);border-radius:50%;font-size:28px;font-weight:650}.keypad button:active{background:var(--accent-soft)}.keypad button.plain{box-shadow:none;color:var(--ink-2);background:0 0;font-size:15px;font-weight:700}.onb{min-height:100dvh;padding:calc(env(safe-area-inset-top) + 20px) 22px calc(env(safe-area-inset-bottom) + 20px);flex-direction:column;max-width:540px;margin:0 auto;display:flex}.onb-body{animation:fade .35s var(--ease);flex-direction:column;flex:1;justify-content:center;gap:16px;display:flex}.onb h1{letter-spacing:-.03em;font-size:31px;font-weight:850;line-height:1.12}.onb .lead{color:var(--ink-2);font-size:17px;line-height:1.45}.bloom{text-align:center;font-size:76px;animation:3.2s ease-in-out infinite bob}@keyframes bob{50%{transform:translateY(-8px)rotate(-4deg)}}.progress{justify-content:center;gap:6px;display:flex}.progress span{background:var(--line);width:7px;height:7px;transition:width .25s var(--ease), background .25s;border-radius:4px}.progress span.on{background:var(--accent);width:22px}.promise{gap:10px;display:grid}.promise div{align-items:center;gap:10px;font-size:15px;font-weight:650;display:flex}.promise svg{color:var(--accent);flex-shrink:0}.toast{left:50%;top:calc(env(safe-area-inset-top) + 12px);z-index:90;background:var(--ink);color:var(--bg);box-shadow:var(--shadow-lg);animation:drop .28s var(--ease);white-space:nowrap;border-radius:999px;align-items:center;gap:12px;max-width:calc(100vw - 32px);padding:11px 16px;font-size:14px;font-weight:700;display:flex;position:fixed;transform:translate(-50%)}.toast button{color:var(--accent-soft);font-weight:800}.paper{-webkit-print-color-adjust:exact;print-color-adjust:exact;color:#222;box-shadow:var(--shadow);background:#fff;border-radius:16px;padding:22px 20px;font-size:13px;line-height:1.45}.paper h1{margin-bottom:2px;font-size:20px;font-weight:800}.paper h2{text-transform:uppercase;letter-spacing:.04em;color:#555;border-bottom:1.5px solid #eee;margin:18px 0 8px;padding-bottom:4px;font-size:14px;font-weight:800}.paper table{border-collapse:collapse;width:100%;font-size:12px}.paper th,.paper td{text-align:start;border-bottom:1px solid #f0f0f0;padding:5px 6px}.paper th{color:#777;font-size:11px;font-weight:700}.paper .kv{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.paper .kv div{background:#f7f7f7;border-radius:8px;padding:8px}.paper .kv b{font-size:16px;display:block}.paper .flagline{border-bottom:1px dashed #eee;padding:6px 0}.paper .hm{gap:2px;font-size:10px;display:grid}.paper .hm .cell{border-radius:3px;height:14px}.paper .disclaimer{color:#888;margin-top:16px;font-size:10.5px}@media print{@page{margin:14mm}html,body{background:#fff!important}body *{visibility:hidden}.paper,.paper *{visibility:visible}.paper{width:100%;box-shadow:none;border-radius:0;padding:0;position:absolute;top:0;left:0}.no-print{display:none!important}}[dir=rtl] .dir-flip{transform:scaleX(-1)}.strip-wrap{margin:0 -16px 4px}.strip-head{justify-content:space-between;align-items:center;min-height:28px;padding:0 18px 2px;display:flex}.strip-head b{font-size:15px;font-weight:800}.btn-xs{min-height:28px;padding:2px 12px;font-size:13px}.strip-scroll{scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:2px 12px 4px;display:flex;overflow-x:auto}.strip-scroll::-webkit-scrollbar{display:none}.strip-day{scroll-snap-align:center;flex-direction:column;flex:none;align-items:center;gap:3px;width:48px;display:flex}.strip-day .wd{color:var(--ink-3);font-size:11px;font-weight:800}.strip-day .day{width:40px}.strip-day .day-num{width:36px;font-size:14px}.strip-wrap{--surface-under:var(--bg)}.strip-day .day.predicted.maybe .day-num,.strip-day .day.today:not(.period):not(.ovulation):not(.fertile):not(.predicted) .day-num{--mk-f:var(--bg)}.strip-day.past .day-num{opacity:.8}.strip-dot{background:var(--ink-3);z-index:2;border-radius:50%;width:5px;height:5px;margin-left:-2.5px;position:absolute;bottom:-1px;left:50%}.today .actions,.stat-grid.compact{margin-bottom:10px}.stat-grid.compact .stat{text-align:start;padding:9px 12px}.stat-grid.compact .v{margin-top:2px;font-size:18px}.stat-grid.compact .s{font-size:12.5px}.note.compact{align-items:center;margin-bottom:0;padding:11px 13px;font-size:13px;line-height:1.35}.note.compact b{margin-inline-end:5px;font-size:13.5px;display:inline}.note.compact .em{font-size:20px}.flow.flow5{grid-template-columns:repeat(5,1fr)}.flow.flow5 button{height:56px;font-size:11.5px}.install-pill{background:var(--surface);box-shadow:var(--shadow);color:var(--accent-strong);border-radius:999px;align-items:center;gap:6px;padding:5px 11px;font-size:12.5px;font-weight:750;display:inline-flex}.card.editing .day:not(.period):not(:disabled) .day-num{--mk-o:var(--line);--mk-f:var(--surface);color:var(--ink)}.card.editing .day:disabled{opacity:.35}.card.editing .day.period .day-num:before{content:"✓";z-index:3;background:var(--ink);width:16px;height:16px;color:var(--bg);border-radius:50%;place-items:center;font-size:10px;display:grid;position:absolute;top:-6px;right:-6px}.edit-banner{align-items:center}.trend-list{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.trend-list li{align-items:flex-start;gap:10px;font-size:14.5px;font-weight:600;line-height:1.35;display:flex}.trend-list .arrow{background:var(--surface-2);border-radius:8px;flex-shrink:0;place-items:center;width:26px;height:26px;font-weight:800;display:grid}.trend-list li.up .arrow,.trend-list li.down .arrow{background:var(--accent-soft);color:var(--accent-strong)}[dir=rtl] .trend-list .arrow{transform:scaleX(-1)}fieldset.ro{border:0;min-width:0;margin:0;padding:0}fieldset.ro:disabled .chip:not(.on),fieldset.ro:disabled .flow button:not(.on){opacity:.55}.icon-btn.dot{position:relative}.icon-btn.dot:after{content:"";background:var(--warn);width:8px;height:8px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;position:absolute;top:6px;right:7px}.legend-mark{aspect-ratio:auto;width:16px;height:16px;display:inline-grid}.legend-mark .day-num{width:14px}.legend-mark .shape .o{stroke-width:5px}.hero-card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);margin:4px 0 12px;padding:14px 16px 12px}.hero-card .hero-greet{text-align:start;margin:0 0 2px}.hero-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px;display:flex}.hero-card .hero-kicker{text-align:start}.hero-card .hero-big{text-align:start;margin:0;font-size:34px}.hero-card .hero-sub{margin-bottom:4px}.cbar{margin-top:30px;position:relative}.cbar-track{background:var(--surface-2);border-radius:7px;height:14px;position:relative}.cbar-track .seg{border-radius:7px;position:absolute;top:0;bottom:0}.cbar-track .seg.period{background:var(--accent)}.cbar-track .seg.period.past{background:color-mix(in srgb, var(--accent) 45%, var(--surface-2))}.cbar-track .seg.fert{background:var(--fert-soft);box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--fert) 40%, transparent)}.cbar-track .seg.done{background:color-mix(in srgb, var(--ink) 7%, transparent);pointer-events:none}.cbar-track .ov{background:var(--fert-solid);width:12px;height:12px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;margin:-6px 0 0 -6px;position:absolute;top:50%}.cbar-track .ov.est{background:var(--surface);box-shadow:inset 0 0 0 2.5px var(--fert), 0 0 0 2px var(--surface)}.cbar-track .now{background:var(--ink);border-radius:2px;width:4px;margin-left:-2px;position:absolute;top:-5px;bottom:-5px}[dir=rtl] .cbar-track .now,[dir=rtl] .cbar-track .ov{margin-left:0;margin-right:-6px}.cbar-pin{position:absolute;top:-26px;transform:translate(-50%)}[dir=rtl] .cbar-pin{transform:translate(50%)}.cbar-pin span{background:var(--ink);color:var(--bg);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11.5px;font-weight:800;display:inline-block}.cbar-labels{color:var(--ink-2);justify-content:space-between;min-height:16px;margin-top:7px;font-size:11.5px;font-weight:700;display:flex;position:relative}.cbar-labels .mid{color:var(--fert-strong);white-space:nowrap;position:absolute;transform:translate(-50%)}[dir=rtl] .cbar-labels .mid{transform:translate(50%)}.range-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.range-stats div{background:var(--surface-2);border-radius:12px;padding:8px 10px}.range-stats span{color:var(--ink-2);font-size:11px;font-weight:750;display:block}.range-stats b{font-size:16px;font-weight:850}.tchart-sel{min-height:18px;color:var(--ink-2);margin:2px 0;font-size:12.5px;font-weight:700}.year-table{border-collapse:collapse;width:100%;font-size:13px}.year-table th,.year-table td{text-align:center;border-bottom:1px solid var(--line);padding:6px 4px}.year-table thead th{color:var(--ink-3);font-size:11px;font-weight:750}.year-table tbody th{text-align:start;font-weight:800}.dial{aspect-ratio:1;place-items:center;width:min(264px,68vw,29dvh);margin:0 auto;display:grid;position:relative;container-type:inline-size}.app.home{flex-direction:column;display:flex}.app.home .today{flex-direction:column;flex:1;display:flex}.dial-area{flex:1 1 0;place-items:center;min-height:168px;padding:6px 0 14px;display:grid;container-type:size}@media (height<=600px){.dial-area{padding:0 0 8px}}.dial-area .dial{width:min(100cqw - 24px,100cqh,340px)}.dial .dial-inner .hero-big{font-size:clamp(30px,12cqw,42px)}.dial .dial-date{font-size:clamp(12px,4.4cqw,15px)}.dial .hero-kicker{font-size:clamp(13px,4.6cqw,16px)}.home-head{align-items:center;gap:10px;padding:0 16px 6px;display:flex}.avatar-btn{border-radius:50%;flex-shrink:0;position:relative}.avatar-btn .avatar{width:44px;height:44px;box-shadow:var(--shadow);font-size:24px}.avatar-more{background:var(--surface);width:18px;height:18px;color:var(--ink-2);box-shadow:var(--shadow);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:-3px;right:-3px}.home-greet{min-width:0}.home-greet h1{letter-spacing:-.02em;font-size:clamp(17px,5vw,20px);font-weight:850;line-height:1.2}.home-month{min-height:22px;color:var(--ink-2);align-items:center;gap:8px;font-size:13.5px;font-weight:700;display:flex}.home-month .btn-xs{min-height:26px;padding:0 9px;font-size:12px}.dial-svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.dial-inner{z-index:1;text-align:center;justify-items:center;padding:0 34px;display:grid;position:relative}.dial-date{color:var(--ink-2);margin-bottom:2px;font-size:12px;font-weight:750}.dial .hero-big{margin:2px 0 6px;font-size:34px}.dial-bub-k{font-family:var(--font);fill:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;font-size:9px;font-weight:800}.dial-bub-n{font-family:var(--font);fill:var(--ink);font-size:18px;font-weight:900}.phase-chip{align-items:center;gap:2px;display:inline-flex}.phase-bar{gap:3px;height:34px;margin-top:30px;display:flex;position:relative}.phase-bar .pb{border-radius:10px;place-items:center;min-width:22px;font-size:15px;display:grid}.pb.period,.hz.period{background:var(--accent-soft);fill:var(--accent-softer)}.pb.follicular,.hz.follicular{background:var(--surface-2);fill:var(--surface-2)}.pb.ovulation,.hz.ovulation{background:var(--fert-soft);fill:var(--fert-soft)}.pb.luteal,.hz.luteal{background:color-mix(in srgb, var(--fert-soft) 45%, var(--surface-2));fill:color-mix(in srgb, var(--fert-soft) 35%, var(--surface))}.phase-bar .pb.now{box-shadow:inset 0 0 0 2.5px var(--ink)}.pb-pin{position:absolute;top:-26px;transform:translate(-50%)}[dir=rtl] .pb-pin{transform:translate(50%)}.pb-pin b{background:var(--ink);color:var(--bg);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:800;display:inline-block}.phase-card .em{font-size:26px;line-height:1}.phase-card.now{box-shadow:0 0 0 2.5px var(--accent), var(--shadow)}.how summary{cursor:pointer;justify-content:space-between;list-style:none;display:flex}.how summary::-webkit-details-marker{display:none}.how summary:after{content:"⌄";color:var(--ink-3);font-size:18px;transition:transform .2s}.how[open] summary:after{transform:rotate(180deg)}.how-row p{margin-top:4px}.dial-stage{cursor:pointer;outline:none}.dial-stage .dial-stage-bg{fill:var(--surface);stroke:var(--line);stroke-width:1.5px}.dial-stage.now .dial-stage-bg{stroke:var(--ink);stroke-width:2.5px}.dial-stage:focus-visible .dial-stage-bg{stroke:var(--accent);stroke-width:3px}.dial-stage.period .dial-stage-arc{stroke:var(--accent-soft)}.dial-stage.follicular .dial-stage-arc{stroke:color-mix(in srgb, var(--ink-3) 35%, var(--surface))}.dial-stage.ovulation .dial-stage-arc{stroke:var(--fert)}.dial-stage.luteal .dial-stage-arc{stroke:color-mix(in srgb, var(--fert) 30%, var(--surface))}.dial-stage:active .dial-stage-bg{fill:var(--accent-soft)}.phase-card{scroll-margin-top:70px}.phase-card.focus{box-shadow:0 0 0 2.5px var(--ink), var(--shadow)}.dial-inner{pointer-events:none}.dial-inner button{pointer-events:auto}.flow.flow-compact{margin-bottom:8px}.flow.flow-compact button{height:54px;font-size:11.5px}.mt-xs{margin-top:6px}.actions.compact{margin-bottom:8px}.actions.compact .btn{min-height:40px;padding:4px 12px;font-size:14px}
