:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#352930;background:#f5eee5;font-synthesis:none;text-rendering:optimizeLegibility;--paper: #fffaf4;--ink: #352930;--muted: #7b6e72;--wine: #783750;--wine-dark: #542338;--coral: #d77069;--sage: #83947e;--line: #dfd3c9;--shadow: 0 16px 45px rgba(72, 47, 55, .08)}*{box-sizing:border-box}html{min-height:100%;background:#f5eee5}body{margin:0;min-width:320px;min-height:100vh;background:#f5eee5}button,input,select,textarea{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(215,112,105,.32);outline-offset:2px}h1,h2,p{margin-top:0}h2{margin-bottom:1.15rem;font-family:Georgia,serif;font-size:clamp(1.45rem,3vw,2rem);font-weight:400;line-height:1.2}p{line-height:1.65}.loading{min-height:100vh;display:grid;place-items:center;color:var(--muted);letter-spacing:.02em}.pair-page{min-height:100vh;padding:max(2rem,env(safe-area-inset-top)) 1rem max(2rem,env(safe-area-inset-bottom));display:grid;align-content:center;justify-items:center;background-image:radial-gradient(circle at 12px 12px,rgba(120,55,80,.08) 1px,transparent 1px);background-size:24px 24px}.pair-brand{margin-bottom:1.4rem;display:flex;align-items:center;gap:.65rem;font:400 1.25rem Georgia,serif}.pair-card{width:min(100%,34rem);padding:clamp(1.5rem,5vw,2.6rem)!important}.pair-card h2{font-size:clamp(2rem,7vw,3.2rem)}.privacy-line{margin:1.5rem 0 0;padding-top:1rem;border-top:1px solid var(--line);color:var(--muted);font-size:.8rem}.steps{padding-left:1.3rem;line-height:1.8}.brand-orbit{width:1.7rem;height:1.7rem;display:inline-block;flex:0 0 auto;border:5px solid var(--coral);border-radius:50%;background:var(--wine);box-shadow:0 0 0 4px var(--paper)}.app-shell{min-height:100vh}.side-nav{position:fixed;inset:0 auto 0 0;z-index:5;width:15.5rem;padding:2rem 1.3rem;display:flex;flex-direction:column;background:#34272e;color:#f7ece6}.wordmark{display:flex;align-items:center;gap:.75rem}.wordmark strong{display:block;font:400 1.15rem Georgia,serif}.wordmark small{display:block;margin-top:.2rem;color:#c5b4b9;font-size:.69rem;letter-spacing:.08em;text-transform:uppercase}.side-nav nav{margin-top:3rem;display:grid;gap:.25rem}.side-nav nav button{padding:.75rem 1rem;border:0;border-left:2px solid transparent;background:transparent;color:#cfc0c5;text-align:left;cursor:pointer}.side-nav nav button.active{border-left-color:var(--coral);color:#fff;background:#ffffff0d}.sync-state{margin-top:auto;color:#a9959c;font-size:.68rem;line-height:1.5}.content{min-height:100vh;margin-left:15.5rem;padding:2.5rem clamp(1.5rem,4vw,4rem) 4rem}.mobile-header,.bottom-nav{display:none}.view-grid{width:min(100%,70rem);margin:0 auto;display:grid;gap:1.25rem}.opened-reminder{width:min(100%,70rem);margin:0 auto 1.25rem;padding:1.25rem 1.5rem;border:2px solid var(--coral);border-radius:1rem;background:#fff7ef;box-shadow:var(--shadow)}.opened-reminder h2{margin-bottom:.35rem}.opened-reminder p:not(.eyebrow){margin-bottom:1rem;color:var(--muted)}.view-grid.two-column{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.full-width{grid-column:1 / -1}.panel{padding:clamp(1.25rem,3vw,2rem);overflow:hidden;border:1px solid rgba(120,55,80,.08);border-radius:1rem;background:var(--paper);box-shadow:var(--shadow)}.eyebrow{margin-bottom:.55rem;color:var(--wine);font-size:.7rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.hero-panel{min-height:15.5rem;position:relative;display:flex;flex-direction:column;justify-content:flex-end;color:#fff9f5;background:var(--wine)}.hero-panel:after{content:"";position:absolute;width:12rem;height:12rem;right:-3rem;top:-4rem;border:1px solid rgba(255,255,255,.22);border-radius:50%;box-shadow:0 0 0 2.5rem #ffffff0a,0 0 0 5rem #ffffff08}.hero-panel .eyebrow{color:#efb9b2}.hero-panel h2{position:relative;z-index:1;margin-bottom:.3rem;font-size:clamp(2.2rem,6vw,4.5rem)}.hero-phase{position:relative;z-index:1;margin-bottom:1.2rem;color:#e7d6db}.hero-fertility{position:relative;z-index:1;margin:-.7rem 0 1rem;color:#f1deda;font-size:.78rem}.hero-warning{position:relative;z-index:1;max-width:40rem;margin:-.55rem 0 1rem;color:#f4c8c2;font-size:.7rem;line-height:1.45}.hero-actions{position:relative;z-index:1}.button{min-height:2.75rem;padding:.65rem 1rem;border:1px solid transparent;border-radius:.65rem;font-weight:700;cursor:pointer;transition:transform .15s,background .15s}.button:hover{transform:translateY(-1px)}.button:disabled{opacity:.55;cursor:wait;transform:none}.button.primary{background:var(--coral);color:#fff}.button.primary:hover{background:#c55f5a}.button.secondary{border-color:var(--line);background:transparent;color:var(--wine)}.button.wide{width:100%;margin-top:.75rem}.icon-button{width:2.5rem;height:2.5rem;border:1px solid var(--line);border-radius:50%;background:transparent;font-size:1.5rem;cursor:pointer}.mini{padding:.35rem .55rem;border:1px solid var(--line);border-radius:.45rem;background:transparent;color:var(--muted);font-size:.72rem;font-weight:700;cursor:pointer}.mini.positive{border-color:var(--sage);color:#53674f}.mini.danger{color:#a24c51}.inline-actions{display:flex;flex-wrap:wrap;gap:.4rem}.notice{margin:1rem 0 0;padding:.8rem 1rem;border-left:3px solid var(--wine);background:#f2e9e8;color:#5f4d55;font-size:.82rem;line-height:1.55}.notice-warning{border-color:#c6814c;background:#fbefe1;color:#714a2f}.notice-success{border-color:var(--sage);background:#edf1ea;color:#4d6049}.stack{display:grid;gap:1rem}.stack p{margin-bottom:0}label{display:grid;gap:.4rem;color:#65565c;font-size:.78rem;font-weight:700}input,select,textarea{width:100%;min-height:2.8rem;padding:.65rem .75rem;border:1px solid var(--line);border-radius:.55rem;background:#fffdf9;color:var(--ink);font-size:max(16px,.9rem)}textarea{min-height:5.5rem;resize:vertical}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.form-grid .full{grid-column:1 / -1}.form-actions{display:flex;flex-wrap:wrap;gap:.65rem}.checks{margin:0;padding:.8rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;border:1px solid var(--line);border-radius:.55rem}.checks legend{padding:0 .35rem;color:#65565c;font-size:.78rem;font-weight:700}.checks label,.switch-row{display:flex;align-items:center;gap:.45rem}.checks input,.switch-row input{width:1.1rem;min-height:1.1rem;accent-color:var(--wine)}.specific-dates{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.65rem}.specific-dates .date-chips{grid-column:1 / -1;margin-top:0}hr{margin:1.5rem 0;border:0;border-top:1px solid var(--line)}.reminder-list{display:grid;gap:.65rem}.reminder-row{padding:.9rem;display:grid;grid-template-columns:3.3rem minmax(0,1fr) auto;align-items:center;gap:.8rem;border:1px solid var(--line);border-radius:.75rem}.reminder-row time{color:var(--wine);font-weight:700}.reminder-row strong,.reminder-row small{display:block}.reminder-row small{margin-top:.2rem;color:var(--muted)}.reminder-row.is-taken{opacity:.7;border-color:#b8c8b4;background:#f4f7f2}.reminder-row.is-skipped{opacity:.7;border-color:#e0c1b5}.status-label{display:inline-block;margin-top:.3rem;color:var(--sage);font-size:.68rem;font-weight:700;text-transform:uppercase}.empty{margin-bottom:0;color:var(--muted)}.history-list{display:grid}.history-list button{padding:.8rem 0;display:flex;justify-content:space-between;gap:1rem;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;cursor:pointer}.history-list button:last-child{border-bottom:0}.history-list button span:last-child{color:var(--muted);font-size:.8rem}.month-nav{margin-bottom:1.3rem;display:flex;align-items:center;justify-content:space-between}.month-nav strong{text-transform:capitalize}.calendar-jump{margin:-.5rem 0 1rem;display:grid;grid-template-columns:minmax(8rem,1fr) 7rem auto;align-items:end;gap:.65rem}.calendar-jump .mini{min-height:2.8rem}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekdays span{padding:.4rem;color:var(--muted);font-size:.7rem;text-align:center}.calendar-grid{gap:4px}.calendar-grid button{min-height:5rem;position:relative;padding:.5rem;border:1px solid #eee4db;border-radius:.5rem;background:#fffdf9;cursor:pointer}.calendar-grid button.outside{opacity:.32}.calendar-grid button.today{border:2px solid var(--wine)}.calendar-grid button.selected{outline:3px solid rgba(120,55,80,.18);background:#fff8f0}.day-number{position:absolute;top:.45rem;left:.5rem;font-size:.78rem}.cycle-number{position:absolute;top:.45rem;right:.45rem;color:var(--muted);font-size:.6rem}.day-markers{margin-top:1.35rem;display:flex;flex-wrap:wrap;justify-content:center;gap:3px}.day-markers i,.legend i{min-width:1.25rem;height:1.25rem;padding:0 .22rem;display:inline-grid;place-items:center;border-radius:.3rem;color:#fff;font-size:.55rem;font-style:normal;font-weight:800}.marker-menstrual{background:#b64b5d}.marker-fertile{background:#3f8564}.marker-remedy{background:#426fa8}.entry-legend{width:.55rem!important;min-width:.55rem!important;height:.55rem!important;padding:0!important;border-radius:50%!important;background:var(--wine)}.phase-menstruation{background:#b65c68}.phase-follicular{background:#7d9b7e}.phase-ovulation{background:#d49755}.phase-luteal{background:#80759b}.entry-dot{position:absolute;right:.45rem;bottom:.4rem;width:.38rem;height:.38rem;border-radius:50%;background:var(--wine)}.fertility-estimate{position:absolute;left:.25rem;right:.25rem;bottom:.28rem;color:var(--muted);font-size:.5rem;font-weight:700;text-align:center}.fertility-estimate-peak,.fertility-estimate-elevated{color:#337051}.legend{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.8rem 1.2rem;color:var(--muted);font-size:.68rem}.legend span{display:flex;align-items:center;gap:.35rem}.legend i{width:.55rem;height:.55rem;border-radius:50%}.day-card{margin-top:1.2rem;padding:1rem;border:1px solid var(--line);border-radius:.8rem;background:#fffdf9}.day-card h3{margin:0;font:400 1.2rem Georgia,serif;text-transform:capitalize}.day-statuses{margin:.8rem 0;display:flex;flex-wrap:wrap;gap:.4rem}.day-statuses span{padding:.3rem .5rem;border-radius:1rem;background:#eee6df;color:#65565c;font-size:.7rem}.day-statuses .fertility-peak,.day-statuses .fertility-elevated{background:#dfefe5;color:#356a50}.status-detail{margin:.55rem 0;padding:.65rem .75rem;border-left:4px solid;font-size:.78rem}.menstrual-detail{border-color:#b64b5d;background:#f8e8ea}.remedy-detail{border-color:#426fa8;background:#e8f0fa}.day-card .form-actions{margin-top:1rem}.remedy-cards{display:grid;gap:.75rem}.remedy-cards article{padding:1rem;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;border:1px solid var(--line);border-radius:.7rem}.remedy-cards article.inactive{opacity:.52}.remedy-cards p{margin:.3rem 0;color:var(--wine);font-size:.76rem}.remedy-cards small{display:block;color:var(--muted);line-height:1.5}.diary-history{display:grid;gap:.35rem}.diary-history button{padding:.75rem;display:grid;gap:.2rem;border:1px solid transparent;border-bottom-color:var(--line);background:transparent;text-align:left;cursor:pointer}.diary-history button.selected{border-color:#dfbcc5;border-radius:.5rem;background:#f7edef}.diary-history span,.diary-history small{color:var(--muted);font-size:.75rem}.diary-history small{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem}.metric-grid div{min-height:8rem;padding:1rem;display:flex;flex-direction:column;justify-content:space-between;border:1px solid var(--line);border-radius:.75rem}.metric-grid strong{color:var(--wine);font:400 clamp(1.8rem,4vw,3rem) Georgia,serif}.metric-grid span{color:var(--muted);font-size:.72rem}.bar-list{display:grid;gap:.8rem}.bar-list>div{display:grid;grid-template-columns:9rem minmax(5rem,1fr) 2rem 3rem;align-items:center;gap:.6rem;font-size:.75rem}.bar-list>div>div{height:.55rem;overflow:hidden;border-radius:1rem;background:#ede3dd}.bar-list i{height:100%;display:block;border-radius:1rem;background:var(--wine)}.bar-list small{color:var(--muted)}.change-list{display:grid;gap:.65rem}.change-list div{padding:.8rem 0;display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--line)}.change-list span{color:var(--muted);font-size:.8rem}.cycle-summary{margin-bottom:1.2rem;display:flex;flex-wrap:wrap;gap:.7rem}.cycle-summary span{padding:.65rem .8rem;border:1px solid var(--line);border-radius:.65rem;color:var(--muted);font-size:.72rem}.cycle-summary strong{margin-right:.2rem;color:var(--wine);font:400 1.25rem Georgia,serif}.cycle-chart{display:grid;gap:.75rem}.cycle-chart>div{display:grid;grid-template-columns:7.5rem minmax(5rem,1fr) 3.5rem;align-items:center;gap:.65rem;font-size:.72rem}.cycle-chart>div>div{height:.8rem;border-radius:1rem;background:#ede3dd}.cycle-chart i{height:100%;display:block;border-radius:1rem;background:linear-gradient(90deg,var(--wine),var(--coral))}.chart-note{margin:1rem 0 0;color:var(--muted);font-size:.72rem}.local-rule-message{width:min(100%,70rem);margin:0 auto 1.25rem}.private-import .notice{margin-bottom:1rem}.status-line{display:flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.8rem}.status-line i{width:.7rem;height:.7rem;border-radius:50%;background:#b9a9ad}.status-line i.on{background:#6e9369;box-shadow:0 0 0 4px #e4ede2}.date-chips{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.5rem}.date-chips span{padding:.35rem .45rem .35rem .65rem;display:flex;align-items:center;gap:.3rem;border:1px solid var(--line);border-radius:2rem;font-size:.72rem}.date-chips button{border:0;background:transparent;color:var(--muted);cursor:pointer}.file-button{display:inline-flex;align-items:center;cursor:pointer}.file-button input{display:none}.recovery-button{width:fit-content;margin-top:1rem;display:inline-flex;align-items:center;cursor:pointer}.recovery-button input{display:none}@media(max-width:900px){.side-nav{display:none}.content{margin-left:0;padding:max(1rem,env(safe-area-inset-top)) 1rem calc(6rem + env(safe-area-inset-bottom))}.mobile-header{margin:0 auto 1rem;width:min(100%,70rem);display:flex;align-items:center;justify-content:space-between}.mobile-header small{max-width:45%;color:var(--muted);font-size:.62rem;text-align:right}.bottom-nav{position:fixed;z-index:10;inset:auto 0 0;padding:.45rem max(.4rem,env(safe-area-inset-right)) max(.45rem,env(safe-area-inset-bottom)) max(.4rem,env(safe-area-inset-left));display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid #ddcfc7;background:#fffaf4f5;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.bottom-nav button{min-height:2.8rem;padding:.3rem .1rem;border:0;border-radius:.5rem;background:transparent;color:var(--muted);font-size:.62rem;cursor:pointer}.bottom-nav button.active{background:#f1e2e3;color:var(--wine);font-weight:700}.view-grid.two-column{grid-template-columns:1fr}}@media(max-width:620px){.content{padding-left:.7rem;padding-right:.7rem}.panel{border-radius:.8rem}.form-grid{grid-template-columns:1fr}.form-grid>*{grid-column:1!important}.checks{grid-template-columns:1fr}.hero-panel{min-height:13rem}.reminder-row{grid-template-columns:2.9rem minmax(0,1fr)}.reminder-row .inline-actions{grid-column:1 / -1}.calendar-panel{padding:.8rem}.calendar-jump{grid-template-columns:1fr 5.5rem}.calendar-jump .mini{grid-column:1 / -1}.calendar-grid button{min-height:3.8rem;padding:.25rem}.day-markers{margin-top:1.2rem;gap:2px}.day-markers i{min-width:1.05rem;height:1.05rem;padding:0 .15rem;font-size:.48rem}.day-number{top:.3rem;left:.35rem;font-size:.66rem}.cycle-number{top:.3rem;right:.3rem;font-size:.52rem}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bar-list>div{grid-template-columns:6.7rem minmax(3rem,1fr) 1.5rem}.bar-list small{display:none}.remedy-cards article{grid-template-columns:1fr}.change-list div{display:grid}.cycle-chart>div{grid-template-columns:5.8rem minmax(3rem,1fr) 3rem;gap:.4rem;font-size:.65rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
