@import"https://fonts.googleapis.com/css2?family=Caveat:wght@400;500;600;700&family=Inter:wght@300;400;500;600&display=swap";.top-bar-wrapper[data-v-650277fe]{position:sticky;top:0;z-index:50}.theme-bar[data-v-650277fe]{height:6px;width:100%;background:linear-gradient(90deg,var(--primary),var(--accent))}.top-bar[data-v-650277fe]{background:#fcfbf880;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}[data-theme=dark] .top-bar[data-v-650277fe]{background:#212630cc}.container[data-v-650277fe]{max-width:90rem;margin:0 auto;padding:0 1rem}.top-bar-content[data-v-650277fe]{display:flex;align-items:center;justify-content:space-between;height:4rem;gap:1rem}.logo-section[data-v-650277fe]{display:flex;align-items:center;gap:.5rem;flex-shrink:0;cursor:pointer;padding:.5rem;border-radius:var(--radius);transition:background .2s ease}.logo-section[data-v-650277fe]:hover{background:#568f6e1a}.logo-emoji[data-v-650277fe]{font-size:1.875rem;line-height:1}.logo-text[data-v-650277fe]{font-size:1.875rem;color:var(--foreground);font-weight:500}.main-navigation[data-v-650277fe]{display:flex;gap:.25rem;align-items:center;flex:1;justify-content:center;max-width:600px}.nav-tab[data-v-650277fe]{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:none;background:transparent;color:var(--muted-foreground);border-radius:var(--radius);cursor:pointer;transition:all .2s ease;white-space:nowrap;font-weight:500;font-size:.875rem;position:relative}.nav-tab[data-v-650277fe]:hover{color:var(--foreground);background:#568f6e1a}.nav-tab.active[data-v-650277fe]{color:var(--primary);background:#568f6e26;font-weight:600}.tab-icon[data-v-650277fe]{font-size:1.25rem;line-height:1}.tab-label[data-v-650277fe]{font-size:.875rem}.action-section[data-v-650277fe]{display:flex;gap:.5rem;align-items:center;flex-shrink:0}.icon-btn[data-v-650277fe]{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border:none;background:transparent;color:var(--muted-foreground);cursor:pointer;border-radius:var(--radius);transition:all .2s}.icon-btn[data-v-650277fe]:hover{background:var(--hover);color:var(--foreground)}.icon-btn[data-v-650277fe]:active{transform:scale(.95)}@media (max-width: 768px){.top-bar-content[data-v-650277fe]{height:3.5rem}.logo-text[data-v-650277fe],.logo-emoji[data-v-650277fe]{font-size:1.5rem}.icon-btn[data-v-650277fe]{width:2.25rem;height:2.25rem}.nav-tab[data-v-650277fe]{padding:.5rem .75rem;font-size:.8125rem}.tab-icon[data-v-650277fe]{font-size:1.125rem}.tab-label[data-v-650277fe]{font-size:.8125rem}}.mobile-nav-row[data-v-650277fe]{display:none}@media (max-width: 768px){.main-navigation[data-v-650277fe]{display:none}.mobile-nav-row[data-v-650277fe]{display:block;padding:.5rem 0;border-top:1px solid var(--border)}.mobile-navigation[data-v-650277fe]{display:flex;gap:.25rem;justify-content:space-around;align-items:center;flex-wrap:nowrap}.mobile-nav-tab[data-v-650277fe]{display:flex;align-items:center;justify-content:center;padding:.5rem;border:none;background:transparent;color:var(--muted-foreground);border-radius:var(--radius);cursor:pointer;transition:all .2s ease;flex:0 0 auto}.mobile-nav-tab[data-v-650277fe]:active{transform:scale(.95)}.mobile-nav-tab.active[data-v-650277fe]{color:var(--primary);background:#568f6e26}.mobile-nav-tab .tab-icon[data-v-650277fe]{font-size:1.5rem;line-height:1}}@media (max-width: 640px){.logo-text[data-v-650277fe]{display:none}.mobile-navigation[data-v-650277fe]{gap:.125rem}.mobile-nav-tab[data-v-650277fe]{padding:.375rem}.mobile-nav-tab .tab-icon[data-v-650277fe]{font-size:1.375rem}}.modal-overlay[data-v-3631e508]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.modal[data-v-3631e508]{background:var(--surface);border-radius:16px;max-width:500px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 40px #0000004d}.modal-header[data-v-3631e508]{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--border)}.modal-header h2[data-v-3631e508]{margin:0;font-size:1.25rem}.close-btn[data-v-3631e508]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:8px;transition:all .2s}.close-btn[data-v-3631e508]:hover{background:var(--hover);color:var(--text)}.modal-body[data-v-3631e508]{overflow-y:auto;padding:1.5rem}.add-habit-section[data-v-3631e508],.habits-list-section[data-v-3631e508]{margin-bottom:2rem}.add-habit-section h3[data-v-3631e508],.habits-list-section h3[data-v-3631e508]{margin:0 0 1rem;font-size:1rem;color:var(--text-secondary)}.add-habit-form[data-v-3631e508]{display:flex;flex-direction:column;gap:1rem}.habit-input[data-v-3631e508],.habit-name-input[data-v-3631e508]{padding:.75rem;border:2px solid var(--border);background:var(--background);color:var(--text);border-radius:8px;font-size:1rem;transition:border-color .2s}.habit-input[data-v-3631e508]:focus,.habit-name-input[data-v-3631e508]:focus{outline:none;border-color:var(--primary)}.type-selector[data-v-3631e508]{display:flex;flex-direction:column;gap:.5rem}.type-label[data-v-3631e508]{font-size:.875rem;color:var(--text-secondary);font-weight:500}.type-options[data-v-3631e508]{display:flex;gap:.5rem}.type-btn[data-v-3631e508]{flex:1;padding:.625rem 1rem;border:2px solid var(--border);background:var(--background);color:var(--text);border-radius:8px;cursor:pointer;transition:all .2s;font-size:.875rem}.type-btn[data-v-3631e508]:hover{border-color:var(--primary);background:var(--hover)}.type-btn.selected[data-v-3631e508]{border-color:var(--primary);background:var(--primary);color:#fff}.color-picker[data-v-3631e508]{display:flex;gap:.5rem;flex-wrap:wrap}.color-option[data-v-3631e508]{width:36px;height:36px;border:3px solid transparent;border-radius:50%;cursor:pointer;transition:all .2s}.color-option[data-v-3631e508]:hover{transform:scale(1.1)}.color-option.selected[data-v-3631e508]{border-color:var(--text);box-shadow:0 0 0 2px var(--surface)}.add-btn[data-v-3631e508]{padding:.75rem;border:none;background:var(--primary);color:#fff;font-weight:500;border-radius:8px;cursor:pointer;transition:opacity .2s}.add-btn[data-v-3631e508]:hover:not(:disabled){opacity:.9}.add-btn[data-v-3631e508]:disabled{opacity:.5;cursor:not-allowed}.modal-footer[data-v-3631e508]{padding-top:1rem;margin-top:1rem;border-top:1px solid var(--border);display:flex;justify-content:flex-end}.done-btn[data-v-3631e508]{padding:.75rem 2rem;border:none;background:var(--primary);color:#fff;font-weight:600;border-radius:8px;cursor:pointer;transition:opacity .2s;font-size:1rem}.done-btn[data-v-3631e508]:hover{opacity:.9}.emoji-section[data-v-3631e508]{display:flex;flex-direction:column;gap:.5rem}.emoji-label[data-v-3631e508]{font-size:.875rem;color:var(--text-secondary);font-weight:500}.emoji-picker[data-v-3631e508]{display:flex;gap:.375rem;flex-wrap:wrap}.emoji-option[data-v-3631e508]{width:40px;height:40px;border:2px solid var(--border);background:var(--background);border-radius:8px;cursor:pointer;transition:all .2s;font-size:1.25rem;display:flex;align-items:center;justify-content:center}.emoji-option[data-v-3631e508]:hover{transform:scale(1.1);border-color:var(--primary)}.emoji-option.selected[data-v-3631e508]{border-color:var(--primary);background:#568f6e1a;transform:scale(1.05)}.emoji-input[data-v-3631e508]{padding:.5rem;border:2px solid var(--border);background:var(--background);color:var(--text);border-radius:8px;font-size:1rem;text-align:center}.emoji-input[data-v-3631e508]:focus{outline:none;border-color:var(--primary)}.emoji-picker-small[data-v-3631e508]{display:flex;gap:.25rem;flex-wrap:wrap}.emoji-option-small[data-v-3631e508]{width:32px;height:32px;border:2px solid var(--border);background:var(--background);border-radius:6px;cursor:pointer;transition:all .2s;font-size:1rem;display:flex;align-items:center;justify-content:center}.emoji-option-small[data-v-3631e508]:hover{transform:scale(1.15);border-color:var(--primary)}.emoji-option-small.selected[data-v-3631e508]{border-color:var(--primary);background:#568f6e1a}.habit-name-row[data-v-3631e508]{display:flex;align-items:center;gap:.5rem}.habit-emoji-display[data-v-3631e508]{font-size:1.5rem;line-height:1;flex-shrink:0}.habits-list[data-v-3631e508]{display:flex;flex-direction:column;gap:1rem}.habit-item[data-v-3631e508]{display:flex;gap:.75rem;align-items:flex-start;padding:1rem;background:var(--background);border-radius:8px;border:1px solid var(--border)}.habit-info[data-v-3631e508]{flex:1;display:flex;flex-direction:column;gap:.75rem}.habit-name-input[data-v-3631e508]{padding:.5rem;font-weight:500}.color-picker-small[data-v-3631e508]{display:flex;gap:.375rem;flex-wrap:wrap}.color-option-small[data-v-3631e508]{width:24px;height:24px;border:2px solid transparent;border-radius:50%;cursor:pointer;transition:all .2s}.color-option-small[data-v-3631e508]:hover{transform:scale(1.15)}.color-option-small.selected[data-v-3631e508]{border-color:var(--text)}.delete-btn[data-v-3631e508]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:8px;transition:all .2s;flex-shrink:0}.delete-btn[data-v-3631e508]:hover{background:#fee;color:#dc2626}.type-selector-existing[data-v-3631e508]{display:flex;flex-direction:column;gap:.375rem}.type-label-small[data-v-3631e508]{font-size:.75rem;color:var(--text-secondary);font-weight:500}.type-options-small[data-v-3631e508]{display:flex;gap:.375rem}.type-btn-small[data-v-3631e508]{flex:1;padding:.5rem .625rem;border:2px solid var(--border);background:var(--background);color:var(--text);border-radius:6px;cursor:pointer;transition:all .2s;font-size:.75rem;font-weight:600}.type-btn-small[data-v-3631e508]:hover{border-color:var(--primary);background:var(--hover)}.type-btn-small.selected[data-v-3631e508]{border-color:var(--primary);background:var(--primary);color:#fff}.unit-input-section[data-v-3631e508]{display:flex;flex-direction:column;gap:.375rem}.unit-label[data-v-3631e508]{font-size:.75rem;color:var(--text-secondary);font-weight:500}.unit-input[data-v-3631e508]{padding:.5rem;border:2px solid var(--border);background:var(--background);color:var(--text);border-radius:6px;font-size:.875rem;transition:border-color .2s}.unit-input[data-v-3631e508]:focus{outline:none;border-color:var(--primary)}.goal-input-section[data-v-3631e508]{display:flex;flex-direction:column;gap:.375rem}.goal-label[data-v-3631e508]{font-size:.75rem;color:var(--text-secondary);font-weight:500}.goal-input[data-v-3631e508]{padding:.5rem;border:2px solid var(--border);background:var(--background);color:var(--text);border-radius:6px;font-size:.875rem;transition:border-color .2s}.goal-input[data-v-3631e508]:focus{outline:none;border-color:var(--primary)}.goal-input[data-v-3631e508]::-webkit-outer-spin-button,.goal-input[data-v-3631e508]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.goal-input[type=number][data-v-3631e508]{-moz-appearance:textfield}.modal-enter-active[data-v-3631e508],.modal-leave-active[data-v-3631e508]{transition:opacity .3s}.modal-enter-active .modal[data-v-3631e508],.modal-leave-active .modal[data-v-3631e508]{transition:transform .3s}.modal-enter-from[data-v-3631e508],.modal-leave-to[data-v-3631e508]{opacity:0}.modal-enter-from .modal[data-v-3631e508],.modal-leave-to .modal[data-v-3631e508]{transform:scale(.9)}@media (max-width: 640px){.modal[data-v-3631e508]{max-height:95vh}.modal-body[data-v-3631e508]{padding:1rem}}.lock-screen[data-v-8aacf07c]{position:fixed;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn-8aacf07c .3s ease}@keyframes fadeIn-8aacf07c{0%{opacity:0}to{opacity:1}}.lock-container[data-v-8aacf07c]{background:#fff;padding:3rem 2.5rem;border-radius:1.5rem;box-shadow:0 20px 60px #0000004d;max-width:400px;width:90%;animation:slideUp-8aacf07c .4s ease}@keyframes slideUp-8aacf07c{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.lock-header[data-v-8aacf07c]{text-align:center;margin-bottom:2rem}.lock-icon[data-v-8aacf07c]{font-size:4rem;margin-bottom:1rem;animation:pulse-8aacf07c 2s ease-in-out infinite}@keyframes pulse-8aacf07c{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.lock-title[data-v-8aacf07c]{font-size:1.75rem;font-weight:600;color:#1f2937;margin:0 0 .5rem}.lock-subtitle[data-v-8aacf07c]{font-size:.875rem;color:#6b7280;margin:0}.lock-form[data-v-8aacf07c]{display:flex;flex-direction:column;gap:1.25rem}.form-group[data-v-8aacf07c]{display:flex;flex-direction:column;gap:.5rem}.form-group label[data-v-8aacf07c]{font-size:.875rem;font-weight:600;color:#374151}.form-group input[data-v-8aacf07c]{padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:.5rem;font-size:1rem;transition:all .2s ease;font-family:inherit}.form-group input[data-v-8aacf07c]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input[data-v-8aacf07c]:disabled{background:#f9fafb;cursor:not-allowed}.error-message[data-v-8aacf07c]{padding:.75rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:.5rem;color:#dc2626;font-size:.875rem;text-align:center}.unlock-btn[data-v-8aacf07c]{padding:1rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:inherit}.unlock-btn[data-v-8aacf07c]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 20px #667eea4d}.unlock-btn[data-v-8aacf07c]:active:not(:disabled){transform:translateY(0)}.unlock-btn[data-v-8aacf07c]:disabled{opacity:.6;cursor:not-allowed}.setup-note[data-v-8aacf07c]{text-align:center;color:#6b7280;padding-top:.5rem}.setup-note small[data-v-8aacf07c]{font-size:.8125rem}@media (max-width: 480px){.lock-container[data-v-8aacf07c]{padding:2rem 1.5rem}.lock-title[data-v-8aacf07c]{font-size:1.5rem}.lock-icon[data-v-8aacf07c]{font-size:3rem}}.toast-container[data-v-1de05561]{position:fixed;top:80px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:.5rem;pointer-events:none}.toast[data-v-1de05561]{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.25rem;border-radius:8px;box-shadow:0 4px 12px #00000026;font-size:.875rem;font-weight:500;min-width:280px;max-width:400px;pointer-events:auto;cursor:pointer;transition:all .2s ease}.toast[data-v-1de05561]:hover{transform:translate(-4px);box-shadow:0 6px 16px #0003}.toast-icon[data-v-1de05561]{font-size:1.125rem;font-weight:700;flex-shrink:0}.toast-message[data-v-1de05561]{flex:1;line-height:1.4}.toast-success[data-v-1de05561]{background:#10b981;color:#fff}.toast-error[data-v-1de05561]{background:#ef4444;color:#fff}.toast-warning[data-v-1de05561]{background:#f59e0b;color:#fff}.toast-info[data-v-1de05561]{background:#3b82f6;color:#fff}.toast-enter-active[data-v-1de05561],.toast-leave-active[data-v-1de05561]{transition:all .3s ease}.toast-enter-from[data-v-1de05561],.toast-leave-to[data-v-1de05561]{opacity:0;transform:translate(100%) scale(.8)}.toast-move[data-v-1de05561]{transition:transform .3s ease}@media (max-width: 640px){.toast-container[data-v-1de05561]{top:70px;right:10px;left:10px}.toast[data-v-1de05561]{min-width:auto;max-width:100%}}.confirm-overlay[data-v-b2d988bf]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem;animation:fadeIn-b2d988bf .15s ease-out}@keyframes fadeIn-b2d988bf{0%{opacity:0}to{opacity:1}}.confirm-dialog[data-v-b2d988bf]{background:var(--background);border-radius:var(--radius);max-width:400px;width:100%;padding:2rem;box-shadow:0 20px 60px #0006;animation:slideUp-b2d988bf .2s ease-out;text-align:center}@keyframes slideUp-b2d988bf{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.confirm-icon[data-v-b2d988bf]{font-size:3rem;margin-bottom:1rem;line-height:1}.confirm-title[data-v-b2d988bf]{margin:0 0 1rem;font-size:1.25rem;font-weight:700;color:var(--foreground)}.confirm-message[data-v-b2d988bf]{margin:0 0 1.5rem;color:var(--muted-foreground);font-size:.9375rem;line-height:1.6;white-space:pre-wrap}.confirm-actions[data-v-b2d988bf]{display:flex;gap:.75rem}.confirm-btn[data-v-b2d988bf]{flex:1;padding:.75rem 1.5rem;border:none;border-radius:var(--radius);font-weight:600;font-size:.9375rem;cursor:pointer;transition:all .2s;font-family:inherit}.cancel-btn[data-v-b2d988bf]{background:transparent;color:var(--foreground);border:1px solid var(--border)}.cancel-btn[data-v-b2d988bf]:hover{background:var(--hover)}.confirm-btn-primary[data-v-b2d988bf]{color:#fff}.confirm-btn-primary[data-v-b2d988bf]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003;filter:brightness(1.1)}.confirm-btn-primary[data-v-b2d988bf]:active{transform:translateY(0)}@media (max-width: 640px){.confirm-dialog[data-v-b2d988bf]{padding:1.5rem}.confirm-icon[data-v-b2d988bf]{font-size:2.5rem}.confirm-title[data-v-b2d988bf]{font-size:1.125rem}.confirm-message[data-v-b2d988bf]{font-size:.875rem}.confirm-actions[data-v-b2d988bf]{flex-direction:column-reverse}}.app[data-v-0e47cddb]{min-height:100vh;background:var(--background);color:var(--text)}.install-banner[data-v-0e47cddb]{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;box-shadow:0 2px 8px #0000001a}.install-content[data-v-0e47cddb]{display:flex;align-items:center;gap:1rem;flex:1}.install-icon[data-v-0e47cddb]{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#fff3;border-radius:50%;flex-shrink:0}.install-text[data-v-0e47cddb]{display:flex;flex-direction:column;gap:.25rem}.install-text strong[data-v-0e47cddb]{font-size:.95rem}.install-text span[data-v-0e47cddb]{font-size:.8rem;opacity:.9}.install-actions[data-v-0e47cddb]{display:flex;gap:.5rem;align-items:center}.install-btn[data-v-0e47cddb]{padding:.5rem 1.25rem;border:none;background:#fff;color:#6366f1;font-weight:600;border-radius:8px;cursor:pointer;transition:transform .2s;white-space:nowrap}.install-btn[data-v-0e47cddb]:hover{transform:scale(1.05)}.install-btn[data-v-0e47cddb]:active{transform:scale(.95)}.dismiss-btn[data-v-0e47cddb]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:#fff3;color:#fff;cursor:pointer;border-radius:8px;transition:background .2s}.dismiss-btn[data-v-0e47cddb]:hover{background:#ffffff4d}.loading-screen[data-v-0e47cddb]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:1rem}.spinner[data-v-0e47cddb]{width:40px;height:40px;border:4px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin-0e47cddb .8s linear infinite}@keyframes spin-0e47cddb{to{transform:rotate(360deg)}}.loading-screen p[data-v-0e47cddb]{color:var(--text-secondary);font-size:.9rem}.slide-down-enter-active[data-v-0e47cddb],.slide-down-leave-active[data-v-0e47cddb]{transition:all .3s ease}.slide-down-enter-from[data-v-0e47cddb],.slide-down-leave-to[data-v-0e47cddb]{transform:translateY(-100%);opacity:0}@media (max-width: 640px){.install-banner[data-v-0e47cddb]{padding:.75rem}.install-text span[data-v-0e47cddb]{display:none}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--background: hsl(20, 33%, 97%);--foreground: hsl(25, 15%, 20%);--card: hsl(20, 40%, 99%);--card-foreground: hsl(25, 15%, 20%);--surface: hsl(20, 40%, 99%);--primary: hsl(145, 25%, 45%);--primary-foreground: hsl(40, 33%, 98%);--primary-hover: hsl(145, 25%, 40%);--secondary: hsl(350, 25%, 85%);--secondary-foreground: hsl(350, 30%, 30%);--muted: hsl(35, 20%, 90%);--muted-foreground: hsl(25, 10%, 45%);--accent: hsl(18, 45%, 70%);--accent-foreground: hsl(18, 50%, 25%);--destructive: hsl(0, 65%, 55%);--warning: hsl(38, 92%, 50%);--border: hsl(35, 25%, 85%);--hover: hsl(35, 25%, 92%);--input: hsl(35, 25%, 88%);--paper: hsl(20, 35%, 96%);--paper-shadow: hsl(20, 20%, 75%);--ink: hsl(25, 20%, 25%);--ink-light: hsl(25, 15%, 50%);--text: hsl(25, 15%, 20%);--text-secondary: hsl(25, 10%, 45%);--habit-empty: hsl(35, 20%, 88%);--habit-filled: hsl(145, 30%, 55%);--habit-filled-light: hsl(145, 25%, 75%);--habit-filled-intense: hsl(145, 35%, 40%);--phase-menstrual: hsl(0, 45%, 65%);--phase-follicular: hsl(145, 35%, 60%);--phase-ovulation: hsl(45, 60%, 65%);--phase-luteal: hsl(275, 30%, 65%);--washi-1: hsl(350, 35%, 80%);--washi-2: hsl(145, 30%, 75%);--washi-3: hsl(45, 50%, 80%);--washi-4: hsl(210, 35%, 75%);--shadow-soft: 0 1px 3px hsl(25 20% 75% / .1), 0 4px 12px hsl(25 20% 75% / .05);--shadow-lifted: 0 2px 8px hsl(25 20% 75% / .15), 0 8px 24px hsl(25 20% 75% / .1);--radius: .75rem}[data-theme=dark]{--background: #1a1e26;--foreground: hsl(220, 15%, 90%);--card: hsl(220, 18%, 16%);--card-foreground: hsl(220, 15%, 90%);--surface: hsl(220, 18%, 16%);--primary: hsl(145, 30%, 55%);--primary-foreground: hsl(220, 20%, 10%);--primary-hover: hsl(145, 30%, 50%);--secondary: hsl(220, 15%, 25%);--secondary-foreground: hsl(220, 15%, 85%);--muted: hsl(220, 18%, 20%);--muted-foreground: hsl(220, 12%, 65%);--accent: hsl(210, 30%, 45%);--accent-foreground: hsl(220, 15%, 95%);--destructive: hsl(0, 65%, 55%);--warning: hsl(38, 92%, 50%);--border: hsl(220, 18%, 24%);--hover: hsl(220, 18%, 22%);--input: hsl(220, 18%, 22%);--paper: hsl(220, 20%, 14%);--paper-shadow: hsl(220, 25%, 8%);--ink: hsl(220, 12%, 88%);--ink-light: hsl(220, 12%, 60%);--text: hsl(220, 15%, 90%);--text-secondary: hsl(220, 12%, 65%);--habit-empty: hsl(220, 18%, 22%);--habit-filled: hsl(145, 35%, 45%);--habit-filled-light: hsl(145, 25%, 35%);--habit-filled-intense: hsl(145, 40%, 55%);--shadow-soft: 0 1px 3px rgba(0, 0, 0, .3), 0 4px 12px rgba(0, 0, 0, .2);--shadow-lifted: 0 2px 8px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .3)}html{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.6}body{margin:0;background:var(--background);color:var(--text);overflow-x:hidden}h1,h2,h3,h4,h5,h6,.font-handwritten{font-family:Caveat,cursive;font-weight:500;letter-spacing:.01em}#app{min-height:100vh}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--primary);outline-offset:2px}button{font-family:inherit;font-size:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--background)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.paper{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-soft)}.paper-lifted{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-lifted)}.habit-cell{width:2.5rem;height:2.5rem;border-radius:.5rem;border:2px dashed var(--border);background:var(--habit-empty);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.habit-cell:hover{border-color:var(--primary);transform:scale(1.05);box-shadow:0 2px 8px #568f6e26}.habit-cell.filled{border-style:solid;border-color:#568f6e4d;background:var(--habit-filled)}.habit-cell.filled-light{background:var(--habit-filled-light)}.habit-cell.filled-intense{background:var(--habit-filled-intense)}.phase-dot{width:.5rem;height:.5rem;border-radius:50%}.phase-menstrual{background:var(--phase-menstrual)}.phase-follicular{background:var(--phase-follicular)}.phase-ovulation{background:var(--phase-ovulation)}.phase-luteal{background:var(--phase-luteal)}.notebook-lines{background-image:repeating-linear-gradient(transparent,transparent 27px,hsl(35 25% 85% / .5) 27px,hsl(35 25% 85% / .5) 28px)}.btn-journal{padding:.5rem 1rem;border-radius:var(--radius);font-weight:500;transition:all .2s ease;background:var(--card);border:1px solid var(--border);color:var(--foreground);cursor:pointer}.btn-journal:hover{background:var(--muted);border-color:#568f6e4d}.btn-journal:active{transform:scale(.95)}.btn-journal-primary{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}.btn-journal-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.theme-accent{background:hsl(var(--theme-primary) / .15);border-color:hsl(var(--theme-primary) / .3)}.decorative-line{height:1px;background:linear-gradient(90deg,transparent,var(--border),transparent);margin:1.5rem 0}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.fade-in{animation:fade-in .3s ease-out}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.gentle-float{animation:gentle-float 3s ease-in-out infinite}@keyframes gentle-float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.soft-bounce{animation:soft-bounce .4s ease}@keyframes soft-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@media (display-mode: standalone){body{-webkit-user-select:none;user-select:none}input,textarea{-webkit-user-select:text;user-select:text}}@supports (padding: max(0px)){body{padding-left:max(0px,env(safe-area-inset-left));padding-right:max(0px,env(safe-area-inset-right))}}body{overscroll-behavior-y:contain}@media (pointer: coarse){button,a{min-height:44px;min-width:44px}}
