:root{--bg:#17131f;--surface:#221c30;--soft:#2c2540;--line:#3a3152;--bar:#1d1828;--fg:#efeafa;--muted:#aea4ca;--plum:#b5a4e6;--violet:#a77ce5;--orchid:#c67ccb;--period:#c67ccb;--period-ink:#1a1424;--fertile:#3a3060;--fertile-ink:#d9d0fa;--ovu:#b48bee;--warn-bg:#3a2440;--warn-ink:#ebb3ee;--alert-bg:#3e2130;--alert-ink:#f2a9c2;--ok-bg:#1f3529;--ok-ink:#9fd8b7;--on-plum:#17131f;--try:#f0a6dc;--try-bg:#3d2238;--fam:#9fd8c8;--fam-bg:#1e3530;--display:"Bricolage Grotesque","Trebuchet MS",system-ui,sans-serif;--body:"Figtree",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font-family:var(--body);-webkit-tap-highlight-color:transparent;margin:0;font-size:15px;line-height:1.5}[hidden]{display:none!important}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3{font-family:var(--display);text-wrap:balance;letter-spacing:-.01em;margin:0}h1{font-size:28px}h2{font-size:19px}h3{font-size:16px}p{margin:0}.muted{color:var(--muted)}.num{font-variant-numeric:tabular-nums}.eyebrow{letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-size:11.5px;font-weight:600}.app{flex-direction:column;min-height:100%;display:flex}.screen{width:100%;max-width:560px;padding:calc(env(safe-area-inset-top,0px) + 20px) max(16px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 96px) max(16px,env(safe-area-inset-left,0px));flex-direction:column;flex:1;gap:16px;margin:0 auto;display:flex}.with-ad .screen{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 160px)}.screen.plain{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 28px)}.top{justify-content:space-between;align-items:center;gap:10px;display:flex}.top-left{align-items:center;gap:10px;min-width:0;display:flex}.nav{z-index:20;background:var(--bar);border-top:1px solid var(--line);padding:8px max(10px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 10px) max(10px,env(safe-area-inset-left,0px));position:fixed;bottom:0;left:0;right:0}.nav-in{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;max-width:560px;margin:0 auto;display:grid}.tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:14px;flex-direction:column;align-items:center;gap:3px;min-height:48px;padding:7px 0;font-size:11.5px;font-weight:600;display:flex}.tab svg{width:24px;height:24px}.tab.on{background:var(--soft);color:var(--plum)}.tab:focus-visible{outline:2px solid var(--violet);outline-offset:2px}.card{background:var(--surface);border:1px solid var(--line);border-radius:18px;flex-direction:column;gap:12px;min-width:0;padding:16px;display:flex}.card.soft{background:var(--soft);border-color:#0000}.card.try{background:var(--try-bg);border-color:#0000}.card.fam{background:var(--fam-bg);border-color:#0000}.row{align-items:center;gap:12px;min-width:0;display:flex}.grow{flex:1;min-width:0}.stack{flex-direction:column;gap:2px;min-width:0;display:flex}.list{background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden}.list-item{border:none;border-top:1px solid var(--line);text-align:left;cursor:pointer;width:100%;min-height:56px;color:var(--fg);background:0 0;align-items:center;gap:12px;padding:12px 16px;display:flex}.list-item:first-child{border-top:none}.list-item b{font-size:14.5px}.list-item small{color:var(--muted);font-size:12.5px;display:block}.chev{color:var(--muted);flex:none}.grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.ring{width:228px;height:228px;margin:0 auto;position:relative}.ring svg{width:100%;height:100%}.ring-in{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex;position:absolute;inset:0}.ring-big{font:700 54px/1 var(--display)}.next{text-align:center;flex-direction:column;gap:2px;display:flex}.next b{font:700 20px var(--display)}.mini{background:var(--surface);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:2px;padding:12px 14px;display:flex}.mini span{color:var(--muted);font-size:12px}.mini b{font-size:16px}.mini.try{background:var(--try-bg);border-color:#0000}.mini.try span,.mini.try b{color:var(--try)}.alerts{flex-direction:column;gap:8px;display:flex}.alert{border-radius:14px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:14px;display:flex}.alert.warn{background:var(--warn-bg);color:var(--warn-ink)}.alert.bad{background:var(--alert-bg);color:var(--alert-ink)}.alert.info{background:var(--soft);color:var(--fg)}.alert.ok{background:var(--ok-bg);color:var(--ok-ink)}.alert .dot{background:currentColor;border-radius:50%;flex:none;width:9px;height:9px;margin-top:6px}.alert>div{flex:1;min-width:0}.btn{background:var(--plum);min-height:52px;color:var(--on-plum);cursor:pointer;border:none;border-radius:16px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:16px;font-weight:700;display:inline-flex}.btn.period{background:var(--period);color:var(--period-ink)}.btn.fam{background:var(--fam);color:#14231f}.btn.ghost{background:var(--soft);color:var(--fg)}.btn.small{border-radius:12px;min-height:44px;padding:0 14px;font-size:14px}.btn.danger{background:var(--alert-bg);color:var(--alert-ink)}.btn.link{color:var(--plum);background:0 0;min-height:44px;padding:0}.btn:disabled{opacity:.5;cursor:default}.btn:focus-visible,.icon-btn:focus-visible,.chip:focus-visible,.switch:focus-visible,.list-item:focus-visible,.choice:focus-visible{outline:2px solid var(--violet);outline-offset:2px}.btns{flex-wrap:wrap;gap:10px;display:flex}.btns>.btn{flex:1}.icon-btn{background:var(--soft);width:44px;height:44px;color:var(--fg);cursor:pointer;border:none;border-radius:12px;flex:none;place-items:center;display:grid}.icon-btn.round{background:var(--surface);border:1px solid var(--line);border-radius:50%}label.field{color:var(--muted);flex-direction:column;gap:5px;font-size:13px;font-weight:600;display:flex}input[type=date],input[type=text],input[type=password],input[type=tel],select,textarea{background:var(--bg);border:1.5px solid var(--line);border-radius:12px;width:100%;min-width:0;min-height:44px;padding:10px 12px}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--plum);outline:none}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1.5px solid var(--line);min-height:40px;color:var(--fg);cursor:pointer;background:0 0;border-radius:999px;padding:0 14px;font-size:14px;font-weight:600}.chip.on{background:var(--plum);border-color:var(--plum);color:var(--on-plum)}.chip.on.fam{background:var(--fam);border-color:var(--fam);color:#14231f}.err{color:var(--alert-ink);font-size:13px}.switch{background:var(--line);cursor:pointer;border:none;border-radius:999px;flex:none;width:48px;height:30px;padding:0;position:relative}.switch:after{content:"";background:var(--fg);border-radius:50%;width:22px;height:22px;transition:transform .15s;position:absolute;top:4px;left:4px}.switch[aria-checked=true]{background:var(--plum)}.switch[aria-checked=true]:after{background:var(--on-plum);transform:translate(18px)}.switch.try[aria-checked=true]{background:var(--try)}.setting{border-top:1px solid var(--line);align-items:center;gap:12px;padding:12px 16px;display:flex}.setting:first-child{border-top:none}.setting .stack b{font-size:14.5px}.setting .stack small{color:var(--muted);font-size:12.5px}.avatar{color:#17131f;border-radius:50%;flex:none;place-items:center;width:32px;height:32px;font-size:13px;font-weight:700;display:grid}.avatar.lg{width:52px;height:52px;font:700 20px var(--display)}.pchip{background:var(--surface);border:1px solid var(--line);color:var(--fg);cursor:pointer;border-radius:999px;flex:none;align-items:center;gap:8px;min-height:44px;padding:5px 12px 5px 5px;font-size:14px;font-weight:600;display:flex}.pchip.on{border-color:var(--plum)}.pchips{scrollbar-width:none;gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.pchips::-webkit-scrollbar{display:none}.cal{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.cal .dow{text-align:center;color:var(--muted);padding-bottom:2px;font-size:11px;font-weight:600}.day{aspect-ratio:1;font-variant-numeric:tabular-nums;color:var(--fg);cursor:pointer;background:0 0;border:2px solid #0000;border-radius:12px;place-items:center;min-height:40px;padding:0;font-size:14px;display:grid;position:relative}.day.out{opacity:.3}.day.period{background:var(--period);color:var(--period-ink);font-weight:700}.day.pred{border:2px dashed var(--period)}.day.maybe{border:2px dotted var(--line)}.day.fertile{background:var(--fertile);color:var(--fertile-ink)}.day.ovu{background:var(--ovu);color:#17131f;font-weight:700}.day.today{outline:2px solid var(--plum);outline-offset:1px}.day.sel{border-color:var(--fg)}.day.pill:before{content:"";background:var(--plum);width:6px;height:6px;box-shadow:0 0 0 1.5px var(--bg);border-radius:50%;position:absolute;top:4px;right:4px}.day.try:after{content:"♥";color:var(--try);font-size:9px;line-height:1;position:absolute;bottom:1px;left:50%;transform:translate(-50%)}.day.sym{box-shadow:inset 0 -3px 0 -1px var(--fam)}.legend{color:var(--muted);flex-wrap:wrap;gap:6px 14px;font-size:12px;display:flex}.legend i{vertical-align:-1px;border-radius:4px;width:12px;height:12px;margin-right:6px;display:inline-block}.fum{background:var(--soft);border-radius:16px;flex-direction:column;gap:2px;padding:14px 16px;display:flex}.fum b{font:700 25px/1.15 var(--display)}.fum span{color:var(--muted);font-size:12.5px}.status{border-radius:16px;align-items:center;gap:12px;padding:10px 14px;font-size:14px;display:flex}.status.pill{border:1.5px dashed var(--plum)}.status.try{background:var(--try-bg)}.status.try b{color:var(--try)}.hist{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.hist li{border-top:1px solid var(--line);gap:12px;padding:12px 0;display:flex}.hist li:first-child{border-top:none}.hist .bar{background:var(--period);border-radius:4px;flex:none;width:6px}.hist li.ev .bar{background:var(--plum);opacity:.55}.hist li.ev .when{color:var(--plum)}.hist li.trying .bar{background:linear-gradient(var(--period),var(--try))}.hist .when{font-size:15px;font-weight:700}.hist .meta{color:var(--muted);font-size:13px}.hist .note{overflow-wrap:anywhere;margin-top:4px;font-size:13px}.hist .ops{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.hist .op{color:var(--muted);cursor:pointer;background:0 0;border:none;min-height:36px;padding:0 6px;font-size:13px;font-weight:600}.hist .op.sure{background:var(--alert-bg);color:var(--alert-ink);border-radius:8px}.flags{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.flag{border-radius:999px;padding:3px 9px;font-size:11.5px;font-weight:700}.flag.warn{background:var(--warn-bg);color:var(--warn-ink)}.flag.alert{background:var(--alert-bg);color:var(--alert-ink)}.flag.try{background:var(--try-bg);color:var(--try)}.empty{background:var(--soft);border-radius:14px;padding:14px;font-size:14px}.backdrop{z-index:40;background:#0a080e99;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:560px;max-height:92%;padding:20px max(16px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 20px) max(16px,env(safe-area-inset-left,0px));border-radius:24px 24px 0 0;flex-direction:column;gap:14px;display:flex;overflow-y:auto}.cover{z-index:60;color:#5e5675;cursor:pointer;background:#141019;border:none;flex-direction:column;justify-content:center;align-items:center;gap:14px;width:100%;display:flex;position:fixed;inset:0}.cover .dot{background:var(--soft);border-radius:50%;width:12px;height:12px}.lock{z-index:70;background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:24px;display:flex;position:fixed;inset:0}.logo{background:linear-gradient(150deg,#816bb4,#c67ccb);border-radius:20px;place-items:center;width:64px;height:64px;display:grid}.pin-dots{gap:14px;display:flex}.pin-dots span{border:2px solid var(--line);border-radius:50%;width:14px;height:14px}.pin-dots span.on{background:var(--plum);border-color:var(--plum)}.keypad{grid-template-columns:repeat(3,72px);gap:14px 22px;display:grid}.key{background:var(--surface);width:72px;height:72px;color:var(--fg);cursor:pointer;border:none;border-radius:50%;font-size:26px;font-weight:600}.key.alt{color:var(--plum);background:0 0;font-size:15px}.choice{border:1.5px solid var(--line);background:var(--surface);width:100%;color:var(--fg);text-align:left;cursor:pointer;border-radius:20px;align-items:center;gap:14px;padding:16px;display:flex}.choice.on{background:var(--soft);border-color:var(--plum)}.choice.on.try{background:var(--try-bg);border-color:var(--try)}.choice.on.fam{background:var(--fam-bg);border-color:var(--fam)}.choice:disabled{opacity:.55;cursor:default}.choice .ico{width:44px;height:44px;font:700 18px var(--display);color:#17131f;border-radius:14px;flex:none;place-items:center;display:grid}.check{border:1.5px solid var(--line);border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:14px;font-weight:800;display:grid}.toast{left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 92px);z-index:80;background:var(--fg);color:var(--bg);text-align:center;border-radius:12px;max-width:calc(100% - 32px);padding:10px 16px;font-size:14px;font-weight:600;position:fixed;transform:translate(-50%)}@media (prefers-reduced-motion:no-preference){.toast{animation:.2s up}@keyframes up{0%{opacity:0;transform:translate(-50%,8px)}}.sheet{animation:.2s sh}@keyframes sh{0%{opacity:.6;transform:translateY(24px)}}}
