*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-family:Manrope,system-ui,sans-serif}#app{justify-content:center;align-items:flex-start;min-height:100%;display:flex}button{appearance:none}:focus-visible{outline:2px solid var(--text);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}a{color:#d92f69}a:hover{color:#b8245a}.theme-light{--bg:#fff1f6;--surface:#fff;--surface2:#ffe3ec;--bar:#fff7fa;--text:#211a1d;--text2:#716269;--primary:#ff7fa3;--cta:#d92f69;--on-primary:#fff;--primary-soft:#ffd9e3;--accent-strong:#b8245a;--border:#f3d4de;--border-strong:#8c7f86;--success:#1e7a3c;--warning:#9a5b00;--error:#b3261e;--period:#d92f69;--period-tint:#ffd9e3;--period-strong:#b8245a;--fertile:#1f8a7a;--fertile-strong:#0e7169;--fertile-tint:#ddf7f2;--ovul:#7c70d9;--lh:#7557c8;--lh-strong:#5e42b0;--lh-tint:#ece7fa;--preg:#6e4fb8;--preg-tint:#e9defa;--med:#5f73d9;--med-strong:#4553b8;--med-tint:#e6e6fa;--on-med:#fff;--note:#8a5a00;--note-tint:#f7e7c3;--bbt:#b4531a;--bbt-tint:#fbe6d8;--pred-surface:#ffe8f0;--pred-border:#f2c2d2;--pred-chip:#fff;--scrim:#211a1d73;--shadow:0 1px 2px #211a1d0d}.theme-dark{--bg:#141216;--surface:#201c22;--surface2:#282226;--bar:#1b181d;--text:#f7f3f5;--text2:#beb5ba;--primary:#ff8fae;--cta:#ff8fae;--on-primary:#2a0e18;--primary-soft:#3a2630;--accent-strong:#ff8fae;--border:#373138;--border-strong:#8f838a;--success:#7dd89a;--warning:#f5b75c;--error:#ff8c82;--period:#ff8fae;--period-tint:#3a2630;--period-strong:#ff9fbc;--fertile:#63d6c3;--fertile-strong:#7fe0ce;--fertile-tint:#133b37;--ovul:#b9a9f5;--lh:#9f8de8;--lh-strong:#b9a9f5;--lh-tint:#2c2545;--preg:#b9a9f5;--preg-tint:#33254a;--med:#8fb8ee;--med-strong:#a9c7f0;--med-tint:#2a2a55;--on-med:#141216;--note:#f0c878;--note-tint:#3b3320;--bbt:#f2a673;--bbt-tint:#3d2a1e;--pred-surface:#241e2a;--pred-border:#43384d;--pred-chip:#2f2736;--scrim:#0009;--shadow:none}.theme-blue{--bg:#f7fbff;--surface:#fff;--surface2:#eff6fc;--bar:#fbfdff;--text:#18212a;--text2:#5f6b77;--primary:#6fa8e8;--cta:#275e9e;--on-primary:#fff;--primary-soft:#cfe8ff;--accent-strong:#275e9e;--border:#dceaf6;--border-strong:#75828f;--success:#1e7a3c;--warning:#9a5b00;--error:#b3261e;--period:#d92f69;--period-tint:#ffd9e3;--period-strong:#b8245a;--fertile:#1f8a7a;--fertile-strong:#0e7169;--fertile-tint:#ddf7f2;--ovul:#7c70d9;--lh:#7557c8;--lh-strong:#5e42b0;--lh-tint:#ece7fa;--preg:#6e4fb8;--preg-tint:#e9defa;--med:#5f73d9;--med-strong:#4553b8;--med-tint:#e6e6fa;--on-med:#fff;--note:#8a5a00;--note-tint:#f7e7c3;--bbt:#b4531a;--bbt-tint:#fbe6d8;--pred-surface:#eaf4fe;--pred-border:#c4dcf2;--pred-chip:#fff;--scrim:#18212a73;--shadow:0 1px 2px #18212a0d}.root{background:var(--bg);color:var(--text);font-feature-settings:"tnum";width:100%;max-width:480px;height:100dvh;font-size:15px;line-height:1.45;position:relative;overflow:hidden}@media (width>=520px){.root{border:1px solid var(--border);height:min(900px,100dvh - 48px);box-shadow:var(--shadow);border-radius:32px;margin:24px 0}}.root *{box-sizing:border-box}.scroll{top:0;left:0;right:0;bottom:calc(84px + env(safe-area-inset-bottom));padding:calc(14px + env(safe-area-inset-top)) 16px 24px;-webkit-overflow-scrolling:touch;position:absolute;overflow-y:auto}.scroll.full{bottom:0}h1,h2,h3,p{margin:0}.title{font-size:24px;font-weight:600;line-height:1.25}.headline{font-size:19px;font-weight:600;line-height:1.35}.body{font-size:17px}.small{font-size:15px}.cap{color:var(--text2);font-size:13px}.tag{color:var(--text2);letter-spacing:.06em;text-transform:uppercase;font-size:12px;font-weight:700}.muted{color:var(--text2)}.card{background:var(--surface);box-shadow:var(--shadow);border-radius:16px;padding:16px}.theme-dark .card{border:1px solid var(--border)}.pred{background:var(--pred-surface);border:1px solid var(--pred-border);box-shadow:none}.theme-dark .card.pred{border:1px solid var(--pred-border)}.predconf{color:var(--text2);background:var(--pred-chip);border:1px dashed var(--border-strong);white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.predgrid{grid-template-columns:1fr;gap:10px;display:grid}.preddate{letter-spacing:-.01em;font-size:22px;font-weight:600;line-height:1.25}.preddate.sub{font-size:17px}.row{align-items:center;gap:10px;display:flex}.col{flex-direction:column;gap:12px;display:flex}.btn{font:inherit;cursor:pointer;border:0;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 18px;font-size:15px;font-weight:600;display:inline-flex}.btn.pri{background:var(--cta);color:var(--on-primary)}.btn.sec{background:var(--surface2);color:var(--text)}.btn.txt{color:var(--accent-strong);background:0 0;min-height:44px;padding:0 8px}.btn.err{color:var(--error);background:0 0;min-height:44px}.btn.wide{width:100%}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{font:inherit;border:1px solid var(--border-strong);background:var(--surface);min-height:44px;color:var(--text);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 16px;font-size:15px;font-weight:500;display:inline-flex}.chip.on{background:var(--primary-soft);border-color:var(--accent-strong);color:var(--accent-strong);font-weight:600}.chip.pred{border-style:dashed}.nav{height:calc(84px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--bar);border-top:1px solid var(--border);align-items:flex-start;padding:6px 4px 0;display:flex;position:absolute;bottom:0;left:0;right:0}.nav button{color:var(--text2);font:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;align-items:center;gap:2px;min-height:48px;padding:2px 0;font-size:12px;font-weight:600;display:flex}.nav button.on{color:var(--accent-strong)}.ico{border-radius:999px;justify-content:center;align-items:center;width:52px;height:30px;display:flex}.nav button.on .ico{background:var(--primary-soft)}.nav .fab{background:var(--cta);width:56px;height:56px;color:var(--on-primary);cursor:pointer;border:0;border-radius:999px;flex:none;justify-content:center;align-items:center;margin:-22px 6px 0;display:flex}.fabwrap{color:var(--text2);flex-direction:column;align-items:center;gap:2px;font-size:12px;font-weight:600;display:flex}.medrow{border-top:1px solid var(--border);align-items:center;gap:12px;min-height:52px;padding:4px 0;display:flex}.medrow:first-of-type{border-top:0}.check{border:2px solid var(--border-strong);background:var(--surface);cursor:pointer;border-radius:999px;flex:none;justify-content:center;align-items:center;width:32px;height:32px;padding:0;display:flex}.check.on{background:var(--med);border-color:var(--med);color:var(--on-med)}.strip{text-align:center;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;display:grid}.strip .d{font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:4px;padding:6px 0;display:flex}.strip .wd{color:var(--text2);font-size:12px;font-weight:600}.num{border-radius:999px;justify-content:center;align-items:center;width:34px;height:34px;font-size:15px;font-weight:600;display:flex;position:relative}.num.rec{background:var(--period);color:var(--on-primary)}.theme-light .num.rec{color:#fff}.num.pr{border:1.5px dashed var(--period);background:var(--period-tint)}.num.tod:after{content:"";background:var(--text);border-radius:2px;height:2.5px;position:absolute;bottom:-3px;left:7px;right:7px}.band{background:var(--fertile-tint);border-bottom:1.5px dashed var(--fertile);width:100%;height:9px}.band.s{border-radius:6px 0 0 6px}.band.e{border-radius:0 6px 6px 0}.band.none{background:0 0;border-bottom-color:#0000}.grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:0;display:grid}.wdh{text-align:center;color:var(--text2);padding:6px 0;font-size:12px;font-weight:600}.cell{height:58px;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:0;flex-direction:column;align-items:center;padding:3px 0 0;display:flex;position:relative}.cell.empty{cursor:default}.cell.fert{background:var(--fertile-tint)}.cell.fert:after{content:"";border-bottom:1.5px dashed var(--fertile);position:absolute;bottom:0;left:0;right:0}.cell.fert-s{border-radius:10px 0 0 10px}.cell.fert-e{border-radius:0 10px 10px 0}.cell.sel{outline:2px solid var(--text);outline-offset:-2px;border-radius:10px}.cell .n{border-radius:999px;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:600;display:flex;position:relative}.cell.p-rec .n{background:var(--period);color:#fff}.theme-dark .cell.p-rec .n{color:#2a0e18}.cell.p-pred .n{border:1.5px dashed var(--period);background:var(--period-tint)}.cell.p-edit .n{background:var(--period);color:#fff;opacity:.55}.cell.today .n:after{content:"";background:var(--text);border-radius:2px;height:2px;position:absolute;bottom:2px;left:8px;right:8px}.cell.p-rec.today .n:after{background:#fff}.T{color:var(--text2);font-size:12px;font-weight:700;position:absolute;top:-4px;right:-7px}.slots{justify-content:center;align-items:center;gap:2px;height:16px;margin-top:2px;display:flex}.slot{justify-content:center;align-items:center;width:14px;height:14px;display:flex}.dot{background:var(--note);border-radius:999px;width:6px;height:6px}.legend{flex-direction:column;gap:10px;display:flex}.lg{align-items:center;gap:12px;font-size:15px;display:flex}.lgico{flex:none;justify-content:center;width:40px;display:flex}.scrim{background:var(--scrim);flex-direction:column;justify-content:flex-end;display:flex;position:absolute;inset:0}.sheet{background:var(--surface);padding:8px 16px calc(28px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;flex-direction:column;gap:14px;max-height:92%;display:flex;overflow-y:auto}.grab{background:var(--border-strong);border-radius:2px;width:36px;height:4px;margin:0 auto 4px}.tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.tile{border:1px solid var(--border);background:var(--surface);min-height:92px;font:inherit;color:var(--text);cursor:pointer;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:8px;font-size:14px;font-weight:600;display:flex}.tile svg{color:var(--accent-strong)}.toast{left:16px;right:16px;bottom:calc(100px + env(safe-area-inset-bottom));z-index:5;background:var(--text);color:var(--bg);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-size:14px;display:flex;position:absolute}.toast button{color:var(--bg);font:inherit;cursor:pointer;background:0 0;border:0;min-height:44px;font-weight:700;text-decoration:underline}.list{background:var(--surface);border-radius:16px;overflow:hidden}.li{border-top:1px solid var(--border);width:100%;min-height:56px;font:inherit;color:var(--text);text-align:left;cursor:pointer;background:0 0;border-bottom:0;border-left:0;border-right:0;align-items:center;gap:12px;padding:10px 16px;display:flex}.li:first-child{border-top:0}.sw{background:var(--border-strong);cursor:pointer;border:0;border-radius:999px;flex:none;width:48px;height:28px;padding:0;position:relative}.sw:after{content:"";background:#fff;border-radius:999px;width:22px;height:22px;position:absolute;top:3px;left:3px}.sw.on{background:var(--cta)}.sw.on:after{left:23px}.seg{background:var(--surface2);border-radius:12px;gap:3px;padding:3px;display:flex}.seg button{font:inherit;color:var(--text2);cursor:pointer;background:0 0;border:0;border-radius:10px;flex:1;min-height:44px;font-size:14px;font-weight:600}.seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--text2);font-size:13px;font-weight:600}.input{border:1px solid var(--border-strong);min-height:48px;font:inherit;background:var(--surface);color:var(--text);border-radius:12px;width:100%;padding:0 14px;font-size:17px}.hr{background:var(--border);height:1px}.warn{background:var(--surface2);border-left:0;border-radius:12px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:14px;display:flex}.bar{align-items:flex-end;gap:4px;height:14px;display:flex}.bar i{background:var(--border-strong);border-radius:2px;width:4px;display:block}.bar i.on{background:var(--text)}.wk{border-top:1px solid var(--border);align-items:flex-start;gap:10px;padding:10px 0;display:flex}.wk:first-child{border-top:0}.wk .wd{flex:none;width:56px;font-size:14px;font-weight:600}.wk.today .wd{box-shadow:inset 3px 0 0 var(--text);margin-left:-11px;padding-left:8px}.mini{border:1px solid #0000;border-radius:999px;align-items:center;gap:5px;min-height:28px;padding:4px 10px;font-size:13px;font-weight:600;display:inline-flex}.mini.fert{background:var(--fertile-tint);color:var(--fertile-strong);border-color:var(--fertile);border-style:dashed}.mini.per{background:var(--period-tint);color:var(--period-strong)}.mini.lh{background:var(--surface2);color:var(--text)}.mini.lhp{background:var(--lh-tint);color:var(--lh-strong)}.mini.med{background:var(--med-tint);color:var(--med-strong)}.mini.note{background:var(--note-tint);color:var(--note)}.mini.bbt{background:var(--bbt-tint);color:var(--bbt)}.mini.preg{background:var(--preg-tint);color:var(--preg)}.sect{letter-spacing:.06em;text-transform:uppercase;color:var(--text2);margin-top:6px;font-size:12px;font-weight:700}.rec{align-items:center;gap:10px;min-height:44px;font-size:15px;display:flex}.dots{justify-content:center;gap:6px;display:flex}.dots i{background:var(--border-strong);border-radius:999px;width:6px;height:6px;display:block}.dots i.on{background:var(--primary)}.brand{letter-spacing:.01em;font-family:Fraunces,Georgia,serif;font-weight:500}.appbar{justify-content:space-between;align-items:center;gap:8px;min-height:48px;display:flex}.brandmark{align-items:center;gap:10px;min-width:0;display:flex}.iconbtn{border:1px solid var(--border);background:var(--surface);min-width:44px;height:44px;color:var(--text);font:inherit;letter-spacing:.03em;cursor:pointer;box-shadow:var(--shadow);border-radius:999px;justify-content:center;align-items:center;gap:5px;padding:0 11px;font-size:13px;font-weight:700;display:inline-flex}.iconbtn:active{background:var(--surface2)}.iconbtn svg{color:var(--accent-strong)}.timechip{gap:0;padding:0 2px 0 12px}.timechip input{font:inherit;color:inherit;background:0 0;border:0;width:auto;min-height:40px;padding:0;font-weight:600}.timechip button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;min-width:40px;min-height:44px}.iconbtn.plain{box-shadow:none;background:0 0;border:0;min-width:44px;padding:0}.iconbtn.plain svg{color:var(--accent-strong)}.iconbtn.danger svg{color:var(--error)}.testrow{gap:4px}.srccard{border:1px solid var(--border);background:var(--surface);overflow-wrap:anywhere;border-radius:12px;flex-direction:column;gap:4px;min-width:0;padding:12px;display:flex}.extlink{align-self:flex-start;align-items:center;gap:6px;min-height:44px;text-decoration:none;display:inline-flex}.checklist{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.checklist li{align-items:flex-start;gap:8px;display:flex}.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}.cell.future,.cell:disabled{cursor:default;opacity:.45}.mini.pred{border:1.5px dashed var(--period);color:var(--period-strong);background:0 0}.recrow{text-align:left;gap:10px;min-height:52px}.recico{background:var(--surface2);border-radius:999px;flex:none;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.recico svg{width:18px;height:18px}.recico.per{color:var(--period)}.recico.lh{color:var(--lh)}.recico.preg{color:var(--preg)}.recico.med{color:var(--med)}.recico.bbt{color:var(--bbt)}.recico.sym{color:var(--text2)}.recico.note{color:var(--note)}.recfilters{flex-wrap:wrap}.rtable{border-collapse:collapse;width:100%;font-size:14px}.rtable th,.rtable td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;overflow-wrap:anywhere;padding:6px 4px}.rtable thead th{color:var(--text2);font-size:12px;font-weight:700}@media print{@page{margin:14mm}html,body{height:auto;background:#fff!important}.nav,.toast,.scrim,.noprint{display:none!important}.root{max-width:none;overflow:visible;height:auto!important;box-shadow:none!important;border:0!important;margin:0!important}.scroll{height:auto!important;padding-bottom:0!important;overflow:visible!important}.report .card{box-shadow:none;break-inside:avoid;border:1px solid #bbb}.report,.report *{color:#000!important}}.li.soon,.chip.soon{opacity:.6;cursor:default}.swatch{border:1px solid var(--border-strong);border-radius:999px;flex:none;width:24px;height:24px;margin-right:12px}.link{color:var(--accent-strong);font:inherit;cursor:pointer;background:0 0;border:0;min-width:44px;min-height:44px;padding:0;font-weight:600}.cycle-chart{width:100%;height:auto;max-height:220px;display:block;overflow:hidden}.pcheck{border:1px solid var(--border);background:var(--surface);width:100%;min-height:48px;font:inherit;color:var(--text);cursor:pointer;text-align:left;border-radius:12px;align-items:center;gap:12px;padding:0 14px;font-size:15px;font-weight:600;display:flex}.cbox{border:2px solid var(--border-strong);background:var(--surface);border-radius:7px;flex:none;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.cbox.on{background:var(--period);border-color:var(--period);color:var(--on-primary)}.cell.r-in{background:var(--period-tint)}.cell.r-a{border-radius:12px 0 0 12px}.cell.r-b{border-radius:0 12px 12px 0}.cell.r-a.r-b{border-radius:12px}.cell.r-a .n,.cell.r-b .n{background:var(--period);color:var(--on-primary)}.slot.more{width:auto;min-width:14px;color:var(--text2);font-size:12px;font-weight:700;line-height:14px}.lgday{border-radius:999px;width:28px;height:28px;display:inline-block}.lgday.logged{background:var(--period)}.lgday.est{border:1.5px dashed var(--period);background:var(--period-tint)}.lgband{background:var(--fertile-tint);border-bottom:1.5px dashed var(--fertile);border-radius:5px;width:36px;height:10px;display:inline-block}:root{--ring-record:var(--cta);--ring-prediction:color-mix(in srgb,var(--primary) 38%,var(--surface));--ring-rest:color-mix(in srgb,var(--text) 9%,var(--surface));--ring-today:var(--text);--ring-today-fill:var(--surface)}.ring-wrap{aspect-ratio:1;width:min(100%,220px);margin:8px auto 4px;position:relative}.ring{width:100%;height:100%;display:block}.ring circle,.ring path{fill:none;stroke-width:9px}.rg-track{stroke:var(--ring-rest)}.rg-per{stroke:var(--ring-record);stroke-linecap:round}.rg-fert{stroke:var(--ring-prediction);stroke-linecap:round}.ring path.rg-dash{stroke:var(--ring-record);stroke-width:1.3px;stroke-dasharray:1.6 2.4;stroke-linecap:round;opacity:.75}.ring .rg-dot{fill:var(--ring-today-fill);stroke:var(--ring-today);stroke-width:2px}.ring-c{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex;position:absolute;inset:0}.ring-n{font-variant-numeric:tabular-nums;font-family:Fraunces,Georgia,serif;font-size:52px;font-weight:500;line-height:1}.rg-leg{color:var(--text2);flex-wrap:wrap;justify-content:center;gap:4px 14px;margin-bottom:4px;font-size:12px;display:flex}.rg-leg span{align-items:center;gap:6px;display:inline-flex}.rg-leg .rgs{border-radius:4px;flex:none;width:14px;height:8px;display:inline-block}.rg-leg .rgs.per{background:var(--ring-record)}.rg-leg .rgs.fert{background:var(--ring-prediction);border:1.5px dashed var(--ring-record)}.rg-leg .rgs.tod{background:var(--ring-today-fill);border:2px solid var(--ring-today);border-radius:50%;width:10px;height:10px}.stat3{background:color-mix(in srgb,var(--primary) 9%,var(--surface));border-radius:20px;grid-template-rows:auto auto;grid-template-columns:minmax(0,.95fr) minmax(0,1.7fr) minmax(0,.95fr);column-gap:0;margin-top:6px;padding:6px 4px;display:grid}.st{grid-row:span 2;grid-template-rows:subgrid;text-align:center;align-content:start;justify-items:center;row-gap:4px;padding:10px 4px;display:grid;position:relative}.st+.st:before{content:"";background:color-mix(in srgb,var(--text) 14%,transparent);width:1px;position:absolute;top:14px;bottom:14px;left:0}.st-l{color:var(--text2);text-wrap:balance;font-size:12px;font-weight:600;line-height:16px}.st-b{flex-direction:column;align-items:center;gap:2px;display:flex}.st-v{font-variant-numeric:tabular-nums;color:var(--text);white-space:nowrap;font-family:Fraunces,Georgia,serif;font-size:24px;font-weight:500;line-height:30px}.st.mid .st-v{color:var(--accent-strong);white-space:normal;text-wrap:balance;font-size:24px;line-height:30px}.st-u{color:var(--text2);text-wrap:balance;font-size:12px;line-height:16px}.st-q{border-top:1px solid var(--border);margin-top:2px;padding-top:12px}.st-q .cap{font-size:13px}.st-q .link{white-space:nowrap;flex:none}:root{--g2-font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--g2-fs-display:32px;--g2-lh-display:38px;--g2-fs-page:24px;--g2-lh-page:30px;--g2-fs-section:20px;--g2-lh-section:26px;--g2-fs-body:16px;--g2-lh-body:24px;--g2-fs-label:15px;--g2-lh-label:20px;--g2-fs-secondary:14px;--g2-lh-secondary:20px;--g2-fs-caption:13px;--g2-lh-caption:18px;--g2-s-1:4px;--g2-s-2:8px;--g2-s-3:12px;--g2-s-4:16px;--g2-s-5:20px;--g2-s-6:24px;--g2-s-8:32px;--g2-s-10:40px;--g2-s-12:48px;--g2-r-control:12px;--g2-r-segment:9px;--g2-r-button:14px;--g2-r-surface:16px;--g2-r-card:20px;--g2-r-sheet:28px;--g2-r-badge:6px;--g2-r-pill:999px;--g2-h-tap:44px;--g2-h-control:52px;--g2-h-choice:56px;--g2-h-segment:52px;--g2-h-row:56px;--g2-h-nav:64px;--g2-m-fast:.15s;--g2-m-standard:.21s;--g2-m-sheet:.28s;--g2-ease:cubic-bezier(.2, .8, .2, 1);--g2-z-nav:10;--g2-z-scrim:20;--g2-z-sheet:30;--g2-z-toast:40;--g2-safe-b:env(safe-area-inset-bottom,0px);--g2-safe-t:env(safe-area-inset-top,0px)}:root,.theme-light{--g2-bg:#fbf8fa;--g2-surface:#fff;--g2-surface-soft:#fff3f6;--g2-surface-muted:#f3eef1;--g2-divider:#efe8ec;--g2-border:#e9e0e4;--g2-border-strong:#cfc4ca;--g2-border-control:#8f8389;--g2-text:#201a1d;--g2-text-2:#6f6368;--g2-text-disabled:#a79da2;--g2-brand:#ff7fa3;--g2-brand-soft:#ffd9e3;--g2-primary:#c9255d;--g2-primary-pressed:#a91749;--g2-on-primary:#fff;--g2-success:#256b29;--g2-success-soft:#edf6ee;--g2-warning:#9a4a08;--g2-warning-soft:#fdf3e7;--g2-danger:#b32222;--g2-danger-soft:#fceded;--g2-info:#1565c0;--g2-info-soft:#eef4fb;--g2-menstrual:#c8324b;--g2-menstrual-soft:#fbe6ea;--g2-fertile:#17665d;--g2-fertile-soft:#e3f3f0;--g2-fertile-line:#7dbdb4;--g2-ovulation:#7a4da0;--g2-ovulation-soft:#f1eaf7;--g2-bbt:#a8590f;--g2-bbt-soft:#fbeedd;--g2-scrim:#201a1d6b;--g2-e-sheet:0 -8px 32px #201a1d24;--g2-e-float:0 4px 16px #201a1d1f}.theme-blue,.theme-dark{--g2-bg:var(--bg);--g2-surface:var(--surface);--g2-surface-soft:var(--primary-soft);--g2-surface-muted:var(--surface2);--g2-divider:var(--border);--g2-border:var(--border);--g2-border-strong:var(--border-strong);--g2-border-control:var(--border-strong);--g2-text:var(--text);--g2-text-2:var(--text2);--g2-text-disabled:var(--text2);--g2-brand:var(--primary);--g2-brand-soft:var(--primary-soft);--g2-primary:var(--cta);--g2-primary-pressed:var(--accent-strong);--g2-on-primary:var(--on-primary);--g2-success:var(--success);--g2-success-soft:var(--surface2);--g2-warning:var(--warning);--g2-warning-soft:var(--surface2);--g2-danger:var(--error);--g2-danger-soft:var(--surface2);--g2-info:var(--text2);--g2-info-soft:var(--surface2);--g2-menstrual:var(--period);--g2-menstrual-soft:var(--period-tint);--g2-fertile:var(--fertile-strong);--g2-fertile-soft:var(--fertile-tint);--g2-fertile-line:var(--fertile);--g2-ovulation:var(--lh-strong);--g2-ovulation-soft:var(--lh-tint);--g2-bbt:var(--bbt);--g2-bbt-soft:var(--surface2);--g2-scrim:var(--scrim)}.g2{font:400 var(--g2-fs-body)/var(--g2-lh-body) var(--g2-font);color:var(--g2-text);font-feature-settings:"tnum";letter-spacing:0}.g2 *,.g2 :before,.g2 :after{box-sizing:border-box}.g2 h2,.g2 p{margin:0}.g2 button{font:inherit;color:inherit;text-align:inherit;cursor:pointer;appearance:none;background:0 0;border:0;margin:0;padding:0}.g2 :focus-visible{outline:2px solid var(--g2-primary);outline-offset:2px}.g2-ico{stroke:currentColor;stroke-width:1.75px;fill:none;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}.g2-ico--24{width:24px;height:24px}.g2-ico--18{width:18px;height:18px}.g2-ico--16{width:16px;height:16px}.sheet.g2-sheet{border-radius:var(--g2-r-sheet) var(--g2-r-sheet) 0 0;background:var(--g2-surface);max-height:92%;box-shadow:var(--g2-e-sheet);gap:0;padding:0;overflow:hidden}.g2-sheet__handle{background:var(--g2-border-strong);border-radius:2px;flex:none;width:36px;height:4px;margin:8px auto 0}.g2-sheet__head{justify-content:space-between;align-items:center;gap:var(--g2-s-2);min-height:52px;padding:4px 8px 4px var(--g2-s-5);flex:none;display:flex}.g2-sheet__title{font:600 var(--g2-fs-section)/var(--g2-lh-section) var(--g2-font);min-width:0}.g2-sheet__body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;min-height:0;padding:var(--g2-s-2) var(--g2-s-5) var(--g2-s-5);flex:auto;overflow-y:auto}.g2-iconbtn{width:var(--g2-h-tap);height:var(--g2-h-tap);border-radius:var(--g2-r-control);color:var(--g2-text-2);flex:none;place-items:center;display:grid}.g2-actionbar{gap:var(--g2-s-3);padding:var(--g2-s-3) var(--g2-s-4) calc(var(--g2-s-3) + var(--g2-safe-b));border-top:1px solid var(--g2-divider);background:var(--g2-surface);flex:none;grid-template-columns:minmax(0,1fr) minmax(0,2fr);display:grid}.g2-actionbar--confirm{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.g2-actionbar__text{font:500 var(--g2-fs-label)/var(--g2-lh-label) var(--g2-font);grid-column:1/-1}.g2-btn{justify-content:center;align-items:center;gap:var(--g2-s-2);min-height:var(--g2-h-control);padding:0 var(--g2-s-4);border-radius:var(--g2-r-button);font:600 var(--g2-fs-body)/20px var(--g2-font);text-align:center;display:inline-flex}.g2 .g2-btn--primary{background:var(--g2-primary);color:var(--g2-on-primary)}.g2 .g2-btn--primary:active{background:var(--g2-primary-pressed)}.g2 .g2-btn--secondary{background:var(--g2-surface);color:var(--g2-text);border:1px solid var(--g2-border-strong)}.g2 .g2-btn--secondary:active{background:var(--g2-surface-muted)}.g2 .g2-btn--danger{background:var(--g2-danger);color:#fff}.g2 .g2-btn--danger-quiet{min-height:var(--g2-h-tap);min-width:var(--g2-h-tap);padding:0 var(--g2-s-2);margin-right:calc(-1 * var(--g2-s-2));color:var(--g2-danger);font-size:var(--g2-fs-label)}.g2 .g2-link{min-height:var(--g2-h-tap);color:var(--g2-primary);font:600 var(--g2-fs-label)/var(--g2-lh-label) var(--g2-font);align-items:center;gap:2px;display:inline-flex}.g2-block{min-width:0;display:block}.g2-block+.g2-block{margin-top:var(--g2-s-5)}.g2-label{font:500 var(--g2-fs-secondary)/var(--g2-lh-secondary) var(--g2-font);color:var(--g2-text-2);margin-bottom:6px;display:block}.g2-helper{font:400 var(--g2-fs-caption)/var(--g2-lh-caption) var(--g2-font);color:var(--g2-text-2);margin-top:6px}.g2-row>.g2-block{margin-top:0}.g2-row{gap:var(--g2-s-3);grid-template-columns:minmax(0,3fr) minmax(0,2fr);display:grid}.g2 .g2-input{width:100%;height:var(--g2-h-control);border:1px solid var(--g2-border-control);border-radius:var(--g2-r-control);background:var(--g2-surface);color:var(--g2-text);font:400 var(--g2-fs-body)/var(--g2-lh-body) var(--g2-font);appearance:none;min-width:0;padding:0 14px;display:block}.g2 .g2-input::placeholder{color:var(--g2-text-2);opacity:1}.g2 textarea.g2-input{resize:none;height:96px;padding:12px 14px}.g2 .g2-input:focus-visible,.g2-dt:focus-within{border-color:var(--g2-primary);box-shadow:0 0 0 1px var(--g2-primary), 0 0 0 4px var(--g2-brand-soft);outline:none}.g2 .g2-input[aria-invalid=true],.g2-dt[data-invalid=true]{border-color:var(--g2-danger);box-shadow:0 0 0 1px var(--g2-danger)}.g2-dt{justify-content:space-between;align-items:center;gap:var(--g2-s-2);height:var(--g2-h-control);border:1px solid var(--g2-border-control);border-radius:var(--g2-r-control);background:var(--g2-surface);min-width:0;padding:0 14px;display:flex;position:relative}.g2-dt__text{font:400 var(--g2-fs-body)/var(--g2-lh-body) var(--g2-font);color:var(--g2-text);white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.g2-dt .g2-ico{color:var(--g2-text-2)}.g2 .g2-dt__native{opacity:0;cursor:pointer;appearance:none;color:#0000;background:0 0;border:0;width:100%;height:100%;margin:0;padding:0;font-size:16px;position:absolute;inset:0}.g2 .g2-dt__native::-webkit-calendar-picker-indicator{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}@media (hover:hover) and (pointer:fine){.g2-dt:focus-within .g2-dt__text{visibility:hidden}.g2 .g2-dt:focus-within .g2-dt__native{opacity:1;color:var(--g2-text);font:400 var(--g2-fs-body)/var(--g2-lh-body) var(--g2-font);outline:none;padding:0 14px}.g2 .g2-dt:focus-within .g2-dt__native::-webkit-calendar-picker-indicator{width:48px;inset:0 0 0 auto}}.g2-error{font:500 var(--g2-fs-secondary)/var(--g2-lh-secondary) var(--g2-font);color:var(--g2-danger);align-items:flex-start;gap:6px;margin-top:6px;display:flex}.g2-error .g2-ico{margin-top:1px}.g2-choices{gap:var(--g2-s-2);grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;display:grid}.g2 .g2-choice{min-height:var(--g2-h-choice);border:1px solid var(--g2-border-control);border-radius:var(--g2-r-control);background:var(--g2-surface);font:500 var(--g2-fs-body)/20px var(--g2-font);overflow-wrap:anywhere;min-width:0;transition:background-color var(--g2-m-fast) var(--g2-ease), border-color var(--g2-m-fast) var(--g2-ease);align-items:center;gap:10px;padding:8px 14px;display:flex}.g2-choice__radio{border:1.5px solid var(--g2-border-control);border-radius:50%;flex:none;place-items:center;width:20px;height:20px;display:grid}.g2 .g2-choice[aria-checked=true]{border-color:var(--g2-primary);box-shadow:inset 0 0 0 1px var(--g2-primary);background:var(--g2-surface-soft);font-weight:600}.g2-choice[aria-checked=true] .g2-choice__radio{border-color:var(--g2-primary);background:var(--g2-primary)}.g2-choice[aria-checked=true] .g2-choice__radio:after{content:"";background:var(--g2-on-primary);border-radius:50%;width:8px;height:8px}.g2-seg{min-height:var(--g2-h-segment);border-radius:var(--g2-r-control);background:var(--g2-surface-muted);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:2px;padding:4px;display:grid}.g2 .g2-seg__item{min-height:var(--g2-h-tap);border-radius:var(--g2-r-segment);font:500 var(--g2-fs-label)/18px var(--g2-font);color:var(--g2-text-2);text-align:center;place-items:center;min-width:0;padding:0 6px;display:grid}.g2 .g2-seg__item[aria-checked=true]{background:var(--g2-surface);color:var(--g2-text);box-shadow:0 0 0 1px var(--g2-border), 0 1px 2px #201a1d14;font-weight:600}.g2 .g2-disclose{align-items:center;gap:var(--g2-s-2);width:100%;min-height:48px;margin-top:var(--g2-s-3);color:var(--g2-primary);font:600 var(--g2-fs-body)/20px var(--g2-font);display:flex}.g2-disclose__sum{padding-left:var(--g2-s-3);color:var(--g2-text-2);font:400 var(--g2-fs-secondary)/var(--g2-lh-secondary) var(--g2-font);text-align:right;white-space:nowrap;text-overflow:ellipsis;min-width:0;margin-left:auto;overflow:hidden}.g2-details{padding-top:var(--g2-s-1)}.g2-banner{gap:var(--g2-s-2);border-radius:var(--g2-r-control);background:var(--g2-info-soft);font:400 var(--g2-fs-secondary)/var(--g2-lh-secondary) var(--g2-font);color:var(--g2-text);margin-top:10px;padding:10px 12px;display:flex}.g2-banner>.g2-ico{color:var(--g2-info);margin-top:0}.g2-banner b{font-weight:600}.g2-banner__secondary{color:var(--g2-text-2);margin-top:6px}.g2-banner .g2-link{min-height:var(--g2-h-tap);font-size:var(--g2-fs-secondary);vertical-align:middle;margin:-12px 0}.g2-banner--warning{background:var(--g2-warning-soft)}.g2-banner--warning>.g2-ico{color:var(--g2-warning)}.g2-banner--neutral{background:var(--g2-surface-muted)}.g2-banner--neutral>.g2-ico{color:var(--g2-text-2)}.g2-foot{margin-top:var(--g2-s-3);font:400 var(--g2-fs-caption)/var(--g2-lh-caption) var(--g2-font);color:var(--g2-text-2)}.g2-footrow{justify-content:space-between;align-items:center;gap:var(--g2-s-3);margin-top:var(--g2-s-2);display:flex}@media (prefers-reduced-motion:reduce){.g2 *,.g2{transition:none!important;animation:none!important}}:root{--m-press:.1s;--m-hover:.18s;--m-ctl:.17s;--m-view:.21s;--m-sheet:.25s;--ease-standard:cubic-bezier(.2, .8, .2, 1)}.btn,.g2-btn,.chip,.fab,.nav button,.g2-choice,.g2-seg__item,.seg button,.sw,.check,.cell,.tile,.li,.link,.strip .d{touch-action:manipulation}.btn,.g2-btn,.chip,.fab,.tile,.check,.g2-choice,.g2-seg__item,.seg button,.strip .d,.cell .n{transition:transform var(--m-press) var(--ease-standard), background-color var(--m-ctl) var(--ease-standard), border-color var(--m-ctl) var(--ease-standard), color var(--m-ctl) var(--ease-standard), box-shadow var(--m-ctl) var(--ease-standard), opacity var(--m-ctl) var(--ease-standard)}.btn:active,.g2-btn:active,.fab:active{transform:scale(.97)}.chip:active,.tile:active,.check:active,.g2-choice:active,.g2-seg__item:active,.seg button:active{transform:scale(.98)}.strip .d:active,.cell:not(:disabled):not(.empty):active .n{transform:scale(.94)}.li{transition:background-color var(--m-ctl) var(--ease-standard)}.li:active{background:var(--surface2)}.link,.btn.txt{transition:opacity var(--m-press) linear}.link:active,.btn.txt:active{opacity:.6}@media (hover:hover) and (pointer:fine){.tile,.btn.pri,.btn.sec{transition-property:transform,background-color,border-color,box-shadow,color}.tile:hover{border-color:var(--accent-strong);box-shadow:var(--shadow);transform:translateY(-2px)}.btn.sec:hover{background:var(--primary-soft)}.chip:hover:not(.on){border-color:var(--accent-strong)}.li:hover{background:var(--surface2)}.tile:active{transform:scale(.98)}}.sw{transition:background-color var(--m-ctl) var(--ease-standard)}.sw:after{transition:transform var(--m-ctl) var(--ease-standard);left:3px}.sw.on:after{left:3px;transform:translate(20px)}.nav button{transition:color var(--m-ctl) var(--ease-standard)}.nav button:active .ico{transform:scale(.94)}.ico{transition:background-color var(--m-ctl) var(--ease-standard), transform var(--m-press) var(--ease-standard)}.cell .n{transition:transform var(--m-press) var(--ease-standard), background-color var(--m-ctl) var(--ease-standard), color var(--m-ctl) var(--ease-standard), opacity var(--m-ctl) var(--ease-standard)}@keyframes m-pop{0%{transform:scale(1)}50%{transform:scale(1.04)}to{transform:scale(1)}}@keyframes m-pop-nav{0%{transform:scale(.95)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes m-view-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes m-fade-in{0%{opacity:0}to{opacity:1}}@keyframes m-sheet-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes m-slide-next{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:none}}@keyframes m-slide-prev{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:none}}@keyframes m-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.m-pop{animation:m-pop var(--m-ctl) var(--ease-standard)}.nav .m-pop{animation-name:m-pop-nav}.m-view{animation:m-view-in var(--m-view) var(--ease-standard)}.m-scrim-in{animation:m-fade-in var(--m-sheet) linear}.m-scrim-in>.sheet{animation:m-sheet-in var(--m-sheet) var(--ease-standard)}.m-slide-next{animation:m-slide-next var(--m-view) var(--ease-standard)}.m-slide-prev{animation:m-slide-prev var(--m-view) var(--ease-standard)}.m-toast-in{animation:m-toast-in var(--m-ctl) var(--ease-standard)}@media (prefers-reduced-motion:reduce){.m-pop,.m-view,.m-scrim-in,.m-scrim-in>.sheet,.m-slide-next,.m-slide-prev,.m-toast-in{animation:none!important}.btn:active,.g2-btn:active,.fab:active,.chip:active,.tile:active,.check:active,.g2-choice:active,.g2-seg__item:active,.seg button:active,.strip .d:active,.cell:not(:disabled):not(.empty):active .n,.nav button:active .ico,.tile:hover{transform:none}.sw:after,.ico,.btn,.chip{transition:none!important}}
