*,:before,:after{box-sizing:border-box}:root{--bg:#fff;--bg-surface:#f7f7f8;--bg-surface2:#efefef;--text:#111;--text-h:#080808;--text-muted:#666;--border:#e0e0e0;--accent:#aa3bff;--accent-fg:#fff;--period-color:#e8526a;--period-bg:#e8526a2e;--period-predicted-color:#e8526a;--period-predicted-bg:#e8526a14;--ovulation-color:#16a34a;--ovulation-bg:#16a34a2e;--fertile-color:#16a34a;--fertile-bg:#4ade8024;--follicular-color:#6366f1;--follicular-bg:#6366f124;--luteal-color:#d97706;--luteal-bg:#d9770624;--bottom-nav-height:64px;--content-max-width:430px;--tap-target:44px;--radius:12px;--radius-sm:8px;--sp-xs:4px;--sp-sm:8px;--sp-md:16px;--sp-lg:24px;--sp-xl:32px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0f0f10;--bg-surface:#1a1a1c;--bg-surface2:#252528;--text:#f0f0f0;--text-h:#fff;--text-muted:#999;--border:#2e2e32;--accent:#c084fc;--accent-fg:#0f0f10;--period-bg:#e8526a38;--period-predicted-bg:#e8526a1a;--ovulation-bg:#16a34a38;--fertile-bg:#4ade801a;--follicular-bg:#6366f12e;--luteal-bg:#d977062e}}body{background:var(--bg);color:var(--text);margin:0}#root{max-width:var(--content-max-width);width:100%;min-height:100svh;padding-bottom:var(--bottom-nav-height);flex-direction:column;margin:0 auto;display:flex;position:relative}h1,h2,h3{color:var(--text-h);margin:0;font-weight:600}p{margin:0}button{cursor:pointer;font-family:inherit;font-size:inherit;background:0 0;border:none;padding:0}input,select{font-family:inherit;font-size:inherit}.bottom-nav{width:100%;max-width:var(--content-max-width);height:var(--bottom-nav-height);background:var(--bg);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom,0px);z-index:100;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav__tab{min-height:var(--tap-target);color:var(--text-muted);letter-spacing:.3px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:500;transition:color .15s;display:flex}.bottom-nav__tab:hover{color:var(--text)}.bottom-nav__tab--active{color:var(--accent)}.bottom-nav__icon{width:24px;height:24px}.profiles{padding:var(--sp-lg) var(--sp-md);gap:var(--sp-lg);flex-direction:column;display:flex}.profiles__header{color:var(--text-h);font-size:22px;font-weight:700}.profiles__list{gap:var(--sp-sm);flex-direction:column;display:flex}.profile-item{align-items:center;gap:var(--sp-sm);padding:var(--sp-sm) var(--sp-md);border-radius:var(--radius);background:var(--bg-surface);min-height:var(--tap-target);border:1.5px solid #0000;transition:border-color .15s;display:flex}.profile-item--active{border-color:var(--accent);background:var(--bg-surface)}.profile-item__dot{background:var(--text-muted);border-radius:50%;flex-shrink:0;width:10px;height:10px}.profile-item--active .profile-item__dot{background:var(--accent)}.profile-item__name-input{color:var(--text);background:0 0;border:none;outline:none;flex:1;padding:0;font-size:16px;font-weight:500}.profile-item__select-btn{text-align:left;color:var(--text);cursor:pointer;background:0 0;border:none;flex:1;padding:0;font-size:16px;font-weight:500}.profile-item__actions{gap:var(--sp-xs);display:flex}.profile-item__action-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-muted);justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.profile-item__action-btn:hover{background:var(--bg-surface2);color:var(--text)}.profile-item__action-btn--danger:hover{color:var(--period-color)}.profiles__add-btn{align-items:center;gap:var(--sp-sm);padding:var(--sp-sm) var(--sp-md);border-radius:var(--radius);background:var(--bg-surface);color:var(--accent);min-height:var(--tap-target);font-size:16px;font-weight:500;transition:background .15s;display:flex}.profiles__add-btn:hover{background:var(--bg-surface2)}.profiles__language{gap:var(--sp-sm);padding-top:var(--sp-sm);border-top:1px solid var(--bg-surface2);flex-direction:column;display:flex}.profiles__language-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:13px;font-weight:500}.profiles__language-btns{gap:var(--sp-sm);flex-wrap:wrap;display:flex}.profiles__lang-btn{border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-muted);padding:6px 14px;font-size:14px;font-weight:500;transition:background .15s,color .15s}.profiles__lang-btn:hover{background:var(--bg-surface2);color:var(--text)}.profiles__lang-btn--active{background:var(--accent);color:#fff}.cycle-form{padding:var(--sp-lg) var(--sp-md);gap:var(--sp-lg);flex-direction:column;display:flex}.cycle-form__header{color:var(--text-h);font-size:22px;font-weight:700}.cycle-form__subheader{color:var(--text-muted);margin-top:2px;font-size:13px}.cycle-form__new{background:var(--bg-surface);border-radius:var(--radius);padding:var(--sp-md);gap:var(--sp-md);flex-direction:column;display:flex}.cycle-form__new h3{color:var(--text-h);font-size:16px}.field{gap:var(--sp-xs);flex-direction:column;display:flex}.field label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:13px;font-weight:500}.field input{height:var(--tap-target);padding:0 var(--sp-md);border-radius:var(--radius-sm);border:1.5px solid var(--border);background:var(--bg);color:var(--text);outline:none;width:100%;font-size:16px;transition:border-color .15s}.field input:focus{border-color:var(--accent)}.field input.field--error{border-color:var(--period-color)}.field__error{color:var(--period-color);font-size:12px}.cycle-form__submit{height:var(--tap-target);border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-fg);width:100%;font-size:16px;font-weight:600;transition:opacity .15s}.cycle-form__submit:disabled{opacity:.5;cursor:not-allowed}.cycle-form__entries{gap:var(--sp-sm);flex-direction:column;display:flex}.cycle-form__entries h3{color:var(--text-h);margin-bottom:var(--sp-xs);font-size:16px}.cycle-entry{align-items:center;gap:var(--sp-sm);padding:var(--sp-sm) var(--sp-md);background:var(--bg-surface);border-radius:var(--radius);min-height:var(--tap-target);display:flex}.cycle-entry__dot{background:var(--period-color);border-radius:50%;flex-shrink:0;width:10px;height:10px}.cycle-entry__info{flex:1}.cycle-entry__date{color:var(--text);font-size:15px;font-weight:500}.cycle-entry__meta{color:var(--text-muted);font-size:12px}.cycle-entry__delete{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-muted);justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.cycle-entry__delete:hover{background:var(--bg-surface2);color:var(--period-color)}.cycle-form__empty{text-align:center;color:var(--text-muted);padding:var(--sp-xl) 0;font-size:15px;line-height:1.6}.calendar{padding-bottom:var(--sp-md);flex-direction:column;gap:0;display:flex}.calendar__nav{padding:var(--sp-md) var(--sp-md) var(--sp-sm);background:var(--bg);z-index:10;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.calendar__nav-title{color:var(--text-muted);font-size:15px;font-weight:600}.calendar__nav-btn{width:var(--tap-target);height:var(--tap-target);border-radius:var(--radius-sm);color:var(--text);justify-content:center;align-items:center;transition:background .15s;display:flex}.calendar__nav-btn:hover{background:var(--bg-surface)}.calendar-month{padding:var(--sp-md) var(--sp-md) var(--sp-sm)}.calendar-month__header{color:var(--text-h);margin-bottom:var(--sp-md);font-size:18px;font-weight:700}.calendar-month__weekdays{margin-bottom:var(--sp-xs);grid-template-columns:repeat(7,1fr);display:grid}.calendar-month__weekday{text-align:center;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;padding:var(--sp-xs) 0;font-size:11px;font-weight:600}.calendar-month__grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.calendar-day{aspect-ratio:1;color:var(--text);border-radius:50%;justify-content:center;align-items:center;font-size:13px;display:flex;position:relative}.calendar-day--empty{pointer-events:none}.calendar-day--period{background:var(--period-bg);color:var(--period-color);font-weight:600}.calendar-day--period-predicted{background:var(--period-predicted-bg);color:var(--period-predicted-color)}.calendar-day--ovulation{background:var(--ovulation-bg)}.calendar-day--fertile{background:var(--fertile-bg)}.calendar-day--follicular{background:var(--follicular-bg);color:var(--follicular-color)}.calendar-day--luteal{background:var(--luteal-bg);color:var(--luteal-color)}.calendar-day--ovulation:after,.calendar-day--period.calendar-day--has-ovulation:after,.calendar-day--period-predicted.calendar-day--has-ovulation:after{content:"";background:var(--ovulation-color);border-radius:50%;width:5px;height:5px;position:absolute;bottom:3px}.calendar-day--today{box-shadow:0 0 0 2px var(--accent)}.legend{gap:var(--sp-sm) var(--sp-lg);padding:var(--sp-sm) var(--sp-md) var(--sp-md);border-top:1px solid var(--border);margin:0 0 var(--sp-md);flex-wrap:wrap;display:flex}.legend__item{align-items:center;gap:var(--sp-xs);color:var(--text-muted);font-size:12px;display:flex}.legend__dot{border-radius:50%;flex-shrink:0;width:12px;height:12px}.legend__dot--period{background:var(--period-bg);outline:1.5px solid var(--period-color)}.legend__dot--period-predicted{background:var(--period-predicted-bg);outline:1.5px solid var(--period-predicted-color)}.legend__dot--ovulation{background:var(--ovulation-bg);outline:1.5px solid var(--ovulation-color)}.legend__dot--fertile{background:var(--fertile-bg);outline:1.5px solid var(--fertile-color)}.legend__dot--follicular{background:var(--follicular-bg);outline:1.5px solid var(--follicular-color)}.legend__dot--luteal{background:var(--luteal-bg);outline:1.5px solid var(--luteal-color)}.legend__item--clickable{cursor:pointer;border-radius:var(--radius-sm);margin:-2px -4px;padding:2px 4px;transition:background .15s}.legend__item--clickable:hover{background:var(--bg-surface)}.phase-panel-backdrop{z-index:40;position:fixed;inset:0}.phase-panel{bottom:var(--bottom-nav-height);width:100%;max-width:var(--content-max-width);background:var(--bg-surface);border-top:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;padding:var(--sp-md);z-index:50;animation:.2s ease-out panel-slide-up;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 -4px 24px #0000001f}@keyframes panel-slide-up{0%{transform:translate(-50%)translateY(100%)}to{transform:translate(-50%)translateY(0)}}.phase-panel__header{margin-bottom:var(--sp-sm);justify-content:space-between;align-items:center;display:flex}.phase-panel__title{color:var(--text-h);font-size:16px;font-weight:700}.phase-panel__date{color:var(--text-muted);margin-top:1px;font-size:12px}.phase-panel__close{width:32px;height:32px;color:var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:20px;line-height:1;display:flex}.phase-panel__close:hover{background:var(--bg-surface2)}.phase-panel__meta{color:var(--text-muted);margin-bottom:var(--sp-md);font-size:13px}.phase-panel__section{margin-bottom:var(--sp-sm)}.phase-panel__section-title{letter-spacing:.6px;text-transform:uppercase;margin-bottom:var(--sp-xs);font-size:11px;font-weight:700}.phase-panel__section-title--do{color:#16a34a}.phase-panel__section-title--dont{color:#e8526a}.phase-panel__list{padding-left:var(--sp-md);color:var(--text);margin:0;font-size:13px;line-height:1.6}.phase-panel__list li{margin-bottom:1px}.calendar__empty{text-align:center;color:var(--text-muted);padding:var(--sp-xl) var(--sp-md);font-size:15px;line-height:1.6}.calendar__profile-chip{padding:var(--sp-sm) var(--sp-md);color:var(--accent);background:var(--bg-surface);border-bottom:1px solid var(--border);font-size:14px;font-weight:600}
