*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--bg-primary:#fff9f0;--bg-card:#fff;--bg-soft:#fff4e8;--bg-soft-strong:rgba(255,248,240,.82);--text-primary:#5a4a3a;--text-muted:#6f5f50;--accent-primary:#d4a574;--accent-secondary:#e8c4a8;--accent-strong:#ba8350;--brand-color:#4a3d6a;--header-bg:rgba(255,249,240,.9);--header-border:#ecd9c6;--surface-tint:hsla(0,0%,100%,.88);--surface-elevated:hsla(0,0%,100%,.95);--period-color:#c7756d;--ovulation-color:#f4d58d;--fertile-color:#b8d4c1;--line-soft:#ecd9c6;--shadow-soft:0 10px 24px rgba(174,126,73,.16);--shadow-hover:0 18px 30px rgba(174,126,73,.22);--danger-soft-border:rgba(196,146,74,.38);--danger-soft-bg:rgba(255,247,228,.62);--danger-strong-border:hsla(0,96%,89%,.92);--danger-title:#b91c1c;--chart-grid:rgba(172,136,96,.26);--chart-line:#c4895a;--chart-dot:#b9753e;--bg-glow-1:hsla(26,58%,78%,.44);--bg-glow-2:hsla(31,53%,64%,.24);--bg-stripes:hsla(30,45%,66%,.06)}:root[data-theme=dark]{--bg-primary:#18141f;--bg-card:#241f2f;--bg-soft:#2b2439;--bg-soft-strong:rgba(39,31,52,.86);--text-primary:#efe6df;--text-muted:#cbbfb7;--accent-primary:#d2935c;--accent-secondary:#a87a57;--accent-strong:#f0b57f;--brand-color:#ece3ff;--header-bg:rgba(24,20,31,.9);--header-border:rgba(101,84,126,.65);--surface-tint:rgba(38,31,50,.82);--surface-elevated:rgba(46,38,60,.92);--period-color:#de8f88;--ovulation-color:#d6b062;--fertile-color:#89b39a;--line-soft:rgba(116,96,145,.58);--shadow-soft:0 14px 28px rgba(8,5,12,.45);--shadow-hover:0 20px 36px rgba(6,4,10,.6);--danger-soft-border:rgba(214,168,95,.48);--danger-soft-bg:rgba(67,48,24,.48);--danger-strong-border:hsla(0,56%,64%,.74);--danger-title:#ffb0aa;--chart-grid:rgba(169,146,184,.32);--chart-line:#d29f74;--chart-dot:#e4b385;--bg-glow-1:rgba(141,104,189,.18);--bg-glow-2:hsla(22,67%,66%,.14);--bg-stripes:rgba(138,118,170,.09)}body,html{min-height:100%;background:var(--bg-primary);color:var(--text-primary);font-family:Nunito,Avenir Next,Segoe UI,sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;background-image:radial-gradient(circle at 15% -10%,var(--bg-glow-1),transparent 36%),radial-gradient(circle at 84% 3%,var(--bg-glow-2),transparent 32%),repeating-linear-gradient(-45deg,var(--bg-stripes) 0,var(--bg-stripes) 2px,transparent 2px,transparent 16px);background-attachment:fixed}[x-cloak]{display:none!important}h1,h2,h3,h4{font-family:Quicksand,Avenir Next Rounded,Trebuchet MS,sans-serif;color:var(--text-primary);letter-spacing:.01em}a{color:inherit;text-decoration:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.app-shell{min-height:100vh}.container-main{margin-left:auto;margin-right:auto;width:100%;max-width:72rem;padding-left:1rem;padding-right:1rem}@media (min-width:640px){.container-main{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width:1024px){.container-main{padding-left:2rem;padding-right:2rem}}.paper-header{position:sticky;top:0;z-index:30;border-bottom:1px solid var(--header-border);background:var(--header-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand-mark{border-radius:999px;color:var(--brand-color)}.brand-lockup,.brand-mark{display:inline-flex;align-items:center}.brand-lockup{gap:.52rem}.brand-symbol{width:1.72rem;height:1.72rem;flex:0 0 auto}.brand-wordmark{font-family:Quicksand,Avenir Next Rounded,Trebuchet MS,sans-serif;font-size:1.34rem;font-weight:700;letter-spacing:.048em;color:var(--brand-color);line-height:1}.brand-mark:focus-visible{outline:2px solid rgba(169,137,231,.58);outline-offset:3px}.lang-switch{gap:.2rem;border-radius:999px;background:var(--surface-tint);padding:.2rem}.lang-switch,.theme-toggle{display:inline-flex;border:1px solid var(--line-soft)}.theme-toggle{align-items:center;gap:.42rem;border-radius:999px;background:var(--surface-elevated);color:var(--text-primary);padding:.34rem .7rem;font-size:.72rem;font-weight:700;letter-spacing:.03em;line-height:1.15;transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}.theme-toggle:hover{transform:translateY(-1px);background:hsla(26,58%,78%,.38);border-color:rgba(186,131,80,.35)}.theme-toggle:focus-visible{outline:2px solid rgba(186,131,80,.55);outline-offset:2px}.theme-toggle-icon{font-size:.9rem;line-height:1}.theme-toggle-text{display:block;min-width:0;white-space:nowrap}.lang-link{display:inline-flex;align-items:center;justify-content:center;min-width:2.85rem;border-radius:999px;border:1px solid transparent;background:transparent;padding:.28rem .72rem;font-size:.72rem;line-height:1.25;font-weight:700;letter-spacing:.04em;color:var(--text-muted);-webkit-text-fill-color:currentColor;text-decoration:none;transition:background-color .16s ease,color .16s ease,box-shadow .16s ease,border-color .16s ease}.lang-link:hover{color:var(--accent-strong);background:hsla(26,58%,78%,.38);border-color:rgba(186,131,80,.18)}.lang-link:focus-visible{outline:2px solid rgba(186,131,80,.5);outline-offset:2px}.lang-switch .lang-link-active,.lang-switch .lang-link[aria-current=page]{background:linear-gradient(135deg,#c78f5f,#d8aa80);color:#fff7ed!important;-webkit-text-fill-color:#fff7ed!important;border-color:rgba(132,82,44,.45);text-shadow:0 1px 1px rgba(89,58,32,.32);box-shadow:inset 0 0 0 1px rgba(255,247,237,.12),0 6px 12px rgba(186,131,80,.26)}.menu-toggle{border-radius:999px;border:1px solid var(--line-soft);background:hsla(0,0%,100%,.88);padding:.45rem .85rem;font-size:.8rem}.menu-toggle,.nav-link{font-weight:600;color:var(--text-primary)}.nav-link{border-radius:999px;padding:.52rem 1rem;font-size:.9rem}.nav-link:hover{background:hsla(26,58%,78%,.35);transform:translateY(-1px)}.nav-link-active{background:hsla(26,58%,78%,.56);color:#6f4e33}.nav-meta{margin-left:auto;display:inline-flex;align-items:center;gap:.42rem;min-width:0}.nav-user-label{font-size:.66rem;letter-spacing:.01em;text-transform:none}.nav-user-label,.role-chip{font-weight:700;color:var(--text-muted)}.role-chip{border-radius:999px;border:1px solid hsla(31,53%,64%,.35);background:hsla(0,0%,100%,.78);padding:.42rem .82rem;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none}.role-chip-identity{text-transform:none;letter-spacing:.01em;max-width:16rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-user-chip{border-style:dashed;background:hsla(0,0%,100%,.64);font-weight:600;font-size:.74rem;letter-spacing:.01em}.nav-divider{width:1px;height:1.6rem;background:rgba(172,136,96,.34)}.nav-logout-form{margin-left:.1rem}.nav-link-logout{color:#8a4a43;border:1px solid hsla(5,45%,60%,.34);background:hsla(0,0%,100%,.84)}.nav-link-logout:hover{color:#743f39;background:hsla(11,77%,91%,.62)}.journal-card{border-radius:1rem;border:1px solid var(--line-soft);background:var(--bg-card);box-shadow:var(--shadow-soft);transition:transform .24s ease-out,box-shadow .24s ease-out}.journal-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover)}.journal-hero{background:linear-gradient(145deg,hsla(0,0%,100%,.97),rgba(255,243,229,.95)),var(--bg-card);border-radius:1.2rem}.journal-panel{border-radius:.95rem;border:1px solid var(--line-soft);background:rgba(255,248,240,.8);padding:.9rem 1rem}.journal-kicker{margin-bottom:.35rem;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-strong)}.journal-title{font-size:clamp(1.7rem,2.7vw,2.25rem);font-weight:700;line-height:1.2}.journal-subtitle{font-size:1.26rem;font-weight:700;line-height:1.25}.journal-muted{color:var(--text-muted)}.inline-link{font-weight:700;color:var(--accent-strong);text-decoration:underline;text-underline-offset:2px}.stat-card{padding:1rem}.stat-label{font-size:.76rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.stat-value{font-size:1.15rem;font-weight:700;color:var(--text-primary)}.stat-row{display:flex;justify-content:space-between;gap:.75rem}.stat-row dt{color:var(--text-muted)}.field-label,.stat-row dd{font-weight:600;color:var(--text-primary)}.field-label{display:block;font-size:.88rem}.input-field,.textarea-field{width:100%;border-radius:.86rem;border:2px solid hsla(26,58%,78%,.65);background:#fff;padding:.72rem .9rem;color:var(--text-primary)}.input-field:focus,.textarea-field:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px hsla(31,53%,64%,.2)}.password-field{position:relative}.input-with-toggle{padding-right:2.8rem}.password-toggle-btn{position:absolute;top:50%;right:.45rem;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;border-radius:999px;background:transparent;color:var(--text-muted);font-size:1rem;line-height:1;cursor:pointer}.password-toggle-btn:hover{background:hsla(26,58%,78%,.4);color:var(--accent-strong)}.password-toggle-btn:focus-visible{outline:2px solid hsla(31,53%,64%,.55);outline-offset:1px}.remember-option{display:flex;align-items:flex-start;gap:.55rem;border-radius:.7rem;padding:.2rem .1rem;cursor:pointer}.remember-checkbox{margin-top:.12rem;width:1rem;height:1rem;flex:0 0 1rem;accent-color:var(--accent-strong);cursor:pointer}.remember-checkbox:focus-visible{outline:2px solid hsla(31,53%,64%,.55);outline-offset:2px;border-radius:.2rem}.remember-copy{min-width:0;display:block}.remember-title{display:block;font-size:.84rem;font-weight:700;line-height:1.2;color:var(--text-primary)}.readonly-field{opacity:.75;cursor:default}.remember-hint{display:block;margin-top:.12rem;font-size:.72rem;line-height:1.3;color:var(--text-muted)}.textarea-field{min-height:6rem;resize:vertical}.range-field{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:.56rem;border-radius:999px;border:1px solid hsla(31,53%,64%,.42);background:linear-gradient(90deg,hsla(26,58%,78%,.68),hsla(31,53%,64%,.4));cursor:pointer}.range-field:focus-visible{outline:none;box-shadow:0 0 0 3px hsla(31,53%,64%,.24)}.range-field::-webkit-slider-runnable-track{height:.56rem;border-radius:999px;background:transparent}.range-field::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:1.22rem;height:1.22rem;margin-top:-.37rem;border-radius:999px;border:1px solid rgba(151,88,39,.56);background:linear-gradient(145deg,#d79a64,#bf7140);box-shadow:0 5px 10px rgba(138,77,32,.34)}.range-field::-moz-range-track{height:.56rem;border-radius:999px;border:1px solid hsla(31,53%,64%,.42);background:linear-gradient(90deg,hsla(26,58%,78%,.68),hsla(31,53%,64%,.4))}.range-field::-moz-range-progress{height:.56rem;border-radius:999px;background:hsla(5,45%,60%,.55)}.range-field::-moz-range-thumb{width:1.22rem;height:1.22rem;border:1px solid rgba(151,88,39,.56);border-radius:999px;background:linear-gradient(145deg,#d79a64,#bf7140);box-shadow:0 5px 10px rgba(138,77,32,.34)}.btn-danger,.btn-primary,.btn-secondary,.btn-soft,.btn-warning{border-radius:999px;padding:.58rem 1.12rem;font-size:.88rem;font-weight:700;transition:transform .22s ease-out,box-shadow .22s ease-out,background-color .22s ease-out}.btn-primary{border:none;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;box-shadow:0 8px 16px hsla(31,53%,64%,.26)}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 12px 20px hsla(31,53%,64%,.35)}.btn--disabled,.btn-danger:disabled,.btn-primary:disabled,.btn-secondary:disabled,.btn-soft:disabled,.btn-warning:disabled{opacity:.5;cursor:not-allowed;pointer-events:none;transform:none!important;box-shadow:none!important}.btn-secondary{border:1px solid var(--line-soft);background:hsla(0,0%,100%,.9);color:var(--text-primary)}.btn-secondary:hover,.btn-soft:hover{transform:translateY(-1px);background:hsla(26,58%,78%,.45)}.btn-soft{border:1px solid hsla(5,45%,60%,.28);background:hsla(0,0%,100%,.84);color:#9f534d}.btn-warning{border:1px solid rgba(196,146,74,.45);background:rgba(255,236,196,.82);color:#8b5a1c}.btn-warning:hover{transform:translateY(-1px);background:hsla(40,84%,80%,.92)}.btn-danger{border:1px solid rgba(177,86,78,.4);background:hsla(8,79%,94%,.95);color:#9b3d36}.btn-danger:hover{transform:translateY(-1px);background:hsla(9,80%,90%,.95)}.period-toggle{display:inline-flex;align-items:center;gap:.65rem;border-radius:999px;border:1px solid var(--line-soft);background:rgba(255,248,240,.82);padding:.5rem .78rem;font-weight:600}.period-toggle span{display:block;min-width:0}.period-toggle input{position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:2.6rem;height:1.38rem;border-radius:999px;border:1px solid hsla(31,53%,64%,.42);background:hsla(26,58%,78%,.35);cursor:pointer}.period-toggle input:after{content:"";position:absolute;top:.1rem;left:.14rem;width:1.05rem;height:1.05rem;border-radius:999px;background:#fff;box-shadow:0 2px 8px rgba(140,106,70,.2);transition:transform .22s ease-out}.period-toggle input:checked{background:var(--period-color);border-color:rgba(162,83,75,.7)}.period-toggle input:checked:after{transform:translateX(1.2rem)}.choice-option{position:relative;display:block}.choice-input{position:absolute;opacity:0;pointer-events:none}.check-chip,.radio-tile{display:inline-flex;width:100%;align-items:center;justify-content:center;gap:.45rem;border-radius:.8rem;border:1px solid hsla(26,58%,78%,.8);background:rgba(255,249,240,.72);padding:.58rem .64rem;font-size:.86rem;font-weight:600;color:var(--text-primary)}.radio-tile{min-height:3rem;flex-direction:column}.radio-tile-sm{min-height:2.65rem;font-size:.8rem}.radio-icon{font-size:1rem}.check-chip{justify-content:flex-start;min-height:2.65rem;position:relative}.check-chip-sm{min-height:2.35rem;font-size:.8rem}.check-chip-sm .symptom-label{font-size:.84rem;line-height:1.18}.symptom-groups{display:grid;gap:.6rem}.symptom-group-panel{border-radius:.9rem;border:1px solid var(--line-soft);background:rgba(255,248,240,.78);padding:.62rem}.symptom-group-title{font-size:.76rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.symptom-group-panel .symptom-grid{margin-top:.46rem}.symptom-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:.5rem}@media (min-width:640px){.symptom-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.symptom-grid .choice-option{height:100%}.symptom-grid .check-chip{height:100%;align-items:center;line-height:1.2;min-height:2.65rem;padding:.62rem .7rem}.symptom-icon{display:inline-flex;width:1.2rem;flex:0 0 1.2rem;align-items:center;justify-content:center;font-size:1rem;line-height:1}.symptom-label{display:block;font-family:Segoe UI,Tahoma,Arial,sans-serif!important;font-weight:600;text-align:left;letter-spacing:0;word-spacing:normal;line-height:1.25;white-space:normal;overflow-wrap:break-word;word-break:normal;-webkit-hyphens:none;hyphens:none}.symptom-label-nowrap{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.77rem;line-height:1.15}.stats-symptom-row{display:flex;align-items:center;justify-content:space-between;gap:.55rem}.stats-symptom-meta{display:inline-flex;align-items:center;gap:.45rem;min-width:0;flex:1 1 auto}.stats-symptom-icon{display:inline-flex;width:1rem;flex:0 0 1rem;align-items:center;justify-content:center}.stats-symptom-name{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.82rem;line-height:1.25}.stats-symptom-frequency{flex:0 0 auto;white-space:nowrap;font-size:.8rem;font-weight:700}.stats-empty-state{margin-top:1rem;display:flex;align-items:flex-start;gap:.55rem;border-radius:.88rem;border:1px dashed rgba(172,136,96,.34);background:rgba(255,248,240,.56);padding:.78rem .86rem}.stats-empty-icon{flex:0 0 auto;font-size:1rem;line-height:1.2;transform:translateY(1px)}.panel-danger-zone{margin-top:.2rem;border-top:1px solid hsla(26,58%,78%,.7);padding-top:.6rem}.danger-link{border:none;background:transparent;padding:0;font-size:.84rem;font-weight:700;color:#a9443d;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.danger-link:hover{color:#8f352f}.danger-link:focus-visible{outline:2px solid rgba(169,68,61,.35);outline-offset:2px;border-radius:.3rem}@media (min-width:1024px){.symptom-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.symptom-grid-compact{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-symptoms-panel,.stats-trend-panel{min-height:24rem}}.choice-input:checked+.check-chip,.choice-input:checked+.radio-tile{border-color:rgba(186,131,80,.95);background:linear-gradient(135deg,hsla(29,69%,85%,.9),hsla(26,58%,78%,.7));box-shadow:0 0 0 2px rgba(186,131,80,.22),0 8px 18px rgba(186,131,80,.12)}.choice-input:checked+.check-chip:after{content:"✓";margin-left:auto;display:inline-flex;align-items:center;justify-content:center;min-width:1.2rem;height:1.2rem;border-radius:999px;border:1px solid rgba(162,83,75,.45);background:hsla(0,0%,100%,.85);color:#8f4a2f;font-size:.8rem;line-height:1;font-weight:800}.choice-input:disabled+.check-chip,.choice-input:disabled+.radio-tile{opacity:.76}.choice-input:disabled:checked+.check-chip,.choice-input:disabled:checked+.radio-tile{border-color:hsla(26,58%,78%,.8);background:rgba(255,249,240,.72);box-shadow:none}.choice-input:disabled:checked+.check-chip:after{content:none}.choice-chip-active{border-color:hsla(31,53%,64%,.95);background:hsla(26,58%,78%,.5);box-shadow:0 0 0 2px hsla(31,53%,64%,.2)}.calendar-cell{display:block;width:100%;min-height:5.2rem;border-radius:.9rem;border:1px solid var(--line-soft);background:hsla(0,0%,100%,.9);padding:.5rem;text-align:left;overflow:hidden;transition:transform .22s ease-out,box-shadow .22s ease-out}.calendar-cell:hover{transform:translateY(-1px);box-shadow:0 10px 18px rgba(181,128,71,.2)}.calendar-cell:focus,.calendar-cell:focus-visible{outline:none;border-color:hsla(31,53%,64%,.95);box-shadow:inset 0 0 0 2px hsla(31,53%,64%,.78),0 0 0 2px hsla(0,0%,100%,.8)}.calendar-cell.selected{border-color:rgba(72,122,209,.95);box-shadow:inset 0 0 0 2px rgba(72,122,209,.72),0 0 0 2px hsla(0,0%,100%,.84)}.calendar-cell-period{border-color:hsla(5,45%,60%,.7);background:hsla(5,45%,60%,.2)}.calendar-cell-predicted{border-color:hsla(31,53%,64%,.8);background:hsla(26,58%,78%,.35)}.calendar-cell-fertile{border-color:rgba(137,170,145,.7);background:rgba(184,212,193,.37)}.calendar-cell-out{opacity:.55}.calendar-cell-today{border-color:hsla(31,53%,64%,.95);box-shadow:inset 0 0 0 2px hsla(31,53%,64%,.86),0 0 0 2px hsla(0,0%,100%,.8)}.calendar-cell-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.25rem;min-width:0}.calendar-badges{display:flex;min-width:0;justify-content:center}.calendar-today-pill{display:inline-flex;align-items:center;border-radius:999px;background:hsla(31,53%,64%,.22);color:#7f5630;padding:.1rem .34rem;font-size:.56rem;font-weight:700;letter-spacing:.01em;text-transform:uppercase;line-height:1.05;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.calendar-day-number{font-size:.9rem;font-weight:700;color:var(--text-primary)}.calendar-day-out{color:var(--text-muted)}.calendar-tag{display:inline-flex;align-items:center;border-radius:999px;padding:.08rem .3rem;font-size:.53rem;font-weight:600;letter-spacing:0;text-transform:uppercase;color:#fff;line-height:1.05;white-space:nowrap;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis}.calendar-tag-label-short{display:none}.calendar-tag-period{background:var(--period-color)}.calendar-tag-predicted{background:var(--accent-primary)}.calendar-tag-ovulation{background:#d2a74f}.calendar-tag-fertile{background:#7b9f87}.legend-item{display:inline-flex;align-items:center;gap:.4rem}.legend-dot{width:.65rem;height:.65rem;border-radius:999px;display:inline-block}.legend-dot-period{background:var(--period-color)}.legend-dot-predicted{background:var(--accent-primary)}.legend-dot-fertile{background:#7b9f87}.chart-shell{height:18rem;border-radius:.95rem;border:1px solid var(--line-soft);background:hsla(0,0%,100%,.85);padding:.9rem}.stats-symptoms-panel,.stats-trend-panel{min-height:0}.stats-legend-dot-actual{background:var(--chart-dot,#b9753e)}.stats-legend-baseline-line{border-color:var(--chart-baseline,#9f8a75)}.status-error,.status-ok{border-radius:.8rem;padding:.55rem .72rem;font-size:.86rem;font-weight:600}.status-ok{border:1px solid rgba(114,161,131,.45);background:rgba(184,212,193,.32);color:#4d6e57}.status-error{border:1px solid hsla(5,45%,60%,.45);background:hsla(5,45%,60%,.16);color:#8d4b45}.warning-amber{color:#8b5a1c;font-weight:600}.status-transient{animation:none}.toast-close{flex:0 0 auto;margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:1.45rem;height:1.45rem;border:1px solid;border-radius:999px;background:hsla(0,0%,100%,.35);color:inherit;font-size:.9rem;line-height:1;opacity:.92;cursor:pointer}.toast-close:hover{opacity:1;background:hsla(0,0%,100%,.58)}.toast-close:focus-visible{outline:2px solid rgba(90,74,58,.35);outline-offset:1px}.save-status{min-height:1.25rem}.mobile-install-banner{margin-top:.9rem}.mobile-install-shell{display:grid;gap:.9rem;border-radius:1.15rem;border:1px solid var(--line-soft);background:linear-gradient(145deg,hsla(0,0%,100%,.97),rgba(255,243,229,.95)),var(--bg-card);box-shadow:var(--shadow-soft);padding:.95rem 1rem}.mobile-install-copy{min-width:0}.mobile-install-kicker{display:inline-block;margin-bottom:.45rem;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-strong)}.mobile-install-heading{display:flex;align-items:flex-start;gap:.78rem}.mobile-install-icon{width:2.5rem;height:2.5rem;flex:0 0 2.5rem}.mobile-install-title{margin:0;font-size:1.06rem;font-weight:700;line-height:1.15;color:var(--text-primary)}.mobile-install-text{margin:0;font-size:.82rem;line-height:1.4;color:var(--text-muted)}.mobile-install-actions{display:grid;gap:.5rem}.mobile-install-actions button{display:inline-flex;width:100%;align-items:center;justify-content:center}.mobile-tabbar{position:fixed;left:.75rem;right:.75rem;bottom:calc(.75rem + env(safe-area-inset-bottom));z-index:40;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;border-radius:1rem;border:1px solid var(--line-soft);background:rgba(255,249,240,.96);box-shadow:0 12px 24px rgba(120,85,52,.2);padding:.42rem}.mobile-tabbar-link{display:inline-flex;align-items:center;justify-content:center;border-radius:.78rem;padding:.42rem .28rem;color:var(--text-muted);font-size:.67rem;font-weight:700;letter-spacing:.02em;text-align:center}.mobile-tabbar-link-active{color:var(--text-primary);background:hsla(26,58%,78%,.52)}.confirm-modal-backdrop{position:fixed;inset:0;z-index:9999;background:rgba(22,16,12,.52);padding:1rem}.confirm-modal-center{min-height:100%;display:flex;align-items:center;justify-content:center}.confirm-modal-card{width:min(32rem,100%);padding:1.25rem}.confirm-modal-actions{margin-top:1rem;display:flex;justify-content:flex-end;gap:.5rem}.recovery-code-box{border-radius:.9rem;border:1px dashed rgba(122,93,64,.4);background:rgba(255,248,240,.92);padding:.9rem;font-family:Consolas,Courier New,monospace;font-size:1.05rem;font-weight:700;letter-spacing:.08em;text-align:center;color:#6d4b2b}.danger-card-soft{border:1px solid var(--danger-soft-border);background:var(--danger-soft-bg)}.danger-card-strong{border:1px solid var(--danger-strong-border)}.danger-title{color:var(--danger-title)}:root[data-theme=dark] .lang-switch .lang-link-active,:root[data-theme=dark] .lang-switch .lang-link[aria-current=page]{background:linear-gradient(135deg,#7a5daa,#9a74cc);color:#f7f3ff!important;-webkit-text-fill-color:#f7f3ff!important;border-color:rgba(210,190,244,.35);text-shadow:0 1px 1px rgba(28,21,37,.55);box-shadow:inset 0 0 0 1px rgba(247,243,255,.08),0 6px 14px rgba(86,62,125,.34)}:root[data-theme=dark] .theme-toggle:hover{background:rgba(171,130,226,.26);border-color:rgba(191,159,239,.48)}:root[data-theme=dark] .btn-secondary,:root[data-theme=dark] .btn-soft,:root[data-theme=dark] .menu-toggle,:root[data-theme=dark] .nav-link-logout{background:rgba(47,38,63,.86);color:var(--text-primary)}:root[data-theme=dark] .btn-secondary:hover,:root[data-theme=dark] .btn-soft:hover,:root[data-theme=dark] .nav-link:hover{background:rgba(159,124,215,.26)}:root[data-theme=dark] .mobile-tabbar-link-active,:root[data-theme=dark] .nav-link-active{background:rgba(159,124,215,.34);color:#f2e8ff}:root[data-theme=dark] .nav-user-chip,:root[data-theme=dark] .role-chip{border-color:rgba(157,129,196,.58);background:rgba(43,34,58,.86);color:#e8dcf7}:root[data-theme=dark] .nav-divider{background:rgba(148,126,181,.5)}:root[data-theme=dark] .journal-hero{background:linear-gradient(145deg,rgba(47,40,62,.98),rgba(34,28,45,.95)),var(--bg-card)}:root[data-theme=dark] .journal-panel,:root[data-theme=dark] .stats-empty-state,:root[data-theme=dark] .symptom-group-panel{background:var(--bg-soft-strong)}:root[data-theme=dark] .input-field,:root[data-theme=dark] .textarea-field{border-color:rgba(137,116,171,.62);background:rgba(30,25,40,.9);color:var(--text-primary)}:root[data-theme=dark] .input-field:focus,:root[data-theme=dark] .textarea-field:focus{border-color:hsla(34,48%,63%,.85);box-shadow:0 0 0 3px hsla(34,48%,63%,.25)}:root[data-theme=dark] .password-toggle-btn:hover{background:rgba(159,124,215,.2);color:#f0d3b5}:root[data-theme=dark] .btn-warning{border-color:hsla(38,58%,62%,.5);background:rgba(107,76,35,.78);color:#ffe2ad}:root[data-theme=dark] .btn-danger{border-color:hsla(0,43%,60%,.58);background:rgba(105,49,49,.82);color:#ffd3d0}:root[data-theme=dark] .period-toggle{background:rgba(45,37,59,.88)}:root[data-theme=dark] .period-toggle input{border-color:rgba(157,128,198,.62);background:rgba(94,74,126,.6)}:root[data-theme=dark] .period-toggle input:after{background:#f7f3ff;box-shadow:0 2px 8px rgba(14,10,22,.36)}:root[data-theme=dark] .check-chip,:root[data-theme=dark] .radio-tile{border-color:rgba(127,105,160,.72);background:rgba(46,38,61,.84);color:var(--text-primary)}:root[data-theme=dark] .choice-input:checked+.check-chip,:root[data-theme=dark] .choice-input:checked+.radio-tile{border-color:hsla(34,61%,66%,.9);background:linear-gradient(135deg,rgba(103,73,46,.9),rgba(66,48,86,.88));box-shadow:0 0 0 2px hsla(34,61%,66%,.2),0 8px 18px rgba(12,8,19,.3)}:root[data-theme=dark] .choice-input:checked+.check-chip:after{border-color:hsla(33,57%,65%,.62);background:rgba(28,23,38,.82);color:#f3d5ad}:root[data-theme=dark] .calendar-cell{background:rgba(39,32,52,.92)}:root[data-theme=dark] .calendar-cell:hover{box-shadow:0 10px 18px rgba(9,7,14,.5)}:root[data-theme=dark] .calendar-cell.selected{border-color:rgba(124,166,244,.9);box-shadow:inset 0 0 0 2px rgba(124,166,244,.62),0 0 0 2px rgba(22,17,31,.88)}:root[data-theme=dark] .calendar-cell-period{border-color:hsla(5,57%,70%,.82);background:rgba(130,73,70,.38)}:root[data-theme=dark] .calendar-cell-predicted{border-color:rgba(216,176,98,.82);background:rgba(124,97,49,.34)}:root[data-theme=dark] .calendar-cell-fertile{border-color:rgba(137,179,154,.8);background:rgba(69,109,88,.42)}:root[data-theme=dark] .calendar-today-pill{background:rgba(216,176,98,.25);color:#ffe0b0}:root[data-theme=dark] .chart-shell{background:rgba(33,27,44,.88)}:root[data-theme=dark] .status-ok{border-color:rgba(132,189,154,.52);background:rgba(79,129,101,.35);color:#d8f4e2}:root[data-theme=dark] .status-error{border-color:hsla(0,55%,65%,.5);background:rgba(128,59,59,.42);color:#ffd7d4}:root[data-theme=dark] .toast-close{background:rgba(37,31,49,.5)}:root[data-theme=dark] .toast-close:hover{background:rgba(62,49,84,.72)}:root[data-theme=dark] .mobile-install-shell{background:linear-gradient(145deg,rgba(47,40,62,.98),rgba(34,28,45,.95)),var(--bg-card)}:root[data-theme=dark] .mobile-tabbar{background:rgba(30,24,40,.95);box-shadow:0 12px 24px rgba(7,5,11,.55)}:root[data-theme=dark] .confirm-modal-backdrop{background:rgba(12,9,19,.72)}:root[data-theme=dark] .recovery-code-box{border-color:rgba(170,135,93,.56);background:rgba(40,32,53,.92);color:#efcd9f}.reveal{animation:reveal-up .28s ease-out}@keyframes reveal-up{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes status-fade{to{opacity:0;transform:translateY(-2px)}}@media (max-width:640px){.theme-toggle{padding:.34rem .5rem}.theme-toggle-text{display:none}.period-toggle{width:100%;align-items:flex-start;min-height:3rem;padding:.46rem .72rem}.period-toggle span{line-height:1.2}.calendar-day-editor-form .radio-tile-sm{min-height:2.1rem;flex-direction:row;justify-content:center;gap:.3rem;padding:.28rem .4rem;font-size:.75rem}.calendar-day-editor-form .radio-tile-sm .radio-icon{font-size:.9rem}.radio-tile:not(.radio-tile-sm){flex-direction:row;justify-content:flex-start;min-height:2.45rem;padding:.38rem .52rem;gap:.36rem}.symptom-grid .symptom-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.main-with-mobile-nav{padding-bottom:6.6rem}.journal-title{font-size:1.55rem}.journal-subtitle{font-size:1.08rem}.stat-card{padding:.9rem}.calendar-cell-header{flex-direction:column;align-items:flex-start;gap:.2rem}.calendar-badges{display:none}.calendar-cell{min-height:4.9rem;padding:.42rem}.calendar-tag,.calendar-today-pill{display:inline-flex;font-size:.48rem;padding:0 .14rem;line-height:1;max-width:100%}.calendar-cell-today .calendar-today-pill,.calendar-tag-label-full{display:none}.calendar-tag-label-short{display:inline}.stats-symptom-name{font-size:.78rem}.stats-symptom-frequency{font-size:.76rem}.toast-stack{left:1rem;right:1rem;max-width:none}.mobile-install-shell{padding:.9rem}.mobile-install-title{font-size:1rem}}.visible{visibility:visible}.static{position:static}.relative{position:relative}.mx-auto{margin-left:auto;margin-right:auto}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-full{height:100%}.max-h-72{max-height:18rem}.min-h-\[72vh\]{min-height:72vh}.w-2\.5{width:.625rem}.w-6{width:1.5rem}.w-full{width:100%}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.flex-1{flex:1 1 0%}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem*var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.border-l{border-left-width:1px}.border-t-2{border-top-width:2px}.border-dashed{border-style:dashed}.border-\[rgba\(172\2c 136\2c 96\2c 0\.28\)\]{border-color:rgba(172,136,96,.28)}.bg-\[rgba\(232\2c 196\2c 168\2c 0\.35\)\]{background-color:hsla(26,58%,78%,.35)}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-7{padding:1.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-4{padding-bottom:1rem}.pb-8{padding-bottom:2rem}.pl-3{padding-left:.75rem}.pr-1{padding-right:.25rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.tracking-wide{letter-spacing:.025em}.text-stone-700{--tw-text-opacity:1;color:rgb(68 64 60/var(--tw-text-opacity,1))}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}@media (min-width:640px){.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:p-10{padding:2.5rem}.sm\:p-5{padding:1.25rem}.sm\:p-6{padding:1.5rem}.sm\:p-8{padding:2rem}.sm\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}}@media (min-width:1024px){.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:grid-cols-\[2fr_1fr\]{grid-template-columns:2fr 1fr}.lg\:items-start{align-items:flex-start}}