:root{--color-bg-primary: #FAFAFA;--color-bg-secondary: #F2F2F2;--color-bg-card: #FFFFFF;--color-bg-elevated: #FFFFFF;--color-bg-overlay: rgba(0, 0, 0, .4);--color-text-primary: #1A1A1A;--color-text-secondary: #6B6B6B;--color-text-tertiary: #9B9B9B;--color-text-inverse: #FFFFFF;--color-accent: #2C2C2C;--color-accent-soft: #E8E8E8;--color-accent-hover: #404040;--color-border: #EBEBEB;--color-border-strong: #D4D4D4;--color-success: #4A9B6E;--color-warning: #C4923A;--color-info: #5B8EC4;--color-day-empty: #F0F0F0;--color-day-partial: #D4D4D4;--color-day-complete: #2C2C2C;--color-day-updated: #5B8EC4;--color-day-current: #1A1A1A;--font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", sans-serif;--font-family-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", sans-serif;--font-size-xs: 11px;--font-size-sm: 13px;--font-size-base: 15px;--font-size-md: 17px;--font-size-lg: 20px;--font-size-xl: 24px;--font-size-2xl: 32px;--font-size-3xl: 40px;--font-size-hero: 56px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.15;--line-height-normal: 1.4;--line-height-relaxed: 1.6;--letter-spacing-tight: -.02em;--letter-spacing-normal: 0;--letter-spacing-wide: .02em;--letter-spacing-caps: .08em;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-base: 16px;--space-lg: 20px;--space-xl: 24px;--space-2xl: 32px;--space-3xl: 40px;--space-4xl: 48px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .03);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .05), 0 1px 2px rgba(0, 0, 0, .03);--shadow-md: 0 4px 14px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .04);--shadow-lg: 0 10px 28px rgba(0, 0, 0, .09), 0 3px 8px rgba(0, 0, 0, .05);--shadow-xl: 0 16px 40px rgba(0, 0, 0, .1), 0 4px 12px rgba(0, 0, 0, .06);--shadow-focus: 0 0 0 3px rgba(44, 44, 44, .12);--shadow-accent: 0 4px 14px rgba(44, 44, 44, .15);--transition-fast: .15s cubic-bezier(.25, .1, .25, 1);--transition-base: .25s cubic-bezier(.25, .1, .25, 1);--transition-slow: .4s cubic-bezier(.22, 1, .36, 1);--transition-spring: .5s cubic-bezier(.34, 1.56, .64, 1);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-out-back: cubic-bezier(.34, 1.56, .64, 1);--nav-height: 64px;--header-height: 56px;--safe-area-bottom: env(safe-area-inset-bottom, 0px);--content-max-width: 480px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}body{font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal);color:var(--color-text-primary);background:var(--color-bg-primary);overflow-x:hidden;min-height:100vh;min-height:100dvh}#root{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}a{color:inherit;text-decoration:none}button{font-family:inherit;border:none;background:none;cursor:pointer;font-size:inherit}input,textarea{font-family:inherit;font-size:inherit;border:none;outline:none;background:none}.fade-in{animation:fadeIn var(--transition-base) ease forwards}.pop-in{animation:popIn .35s cubic-bezier(.34,1.56,.64,1) forwards}.slide-in-up{animation:slideUp .35s cubic-bezier(.22,1,.36,1) forwards;opacity:0}.stagger-1{animation-delay:40ms}.stagger-2{animation-delay:80ms}.stagger-3{animation-delay:.12s}.stagger-4{animation-delay:.16s}.stagger-5{animation-delay:.2s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.85)}60%{opacity:1;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes checkPop{0%{transform:scale(1)}35%{transform:scale(1.25)}70%{transform:scale(.95)}to{transform:scale(1)}}@keyframes taskComplete{0%{background-color:transparent}30%{background-color:var(--color-accent-soft)}to{background-color:transparent}}@keyframes successPulse{0%{box-shadow:0 0 0 0 var(--color-accent-soft)}50%{box-shadow:0 0 0 8px transparent}to{box-shadow:0 0 0 0 transparent}}@keyframes breathe{0%,to{transform:scale(1);box-shadow:0 0 0 0 var(--color-accent-soft)}50%{transform:scale(1.012);box-shadow:0 0 0 6px transparent}}@keyframes dayOpen{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes dayClose{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96) translateY(8px)}}@keyframes calendarCellPop{0%{transform:scale(.9);opacity:0}60%{transform:scale(1.04);opacity:1}to{transform:scale(1);opacity:1}}.day-open-anim{animation:dayOpen .35s cubic-bezier(.22,1,.36,1) forwards}.day-close-anim{animation:dayClose .25s cubic-bezier(.22,1,.36,1) forwards}.calendar-cell-enter{animation:calendarCellPop .3s cubic-bezier(.22,1,.36,1) forwards}@media (hover: hover){.card-interactive{transition:box-shadow var(--transition-base),transform var(--transition-base)}.card-interactive:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}}.completion-glow{animation:completionGlow 1.2s ease forwards}@keyframes completionGlow{0%{box-shadow:var(--shadow-sm)}40%{box-shadow:0 4px 20px #4a9b6e26,var(--shadow-md)}to{box-shadow:var(--shadow-sm)}}.close-day-anim{animation:closeDayRitual .8s cubic-bezier(.22,1,.36,1) forwards}@keyframes closeDayRitual{0%{opacity:1;transform:scale(1)}30%{transform:scale(1.01)}60%{opacity:1}to{opacity:.97;transform:scale(1)}}.tab-enter{animation:tabEnter .28s var(--ease-out-expo) forwards}@keyframes tabEnter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.progress-fill-anim{animation:progressFillSmooth .6s var(--ease-out-expo) forwards}@keyframes progressFillSmooth{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.stagger-6{animation-delay:.24s}.stagger-7{animation-delay:.28s}.stagger-8{animation-delay:.32s}button:active{transform:scale(.97);transition:transform 80ms ease}nav button:active,input:active,textarea:active{transform:none}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.theme-ivory{--color-bg-primary: #FAF8F5;--color-bg-secondary: #F3EFE9;--color-bg-card: #FFFFFF;--color-bg-elevated: #FFFFFF;--color-bg-overlay: rgba(0, 0, 0, .35);--color-text-primary: #2D2A26;--color-text-secondary: #7A7469;--color-text-tertiary: #A9A299;--color-text-inverse: #FFFFFF;--color-accent: #8B6F4E;--color-accent-soft: #EDE6DA;--color-accent-hover: #6D5639;--color-border: #E8E2D8;--color-border-strong: #D5CCBF;--color-success: #5A8A5E;--color-warning: #C4923A;--color-info: #5B8EC4;--color-day-empty: #EDE8E0;--color-day-partial: #D5CCBF;--color-day-complete: #8B6F4E;--color-day-updated: #7A9B6E;--color-day-current: #6D5639;--shadow-focus: 0 0 0 3px rgba(139, 111, 78, .12)}.theme-forest{--color-bg-primary: #F5F8F5;--color-bg-secondary: #E8EDE8;--color-bg-card: #FFFFFF;--color-bg-elevated: #FFFFFF;--color-bg-overlay: rgba(0, 0, 0, .35);--color-text-primary: #1C2A1C;--color-text-secondary: #5A6F5A;--color-text-tertiary: #8FA08F;--color-text-inverse: #FFFFFF;--color-accent: #3B6B3B;--color-accent-soft: #DDE8DD;--color-accent-hover: #2D522D;--color-border: #DBE3DB;--color-border-strong: #C2D0C2;--color-success: #3B8B4A;--color-warning: #B8893A;--color-info: #4A7FA8;--color-day-empty: #E2E9E2;--color-day-partial: #B5C8B5;--color-day-complete: #3B6B3B;--color-day-updated: #4A7FA8;--color-day-current: #2D522D;--shadow-focus: 0 0 0 3px rgba(59, 107, 59, .12)}.theme-ocean{--color-bg-primary: #F4F7FA;--color-bg-secondary: #E6ECF2;--color-bg-card: #FFFFFF;--color-bg-elevated: #FFFFFF;--color-bg-overlay: rgba(0, 0, 0, .35);--color-text-primary: #1A2533;--color-text-secondary: #5A6D82;--color-text-tertiary: #8A9BB0;--color-text-inverse: #FFFFFF;--color-accent: #2B5B8A;--color-accent-soft: #DAE4EF;--color-accent-hover: #1E4268;--color-border: #D8E1EA;--color-border-strong: #BDC9D8;--color-success: #3D8B6A;--color-warning: #C49040;--color-info: #2B5B8A;--color-day-empty: #DFE6EE;--color-day-partial: #B5C5D8;--color-day-complete: #2B5B8A;--color-day-updated: #3D8B6A;--color-day-current: #1E4268;--shadow-focus: 0 0 0 3px rgba(43, 91, 138, .12)}
