:root{--bloom-primary: #E8567F;--bloom-primary-hover: #D0456C;--bloom-secondary: #9C64D6;--bloom-secondary-hover: #864EBF;--bloom-tertiary: #F4A261;--bloom-success: #4CAF8B;--bloom-danger: #E05D5D;--bloom-bg: #FFF8F6;--bloom-surface: #FFFFFF;--bloom-surface-border: rgba(232, 86, 127, .1);--bloom-glass: rgba(255, 255, 255, .7);--bloom-glass-border: rgba(255, 255, 255, .4);--bloom-text: #2D1B33;--bloom-text-muted: #8E7A96;--bloom-shadow-sm: 0 4px 12px rgba(232, 86, 127, .05);--bloom-shadow-md: 0 8px 24px rgba(232, 86, 127, .08);--bloom-shadow-lg: 0 16px 40px rgba(45, 27, 51, .08);--bloom-shadow-primary: 0 8px 20px rgba(232, 86, 127, .25);--bloom-radius-sm: 8px;--bloom-radius-md: 16px;--bloom-radius-lg: 24px;--bloom-radius-full: 9999px;--font-headings: "Outfit", sans-serif;--font-body: "Inter", sans-serif;--font-accent: "DM Sans", sans-serif;--max-app-width: 480px}[data-theme=dark]{--bloom-bg: #130B18;--bloom-surface: #1E1225;--bloom-surface-border: rgba(240, 98, 146, .1);--bloom-glass: rgba(30, 18, 37, .75);--bloom-glass-border: rgba(255, 255, 255, .06);--bloom-text: #F5EDF8;--bloom-text-muted: #A893B2;--bloom-shadow-sm: 0 4px 12px rgba(0, 0, 0, .2);--bloom-shadow-md: 0 8px 24px rgba(0, 0, 0, .3);--bloom-shadow-lg: 0 16px 40px rgba(0, 0, 0, .4);--bloom-shadow-primary: 0 8px 20px rgba(240, 98, 146, .25)}*{box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:#ece0dc;color:var(--bloom-text);font-family:var(--font-body);display:flex;justify-content:center;align-items:center;min-height:100vh;min-height:100dvh;margin:0;overflow:hidden}#app{width:100%;max-width:var(--max-app-width);height:100vh;height:100dvh;background-color:var(--bloom-bg);box-shadow:0 0 60px #2d1b3326;display:flex;flex-direction:column;position:relative;overflow:hidden;transition:background-color .3s ease}@media (max-width: 480px){#app{max-width:100%;box-shadow:none}}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bloom-text-muted);border-radius:var(--bloom-radius-full);opacity:.3}.flex-col{display:flex;flex-direction:column}.flex-row{display:flex;flex-direction:row}.align-center{align-items:center}.justify-between{justify-content:space-between}.text-center{text-align:center}.full-width{width:100%}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}.page-view{flex:1;width:100%;height:100%;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;padding:24px 24px 160px;box-sizing:border-box}.page-title{font-family:var(--font-headings);font-size:1.8rem;font-weight:700;color:var(--bloom-text);margin-bottom:8px}.page-subtitle{font-size:.95rem;color:var(--bloom-text-muted);margin-bottom:24px}.glass-card{background:var(--bloom-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--bloom-glass-border);border-radius:var(--bloom-radius-md);padding:20px;box-shadow:var(--bloom-shadow-sm);transition:transform .2s ease,box-shadow .2s ease;position:relative;overflow:visible;flex-shrink:0}.glass-card:hover{transform:translateY(-2px);box-shadow:var(--bloom-shadow-md)}.glass-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:4px;background:linear-gradient(90deg,var(--bloom-primary),var(--bloom-secondary));opacity:0;transition:opacity .3s ease;border-radius:var(--bloom-radius-md) var(--bloom-radius-md) 0 0}.glass-card.accented:before{opacity:1}.btn{font-family:var(--font-headings);font-size:1rem;font-weight:600;padding:14px 28px;border-radius:var(--bloom-radius-full);border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:all .25s cubic-bezier(.4,0,.2,1);text-decoration:none;outline:none;-webkit-user-select:none;user-select:none}.btn-primary{background:linear-gradient(135deg,var(--bloom-primary),var(--bloom-secondary));color:#fff;box-shadow:var(--bloom-shadow-primary)}.btn-primary:hover{transform:translateY(-1px);filter:brightness(1.05);box-shadow:0 10px 24px #e8567f59}.btn-primary:active{transform:translateY(1px);filter:brightness(.95)}.btn-secondary{background:var(--bloom-surface);color:var(--bloom-text);border:1px solid var(--bloom-surface-border);box-shadow:var(--bloom-shadow-sm)}.btn-secondary:hover{background:var(--bloom-bg);border-color:var(--bloom-primary)}.btn-text{background:transparent;color:var(--bloom-primary);padding:8px 16px}.btn-text:hover{opacity:.8}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.form-group{margin-bottom:20px;display:flex;flex-direction:column;gap:8px}.form-label{font-family:var(--font-headings);font-size:.9rem;font-weight:500;color:var(--bloom-text);opacity:.9}.form-input{font-family:var(--font-body);font-size:1rem;padding:14px 18px;border-radius:var(--bloom-radius-md);border:1px solid var(--bloom-surface-border);background:var(--bloom-surface);color:var(--bloom-text);outline:none;transition:all .2s ease;box-shadow:var(--bloom-shadow-sm)}.form-input:focus{border-color:var(--bloom-primary);box-shadow:0 0 0 3px #e8567f26}.slider-container{display:flex;flex-direction:column;gap:12px;margin:16px 0}.slider-val{font-family:var(--font-headings);font-size:2.2rem;font-weight:700;color:var(--bloom-primary);text-align:center}.form-range{-webkit-appearance:none;width:100%;height:8px;border-radius:var(--bloom-radius-full);background:var(--bloom-surface-border);outline:none}.form-range::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;border-radius:50%;background:var(--bloom-primary);box-shadow:var(--bloom-shadow-primary);cursor:pointer;transition:transform .1s ease}.form-range::-webkit-slider-thumb:hover{transform:scale(1.1)}.navbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:var(--max-app-width);height:72px;background:var(--bloom-glass);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-top:1px solid var(--bloom-glass-border);display:flex;justify-content:space-around;align-items:center;z-index:1000;padding:0 16px;box-shadow:0 -4px 20px #2d1b330d}.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;color:var(--bloom-text-muted);font-size:.75rem;font-weight:500;transition:all .2s ease;width:54px;height:54px;border-radius:var(--bloom-radius-md);gap:4px}.nav-item svg{width:24px;height:24px;stroke:var(--bloom-text-muted);fill:none;stroke-width:2;transition:stroke .2s ease,transform .2s ease}.nav-item:hover svg{transform:translateY(-2px)}.nav-item.active{color:var(--bloom-primary)}.nav-item.active svg{stroke:var(--bloom-primary)}.nav-item-log{width:64px;height:64px;background:linear-gradient(135deg,var(--bloom-primary),var(--bloom-secondary));border-radius:50%;margin-top:-30px;box-shadow:var(--bloom-shadow-primary);border:4px solid var(--bloom-bg);justify-content:center;transition:transform .2s ease,box-shadow .2s ease}.nav-item-log svg{width:28px;height:28px;stroke:#fff}.nav-item-log:hover{transform:translateY(-4px) scale(1.05);box-shadow:0 10px 24px #e8567f66}.theme-switch{position:relative;display:inline-block;width:52px;height:28px}.theme-switch input{opacity:0;width:0;height:0}.slider-toggle{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--bloom-surface-border);transition:.3s cubic-bezier(.4,0,.2,1);border-radius:34px}.slider-toggle:before{position:absolute;content:"";height:20px;width:20px;left:4px;bottom:4px;background-color:var(--bloom-surface);transition:.3s cubic-bezier(.4,0,.2,1);border-radius:50%;box-shadow:var(--bloom-shadow-sm)}input:checked+.slider-toggle{background-color:var(--bloom-primary)}input:checked+.slider-toggle:before{transform:translate(24px)}.page-transition{opacity:0;position:relative;top:15px;transition:opacity .35s cubic-bezier(.4,0,.2,1),top .35s cubic-bezier(.4,0,.2,1)}.decorative-blob{position:absolute;border-radius:50%;filter:blur(60px);z-index:0;opacity:.15;pointer-events:none;mix-blend-mode:multiply;animation:float 20s ease-in-out infinite alternate}[data-theme=dark] .decorative-blob{opacity:.1;mix-blend-mode:screen}.blob-1{width:250px;height:250px;background-color:var(--bloom-primary);top:-50px;right:-50px}.blob-2{width:200px;height:200px;background-color:var(--bloom-secondary);bottom:80px;left:-50px;animation-delay:-5s;animation-duration:25s}.blob-3{width:150px;height:150px;background-color:var(--bloom-tertiary);top:40%;right:-30px;animation-delay:-10s;animation-duration:15s}@keyframes float{0%{transform:translate(0) scale(1) rotate(0)}33%{transform:translate(30px,-20px) scale(1.1) rotate(120deg)}66%{transform:translate(-20px,40px) scale(.9) rotate(240deg)}to{transform:translate(0) scale(1) rotate(360deg)}}@keyframes breathing-pulse{0%{box-shadow:0 0 #e8567f66}70%{box-shadow:0 0 0 20px #e8567f00}to{box-shadow:0 0 #e8567f00}}.ring-pulse-active{animation:breathing-pulse 2.5s infinite}.shimmer{background:linear-gradient(90deg,var(--bloom-surface-border) 25%,rgba(232,86,127,.08) 50%,var(--bloom-surface-border) 75%);background-size:200% 100%;animation:loading-shimmer 1.5s infinite}@keyframes loading-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.ripple-btn{position:relative;overflow:hidden}.ripple-effect{position:absolute;border-radius:50%;background:#fff6;transform:scale(0);animation:ripple .6s linear;pointer-events:none}@keyframes ripple{to{transform:scale(4);opacity:0}}.auth-container{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100%}.auth-header{text-align:center;margin-bottom:32px}.auth-logo{font-family:var(--font-headings);font-size:2.5rem;font-weight:800;background:linear-gradient(135deg,var(--bloom-primary),var(--bloom-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:8px}.auth-tabs{display:flex;background:var(--bloom-surface-border);padding:4px;border-radius:var(--bloom-radius-full);margin-bottom:24px;width:100%}.auth-tab{flex:1;border:none;background:transparent;padding:10px;border-radius:var(--bloom-radius-full);font-family:var(--font-headings);font-weight:600;color:var(--bloom-text-muted);cursor:pointer;transition:all .2s ease}.auth-tab.active{background:var(--bloom-surface);color:var(--bloom-text);box-shadow:var(--bloom-shadow-sm)}.auth-form{display:flex;flex-direction:column;gap:16px;width:100%}.onboard-container{height:100%;display:flex;flex-direction:column;justify-content:space-between;padding-bottom:24px!important}.onboard-step{display:none;flex-direction:column;justify-content:center;flex:1;text-align:center;animation:slide-step .4s cubic-bezier(.4,0,.2,1)}.onboard-step.active{display:flex}@keyframes slide-step{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.onboard-indicator{display:flex;justify-content:center;gap:8px;margin-bottom:24px}.onboard-dot{width:8px;height:8px;border-radius:50%;background:var(--bloom-surface-border);transition:all .3s ease}.onboard-dot.active{width:24px;border-radius:var(--bloom-radius-full);background:var(--bloom-primary)}.dashboard-ring-container{position:relative;display:flex;justify-content:center;align-items:center;margin:16px 0 24px;width:100%}.dashboard-ring-bg{border-radius:50%;padding:8px}.dashboard-phase-indicator{text-align:center;margin-bottom:24px;padding:0 16px}.dashboard-phase-title{font-family:var(--font-headings);font-size:1.4rem;font-weight:700;margin-bottom:6px}.dashboard-phase-desc{font-size:.9rem;color:var(--bloom-text-muted);line-height:1.4}.dashboard-insights-row{display:flex;gap:8px;overflow-x:auto;padding:4px 0 12px;scrollbar-width:none;width:100%;min-height:85px}.dashboard-insights-row::-webkit-scrollbar{display:none}.dashboard-insights-row .dashboard-insight-card{width:calc(33.33% - 6px)}.dashboard-insight-card{width:100%;min-height:70px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:12px 4px}.dashboard-insight-value{font-family:var(--font-accent);font-size:1.5rem;font-weight:700;color:var(--bloom-primary);margin-bottom:2px}.dashboard-insight-label{font-size:.75rem;color:var(--bloom-text-muted)}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.calendar-month-name{font-family:var(--font-headings);font-size:1.25rem;font-weight:700;color:var(--bloom-text)}.calendar-nav-btn{background:var(--bloom-surface);border:1px solid var(--bloom-surface-border);border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--bloom-shadow-sm)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-weight:600;font-size:.75rem;color:var(--bloom-text-muted);margin-bottom:8px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:24px}.calendar-day-cell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:.9rem;font-weight:500;border-radius:50%;cursor:pointer;position:relative;transition:all .2s ease}.calendar-day-cell:hover{background:var(--bloom-surface-border)}.calendar-day-cell.other-month{opacity:.3}.calendar-day-cell.today{border:2px solid var(--bloom-text);font-weight:700}.calendar-day-cell.phase-menstrual{background-color:#e8567f26;color:var(--bloom-primary)}.calendar-day-cell.phase-menstrual-solid{background-color:var(--bloom-primary);color:#fff!important}.calendar-day-cell.phase-fertile{background-color:#4caf8b26;color:var(--bloom-success)}.calendar-day-cell.predicted-period{border:2px dashed var(--bloom-primary)}.calendar-day-cell .dot-marker{position:absolute;bottom:4px;width:4px;height:4px;border-radius:50%;background-color:var(--bloom-secondary)}.calendar-legend{display:flex;justify-content:space-around;font-size:.75rem;color:var(--bloom-text-muted);padding:12px;border-top:1px solid var(--bloom-surface-border);margin-bottom:20px}.legend-item{display:flex;align-items:center;gap:6px}.legend-color{width:12px;height:12px;border-radius:50%}.log-flow-selector{display:flex;justify-content:space-between;margin-bottom:20px}.flow-drop{display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;opacity:.5;transition:all .2s ease}.flow-drop svg{width:24px;height:32px;fill:var(--bloom-text-muted);transition:all .2s ease}.flow-drop.active{opacity:1}.flow-drop.active svg{fill:var(--bloom-primary);filter:drop-shadow(0 4px 8px rgba(232,86,127,.3))}.flow-drop-label{font-size:.75rem;font-weight:500}.mood-selector{display:flex;justify-content:space-between;margin-bottom:24px;padding:8px 0;overflow-x:auto;gap:8px}.mood-item{display:flex;flex-direction:column;align-items:center;justify-content:center;width:44px;height:44px;font-size:1.5rem;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:all .2s ease}.mood-item:hover{background:var(--bloom-surface-border)}.mood-item.active{background:var(--bloom-surface);border-color:var(--bloom-secondary);transform:scale(1.15);box-shadow:var(--bloom-shadow-sm)}.symptoms-category-title{font-family:var(--font-headings);font-size:.95rem;font-weight:600;margin:16px 0 8px;color:var(--bloom-text-muted)}.symptoms-grid{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.symptom-chip{padding:8px 14px;background:var(--bloom-surface);border:1px solid var(--bloom-surface-border);border-radius:var(--bloom-radius-full);font-size:.85rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s ease}.symptom-chip:hover{background:var(--bloom-bg)}.symptom-chip.active{background:linear-gradient(135deg,#e8567f1a,#9c64d626);border-color:var(--bloom-primary);color:var(--bloom-primary);transform:scale(1.02)}.insights-charts-container{display:flex;flex-direction:column;gap:20px;margin-top:16px}.canvas-container{position:relative;width:100%;height:180px;margin-top:16px}.canvas-container canvas{width:100%!important;height:100%!important}.settings-section-title{font-family:var(--font-headings);font-size:1.1rem;font-weight:700;margin:24px 0 12px;color:var(--bloom-text);display:flex;align-items:center;gap:8px}.settings-list{display:flex;flex-direction:column;gap:12px}.settings-row{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:var(--bloom-surface);border-radius:var(--bloom-radius-md);border:1px solid var(--bloom-surface-border);box-shadow:var(--bloom-shadow-sm)}.settings-info{display:flex;flex-direction:column;gap:4px}.settings-label{font-weight:600;font-size:.95rem}.settings-desc{font-size:.75rem;color:var(--bloom-text-muted)}.education-grid{display:flex;flex-direction:column;gap:16px}.article-card{cursor:pointer}.article-header{height:120px;background:linear-gradient(135deg,#e8567f33,#9c64d633);display:flex;align-items:center;justify-content:center;margin:-20px -20px 16px}.article-header svg{width:60px;height:60px;stroke:var(--bloom-primary);stroke-width:1.5;fill:none}.article-title{font-family:var(--font-headings);font-size:1.15rem;font-weight:700;color:var(--bloom-text);margin-bottom:8px}.article-excerpt{font-size:.85rem;color:var(--bloom-text-muted);line-height:1.4}
