@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#0b0c0d;--surface:#141618;--surface-2:#1b1e21;--line:#23272a;--text:#edeff0;--text-2:#8b9196;--accent:#8be38f;--warn:#f2b84b;--crit:#f27a6b;--progress:var(--accent);--accent-soft:color-mix(in srgb, var(--accent) 14%, transparent);--radius:14px;--ease:cubic-bezier(.22, .61, .36, 1);color:var(--text);background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;font-family:Inter Variable,Inter,system-ui,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}[data-theme=light]{--bg:#f6f6f3;--surface:#fff;--surface-2:#f0f0ec;--line:#e3e3de;--text:#121416;--text-2:#6a6f74;--warn:#b7791f;--crit:#c2412f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--bg);min-height:100svh;margin:0;overflow-x:hidden}h1,h2,h3{letter-spacing:-.01em;margin:0;font-weight:600}h1{font-size:1.5rem;line-height:1.2}h2{font-size:1.05rem}h3{font-size:1rem}p{margin:0}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .15s var(--ease), background .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease)}button:active:not(:disabled){transform:scale(.97)}button:disabled{opacity:.35;cursor:default}.muted{color:var(--text-2)}.small{font-size:.85rem}.error{color:var(--crit);font-size:.9rem}.banner{border:1px solid var(--crit);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.page-status{text-align:center;padding:3rem 1rem}.hint{padding:0 .25rem}.tnum,.big,.streak-num,.summary,.value-text,td{font-variant-numeric:tabular-nums}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-width:0;padding:1rem}.dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.section-title{margin-bottom:.75rem}.field-label{color:var(--text-2);margin:1rem 0 .5rem;font-size:.85rem;font-weight:500}.shell{min-height:100svh}.nav{z-index:20;padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--bg) 92%, transparent);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(12px);justify-content:space-around;gap:2px;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-brand{display:none}.nav-brand-heart{vertical-align:-.12em;width:1em;height:1em;fill:var(--text);margin-right:.45rem}.nav-item{color:var(--text-2);background:0 0;border:none;border-radius:10px;flex:1;min-height:48px;padding:.55rem .2rem;font-size:.72rem;font-weight:500}.nav-item.active{color:var(--accent);background:var(--accent-soft)}.page-wrap{flex-direction:column;gap:1rem;max-width:760px;margin:0 auto;padding:1rem 1rem 6.5rem;display:flex}.page{flex-direction:column;gap:1rem;min-width:0;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem 1rem;display:flex}.page-head>*{min-width:0}@media (width>=900px){.nav{border-top:none;border-right:1px solid var(--line);background:var(--bg);-webkit-backdrop-filter:none;flex-direction:column;justify-content:flex-start;gap:4px;width:212px;padding:1.5rem .75rem;top:0;bottom:0;right:auto}.nav-brand{padding:0 .75rem 1.25rem;font-weight:600;display:block}.nav-item{text-align:left;flex:none;min-height:40px;padding:.6rem .75rem;font-size:.95rem}.page-wrap{max-width:880px;margin-left:212px;padding:2rem 2.5rem 3rem}}.rows{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 0;display:flex}.rows .row:first-child{border-top:none;padding-top:0}.row-name{font-weight:600}.toggle{color:var(--text-2);border:1px solid var(--line);background:0 0;border-radius:999px;flex-shrink:0;min-height:40px;padding:.45rem 1rem;font-size:.9rem;font-weight:500}.toggle.on{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 45%, transparent);color:var(--accent);animation:pop .35s var(--ease);font-weight:600}.settings-group .section-title{margin-bottom:.25rem}.segmented{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;flex-wrap:wrap;gap:4px;margin-top:.75rem;padding:4px;display:inline-flex}.seg{color:var(--text-2);background:0 0;border:none;border-radius:9px;min-height:40px;padding:.5rem .9rem;font-weight:500}.seg.active{background:var(--surface);color:var(--text);box-shadow:inset 0 0 0 1px var(--line)}.segmented.scroll-x{flex-wrap:nowrap;max-width:100%;display:flex;overflow-x:auto}.segmented.scroll-x .seg{white-space:nowrap;flex:none}.block-head{flex-direction:column;gap:.6rem;display:flex}.block-bar{background:var(--surface-2);border-radius:999px;height:8px;overflow:hidden}.block-bar-fill{background:var(--accent);border-radius:999px;height:100%}.block-meta{justify-content:space-between;gap:1rem;display:flex}.water-card .metric{gap:.5rem}.water-card .summary{font-size:.95rem}.water-card .water-actions{gap:.4rem}.water-card button{min-width:44px;min-height:44px}.segmented.wide{width:100%;margin-top:0;display:flex}.segmented.wide .seg{text-align:center;flex:1}.week-nav{justify-content:space-between;align-items:center;gap:.5rem;margin:1rem 0;display:flex}.week-range{text-align:center;font-variant-numeric:tabular-nums;flex:1;font-weight:600}.week-progress{flex-direction:column;gap:.6rem;margin-top:.75rem;display:flex}.week-progress-head{justify-content:space-between;align-items:baseline;display:flex}.strip-row{grid-template-columns:repeat(7,minmax(0,1fr));gap:.3rem;display:grid}.strip-row.strip-row-5{grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem}.strip-row.strip-row-5 .strip-cell{font-size:.85rem}.strip-cell{border:1px solid var(--line);min-width:0;min-height:68px;color:var(--text-2);font-variant-numeric:tabular-nums;background:0 0;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:.2rem;padding:.4rem .05rem;font-size:.72rem;display:flex}.strip-cell.today{border-color:var(--text-2)}.strip-cell.done{border-color:var(--accent);color:var(--text)}.week-pair{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.strip-cell.active{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.strip-day{font-size:.75rem}.strip-date{font-size:.8rem;font-weight:600}.strip-fill{background:var(--surface-2);border-radius:999px;width:100%;height:4px;overflow:hidden}.strip-fill>span{background:var(--accent);height:100%;display:block}.day-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-top:.75rem;display:flex}.day-actions button{min-height:36px;padding:.35rem .7rem;font-size:.85rem}.action-row{justify-content:space-between;align-items:center;gap:.5rem;margin-top:.75rem;display:flex}.swatches{flex-wrap:wrap;gap:.6rem;display:flex}.swatch{background:var(--swatch);width:44px;height:44px;box-shadow:inset 0 0 0 3px var(--surface);border:2px solid #0000;border-radius:50%}.swatch.active{border-color:var(--text)}button.ghost{color:var(--text-2);border:1px solid var(--line);background:0 0;border-radius:12px;min-height:44px;padding:.55rem 1rem;font-weight:500}button.ghost.icon{width:44px;height:44px;padding:0;font-size:1.4rem;line-height:1}button.soft{background:var(--accent-soft);color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);border-radius:12px;min-height:44px;padding:.6rem 1rem;font-weight:600}button.link{color:var(--text-2);text-underline-offset:3px;background:0 0;border:none;min-height:32px;padding:.25rem 0;font-size:.85rem;text-decoration:underline}button.primary{background:var(--accent);color:#0b0c0d;border:none;border-radius:12px;min-height:44px;padding:.7rem 1.1rem;font-weight:600}input{font:inherit;background:var(--surface-2);color:var(--text);border:1px solid var(--line);width:100%;min-height:44px;transition:border-color .2s var(--ease);border-radius:12px;padding:.6rem .75rem;font-size:16px}input:focus{border-color:var(--accent);outline:none}.streak{flex-shrink:0;place-items:center;width:58px;height:70px;display:grid;position:relative}.flame{transform-origin:50% 100%;width:100%;height:100%;animation:flicker 2.4s var(--ease) infinite;position:absolute;inset:0}.flame-outer{fill:var(--accent);transition:fill .6s var(--ease)}.flame-inner{fill:var(--surface);opacity:.35;transform-origin:50% 100%;animation:flicker-inner 1.6s var(--ease) infinite}.streak-num{color:var(--bg);margin-top:26px;font-size:1.15rem;font-weight:700;position:relative}.streak-cold .flame-outer{fill:var(--line)}.streak-cold .flame{animation:none}.streak-cold .streak-num{color:var(--text-2)}@keyframes flicker{0%,to{transform:scale(1)rotate(0)}30%{transform:scale(.97,1.04)rotate(-2deg)}60%{transform:scale(1.02,.98)rotate(1.5deg)}}@keyframes flicker-inner{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-1px)scale(1.06,.96)}}.heatmap{flex-direction:column;gap:.6rem;display:flex}.heat-row{grid-template-columns:52px minmax(0,1fr);align-items:center;gap:.5rem;min-width:0;display:grid}.heat-tiles{gap:6px;min-width:0;display:grid}.heat-tile{aspect-ratio:1;border:1px solid var(--line);background:color-mix(in srgb, var(--progress) calc(var(--fill) * 100%), var(--surface-2));min-width:0;min-height:0;color:var(--text);border-radius:10px;padding:0;font-size:.8rem;font-weight:500}.heat-tile.future{color:var(--text-2);background:0 0;border-style:dashed}.heat-tile.current{box-shadow:0 0 0 2px var(--bg), 0 0 0 3px var(--accent)}.heat-tile.active{border-color:var(--text)}.week{flex-direction:column;gap:.9rem;display:flex}.week-nav{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.week-title{text-align:center;flex-direction:column;align-items:center;display:flex}.week-title strong{font-size:1.05rem}.day-strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.day-chip{color:var(--text-2);background:0 0;border:1px solid #0000;border-radius:12px;flex-direction:column;align-items:center;gap:2px;min-width:0;min-height:58px;padding:.45rem 0;display:flex}.day-chip .day-num{color:var(--text);font-size:1rem;font-weight:600}.day-chip .day-label{font-size:.75rem}.day-chip.today{border-color:var(--line)}.day-chip.selected{background:var(--surface-2);border-color:var(--accent)}.overall{flex-direction:column;gap:.4rem;margin-top:1rem;display:flex}.overall-head{justify-content:space-between;align-items:baseline;display:flex}.bar{background:var(--surface-2);border-radius:999px;height:6px;overflow:hidden}.bar-fill{background:var(--accent);height:100%;transition:width .4s var(--ease);border-radius:999px}.week-goals{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.week-goal{flex-direction:column;gap:.75rem;display:flex}.goal-row-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem .75rem;display:flex}.goal-name{align-items:center;gap:.5rem;font-weight:600;display:inline-flex}.summary{color:var(--text-2);white-space:nowrap;font-size:.85rem}.summary.ok,.status.ok{color:var(--accent)}.days{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.day{background:var(--surface-2);color:var(--text-2);border:1px solid var(--line);border-radius:10px;min-width:0;min-height:44px;font-size:.8rem}.day.on{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 50%, transparent);color:var(--accent);animation:pop .35s var(--ease);font-weight:600}.value-form{flex-direction:column;gap:.25rem;display:flex}.value-field{flex-direction:column;gap:.35rem;display:flex}.value-row{grid-template-columns:minmax(0,1fr) auto;gap:.5rem;display:grid}.training-list{flex-direction:column;gap:.75rem;margin-top:1rem;display:flex}.training-list .value-saved{flex-wrap:wrap}.training-list .value-text{min-width:0}.value-saved{background:var(--accent-soft);animation:pop .4s var(--ease);border-radius:12px;align-items:center;gap:.6rem;padding:.55rem .8rem;display:flex}.value-saved .value-text{font-weight:600}.value-saved .link{margin-left:auto}.check{background:var(--accent);width:22px;height:22px;color:var(--bg);border-radius:50%;place-items:center;font-size:.8rem;font-weight:700;display:inline-grid}@keyframes pop{0%{opacity:.4;transform:scale(.94)}60%{opacity:1;transform:scale(1.03)}to{transform:scale(1)}}.goal-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.9rem;display:grid}.goal-box{flex-direction:column;gap:.6rem;display:flex}.goal-box-head{align-items:center;gap:.5rem;display:flex}.target{font-size:.85rem}.big{letter-spacing:-.02em;font-size:2rem;font-weight:600;line-height:1.1}.big .muted{letter-spacing:0;font-size:1rem;font-weight:400}.status{color:var(--text-2);font-size:.85rem}.note{color:var(--text-2);font-size:.8rem}.goal-box button{align-self:flex-start}.chart-caption{margin:.5rem 0 .25rem}.chart{position:relative}.chart-svg{width:100%;height:auto;display:block;overflow:visible}.chart-svg .grid{stroke:var(--line);stroke-width:1px}.chart-svg .axis{fill:var(--text-2);font-size:13px}.chart-svg .target-line{stroke:var(--accent);stroke-width:2px;stroke-dasharray:4 4;opacity:.85}.chart-svg .target-label{fill:var(--accent);font-size:13px;font-weight:600}.chart-svg .area{fill:var(--accent);opacity:.08}.chart-svg .line{fill:none;stroke:var(--accent);stroke-width:1.5px;stroke-linejoin:round;stroke-linecap:round}.chart-svg .point{fill:var(--accent);stroke:var(--surface);stroke-width:1.5px;transition:r .15s var(--ease)}.chart-svg .daily{fill:var(--accent);opacity:.5}.chart-svg .daily-line{fill:none;stroke:var(--accent);stroke-width:1px;stroke-dasharray:3 3;opacity:.45}.chart-svg .hit{fill:#0000;cursor:pointer}.chart-svg .end-label{fill:var(--text);font-size:11px;font-weight:600}.countdown{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.75rem;display:flex}.countdown-main{letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:600}.ring-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.9rem;display:grid}.ring-card{align-items:center;gap:1.1rem;display:flex}.ring-text{flex-direction:column;gap:.35rem;min-width:0;display:flex}.ring-text h3{font-size:1.05rem}.ring{flex-shrink:0;width:112px;height:112px;position:relative}.ring-svg{width:100%;height:100%;overflow:visible;transform:rotate(-90deg)}.ring-track{fill:none;stroke:var(--surface-2);stroke-width:8px}.ring-progress{fill:none;stroke:var(--accent);stroke-width:8px;stroke-linecap:round;animation:ring-in 1.1s var(--ease) both}@keyframes ring-in{0%{stroke-dashoffset:var(--c)}to{stroke-dashoffset:var(--off)}}.ring-center{text-align:center;flex-direction:column;justify-content:center;align-items:center;line-height:1.1;display:flex;position:absolute;inset:0}.ring-center strong{font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:600}.ring-center span{color:var(--text-2);margin-top:2px;font-size:.7rem}.report-summary{cursor:pointer;justify-content:space-between;align-items:center;list-style:none;display:flex}.report-summary::-webkit-details-marker{display:none}.report-body{flex-direction:column;gap:.9rem;margin-top:.9rem;display:flex}.report-block{border-top:1px solid var(--line);flex-direction:column;gap:.3rem;padding-top:.75rem;display:flex}.report-head{text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);font-size:.8rem}.report-line{font-size:.95rem}.report-line strong{font-variant-numeric:tabular-nums}.plan-check{flex-direction:column;gap:.25rem;margin-bottom:.75rem;display:flex}.milestones{flex-direction:column;gap:.9rem;display:flex}.milestone-group{flex-direction:column;gap:.5rem;display:flex}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.6rem;display:grid}.badge{color:var(--text-2);align-items:flex-start;gap:.7rem;padding:.85rem 1rem;display:flex}.badge h3{color:var(--text-2);font-size:.95rem;font-weight:500}.badge p{margin-top:.15rem}.badge-mark{border:1px dashed var(--line);width:26px;height:26px;color:var(--bg);border-radius:50%;flex-shrink:0;place-items:center;font-weight:700;display:inline-grid}.badge.achieved{color:var(--text);border-color:color-mix(in srgb, var(--accent) 35%, transparent);background:linear-gradient(160deg, var(--accent-soft), var(--surface) 70%)}.badge.achieved h3{color:var(--text)}.badge.achieved .badge-mark{background:var(--accent);border-style:solid;border-color:var(--accent)}.settings-hub{flex-direction:column;gap:.45rem;display:flex}.settings-group-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);padding:0 .25rem;font-size:.8rem}.settings-list{padding:0;overflow:hidden}.settings-row{border:none;border-top:1px solid var(--line);width:100%;color:var(--text);text-align:left;background:0 0;border-radius:0;justify-content:space-between;align-items:center;gap:.75rem;min-height:52px;padding:.9rem 1rem;font-size:1rem;display:flex}.settings-row:first-child{border-top:none}.settings-row:hover{background:var(--surface-2)}.settings-row.danger{color:var(--crit);justify-content:flex-start}.chevron{color:var(--text-2);font-size:1.3rem;line-height:1}.sub-head{flex-direction:column;align-items:flex-start;gap:.4rem}.back-btn{color:var(--accent);background:0 0;border:none;min-height:36px;padding:.25rem 0;font-size:.95rem}.head-actions{gap:.5rem;display:flex}.page-head--center{grid-template-columns:1fr auto 1fr;align-items:center;display:grid}.head-streak{justify-self:center}.page-head--center .head-actions{justify-self:end}.icon-btn{border:1px solid var(--line);width:40px;height:40px;color:var(--accent);background:0 0;border-radius:12px;place-items:center;padding:0;display:grid}.icon-btn.active{background:var(--accent-soft);border-color:var(--accent)}.btn-icon{width:20px;height:20px}.icon-ring{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.abs-card{position:relative}.trash-btn{background:var(--crit);border:none;border-radius:10px;place-items:center;width:36px;height:36px;padding:0;display:grid;position:absolute;top:.9rem;right:.9rem}.trash-icon{width:18px;height:18px}.trash-btn .trash-icon .icon-ring{stroke:#0b0c0d}.abs-form{flex-direction:column;gap:.75rem;display:flex}.icon-choice{flex-wrap:wrap;gap:.5rem;display:flex}.icon-option{border:1px solid var(--line);background:0 0;border-radius:14px;place-items:center;width:52px;height:52px;padding:0;display:grid}.icon-option.active{border-color:var(--accent);background:var(--accent-soft)}.icon-option-svg{width:28px;height:28px;color:var(--accent)}.fact-form{border-top:1px solid var(--line);flex-direction:column;gap:.6rem;padding-top:.75rem;display:flex}select{font:inherit;background:var(--surface-2);color:var(--text);border:1px solid var(--line);border-radius:12px;width:100%;min-height:44px;padding:.6rem .75rem;font-size:16px}.abs-card.editing{border-color:color-mix(in srgb, var(--accent) 45%, transparent)}.edit-field{font-size:inherit;color:inherit;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.25rem;display:flex}.edit-field input{width:auto;min-height:36px;padding:.3rem .6rem;font-size:15px}.stat-edit{background:var(--surface-2);border:1px dashed color-mix(in srgb, var(--accent) 55%, transparent);text-align:left;color:var(--text);border-radius:12px;min-height:44px;padding:.6rem .75rem}.stat-edit .stat-value{color:var(--accent)}.dialog-backdrop{z-index:60;background:#0000008c;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.dialog{flex-direction:column;gap:.75rem;width:100%;max-width:420px;max-height:90svh;display:flex;overflow-y:auto}.dialog-head{flex-direction:column;gap:.2rem;display:flex}.check-btn{background:var(--accent);border:none;border-radius:12px;place-items:center;width:44px;height:44px;padding:0;display:grid}.check-btn .btn-icon{color:#0b0c0d}.check-btn .icon-ring{stroke:#0b0c0d}.icon-ring-thick{stroke-width:2.6px}.form-actions{justify-content:flex-end;align-items:center;gap:.75rem;display:flex}.onboarding{flex-direction:column;gap:1rem;max-width:560px;margin:0 auto;padding:2rem 1rem 3rem;display:flex}.profile-form{flex-direction:column;gap:.9rem;display:flex}.profile-field{color:var(--text-2);flex-direction:column;gap:.4rem;font-size:.85rem;display:flex}.profile-field .field-label{margin:0}.profile-field .segmented{width:100%;margin-top:0;display:flex}.profile-field .seg{text-align:center;white-space:nowrap;flex:1;padding:.5rem .1rem;font-size:clamp(.68rem,3vw,.85rem)}.birth-row{grid-template-columns:1fr 1.6fr 1fr;gap:.75rem;display:grid}.row-start{justify-content:flex-start;margin-top:.5rem;display:flex}.goal-card-options{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;padding-bottom:.75rem}.goal-card-list{margin-top:1.25rem}.goal-card-name{font-size:.95rem}.goal-card-toggle,.goal-card-seg{min-height:32px;padding:.3rem .75rem;font-size:.8rem}.goal-card-options .link{font-size:.8rem}.settings-below{margin-top:1rem}button.ghost.compact{min-height:36px;padding:.4rem .8rem;font-size:.9rem}.birthday-greeting{z-index:60;background:var(--surface);border:1px solid var(--line);text-align:center;cursor:pointer;border-radius:14px;max-width:calc(100% - 2rem);margin:0;padding:.75rem 1.1rem;font-weight:600;position:fixed;top:1.25rem;left:50%;transform:translate(-50%)}.goals-editor{flex-direction:column;gap:.9rem;display:flex}.goal-editor-row{border-top:1px solid var(--line);align-items:flex-start;gap:.75rem;padding:.75rem 0;display:flex}.goal-editor-row:first-child{border-top:none}.goal-editor-body{flex-direction:column;flex:1;gap:.6rem;min-width:0;display:flex}.check-box{border:1px solid var(--line);width:28px;height:28px;color:var(--bg);background:0 0;border-radius:8px;flex-shrink:0;padding:0;font-weight:700}.check-box.checked{background:var(--accent);border-color:var(--accent)}.general-ring{justify-content:center;display:flex}.abs-card{flex-direction:column;gap:1rem;display:flex}.abs-head{align-items:center;gap:.9rem;display:flex}.abs-head .section-title{margin-bottom:0}.abs-icon{width:44px;height:44px;color:var(--accent);flex-shrink:0}.icon-fill{fill:var(--accent)}.icon-soft{opacity:.45}.icon-stroke{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linecap:round;opacity:.6}.icon-label{fill:var(--surface);opacity:.6}.timer{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.timer-days{align-items:baseline;gap:.5rem;display:flex}.timer-days-value{letter-spacing:-.03em;color:var(--accent);font-variant-numeric:tabular-nums;font-size:3.6rem;font-weight:700;line-height:1}.timer-days-label{color:var(--accent);opacity:.85;font-size:1rem;font-weight:500}.timer-rest{color:var(--text-2);font-variant-numeric:tabular-nums;flex-direction:column;gap:2px;font-size:1rem;font-weight:400;display:flex}.timer-rest small{margin-left:2px;font-size:.8rem}.habit-line{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem .75rem;width:100%;display:flex}.icon-faint{opacity:.45}.icon-smile{fill:none;stroke:var(--surface);stroke-width:1.8px;stroke-linecap:round}.timer-unit{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;flex-direction:column;align-items:center;padding:.75rem .25rem;display:flex}.timer-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:2rem;font-weight:600;line-height:1.1}.timer-label{color:var(--text-2);font-size:.75rem}.stat-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.stat{flex-direction:column;gap:.2rem;display:flex}.stat-value{font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:600}.nav-item{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (width<=899px){.nav-desktop-only{display:none}}@media (width>=900px){.nav-desktop-only{margin-top:auto}}.settings-gear{fill:currentColor;width:20px;height:20px;display:block}@media (width>=900px){.settings-btn{display:none}}:root{--cycle-period:#f06a80;--cycle-period-soft:#f06a8038;--cycle-on-period:#0b0c0d;--cycle-fertile:#b4a2f0;--cycle-fertile-soft:#b4a2f033}[data-theme=light]{--cycle-period:#d9435c;--cycle-period-soft:#d9435c29;--cycle-on-period:#fff;--cycle-fertile:#7c66d6;--cycle-fertile-soft:#7c66d629}.settings-toggle{cursor:default}.settings-toggle-text{flex-direction:column;gap:.1rem;min-width:0;display:flex}.cycle-head{flex-direction:column;gap:.4rem;display:flex}.cycle-big{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:0;font-size:1.9rem;font-weight:600}.cycle-cal{flex-direction:column;gap:.5rem;display:flex}.cycle-cal-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.cycle-month{color:var(--text);font:inherit;background:0 0;border:none;min-height:44px;padding:0 .5rem;font-weight:600}.cycle-cal-head .icon-btn{color:var(--text)}.cycle-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px 0;display:grid}.cycle-weekday{text-align:center;color:var(--text-2);padding-bottom:.2rem;font-size:.72rem}.cycle-cell{height:36px;min-height:36px;color:var(--text);font-variant-numeric:tabular-nums;background:0 0;border:none;border-radius:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:0;font-size:.85rem;display:flex}button.cycle-cell{cursor:pointer}.cycle-cell--empty{visibility:hidden}.cycle-cell.edge-l{border-top-left-radius:18px;border-bottom-left-radius:18px}.cycle-cell.edge-r{border-top-right-radius:18px;border-bottom-right-radius:18px}.cycle-cell.is-window{background:color-mix(in srgb, var(--cycle-period) 12%, transparent)}.cycle-cell.is-fertile{background:var(--cycle-fertile-soft)}.cycle-cell.is-expected{box-shadow:inset 0 0 0 1px var(--cycle-period)}.cycle-cell.is-period{background:color-mix(in srgb, var(--cycle-period) 30%, transparent);font-weight:500}.cycle-cell.is-today{box-shadow:inset 0 0 0 1px var(--text-2)}.cycle-dot{border-radius:50%;width:5px;height:5px;display:block}.cycle-dot--ovulation{background:var(--cycle-fertile)}.cycle-dot--note{background:var(--text-2)}.cycle-legend{color:var(--text-2);flex-wrap:wrap;gap:.4rem .9rem;margin:0;padding:0;font-size:.8rem;list-style:none;display:flex}.cycle-legend li{align-items:center;gap:.35rem;display:flex}.cycle-swatch{border:1px solid #0000;border-radius:4px;width:12px;height:12px;display:inline-block}.cycle-swatch--period{background:color-mix(in srgb, var(--cycle-period) 30%, transparent)}.cycle-swatch--expected{border-color:var(--cycle-period)}.cycle-swatch--window{background:color-mix(in srgb, var(--cycle-period) 12%, transparent)}.cycle-swatch--fertile{background:var(--cycle-fertile-soft)}.cycle-sheet-backdrop{place-items:end center}.cycle-sheet{max-width:520px;padding-bottom:calc(1rem + env(safe-area-inset-bottom));border-bottom-right-radius:0;border-bottom-left-radius:0}.cycle-sheet-actions{flex-wrap:wrap;gap:.5rem;display:flex}.cycle-sheet-actions>button{flex:1}@media (width>=900px){.cycle-sheet-backdrop{place-items:center}.cycle-sheet{border-bottom-left-radius:var(--radius);border-bottom-right-radius:var(--radius)}}textarea{font:inherit;background:var(--surface-2);color:var(--text);border:1px solid var(--line);resize:vertical;border-radius:12px;width:100%;padding:.6rem .75rem;font-size:16px}textarea:focus{border-color:var(--accent);outline:none}.strip{color:var(--text-2);flex-wrap:wrap;align-items:center;gap:.4rem 1.25rem;padding:.75rem 1rem;font-size:.9rem;display:flex}.strip strong{color:var(--text);font-variant-numeric:tabular-nums}.abstinence-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.9rem;display:grid}.abstinence{flex-direction:column;gap:.4rem;display:flex}.abstinence h3{color:var(--text-2);font-size:.9rem;font-weight:500}.row-end{justify-content:flex-end;margin-top:.5rem;display:flex}.action-row{justify-content:flex-start;margin:1rem 0 .5rem;display:flex}.export-details{margin-top:1.25rem}.export-details summary{cursor:pointer;padding:.25rem 0}.export-list{margin-top:.5rem}.export-list .row{align-items:center}.export-list .row>span{flex-direction:column;gap:.15rem;min-width:0;display:flex}.reset-intro{color:var(--text-2);margin-bottom:.75rem;font-size:1rem}.chart-label{color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;font-size:.85rem;line-height:1;position:absolute;transform:translate(-100%,-50%)}.chart-label.target{color:var(--accent);font-weight:600;transform:translate(-100%,-120%)}.chart-axis{height:18px;margin-top:6px;position:relative}.x-label{color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.85rem;line-height:1;position:absolute;top:0;transform:translate(-50%)}.week-row{height:30px;margin-top:14px;position:relative}.week-slot{height:100%;position:absolute;top:0}.week-slot:before{content:"";background:var(--text-2);opacity:.5;width:1px;height:14px;position:absolute;top:-14px;left:0}.week-pill{background:var(--surface-2);border:1px solid var(--line);width:100%;height:100%;color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap;cursor:default;border-radius:8px;place-items:center;font-size:.85rem;font-weight:600;display:grid;overflow:hidden}.week-pill.empty{color:var(--text-2);font-weight:500}.week-tip{z-index:2;background:var(--surface-2);border:1px solid var(--line);white-space:nowrap;pointer-events:none;border-radius:10px;flex-direction:column;gap:2px;padding:.4rem .6rem;font-size:.8rem;display:flex;position:absolute;top:calc(100% + 6px);left:0}.all-time{justify-content:flex-end;margin-top:.25rem;display:flex}.history-dot{fill:var(--surface);stroke:var(--accent);stroke-width:1.2px;opacity:.75}.history-line{fill:none;stroke:var(--accent);stroke-width:1px;stroke-dasharray:3 3;opacity:.4}.trend-line{fill:none;stroke:var(--accent);stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round}.chart-tip{background:var(--surface-2);border:1px solid var(--line);white-space:nowrap;pointer-events:none;border-radius:10px;flex-direction:column;align-items:center;padding:.35rem .6rem;font-size:.8rem;display:flex;position:absolute;transform:translate(-50%,-135%)}.chart-table{margin-top:.5rem;font-size:.85rem}.chart-table summary{cursor:pointer;padding:.25rem 0}.chart-table table{border-collapse:collapse;width:100%;margin-top:.4rem}.chart-table td{border-top:1px solid var(--line);padding:.3rem 0}.chart-table td:last-child{text-align:right}.login{flex-direction:column;gap:1.25rem;max-width:380px;margin:12vh auto 0;padding:0 1rem;display:flex}.login-form{flex-direction:column;gap:1rem;display:flex}label{color:var(--text-2);flex-direction:column;gap:.4rem;font-size:.85rem;display:flex}.metric-list{flex-direction:column;gap:1.1rem;display:flex}.metric{flex-direction:column;gap:.5rem;min-width:0;display:flex}.metric-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem .75rem;display:flex}.water-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.water-actions .link{margin-left:auto}.metric .value-row{margin-top:.1rem}.heatmap{grid-template-columns:repeat(16,minmax(0,1fr));gap:4px;display:grid}.heat-tile{aspect-ratio:auto;font-variant-numeric:tabular-nums;border-radius:7px;height:24px;min-height:24px;font-size:.68rem}.heat-tile.phase-start{margin-left:6px}.week-hero{flex-direction:column;gap:.75rem;display:flex}.week-hero-top{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.week-hero-top .section-title{margin:0}.week-boxes{height:26px;margin-top:.4rem;position:relative}.week-box{background:var(--surface-2);border:1px solid var(--line);height:26px;color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:8px;place-items:center;font-size:12px;font-weight:600;display:grid;position:absolute;top:0;overflow:hidden}.week-box.empty{color:var(--text-2);font-weight:500}.hero-pct{letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--accent);animation:pop .5s var(--ease);font-size:2.6rem;font-weight:600;line-height:1}.hero-pct span{margin-left:2px;font-size:1.1rem;font-weight:500}.hero-items{color:var(--text-2);flex-wrap:wrap;gap:.4rem 1.25rem;font-size:.9rem;display:flex}.hero-items strong{color:var(--text);font-variant-numeric:tabular-nums}.bar-lg{height:12px;position:relative}.bar-lg .bar-fill{transform-origin:0;animation:fill-in 1s var(--ease) both;position:relative;overflow:hidden}.bar-lg .bar-fill:after{content:"";animation:shimmer 2.4s var(--ease) 1s infinite;background:linear-gradient(90deg,#0000,#ffffff59,#0000);position:absolute;inset:0;transform:translate(-100%)}@keyframes fill-in{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes shimmer{0%{transform:translate(-100%)}60%,to{transform:translate(100%)}}.water-bar{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.6rem;display:grid}.water-track{min-width:0}.arrow{border:1px solid var(--line);width:32px;height:32px;color:var(--text-2);background:0 0;border-radius:999px;padding:0;font-size:1.1rem;line-height:1}.arrow:not(:disabled):hover{color:var(--accent);border-color:var(--accent)}.saved-row{background:var(--accent-soft);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);animation:pop .45s var(--ease);border-radius:12px;flex-wrap:wrap;align-items:center;gap:.6rem;padding:.7rem .85rem;display:flex}.saved-row .saved-text{font-variant-numeric:tabular-nums;font-weight:600}.saved-row .link{margin-left:auto}.illness-toggle{justify-content:flex-start;display:flex}.section-head{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.sick-tag{color:var(--crit);border:1px solid var(--crit);border-radius:999px;padding:.15rem .6rem;font-size:.75rem;font-weight:600}.row-stack{flex-direction:column;align-items:stretch}.choices{flex-wrap:wrap;gap:.5rem;display:flex}.outcome{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.chip.muted-chip{color:var(--text-2);border-style:dashed}.extras{border-top:1px solid var(--line);flex-direction:column;gap:.5rem;margin-top:.75rem;padding-top:.75rem;display:flex}.day.planned{border-color:var(--accent);color:var(--text)}.day.reduced{background:var(--surface-2);color:var(--text-2);border-style:dashed;text-decoration:line-through}.day.sick{box-shadow:inset 0 0 0 1px var(--crit)}.day-chip.sick .day-num{color:var(--crit)}.illness-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.illness-form{flex-direction:column;gap:.75rem;margin:.75rem 0;display:flex}.illness-actions{justify-content:flex-end;align-items:center;gap:.75rem;display:flex}.week-targets{margin-top:.75rem;overflow-x:auto}.week-targets table{border-collapse:collapse;width:100%;min-width:320px}.week-targets th,.week-targets td{text-align:center;padding:.3rem .25rem;font-size:.85rem;font-weight:500}.week-targets th[scope=row]{text-align:left;color:var(--text-2)}.week-input{text-align:center;font-variant-numeric:tabular-nums;width:48px;min-height:36px;padding:.3rem}.evening-done{justify-content:space-between;align-items:center;gap:1rem;display:flex}.mood{grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem;display:grid}.mood-btn{background:var(--surface-2);color:var(--text-2);border:1px solid var(--line);border-radius:12px;min-height:52px;font-size:1.1rem;font-weight:600}.mood-btn.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.tag-chips{flex-wrap:wrap;gap:.5rem;display:flex}.chip{color:var(--text-2);border:1px solid var(--line);background:0 0;border-radius:999px;min-height:38px;padding:.4rem .85rem;font-size:.9rem}.chip.on{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 45%, transparent);color:var(--accent)}.evening{flex-direction:column;gap:1rem;display:flex}.reminder-text{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:flex}.reminder-text .muted{overflow-wrap:anywhere}.reminder-device{margin:.75rem 0 1rem}.morning-block>.field-label{color:var(--text);margin:0;font-size:1.05rem;font-weight:600}.morning{flex-direction:column;gap:1rem;display:flex}.morning-head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.morning-done{justify-content:space-between;align-items:center;gap:1rem;display:flex}.morning-done-title{align-items:center;gap:.6rem;padding-left:.35rem;display:flex}.morning-done p{margin-top:.6rem}.morning-block{border-top:1px solid var(--line);flex-direction:column;gap:.6rem;padding-top:.9rem;display:flex}.morning-block:first-of-type{border-top:none;padding-top:0}.stepper{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.5rem;display:grid}.stepper input{text-align:center;font-variant-numeric:tabular-nums;font-size:1.4rem;font-weight:600}.time-row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.time-row-3{grid-template-columns:1fr 1fr 1fr}.duration-input .field-label{margin-bottom:.9rem}.duration-input .time-row label{gap:.2rem;font-size:.75rem}.time-row input{font-variant-numeric:tabular-nums}button.full{width:100%}.confetti{z-index:50;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti-piece{opacity:.9;border-radius:3px;animation-name:confetti-fall;animation-timing-function:cubic-bezier(.25,.46,.45,.94);animation-fill-mode:forwards;position:absolute;top:-20px}@keyframes confetti-fall{0%{opacity:1;transform:translate(0,0)rotate(0)}to{transform:translate3d(var(--drift), 105vh, 0) rotate(var(--spin));opacity:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.confetti{display:none}}.check-row{border-top:1px solid var(--line);align-items:flex-start;gap:.75rem;min-height:44px;padding:.6rem 0;display:flex}.check-row input{width:20px;height:20px;accent-color:var(--accent);flex-shrink:0;margin:.1rem 0 0}.check-row>span{flex-direction:column;gap:.15rem;display:flex}.cycle-stat-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}@media (width<=480px){.cycle-stat-grid{grid-template-columns:1fr}}.cycle-stat{flex-direction:column;gap:.2rem;display:flex}.cycle-stat-value{margin:.1rem 0;font-size:1.6rem;font-weight:600}.cycle-bars{padding:.5rem 0 .25rem;overflow-x:auto}.cycle-bars-track{justify-content:flex-end;align-items:flex-end;gap:6px;width:max-content;min-width:100%;height:120px;display:flex;position:relative}.cycle-bars-median{border-top:1px dashed var(--text);opacity:.5;pointer-events:none;position:absolute;left:0;right:0}.cycle-bars-item{align-items:flex-end;height:100%;display:flex;position:relative}.cycle-bars-mark{background:var(--text);opacity:.4;width:1px;position:absolute;top:0;bottom:0;left:-4px}.cycle-bar{background:0 0;border:none;align-items:flex-end;width:14px;height:100%;padding:0;display:flex}.cycle-bar-fill{background:var(--accent);width:100%;min-height:2px;transition:height .3s var(--ease);border-radius:4px 4px 0 0;display:block}.cycle-bar.is-unusual .cycle-bar-fill{background:color-mix(in srgb, var(--text) 30%, transparent)}.cycle-bar.is-picked .cycle-bar-fill{outline:2px solid var(--text);outline-offset:1px}.cycle-bars-detail{min-height:1.2em;margin:.25rem 0}.cycle-phase-row{border-top:1px solid var(--line);grid-template-columns:5rem 1fr;align-items:baseline;gap:.25rem .75rem;padding:.6rem 0;display:grid}.cycle-phase-row .muted.small,.cycle-phase-row>span:last-child:not(.stat-value){grid-column:2}.cycle-sec-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.cycle-hist{margin:0;padding:0;list-style:none}.cycle-hist-item{border-top:1px solid var(--line);align-items:center;min-height:44px;display:flex;position:relative}.cycle-hist-main{text-align:left;color:inherit;font:inherit;background:0 0;border:none;flex:1;padding:.6rem 0}.cycle-hist-item.is-grey .cycle-hist-main{color:color-mix(in srgb, var(--text) 50%, transparent)}.cycle-hist-item.is-editing .cycle-hist-main{padding-right:3rem}.cycle-hist-trash{top:50%;transform:translateY(-50%)}.cycle-contra-current{padding:.25rem 0 .5rem}.cycle-contra-name{margin:0;font-size:1.2rem;font-weight:600}.cycle-today-main{text-align:left;width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;padding:0;display:block}.cycle-today-status{margin-top:.25rem;font-size:1.2rem;font-weight:600;display:block}.cycle-today-status.is-plain{font-size:inherit;font-weight:400}.chart-svg .cycle-band{fill:var(--cycle-period-soft)}.cycle-cell.is-expected{box-shadow:none;border-top:1px dashed var(--cycle-period);border-bottom:1px dashed var(--cycle-period)}.cycle-cell.is-expected.edge-l{border-left:1px dashed var(--cycle-period)}.cycle-cell.is-expected.edge-r{border-right:1px dashed var(--cycle-period)}.cycle-cell.is-ovulation .cycle-day-num{background:var(--cycle-fertile);min-width:26px;height:26px;color:var(--bg);text-align:center;border-radius:999px;padding:0 4px;font-weight:600;line-height:26px;display:inline-block}.cycle-ovu-swatch{background:var(--cycle-fertile);border-radius:50%;width:12px;height:12px;display:inline-block}.cycle-swatch--expected{border:1px dashed var(--cycle-period);background:0 0}.cycle-stats{flex-direction:column;gap:.75rem;display:flex}.cycle-bars-wrap{align-items:flex-start;gap:.5rem;display:flex}.cycle-bars{flex:1;min-width:0}.cycle-bars-axis{width:2rem;height:120px;color:var(--text-2);font-variant-numeric:tabular-nums;flex:none;font-size:.7rem;position:relative}.cycle-bars-axis span{line-height:1;position:absolute;right:0;transform:translateY(50%)}.cycle-bars-months{justify-content:flex-end;gap:6px;width:max-content;min-width:100%;height:1.2rem;margin-top:.25rem;display:flex}.cycle-bars-month{width:14px;color:var(--text-2);white-space:nowrap;flex:none;font-size:.7rem}.cycle-hist-main{flex-wrap:wrap;align-items:center;gap:.35rem .75rem;display:flex}.cycle-hist-range{border:1px solid var(--line);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:8px;padding:.25rem .6rem;font-size:.9rem;display:inline-block}.cycle-hist-facts{font-size:.8rem}.cycle-legend-btn{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:.35rem;padding:0;display:flex}.cycle-explain{margin:0}.cycle-cell .cycle-dot--note{width:7px;height:7px}.cycle-bars-median-label{color:var(--text-2);font-variant-numeric:tabular-nums;pointer-events:none;font-size:.7rem;position:absolute;right:0;transform:translateY(-100%)}.cycle-bars-dates{color:var(--text-2);font-variant-numeric:tabular-nums;justify-content:space-between;margin-left:2.5rem;font-size:.7rem;display:flex}.cycle-cell.is-today{border-radius:18px}.cycle-sec-head{min-height:40px;margin-bottom:.5rem}.cycle-bars{min-width:0;overflow:visible}.cycle-bars-track{justify-content:space-between;gap:0;width:100%;min-width:0}.cycle-bars-item{flex:1 1 0;justify-content:center;min-width:0}.cycle-bar{box-sizing:border-box;width:100%;padding:0 2px}.cycle-bars-dates{margin-left:0}.historic-actions{flex-direction:column;align-items:flex-start;gap:.6rem;margin:.9rem 0;display:flex}.historic-basis{flex-wrap:wrap;gap:.5rem;margin:.6rem 0;display:flex}.historic-section{margin-top:.5rem}.historic-row{border-bottom:1px solid var(--line,#7f7f7f33);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem .75rem;padding:.55rem 0;display:flex}.historic-row-actions{gap:.4rem;display:flex}.historic-window{max-height:85vh;overflow-y:auto}.historic-tabs{border-bottom:1px solid var(--line);gap:.25rem;margin:.6rem 0 .2rem;display:flex}.historic-tab{color:var(--text-2);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;margin-bottom:-1px;padding:.55rem .5rem;font-weight:500}.historic-tab.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.historic-basis .chip.active{background:var(--accent-soft);color:var(--accent);border-color:color-mix(in srgb, var(--accent) 40%, transparent);font-weight:600}.historic-window{width:min(640px,100vw - 2rem);max-width:640px}.historic-tab{white-space:nowrap}
