@import"https://fonts.googleapis.com/css2?family=Manrope:wght@300;400;500;600;700;800&family=Source+Serif+4:wght@400;600;700&display=swap";:root{--primary-color: #1d4ed8;--primary-hover: #1e40af;--primary-light: #e0ecff;--secondary-color: #0f766e;--accent-color: #b45309;--success-color: #15803d;--warning-color: #d97706;--danger-color: #b91c1c;--bg-color: #f7f6f2;--bg-secondary: #ffffff;--bg-tertiary: #f1efe9;--card-bg: #ffffff;--text-color: #111827;--text-secondary: #4b5563;--text-tertiary: #6b7280;--text-muted: #9ca3af;--border-color: #e5e7eb;--border-color-light: #efece6;--shadow-sm: 0 2px 6px rgba(15, 23, 42, .06);--shadow: 0 12px 30px rgba(15, 23, 42, .08);--shadow-lg: 0 20px 50px rgba(15, 23, 42, .12);--shadow-xl: 0 35px 70px rgba(15, 23, 42, .16);--border-radius: 10px;--border-radius-lg: 16px;--border-radius-xl: 20px;--font-family: "Manrope", "Segoe UI", system-ui, sans-serif;--font-family-display: "Source Serif 4", "Georgia", serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--transition-fast: .15s cubic-bezier(.16, 1, .3, 1);--transition-base: .25s cubic-bezier(.16, 1, .3, 1);--transition-slow: .35s cubic-bezier(.16, 1, .3, 1);--spacing-1: .25rem;--spacing-2: .5rem;--spacing-3: .75rem;--spacing-4: 1rem;--spacing-6: 1.5rem;--spacing-8: 2rem;--spacing-12: 3rem}:root.dark,body.dark{--bg-color: #0f172a;--bg-secondary: #111827;--bg-tertiary: #1f2937;--card-bg: #1e293b;--text-color: #f1f5f9;--text-secondary: #cbd5f5;--text-tertiary: #94a3b8;--text-muted: #94a3b8;--border-color: #2b3346;--border-color-light: #3b455e;--primary-color: #4f7cff;--primary-hover: #3b6cf5;--primary-light: rgba(79, 124, 255, .2);--shadow: 0 10px 30px rgba(0, 0, 0, .35);--shadow-lg: 0 18px 50px rgba(0, 0, 0, .45);--shadow-xl: 0 28px 70px rgba(0, 0, 0, .5)}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--font-family);background-color:var(--bg-color);background-image:radial-gradient(circle at 0% 0%,rgba(29,78,216,.12),transparent 55%),radial-gradient(circle at 20% 90%,rgba(15,118,110,.1),transparent 60%);color:var(--text-color);line-height:1.65;font-size:16px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color var(--transition-base),color var(--transition-base)}body.dark{background-image:radial-gradient(circle at 0% 0%,rgba(79,124,255,.2),transparent 55%),radial-gradient(circle at 20% 90%,rgba(15,118,110,.2),transparent 60%)}a{color:inherit;text-decoration:none}a:hover{color:var(--primary-color)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.container{width:100%;max-width:1200px;margin:0 auto;padding:2.5rem 2rem;box-sizing:border-box}.site-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;max-width:100%;padding:1rem 1.25rem;background:#ffffffe6;border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);position:sticky;top:0;z-index:20}.dark .site-header{background:#0f172acc;border-bottom:1px solid var(--border-color)}.site-brand{display:flex;align-items:center;justify-self:start}.brand-link{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;color:inherit}.brand-mark{color:var(--primary-color)}.site-title{font-weight:700;font-size:1.125rem;letter-spacing:.01em}.site-nav{display:flex;align-items:center;justify-self:center;justify-content:center;flex-wrap:wrap;gap:.75rem}.site-nav-link{text-decoration:none;color:var(--text-secondary);font-size:.9rem;font-weight:600;letter-spacing:.01em;padding:.35rem .7rem;border-radius:999px;transition:color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast)}.site-nav-link:hover{color:var(--primary-color);background:var(--primary-light)}.site-nav-link:focus-visible{outline:2px solid rgba(59,130,246,.35);outline-offset:2px;background:var(--primary-light);color:var(--primary-color)}.site-nav-link.is-active{color:var(--primary-color);background:#2563eb1f;box-shadow:inset 0 0 0 1px #2563eb33}.site-actions{display:flex;align-items:center;gap:.8rem;justify-self:end}.theme-toggle{background:transparent;border:1px solid rgba(15,23,42,.06);color:inherit;padding:.5rem;border-radius:10px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.theme-toggle:hover{background:#3b82f614;border-color:#3b82f633;transform:rotate(20deg)}.theme-toggle:focus{outline:2px solid rgba(59,130,246,.25)}.theme-toggle:focus-visible{outline:2px solid rgba(59,130,246,.35);outline-offset:2px}.hero,.page-header{text-align:left;margin-bottom:3rem;animation:slideInDown var(--transition-slow)}.hero{background:linear-gradient(135deg,#1d4ed814,#0f766e14);padding:3.5rem 2.75rem;border-radius:24px;border:1px solid rgba(15,23,42,.06);box-shadow:var(--shadow);display:grid;gap:1.5rem;margin-top:1.5rem}.hero-title{font-family:var(--font-family-display);font-size:clamp(2rem,3vw,3rem);letter-spacing:-.02em;margin:0}.hero-subtitle{margin:0;font-size:1.05rem;color:var(--text-secondary);max-width:60ch}.hero .cta{margin-top:1.5rem;display:inline-flex;background:var(--primary-color);color:#fff;padding:.875rem 2rem;border-radius:999px;text-decoration:none;align-items:center;gap:.6rem;box-shadow:0 10px 25px -8px #1d4ed866;font-weight:600;font-size:1rem;transition:all var(--transition-base);border:none;cursor:pointer;position:relative;overflow:hidden}.hero .cta:before{content:none}.hero .cta:hover:before{left:100%}.hero .cta:hover{transform:translateY(-2px);box-shadow:0 18px 45px -12px #1d4ed880}.hero .cta:active{transform:translateY(0)}h1,h2,h3,h4{font-family:var(--font-family-display);color:var(--text-color);letter-spacing:-.02em;line-height:1.2}h1{font-size:clamp(2.2rem,3vw,3rem);font-weight:700;margin-bottom:.5rem}h2{font-size:clamp(1.6rem,2.2vw,2.2rem);font-weight:600;margin:0 0 .5rem}h3{font-size:1.35rem;font-weight:600;margin:0 0 .4rem}h4{font-size:1.1rem;font-weight:600;margin:0 0 .35rem}p{color:var(--text-secondary);font-size:1rem;margin:.5rem 0 0}.search-bar{margin-top:1.5rem;margin-bottom:2rem;display:flex;justify-content:center}.search-bar input,.search-input{width:100%;max-width:500px;padding:.875rem 1.25rem;border:1px solid var(--border-color);border-radius:50px;font-size:1rem;transition:all var(--transition-base);background:var(--card-bg);color:var(--text-color);box-shadow:var(--shadow-sm)}.search-bar input::placeholder,.search-input::placeholder{color:var(--text-muted)}.search-bar input:focus,.search-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 4px #1d4ed826,0 8px 16px #1d4ed81f;transform:translateY(-2px)}.study-list,.class-list{display:grid;gap:1.5rem;animation:fadeIn var(--transition-slow) .1s both;padding-bottom:2rem}.study-list.mounted{opacity:1}.study-list:not(.mounted){opacity:.8}.study-item{animation:slideInUp var(--transition-slow) var(--item-delay, 0) both}.study-card,.class-card{background:var(--card-bg);padding:1.75rem;border-radius:16px;box-shadow:var(--shadow);text-decoration:none;color:inherit;transition:all var(--transition-base);display:block;border:1px solid rgba(59,130,246,.05);position:relative;overflow:hidden}.study-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--primary-color),var(--secondary-color),transparent);transform:scaleX(0);transform-origin:left;transition:transform var(--transition-base)}.study-card:hover:before{transform:scaleX(1)}.study-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:#3b82f626}details.class-card{padding:1rem}details.class-card[open]{transform:translateY(-2px)}details.class-card summary{list-style:none;cursor:pointer}details.class-card summary::-webkit-details-marker{display:none}details.class-card summary h3{margin:0;display:inline-block}.lesson{background:var(--card-bg);padding:1rem 1.25rem;border-radius:12px;box-shadow:var(--shadow);transition:all var(--transition-base);border:1px solid rgba(59,130,246,.05)}.lesson+.lesson{margin-top:.85rem}.lessons-list{display:flex;flex-direction:column;gap:1rem}.lesson:hover{box-shadow:var(--shadow-lg);border-color:#3b82f61f}.lesson.open{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.lesson.completed{opacity:1;border:1px solid rgba(16,185,129,.2);background:#10b98105}.lesson-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.lesson-title{background:transparent;border:0;padding:0;text-align:left;display:flex;align-items:center;gap:.6rem;cursor:pointer;font-size:1rem;color:inherit;transition:all var(--transition-fast)}.lesson-title:hover{color:var(--primary-color)}.lesson-title:focus{outline:2px solid rgba(59,130,246,.3);border-radius:8px}.lesson-title-text{font-weight:600}.lesson-chevron{color:var(--text-muted);font-size:.95rem;transition:transform var(--transition-base)}.lesson.open .lesson-chevron{transform:rotate(180deg)}.lesson-actions{display:flex;gap:.5rem;align-items:center}@media(max-width:600px){.lesson-head{flex-direction:column;align-items:stretch}.lesson-actions{flex-wrap:wrap;justify-content:center;width:100%;gap:.35rem;margin-top:.5rem}.lesson-actions .btn.small,.lesson-actions a.btn.small{width:100%;justify-content:center;text-align:center;box-sizing:border-box}}.btn.small{background:var(--card-bg);border:1px solid var(--border-color);padding:.4rem .8rem;border-radius:var(--border-radius);cursor:pointer;color:inherit;font-size:.875rem;font-weight:500;transition:all var(--transition-fast)}.btn.small:hover:not(:disabled){background:var(--primary-light);border-color:#1d4ed840;transform:translateY(-1px)}.btn.small[aria-pressed=true]{background:var(--success-color);color:#fff;border-color:var(--success-color)}.btn.small[aria-pressed=true]:hover{background:#059669;box-shadow:0 4px 12px #10b98140}.btn.small.btn-primary{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.btn.small.btn-primary:hover{background:var(--primary-hover);box-shadow:0 4px 12px #3b82f64d;transform:translateY(-1px)}.btn.small.btn-danger{background:var(--danger-color);color:#fff;border-color:var(--danger-color)}.btn.small.btn-danger:hover{background:#b91c1c;box-shadow:0 4px 12px #dc26264d;transform:translateY(-1px)}.lesson-content{margin-top:.7rem;color:var(--text-muted)}.lesson-desc{margin:0 0 .5rem}article.lesson{display:block}.progress-wrap{display:flex;align-items:center;gap:.75rem;max-width:360px}.progress-track{flex:1;height:10px;background:#0f172a14;border-radius:999px;overflow:hidden;position:relative}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary-color),var(--secondary-color),var(--accent-color));transition:width .4s cubic-bezier(.4,0,.2,1);box-shadow:0 0 12px #3b82f666}.progress-label{font-size:.85rem;color:var(--text-muted);min-width:76px;text-align:right}.lesson-subtitle{color:var(--text-muted);font-size:.9rem;margin-top:2px;max-width:56ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lesson.open .lesson-subtitle{display:none}.lesson-detail .detail-card{background:var(--card-bg);padding:2rem;border-radius:16px;box-shadow:var(--shadow);animation:slideInUp var(--transition-slow)}.lesson-detail .detail-meta{display:flex;gap:.75rem;align-items:center;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid rgba(59,130,246,.1)}.lesson-detail .estimate{color:var(--text-muted);font-size:.9rem;font-weight:500}.lesson-detail h2{margin-top:2rem;margin-bottom:1rem;font-size:1.5rem;font-weight:700;color:var(--text-color)}.notes{margin-top:2rem;padding-top:2rem;border-top:1px solid rgba(59,130,246,.1)}.notes label{display:block;font-weight:600;margin-bottom:.75rem;color:var(--text-color)}.notes textarea{width:100%;min-height:140px;border:2px solid rgba(59,130,246,.1);background:var(--bg-color);color:var(--text-color);padding:.875rem;border-radius:12px;resize:vertical;font-family:inherit;font-size:.95rem;transition:all var(--transition-base)}.notes textarea::placeholder{color:var(--text-muted)}.notes textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 4px #3b82f61f}.study-sections{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.study-block{background:#3b82f608;border:1px solid rgba(59,130,246,.1);border-radius:12px;padding:1rem 1.25rem;transition:all var(--transition-base)}.study-block:hover{background:#3b82f60d;border-color:#3b82f626}.dark .study-block{background:#60a5fa08;border-color:#60a5fa1a}.dark .study-block:hover{background:#60a5fa0f;border-color:#60a5fa26}.study-block h3{margin:0 0 .35rem}.study-block h4{margin:0 0 .25rem}.study-meta{display:flex;flex-direction:column;gap:.75rem}.study-highlight{padding:1.25rem;background:linear-gradient(135deg,#3b82f614,#8b5cf60d);border-radius:12px;border:1px solid rgba(59,130,246,.2);transition:all var(--transition-base)}.study-highlight:hover{background:linear-gradient(135deg,#3b82f61f,#8b5cf614);border-color:#3b82f64d;transform:translateY(-1px)}.dark .study-highlight{background:linear-gradient(135deg,#60a5fa1f,#8b5cf614);border-color:#60a5fa4d}.pill{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .7rem;background:#0f172a0d;border-radius:999px;font-size:.9rem;color:var(--text-muted)}.dark .pill{background:#ffffff0d;color:#cfd8e3}.tight-list{margin:0;padding-left:1.1rem;display:grid;gap:.35rem}.study-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.study-card-block{background:var(--card-bg);border-radius:10px;padding:.75rem .9rem;box-shadow:var(--shadow)}.study-card-block p{margin:0}.study-card .meta{color:var(--text-muted);font-size:.9rem;margin-top:.4rem}.study-card .icon{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;margin-right:12px;background:linear-gradient(135deg,#3b82f61f,#8b5cf614);color:var(--primary-color);flex-shrink:0;transition:all var(--transition-base)}.study-card:hover .icon{background:linear-gradient(135deg,#3b82f633,#8b5cf61f);transform:scale(1.05) rotate(5deg)}.study-card-inner{display:flex;align-items:center;gap:1rem}.study-card:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px #0000001a}.study-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.toast-viewport{position:fixed;top:1rem;right:1rem;z-index:9999;display:grid;gap:.75rem;width:min(420px,calc(100vw - 2rem))}.toast{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-lg);padding:.85rem .9rem;display:grid;grid-template-columns:auto 1fr auto;gap:.75rem;align-items:start;animation:slideInDown var(--transition-slow)}.toast-success{border-left:4px solid var(--success-color)}.toast-error{border-left:4px solid var(--danger-color)}.toast-icon{margin-top:.1rem}.toast-title{font-weight:700;margin-bottom:.15rem}.toast-message{color:var(--text-color);font-size:.95rem;line-height:1.35}.toast-close{border:0;background:transparent;color:var(--text-muted);font-size:1.2rem;line-height:1;padding:.1rem .35rem;cursor:pointer;border-radius:8px;transition:all var(--transition-fast)}.toast-close:hover{background:var(--bg-secondary);color:var(--text-color)}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.study-card,.class-card{transition:none}}.study-card h2,.class-card h3{margin:0 0 .5rem;color:var(--text-color)}.back-link{display:inline-block;margin-bottom:1rem;color:var(--primary-color);text-decoration:none;font-weight:500;transition:all var(--transition-fast);font-size:.95rem}.back-link:hover{color:var(--primary-hover);transform:translate(-2px)}.no-results{text-align:center;font-style:italic}.form-card{background:var(--card-bg);border-radius:var(--border-radius-xl);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);padding:2.5rem;transition:transform var(--transition-base),box-shadow var(--transition-base);animation:slideInUp var(--transition-slow)}.form-card:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.form-group{margin-bottom:1.5rem;position:relative;animation:fadeIn var(--transition-slow)}.form-grid-two-col{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.form-label{display:block;font-weight:600;margin-bottom:.6rem;color:var(--text-color);font-size:.95rem;letter-spacing:-.01em}.form-input,.form-textarea{width:100%;padding:.875rem 1rem;border-radius:var(--border-radius);border:1px solid var(--border-color);background:var(--bg-color);color:var(--text-color);font-family:inherit;font-size:1rem;transition:all var(--transition-base);box-sizing:border-box}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted)}.form-input:focus::placeholder,.form-textarea:focus::placeholder{color:transparent}.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 4px #1d4ed82e,inset 0 0 0 1px #1d4ed80d;background:var(--card-bg);transform:translateY(-1px)}input:focus::placeholder,textarea:focus::placeholder{color:transparent}.form-textarea{min-height:140px;resize:vertical;font-size:.95rem;line-height:1.6}.code-editor{font-family:Menlo,Monaco,Courier New,monospace;font-size:.9rem;line-height:1.5;background:#1e293b;color:#e2e8f0;border:1px solid #334155;white-space:pre}.rich-text-editor{border:1px solid var(--border-color);border-radius:12px;background:var(--card-bg);box-shadow:var(--shadow)}.rte-toolbar{display:flex;gap:.35rem;padding:.5rem;border-bottom:1px solid var(--border-color);background:#0f172a08}.rte-toolbar button{border:1px solid var(--border-color);background:#fff;color:#0f172a;padding:.35rem .6rem;border-radius:6px;font-size:.9rem;cursor:pointer}.rte-toolbar button.active{border-color:var(--primary-color);color:var(--primary-color);background:#4f46e514}.rte-surface{padding:.75rem .9rem;min-height:200px}.rich-text-editor .ProseMirror{min-height:180px;outline:none}.rich-text-editor .ProseMirror p{margin:0 0 .5rem}.rich-text-editor .ProseMirror ul,.rich-text-editor .ProseMirror ol{padding-left:1.2rem}.form-input:disabled{background:#94a3b814;cursor:not-allowed;opacity:.6;border-color:#94a3b833}.btn-primary{background:var(--primary-color);color:#fff;border:none;padding:.875rem 1.75rem;border-radius:var(--border-radius);font-weight:600;font-size:1rem;cursor:pointer;transition:all var(--transition-base);display:inline-flex;align-items:center;justify-content:center;gap:.5rem;box-shadow:0 10px 25px #1d4ed833;position:relative;overflow:hidden}.btn-primary:before{content:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-4);font-size:var(--font-size-sm);font-weight:600;border:1px solid transparent;border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition-fast);text-decoration:none;background:var(--card-bg);color:var(--text-color)}.btn:focus-visible{outline:2px solid rgba(29,78,216,.35);outline-offset:2px}.btn-primary{background-color:var(--primary-color);color:#fff;box-shadow:0 8px 18px #1d4ed838}.btn-primary:hover{background-color:var(--primary-hover);box-shadow:var(--shadow);transform:translateY(-1px)}.btn-secondary{background-color:var(--bg-tertiary);color:var(--text-color);border:1px solid var(--border-color)}.btn-secondary:hover{background-color:#0f172a0a;box-shadow:var(--shadow-sm)}.btn-danger{background-color:var(--danger-color);color:#fff}.btn-danger:hover{background-color:#b91c1c;box-shadow:var(--shadow);transform:translateY(-1px)}.btn-success{background-color:var(--success-color);color:#fff}.btn-success:hover{background-color:#15803d;box-shadow:var(--shadow);transform:translateY(-1px)}.card{background-color:var(--card-bg);border-radius:var(--border-radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);transition:all var(--transition-base);overflow:hidden}.card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.card-header{padding:var(--spacing-6);border-bottom:1px solid var(--border-color)}.card-body{padding:var(--spacing-6)}.card-footer{padding:var(--spacing-4) var(--spacing-6);border-top:1px solid var(--border-color);background-color:var(--bg-secondary)}.form-group{margin-bottom:var(--spacing-6)}.form-label{display:block;margin-bottom:var(--spacing-2);font-weight:600;color:var(--text-color);font-size:var(--font-size-sm)}.form-input,.form-textarea,.form-select{width:100%;padding:var(--spacing-3) var(--spacing-4);font-size:var(--font-size-base);font-family:inherit;border:1px solid var(--border-color);border-radius:var(--border-radius);background-color:var(--card-bg);color:var(--text-color);transition:all var(--transition-fast);box-sizing:border-box}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-light)}.form-textarea{resize:vertical;min-height:120px}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-6)}.grid{display:grid;gap:var(--spacing-6)}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-6)}.grid-3{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.grid-4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}h1{font-size:var(--font-size-2xl);font-weight:700;margin-bottom:var(--spacing-4);color:var(--text-color)}h2{font-size:var(--font-size-xl);font-weight:700;margin-bottom:var(--spacing-3);color:var(--text-color)}h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-2);color:var(--text-color)}p{color:var(--text-secondary);margin-bottom:var(--spacing-4)}.badge{display:inline-block;padding:var(--spacing-1) var(--spacing-3);font-size:var(--font-size-xs);font-weight:600;border-radius:999px;background-color:var(--primary-light);color:var(--primary-color)}.badge-success{background-color:#dcfce7;color:var(--success-color)}.badge-danger{background-color:#fee2e2;color:var(--danger-color)}.badge-warning{background-color:#fef3c7;color:var(--warning-color)}.alert{padding:var(--spacing-4);border-radius:var(--border-radius);margin-bottom:var(--spacing-6)}.alert-info{background-color:var(--primary-light);color:var(--primary-color);border:1px solid var(--primary-color)}.alert-success{background-color:#dcfce7;color:var(--success-color);border:1px solid var(--success-color)}.alert-danger{background-color:#fee2e2;color:var(--danger-color);border:1px solid var(--danger-color)}.alert-warning{background-color:#fef3c7;color:var(--warning-color);border:1px solid var(--warning-color)}.btn-primary:hover:not(:disabled):before{left:100%}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #3b82f659}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{background:#cbd5e0;color:#fff;cursor:not-allowed;box-shadow:none;border:1px solid #e2e8f0}.btn-secondary:disabled{background:#f7fafc;color:#4a5568;cursor:not-allowed;border:1px solid #cbd5e0}.page-container{max-width:1200px;margin:0 auto;padding:2rem 1rem;min-height:calc(100vh - 80px)}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem;gap:1rem;flex-wrap:wrap;padding-bottom:1rem;border-bottom:1px solid var(--border-color-light)}.page-header h1{margin:0;color:var(--text-color)}.study-page .page-header{padding-top:1rem}.lesson-detail .page-header{position:relative;flex-direction:row;align-items:center;justify-content:space-between;text-align:left;gap:1rem;padding-top:2rem;flex-wrap:nowrap}.lesson-detail .page-header-left,.lesson-detail .page-header-right{flex:0 0 auto}.lesson-detail .page-header-center{flex:1 1 auto;text-align:center}.back-link{display:inline-flex;align-items:center;gap:.5rem;color:var(--text-color);text-decoration:none;margin-bottom:2rem;transition:all var(--transition-fast);font-size:.95rem;font-weight:600;padding:.35rem .75rem;border-radius:999px;background:var(--card-bg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.back-link:hover{transform:translate(-2px);border-color:#1d4ed859;color:var(--primary-color)}.content-card{background:var(--card-bg);border-radius:var(--border-radius-lg);padding:2rem;border:1px solid var(--border-color);box-shadow:var(--shadow-sm);margin-bottom:2rem}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;gap:1rem}.loading-state{text-align:center;color:var(--text-color);padding:3rem 1rem}.empty-state{text-align:center;color:var(--text-muted);padding:2rem 1rem}.error-banner{background:#ff00001a;color:#ff6b6b;padding:1rem;border-radius:8px;margin-bottom:2rem}.success-banner{background:var(--surface);color:var(--success-color);border:1px solid var(--success-color);padding:1rem;border-radius:8px;margin-bottom:2rem}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between;gap:1rem}.flex-start{display:flex;align-items:flex-start;gap:1rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-muted{color:var(--text-muted)}.text-primary{color:var(--primary-color)}.text-success{color:var(--success-color)}.text-danger{color:var(--danger-color)}.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--spacing-1)}.mb-2{margin-bottom:var(--spacing-2)}.mb-3{margin-bottom:var(--spacing-3)}.mb-4{margin-bottom:var(--spacing-4)}.mb-6{margin-bottom:var(--spacing-6)}.mt-0{margin-top:0}.mt-1{margin-top:var(--spacing-1)}.mt-2{margin-top:var(--spacing-2)}.mt-3{margin-top:var(--spacing-3)}.mt-4{margin-top:var(--spacing-4)}.mt-6{margin-top:var(--spacing-6)}.p-4{padding:var(--spacing-4)}.p-6{padding:var(--spacing-6)}.table-responsive{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.table thead{background:var(--bg-secondary)}.table th{text-align:left;padding:1rem;color:var(--text-color);font-weight:600;border-bottom:2px solid rgba(128,128,128,.2)}.table td{padding:1rem;border-bottom:1px solid var(--border-color);color:var(--text-color)}.table tbody tr:hover{background-color:var(--bg-secondary)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--card-bg);padding:2rem;border-radius:12px;max-width:400px;width:90%;box-shadow:var(--shadow)}.input-group{display:flex;gap:.5rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.tab-nav{display:flex;gap:1rem;margin-bottom:2rem;border-bottom:2px solid var(--border-color);padding-bottom:1rem;flex-wrap:wrap}.tab-nav-btn{padding:.5rem 1rem;border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:1rem;font-weight:600;transition:all var(--transition-fast)}.tab-nav-btn:hover{color:var(--text-color)}.tab-nav-btn.active{color:var(--text-color);border-bottom:3px solid var(--text-color)}.search-wrapper{position:relative;width:300px}.search-input{width:100%;padding:8px 12px;border-radius:6px;border:1px solid var(--border-color);font-size:14px;background-color:var(--card-bg);color:var(--text-color)}.search-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:4px;background-color:var(--card-bg);border-radius:6px;box-shadow:var(--shadow);border:1px solid var(--border-color);z-index:50;max-height:300px;overflow-y:auto}.search-result-item{width:100%;text-align:left;padding:8px 12px;background:none;border:none;cursor:pointer;display:block;font-size:14px;color:var(--text-color);transition:background-color var(--transition-fast)}.search-result-item:hover{background-color:var(--bg-secondary)}.search-result-title{font-weight:500;color:var(--text-color)}.search-result-desc{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dropdown-menu{position:absolute;top:calc(100% + 8px);right:0;background:var(--card-bg);border:1px solid var(--border-color);border-radius:10px;min-width:200px;box-shadow:var(--shadow);z-index:999;padding:.5rem}.dropdown-item{padding:.5rem .75rem;text-decoration:none;color:inherit;font-size:.95rem;display:block;transition:all var(--transition-fast)}.dropdown-item:hover{background-color:var(--bg-secondary);border-radius:6px}.dropdown-divider{border-top:1px solid var(--border-color);margin:.5rem 0;padding:0}.card-action{position:absolute;top:1rem;right:1rem;padding:.4rem .8rem;border-radius:8px;text-decoration:none;font-size:.85rem;font-weight:600;transition:all var(--transition-fast);border:none;cursor:pointer}.card-action:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #3b82f64d}.card-action:disabled{cursor:not-allowed;opacity:.6}.card-action-primary{background:var(--primary-color);color:#fff}.card-action-success{background:var(--success-color);color:#fff}.card-action-success:hover:not(:disabled){box-shadow:0 4px 12px #10b9814d}.card-action-disabled{background:#ccc;color:#666;cursor:not-allowed}.card-stats{display:flex;align-items:center;gap:1rem;margin-top:.5rem;font-size:.85rem;color:var(--text-muted)}.stat-card{background-color:var(--bg-secondary);padding:1.5rem;border-radius:10px;border:1px solid var(--border-color)}.insights-list{margin:0;padding-left:1.5rem}.insights-list li{margin-bottom:.75rem;color:var(--text-color)}.flex-col{display:flex;flex-direction:column}.gap-1{gap:.25rem}.info-label{color:var(--text-muted);font-size:.85rem;margin-top:0;margin-bottom:.25rem;font-weight:600}.info-value{color:var(--text-color);margin:0}.info-code{background:var(--card-bg);padding:.25rem .5rem;border-radius:4px;color:var(--text-color);font-family:monospace;font-size:.9rem}.info-link{color:var(--primary-color);text-decoration:none;transition:all var(--transition-fast)}.info-link:hover{text-decoration:underline;opacity:.8}.members-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.member-card{background:var(--card-bg);padding:1rem;border-radius:8px}.member-card.admin{border-left:4px solid var(--primary-color)}.member-name{margin:0;font-weight:600;color:var(--text-color)}.member-email{margin:.25rem 0 0;font-size:.8rem;color:var(--text-muted)}.member-role{margin:.5rem 0 0;font-size:.85rem;color:var(--text-muted)}.hero-section{margin-bottom:1.5rem}.hero-title{margin-bottom:.75rem}.hero-subtitle{font-size:1.1rem;color:var(--text-muted);margin-bottom:0}.hero-actions{margin-top:2rem;display:flex;gap:1rem;flex-wrap:wrap}.cta-link{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:8px;color:#fff;text-decoration:none;font-weight:600;transition:all var(--transition-fast)}.cta-link:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.cta-org{background:linear-gradient(135deg,#10b981,#059669)}.cta-groups{background:linear-gradient(135deg,#f59e0b,#d97706)}.error-message{text-align:center;padding:2rem;color:#dc2626;background:#fee;border-radius:8px;margin-bottom:2rem}.error-message p:first-child{font-size:1.1rem;margin-bottom:.5rem}.error-text{display:flex;align-items:center;gap:.5rem}.error-message p:last-child{font-size:.9rem;color:#991b1b;margin:0}.error-code{background:#fef2f2;padding:.25rem .5rem;border-radius:4px;font-family:monospace}.loading-message,.empty-message{text-align:center;padding:3rem 2rem;color:var(--text-muted);animation:fadeIn var(--transition-slow)}.empty-message p:first-child{font-size:1.1rem;margin-bottom:.5rem}.analytics-section{margin-top:2rem}.analytics-title{margin-bottom:1.5rem;font-size:1.25rem;font-weight:700}.analytics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{background:var(--card-bg);padding:1.5rem;border-radius:8px;box-shadow:var(--shadow)}.stat-label{font-size:.9rem;opacity:.9;margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem}.stat-value{font-size:2.5rem;font-weight:700;margin-bottom:.5rem}.stat-subtitle{font-size:.85rem;opacity:.85}.chart-bar{width:100%;background:linear-gradient(180deg,#3b82f6,#1e40af);border-radius:6px 6px 0 0;opacity:.8;transition:all .25s ease;cursor:pointer}.chart-date{font-size:.7rem;color:var(--text-muted);margin-top:.5rem;text-align:center}.list-unstyled{list-style:none;margin:0;padding:0}.list-item{margin-bottom:.75rem;color:var(--text-color)}.list-item.muted{color:var(--text-muted)}.form-label-required:after{content:" *";color:#ef4444}.form-help-text{color:var(--text-muted);display:block;margin-top:.5rem;font-size:.9rem}.form-checkbox-item{padding:1rem;border-radius:8px;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;gap:.75rem}.grid-gap-small{gap:.75rem}.grid-scrollable{max-height:300px;overflow-y:auto;padding-right:.5rem}.discussion-header{display:flex;justify-content:space-between;align-items:center}.discussion-form{background:#3b82f60d;padding:1.5rem;border-radius:8px;border:2px solid var(--primary-color)}.discussion-title{margin:0;color:var(--text-color)}.discussion-form{margin-bottom:1rem}.reaction-pill{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .9rem;border:1px solid var(--border-color);border-radius:999px;background:var(--card-bg);color:var(--text-color);cursor:pointer;font-size:.9rem;font-weight:600;transition:all var(--transition-fast);box-shadow:var(--shadow-sm);white-space:nowrap}.reaction-pill:hover:not(:disabled){border-color:#1d4ed866;background:#1d4ed80f;transform:translateY(-1px)}.reaction-pill.is-active{border-color:var(--primary-color);background:#1d4ed81f;box-shadow:0 8px 18px #1d4ed82e}.reaction-pill:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.link-unstyled{text-decoration:none;color:inherit}.link-muted{color:var(--text-muted);text-decoration:none}.link-muted:hover{text-decoration:underline}@media(max-width:768px){.site-header{grid-template-columns:1fr;row-gap:.5rem;align-items:flex-start}.site-header nav{width:100%;order:3}.site-actions{justify-self:stretch;flex-wrap:wrap;gap:.5rem;width:100%;justify-content:flex-start;overflow-wrap:anywhere}.site-actions .btn,.site-actions .btn-secondary,.site-actions .btn-primary,.site-actions .theme-toggle{width:auto;white-space:normal;max-width:100%}.site-actions>*{flex:0 1 auto}.site-actions .btn,.site-actions .btn-secondary,.site-actions .btn-primary{text-align:center;justify-content:center}.container{padding:1.5rem 1rem}.hero{padding:2.5rem 1.5rem}.hero-title{font-size:2rem}.page-header{flex-direction:column;align-items:flex-start;text-align:left}.lesson-detail .page-header{flex-direction:column;align-items:flex-start;text-align:left;gap:.5rem}.lesson-detail .page-header-left,.lesson-detail .page-header-right{width:100%;display:flex;justify-content:flex-start}.lesson-detail .page-header-right{margin-top:.25rem}.lesson-detail .page-header-center{width:100%;text-align:left}.form-card{padding:1.5rem}.form-grid-two-col{grid-template-columns:1fr}.tab-nav{flex-wrap:wrap}.form-row{grid-template-columns:1fr}.page-container,.content-card{padding:1rem}}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.progress-header h1{margin:0}.progress-study-info{background:var(--color-bg-secondary, #f5f5f5);padding:1.5rem;border-radius:8px;margin-bottom:2rem}.progress-study-info h2{margin:0 0 .5rem;font-size:1.3rem}.progress-container{display:grid;grid-template-columns:300px 1fr;gap:2rem;margin-bottom:2rem;min-height:400px}.members-panel{background:var(--color-bg-secondary, #f9f9f9);border-radius:8px;padding:1.5rem;border:1px solid var(--color-border, #e0e0e0)}.members-panel h3{margin-top:0;margin-bottom:1rem;font-size:1.1rem}.members-list{display:flex;flex-direction:column;gap:.5rem}.member-item{all:unset;padding:.75rem 1rem;border-radius:6px;border:1px solid var(--color-border, #e0e0e0);background:#fff;cursor:pointer;transition:all .2s ease}.member-item:hover{border-color:var(--color-primary, #2563eb);background:var(--color-primary-light, #eff6ff)}.member-item.active{background:var(--color-primary, #2563eb);color:#fff;border-color:var(--color-primary, #2563eb)}.member-info{text-align:left}.member-name{font-weight:500;margin-bottom:.25rem}.member-role{font-size:.85rem;opacity:.7}.progress-panel{background:#fff;border-radius:8px;padding:1.5rem;border:1px solid var(--color-border, #e0e0e0)}.member-details h3{margin-top:0;margin-bottom:.5rem}.lessons-progress{margin-top:1.5rem}.lessons-progress h4{margin-top:0;margin-bottom:1rem}.lessons-list{display:flex;flex-direction:column;gap:.75rem}.lesson-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--color-bg-secondary, #f9f9f9);border-radius:6px;border-left:4px solid var(--color-border, #e0e0e0)}.lesson-item .lesson-title{font-weight:500}.lesson-status{display:flex;gap:.5rem}.badge{padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:500}.badge-success{background:#d1fae5;color:#065f46}.badge-pending{background:#fef3c7;color:#92400e}.empty-state{text-align:center;padding:3rem 1rem;color:var(--color-text-muted, #666)}.progress-summary{background:#fff;border-radius:8px;padding:1.5rem;border:1px solid var(--color-border, #e0e0e0)}.progress-summary h3{margin-top:0;margin-bottom:1.5rem}.lessons-summary{display:flex;flex-direction:column;gap:1.5rem}.lesson-summary-item{display:flex;align-items:center;gap:1.5rem}.lesson-name{min-width:200px;font-weight:500}.progress-bar-container{flex:1;display:flex;align-items:center;gap:1rem}.progress-bar{flex:1;height:8px;background:var(--color-bg-secondary, #f0f0f0);border-radius:4px;overflow:hidden;min-width:200px}.progress-fill{height:100%;background:linear-gradient(90deg,#10b981,#059669);transition:width .3s ease;border-radius:4px}.progress-text{min-width:100px;text-align:right;font-size:.9rem;color:var(--color-text-muted, #666)}@media(max-width:768px){.progress-container{grid-template-columns:1fr;gap:1rem}.members-panel{max-height:300px;overflow-y:auto}.lesson-summary-item{flex-direction:column;align-items:flex-start}.progress-bar-container{width:100%}.progress-text{min-width:auto}}
