/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:host,:root{--spacing:.25rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--shadow-sm:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1)}}@layer base,components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-0{margin-inline:0}.mx-auto{margin-inline:auto}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.block{display:block}.flex{display:flex}.hidden{display:none}.inline{display:inline}.w-100{width:calc(var(--spacing) * 100)}.flex-shrink{flex-shrink:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.border{border-style:var(--tw-border-style);border-width:1px}.p-5{padding:calc(var(--spacing) * 5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.text-center{text-align:center}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.blur{--tw-blur:blur(8px)}.blur,.invert{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:no-preference){.app-main,.duck-help-messages,.duck-help-suggestions,.toast-container,[class*=overflow-auto],[class*=overflow-y-auto],body,html{scroll-behavior:smooth}}@media (prefers-reduced-motion:reduce){.duck-help-messages,.duck-help-suggestions,body,html{scroll-behavior:auto}}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text);background-color:var(--color-background);background-image:radial-gradient(circle at 0 0,#fffbdee6 0,transparent 45%),radial-gradient(circle at 100% 20%,#ffccbda6 0,transparent 40%),radial-gradient(circle at 50% 100%,#ffadbb59 0,transparent 50%),linear-gradient(180deg,var(--palette-cream) 0,var(--palette-cream-muted) 65%,var(--palette-peach-light) 100%);-webkit-font-smoothing:antialiased;background-attachment:fixed;min-height:100dvh;margin:0;position:relative}body:after{content:"";pointer-events:none;z-index:0;background-color:var(--polka-bg);background-image:radial-gradient(circle,var(--polka-dot) var(--polka-dot-size),transparent calc(var(--polka-dot-size) + .5px)),radial-gradient(circle,var(--polka-dot) var(--polka-dot-size),transparent calc(var(--polka-dot-size) + .5px));background-size:var(--polka-spacing) var(--polka-spacing);background-position:0 0,calc(var(--polka-spacing) / 2) calc(var(--polka-spacing) / 2);-webkit-mask-image:linear-gradient(to bottom,transparent 0,rgba(0,0,0,var(--polka-fade-max)) 100%);mask-image:linear-gradient(to bottom,transparent 0,rgba(0,0,0,var(--polka-fade-max)) 100%);position:fixed;inset:0}#app{z-index:1;min-height:100dvh;position:relative}img,svg{max-width:100%;height:auto;display:block}a{color:var(--color-primary-dark);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-accent)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.text-muted{color:var(--color-text-muted)!important}.gradient-bg{background:0 0}.health-disclaimer{font-size:var(--font-size-xs);color:var(--color-text-muted);line-height:var(--line-height-relaxed);padding:var(--space-3);border-left:3px solid var(--palette-peach);background:#fffbded9}.health-disclaimer,.skeleton{border-radius:var(--radius-md)}.skeleton{background:linear-gradient(90deg,var(--color-border) 25%,var(--color-surface-secondary) 50%,var(--color-border) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton{background:var(--color-border);animation:none}}.d-flex{display:flex}.flex-column{flex-direction:column}.align-items-center{align-items:center}.align-items-start{align-items:flex-start}.align-items-end{align-items:flex-end}.justify-content-center{justify-content:center}.justify-content-between{justify-content:space-between}.justify-content-end{justify-content:flex-end}.flex-wrap{flex-wrap:wrap}.flex-grow-1{flex-grow:1}.w-100{width:100%}.h-100{height:100%}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:1rem}.gap-4{gap:1.5rem}.m-0{margin:0}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:1rem}.mt-4{margin-top:1.5rem}.mt-5{margin-top:3rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:1rem}.mb-4{margin-bottom:1.5rem}.mb-5{margin-bottom:3rem}.ms-2{margin-left:.5rem}.me-2{margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-3{margin-top:1rem;margin-bottom:1rem}.my-4{margin-top:1.5rem;margin-bottom:1.5rem}.p-0{padding:0}.p-2{padding:.5rem}.p-3{padding:1rem}.p-4{padding:1.5rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:1rem}.pb-2{padding-bottom:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:1rem;padding-bottom:1rem}.py-4{padding-top:1.5rem;padding-bottom:1.5rem}.text-center{text-align:center}.text-start{text-align:left}.text-end{text-align:right}.fw-bold{font-weight:700}.fw-semibold{font-weight:600}.small,small{font-size:.875em}.form-control{width:100%;padding:var(--space-3) var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);background:var(--palette-cream-muted);color:var(--color-text);font-family:inherit;display:block}.form-control:focus{border-color:var(--palette-pink);outline:none;box-shadow:0 0 0 3px #ffadbb59}.btn{border-radius:var(--radius-full);border:2px solid var(--color-border-strong);background:var(--palette-cream-muted);color:var(--color-text);cursor:pointer;justify-content:center;align-items:center;gap:.35rem;padding:.4rem .8rem;font-family:inherit;font-weight:600;display:inline-flex}.btn-sm{font-size:var(--font-size-sm);min-height:32px;padding:.25rem .65rem}.bi{speak:never;justify-content:center;align-items:center;font-style:normal;font-weight:700;line-height:1;display:inline-flex}.bi-check-lg:before{content:"✓"}.bi-heart-fill:before{content:"♥";color:var(--color-accent-heart)}.bi-chevron-left:before{content:"‹";font-size:1.35em}.bi-chevron-right:before{content:"›";font-size:1.35em}.bi-plus-circle:before{content:"+"}.bi-calendar3:before{content:"▦"}.bi-arrow-right:before,.bi-box-arrow-right:before{content:"→"}.bi-x-lg:before{content:"×";font-size:1.2em}.bi-send-fill:before{content:"➤"}.bi-calendar-heart:before,.bi-emoji-smile:before,.bi-graph-up-arrow:before,.bi-phone:before,.bi-shield-lock:before{content:"✦"}.visually-hidden-focusable:not(:focus):not(:focus-within){clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.btn-bloom{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);font-size:var(--font-size-base);border-radius:var(--radius-full);cursor:pointer;color:var(--color-text);transition:transform var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast);border:none;min-height:44px;font-weight:600;text-decoration:none;display:inline-flex}.btn-bloom:active:not(:disabled){transform:scale(.98)}.btn-bloom:disabled{opacity:.6;cursor:not-allowed}.btn-bloom-primary{background:linear-gradient(135deg,var(--palette-pink) 0,var(--palette-peach) 100%);color:var(--color-text);box-shadow:var(--shadow-soft)}.btn-bloom-primary:hover:not(:disabled){box-shadow:var(--shadow-md);color:var(--color-text);background:linear-gradient(135deg,var(--palette-peach) 0,var(--palette-pink) 100%)}.btn-bloom-secondary{background:var(--palette-cream-muted);color:var(--color-text);border:2px solid var(--color-border-strong)}.btn-bloom-secondary:hover:not(:disabled){border-color:var(--palette-pink);background:var(--palette-peach-light);color:var(--color-text)}.btn-bloom-ghost{color:var(--color-text-muted);background:#fffbde8c}.btn-bloom-ghost:hover:not(:disabled){background:var(--palette-peach-light);color:var(--color-text)}.btn-bloom-accent{background:var(--palette-peach);color:var(--color-text)}.btn-bloom-sm{padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);min-height:36px}.btn-bloom-lg{padding:var(--space-4) var(--space-8);font-size:var(--font-size-lg)}.card-bloom{margin-bottom:var(--card-gap);background:var(--card-body-bg);border:2.5px solid var(--card-outline);border-radius:var(--radius-card);box-shadow:var(--card-shadow);transition:transform var(--transition-fast),box-shadow var(--transition-fast);padding:0;position:relative;overflow:hidden}.card-bloom:last-child{margin-bottom:0}.card-bloom-header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--card-header-bg);border-bottom:2.5px solid var(--card-outline);display:flex}.card-bloom-title{font-size:var(--font-size-base);color:var(--color-text);letter-spacing:.01em;margin:0;font-weight:700}.card-bloom-dots{flex-shrink:0;align-items:center;gap:.4rem;display:flex}.card-bloom-dots span{border:2px solid var(--card-outline);background:var(--palette-cream-soft);border-radius:50%;width:.625rem;height:.625rem}.card-bloom-body{padding:var(--space-5) var(--space-5) var(--space-6)}.card-bloom--plain{padding:var(--space-6)}.card-bloom--compact .card-bloom-body,.card-bloom--compact.card-bloom--plain{padding:var(--space-4) var(--space-5)}.card-bloom-interactive{cursor:pointer}.card-bloom-interactive:hover{box-shadow:var(--card-shadow-hover);transform:translate(-2px,-2px)}.card-bloom-soft{background:#fffbdeb8}.card-bloom-soft .card-bloom-header{background:#ffadbbbf}.card-bloom-peach .card-bloom-header{background:var(--palette-peach-light)}.card-bloom-peach{background:var(--palette-cream-soft)}.card-bloom-cream{background:var(--card-body-bg)}.card-bloom-cream .card-bloom-header{background:var(--palette-cream)}.card-stack{gap:var(--card-gap);flex-direction:column;display:flex}.card-stack .card-bloom{margin-bottom:0}.card-bloom-check{align-items:center;gap:var(--space-3);margin-top:var(--space-2);padding:var(--space-3) var(--space-4);border:2px solid var(--card-outline-soft);border-radius:var(--radius-full);font-size:var(--font-size-sm);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);background:#fffbdea6;font-weight:600;display:flex}.card-bloom-check:hover{border-color:var(--palette-pink);background:#fffbdea6}.card-bloom-check:has(.bloom-checkbox-input:checked){border-color:var(--color-accent-heart);background:#ffadbb66;box-shadow:3px 3px #e85d7a2e}.card-bloom-check-label{line-height:var(--line-height-normal);flex:1}.bloom-checkbox-input{opacity:0;pointer-events:none;width:1px;height:1px;margin:0;position:absolute}.bloom-checkbox{border:2px solid var(--palette-pink);background:var(--palette-cream-soft);width:1.375rem;height:1.375rem;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast);border-radius:.375rem;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;box-shadow:inset 0 1px 2px #ffadbb26}.bloom-checkbox-icon{color:var(--color-text);opacity:0;transition:opacity var(--transition-fast),transform var(--transition-fast);font-size:.875rem;font-weight:700;transform:scale(.4)}.card-bloom-check:hover .bloom-checkbox{border-color:var(--color-accent-heart)}.bloom-checkbox-input:checked+.bloom-checkbox{background:linear-gradient(145deg,var(--palette-pink) 0,var(--palette-peach-light) 100%);border-color:var(--color-accent-heart);transform:scale(1.05)}.bloom-checkbox-input:checked+.bloom-checkbox .bloom-checkbox-icon{opacity:1;transform:scale(1)}.bloom-checkbox-input:focus-visible+.bloom-checkbox{outline:2px solid var(--color-accent-heart);outline-offset:2px}.chip-grid{margin-top:var(--space-4);flex-wrap:wrap;gap:.625rem;display:flex}.chip-grid--compact{margin-top:0}.period-section-label{margin:0 0 var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:600}.period-flow-section{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--card-outline-soft)}.period-flow-section--hidden{display:none}.stat-value{font-size:var(--font-size-2xl);font-weight:700;line-height:var(--line-height-tight);color:var(--color-text);margin:0}.bloom-textarea{width:100%;padding:var(--space-4);border:2px solid var(--card-outline-soft);border-radius:var(--radius-lg);background:var(--palette-cream-soft);font-family:inherit;font-size:var(--font-size-base);color:var(--color-text);resize:vertical;min-height:6.5rem;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.bloom-textarea:focus{border-color:var(--palette-pink);outline:none;box-shadow:0 0 0 3px #ffadbb59}.insights-stats{gap:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}.insights-stats .card-bloom{margin-bottom:0}.card-bloom--compact .card-bloom-title{font-size:var(--font-size-sm)}.card-bloom--compact .stat-value{font-size:var(--font-size-xl)}.bloom-icon{vertical-align:middle;flex-shrink:0;justify-content:center;align-items:center;line-height:0;display:inline-flex}.bloom-icon svg{width:1.25em;height:1.25em;display:block}.bloom-icon--sm svg{width:1.125rem;height:1.125rem}.bloom-icon--md svg{width:1.5rem;height:1.5rem}.bloom-icon--lg svg{width:2rem;height:2rem}.bloom-icon--xl svg{width:2.5rem;height:2.5rem}.card-bloom-check-label .bloom-icon{margin-right:var(--space-1)}.feature-card .card-bloom-body{text-align:center}.feature-card-icon{color:var(--color-accent-heart);margin-bottom:var(--space-3);font-size:2rem}.form-bloom{gap:var(--space-2);flex-direction:column;display:flex}.form-bloom label{font-size:var(--font-size-sm);color:var(--color-text);font-weight:600}.form-bloom input,.form-bloom select,.form-bloom textarea{padding:var(--space-3) var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);background:var(--palette-cream-muted);color:var(--color-text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);min-height:44px;font-family:inherit}.form-bloom input:focus,.form-bloom select:focus,.form-bloom textarea:focus{border-color:var(--palette-pink);background:var(--palette-cream-muted);outline:none;box-shadow:0 0 0 3px #ffadbb59}.form-bloom input.is-invalid,.form-bloom select.is-invalid{border-color:var(--color-error)}.password-field{align-items:stretch;display:flex;position:relative}.password-field input{width:100%;padding-right:2.75rem}.password-field-toggle{border-radius:var(--radius-sm);width:2.25rem;height:2.25rem;color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:50%;right:.35rem;transform:translateY(-50%)}.password-field-toggle:hover{color:var(--color-accent-heart);background:#fffbde8c}.password-field-toggle:focus-visible{color:var(--color-accent-heart);outline:none;box-shadow:0 0 0 3px #ffadbb59}.password-field-icon{width:1.125rem;height:1.125rem;display:block}.form-error{color:var(--color-error)}.chip,.form-error{font-size:var(--font-size-sm)}.chip{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);background:var(--palette-cream-soft);color:var(--color-text);border:2px solid var(--card-outline-soft);cursor:pointer;transition:transform var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);min-height:2.375rem;font-weight:600;display:inline-flex}.chip:hover{border-color:var(--palette-pink);background:var(--palette-cream-muted);transform:translateY(-1px);box-shadow:3px 3px #ffccbd99}.chip.selected{background:var(--palette-pink);border-color:var(--card-outline);color:var(--color-text);font-weight:700;box-shadow:3px 3px #ffb28f8c}.chip-icon{flex-shrink:0;justify-content:center;align-items:center;width:1.125rem;height:1.125rem;display:inline-flex}.chip-icon svg{width:100%;height:100%}.badge-bloom{padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.03em;font-weight:600;display:inline-block}.badge-phase-menstruation{color:#a8435a;background:#ffadbb8c}.badge-phase-follicular{color:#8f5a48;background:#ffccbda6}.badge-phase-ovulation{color:#9a5038;background:#ffb28f8c}.badge-phase-luteal{color:#8f6b72;background:#fffbdee6}.toast-container{bottom:calc(var(--bottom-nav-height) + var(--space-4));z-index:1100;gap:var(--space-2);pointer-events:none;width:min(calc(100% - var(--space-8)),400px);flex-direction:column;display:flex;position:fixed;left:50%;transform:translate(-50%)}@media (min-width:1024px){.toast-container{bottom:var(--space-6);left:auto;right:var(--space-6);transform:none}}.toast-bloom{padding:var(--space-3) var(--space-5);background:var(--palette-peach-light);color:var(--color-text);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);font-size:var(--font-size-sm);animation:toast-in var(--transition-base) ease;pointer-events:auto;border:1px solid var(--color-border)}.toast-bloom.success{background:var(--color-success)}.toast-bloom.error{background:var(--color-error)}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.empty-state{text-align:center;padding:var(--space-10) var(--space-6)}.empty-state h3{font-size:var(--font-size-xl);margin:var(--space-4) 0 var(--space-2)}.empty-state p{color:var(--color-text-muted);margin-bottom:var(--space-6)}.skeleton-screen{width:100%}.skeleton-app{animation:skeleton-fade-in .2s}@keyframes skeleton-fade-in{0%{opacity:.6}to{opacity:1}}.skeleton-page-header{margin-bottom:var(--space-6)}.skeleton-card{margin-bottom:var(--space-4)}.skeleton-streak{align-items:center;gap:var(--space-4);margin-bottom:var(--space-6);display:flex}.skeleton-streak-text{flex:1;min-width:0}.skeleton-calendar-card{padding:var(--space-4)}.skeleton-calendar-nav{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.skeleton-calendar-weekdays{margin-bottom:var(--space-2)}.skeleton-calendar-grid,.skeleton-calendar-weekdays{gap:var(--space-2);grid-template-columns:repeat(7,1fr);display:grid}.skeleton-actions{gap:var(--space-3);margin-top:var(--space-4);display:flex}.skeleton-stats-grid{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}.skeleton-stat{padding:var(--space-4)}.skeleton-duck-card{text-align:center;padding:var(--space-6)}.skeleton-auth-card,.skeleton-onboarding-card{pointer-events:none}.skeleton-landing-nav{padding:var(--space-4) var(--space-6);justify-content:space-between;align-items:center;display:flex}.skeleton-landing-nav-actions{gap:var(--space-2);display:flex}.skeleton-landing-hero{align-items:center;gap:var(--space-8);padding:var(--space-10) var(--space-6);flex-direction:column;display:flex}@media (min-width:768px){.skeleton-landing-hero{flex-direction:row;justify-content:center;align-items:center}}.skeleton-landing-hero-copy{flex:1;max-width:32rem}.skeleton-landing-hero-actions{gap:var(--space-3);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.skeleton-landing-features{padding:var(--space-10) var(--space-6)}.skeleton-feature-grid{gap:var(--space-4);display:grid}@media (min-width:768px){.skeleton-feature-grid{grid-template-columns:repeat(3,1fr)}}.skeleton-feature-card{padding:var(--space-6)}.skeleton-onboarding-dots{justify-content:center;gap:var(--space-2);display:flex}.skeleton-onboarding-actions{margin-top:var(--space-6);justify-content:space-between;display:flex}.loading-screen{justify-content:center;align-items:center;gap:var(--space-4);min-height:60vh;color:var(--color-text-muted);flex-direction:column;display:flex}.bloom-picker-layer{z-index:10050;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#4a323829;border:0;margin:0;padding:0;position:fixed;inset:0}.bloom-picker-layer[hidden]{display:none!important}.bloom-picker-popover.is-ported{pointer-events:auto;z-index:10051!important;position:fixed!important}.bloom-picker{width:100%;position:relative}.bloom-picker.is-open{z-index:1600}.bloom-picker-trigger{justify-content:space-between;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--palette-cream-muted);min-height:44px;color:var(--color-text);font-family:inherit;font-size:var(--font-size-base);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);font-weight:600;display:flex}.bloom-picker-trigger:hover,.bloom-picker.is-open .bloom-picker-trigger{border-color:var(--palette-pink);background:var(--palette-cream-soft)}.bloom-picker-trigger:focus-visible{border-color:var(--palette-pink);outline:none;box-shadow:0 0 0 3px #ffadbb59}.bloom-picker-trigger.is-empty .bloom-picker-value{color:var(--color-text-muted);font-weight:500}.bloom-picker-value{text-align:left}.bloom-picker-icon{color:var(--palette-brown,#6b4a42);opacity:.85;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.bloom-picker-input{clip:rect(0,0,0,0);opacity:0!important;pointer-events:none!important;border:0!important;width:1px!important;height:1px!important;min-height:0!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}input[type=date]::-webkit-calendar-picker-indicator{pointer-events:none;opacity:0}.bloom-picker-popover{z-index:1100;border:2px solid var(--card-outline);border-radius:var(--radius-md);pointer-events:auto;background-color:#fff9eb;background-image:linear-gradient(#ffadbb,#ffc9d4 22%,#ffccbd 46%,#fffbde 72%,#fff9eb);width:15.25rem;max-width:min(15.25rem,100vw - 1.5rem);padding:.6rem .65rem .55rem;position:absolute;top:calc(100% + .35rem);left:0;right:auto;box-shadow:0 10px 28px #4a323829}.bloom-picker--above .bloom-picker-popover{top:auto;bottom:calc(100% + .35rem)}.bloom-picker-popover[hidden]{display:none!important}.card-bloom-body:has(.bloom-picker.is-open),.card-bloom:has(.bloom-picker.is-open),.form-bloom:has(.bloom-picker.is-open),.relations-details,.relations-full-form,.relations-full-form .form-bloom,.relations-page .card-bloom:has(.relations-details){overflow:visible}@media (min-width:1024px){.card-bloom:has(.bloom-picker.is-open){z-index:1500}}.bloom-picker-header{justify-content:space-between;align-items:center;gap:var(--space-1);margin-bottom:.45rem;display:flex}.bloom-picker-month{color:var(--color-text);text-transform:lowercase;font-size:.8125rem;font-weight:700}.bloom-picker-caption{flex:1;justify-content:center;align-items:center;gap:.25rem;min-width:0;display:flex}.bloom-picker-caption-btn,.bloom-picker-month-btn,.bloom-picker-year-btn{color:var(--color-text);cursor:pointer;touch-action:manipulation;background:0 0;border:1.5px solid #0000;border-radius:.45rem;margin:0;font-family:inherit;font-weight:700}.bloom-picker-caption-btn{text-transform:lowercase;flex:1;min-width:0;min-height:1.75rem;padding:.15rem .35rem;font-size:.8125rem}.bloom-picker-month-grid,.bloom-picker-year-grid{gap:.3rem;display:grid}.bloom-picker-month-grid,.bloom-picker-year-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.bloom-picker-year-grid{max-height:12.5rem;overflow:auto}.bloom-picker-month-btn,.bloom-picker-year-btn{text-transform:lowercase;background:#fff6e0;min-height:2.25rem;padding:.35rem .2rem;font-size:.78rem}.bloom-picker-caption-btn:hover,.bloom-picker-month-btn:hover,.bloom-picker-year-btn:hover{border-color:var(--palette-pink);background:var(--palette-cream-soft)}.bloom-picker-month-btn.is-selected,.bloom-picker-year-btn.is-selected{background:var(--palette-pink);border-color:var(--card-outline)}.bloom-picker-nav{border:1.5px solid var(--color-border);border-radius:var(--radius-full);background:var(--palette-cream-muted);width:1.5rem;height:1.5rem;color:var(--color-text);cursor:pointer;justify-content:center;align-items:center;padding:0;font-size:.95rem;line-height:1;display:inline-flex}.bloom-picker-nav:hover{border-color:var(--palette-pink);background:var(--palette-cream-soft)}.bloom-picker-weekdays{text-align:center;color:var(--color-text-muted);margin-bottom:.25rem;font-size:.625rem;font-weight:700}.bloom-picker-calendar,.bloom-picker-weekdays{grid-template-columns:repeat(7,1.65rem);justify-content:center;gap:.12rem;display:grid}.bloom-picker-calendar{background:var(--palette-cream-soft);border-radius:.4rem;padding:.15rem}.bloom-picker-day{width:1.65rem;height:1.65rem;color:var(--color-text);cursor:pointer;z-index:1;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:#fff6e0;border:1.5px solid #0000;border-radius:.45rem;justify-content:center;align-items:center;padding:0;font-size:.75rem;font-weight:600;display:inline-flex;position:relative}.bloom-picker-day--spacer{background:var(--palette-cream-soft);pointer-events:none;border:none}.bloom-picker-day:not(.bloom-picker-day--spacer):hover{border-color:var(--palette-pink);background:var(--palette-cream-soft)}.bloom-picker-day.is-today{border-color:#e88d9fd9}.bloom-picker-day.is-selected{background:var(--palette-pink);border-color:var(--card-outline);color:var(--color-text)}.bloom-picker-day.is-disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.bloom-picker-footer{justify-content:space-between;align-items:center;gap:var(--space-2);border-top:1px solid #6b4a4224;margin-top:.45rem;padding-top:.4rem;display:flex}.bloom-picker-action{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;padding:.1rem .25rem;font-size:.75rem;font-weight:600}.bloom-picker-action:hover{color:var(--color-text)}.bloom-picker-action--primary{color:var(--palette-brown,#6b4a42);font-weight:700}.bloom-time-fields{align-items:center;gap:var(--space-2);display:flex}.bloom-time-select{min-width:0;padding:var(--space-3) var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);background:var(--palette-cream-muted);color:var(--color-text);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%236b4a42' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right .85rem center;background-repeat:no-repeat;flex:1;min-height:44px;padding-right:2.25rem;font-family:inherit;font-weight:600}.bloom-time-select:focus{border-color:var(--palette-pink);background-color:var(--palette-cream-soft);outline:none;box-shadow:0 0 0 3px #ffadbb59}.bloom-time-separator{font-size:var(--font-size-lg);color:var(--color-text-muted);font-weight:700}.form-bloom .bloom-picker-trigger,.form-bloom .bloom-time-select{width:100%}@media (max-width:1023px){.card-bloom-soft:has(.bloom-picker.is-open),.card-bloom:has(.bloom-picker.is-open){z-index:auto}.card-bloom-soft:has(.bloom-picker.is-open){background:#fffbde}.form-bloom:has(.bloom-picker.is-open){z-index:5;position:relative}.form-bloom:has(.bloom-picker.is-open)~*{z-index:0;position:relative}.bloom-picker-popover{z-index:1100;opacity:1;isolation:isolate;background-color:#fff9eb;background-image:linear-gradient(#ffadbb,#ffc9d4 18%,#ffccbd 42%,#fffbde 70%,#fff9eb);padding:.4rem .45rem .35rem;box-shadow:0 8px 18px #4a32382e}.bloom-picker-header{margin-bottom:.35rem}.bloom-picker-caption-btn,.bloom-picker-month{font-size:.875rem}.bloom-picker-month-btn,.bloom-picker-year-btn{min-height:2.5rem;font-size:.85rem}.bloom-picker-nav{width:1.75rem;height:1.75rem}.bloom-picker-calendar,.bloom-picker-weekdays{grid-template-columns:repeat(7,minmax(0,1fr));gap:.18rem;width:100%;margin-inline:0}.bloom-picker-weekdays{margin-bottom:.3rem;font-size:.7rem}.bloom-picker-day{aspect-ratio:1;background:#fff6e0;width:100%;min-width:2.5rem;height:auto;min-height:2.5rem;font-size:.78rem}.bloom-picker-calendar{background:#fffbde;width:100%;padding:.2rem}.bloom-picker-footer{margin-top:.35rem;padding-top:.3rem}.bloom-picker-action{font-size:.8rem}}:root{--palette-peach:#ffb28f;--palette-peach-light:#ffccbd;--palette-cream:#fffbde;--palette-cream-soft:#fffbde;--palette-cream-muted:#fff6e0;--palette-pink:#ffadbb;--palette-lavender:#fff4e8;--palette-brown:#6b4a42;--palette-brown-soft:#6b4a4285;--palette-brown-muted:#6b4a4252;--color-background:#fff9eb;--color-surface:#fff9eb;--color-surface-secondary:#ffccbd;--color-surface-cream:var(--palette-cream);--color-surface-peach:#ffb28f;--color-surface-rose:#ffadbb;--color-primary:#ffadbb;--color-primary-light:#fff4e8;--color-primary-dark:#e88fa0;--color-accent:#ffb28f;--color-accent-heart:#e85d7a;--color-accent-soft:#ffccbd;--color-text:#4a3238;--color-text-muted:#8f6b72;--color-text-inverse:#4a3238;--color-border:var(--palette-brown-muted);--color-border-strong:var(--palette-brown-soft);--color-success:#7cb88a;--color-success-soft:#e8f5eb;--color-warning:#ffb28f;--color-warning-soft:#ffccbd;--color-error:#d9536f;--color-error-soft:#fff0f2;--color-info:#d4a8a8;--color-info-soft:#fff4e8;--color-phase-menstruation:#ffadbb;--color-phase-follicular:#ffccbd;--color-phase-ovulation:#ffb28f;--color-phase-luteal:#fff0e8;--font-family:"Quicksand",system-ui,-apple-system,sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:2rem;--font-size-4xl:2.5rem;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.75;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-sm:.5rem;--radius-md:.75rem;--radius-lg:1rem;--radius-xl:1.25rem;--radius-2xl:1.5rem;--radius-card:1.375rem;--radius-full:9999px;--card-outline:var(--palette-brown-soft);--card-outline-soft:var(--palette-brown-soft);--card-body-bg:var(--palette-cream-soft);--card-header-bg:var(--palette-pink);--card-shadow-color:#ffccbdf2;--card-shadow:7px 7px 0 0 var(--card-shadow-color);--card-shadow-hover:9px 9px 0 0 #ffb28fd9;--card-gap:var(--space-6);--polka-bg:var(--palette-pink);--polka-dot:var(--palette-peach);--polka-spacing:1.75rem;--polka-dot-size:.22rem;--polka-fade-max:.3;--shadow-sm:0 1px 4px #ffadbb2e;--shadow-md:0 4px 14px #ffadbb38;--shadow-lg:0 8px 28px #e88fa033;--shadow-soft:0 2px 18px #ffadbb47;--bottom-nav-height:4.75rem;--sidebar-width:16rem;--max-width-app:480px;--max-width-content:1200px;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.app-main{padding-bottom:calc(var(--bottom-nav-height) + var(--space-4));flex:1}@media (min-width:1024px){.app-shell{flex-direction:row}.app-main{margin-left:var(--sidebar-width);padding-bottom:var(--space-8);max-width:calc(100% - var(--sidebar-width))}}.app-content{max-width:var(--max-width-app);padding:var(--space-5) var(--space-4) var(--space-8);margin:0 auto}@media (min-width:768px){.app-content{max-width:640px;padding:var(--space-6)}}@media (min-width:1024px){.app-content{max-width:800px;padding:var(--space-8)}}.page-back-wrap{margin-top:var(--space-5);padding-bottom:var(--space-2)}.page-back-btn{width:100%;min-height:2.75rem;color:var(--color-text);background:#fffbdeeb;border:2px solid #ffccbdd9;box-shadow:2px 2px #ffccbd59}.page-back-btn.btn-bloom-ghost:hover:not(:disabled),.page-back-btn:hover:not(:disabled){background:var(--palette-peach-light);border-color:var(--palette-peach);color:var(--color-text);box-shadow:3px 3px #ffb28f73}@media (max-width:1023px){.page-back-wrap{margin-top:var(--space-4);padding-bottom:calc(var(--space-2) + env(safe-area-inset-bottom,0px))}.bottom-nav-wrap{z-index:1000;pointer-events:none;padding:0;position:fixed;bottom:0;left:0;right:0}.bottom-nav.nav-card{pointer-events:auto;border-radius:var(--radius-card) var(--radius-card) 0 0;box-shadow:0 -4px 0 var(--card-shadow-color);border-bottom:none;margin-bottom:0;overflow:visible}.bottom-nav.nav-card.card-bloom{margin-bottom:0}.nav-card-body{padding:var(--space-2) var(--space-2) calc(var(--space-2) + env(safe-area-inset-bottom,0px));min-height:var(--bottom-nav-height);justify-content:space-between;align-items:center;gap:0;display:flex;overflow:visible}.bottom-nav-item{color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;border-radius:0;flex-direction:column;flex:1;justify-content:flex-start;align-items:center;gap:.2rem;min-width:0;padding:.15rem .1rem 0;font-size:.6875rem;font-weight:600;text-decoration:none;display:flex}.bottom-nav-item span{z-index:1;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;max-width:100%;line-height:1.15;position:relative;overflow:hidden}.bottom-nav-item i{font-size:1.125rem}.bottom-nav-item .bloom-icon{box-sizing:border-box;background:var(--palette-peach);border-radius:50%;width:2.6rem;height:2.6rem}@supports (color:color-mix(in lab,red,red)){.bottom-nav-item .bloom-icon{background:color-mix(in srgb,var(--palette-peach) 20%,#fffbdeeb)}}.bottom-nav-item .bloom-icon{border:2px solid #0000;flex-shrink:0}.bottom-nav-item .bloom-icon svg{width:1.85rem;height:1.85rem}.bottom-nav-item .bloom-icon svg [fill]:not([fill=none]){fill:#ee748c}.bottom-nav-item .bloom-icon svg [stroke]{stroke:#ee748c}.bottom-nav-item.active{color:#ee748c;background:0 0}.bottom-nav-item.active .bloom-icon{border-color:var(--card-outline-soft);background:var(--palette-peach)}@supports (color:color-mix(in lab,red,red)){.bottom-nav-item.active .bloom-icon{background:color-mix(in srgb,var(--palette-peach) 20%,#ffadbb73)}}.bottom-nav-item.highlight,.bottom-nav-item.highlight .nav-icon-wrap{width:auto;height:auto;box-shadow:none;background:0 0;border:none;border-radius:0;position:static;top:auto}.bottom-nav-item.highlight .nav-icon-wrap .bloom-icon{background:var(--palette-peach);border-radius:50%;width:2.6rem;height:2.6rem}@supports (color:color-mix(in lab,red,red)){.bottom-nav-item.highlight .nav-icon-wrap .bloom-icon{background:color-mix(in srgb,var(--palette-peach) 20%,#fffbdeeb)}}}@media (min-width:1024px){.bottom-nav-wrap{display:none}}.sidebar{display:none}@media (min-width:1024px){.sidebar{width:var(--sidebar-width);height:100dvh;padding:var(--space-4);z-index:1000;background:0 0;display:block;position:fixed;top:0;left:0}.sidebar-card{height:calc(100dvh - var(--space-8));flex-direction:column;margin:0;display:flex}.sidebar-card-header{padding:var(--space-3) var(--space-4);min-height:unset;background:#d9738a;justify-content:center;align-items:center;gap:0;line-height:0}.sidebar-card-header .bloom-logo--sidebar{max-height:3.75rem;max-width:calc(100% - var(--space-4));width:auto;margin:0;display:block}.sidebar-card-body{min-height:0;padding:var(--space-3) var(--space-4) var(--space-5)}.sidebar-card-body,.sidebar-nav{flex-direction:column;flex:1;display:flex}.sidebar-nav{gap:var(--space-2)}.sidebar-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-full);color:var(--color-text);font-weight:600;font-size:var(--font-size-sm);transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast);border:2px solid var(--card-outline-soft);background:var(--palette-cream-soft);cursor:pointer;text-align:left;width:100%;text-decoration:none;display:flex}.sidebar-item:hover{border-color:var(--card-outline);background:#fffbdebf;transform:translateY(-1px)}.sidebar-item.active{border-color:var(--card-outline);color:var(--color-accent-heart);background:#ffadbb8c;font-weight:700;box-shadow:3px 3px #ffccbda6}.sidebar-item i{flex-shrink:0;font-size:1.125rem}}.landing-page{overflow-x:hidden}.landing-nav{padding:var(--space-4) var(--space-6);max-width:var(--max-width-content);margin:var(--space-4) auto 0;border-radius:var(--radius-2xl);border:1px solid var(--color-border);background:#fffbde99;justify-content:space-between;align-items:center;display:flex}.landing-brand{align-items:center;display:inline-flex}.bloom-logo{object-fit:contain;width:auto;max-width:100%;height:auto;display:block}.bloom-logo--nav{max-height:3rem}.bloom-logo--sidebar{width:auto;max-height:3.75rem}.landing-hero{padding:var(--space-8) var(--space-6) var(--space-16);max-width:var(--max-width-content);gap:var(--space-10);align-items:center;margin:0 auto;display:grid}@media (min-width:768px){.landing-hero{padding:var(--space-12) var(--space-8) var(--space-16);grid-template-columns:1fr 1fr}}.landing-hero-content h1{font-size:clamp(var(--font-size-2xl),5vw,var(--font-size-4xl));line-height:var(--line-height-tight);margin-bottom:var(--space-4);color:var(--color-text)}.landing-hero-content p{font-size:var(--font-size-lg);color:var(--color-text-muted);margin-bottom:var(--space-6);line-height:var(--line-height-relaxed)}.landing-hero-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.landing-section{padding:var(--space-12) var(--space-6);max-width:var(--max-width-content);margin:0 auto}.landing-section:nth-child(2n):not(.landing-section-highlight){border-radius:var(--radius-2xl);margin-left:var(--space-4);margin-right:var(--space-4);background:#ffccbd59}.landing-section-highlight{border-radius:var(--radius-card);border:2px solid var(--card-outline-soft);box-shadow:var(--card-shadow);max-width:520px;width:calc(100% - var(--space-8));text-align:center;background:#fffbdeb3;margin-left:auto;margin-right:auto}.landing-section h2{font-size:var(--font-size-2xl);text-align:center;margin-bottom:var(--space-8)}.feature-grid{gap:var(--card-gap);display:grid}@media (min-width:768px){.feature-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.feature-grid{grid-template-columns:repeat(3,1fr)}}.feature-card{text-align:center}.feature-grid .card-bloom{margin-bottom:0}.feature-grid .card-bloom-header{background:var(--palette-peach-light)}.feature-card i{color:var(--color-accent-heart);margin-bottom:var(--space-3);font-size:2rem}.landing-footer{padding:var(--space-8) var(--space-6);text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm);border-top:1px solid var(--color-border);background:#fffbde80}.auth-page{min-height:100dvh;padding:var(--space-6);justify-content:center;align-items:center;display:flex}.auth-card{width:100%;max-width:420px}.auth-card h1{font-size:var(--font-size-2xl);margin-bottom:var(--space-2)}.auth-card--accent h1{text-align:center}.auth-card--accent{border:2.5px solid var(--card-outline);border-radius:var(--radius-card);box-shadow:var(--card-shadow);background:linear-gradient(135deg,#ffb6c89e,#fffbdee0 45%,#ffccbd8c)}.auth-card .subtitle{color:var(--color-text-muted);margin-bottom:var(--space-6)}.auth-form{gap:var(--space-4);flex-direction:column;display:flex}.auth-field-label{margin-bottom:var(--space-1);font-weight:600}.auth-gender-chips{margin-top:var(--space-2)}.auth-links{margin-top:var(--space-4);text-align:center;font-size:var(--font-size-sm);color:var(--color-text-muted)}.auth-card .duck-companion{gap:var(--space-2);margin-bottom:var(--space-4)}.auth-card .duck-message,.auth-card .mascot-caption{box-sizing:border-box;width:100%;max-width:100%;font-size:var(--font-size-xs);padding:var(--space-2) var(--space-4);font-weight:600;line-height:var(--line-height-normal);border-radius:var(--radius-lg)}@media (min-width:1024px){.auth-card .duck-message,.auth-card .mascot-caption{max-width:100%;padding:var(--space-2) var(--space-4)}}.page-header{margin-bottom:var(--space-8)}.page-header h1{font-size:var(--font-size-2xl);margin-bottom:var(--space-2);color:var(--color-accent-heart)}.page-header p{color:var(--color-text-muted);font-size:var(--font-size-base);margin:0}.page-mascot-section .page-header{margin-bottom:var(--space-3)}.page-mascot-section .page-header h1{margin-bottom:var(--space-1)}.page-mascot-section .duck-companion{gap:var(--space-3);margin-bottom:var(--space-4)}.page-mascot-section+.card-stack,.page-mascot-section+form.card-stack{margin-top:0}.page-mascot-section--compact .page-header{margin-bottom:var(--space-4)}.page-mascot-section--compact .page-header h1{margin-bottom:var(--space-2)}.page-mascot-section--compact .duck-companion{gap:var(--space-4);margin-bottom:var(--space-6)}.page-mascot-section--compact .bloom-mascot-img--wide{margin-top:-.25rem}.page-mascot-section--compact+form.card-stack{margin-top:var(--space-3)}.page-mascot-section--insights .page-header{margin-bottom:var(--space-4)}.page-mascot-section--insights .duck-companion{gap:var(--space-3);margin-bottom:var(--space-5)}.page-mascot-section--insights+.card-stack{margin-top:var(--space-2)}.page-mascot-section--pattern .duck-companion{gap:var(--space-3);margin-bottom:var(--space-4)}.page-header--calendar{margin-bottom:var(--space-6)}.page-header--calendar-minimal{margin-bottom:var(--space-3)}.page-header--calendar-minimal h1{margin-bottom:0}.page-header--calendar .page-header-copy{margin-bottom:var(--space-4)}@media (max-width:1023px){.page-header--calendar{align-items:start;column-gap:var(--space-3);row-gap:var(--space-3);grid-template-columns:auto 1fr;grid-template-areas:"mascot copy""panel panel";display:grid}.page-header--calendar .page-header-copy{grid-area:copy;margin-bottom:0}.page-header--calendar .calendar-hero{display:contents}.page-header--calendar .calendar-hero-mascot{flex:none;grid-area:mascot;justify-content:flex-start;align-items:flex-start;min-width:0;padding:0}.page-header--calendar .bloom-mascot-img--calendar-hero{width:min(5.5rem,28vw)}.page-header--calendar .calendar-hero-panel{grid-area:panel;width:100%;max-width:none;margin-left:0}}.calendar-hero{align-items:center;gap:var(--space-2);width:100%;display:flex}.calendar-hero-mascot{min-width:0;padding-right:var(--space-2);flex:1;justify-content:flex-end;align-items:center;line-height:0;display:flex}.bloom-mascot-img--calendar-hero{width:min(7.5rem,24vw);height:auto;display:block}.calendar-hero-panel{gap:var(--space-3);flex-direction:column;flex-shrink:0;width:min(100%,19.5rem);min-width:0;margin-left:auto;display:flex}.calendar-hero-panel .calendar-prediction-chip,.calendar-hero-panel .calendar-streak-card{width:100%;margin:0}.calendar-prediction-chip{padding:var(--space-3) var(--space-4);border:2px solid var(--card-outline-soft);border-radius:var(--radius-lg);background:linear-gradient(135deg,#ffadbb73,#fffbdee6 55%,#ffccbd59);box-shadow:3px 3px #ffccbd80}.calendar-prediction-chip-body{justify-content:space-between;align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.calendar-prediction-chip-copy{flex:1;min-width:0}.calendar-prediction-chip-eyebrow{text-transform:uppercase;letter-spacing:.03em;color:var(--palette-pink-dark,#c97a94);align-items:center;gap:.25rem;margin-bottom:.25rem;font-size:.7rem;font-weight:700;line-height:1.2;display:inline-flex}.calendar-prediction-chip-badge{border-radius:var(--radius-full);font-size:var(--font-size-xs);color:var(--color-accent-heart);background:#ffffffb8;border:1.5px solid #ffccbda6;flex-shrink:0;padding:.2rem .5rem;font-weight:700;line-height:1.2}.calendar-prediction-chip-headline{font-size:var(--font-size-base);color:var(--color-text);margin:0;font-weight:700;line-height:1.25}.calendar-prediction-chip-date{font-size:var(--font-size-xs);color:var(--color-text-muted);margin:.15rem 0 0;line-height:1.3}.calendar-prediction-delay-note{display:none}.calendar-delay-alert{display:block}@media (max-width:1023px){.calendar-delay-alert{display:none}.calendar-prediction-delay-note{color:var(--color-accent-heart);margin:.4rem 0 0;padding:0;font-size:.7rem;font-weight:600;line-height:1.35;display:block}.calendar-prediction-delay-note--standalone{border-radius:var(--radius-md);background:var(--palette-peach);width:100%;margin:0;padding:.4rem .55rem}@supports (color:color-mix(in lab,red,red)){.calendar-prediction-delay-note--standalone{background:color-mix(in srgb,var(--palette-peach) 20%,#fffbdeeb)}}.calendar-prediction-delay-note--standalone{border:1.5px solid var(--card-outline-soft)}}.calendar-prediction-chip-bar{height:.45rem;margin:0}.calendar-streak-card{justify-content:space-between;width:100%;padding:var(--space-3);border:2px solid var(--card-outline-soft);border-radius:var(--radius-lg);background:linear-gradient(135deg,#ffadbb8c,#fffbded9 50%,#ffb28f66);box-shadow:3px 3px #ffccbd8c}.calendar-streak-card,.calendar-streak-card-main{align-items:center;gap:var(--space-2);display:flex}.calendar-streak-card-main{flex:1;min-width:0}.calendar-streak-card-icon{background:var(--palette-cream-soft);border:2px solid var(--card-outline-soft);width:2.5rem;height:2.5rem;color:var(--color-accent-heart);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;display:flex;box-shadow:2px 2px #ffccbd8c}.calendar-streak-card-text{align-items:flex-start;gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.calendar-streak-card-count{font-size:var(--font-size-xl);color:var(--color-text);font-weight:700;line-height:1}.calendar-streak-card-label{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:var(--line-height-tight)}.calendar-streak-card-action{white-space:nowrap;font-size:var(--font-size-xs);flex-shrink:0;padding-left:.75rem;padding-right:.75rem}.duck-companion{align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.duck-companion svg{width:120px;height:120px}.duck-companion.sm svg{width:80px;height:80px}.duck-companion.lg svg{width:160px;height:160px}.bloom-mascot-img{object-fit:contain;width:min(240px,72vw);max-width:100%;height:auto;display:block}.bloom-mascot-img--wide{width:min(280px,85vw)}.bloom-mascot-img--hero{width:min(265px,82vw)}.bloom-mascot-img--highlight{width:min(240px,68vw)}.bloom-mascot-img--insights{width:min(275px,80vw)}.bloom-mascot-img--profile{width:min(240px,72vw)}.bloom-mascot-img--empty{width:min(160px,45vw)}.bloom-mascot-img--auth{width:min(160px,55vw)}.auth-hero-mascot{width:min(15rem,52vw);max-width:none}.landing-hero-mascot{justify-self:center}.duck-message,.mascot-caption{text-align:center;font-size:var(--font-size-sm);color:var(--color-text);max-width:320px;font-weight:600;line-height:var(--line-height-relaxed);padding:var(--space-3) var(--space-5);border:2px solid var(--card-outline-soft);border-radius:var(--radius-full);background:linear-gradient(135deg,#fffbdee6,#ffccbd73);margin:0;box-shadow:3px 3px #ffccbd80}@media (min-width:1024px){.duck-message,.mascot-caption{max-width:480px;padding:var(--space-3) var(--space-8)}}@media (max-width:1023px){.duck-message,.mascot-caption{text-align:left;border-radius:1.15rem;width:fit-content;max-width:100%;padding:.6rem .9rem;line-height:1.4}}.duck-companion.celebrating svg{animation:duck-bounce .6s}@keyframes duck-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.cycle-timeline{gap:var(--space-2);padding:var(--space-4);flex-direction:column;display:flex}@media (min-width:768px){.cycle-timeline{flex-direction:row;justify-content:space-between;align-items:center}}.timeline-step{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-size:var(--font-size-sm);color:var(--color-text-muted);border:2px solid #0000;display:flex}.timeline-step.active{border-color:var(--card-outline-soft);color:var(--color-text);background:#ffadbb59;font-weight:600}.timeline-step .dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.calendar-grid{gap:var(--space-2);grid-template-columns:repeat(7,1fr);display:grid}.calendar-header{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);padding-bottom:var(--space-3);border-bottom:2px dashed #ffadbb73;display:flex}.calendar-month-title{font-size:var(--font-size-lg);color:var(--color-accent-heart);letter-spacing:.02em;text-align:center;flex:1;margin:0;font-weight:700}.calendar-nav-btn{border:2px solid var(--color-accent-heart);background:linear-gradient(145deg,var(--palette-pink) 0,var(--palette-peach-light) 100%);width:2.5rem;height:2.5rem;color:var(--color-text);cursor:pointer;transition:transform var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.125rem;display:inline-flex;box-shadow:3px 3px #e85d7a40}.calendar-nav-btn:hover{background:linear-gradient(145deg,var(--palette-peach) 0,var(--palette-pink) 100%);transform:scale(1.06);box-shadow:4px 4px #e85d7a4d}.calendar-nav-btn:active{transform:scale(.96)}.calendar-weekday{text-align:center;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em;padding:var(--space-2);font-weight:700}.calendar-weekday:nth-child(7n+1),.calendar-weekday:nth-child(7n+7){color:var(--color-accent-heart)}.calendar-weekday:nth-child(7n+2),.calendar-weekday:nth-child(7n+6){color:#c45a72}.calendar-weekday:nth-child(7n+3),.calendar-weekday:nth-child(7n+5){color:#b86a58}.calendar-weekday:nth-child(7n+4){color:#a8435a}.calendar-day{aspect-ratio:1;border-radius:var(--radius-lg);font-size:var(--font-size-sm);cursor:pointer;background:var(--palette-peach-light);border:2px solid #0000;grid-template-rows:auto 1fr;place-items:stretch center;display:grid}@supports (color:color-mix(in lab,red,red)){.calendar-day{background:color-mix(in srgb,var(--palette-peach-light) 20%,var(--palette-cream-muted) 80%)}}.calendar-day{color:var(--color-text);min-height:44px;transition:background var(--transition-base),border-color var(--transition-base),box-shadow var(--transition-base),transform var(--transition-base);padding:.3rem .2rem .35rem;position:relative}.calendar-day-number{grid-row:1;align-self:start;font-weight:700;line-height:1}.calendar-day-body{flex-direction:column;grid-row:2;justify-content:flex-end;align-self:stretch}.calendar-day-body,.calendar-day-heart-wrap{align-items:center;width:100%;min-height:0;display:flex}.calendar-day-heart-wrap{flex:1;justify-content:center}.calendar-day-dots{flex-shrink:0;justify-content:center;align-items:center;gap:.18rem;width:100%;padding-bottom:.05rem;display:flex}.calendar-day-dot{border-radius:var(--radius-full);flex-shrink:0;width:.34rem;height:.34rem;display:inline-block;box-shadow:0 0 0 1px #ffffffb3}.calendar-day-dot--contraceptive.contraceptive-taken{background:#64a882f2}.calendar-day-dot--contraceptive.contraceptive-late{background:#e6aa50f2}.calendar-day-dot--contraceptive.contraceptive-missed{background:#dc7878f2}.calendar-day-dot--contraceptive.contraceptive-pause{background:#a0a0aad9}.calendar-day-dot--intimate.intimate-discharge{background:#c8a0d2f2}.calendar-day-dot--intimate.intimate-symptoms{background:#b482bef2}.calendar-day-dot--intimate.intimate-note{background:#d2b4dcd9}.register-section-focus{animation:register-section-pulse 1.2s ease-in-out 2}@keyframes register-section-pulse{0%,to{box-shadow:0 0 #78b48c00}50%{box-shadow:0 0 0 3px #78b48c59}}.calendar-day-heart{width:.95rem;height:.95rem;color:var(--color-accent-heart)}.calendar-day-heart svg{width:100%;height:100%;display:block}.calendar-day.has-log{border-color:var(--card-outline-soft);background:#ffadbb8c}.calendar-day:not(.other-month):hover{border-color:var(--card-outline-soft);z-index:2;background:#ffccbdb3;transform:scale(1.07)}.calendar-day.other-month{color:var(--color-text-muted);opacity:.5;cursor:default}.calendar-day.selected{border-color:var(--card-outline);background:#ffb28f8c;transform:scale(1.05)}.calendar-legend-heart{width:.8rem;height:.8rem;color:var(--color-accent-heart)}.calendar-legend-heart svg{width:100%;height:100%;display:block}.calendar-day.period{background:#ffadbba6}.calendar-day.spotting-outside{background:#e88d9f59;border:1px dotted #e88d9fd9}.calendar-day.predicted-period{border:1px dashed var(--palette-pink);background:#fffbded9}.calendar-day.fertile{background:#ffccbd8c}.calendar-day.ovulation{background:#ffb28f8c}.calendar-day.today,.calendar-day.today.fertile,.calendar-day.today.has-log,.calendar-day.today.ovulation,.calendar-day.today.period,.calendar-day.today.predicted-period,.calendar-day.today.spotting-outside{background:var(--palette-peach-light);border:2.5px solid var(--palette-peach);box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px #ffb28f6b;z-index:3}.calendar-day.today .calendar-day-number{color:var(--palette-brown);font-weight:800}@media (min-width:1024px){.calendar-day-heart{width:1.1rem;height:1.1rem}}@media (prefers-reduced-motion:reduce){.calendar-day.selected,.calendar-day:not(.other-month):hover{transform:none}}.calendar-legend{gap:var(--space-3);margin-top:var(--space-4);font-size:var(--font-size-xs);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.calendar-grid-footer{margin-top:var(--space-2);padding-top:var(--space-4);border-top:2px dashed #ffadbb73;grid-column:1/-1}.calendar-grid-footer .calendar-legend{align-items:center;gap:var(--space-3);flex-flow:wrap;margin-top:0}@media (max-width:480px){.calendar-grid-footer .calendar-legend{gap:var(--space-2)}}@media (max-width:767px){.page-header--calendar{margin-bottom:var(--space-4)}.page-header--calendar .page-header-copy{margin-bottom:var(--space-3)}.calendar-hero{gap:var(--space-2)}.calendar-hero-mascot{padding-right:var(--space-1)}.calendar-hero-panel{width:min(100%,19.5rem);max-width:19.5rem;margin-left:auto}.bloom-mascot-img--calendar-hero{width:min(5.75rem,20vw)}.calendar-streak-card{flex-wrap:wrap}.calendar-streak-card-action{margin-left:auto}.calendar-card .card-bloom-body{padding:var(--space-3)}.calendar-header{margin-bottom:var(--space-4);padding-bottom:var(--space-2);gap:var(--space-2)}.calendar-month-title{font-size:var(--font-size-base)}.calendar-nav-btn{width:2.25rem;height:2.25rem;font-size:1rem}.calendar-grid{gap:.3rem}.calendar-weekday{padding:var(--space-1) 0;letter-spacing:.02em;font-size:.625rem}.calendar-day{border-radius:var(--radius-md);border-width:1.5px;min-height:0;padding:.15rem .1rem .2rem;font-size:.6875rem}.calendar-day.today{box-shadow:0 0 0 1px var(--color-surface),0 0 0 3px #ffb28f6b;border-width:2.5px}.calendar-day-heart{width:.7rem;height:.7rem}.calendar-day-dot{width:.28rem;height:.28rem}.calendar-day.selected,.calendar-day:not(.other-month):hover{transform:none}.calendar-grid-footer{margin-top:var(--space-1);padding-top:var(--space-3)}.calendar-grid-footer .calendar-legend{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));font-size:.625rem;display:grid}.legend-item{gap:.35rem}.legend-dot{width:9px;height:9px}.calendar-legend-heart{width:.7rem;height:.7rem}}@media (max-width:360px){.calendar-hero{flex-direction:column;align-items:stretch}.calendar-hero-mascot{flex:none;justify-content:center;padding-right:0}.calendar-hero-panel{width:min(100%,19.5rem);margin-left:auto}.calendar-streak-card-main{justify-content:center}.calendar-grid-footer .calendar-legend{grid-template-columns:1fr}}.legend-item{align-items:center;gap:var(--space-2);display:flex}.legend-dot{border-radius:var(--radius-sm);width:12px;height:12px}.legend-dot-period{background:#ffadbbbf}.legend-dot-today{background:var(--palette-peach-light);border:2px solid var(--palette-peach);box-shadow:0 0 0 1px var(--color-surface)}.legend-dot-spotting{background:#e88d9f8c;border:1px dotted #e88d9fd9}.legend-dot-predicted{border:1px dashed var(--palette-pink);background:#fffbdee6}.legend-dot-fertile{background:#ffccbdbf}.legend-dot-ovulation{background:#ffb28fbf}.legend-dot-contraceptive-taken{background:#78b48cd9}.legend-dot-contraceptive-missed{background:#dc7878d9}.legend-dot-intimate{background:#c8a0d2d9}.legend-dot-intimate-today{background:#ffadbbd9;border:1px solid #e88d9ff2}.streak-banner{background:linear-gradient(135deg,#ffadbb8c,#fffbded9 50%,#ffb28f66)}.streak-banner-inner{align-items:center;gap:var(--space-5);width:100%;display:flex}.streak-banner-icon{background:var(--palette-cream-soft);border:2.5px solid var(--card-outline);width:3.75rem;height:3.75rem;color:var(--color-accent-heart);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.5rem;display:flex;box-shadow:4px 4px #ffccbdb3}.streak-banner-text{flex:1;min-width:0}.streak-banner-count{font-size:var(--font-size-3xl);color:var(--color-text);margin:0;font-weight:700;line-height:1}.streak-banner-label{margin:var(--space-1) 0 0;color:var(--color-text-muted);font-size:var(--font-size-sm)}.streak-banner-action{flex-shrink:0}@media (max-width:400px){.streak-banner-inner{flex-wrap:wrap}.streak-banner-action{width:100%}}.calendar-card{overflow:hidden}.calendar-card .card-bloom-body{padding:var(--space-5)}.profile-stats-grid{gap:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}.profile-stats-grid .card-bloom{margin-bottom:0}.profile-stat-hint{color:var(--color-text-muted)}.profile-know-score{gap:var(--space-5);align-items:flex-start;display:flex}.profile-know-score-ring{--know-score:0;background:radial-gradient(circle closest-side,var(--palette-cream-soft) 78%,transparent 80% 100%),conic-gradient(var(--palette-pink) calc(var(--know-score) * 1%),#ffccbd73 0);border-radius:50%;flex-shrink:0;place-items:center;width:5.5rem;height:5.5rem;display:grid;box-shadow:inset 0 0 0 2px #ffb28f59}.profile-know-score-value{font-size:var(--font-size-lg);color:var(--color-text);font-weight:700}.profile-know-score-copy{flex:1;min-width:0}.profile-know-score-copy p{font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);color:var(--color-text)}.profile-confidence{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.profile-confidence-label{font-size:var(--font-size-sm);color:var(--color-text-muted)}.profile-confidence-badge{border-radius:var(--radius-full);font-size:var(--font-size-xs);color:var(--color-text);background:#ffccbd73;align-items:center;padding:.2rem .65rem;font-weight:700;display:inline-flex}.profile-confidence-badge--high{background:#ffadbba6}.profile-confidence-badge--medium{background:#ffdcbebf}.profile-confidence-badge--insufficient,.profile-confidence-badge--low{border:1px solid var(--card-outline-soft);background:#fff9ebf2}.profile-milestone-head{justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.profile-milestone-label{font-size:var(--font-size-sm);font-weight:600}.profile-milestone-percent{font-size:var(--font-size-sm);color:var(--color-accent-heart);font-weight:700}.profile-milestone-bar{border-radius:var(--radius-full);background:#ffccbd59;height:.5rem;overflow:hidden}.profile-milestone-fill{border-radius:inherit;background:linear-gradient(90deg,var(--palette-pink),var(--palette-peach));height:100%;transition:width var(--transition-base);display:block}.profile-milestone-hint{margin-top:var(--space-2);color:var(--color-text-muted)}.profile-signature{align-items:center;gap:var(--space-4);display:flex}.profile-signature-icon{flex-shrink:0;line-height:0}.profile-signature-mood{font-size:var(--font-size-xl);margin:0;font-weight:700}.profile-badges{gap:var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.profile-badge{align-items:center;gap:var(--space-2);min-width:5.5rem;padding:var(--space-3) var(--space-2);border-radius:var(--radius-lg);opacity:.55;transition:opacity var(--transition-fast),transform var(--transition-fast);background:#fff9eba6;border:2px dashed #ffb28f73;flex-direction:column;display:flex}.profile-badge--unlocked{opacity:1;border-style:solid;border-color:var(--card-outline-soft);background:var(--palette-cream-soft);box-shadow:2px 2px #ffb28f59}.profile-badge-icon{line-height:0}.profile-badge-label{font-size:var(--font-size-xs);text-align:center;font-weight:700;line-height:var(--line-height-tight)}.profile-quick-links{gap:var(--space-3);display:flex}.profile-pattern-card{border:2.5px solid var(--card-outline);border-radius:var(--radius-card);width:100%;box-shadow:var(--card-shadow);cursor:pointer;text-align:left;transition:transform var(--transition-fast),box-shadow var(--transition-fast);background:linear-gradient(135deg,#ffb6c880,#fffbdec7 45%,#ffccbd70);padding:0;display:block;position:relative;overflow:hidden}.profile-pattern-card:hover{box-shadow:var(--card-shadow-hover);transform:translate(-2px,-2px)}.profile-pattern-card:active{box-shadow:var(--card-shadow);transform:translate(0)}.profile-pattern-card-glow{pointer-events:none;background:radial-gradient(circle,#ffb6c8a6 0,#ffccbd38 52%,#0000 72%);width:9.5rem;height:9.5rem;position:absolute;top:-2.25rem;right:-1.25rem}.profile-pattern-card-inner{align-items:center;gap:1rem;padding:1.15rem 1.1rem;display:flex;position:relative}.profile-pattern-card-duck img{filter:drop-shadow(0 3px 6px #00000014);display:block}.profile-pattern-card-copy{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:flex}.profile-pattern-card-eyebrow{text-transform:uppercase;letter-spacing:.04em;color:var(--palette-pink-dark,#c97a94);align-items:center;gap:.3rem;font-size:.72rem;font-weight:700;display:inline-flex}.profile-pattern-card-title{color:var(--text-primary,#333);font-size:1.2rem;font-weight:700;line-height:1.2}.profile-pattern-card-text{color:var(--text-muted,#6c757d);margin-top:.15rem;font-size:.88rem;line-height:1.45}.profile-pattern-card-meta{color:var(--palette-pink-dark,#c97a94);margin-top:.35rem;font-size:.78rem;font-weight:600}.profile-pattern-card-arrow{width:2rem;height:2rem;color:var(--palette-pink-dark,#c97a94);background:#ffffff8c;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;display:inline-flex}.profile-pattern-card--panel{cursor:default;text-align:left}.profile-pattern-card--panel:active,.profile-pattern-card--panel:hover{box-shadow:var(--card-shadow);transform:none}.profile-pattern-card-panel{position:relative}.profile-pattern-card-body{flex-direction:column;gap:.85rem;padding:0 1.1rem 1.15rem;display:flex}.profile-pattern-card-body .contraceptive-status-grid{margin-top:.15rem}.profile-pattern-card-action{align-self:flex-start}.profile-cycle-regular .chip-grid{margin-top:var(--space-2)}@media (max-width:520px){.profile-know-score{text-align:center;flex-direction:column;align-items:center}.profile-confidence{justify-content:center}}.onboarding-progress{gap:var(--space-2);margin-bottom:var(--space-6);display:flex}.onboarding-dot{border-radius:var(--radius-full);height:4px;transition:background var(--transition-base);background:#ffccbd99;flex:1}.onboarding-dot.active,.onboarding-dot.completed{background:linear-gradient(90deg,var(--palette-pink),var(--palette-peach))}.onboarding-actions{justify-content:space-between;gap:var(--space-3);margin-top:var(--space-8);display:flex}.dash-hero{margin-bottom:var(--space-6)}.dash-hero .duck-companion{gap:var(--space-3);margin-bottom:var(--space-2)}.dash-hero+.card-stack{margin-top:var(--space-2)}.dash-hero .page-header{margin-bottom:var(--space-3)}.dash-cycle-brief{margin-bottom:var(--space-4)}.dash-cycle-line{font-weight:700;font-size:var(--font-size-lg);margin:0 0 var(--space-1)}.dash-cycle-sub{font-size:var(--font-size-sm);margin:0}.dash-main-stack{gap:var(--space-4)}.dash-section-title{font-size:var(--font-size-base);margin:0 0 var(--space-3);font-weight:700}.dash-today-section{margin:0}.dash-today-promos{gap:var(--space-3);flex-direction:column;display:flex}.dash-home-actions{flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:36rem;margin:1.5rem auto 0;display:flex}.dash-home-actions .btn-bloom-care{width:100%;color:var(--color-text);-webkit-text-fill-color:var(--color-text)}.dash-checkin-row{justify-content:center;align-items:center;gap:.75rem;width:100%;display:flex}.dash-checkin-btn{justify-content:center;min-width:min(18.5rem,100%);padding-inline:1.5rem;display:inline-flex}.dash-checkin-plus{font-size:1.15rem;font-weight:700;line-height:1}.dash-calendar-btn{border-radius:var(--radius-full);flex-shrink:0;width:2.85rem;height:2.85rem;min-height:2.85rem;padding:0}.profile-pattern-card-meta--ok{color:#2d8a4e}.profile-pattern-card-meta--warn{color:#a64d62}.profile-pattern-card-meta--muted{color:var(--color-text-muted)}.dash-summary-grid{gap:var(--space-3);padding:var(--space-3) var(--space-4);grid-template-columns:repeat(auto-fit,minmax(5.5rem,1fr));display:grid}.dash-summary-item{gap:var(--space-1);flex-direction:column;display:flex}.dash-summary-label{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:600}.dash-summary-bars,.dash-summary-value{font-size:var(--font-size-lg);line-height:1.2}.dash-summary-empty{color:var(--color-text-muted)}.chip--locked{opacity:.85;cursor:default}.chip--soon:not(.selected){border-style:dashed}.module-picker-chips{margin-top:var(--space-2)}.scale-input{margin-top:var(--space-4);flex-wrap:wrap;gap:.5rem;display:flex}.scale-input button{border-radius:var(--radius-lg);border:2px solid var(--card-outline-soft);background:var(--palette-cream-soft);cursor:pointer;width:2.5rem;height:2.5rem;font-size:var(--font-size-sm);color:var(--color-text);transition:transform var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);font-weight:600}.scale-input button:hover{border-color:var(--palette-pink);transform:translateY(-1px)}.scale-input button.selected{background:var(--palette-pink);border-color:var(--card-outline);font-weight:700;box-shadow:3px 3px #ffb28f8c}.chart-container{height:200px;margin:var(--space-4) 0;position:relative}.bloom-prediction-headline{align-items:center;gap:var(--space-2);font-size:var(--font-size-xl);margin:0 0 var(--space-2);font-weight:700;display:flex}.bloom-confidence-bar{border-radius:var(--radius-full);background:#ffccbd59;height:.65rem;overflow:hidden}.bloom-confidence-fill{border-radius:inherit;background:linear-gradient(90deg,var(--palette-pink),var(--palette-peach));height:100%;display:block}.bloom-confidence-meta{align-items:baseline;gap:var(--space-2);margin-top:var(--space-2);display:flex}.bloom-confidence-percent{font-size:var(--font-size-lg);color:var(--color-accent-heart);font-weight:700}.bloom-confidence-label{font-size:var(--font-size-sm);color:var(--color-text-muted)}.bloom-prediction-explanation{margin-top:var(--space-3);color:var(--color-text-muted)}.bloom-prediction-date{margin:0 0 var(--space-3)}.bloom-prediction-card--compact{margin-bottom:0}.bloom-prediction-card--compact .card-bloom-header{padding:var(--space-2) var(--space-3)}.bloom-prediction-card--compact .card-bloom-title{font-size:var(--font-size-sm)}.bloom-prediction-card--compact .card-bloom-body{padding:var(--space-3)}.bloom-prediction-card--compact .bloom-prediction-headline{font-size:var(--font-size-base);margin-bottom:var(--space-1)}.bloom-prediction-card--compact .bloom-prediction-date{margin-bottom:var(--space-2)}.bloom-prediction-card--compact .bloom-confidence-bar{height:.5rem}.bloom-prediction-card--compact .bloom-confidence-percent{font-size:var(--font-size-base)}.bloom-prediction-card--compact .bloom-fertility-disclaimer,.bloom-prediction-card--compact .bloom-prediction-explanation{display:none}.duck-observations{gap:var(--space-4);flex-direction:column;display:flex}.duck-observation{gap:var(--space-3);align-items:flex-start;display:flex}.duck-observation-icon{flex-shrink:0;line-height:0}.duck-observation-icon p{margin:0}.duck-observation-title{font-size:var(--font-size-sm);margin:0 0 var(--space-1);font-weight:700}.duck-observation-body{font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);color:var(--color-text)}.bloom-anomaly-alert{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);background:#fff9ebf2;border:2px solid #ffb28fa6;display:flex}.bloom-anomaly-icon{flex-shrink:0;line-height:0}.bloom-anomaly-title{margin:0 0 var(--space-1);font-weight:700}.bloom-anomaly-body{margin:0 0 var(--space-2);font-size:var(--font-size-sm)}.bloom-anomaly-disclaimer{color:var(--color-text-muted);font-size:var(--font-size-xs)}.bloom-fertility-disclaimer{color:var(--color-text-muted);line-height:var(--line-height-relaxed)}.bloom-delay-alert{margin-bottom:var(--space-4)}.calendar-fertility-disclaimer{text-align:left}.cycle-comparison-table-wrap{overflow-x:auto}.cycle-comparison-table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.cycle-comparison-table td,.cycle-comparison-table th{padding:var(--space-3) var(--space-2);border-bottom:1px solid var(--card-outline-soft);text-align:left}.cycle-comparison-table thead th{color:var(--color-text-muted);font-weight:600}.cycle-comparison-duck{gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-3);border-radius:var(--radius-lg);background:var(--palette-cream-soft);font-size:var(--font-size-sm);align-items:flex-start;display:flex}.cycle-comparison-duck .bloom-icon{flex-shrink:0}.cycle-retro-list{gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}.cycle-retro-item{align-items:center;gap:var(--space-3);display:flex}.cycle-retro-title{align-items:center;gap:var(--space-2);margin:0 0 var(--space-2);font-weight:700;display:flex}.cycle-retro-duck{gap:var(--space-3);font-size:var(--font-size-sm);align-items:flex-start;display:flex}.bloom-select{width:100%;padding:var(--space-3) var(--space-4);border:2px solid var(--card-outline-soft);border-radius:var(--radius-lg);background-color:var(--palette-cream-soft);font-family:inherit;font-size:var(--font-size-base);color:var(--color-text);cursor:pointer;appearance:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' aria-hidden='true'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%23FFADBB' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 1rem center;background-repeat:no-repeat;background-size:1rem;padding-right:2.75rem;font-weight:600}.bloom-select:hover{border-color:var(--palette-pink);background-color:var(--palette-cream-muted)}.bloom-select:focus{border-color:var(--palette-pink);outline:none;box-shadow:0 0 0 3px #ffadbb59}.cycle-simulator-controls{gap:var(--space-5);flex-direction:column;display:flex}.cycle-simulator-label{font-size:var(--font-size-sm);color:var(--color-text);margin-bottom:var(--space-1);font-weight:700;display:block}.cycle-simulator-options{margin-top:0}.cycle-simulator-options .chip{justify-content:center;min-width:5.5rem}.cycle-simulator-result{padding:var(--space-4);border-radius:var(--radius-lg);border:2px solid var(--card-outline-soft);background:#fffbdeb8}.cycle-simulator-summary{margin-bottom:var(--space-3);font-weight:600}.cycle-simulator-phases{gap:var(--space-2);flex-direction:column;display:flex}.cycle-simulator-phase{justify-content:space-between;gap:var(--space-2);font-size:var(--font-size-sm);padding:var(--space-2) 0;border-bottom:1px dashed var(--card-outline-soft);display:flex}.cycle-simulator-phase-label{font-weight:600}.cycle-simulator-phase-dates{color:var(--color-text-muted);text-align:right}.symptom-body-card .card-bloom-body{padding:var(--space-4)}.symptom-body-map-hint{margin:0 0 var(--space-3);font-size:var(--font-size-xs);color:var(--color-text-muted)}.symptom-body-map{gap:var(--space-2);flex-direction:column;width:100%;margin:0;padding:0;list-style:none;display:flex}.symptom-body-zone{align-items:center;gap:var(--space-3);min-height:2.5rem;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:rgba(255,173,187,calc(.12 + var(--zone-intensity,1) * .06));border:1.5px solid #ffb28f73;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.symptom-body-zone-icon{line-height:0}.symptom-body-zone-copy{flex-direction:column;gap:.3rem;min-width:0;display:flex}.symptom-body-zone-label{font-size:var(--font-size-sm);font-weight:700;line-height:1.2}.symptom-body-zone-bar{border-radius:var(--radius-full);background:#fffbdeb3;height:.35rem;display:block;overflow:hidden}.symptom-body-zone-bar-fill{height:100%;width:var(--zone-fill,20%);border-radius:inherit;background:var(--color-accent-heart);display:block}.symptom-body-zone-count{font-size:var(--font-size-sm);color:var(--color-accent-heart);white-space:nowrap;font-weight:700}.bloom-tips{flex-direction:column}.bloom-tip,.bloom-tips{gap:var(--space-3);display:flex}.bloom-tip{font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);align-items:flex-start}.bloom-tip--action{cursor:pointer;padding:var(--space-3);border-radius:var(--radius-lg);border:1px solid var(--card-outline-soft);transition:transform var(--transition-fast);background:#fff9ebd9}.bloom-tip--action:hover{transform:translateY(-1px)}.bloom-tip-icon,.smart-followup-duck{flex-shrink:0;line-height:0}.smart-followup-duck p{margin:0}.btn-bloom-care{border:2.5px solid var(--card-outline);border-radius:var(--radius-full);width:100%;color:var(--color-text);-webkit-text-fill-color:var(--color-text);box-shadow:var(--card-shadow);background:linear-gradient(135deg,#ffc2ce,#ffd7c4);justify-content:center;align-items:center;gap:.65rem;padding:.85rem 1.25rem;font-size:1.05rem;font-weight:700;display:inline-flex}.btn-bloom-care:hover:not(:disabled){box-shadow:var(--card-shadow-hover);transform:translate(-1px,-1px)}.care-btn-duck{object-fit:contain;flex-shrink:0;width:2.15rem;height:2.15rem}.smart-followup-banner{gap:var(--space-3);padding:var(--space-4);margin-bottom:var(--space-4);border-radius:var(--radius-lg);background:var(--palette-cream-soft);border:2px solid var(--card-outline-soft);display:flex}.smart-followup-question{margin:0;font-weight:700}.smart-followup-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.care-mode-page{min-height:100dvh;padding:var(--space-6) var(--space-4);box-sizing:border-box;justify-content:center;align-items:center;display:flex}.care-mode-inner{width:100%;max-width:360px;margin:0 auto}.care-mode-hero{text-align:center;margin-bottom:var(--space-5)}.care-mode-mascot-wrap{margin-bottom:var(--space-3);justify-content:center;align-items:center;display:flex}.care-mode-hero h1{font-size:var(--font-size-xl);margin:0 0 var(--space-2);line-height:var(--line-height-tight)}.care-mode-hero p{color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);max-width:280px;margin:0 auto}.care-mode-mascot{max-width:120px;height:auto;margin:0 auto;width:120px!important}.care-mode-actions{gap:var(--space-2);flex-direction:column;width:100%;display:flex}.care-mode-action{justify-content:flex-start;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-xl);background:var(--palette-peach);border:2px solid #ffccbdd9;display:flex}@supports (color:color-mix(in lab,red,red)){.care-mode-action{background:color-mix(in srgb,var(--palette-peach) 20%,#fffbdeeb)}}.care-mode-action{font-size:var(--font-size-sm);color:var(--color-text);cursor:pointer;text-align:left;transition:transform var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast),border-color var(--transition-fast);font-weight:600;box-shadow:2px 2px #ffccbd59}.care-mode-action .bloom-icon{flex-shrink:0}.care-mode-action span{line-height:var(--line-height-normal)}.care-mode-action:hover{background:#ffccbd73;border-color:#ffccbdf2;transform:translateY(-1px);box-shadow:3px 3px #ffccbd66}.care-mode-exit{width:100%;margin-top:var(--space-5)}.care-mode-option.card-bloom-check,.care-mode-option.card-bloom-check:has(.bloom-checkbox-input:checked),.care-mode-option.card-bloom-check:hover,.care-mode-page .care-breathe-panel .btn-bloom,.care-mode-page .care-mode-exit{background:var(--palette-peach)}@supports (color:color-mix(in lab,red,red)){.care-mode-option.card-bloom-check,.care-mode-option.card-bloom-check:has(.bloom-checkbox-input:checked),.care-mode-option.card-bloom-check:hover,.care-mode-page .care-breathe-panel .btn-bloom,.care-mode-page .care-mode-exit{background:color-mix(in srgb,var(--palette-peach) 20%,#fffbdeeb)}}.care-mode-option.card-bloom-check,.care-mode-option.card-bloom-check:has(.bloom-checkbox-input:checked),.care-mode-option.card-bloom-check:hover,.care-mode-page .care-breathe-panel .btn-bloom,.care-mode-page .care-mode-exit{color:var(--color-text);border:2px solid #ffccbdd9;box-shadow:2px 2px #ffccbd59}.care-mode-page .care-breathe-panel .btn-bloom:hover:not(:disabled),.care-mode-page .care-mode-exit:hover:not(:disabled){background:var(--palette-peach)}@supports (color:color-mix(in lab,red,red)){.care-mode-page .care-breathe-panel .btn-bloom:hover:not(:disabled),.care-mode-page .care-mode-exit:hover:not(:disabled){background:color-mix(in srgb,var(--palette-peach) 20%,#fffbdeeb)}}.care-mode-page .care-breathe-panel .btn-bloom:hover:not(:disabled),.care-mode-page .care-mode-exit:hover:not(:disabled){color:var(--color-text);border-color:#ffccbdd9;box-shadow:2px 2px #ffccbd59}.care-breathe-panel{text-align:center;padding:var(--space-4);margin-top:var(--space-4);border-radius:var(--radius-lg);border:2px solid var(--card-outline-soft);background:#fff9ebe6}.care-breathe-phase{font-size:var(--font-size-lg);margin-bottom:var(--space-3);font-weight:700}.care-breathe-circle{width:100px;height:100px;margin:0 auto var(--space-3);background:radial-gradient(circle,var(--palette-pink),var(--palette-peach));border-radius:50%;transition:transform 4s ease-in-out}@media (max-width:400px){.care-mode-inner{max-width:100%}.care-mode-mascot{max-width:104px;width:104px!important}}.care-mode-intro{font-size:var(--font-size-lg);color:var(--color-accent-heart);margin:0 0 var(--space-2);font-weight:700}.care-mode-subtitle{color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);max-width:280px;margin:0 auto}.care-mode-action--active{background:#ffccbd8c;border-color:#ffccbdf2;box-shadow:3px 3px #ffccbd73}.care-mode-options{gap:var(--space-2);margin-top:var(--space-4);flex-direction:column;display:flex}.care-mode-option{margin-top:0!important}.rest-mode-banner{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);border-radius:var(--radius-lg);border:2px solid var(--card-outline-soft);background:#fffbdee6;display:flex}.rest-mode-banner-copy{font-size:var(--font-size-sm);line-height:var(--line-height-normal);flex-direction:column;gap:.15rem;display:flex}.rest-mode-banner-copy strong{color:var(--color-text)}.rest-mode-banner-copy span{color:var(--color-text-muted)}.care-status-list{gap:var(--space-2);font-size:var(--font-size-sm);flex-direction:column;padding:0;list-style:none;display:flex}.care-status-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}@media (min-width:768px){.care-mode-inner{max-width:400px}.care-mode-hero p,.care-mode-subtitle{max-width:340px}}@media (min-width:1024px){.care-mode-page{padding:var(--space-10) var(--space-6)}.care-mode-inner{max-width:440px;padding:var(--space-8) var(--space-7);background:var(--card-body-bg);border:2.5px solid var(--card-outline);border-radius:var(--radius-card);box-shadow:var(--card-shadow)}.care-mode-hero{margin-bottom:var(--space-6)}.care-mode-mascot{max-width:148px;width:148px!important}.care-mode-hero h1{font-size:var(--font-size-2xl)}.care-mode-hero p.care-mode-subtitle{font-size:var(--font-size-base);max-width:360px}.care-mode-actions{gap:var(--space-3)}.care-mode-action{padding:var(--space-3) var(--space-5);font-size:var(--font-size-base)}.care-breathe-circle{width:120px;height:120px}}@media (min-width:1440px){.care-mode-inner{max-width:460px;padding:var(--space-10) var(--space-8)}}.bloom-textarea--focus{border-color:var(--palette-pink);box-shadow:0 0 0 3px #ffadbb59}.cycle-journey-card .card-bloom-body{padding-top:1rem}.cycle-journey{flex-direction:column;display:flex}.cycle-journey-track{padding:0 .15rem .5rem;position:relative}.cycle-journey-rail{background:var(--palette-cream-dark,#f0e8d0);z-index:0;border-radius:999px;height:4px;position:absolute;top:2.65rem;left:12.5%;right:12.5%;overflow:hidden}.cycle-journey-progress{background:var(--palette-pink-dark,#e8a0b8);border-radius:999px;height:100%;transition:width .4s}.cycle-journey-nodes{z-index:1;justify-content:space-between;gap:.25rem;display:flex;position:relative}.cycle-journey-node{text-align:center;flex-direction:column;flex:1;align-items:center;min-width:0;display:flex}.cycle-journey-node-top{justify-content:center;align-items:flex-end;width:100%;height:2.35rem;display:flex}.cycle-journey-dot{background:var(--palette-cream-dark,#f0e8d0);border:2px solid var(--palette-pink-soft,#f5d0dc);z-index:2;border-radius:50%;flex-shrink:0;width:12px;height:12px;position:relative}.cycle-journey-node--done .cycle-journey-dot{background:var(--palette-pink-dark,#e8a0b8);border-color:var(--palette-pink-dark,#e8a0b8)}.cycle-journey-node--active .cycle-journey-dot{background:var(--palette-pink,#ffb6c8);border-color:var(--palette-pink-dark,#e8a0b8);width:14px;height:14px;box-shadow:0 0 0 4px #ffb6c859}.cycle-journey-label{color:var(--text-muted,#6c757d);-webkit-hyphens:auto;hyphens:auto;max-width:4.75rem;margin-top:.55rem;font-size:.68rem;line-height:1.25}.cycle-journey-node--active .cycle-journey-label{color:var(--text-primary,#333);font-weight:600}.cycle-journey-here{min-height:1rem;color:var(--palette-pink-dark,#c97a94);margin-top:.2rem;font-size:.58rem;font-weight:600;line-height:1.2;display:block}.cycle-journey-here--placeholder{visibility:hidden}.cycle-journey-duck{justify-content:center;align-items:flex-end;animation:cycle-journey-duck-bob 2.5s ease-in-out infinite;display:flex}.cycle-journey-duck-img{filter:drop-shadow(0 2px 4px #0000001a);transform:scaleX(-1)}@keyframes cycle-journey-duck-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.cycle-journey-meta{border-top:1px solid #ffadbb40;padding-top:.75rem}.cycle-journey-footer{justify-content:flex-end;padding-top:.75rem;display:flex}.cycle-journey-day{align-items:center;gap:.35rem;margin:0;display:flex}.cycle-today-card{flex-direction:column;gap:1.15rem;display:flex}.dash-main-stack>.cycle-today-panel{width:100%;max-width:32rem;margin-left:auto;margin-right:auto}.cycle-today-main{flex-direction:column;align-items:flex-start;gap:.55rem;display:flex}.cycle-today-day{margin:0;font-size:clamp(1.35rem,2.4vw,1.7rem);font-weight:700;line-height:1.2}.cycle-today-period{line-height:1.45}.cycle-today-hint,.cycle-today-note,.cycle-today-period{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0}.cycle-today-footer{justify-content:center;display:flex}.cycle-today-footer .duck-explain-trigger{border-radius:var(--radius-full);border:2px solid var(--color-border);color:var(--color-text);background:#ffffffb3;min-height:2.25rem;padding:.4rem .85rem;font-weight:600}.btn-outline-bloom,.btn-outline-bloom:hover{border-color:var(--palette-pink-dark,#e8a0b8);color:var(--palette-pink-dark,#c97a94)}.btn-outline-bloom:hover{background:var(--palette-pink-soft,#fce4ec)}.self-compare-intro{font-size:.95rem}.self-compare-grid{flex-direction:column;gap:.75rem;display:flex}.self-compare-row{background:var(--palette-cream,#fffbde);border-radius:var(--radius-md,12px);justify-content:space-between;align-items:center;gap:.5rem;padding:.65rem .85rem;display:flex}.self-compare-label{font-weight:500}.self-compare-delta{align-items:center;gap:.25rem;font-size:.875rem;font-weight:600;display:flex}.self-compare-delta--up{color:#2d8a4e}.self-compare-delta--down{color:#c45c5c}.self-compare-delta--neutral{color:var(--text-muted,#6c757d);font-weight:500}.self-compare-arrow{font-size:1.1rem;line-height:1}.page-mascot-section--pattern .page-header{margin-bottom:.5rem}.page-mascot-section--pattern .duck-companion{margin-top:.25rem}.bloom-mascot-img--pattern{width:min(200px,52vw);height:auto}.page-mascot-section--pattern+.my-pattern-page{margin-top:.5rem}.my-pattern-page{gap:1rem}.my-pattern-progress-head{justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.65rem;display:flex}.my-pattern-progress-label{font-size:.9rem;font-weight:600}.my-pattern-progress-value{color:var(--palette-pink-dark,#c97a94);font-size:.85rem;font-weight:600}.my-pattern-progress-bar{background:var(--palette-cream-dark,#f0e8d0);border-radius:999px;height:.55rem;margin-bottom:.75rem;overflow:hidden}.my-pattern-progress-fill{background:linear-gradient(90deg,var(--palette-pink,#ffb6c8),var(--palette-pink-dark,#e8a0b8));border-radius:999px;height:100%;transition:width .4s;display:block}.my-pattern-progress-hint{color:var(--text-muted,#6c757d);font-size:.9rem;line-height:1.45}.my-pattern-steps{flex-direction:column;gap:.85rem;margin:0;padding:0;list-style:none;display:flex}.my-pattern-step{background:var(--palette-cream,#fffbde);border-radius:var(--radius-md,12px);border:1px solid #ffadbb33;align-items:flex-start;gap:.75rem;padding:.85rem .95rem;display:flex}.my-pattern-step--done{background:#ffb6c81f;border-color:#ffadbb73}.my-pattern-step-icon{width:1.35rem;height:1.35rem;color:var(--palette-pink-dark,#c97a94);background:#ffb6c840;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:inline-flex}.my-pattern-step--done .my-pattern-step-icon{background:var(--palette-pink-dark,#e8a0b8);color:#fff}.my-pattern-step-title{font-size:.92rem;font-weight:600}.my-pattern-step-hint{color:var(--text-muted,#6c757d);font-size:.82rem;line-height:1.4}.my-pattern-actions{flex-direction:column;gap:.65rem;display:flex}.my-pattern-actions .btn-bloom{justify-content:center;align-items:center;gap:.4rem;display:inline-flex}.my-pattern-hero{flex-direction:column;gap:.85rem;display:flex}.my-pattern-hero-bubble{background:var(--palette-cream,#fffbde);border:1px solid #ffadbb59;border-radius:1rem 1rem 1rem .35rem;padding:1.1rem 1.15rem;position:relative}.my-pattern-hero-quote{font-size:1.05rem;font-weight:600;line-height:1.5}.my-pattern-hero-meta{color:var(--text-muted,#6c757d);flex-wrap:wrap;gap:.35rem;font-size:.82rem;display:flex}.my-pattern-stats{margin:0}.my-pattern-stat{text-align:center}.my-pattern-stat-icon{margin-bottom:.35rem;display:inline-flex}.my-pattern-stat-hint{color:var(--text-muted,#6c757d)}.my-pattern-discoveries{flex-direction:column;gap:.85rem;display:flex}.my-pattern-discovery{background:var(--palette-cream,#fffbde);border-radius:var(--radius-md,12px);align-items:flex-start;gap:.85rem;padding:.9rem 1rem;display:flex}.my-pattern-discovery-title{font-size:.92rem;font-weight:600}.my-pattern-discovery-body{color:var(--text-muted,#6c757d);font-size:.88rem;line-height:1.45}.my-pattern-disclaimer{text-align:center;color:var(--text-muted,#6c757d);margin:.5rem 0 0;font-size:.78rem;line-height:1.45}.duck-explain-modal{z-index:2000;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}.duck-explain-modal[hidden]{display:none}.duck-explain-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#4a323847;position:absolute;inset:0}.duck-explain-sheet{scrollbar-width:thin;scrollbar-color:#6b4a421f transparent;background:linear-gradient(180deg,var(--palette-peach-light) 0,var(--palette-cream-soft) 42%,var(--color-background) 100%);text-align:center;border:none;border-radius:1.35rem 1.35rem 0 0;width:100%;max-width:26rem;max-height:88vh;padding:1.35rem 1.25rem 1.75rem;animation:duck-explain-slide .28s;position:relative;overflow:hidden auto;box-shadow:0 -8px 32px #4a323824}.duck-explain-sheet::-webkit-scrollbar{width:4px}.duck-explain-sheet::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:#6b4a421f}.duck-explain-glow{pointer-events:none;background:radial-gradient(circle,#ffadbb73 0,#ffccbd1f 55%,#0000 72%);width:9rem;height:9rem;position:absolute;top:-2.5rem;right:-1.5rem}@keyframes duck-explain-slide{0%{opacity:.92;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.duck-explain-close{z-index:2;border:2px solid var(--color-border);border-radius:var(--radius-full);width:2rem;height:2rem;color:var(--palette-brown);cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast),transform var(--transition-fast);background:#fffbded1;justify-content:center;align-items:center;padding:0;font-size:1.2rem;line-height:1;display:inline-flex;position:absolute;top:.85rem;right:.85rem}.duck-explain-close:hover{border-color:var(--palette-pink);background:var(--palette-cream-soft);transform:scale(1.04)}.duck-explain-trigger{align-items:center;gap:.35rem;display:inline-flex}.duck-explain-hero{margin:.25rem auto .85rem;padding:.85rem .75rem .35rem}.duck-explain-duck,.duck-explain-hero{justify-content:center;align-items:center;display:flex}.duck-explain-duck{border-radius:var(--radius-full);background:#fffbde6b;border:1.5px solid #ffb28f52;width:11.5rem;height:11.5rem;box-shadow:inset 0 0 0 1px #ffffff59,0 8px 22px #ffb28f24}.duck-explain-duck img{object-fit:contain;width:9.5rem;height:9.5rem;display:block}.duck-explain-eyebrow{letter-spacing:.05em;text-transform:uppercase;color:var(--palette-brown);opacity:.82;margin:0 0 .35rem;font-size:.72rem;font-weight:700}.duck-explain-title{text-align:center;color:var(--color-text);margin:0 0 .85rem;font-size:1.28rem;font-weight:800;line-height:1.25}.duck-explain-body-wrap{background:0 0;border:none;border-radius:0;margin-bottom:.85rem;padding:0}.duck-explain-body{text-align:center;color:var(--color-text);margin:0;font-size:.98rem;line-height:1.6}.duck-explain-disclaimer{color:var(--color-text-muted);text-align:center;margin:0;padding:0 .35rem}.duck-explain-disclaimer small{font-size:.75rem;line-height:1.45}body.duck-explain-open{overflow:auto}@media (min-width:576px){.duck-explain-modal{align-items:center;padding:1rem}.duck-explain-sheet{border-radius:var(--radius-card);border:none;max-width:24rem;padding:1.5rem 1.35rem 1.65rem}.duck-explain-duck{width:12.5rem;height:12.5rem}.duck-explain-duck img{width:10.5rem;height:10.5rem}}.page-mascot-section--tools .page-header{margin-bottom:var(--space-3,.75rem)}.page-mascot-section--tools .duck-companion{gap:var(--space-2,.5rem);margin-bottom:var(--space-4,1rem)}.bloom-mascot-img--tools{width:min(180px,46vw);height:auto}.doctor-report-mascot{width:min(11rem,44vw);max-width:none}.doctor-report-empty-mascot{width:min(7.5rem,32vw);height:auto}.normalcy-page-mascot{width:min(15rem,52vw);max-width:none}.phase2-page{gap:1rem}.phase2-progress-bar{background:var(--palette-cream-dark,#f0e8d0);border-radius:999px;height:.55rem;overflow:hidden}.phase2-progress-fill{background:linear-gradient(90deg,var(--palette-pink,#ffb6c8),var(--palette-pink-dark,#e8a0b8));border-radius:999px;height:100%;transition:width .35s;display:block}.necessaire-progress-head{justify-content:space-between;margin-bottom:.6rem;font-size:.9rem;font-weight:600;display:flex}.necessaire-progress-percent{color:var(--palette-pink-dark,#c97a94)}.necessaire-list{flex-direction:column;gap:.5rem;display:flex}.necessaire-item{background:var(--palette-cream,#fffbde);border-radius:var(--radius-md,12px);cursor:pointer;border:1px solid #ffadbb33;align-items:center;gap:.75rem;padding:.75rem .85rem;display:flex}.necessaire-item:has(.bloom-checkbox-input:checked){background:#ffb6c81f;border-color:#ffadbb8c}.necessaire-item-label{flex:1;font-size:.92rem}.necessaire-item--custom{position:relative}.necessaire-remove{color:var(--text-muted,#6c757d);cursor:pointer;background:0 0;border:none;padding:.15rem .35rem;font-size:1.2rem;line-height:1}.phase2-inline-form{gap:.5rem;display:flex}.phase2-inline-form .bloom-input{flex:1}.page-mascot-section--tools+.card-stack,.page-mascot-section--tools+.phase2-page{margin-top:var(--space-2,.5rem)}.planner-page{gap:var(--card-gap,1rem)}.planner-form{gap:var(--space-4,1rem);text-align:left;flex-direction:column;display:flex}.planner-field{width:100%;min-width:0}.planner-field label{text-align:left;width:100%;display:block}.planner-field input{box-sizing:border-box;width:100%;max-width:100%}.planner-date-grid{gap:var(--space-3,.75rem);grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.planner-submit{margin-top:var(--space-1,.25rem)}.planner-empty-hint{margin-top:var(--space-4,1rem);padding-top:var(--space-4,1rem);color:var(--text-muted,#6c757d);text-align:center;border-top:1px dashed #ffadbb59;font-size:.88rem;line-height:1.45}.planner-form-card .card-bloom-body{text-align:left}.phase2-form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;width:100%;display:grid}.phase2-form-row .form-bloom{min-width:0}.phase2-actions{flex-direction:column;gap:.65rem;display:flex}.phase2-badge{text-transform:uppercase;letter-spacing:.02em;border-radius:999px;padding:.2rem .55rem;font-size:.72rem;font-weight:700;display:inline-block}.phase2-badge--ok{color:#2d8a4e;background:#2d8a4e1f}.phase2-badge--warn{color:#a64d62;background:#ffadbb59}.phase2-badge--muted{color:var(--color-text-muted);background:#3d2c3314}.planner-event-meta{align-items:center;gap:.65rem;margin-bottom:.75rem;display:flex}.planner-duck{background:var(--palette-cream,#fffbde);border-radius:var(--radius-md,12px);align-items:flex-start;gap:.5rem;margin-bottom:.75rem;padding:.85rem;display:flex}.planner-suggestions{color:var(--text-muted,#6c757d);margin:0;padding-left:1.1rem;font-size:.88rem}.planner-event-actions{flex-wrap:wrap;gap:.5rem;display:flex}.planner-card--warn{border-color:#ffadbb73}.phase2-btn-muted{opacity:.85}.phase2-tools-grid{grid-template-columns:repeat(3,1fr);gap:.65rem;display:grid}.phase2-tool-btn{border-radius:var(--radius-md,12px);background:var(--palette-cream,#fffbde);color:inherit;cursor:pointer;border:1px solid #ffadbb59;flex-direction:column;align-items:center;gap:.45rem;padding:.85rem .5rem;font-size:.78rem;font-weight:600;transition:background .15s,transform .15s;display:flex}.phase2-tool-btn:hover{background:#ffb6c82e;transform:translateY(-1px)}.normalcy-list,.normalcy-result{flex-direction:column;gap:.75rem;display:flex}.normalcy-item{border-radius:var(--radius-md,12px);background:var(--palette-cream,#fffbde);align-items:flex-start;gap:.75rem;padding:.85rem;display:flex}.normalcy-item--typical{border-left:3px solid #2d8a4e}.normalcy-item--unusual{border-left:3px solid #c45c5c}.normalcy-item--new,.normalcy-item--occasional,.normalcy-item--unknown{border-left:3px solid var(--palette-pink-dark,#e8a0b8)}.normalcy-title{font-size:.92rem;font-weight:600}.normalcy-body{color:var(--text-muted,#6c757d);font-size:.88rem;line-height:1.45}.normalcy-chips{margin-bottom:0}.doctor-report{border-radius:var(--radius-md,12px);background:#fff;border:1px solid #00000014;padding:1.25rem}.doctor-report-header{border-bottom:1px solid #00000014;margin-bottom:1rem;padding-bottom:.85rem}.doctor-report-title{margin-bottom:.35rem;font-size:1.15rem}.doctor-report-meta{color:var(--text-muted,#6c757d);margin:0;font-size:.85rem}.doctor-report-section{margin-bottom:1.25rem}.doctor-report-section h3{margin-bottom:.5rem;font-size:.95rem}.doctor-report-list{margin:0;padding-left:1.1rem;font-size:.88rem;line-height:1.55}.doctor-report-cycle{border-bottom:1px dashed #00000014;padding:.75rem 0}.doctor-report-cycle:last-child{border-bottom:none}.doctor-report-cycle-title{margin-bottom:.35rem;font-size:.9rem;font-weight:600}.doctor-report-footer{color:var(--text-muted,#6c757d);border-top:1px solid #00000014;margin-top:1rem;padding-top:.85rem;font-size:.78rem}.phase2-empty{padding:.5rem 0}@media print{.bottom-nav,.card-bloom-header .card-bloom-dots,.page-back-wrap,.page-mascot-section--no-print,.phase2-actions--no-print{display:none!important}.doctor-report{border:none;padding:0}body{background:#fff!important}}@media (max-width:520px){.phase2-form-row,.planner-date-grid{grid-template-columns:1fr}.phase2-tools-grid{grid-template-columns:1fr 1fr}.phase2-inline-form{flex-direction:column}}.page-mascot-section--relations .relations-page-mascot{width:min(15rem,52vw);max-width:none}.relations-page .relations-details summary{cursor:pointer;color:var(--color-text);font-weight:600}.relations-page .relations-details[open] summary{margin-bottom:var(--space-2)}.relations-check-grid{gap:var(--space-3);display:grid}.relations-history{gap:var(--space-3);flex-direction:column;display:flex}.relations-history-item{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:#ffffff73;display:flex}.relations-history-title{font-weight:700}.relations-history-remove{color:var(--color-text-muted);padding:0 var(--space-1);cursor:pointer;background:0 0;border:none;font-size:1.25rem;line-height:1}.relations-history-remove:hover{color:var(--color-text)}.relations-pin-form input[type=tel],.relations-pin-input{letter-spacing:.35em;text-align:center}.relations-lock-page{gap:var(--space-5);width:min(100%,22rem);padding:var(--space-2) 0 var(--space-4);margin:0 auto}.relations-lock-hero,.relations-lock-page{align-items:center;flex-direction:column;display:flex}.relations-lock-hero{text-align:center;gap:var(--space-4);width:100%}.relations-lock-mascot{object-fit:contain;width:min(14rem,58vw);height:auto;display:block}.relations-lock-copy h1{margin:0 0 var(--space-2);font-size:var(--font-size-2xl);line-height:var(--line-height-tight);color:var(--color-text)}.relations-lock-copy p{color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:var(--line-height-normal);margin:0;max-width:16rem;margin-inline:auto}.relations-lock-stack{gap:0;width:100%;margin:0}.relations-lock-card{width:100%;margin-bottom:0}.relations-pin-form{gap:var(--space-4);flex-direction:column;width:100%;display:flex}.relations-pin-field{width:100%}.relations-pin-field label{text-align:center}.relations-pin-input{width:100%;font-size:var(--font-size-lg);padding-block:var(--space-3)}.relations-pin-help{text-align:center;margin-top:var(--space-4);line-height:var(--line-height-normal)}.relations-lock-page .page-back-wrap{width:100%}.privacy-section-divider{border-top:1px solid var(--color-border)}.privacy-section-title{font-weight:700}.privacy-status{margin:0;font-weight:600}.privacy-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}@media (max-width:1023px){.privacy-status{margin-bottom:var(--space-5)}.privacy-actions{margin-top:var(--space-1);gap:var(--space-3)}}.relations-history-feeling-row{align-items:center;gap:var(--space-2);display:inline-flex}.feeling-chip-grid{gap:var(--space-2)}.chip.feeling-chip{justify-content:center;align-items:center;gap:var(--space-2);min-height:2.75rem;display:inline-flex}.chip.feeling-chip .bloom-icon{flex-shrink:0}@media (max-width:767.98px){.nav-card-body--compact{padding-inline:0}.nav-card-body--compact .bottom-nav-item{padding-inline:.125rem;font-size:.625rem}}@media (max-width:1023px){html.pin-keyboard-open .bottom-nav-wrap{opacity:0;pointer-events:none;transform:translateY(110%)}html.pin-keyboard-open .relations-lock-mascot{width:min(6.75rem,30vw)}html.pin-keyboard-open .relations-lock-page{gap:var(--space-3)}html.pin-keyboard-open .relations-lock-page .page-back-wrap,html.pin-keyboard-open .relations-pin-help{display:none}}.page-mascot-section--contraceptive .contraceptive-hero-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.page-mascot-section--contraceptive .contraceptive-hero-copy{flex:1;min-width:0}.page-mascot-section--contraceptive .contraceptive-hero-copy .page-header{margin-bottom:.5rem}.page-mascot-section--contraceptive .contraceptive-hero-copy .mascot-caption{text-align:left;margin:0}.page-mascot-section--contraceptive .contraceptive-hero-duck{flex-shrink:0;align-items:flex-end;margin-bottom:0}.page-mascot-section--contraceptive .contraceptive-hero-mascot{width:min(15rem,52vw);max-width:none}.register-contraceptive-card-panel{padding:.65rem .85rem}.register-contraceptive-card-layout{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.register-contraceptive-card-stack{flex-direction:column;flex:1;align-items:flex-start;gap:.4cm;min-width:0;display:flex}.register-contraceptive-card-stack>*{margin:0}.register-contraceptive-card .profile-pattern-card-meta,.register-contraceptive-card .profile-pattern-card-text{margin-top:0}.register-contraceptive-card .profile-pattern-card-title{line-height:1.15}.register-contraceptive-card .register-contraceptive-card-duck{flex-shrink:0;line-height:0}.register-contraceptive-card .register-contraceptive-card-duck img{width:min(15rem,54vw);height:auto;display:block}.register-contraceptive-card .chip-grid,.register-contraceptive-card .contraceptive-status-grid{gap:.4cm;width:100%;margin-top:0}.register-contraceptive-card .profile-pattern-card-action{margin:0}.contraceptive-page .contraceptive-today-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.contraceptive-today-label{font-weight:700;font-size:var(--font-size-lg)}.contraceptive-status-grid{gap:var(--space-2)}.contraceptive-history{gap:var(--space-2);flex-direction:column;display:flex}.contraceptive-history-item{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);display:flex}.contraceptive-history-item:last-child{border-bottom:none}.contraceptive-extra-fields .form-bloom+.form-bloom{margin-top:var(--space-3)}.contraceptive-long-card p:last-child{margin-bottom:0}.calendar-contraceptive-card-inner .contraceptive-today-head,.register-contraceptive-card-inner .contraceptive-today-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.register-contraceptive-card.profile-pattern-card--panel .chip{background:#ffffffb8}.calendar-contraceptive-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}@media (max-width:1023px){.page-mascot-section--contraceptive .contraceptive-hero-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"copy duck""caption caption";align-items:start;gap:.65rem .75rem;display:grid}.page-mascot-section--contraceptive .contraceptive-hero-copy{display:contents}.page-mascot-section--contraceptive .contraceptive-hero-copy .page-header{grid-area:copy;margin-bottom:0}.page-mascot-section--contraceptive .contraceptive-hero-copy .mascot-caption{text-align:left;grid-area:caption;width:100%;max-width:100%;margin:0}.page-mascot-section--contraceptive .contraceptive-hero-duck{grid-area:duck;margin:0}.page-mascot-section--contraceptive .contraceptive-hero-mascot{width:min(8.5rem,38vw)}.contraceptive-page .card-bloom-soft:has(.contraceptive-today) .card-bloom-header{padding:.55rem .9rem}.contraceptive-page .card-bloom-soft:has(.contraceptive-today) .card-bloom-body{padding:.75rem .9rem .85rem}.contraceptive-page .contraceptive-today-head{gap:.35rem}.contraceptive-page .contraceptive-today-label{line-height:1.25;margin-bottom:.1rem!important}.contraceptive-page .contraceptive-today-head .text-muted{line-height:1.3}.contraceptive-page .contraceptive-today .chip-grid{gap:.5rem;margin-top:.55rem!important}.register-contraceptive-card.profile-pattern-card--panel{overflow:hidden}.register-contraceptive-card-layout{display:block;position:relative}.register-contraceptive-card-stack{gap:.4rem;width:100%;padding-right:min(8.75rem,40vw)}.register-contraceptive-card .profile-pattern-card-title{overflow-wrap:anywhere;word-break:break-word}.register-contraceptive-card .register-contraceptive-card-duck{pointer-events:none;width:min(10.25rem,42vw);max-width:44%;max-height:calc(100% - .2rem);position:absolute;top:.1rem;right:.05rem;overflow:hidden}.register-contraceptive-card .register-contraceptive-card-duck img{object-fit:contain;object-position:top right;width:100%;max-width:none;height:auto}.register-contraceptive-card .chip-grid,.register-contraceptive-card .contraceptive-status-grid{width:100%}.register-contraceptive-card .profile-pattern-card-action{width:auto;max-width:100%}}.intimate-health-mascot{width:min(13rem,48vw);max-width:none}.intimate-health-empty-mascot{width:min(10rem,38vw);height:auto}.calendar-contraceptive-card,.calendar-intimate-card,.register-contraceptive-card,.register-intimate-card{margin-bottom:var(--space-4)}.register-intimate-card .profile-pattern-card-glow{left:auto;right:-1.25rem}.register-intimate-card-panel{padding:.65rem .85rem}.register-intimate-card.profile-pattern-card--panel{overflow:hidden}.register-intimate-card-layout{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex;position:relative}.register-intimate-card-duck{pointer-events:none;width:min(11.5rem,36vw);max-width:42%;max-height:calc(100% - .3rem);line-height:0;position:absolute;top:.15rem;right:.15rem;overflow:hidden}.register-intimate-card .register-intimate-card-duck img{object-fit:contain;object-position:top right;width:100%;height:auto;max-height:min(14.5rem,100% - .3rem);display:block;position:static}.register-intimate-card-stack{flex-direction:column;flex:1;align-items:flex-start;gap:.4cm;width:100%;min-width:0;padding-right:min(9.5rem,38vw);display:flex}.register-intimate-card-stack>*{margin:0}.register-intimate-card .profile-pattern-card-meta,.register-intimate-card .profile-pattern-card-text{margin-top:0}.register-intimate-card .profile-pattern-card-title{line-height:1.15}.register-intimate-card .chip-grid,.register-intimate-card .intimate-symptom-grid{gap:.4cm;width:100%;margin-top:0}.register-intimate-card .intimate-today-form{width:100%}.register-intimate-card .period-section-label{margin-bottom:.35rem}.register-intimate-card .profile-pattern-card-action{margin:0}.register-intimate-card.profile-pattern-card--panel .chip{background:#ffffffb8}.calendar-intimate-card-inner .intimate-today-head,.intimate-today-head,.register-intimate-card-inner .intimate-today-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.intimate-today-label{font-weight:700;font-size:var(--font-size-lg)}.intimate-symptom-grid{gap:var(--space-2)}.calendar-intimate-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.intimate-timeline-head{margin-bottom:var(--space-4)}.intimate-timeline-strip{gap:var(--space-2);grid-template-columns:repeat(15,minmax(0,1fr));display:grid}@media (min-width:480px){.intimate-timeline-strip{grid-template-columns:repeat(30,minmax(0,1fr))}}.intimate-timeline-day{align-items:center;gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.intimate-timeline-dot{border-radius:var(--radius-full);background:#ffadbb40;border:1px solid #ffadbb73;width:.65rem;height:.65rem}.intimate-timeline-day--active .intimate-timeline-dot{background:#e88d9fd9;border-color:#e88d9ff2}.intimate-timeline-day--today .intimate-timeline-dot{box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px #ffadbbd9}.intimate-timeline-label{color:var(--color-text-muted);font-size:.625rem;line-height:1}.intimate-timeline-legend{gap:var(--space-3);font-size:var(--font-size-xs);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.intimate-history{gap:var(--space-2);flex-direction:column;display:flex}.intimate-history-item{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);display:flex}.intimate-history-item:last-child{border-bottom:none}.profile-module-opt{border-top:1px solid var(--color-border)}.profile-module-opt+.profile-module-opt{margin-top:var(--space-3);padding-top:var(--space-3)}@media (max-width:1023px){.register-intimate-card.profile-pattern-card--panel{overflow:hidden}.register-intimate-card-layout{display:block;position:relative}.register-intimate-card-stack{gap:.3rem;width:100%;padding-right:0}.register-intimate-card-stack>.profile-pattern-card-eyebrow,.register-intimate-card-stack>.profile-pattern-card-meta,.register-intimate-card-stack>.profile-pattern-card-text,.register-intimate-card-stack>.profile-pattern-card-title{max-width:calc(100% - min(7.5rem,34vw))}.register-intimate-card .profile-pattern-card-title{overflow-wrap:anywhere;word-break:break-word}.register-intimate-card-duck{pointer-events:none;width:min(7.5rem,34vw);max-width:36%;max-height:7.25rem;position:absolute;top:.1rem;right:.05rem;overflow:hidden}.register-intimate-card .register-intimate-card-duck img{object-fit:contain;object-position:top right;width:100%;max-width:none;height:auto;max-height:7.25rem}.register-intimate-card .intimate-today-form{width:100%;margin-top:.15rem}.register-intimate-card .period-section-label{margin:.35rem 0 .2rem;font-size:.75rem}.register-intimate-card .period-section-label.mt-4{margin-top:.45rem!important}.register-intimate-card .chip-grid,.register-intimate-card .intimate-symptom-grid{flex-wrap:wrap;gap:.3rem;width:100%;margin-top:0;display:flex}.register-intimate-card .chip{min-height:1.9rem;box-shadow:none;padding:.2rem .55rem;font-size:.72rem}.register-intimate-card .intimate-today-form .text-muted{margin-top:.35rem!important}.register-intimate-card .intimate-today-form .text-muted small{font-size:.65rem;line-height:1.3}.register-intimate-card .profile-pattern-card-action{width:auto;max-width:100%;margin-top:.2rem}}.duck-help-root{top:max(var(--space-4),env(safe-area-inset-top,0px));right:max(var(--space-4),env(safe-area-inset-right,0px));z-index:9999;justify-content:flex-end;align-items:flex-start;gap:var(--space-3);pointer-events:none;max-width:calc(100vw - var(--space-8));flex-direction:row-reverse;display:flex;position:fixed}.duck-help-fab{pointer-events:auto;border:2px solid var(--card-outline-soft);background:linear-gradient(145deg,var(--palette-lavender) 0,var(--palette-pink) 100%);cursor:pointer;width:3.25rem;height:3.25rem;transition:transform var(--transition-fast),box-shadow var(--transition-fast);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex;position:relative;overflow:visible;box-shadow:3px 3px #ffccbd8c}.duck-help-fab:hover{transform:scale(1.05);box-shadow:5px 5px #ffccbda6}.duck-help-fab:active{transform:scale(.98)}.duck-help-fab-icon{object-fit:contain;object-position:center;pointer-events:none;width:2.375rem;height:2.375rem;margin:0;display:block}.duck-help-fab-badge{background:var(--palette-peach);width:.8125rem;height:.8125rem;color:var(--color-text);border:1.5px solid var(--card-outline-soft);border-radius:50%;justify-content:center;align-items:center;font-size:.5rem;font-weight:700;display:flex;position:absolute;bottom:1px;right:1px}.duck-help-panel{pointer-events:auto;width:min(calc(100vw - var(--space-8)),380px);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:2px solid var(--card-outline-soft);border-radius:var(--radius-card);max-height:min(70dvh,560px);box-shadow:var(--card-shadow);background:#fffbdefa;flex-direction:column;display:none;position:relative;inset:auto;overflow:hidden}.duck-help-panel.is-open{animation:duck-help-in var(--transition-base) ease;display:flex}.duck-help-panel[hidden]{display:none!important}@keyframes duck-help-in{0%{opacity:0;transform:translate(8px)scale(.98)}to{opacity:1;transform:translate(0)scale(1)}}.duck-help-header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-bottom:2px solid var(--card-outline-soft);background:linear-gradient(135deg,#ffadbb8c,#fffbded9);display:flex}.duck-help-title{font-size:var(--font-size-lg);color:var(--color-accent-heart);margin:0}.duck-help-subtitle{margin:var(--space-1) 0 0;font-size:var(--font-size-xs);color:var(--color-text-muted)}.duck-help-close{z-index:2;pointer-events:auto;flex-shrink:0;width:36px;min-height:36px;padding:0;position:relative}.duck-help-messages{padding:var(--space-4);gap:var(--space-3);flex-direction:column;flex:1;min-height:180px;max-height:280px;display:flex;overflow-y:auto}.duck-help-message{gap:var(--space-2);align-items:flex-end;display:flex}.duck-help-message--user{justify-content:flex-end}.duck-help-message--user .duck-help-message-bubble{background:var(--palette-pink);border-bottom-right-radius:var(--radius-sm)}.duck-help-message--duck{align-items:center}.duck-help-message--duck .duck-help-message-avatar{flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:2rem;display:flex}.duck-help-message-icon{object-fit:contain;object-position:center;border:2px solid var(--card-outline-soft);background:linear-gradient(145deg,var(--palette-lavender) 0,var(--palette-pink) 100%);border-radius:50%;width:1.75rem;height:1.75rem;margin:0;display:block;box-shadow:2px 2px #ffccbd73}.duck-help-message-bubble{max-width:85%;padding:var(--space-3);border-radius:var(--radius-lg);background:var(--palette-cream-soft);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);color:var(--color-text)}.duck-help-message-bubble code{border-radius:var(--radius-sm);background:#ffccbd66;padding:.1em .35em;font-size:.85em}.duck-help-suggestions{gap:var(--space-2);padding:0 var(--space-4) var(--space-3);flex-wrap:wrap;max-height:120px;display:flex;overflow-y:auto}.duck-help-suggestion{font-size:var(--font-size-xs);min-height:28px}.duck-help-form{gap:var(--space-2);padding:var(--space-3) var(--space-4) var(--space-4);border-top:1px solid var(--color-border);background:var(--palette-cream-muted);display:flex}.duck-help-form input{min-width:0;padding:var(--space-2) var(--space-3);border:2px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-sm);background:var(--palette-cream);color:var(--color-text);flex:1}.duck-help-form input:focus{border-color:var(--palette-pink);outline:none;box-shadow:0 0 0 3px #ffadbb4d}.duck-help-form button[type=submit]{min-width:44px;padding-inline:var(--space-3)}@media (max-width:480px){.duck-help-root{top:max(var(--space-3),env(safe-area-inset-top,0px));right:max(var(--space-3),env(safe-area-inset-right,0px));max-width:calc(100vw - var(--space-6))}.duck-help-panel{width:min(calc(100vw - var(--space-6) - 3.75rem),380px);max-height:min(60dvh,480px)}}@media (min-width:1024px){.duck-help-root{top:max(var(--space-6),env(safe-area-inset-top,0px));right:max(var(--space-6),env(safe-area-inset-right,0px))}}@media (prefers-reduced-motion:reduce){.duck-help-panel{animation:none}}@media (min-width:1024px){html{font-size:106.25%}:root{--sidebar-width:17rem}.app-content{max-width:860px}}@media (min-width:1440px){html{font-size:108.75%}.app-content{max-width:900px}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}