:root{font-family:'Avenir Next',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#241f1b;background:#f3eee6;font-synthesis:none;text-rendering:optimizeLegibility;--ink:#241f1b;--muted:#81766c;--rose:#762938;--rose-dark:#4c1723;--line:#e5dcd0;--paper:#fffdf9;--blush:#eee3dc;--sage:#e7e5d9;--plum:#e6dedc;--shadow:0 8px 28px #33272012}
*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(ellipse at 85% 0%,#e9dfd3 0,transparent 32%),#f3eee6}.app-shell{max-width:610px;margin:0 auto;min-height:100dvh;padding:0 20px calc(88px + env(safe-area-inset-bottom))}.topbar{height:65px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e4dbd0}.brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--ink);font-family:'Bodoni 72','Didot',Georgia,serif;font-weight:800;font-size:18px;letter-spacing:-.04em}.brand-mark{color:var(--rose);font-size:22px}.privacy-pill{display:flex;align-items:center;gap:6px;padding:7px 10px;border-radius:22px;background:#f0ebe8;color:#716b68;font-size:10px}.privacy-pill span{width:7px;height:7px;border-radius:50%;background:#82a487}.view{display:none;padding-top:27px;animation:fadein .2s ease}.view.active{display:block}@keyframes fadein{from{opacity:.5;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}h1,h2,p{margin-top:0}.welcome-row{display:flex;justify-content:space-between;align-items:center;margin:4px 0 20px}.eyebrow{font-size:9px;letter-spacing:.15em;font-weight:700;color:#8c7b6c;margin:0 0 7px}.welcome-row h1,.page-intro h1{font-family:'Bodoni 72','Didot',Georgia,serif;font-size:27px;line-height:1.18;letter-spacing:-.05em;margin:0;color:#2a211d}.subtle{font-size:12px;line-height:1.55;color:#756b63;margin:7px 0 0}.avatar{width:43px;height:43px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(ellipse at 20% 35%,#241813 0 2px,transparent 3px),radial-gradient(ellipse at 70% 65%,#6c452b 0 3px,transparent 4px),#d5c3a9;background-size:18px 17px;color:#4c1723;font-size:23px}.motivation-card{display:flex;position:relative;overflow:hidden;min-height:150px;border-radius:19px;margin:0 0 25px;padding:21px;color:#fff;background:linear-gradient(115deg,#171412,#3b1b20 60%,#692638);box-shadow:var(--shadow)}.motivation-copy{position:relative;z-index:2;max-width:69%;align-self:center}.motivation-card .eyebrow{color:#d9bd91}.motivation-card h2{font-family:'Bodoni 72','Didot',Georgia,serif;font-size:17px;line-height:1.38;letter-spacing:-.02em;margin:0 0 10px;font-weight:700}.quote-label{font-size:9px;color:#d8c5a5}.motivation-art{position:absolute;right:-1px;bottom:0;width:41%;height:100%;opacity:.95;display:grid;place-items:center}.motivation-card:before{content:'';position:absolute;right:-4px;top:0;width:48%;height:100%;background:radial-gradient(ellipse at 10px 9px,#d4b77e 0 2px,transparent 3px),radial-gradient(ellipse at 25px 19px,#120f0c 0 4px,transparent 5px),radial-gradient(ellipse at 38px 7px,#8e6241 0 3px,transparent 4px);background-size:44px 35px;opacity:.16;mask-image:linear-gradient(90deg,transparent,#000)}.motivation-art svg{width:100%;height:100%}.section-heading,.panel-title{display:flex;justify-content:space-between;align-items:center;margin:0 1px 12px}.section-heading .eyebrow,.panel-title .eyebrow{margin-bottom:4px}.section-heading h2,.panel-title h2{font-family:'Bodoni 72','Didot',Georgia,serif;font-size:16px;letter-spacing:-.03em;margin:0;color:#383432}.text-button{border:0;background:none;color:var(--rose-dark);font:600 10px 'Avenir Next',sans-serif;padding:7px 0;cursor:pointer}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.stat-card{min-height:111px;padding:14px 12px 12px;border-radius:15px;background:var(--paper);box-shadow:var(--shadow);border:1px solid #f1eae7}.stat-weight{background:#eee2dd}.stat-fat{background:#e9e6db}.stat-steps{background:#e8e2dd}.stat-label{display:block;color:#766d6a;font-size:10px;font-weight:600;margin-bottom:12px}.stat-card>div{white-space:nowrap;color:#817975;font-size:10px}.stat-card strong{font:800 24px 'Bodoni 72','Didot',Georgia,serif;letter-spacing:-.06em;color:#403936}.stat-card small{display:block;color:#948b87;font-size:8px;line-height:1.35;margin-top:5px}.panel-soft{background:#fff;border:1px solid #f0e9e6;border-radius:16px;box-shadow:var(--shadow)}.cycle-summary{display:flex;align-items:center;gap:12px;padding:15px;margin-top:13px}.cycle-icon{width:39px;height:39px;flex:none;border-radius:13px;background:#eee4d8;display:grid;place-items:center;font-size:21px;color:#a36b8c}.cycle-copy{min-width:0;flex:1}.cycle-copy .eyebrow{margin-bottom:4px}.cycle-copy h2{font:700 13px 'Bodoni 72','Didot',Georgia,serif;margin:0 0 3px}.cycle-copy p:last-child{margin:0;color:#89817f;font-size:9px;line-height:1.4}.round-arrow{flex:none;border:0;background:#f6eff2;color:#9d6173;border-radius:50%;width:30px;height:30px;font-size:22px;line-height:1;cursor:pointer}.week-heading{margin-top:23px}.week-card{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;padding:11px 8px;background:#fff;border:1px solid #f0e9e6;border-radius:16px;box-shadow:var(--shadow)}.week-day{min-width:0;text-align:center;padding:7px 1px;border-radius:11px;cursor:pointer;background:transparent;border:0;color:#8b817e;font:500 9px 'Avenir Next',sans-serif}.week-day .day-date{display:block;font:700 13px 'Bodoni 72','Didot',Georgia,serif;color:#47403d;margin:5px 0 7px}.day-dot{display:block;margin:auto;width:7px;height:7px;border-radius:50%;background:#e9e4e0}.week-day.complete .day-dot{background:#82a487}.week-day.partial .day-dot{background:#d4aa66}.week-day.today .day-date{color:var(--rose-dark)}.week-day.today{background:#eee2d4}.privacy-note{font-size:9px;line-height:1.5;color:#a29a96;text-align:center;margin:12px 10px 0}.page-intro{margin:2px 1px 20px}.page-intro h1{font-size:28px}.panel{background:var(--paper);border:1px solid #eee8e5;border-radius:17px;padding:18px;box-shadow:var(--shadow);margin-bottom:13px}.panel-title{margin:0 0 15px}.title-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:#f2e6e8;color:var(--rose);font-size:20px}.measurement-form,.profile-fields{display:flex;flex-direction:column}.measurement-form label,.profile-fields label,.checkin-date-row label{font-size:10px;font-weight:600;color:#6f6663;margin:0 0 6px}.measurement-form label span,.profile-fields label span{font-weight:400;color:#a59b97;margin-left:4px}.measurement-form input,.profile-fields input,.checkin-date-row input{height:42px;border:1px solid #ede7e4;background:#fdfbfa;color:var(--ink);border-radius:10px;padding:0 11px;font:13px 'Avenir Next',sans-serif;margin:0 0 13px;outline:none}.measurement-form input:focus,.profile-fields input:focus,.checkin-date-row input:focus{border-color:#c78a96;box-shadow:0 0 0 3px #f5e6e9}.form-columns{display:grid;grid-template-columns:1fr 1fr;gap:11px}.form-columns>div{display:flex;flex-direction:column}.primary-button,.secondary-button{min-height:43px;border:0;border-radius:11px;background:var(--rose-dark);color:white;font:700 12px 'Avenir Next',sans-serif;cursor:pointer}.primary-button{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:3px}.primary-button span{font-size:17px}.secondary-button{background:#f4e9eb;color:var(--rose-dark);padding:0 15px}.full-button{width:100%;margin-top:13px}.form-message{min-height:13px;margin:7px 0 0;text-align:center;color:#66856e;font-size:10px}.chart-panel{padding-bottom:13px}.period-label{font-size:9px;color:#8e8581;background:#f7f3f1;padding:7px 9px;border-radius:8px}.chart-wrap{height:215px;position:relative;margin-top:2px}.chart-wrap svg{width:100%;height:100%;overflow:visible}.chart-grid{stroke:#eee9e6;stroke-width:1;stroke-dasharray:3 5}.chart-label{font:10px 'Avenir Next',sans-serif;fill:#a49b97}.chart-line{fill:none;stroke:#762938;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.chart-area{fill:url(#areaFill)}.chart-point{fill:#fff;stroke:#762938;stroke-width:3}.empty-chart{position:absolute;inset:0;display:grid;place-content:center;text-align:center;color:#9f9692;font-size:10px;line-height:1.6}.history-list,.period-list{margin-top:4px}.history-row,.period-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:12px 0;border-top:1px solid #f2eeec}.history-date{font-size:10px;color:#77706d}.history-values{font-size:12px;font-weight:700;color:#403936;text-align:right}.history-values small{font-size:9px;font-weight:400;color:#918985}.delete-button{border:0;background:transparent;color:#a29a96;font-size:9px;padding:6px;cursor:pointer}.history-empty{font-size:10px;color:#a09894;margin:0;padding:8px 0}.checkin-panel{padding:16px}.checkin-date-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.checkin-date-row label{margin:0}.checkin-date-row input{width:147px;height:35px;font-size:11px;margin:0}.progress-row{display:flex;align-items:center;gap:10px;margin:19px 0 14px;color:#948985;font-size:9px}.progress-track{flex:1;height:4px;border-radius:5px;background:#f1e9e7;overflow:hidden}.progress-track span{display:block;width:0;height:100%;background:#ba7784;border-radius:5px;transition:width .2s}.question-area{min-height:237px}.question-area h2{font:700 19px/1.3 'Bodoni 72','Didot',Georgia,serif;letter-spacing:-.04em;margin:0 0 6px}.question-help{font-size:10px;color:#978d89;line-height:1.5;margin:0 0 14px}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.choice-grid.single-column{grid-template-columns:1fr}.choice-chip{min-height:42px;border:1px solid #eee7e4;background:#fff;border-radius:11px;padding:9px 10px;text-align:left;color:#655c59;font:500 11px 'Avenir Next',sans-serif;cursor:pointer}.choice-chip.selected{border-color:#9c6e4e;background:#eee2d4;color:#4c1723;box-shadow:inset 0 0 0 1px #9c6e4e}.checkin-actions{display:flex;align-items:center;gap:8px;margin-top:11px}.checkin-actions .primary-button{flex:1}.back-button{min-width:72px;height:42px;border:1px solid #eee7e4;border-radius:10px;background:#fff;color:#766d69;font:600 10px 'Avenir Next',sans-serif;cursor:pointer}.defer-button{border:0;background:transparent;color:#9a8f8a;font:500 9px 'Avenir Next',sans-serif;padding:8px 3px;cursor:pointer}.soft-help{font-size:10px;color:#9a918d;line-height:1.55;margin:10px 4px}.cycle-hero{padding:25px 22px 22px;text-align:center;background:linear-gradient(150deg,#e8dfd2,#f2ebe2 58%,#e5d9cc);border-radius:20px;margin-bottom:13px}.cycle-orbit{width:88px;height:88px;border-radius:50%;margin:0 auto 15px;display:grid;place-items:center;border:1px solid #c1a980;background:conic-gradient(#6c2430 0deg 100deg,#e8d8bf 100deg 360deg);position:relative}.cycle-orbit:before{content:'';position:absolute;inset:8px;border-radius:50%;background:#f4ede3}.cycle-orbit span{position:relative;color:#6c2430;font-size:31px}.cycle-hero .eyebrow{color:#7c6452}.cycle-hero h2{font:700 19px 'Bodoni 72','Didot',Georgia,serif;margin:0 0 6px}.cycle-hero>p:last-child{font-size:10px;color:#6f6257;margin:0}.cycle-predictions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.prediction-card{padding:14px 13px}.prediction-icon{display:block;color:#8a6a42;font-size:19px;margin-bottom:10px}.prediction-card .eyebrow{font-size:8px}.prediction-card h2{font:700 13px 'Bodoni 72','Didot',Georgia,serif;margin:0 0 5px}.prediction-card small{display:block;font-size:8px;line-height:1.4;color:#968c8c}.cycle-history{margin-top:13px}.profile-fields .primary-button{margin-top:3px}.privacy-panel>p,.more-later>p:last-child{font-size:10px;line-height:1.55;color:#867d79;margin:0 0 12px}.privacy-icon{color:#8fa18f;font-size:21px}.bottom-nav{position:fixed;z-index:20;left:50%;bottom:0;transform:translateX(-50%);width:min(610px,100%);padding:8px 9px calc(7px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,1fr);background:#fffefdf2;backdrop-filter:blur(14px);border-top:1px solid #eee8e5}.nav-item{display:flex;flex-direction:column;align-items:center;gap:3px;border:0;background:transparent;color:#a39a96;font:500 8px 'Avenir Next',sans-serif;padding:3px 0;cursor:pointer}.nav-icon{font-size:19px;line-height:21px}.nav-item.active{color:var(--rose-dark);font-weight:700}.nav-item.active .nav-icon{color:var(--rose)}
@media(min-width:611px){.app-shell{padding-right:28px;padding-left:28px}.bottom-nav{border:1px solid #eee8e5;border-bottom:0;border-radius:16px 16px 0 0}}

.success-state{text-align:center;padding:38px 8px}.success-state>span{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#e8f0e8;color:#63866b;font-size:24px;margin:0 auto 14px}.success-state h2{margin:0 0 7px}.success-state p{font-size:11px;color:#8f8885;margin:0}.checkin-dialog{width:min(390px,calc(100% - 36px));border:1px solid #eee5e2;border-radius:22px;padding:25px 22px 19px;background:#fffdfc;color:var(--ink);box-shadow:0 20px 80px #33232240;text-align:center}.checkin-dialog::backdrop{background:#31262966;backdrop-filter:blur(3px)}.dialog-symbol{display:grid;place-items:center;width:44px;height:44px;border-radius:15px;background:#f4e7e9;color:var(--rose);font-size:23px;margin:0 auto 13px}.checkin-dialog .eyebrow{margin-bottom:6px}.checkin-dialog h2{font:700 19px 'Bodoni 72','Didot',Georgia,serif;letter-spacing:-.03em;margin:0 0 8px}.checkin-dialog>p:not(.eyebrow){font-size:11px;line-height:1.55;color:#8f8885;margin:0 auto 16px;max-width:270px}.checkin-dialog .primary-button{width:100%}.checkin-dialog .defer-button{margin-top:7px}

.week-day.selected{box-shadow:inset 0 0 0 1px #ead8dc}.week-detail{margin-top:8px;padding:15px 13px 11px;border:1px solid #f0e8e5;border-radius:15px;background:#fff;box-shadow:var(--shadow)}.week-detail-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 1px 11px}.week-detail-heading .eyebrow{font-size:8px;margin-bottom:3px}.week-detail-heading h3{font:700 12px 'Bodoni 72','Didot',Georgia,serif;color:#433b38;margin:0}.checkin-status{flex:none;padding:6px 8px;border-radius:20px;background:#f5f0ed;color:#918682;font-size:8px}.checkin-status.done{background:#e6eadc;color:#4d6848}.checkin-status.in-progress{background:#f1e7d5;color:#80623c}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.summary-chip{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:5px;padding:7px 8px;border-radius:9px;background:#f7f5f3}.summary-chip.good{background:#e8ecdf}.summary-chip.warn{background:#efe6d6}.summary-chip.bad{background:#eee0dd}.summary-label{flex:none;color:#8c827e;font-size:8px}.summary-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#59504c;font-size:8px;font-weight:700;text-align:right}.summary-chip.good .summary-value{color:#5d7e64}.summary-chip.warn .summary-value{color:#997847}.summary-chip.bad .summary-value{color:#a15e62}.week-edit-button{display:block;margin:9px auto 0;border:0;background:transparent;color:var(--rose-dark);font:600 9px 'Avenir Next',sans-serif;padding:7px 9px;cursor:pointer}.primary-button:disabled{opacity:.48;cursor:not-allowed}

/* Soso's richer off-duty / old-money direction */
:root{font-family:'Avenir Next',Avenir,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#241d19;background:#f0e7da;--ink:#241d19;--muted:#76685b;--rose:#702132;--rose-dark:#45141f;--line:#d9c8b2;--paper:#fffaf2;--blush:#eadbd0;--sage:#e4e0d2;--plum:#dfd4d0;--shadow:0 9px 24px #34251b1a}
body{background-color:#f0e7da;background-image:radial-gradient(ellipse 15px 10px at 18px 18px,transparent 43%,rgba(91,62,39,.15) 47% 57%,transparent 62%),radial-gradient(ellipse 4px 3px at 44px 33px,rgba(86,57,36,.13) 20%,transparent 70%),radial-gradient(ellipse 5px 3px at 8px 36px,rgba(123,86,53,.12) 25%,transparent 75%);background-size:62px 48px;background-position:0 0,0 0,0 0}
.app-shell{position:relative}.topbar{gap:8px;border-color:#d9c8b2}.brand{font-family:'Bodoni 72','Didot',Georgia,serif;font-size:15px;letter-spacing:-.035em;line-height:1.05;max-width:220px}.brand>span:last-child{max-width:165px}.brand-mark{flex:none;display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:radial-gradient(ellipse at 20% 35%,#241813 0 2px,transparent 3px),radial-gradient(ellipse at 70% 65%,#6c452b 0 3px,transparent 4px),#d5c3a9;background-size:18px 17px;color:#45141f;font:700 13px Georgia,serif;box-shadow:0 0 0 2px #fffaf2,0 0 0 3px #b99a70}.privacy-pill{background:#e8ddcd;color:#53463a;border:1px solid #d9c8b2;font-size:9px}.privacy-pill span{background:#6b7850}.eyebrow{color:#826c54;font-size:8px;letter-spacing:.19em}.welcome-row h1,.page-intro h1,.section-heading h2,.panel-title h2,.cycle-copy h2,.motivation-card h2,.cycle-hero h2,.prediction-card h2,.question-area h2,.checkin-dialog h2,.week-detail-heading h3,.brand,.stat-card strong{font-family:'Bodoni 72','Didot',Georgia,serif!important;letter-spacing:-.025em}.welcome-row h1,.page-intro h1{font-size:30px}.subtle{color:#766a5e}.motivation-card{min-height:168px;border:1px solid #8e6e4d;border-radius:13px;box-shadow:0 10px 25px #26191226,inset 0 0 0 3px #ffffff18}.motivation-card:before{opacity:.24}.motivation-card .eyebrow{color:#d3ba91}.motivation-card h2{font-size:19px;font-weight:600;line-height:1.35}.quote-label{font-family:'Apple Chancery','Snell Roundhand',cursive;font-size:11px;color:#e0cba9}.avatar{box-shadow:0 0 0 2px #fffaf2,0 0 0 3px #b99a70}.section-heading{margin-left:2px;margin-right:2px}.section-heading h2,.panel-title h2{font-size:18px}.stat-card,.panel,.week-card,.week-detail,.cycle-summary{border-color:#ddcbb2;box-shadow:0 7px 18px #3c2a1d16,inset 0 0 0 2px #ffffffa3}.stat-card{position:relative;overflow:hidden;min-height:122px;border-radius:12px;padding:15px 13px}.stat-card:after{content:'✦';position:absolute;right:10px;bottom:7px;color:#9d7b4f;font-size:12px;opacity:.63}.stat-weight{background:#eadbd3}.stat-fat{background:#e9e4d7}.stat-steps{background:#e5dfda}.stat-label{color:#625347;font-size:10px;letter-spacing:.025em}.stat-card strong{font-size:27px;color:#2d211c}.stat-card small{color:#786b5f;font-size:8px}.cycle-summary{background:#fffaf2}.cycle-icon{background:#eaded3;color:#702132;border:1px solid #d7c4ab}.cycle-copy .eyebrow{color:#826c54}.week-card{background:#fffaf2;padding:12px 8px}.week-day{color:#6d6055}.week-day .day-date{color:#30241e}.week-day.today{background:#eee1d4}.week-day.selected{box-shadow:inset 0 0 0 1px #a78962}.week-day.complete .day-dot{background:#73815a}.week-day.partial .day-dot{background:#bb8b4e}.week-detail{background:#fffaf2}.summary-chip{border:1px solid #ece1d3}.summary-chip.good{background:#e9ecdf}.summary-chip.warn{background:#f1e8d8}.summary-chip.bad{background:#eddfdc}.summary-chip.good .summary-value{color:#536642}.summary-chip.warn .summary-value{color:#815f34}.summary-chip.bad .summary-value{color:#762938}.panel{background:#fffaf2;border-radius:13px}.primary-button{background:#45141f;border-radius:8px;box-shadow:0 3px 0 #2f0d16}.primary-button:hover{background:#682033}.secondary-button{background:#eaded1;color:#45141f;border:1px solid #d6c2a8}.text-button,.week-edit-button{color:#702132}.measurement-form input,.profile-fields input,.checkin-date-row input,.choice-chip{background:#fffdf8;border-color:#dfd1bf}.choice-chip{border-radius:8px;color:#51443a}.choice-chip.selected{border-color:#8e5d46;background:#eee0d3;color:#45141f;box-shadow:inset 0 0 0 1px #8e5d46}.chart-line,.chart-point{stroke:#702132}.chart-grid{stroke:#e6d9c9}.chart-label{fill:#8b7c6e}.chart-point{fill:#fffaf2}.cycle-hero{background:linear-gradient(145deg,#e7d8ca,#f2e9dc 58%,#dfd0bf);border:1px solid #d1bda3;box-shadow:0 8px 20px #3c2a1d16}.cycle-orbit{border-color:#a88d69;background:conic-gradient(#702132 0deg 100deg,#e5d7c5 100deg 360deg)}.cycle-orbit:before{background:#f1e8dc}.cycle-orbit span,.prediction-icon{color:#702132}.cycle-hero .eyebrow{color:#725b42}.cycle-hero>p:last-child{color:#65574b}.prediction-card{background:#fffaf2}.bottom-nav{background:#261c19f5;border-color:#4d3c30;box-shadow:0 -5px 20px #21171426}.nav-item{color:#c9bba7}.nav-item.active,.nav-item.active .nav-icon{color:#d7b77e}.page-footer{color:#7f7062}.soft-help,.privacy-note{color:#766a5e}.history-empty{color:#817468}.checkin-dialog{background:#fffaf2;border-color:#cdb89b}.checkin-dialog::backdrop{background:#2119168c}.dialog-symbol{background:#eadbd0;color:#702132}.checkin-status.done{background:#e7ebde;color:#536642}.checkin-status.in-progress{background:#f1e6d4;color:#815f34}.checkin-status{background:#eee5da;color:#756658}.week-edit-button{font-size:10px}
@media(max-width:380px){.brand{font-size:13px;max-width:185px}.brand>span:last-child{max-width:135px}.privacy-pill{font-size:8px;padding:6px 7px}.welcome-row h1,.page-intro h1{font-size:26px}.stat-card strong{font-size:23px}}

body{background-color:#f0e7da;background-image:url('/assets/leopard-pattern.svg');background-size:190px 152px;background-position:0 0;background-repeat:repeat}

/* Clear, simple typography and a softly muted real-fur photo texture. */
:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body{background-color:#eee5d8;background-image:linear-gradient(rgba(240,232,220,.72),rgba(240,232,220,.72)),url('/assets/leopard-fur-original.jpg');background-size:cover;background-position:left center;background-repeat:no-repeat;background-attachment:fixed}
h1,h2,h3,.brand,.stat-card strong,.question-area h2,.checkin-dialog h2,.week-detail-heading h3,.section-heading h2,.panel-title h2,.cycle-copy h2,.cycle-hero h2,.prediction-card h2,.motivation-card h2,.quote-label,.welcome-row h1,.page-intro h1{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;letter-spacing:normal}
button,input,select,.text-button,.choice-chip,.back-button,.defer-button,.week-edit-button,.nav-item{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.quote-label{font-style:normal}
body{background-image:linear-gradient(rgba(246,239,231,.54),rgba(246,239,231,.54)),url('/assets/leopard-background.jpeg');background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed}
.brand-mark{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#4b3030;color:#fffaf4;box-shadow:none;font:700 12px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.avatar,.motivation-art{display:none}
.measurement-form>div:not(.form-columns){width:100%}
#steps-input{display:block;width:100%;min-height:48px}
.checkin-chart-panel{overflow:hidden}.chart-select-label{display:block;margin:0 0 6px;color:#665b53;font-size:11px;font-weight:600}.chart-select{display:block;width:100%;min-height:42px;padding:0 11px;border:1px solid #dfd1bf;border-radius:9px;background:#fffdf8;color:#302822;font-size:12px}.checkin-timeline{display:flex;gap:8px;overflow-x:auto;padding:12px 1px 5px;scroll-snap-type:x proximity}.timeline-item{flex:0 0 min(128px,42vw);min-height:84px;display:flex;flex-direction:column;justify-content:space-between;gap:8px;padding:9px;border:1px solid #e4d9ca;border-radius:10px;background:#f0ebe3;scroll-snap-align:start}.timeline-item.good{background:#e8ecdf;border-color:#d7dfcc}.timeline-item.warn{background:#f1e8d8;border-color:#e6d7bd}.timeline-item.bad{background:#eddfdc;border-color:#e5d0cd}.timeline-date{font-size:9px;color:#75685d}.timeline-value{font-size:10px;line-height:1.35;color:#40352f;overflow-wrap:anywhere}
.cycle-orbit{width:min(230px,68vw);height:min(230px,68vw);margin:4px auto 19px;border:0;background:conic-gradient(#b77782 0 var(--menstruation-stop,17.85%),#c7d0ba var(--menstruation-stop,17.85%) var(--follicular-stop,46.42%),#b78b52 var(--follicular-stop,46.42%) var(--ovulation-stop,50%),#d6c6b7 var(--ovulation-stop,50%) 100%);box-shadow:0 7px 20px #44342614}.cycle-orbit:before{inset:15px;background:#fffaf2}.cycle-orbit-center{position:absolute;inset:15px;z-index:1;display:flex;flex-direction:column;justify-content:center;align-items:center;border-radius:50%;background:#fffaf2}.cycle-orbit-center strong{font-size:38px;line-height:1;color:#392b27}.cycle-orbit-center span{position:static!important;margin-top:6px;color:#75685d!important;font-size:10px!important}.cycle-orbit .cycle-marker{position:absolute;left:50%;top:50%;z-index:2;width:16px;height:16px;border:3px solid white;border-radius:50%;background:#2f2521;box-shadow:0 1px 7px #21171455;transform:translate(-50%,-50%) rotate(var(--cycle-angle,0deg)) translateY(calc(-1 * (min(230px,68vw)/2 - 5px)));transition:transform .25s ease}.cycle-orbit .cycle-marker[hidden]{display:none}.cycle-phase-panel{padding-bottom:14px}.phase-legend{display:grid;grid-template-columns:1fr 1fr;gap:13px 9px}.phase-legend>div{display:flex;align-items:flex-start;gap:8px}.phase-swatch{width:12px;height:12px;flex:none;margin-top:2px;border-radius:50%}.phase-swatch.menstruation{background:#b77782}.phase-swatch.follicular{background:#c7d0ba}.phase-swatch.ovulation{background:#b78b52}.phase-swatch.luteal{background:#d6c6b7}.phase-legend strong,.phase-legend small{display:block}.phase-legend strong{font-size:10px;color:#40352f}.phase-legend small{margin-top:2px;font-size:9px;color:#786c60}.phase-current{margin-top:17px;padding:12px;border-radius:10px;background:#f3eee6}.phase-current .eyebrow{margin-bottom:5px}.phase-current p:last-child{margin:0;color:#564a40;font-size:11px;line-height:1.5}.cycle-end-note{margin:11px 2px 0;color:#75685d;font-size:10px;line-height:1.45}
.cycle-orbit .cycle-marker{left:calc(50% - 8px);top:7px;transform-origin:8px calc(min(115px,34vw) - 7px);transform:rotate(var(--cycle-angle,0deg))}
.summary-chip.middle{background:#e0eaf2}.summary-chip.middle .summary-value{color:#35617e}.summary-chip.bad{background:#eddfdc}.summary-chip.bad .summary-value{color:#762938}.summary-chip.good{background:#e5eddf}.summary-chip.good .summary-value{color:#4e714d}
.week-detail-heading h3,.week-day,.week-day .day-date{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;letter-spacing:normal}
.question-heading{display:flex;align-items:center;gap:10px;margin-bottom:12px}.question-heading h2{margin:0}.question-icon{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:12px;background:#e0eaf2;font-size:18px}.question-icon.good,.choice-symbol.good{background:#e5eddf}.question-icon.bad,.choice-symbol.bad{background:#eddfdc}.question-icon.middle,.choice-symbol.middle{background:#e0eaf2}.choice-chip{display:flex;align-items:center;gap:8px}.choice-symbol{width:27px;height:27px;flex:none;display:grid;place-items:center;border-radius:50%;font-size:14px}.choice-chip.tone-good{border-color:#d8e2d0}.choice-chip.tone-middle{border-color:#d5e1ea}.choice-chip.tone-bad{border-color:#e7d6d3}.choice-chip.selected{box-shadow:inset 0 0 0 1px currentColor}
.number-stepper{position:relative;display:flex;width:100%;height:42px;margin:0 0 13px}.number-stepper input{width:100%;min-width:0;height:42px;flex:1;margin:0;padding:0 40px 0 11px;appearance:textfield}.number-stepper input::-webkit-inner-spin-button,.number-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.stepper-arrows{position:absolute;right:4px;top:4px;bottom:4px;width:28px;display:flex;flex-direction:column;gap:2px}.stepper-arrows button{flex:1;min-height:0;padding:0;border:0;border-radius:4px;background:#eee6de;color:#5c4b40;font-size:8px;line-height:1;cursor:pointer}.stepper-arrows button:active{background:#d9c8b2}
.month-navigation{display:flex;align-items:center;justify-content:space-between;margin:13px 0 8px}.month-navigation strong{font-size:12px;color:#3d332d;text-transform:capitalize}.month-navigation button{width:30px;height:30px;border:1px solid #e1d4c5;border-radius:8px;background:#f5eee5;color:#45372e;font-size:19px;line-height:1}.month-navigation button:disabled{opacity:.35}.heatmap-grid{display:grid;align-items:center;gap:3px;overflow-x:auto;padding:3px 0 6px}.heatmap-corner,.heatmap-week-label,.heatmap-weekday{display:grid;place-items:center;color:#82766b;font-size:8px}.heatmap-weekday{font-weight:700}.heatmap-week-label{font-size:7px;white-space:nowrap}.heatmap-day{width:100%;height:36px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;border-radius:6px;background:transparent;padding:1px;cursor:pointer}.heatmap-day:hover,.heatmap-day:focus-visible{background:#f3ece3;outline:1px solid #c6aa8e}.heatmap-date{font-size:8px;line-height:1;color:#64584f}.heatmap-dot{width:12px;height:12px;border-radius:50%;background:#d4d0ca}.heatmap-day.good .heatmap-dot{background:#5c8b63}.heatmap-day.middle .heatmap-dot{background:#5791b6}.heatmap-day.bad .heatmap-dot{background:#b74e4e}.heatmap-day.empty .heatmap-dot{background:#d4d0ca}
.cycle-orbit{width:min(260px,74vw);height:min(260px,74vw)}.cycle-orbit:before,.cycle-orbit-center{inset:34px}.cycle-orbit-center strong{font-size:34px}.cycle-phase-tags{position:absolute;inset:0;z-index:2;pointer-events:none}.cycle-phase-tags .phase-tag{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;white-space:nowrap;padding:4px 6px;border:1px solid #ffffffc9;border-radius:12px;background:#fffaf0e8;color:#41352e;font-size:8px;font-weight:700;line-height:1.1;box-shadow:0 1px 4px #3c2a1d1b;cursor:pointer}.phase-tag.menstruation{border-color:#c98c94;background:#fff5f5}.phase-tag.follicular{border-color:#9cad8f;background:#f5f8ef}.phase-tag.ovulation{border-color:#c4a06b;background:#fff8e8}.phase-tag.luteal{border-color:#b9a99b;background:#f7f2ed}.cycle-orbit .cycle-marker{z-index:3;top:3px;transform-origin:8px calc(min(130px,37vw) - 3px)}
.phase-dialog{width:min(390px,calc(100% - 36px));border:1px solid #ddcbb2;border-radius:18px;padding:24px;background:#fffaf2;color:#332820;box-shadow:0 18px 60px #21171440}.phase-dialog::backdrop{background:#21191688;backdrop-filter:blur(2px)}.phase-dialog .eyebrow{margin:0 0 7px}.phase-dialog h2{margin:0 0 11px;font-size:19px}.phase-dialog p:not(.eyebrow){font-size:12px;line-height:1.6;color:#5c5046}.phase-dialog .primary-button{width:100%;margin-top:14px}
*,*::before,*::after{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important}
.heatmap-grid{width:100%;min-width:0;gap:2px}.heatmap-week-label{font-size:6px}.heatmap-legend{display:flex;flex-wrap:wrap;gap:7px 12px;margin-top:8px}.heatmap-legend span{display:flex;align-items:center;gap:4px;color:#766a5e;font-size:8px}.heatmap-legend i{width:9px;height:9px;border-radius:50%;background:#d4d0ca}.heatmap-legend i.good{background:#5c8b63}.heatmap-legend i.middle{background:#5791b6}.heatmap-legend i.bad{background:#b74e4e}

/* Current interaction refinements */
.brand{gap:8px;font-size:12px;letter-spacing:0}.brand-mark{width:27px;height:27px}.brand-name{display:flex;flex-direction:column;line-height:1.1;gap:2px}.brand-name span:first-child{font-size:11px;font-weight:600}.brand-name span:last-child{font-size:14px;font-weight:750}
.motivation-card{min-height:178px;padding:18px 15px}.motivation-copy{max-width:66%;}.motivation-avatar{position:absolute;right:11px;bottom:10px;width:29%;height:calc(100% - 20px);object-fit:cover;object-position:center;border-radius:12px;border:2px solid #fffaf2;background:#fff;z-index:1}.motivation-card:before{right:0;width:37%;opacity:.08}.motivation-card h2{font-size:16px;line-height:1.32}
.question-heading{align-items:flex-start}.question-icon{width:38px;height:38px;border-radius:11px;border:1px solid #b4a28e;background:#352a27!important;color:#fff9ef;font-size:22px;font-weight:700;box-shadow:0 2px 0 #bfa98f}.choice-chip{min-width:0;overflow:hidden;display:grid;grid-template-columns:27px minmax(0,1fr);align-items:center;gap:8px;padding:8px 10px}.choice-chip>span:last-child{min-width:0;overflow-wrap:anywhere;line-height:1.2}.choice-symbol{overflow:hidden;max-width:27px;line-height:1;white-space:nowrap;font-size:14px}
.number-stepper{height:48px;transition:height .18s ease}.number-stepper input{height:48px;padding-right:12px;font-size:17px;text-align:center;transition:height .18s ease}.stepper-arrows{visibility:hidden;opacity:0;pointer-events:none;position:absolute;inset:auto 0 0;width:100%;height:38px;display:flex;flex-direction:row;gap:8px;transition:opacity .15s ease}.stepper-arrows button{flex:1;min-height:38px;border-radius:9px;font-size:17px;background:#eee4d8}.stepper-arrows .stepper-close{background:#e3eadc;color:#3d6140;font-size:19px;font-weight:700}.number-stepper.expanded{height:94px}.number-stepper.expanded input{height:49px;border-color:#a28460;box-shadow:0 0 0 2px #a2846026}.number-stepper.expanded .stepper-arrows{visibility:visible;opacity:1;pointer-events:auto}
.heatmap-grid{column-gap:1px;row-gap:1px}.heatmap-weekday,.heatmap-week-label{font-size:8px}.heatmap-day{height:32px;gap:1px;padding:0}.heatmap-dot{width:9px;height:9px}.heatmap-date{font-size:7px}
.cycle-phase-tags .phase-tag{width:64px;min-height:30px;padding:5px 4px;white-space:normal;text-align:center;border-width:1px;font-size:8px;line-height:1.05}.phase-tag.menstruation{--phase-color:#b77782;color:#693b43;border-color:#b77782;background:#fff5f5}.phase-tag.follicular{--phase-color:#9cac8d;color:#44513a;border-color:#9cac8d;background:#f5f8ef}.phase-tag.ovulation{--phase-color:#b78b52;color:#735421;border-color:#b78b52;background:#fff8e8}.phase-tag.luteal{--phase-color:#ab9888;color:#625345;border-color:#ab9888;background:#f7f2ed}.cycle-phase-panel{padding:14px}.phase-current{margin:0;padding:14px;background:#f3eee6}.cycle-phase-panel .phase-current .eyebrow{margin-bottom:8px}
@media(max-width:380px){.brand{max-width:185px}.brand-name span:first-child{font-size:10px}.brand-name span:last-child{font-size:13px}.motivation-card{min-height:166px}.motivation-copy{max-width:64%}.motivation-avatar{width:30%;right:8px}}

.cycle-pointers{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:2;pointer-events:none}.cycle-phase-tags{z-index:3}.cycle-orbit .cycle-marker{z-index:4}

/* Layout requested for cycle callouts and check-in measurements */
.motivation-avatar{width:auto;height:calc(100% - 12px);max-width:34%;right:12px;bottom:6px;object-fit:contain;object-position:center bottom;border:0;border-radius:0;background:transparent;filter:drop-shadow(0 7px 6px rgba(0,0,0,.72));}
.cycle-hero{overflow:visible;padding:18px 12px 24px}.cycle-orbit{width:min(180px,50vw);height:min(180px,50vw);margin:46px auto 38px;overflow:visible}.cycle-orbit:before,.cycle-orbit-center{inset:24px}.cycle-orbit .cycle-marker{left:calc(50% - 8px);top:calc(50% - 8px);transform-origin:8px 8px;transform:rotate(var(--cycle-angle,0deg)) translateY(calc(-1 * (min(180px,50vw)/2 - 5px)))}.cycle-phase-tags .phase-tag{width:68px;min-height:32px;padding:5px 4px;font-size:8px}.cycle-pointers line{stroke-width:1.1}
.cycle-orbit{margin-top:24px}
.cycle-orbit{margin-top:14px}
.cycle-orbit{margin-top:10px}
.motivation-card{overflow:visible;z-index:1}.motivation-card:before{border-radius:inherit;pointer-events:none}.motivation-avatar{right:38px;bottom:4px;height:calc(100% + 24px);max-width:none;width:auto;z-index:3;filter:drop-shadow(0 8px 9px rgba(10,3,5,.78))}

/* Dashboard corrections: reliable chart empty state, readable values and neutral skip choice. */
.empty-chart[hidden],.chart-tooltip[hidden]{display:none}
.chart-axis-label{font:12px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;fill:#75685d}
.chart-label{font:12px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;fill:#75685d}
.chart-point{pointer-events:none}
.chart-hit-target{fill:transparent;stroke:transparent;cursor:pointer;pointer-events:all}
.chart-hit-target:focus{outline:none;stroke:#702132;stroke-width:2;stroke-dasharray:2 2}
.chart-tooltip{position:absolute;z-index:4;transform:translate(-50%,-100%);max-width:calc(100% - 12px);padding:7px 9px;border:1px solid #d7c5ad;border-radius:8px;background:#30231f;color:#fffaf2;font-size:11px;line-height:1.25;white-space:nowrap;box-shadow:0 3px 12px #21171430;pointer-events:none}
.measurement-form input::placeholder{color:#a99d90;opacity:1}
.choice-chip.tone-skipped,.choice-symbol.tone-skipped{background:#eeece9;border-color:#d9d5d1;color:#68635f}
.choice-chip.tone-skipped{grid-column:1/-1;max-width:100%;}
.choice-chip.tone-skipped.selected{background:#e3e0dc;border-color:#9b9690;color:#514c48;box-shadow:inset 0 0 0 1px #9b9690}
.summary-chip.skipped{background:#e9e7e4}.summary-chip.skipped .summary-value{color:#6d6863}
.heatmap-day.skipped .heatmap-dot,.heatmap-legend i.skipped{background:#8e8984}
.backup-restore{margin-top:8px}

/* Local encrypted vault lock screen */
body.vault-locked{overflow:hidden}
.vault-screen{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;overflow:auto;padding:24px 18px;background:linear-gradient(150deg,#f1e5d7f5,#e8d9c9f7),url('/assets/leopard-fur-original.jpg') center/cover}
.vault-screen[hidden]{display:none}
.vault-card{width:min(440px,100%);padding:28px 23px 22px;border:1px solid #d7c2a9;border-radius:20px;background:#fffaf2f5;box-shadow:0 18px 55px #2d211c36}
.vault-mark{display:grid;place-items:center;width:44px;height:44px;margin-bottom:20px;border:1px solid #aa8c68;border-radius:50%;background:#eadbd0;color:#45141f;font:700 20px 'Bodoni 72','Didot',Georgia,serif}
.vault-card .eyebrow{margin:0 0 8px}
.vault-card h1{margin:0;color:#2d211c;font:700 25px 'Avenir Next',Avenir,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;letter-spacing:-.03em}
.vault-intro{margin:10px 0 20px;color:#706358;font-size:13px;line-height:1.55}
.vault-card form{display:grid;gap:9px}
.vault-card form[hidden]{display:none}
.vault-card label{margin-top:4px;color:#54483d;font-size:12px;font-weight:700}
.vault-card input{width:100%;min-height:48px;padding:12px;border:1px solid #d6c4ad;border-radius:11px;background:#fff;color:#241d19;font:inherit;font-size:16px}
.vault-card input:focus{outline:3px solid #8b33464a;border-color:#702132}
.vault-card form small{margin:-3px 0 4px;color:#82756a;font-size:11px;line-height:1.4}
.vault-card .primary-button,.vault-card .secondary-button{width:100%;min-height:48px;margin-top:10px}
.vault-card .passkey-unlock[hidden]{display:none}
.vault-card .passkey-unlock{margin-top:12px}
#passkey-status{margin:8px 0 12px;color:#74675b;font-size:11px;line-height:1.5}
.vault-footnote{margin:16px 0 0;color:#86796c;font-size:10px;line-height:1.5}
.vault-message{min-height:18px;margin:10px 0 0;color:#8c3940}
.privacy-pill>span:first-child{flex:none;width:7px;height:7px;border-radius:50%;background:#6b7850}
.privacy-pill>span:last-child{width:auto;height:auto;border-radius:0;background:transparent;color:inherit;font-size:inherit}
.vault-recovery-toggle{appearance:none;display:block;width:100%;margin-top:17px;padding:10px;border:0!important;border-radius:0;background:transparent!important;color:#702132;font:600 11px 'Avenir Next',Avenir,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;text-align:center;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.vault-recovery-toggle[hidden]{display:none}
body.vault-locked .app-shell{visibility:hidden;pointer-events:none}
.lock-button{flex:none;padding:8px 11px;border:1px solid #c9b293;border-radius:18px;background:#fffaf2;color:#514238;font:600 10px 'Avenir Next',Avenir,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;cursor:pointer}
@media(max-width:380px){.vault-card{padding:23px 18px 19px}.vault-card h1{font-size:22px}.lock-button{padding:7px 8px}}
