.qrscanner.svelte-mfrxfi{display:flex;flex-direction:column;gap:var(--sp-3);align-items:flex-start;width:100%}.viewfinder.svelte-mfrxfi{position:relative;width:100%;aspect-ratio:1;overflow:hidden;border-radius:var(--r-md)}.video.svelte-mfrxfi{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;object-fit:cover;background:#000;border-radius:var(--r-md)}.reticle.svelte-mfrxfi{position:absolute;top:12%;right:12%;bottom:12%;left:12%;border:2px solid var(--rose-500);border-radius:var(--r-sm);pointer-events:none;box-shadow:0 0 0 100vmax color-mix(in srgb,#000 35%,transparent)}.scan-status.svelte-mfrxfi{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--muted)}.lens.svelte-mfrxfi{display:flex;align-items:center;gap:var(--sp-2);width:100%}.lens.svelte-mfrxfi select:where(.svelte-mfrxfi){flex:1}.pulse.svelte-mfrxfi{width:8px;height:8px;border-radius:50%;background:var(--rose-500);animation:svelte-mfrxfi-pulse 1s ease-in-out infinite}@keyframes svelte-mfrxfi-pulse{0%,to{opacity:1}50%{opacity:.2}}.err.svelte-mfrxfi{color:var(--danger);font-size:var(--fs-sm)}.sm.svelte-mfrxfi{min-height:38px;font-size:.8125rem}.small.svelte-iy9a04{font-size:var(--fs-sm)}.tech.small.svelte-iy9a04{font-size:.9375rem}.item.svelte-iy9a04{padding:8px 0}.sm.svelte-iy9a04{min-height:40px;font-size:.8125rem}.code-row.svelte-iy9a04 input:where(.svelte-iy9a04){flex:1;min-width:0}.err.svelte-iy9a04{color:var(--danger);margin:var(--sp-2) 0 0}.ok.svelte-iy9a04{color:var(--sage);margin:var(--sp-2) 0 0}.preview.svelte-iy9a04{margin-top:var(--sp-3);padding:var(--sp-3);background:var(--paper);border-radius:var(--r-sm)}.nav.svelte-1wk4g5v{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.chev.svelte-1wk4g5v{background:none;border:1px solid var(--line);border-radius:var(--r-sm);width:34px;height:34px;font-size:var(--fs-lg);color:var(--ink);flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.month-pick.svelte-1wk4g5v{position:relative;display:inline-block;min-width:0}.month-pick.svelte-1wk4g5v h2:where(.svelte-1wk4g5v){margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-pick.svelte-1wk4g5v input:where(.svelte-1wk4g5v){position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;width:100%;height:100%;min-height:0;padding:0;border:0;font-size:16px}.today-btn.svelte-1wk4g5v{min-height:34px;font-size:.8125rem;padding:0 10px}.forecast.svelte-1wk4g5v{font-size:var(--fs-xs);margin:var(--sp-3) 0 0}.cal-wd-row.svelte-1wk4g5v{margin-bottom:2px}.cal-scroll.svelte-1wk4g5v{display:flex;gap:5px;overflow-x:auto;overflow-y:hidden;min-height:0;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}.cal-scroll.svelte-1wk4g5v::-webkit-scrollbar{display:none}.cal-page.svelte-1wk4g5v{flex:0 0 100%;scroll-snap-align:start;scroll-snap-stop:always;min-width:0}.ongoing-note.svelte-3jo25w{font-size:var(--fs-sm);color:var(--muted);margin:0 0 var(--sp-3)}.actions.svelte-3jo25w .btn:where(.svelte-3jo25w){flex:1 1 0;min-width:0;width:auto}.notice.svelte-uq1ll4{font-size:var(--fs-sm);padding:10px 12px;border-radius:var(--r-sm);margin:var(--sp-3) 0 0}.error-notice.svelte-uq1ll4{background:color-mix(in srgb,var(--danger) 10%,var(--surface));color:var(--danger)}.ok-notice.svelte-uq1ll4{background:color-mix(in srgb,var(--sage) 14%,var(--surface));color:var(--sage)}.linklike.svelte-uq1ll4{background:none;border:none;color:var(--muted);text-decoration:underline;padding:8px 0 0;font-size:.9375rem}.linklike.svelte-uq1ll4:hover{color:var(--ink)}.notice.svelte-1sxxryq{font-size:var(--fs-sm);padding:10px 12px;border-radius:var(--r-sm);margin:0 0 var(--sp-3);background:color-mix(in srgb,var(--amber) 14%,var(--surface))}.notice.ok.svelte-1sxxryq{background:color-mix(in srgb,var(--sage) 14%,var(--surface));color:var(--sage)}.summary.svelte-1sxxryq{margin-bottom:var(--sp-4);font-size:var(--fs-base)}.linklike.svelte-1sxxryq{background:none;border:none;color:var(--muted);text-decoration:underline;font-size:.9375rem}.qr.svelte-1sxxryq{border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;display:block;margin:0 auto var(--sp-3)}.waiting.svelte-1sxxryq{text-align:center}.small.svelte-1vv6dgn{font-size:var(--fs-sm)}.tech.small.svelte-1vv6dgn{font-size:.9375rem}.item.svelte-1vv6dgn{padding:8px 0}.sm.svelte-1vv6dgn{min-height:40px;font-size:.8125rem;padding:0 12px}.chan-ok.svelte-1vv6dgn{margin-top:var(--sp-2);padding:10px 12px;border-radius:var(--r-sm);border:1px solid color-mix(in srgb,var(--ok-500) 55%,var(--line));background:color-mix(in srgb,var(--ok-500) 8%,var(--surface))}.chan-ok.svelte-1vv6dgn+button:where(.svelte-1vv6dgn),.chan-ok.svelte-1vv6dgn+.row:where(.svelte-1vv6dgn){margin-top:var(--sp-3)}.ok-label.svelte-1vv6dgn{color:var(--ok-600);font-weight:700}.pill.ok.svelte-1vv6dgn{background:color-mix(in srgb,var(--ok-500) 16%,var(--surface));color:var(--ok-600)}.destructive.svelte-1vv6dgn{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,var(--line))}.email-add.svelte-1vv6dgn input:where(.svelte-1vv6dgn){flex:1;min-width:0}.err.svelte-1vv6dgn{color:var(--danger)}.secret.svelte-1vv6dgn{word-break:break-all;background:var(--paper);padding:8px 10px;border-radius:var(--r-sm)}.totp-setup.svelte-1vv6dgn img:where(.svelte-1vv6dgn){border:1px solid var(--line);border-radius:var(--r-sm);background:#fff}.recovery.svelte-1vv6dgn{margin-top:var(--sp-4);padding:var(--sp-3);background:var(--paper);border-radius:var(--r-sm)}.codes.svelte-1vv6dgn{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px;margin:var(--sp-3) 0}h3.svelte-1vv6dgn{margin-top:var(--sp-2)}.linklike.svelte-x5qczx{background:none;border:none;color:var(--muted);text-decoration:underline;font-size:.9375rem}.sm.svelte-6av082{min-height:38px;font-size:.8125rem}.item.svelte-6av082{padding:8px 0;border-bottom:1px solid var(--line)}.item.svelte-6av082:last-child{border-bottom:0}.item.svelte-7l0biu{padding:8px 0}.item.svelte-7l0biu+.item:where(.svelte-7l0biu){border-top:1px solid var(--line)}@font-face{font-family:"PP Right Serif";src:url(/assets/PPRightSerif-CompactVariable-Dm_qkLbE.woff) format("woff");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:PP Right Slab;src:url(/assets/PPRightSlab-CompactVariable-DxXQke47.woff) format("woff");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:PP Right Grotesk Mono;src:url(/assets/PPRightGroteskMono-Variable-DYfFBOS5.ttf) format("truetype");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:PP Right Didone;src:url(/assets/PPRightDidone-CompactVariable-BM5wvc4O.woff) format("woff");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:PP Right Grotesk;src:url(/assets/PPRightGrotesk-CasualVariable-CPimaYA4.ttf) format("truetype");font-weight:100 900;font-style:normal;font-display:swap}:root{--ink: #262628;--paper: #f4f4f4;--surface: #ffffff;--muted: #868688;--line: #e6e6e8;--rose-100: #fbdbe6;--rose-300: #f0a6c1;--rose-500: #d24d7e;--rose-600: #b5386a;--ok-500: #5cbf6e;--ok-600: #348a4c;--sage: #17a377;--plum: #6a40c4;--amber: #f08a00;--danger: #bd3b34;--phase-menstrual: var(--rose-500);--phase-follicular: #a774e8;--phase-fertile: var(--sage);--phase-ovulation: #17916a;--phase-luteal: var(--plum);--phase-pms: var(--amber);--font-display: "PP Right Didone", "PP Right Serif", Georgia, serif;--font-serif: "PP Right Serif", "Hoefler Text", Georgia, serif;--font-sans: "PP Right Slab", "Iowan Old Style", Georgia, serif;--font-date: "PP Right Grotesk Mono", ui-monospace, "SF Mono", Menlo, monospace;--font-btn: "PP Right Grotesk", "PP Right Grotesk Mono", system-ui, sans-serif;--fs-xs: 1.3rem;--fs-sm: 1.5rem;--fs-base: 1.0625rem;--fs-lg: 1.3125rem;--fs-xl: 1.5rem;--fs-2xl: 1.875rem;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 48px;--r-sm: 8px;--r-md: 14px;--r-lg: 20px;--r-pill: 999px;--shadow: 0 1px 2px rgb(42 38 48 / .04), 0 10px 30px rgb(42 38 48 / .05);--maxw: 680px}@media(prefers-color-scheme:dark){:root{--ink: #eeeeef;--paper: #141415;--surface: #1e1e20;--muted: #949496;--line: #2b2b2d;--rose-500: #e97ba6;--rose-600: #f093b7;--ok-500: #6bd07f;--ok-600: #8fe3a4;--sage: #4fc4a0;--plum: #b28fe6;--amber: #f0b23c}}*{box-sizing:border-box}html,body{margin:0;padding:0}html{touch-action:manipulation;-webkit-text-size-adjust:100%}:root{color-scheme:light dark}body{font-family:var(--font-sans);font-size:var(--fs-base);color:var(--ink);background:var(--paper);line-height:1.6;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.12;margin:0 0 var(--sp-3);letter-spacing:0}h1{font-size:clamp(1.8rem,1.4rem + 1.6vw,2.3rem)}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}p{margin:0 0 var(--sp-3)}a{color:var(--rose-600)}.display{font-family:var(--font-display);font-weight:600;letter-spacing:0;line-height:1}.eyebrow{font-family:var(--font-serif);font-weight:600;font-size:.9375rem;color:var(--muted);letter-spacing:.01em;margin:0 0 var(--sp-2)}.muted{color:var(--muted)}.app-shell{max-width:var(--maxw);margin:0 auto;padding:var(--sp-5) var(--sp-4) 96px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-5);box-shadow:var(--shadow)}.page{display:flex;flex-direction:column;gap:var(--sp-4)}.date{font-family:var(--font-date);font-variant-numeric:tabular-nums;font-weight:450;white-space:nowrap}.tech{font-family:var(--font-date);font-variant-numeric:tabular-nums;font-weight:450}.range{white-space:nowrap}button,.btn{font-family:var(--font-btn);cursor:pointer;font-size:.9375rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);text-transform:uppercase;letter-spacing:.04em;font-weight:600;border-radius:var(--r-sm);padding:0 var(--sp-4);min-height:44px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);transition:opacity .15s ease,transform .06s ease;width:100%}.btn:hover{opacity:.88}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-accent{background:var(--rose-500);border-color:var(--rose-500);color:#fff}.btn-accent:hover{background:var(--rose-600);border-color:var(--rose-600);opacity:1}.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}.btn-inline{width:auto}.btn-dim{opacity:.45}.btn-dim:hover{opacity:.7}.lang-toggle{font-size:.9375rem;color:var(--muted)}.lang-toggle button{background:none;border:none;color:var(--muted);padding:4px 6px}.lang-toggle button.active{color:var(--ink);font-weight:700}label.field{display:block;margin-bottom:var(--sp-4)}label.field>span{display:block;font-family:var(--font-serif);font-weight:600;font-size:.9375rem;margin-bottom:var(--sp-2)}input,select{width:100%;min-height:44px;padding:0 var(--sp-3);font-size:16px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm);font-family:var(--font-sans)}input[type=date],input.tech{font-family:var(--font-date);font-weight:450}input[type=date]{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-width:0;max-width:100%;display:flex;align-items:center}input[type=date]::-webkit-date-and-time-value{text-align:left;margin:0}input[type=date]::-webkit-datetime-edit{padding:0;line-height:normal}input:focus,select:focus{outline:2px solid var(--rose-300);outline-offset:1px;border-color:var(--rose-300)}.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:var(--r-pill);font-size:.9375rem;font-weight:600;background:color-mix(in srgb,var(--ink) 6%,var(--surface));color:var(--ink);white-space:nowrap;flex-shrink:0}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.row{display:flex;align-items:center;gap:var(--sp-3)}.between{justify-content:space-between}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--sp-4)}.grid2>*{min-width:0}.tabs{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;justify-content:space-around;background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:var(--sp-2) 0 calc(var(--sp-2) + env(safe-area-inset-bottom))}.tabs button{background:none;border:none;color:var(--muted);font-size:.8125rem;text-transform:uppercase;letter-spacing:.02em;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 12px;min-height:44px;width:auto}.tabs button.active{color:var(--rose-600)}.tabs .glyph{font-size:var(--fs-lg)}.cal-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--sp-4)}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.cal .wd{text-align:center;font-size:var(--fs-xs);color:var(--muted);font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.04em;padding-bottom:4px}.cell{aspect-ratio:1;border-radius:var(--r-sm);background:color-mix(in srgb,var(--ink) 4%,var(--surface));display:flex;align-items:center;justify-content:center;font-family:var(--font-date);font-variant-numeric:tabular-nums;font-weight:450;font-size:var(--fs-sm);color:var(--muted);position:relative}.cell[data-phase=menstrual]{background:var(--phase-menstrual);color:#fff}.cell[data-phase=follicular]{background:color-mix(in srgb,var(--phase-follicular) 52%,var(--surface));color:var(--ink)}.cell[data-phase=fertile]{background:color-mix(in srgb,var(--phase-fertile) 72%,var(--surface));color:var(--ink)}.cell[data-phase=ovulation]{background:var(--phase-ovulation);color:#fff}.cell[data-phase=luteal]{background:color-mix(in srgb,var(--phase-luteal) 68%,var(--surface));color:var(--ink)}.cell[data-phase=pms]{background:color-mix(in srgb,var(--phase-pms) 72%,var(--surface));color:var(--ink)}.cell.future{opacity:.5}.cell.today:after{content:"";position:absolute;left:50%;top:80%;transform:translate(-50%,-50%);width:7px;height:7px;border-radius:50%;background:var(--rose-500)}.cell.today[data-phase=menstrual]:after,.cell.today[data-phase=ovulation]:after{background:#fff}.legend{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-4);font-size:var(--fs-xs);color:var(--muted)}.legend span{display:inline-flex;align-items:center;gap:5px}.toast{position:fixed;bottom:84px;left:50%;transform:translate(-50%);background:var(--ink);color:var(--paper);padding:10px 18px;border-radius:var(--r-pill);font-size:var(--fs-sm);z-index:40;box-shadow:var(--shadow)}.update-banner{position:fixed;top:0;left:0;right:0;z-index:50;background:var(--ink);color:var(--paper);border:none;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;font-family:var(--font-sans);font-size:var(--fs-sm);text-align:center}.update-banner strong{font-family:var(--font-btn);text-transform:uppercase;letter-spacing:.04em;margin-left:8px}.divider{height:1px;background:var(--line);margin:var(--sp-4) 0;border:0}.stack>*+*{margin-top:var(--sp-3)}
