@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}.print-page{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;color:#222;padding:20px;max-width:1000px;margin:0 auto}.print-header{border-bottom:2px solid #333;padding-bottom:12px;margin-bottom:24px}.print-header h1{font-family:Playfair Display,Georgia,serif;font-size:24px;font-weight:600;margin:0 0 4px;color:#111}.print-subtitle{font-size:13px;color:#666;margin:0}.print-footer{border-top:1px solid #ddd;padding-top:8px;margin-top:32px;text-align:right}.print-footer p{font-size:10px;color:#aaa;margin:0}.print-week-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border:1px solid #ccc;border-radius:4px}.print-day-column{border-right:1px solid #ddd;min-height:200px}.print-day-column:last-child{border-right:none}.print-day-header{padding:8px 10px;border-bottom:1px solid #ddd;background:#f5f5f5}.print-day-name{display:block;font-weight:600;font-size:13px;color:#333}.print-day-date{display:block;font-size:11px;color:#888}.print-no-lessons{padding:12px 10px;font-size:11px;color:#bbb;font-style:italic}.print-lesson-list{list-style:none;padding:0;margin:0}.print-lesson-item{display:flex;align-items:flex-start;gap:6px;padding:6px 10px;border-bottom:1px solid #eee;font-size:11px;line-height:1.4}.print-lesson-item:last-child{border-bottom:none}.print-checkbox{display:inline-block;width:13px;height:13px;border:1.5px solid #333;border-radius:2px;flex-shrink:0;margin-top:2px}.print-lesson-content{display:flex;flex-direction:column}.print-lesson-title{font-weight:500;color:#222}.print-lesson-meta{font-size:10px;color:#888}.print-month-table{width:100%;border-collapse:collapse;table-layout:fixed}.print-month-table th{padding:8px 4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#555;border-bottom:2px solid #999;text-align:left}.print-month-cell{border:1px solid #ddd;vertical-align:top;padding:4px 6px;min-height:80px;font-size:10px}.print-month-outside{background:#fafafa;color:#ccc}.print-month-weekend{background:#fafafa}.print-month-day-num{font-weight:600;font-size:12px;margin-bottom:3px;color:inherit}.print-month-lessons{list-style:none;padding:0;margin:0}.print-month-lessons li{display:flex;align-items:flex-start;gap:3px;margin-bottom:2px;line-height:1.3}.print-checkbox-sm{display:inline-block;width:10px;height:10px;border:1.5px solid #333;border-radius:1px;flex-shrink:0;margin-top:1px}.print-month-lesson-text{font-size:9px;color:#333;word-break:break-word}.print-month-subject{color:#777}.print-month-child{color:#999}.print-month-more{font-size:9px;color:#aaa;font-style:italic;padding-left:14px}@media print{body{background:#fff!important;margin:0!important;padding:0!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.desktop-sidebar,.mobile-top-header,.mobile-bottom-nav,.no-print{display:none!important}.main-content{padding:0!important;margin:0!important;max-width:100%!important}.print-page{padding:12px 16px;max-width:100%}.print-week-grid,.print-month-table tr,.print-day-column{page-break-inside:avoid}@page{margin:.5in;size:landscape}}
