@import"https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Inter:wght@300;400;500;600&display=swap";:root{--font-serif: "Playfair Display", Georgia, serif;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--bg-color: #f7f3ee;--card-bg: #fffefa;--sidebar-bg: #faf6f1;--text-primary: #3a3530;--text-secondary: #8a8279;--text-tertiary: #b5ada3;--border-color: #ece7e1;--border-light: #f0ebe4;--accent-color: #7a9e7e;--accent-light: rgba(122, 158, 126, .1);--accent-hover: rgba(122, 158, 126, .16);--success-color: #7fb08a;--success-light: rgba(127, 176, 138, .12);--notice-color: #8a7b6b;--notice-light: rgba(138, 123, 107, .09);--status-ahead: #6a9b78;--status-ahead-light: rgba(106, 155, 120, .1);--status-on-track: #8b7fb8;--status-on-track-light: rgba(139, 127, 184, .1);--status-behind: #b08d4a;--status-behind-light: rgba(176, 141, 74, .08);--progress-height: 8px;--progress-radius: 5px;--shadow-sm: 0 1px 4px rgba(45, 35, 20, .03), 0 1px 2px rgba(45, 35, 20, .02);--shadow-md: 0 4px 20px rgba(45, 35, 20, .04), 0 1px 4px rgba(45, 35, 20, .02);--shadow-lg: 0 12px 40px rgba(45, 35, 20, .06)}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);background-color:var(--bg-color);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}h1,h2,h3,h4{font-family:var(--font-serif);font-weight:500;line-height:1.3;margin:0;color:var(--text-primary)}p{margin:0}a{text-decoration:none;color:inherit}@media(min-width:768px){.desktop-sidebar{display:flex!important}.mobile-bottom-nav,.mobile-top-header{display:none!important}.main-content{margin-left:220px}}@media(max-width:767px){html,body{overflow-x:hidden}.desktop-sidebar{display:none!important}.mobile-top-header{display:flex!important}.mobile-bottom-nav{display:flex!important;position:fixed;bottom:0;left:0;right:0;height:60px;background-color:var(--card-bg);border-top:1px solid var(--border-light);z-index:100;align-items:center;justify-content:space-around;padding:0 4px;box-shadow:0 -2px 12px #0000000a}.main-content{margin-left:0;padding:68px 16px 76px!important;max-width:100vw!important;overflow-x:hidden}.mobile-grid-stack{grid-template-columns:1fr!important}.mobile-full-width{max-width:100%!important}}@keyframes skeleton-pulse{0%{opacity:.45}50%{opacity:.18}to{opacity:.45}}.skeleton{background-color:var(--border-color);border-radius:8px;animation:skeleton-pulse 1.6s ease-in-out infinite}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.error-banner{animation:fade-in-down .3s ease-out}@keyframes toast-appear{0%{opacity:0;transform:translateY(16px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-disappear{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-8px) scale(.97)}}.celebration-toast{animation:toast-appear .4s cubic-bezier(.34,1.56,.64,1) forwards}.celebration-toast.hiding{animation:toast-disappear .35s ease-in forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes checkmark-pop{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.08);opacity:1}to{transform:scale(1);opacity:1}}.lesson-card{transition:opacity .35s ease,transform .3s ease}.lesson-card.completed{opacity:.55}.lesson-checkbox{transition:background-color .25s ease,border-color .25s ease,box-shadow .25s ease}.lesson-checkbox:active{transform:scale(.9)}.lesson-checkbox .check-icon{animation:checkmark-pop .3s ease-out}.tap-scale{transition:transform .12s ease,background-color .2s ease,color .2s ease,box-shadow .2s ease}.tap-scale:active{transform:scale(.97)}.nav-item{transition:background-color .25s ease,color .25s ease,transform .15s ease}.nav-item:active{transform:scale(.97)}.mobile-nav-item{transition:color .25s ease,transform .15s ease}.mobile-nav-item:active{transform:scale(.92)}.page-transition{animation:page-fade .3s ease-out}@keyframes page-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes success-circle-appear{0%{transform:scale(.5);opacity:0}50%{transform:scale(1.06);opacity:1}to{transform:scale(1);opacity:1}}.schedule-success-check{animation:success-circle-appear .5s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes progress-fill{0%{width:0%}}.goal-progress-fill{animation:progress-fill .8s cubic-bezier(.4,0,.2,1) forwards}@keyframes day-complete-fade{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes day-complete-glow{0%{box-shadow:0 0 #7a9e7e00}50%{box-shadow:0 0 24px 4px #7a9e7e1a}to{box-shadow:0 0 #7a9e7e00}}@keyframes day-complete-line{0%{width:0}to{width:48px}}.day-complete-moment{animation:day-complete-fade .8s cubic-bezier(.25,.46,.45,.94) forwards,day-complete-glow 2.4s ease-in-out .4s}@keyframes lesson-complete-bounce{0%{transform:scale(1)}25%{transform:scale(1.04)}50%{transform:scale(.98)}75%{transform:scale(1.015)}to{transform:scale(1)}}.lesson-card.just-completed{animation:lesson-complete-bounce .45s cubic-bezier(.34,1.56,.64,1)}@keyframes celebration-shimmer{0%{background-position:-200% center}to{background-position:200% center}}.celebration-shimmer{background:linear-gradient(90deg,transparent 0%,rgba(122,158,126,.06) 25%,rgba(122,158,126,.12) 50%,rgba(122,158,126,.06) 75%,transparent 100%);background-size:200% 100%;animation:celebration-shimmer 2.5s ease-in-out .6s 1}@keyframes momentum-appear{0%{opacity:0;transform:translateY(4px) scale(.95)}60%{opacity:1;transform:translateY(-1px) scale(1.01)}to{opacity:1;transform:translateY(0) scale(1)}}.momentum-badge{animation:momentum-appear .5s ease-out}
