:root{--bg-dark: #0f172a;--bg-card: #1e293b;--bg-input: #334155;--text-primary: #f8fafc;--text-secondary: #cbd5e1;--text-muted: #94a3b8;--primary: #6366f1;--primary-hover: #4f46e5;--primary-light: #818cf8;--accent: #8b5cf6;--accent-hover: #7c3aed;--success: #10b981;--error: #ef4444;--warning: #f59e0b;--border-color: #334155;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg-dark);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-container{max-width:1280px;margin:0 auto;padding:2rem;min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{color:var(--text-primary);font-weight:700;line-height:1.2;margin-bottom:1rem}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}p{margin-bottom:1rem;color:var(--text-secondary)}a{color:var(--primary-light);text-decoration:none;transition:color .2s}a:hover{color:var(--primary)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;border-radius:var(--radius-md);font-weight:600;font-size:1rem;cursor:pointer;transition:all .2s ease;border:none;outline:none}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;box-shadow:0 4px 14px #6366f163}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #6366f13b;filter:brightness(1.1)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background-color:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.btn-secondary:hover{background-color:var(--bg-input);border-color:var(--text-muted)}.btn-block{width:100%}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-secondary);font-size:.9rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem 1rem;background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:1rem;transition:all .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #6366f133}.card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:2rem;box-shadow:var(--shadow-md)}.auth-container{display:flex;justify-content:center;align-items:center;min-height:80vh;padding:1rem}.auth-card{background:#1e293bb3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);padding:2.5rem;border-radius:var(--radius-lg);width:100%;max-width:450px;box-shadow:var(--shadow-lg)}.auth-card h2{text-align:center;margin-bottom:2rem;background:linear-gradient(to right,#fff,#cbd5e1);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.auth-footer{margin-top:1.5rem;text-align:center;font-size:.9rem;color:var(--text-muted)}.alert{padding:1rem;border-radius:var(--radius-md);margin-bottom:1.5rem;font-size:.95rem;display:flex;align-items:center;gap:.75rem}.alert.error{background-color:#ef44441a;border:1px solid rgba(239,68,68,.2);color:#fca5a5}.alert.success{background-color:#10b9811a;border:1px solid rgba(16,185,129,.2);color:#6ee7b7}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:3rem;padding:1rem 0;border-bottom:1px solid var(--border-color)}.dashboard-header nav{display:flex;gap:2rem;align-items:center}.dashboard-header nav a{color:var(--text-secondary);font-weight:500;position:relative}.dashboard-header nav a:hover,.dashboard-header nav a.active{color:var(--text-primary)}.dashboard-header nav a.active:after{content:"";position:absolute;bottom:-1.5rem;left:0;width:100%;height:2px;background-color:var(--primary)}.btn-text{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.95rem;font-weight:500;transition:color .2s}.btn-text:hover{color:var(--error)}.dashboard-grid-layout{display:grid;grid-template-columns:1fr 350px;gap:2rem}@media(max-width:1024px){.dashboard-grid-layout{grid-template-columns:1fr}}.grid-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.data-table{width:100%;border-collapse:separate;border-spacing:0;margin-top:1rem}.data-table th{text-align:left;padding:1rem;color:var(--text-muted);font-weight:600;border-bottom:1px solid var(--border-color);font-size:.9rem;text-transform:uppercase;letter-spacing:.05em}.data-table td{padding:1rem;border-bottom:1px solid var(--border-color);color:var(--text-secondary)}.data-table tr:last-child td{border-bottom:none}.badge{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:9999px;font-size:.8rem;font-weight:600;letter-spacing:.025em}.badge.success{background-color:#10b98126;color:#34d399}.badge.warning{background-color:#f59e0b26;color:#fbbf24}.badge.info{background-color:#6366f126;color:#818cf8}.markdown-body{color:var(--text-secondary);overflow-wrap:break-word;word-wrap:break-word}.markdown-body img{max-width:100%;height:auto}.markdown-body table{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.markdown-body h1,.markdown-body h2,.markdown-body h3{color:var(--text-primary);margin-top:2rem}.markdown-body code{background-color:#ffffff1a;padding:.2em .4em;border-radius:4px;font-family:monospace;color:#e2e8f0;white-space:pre-wrap}.markdown-body pre{background-color:#020617;padding:1.5rem;border-radius:var(--radius-md);overflow-x:auto;max-width:100%}.markdown-body ul,.markdown-body ol{padding-left:1rem;margin-bottom:1rem;list-style-position:inside}.markdown-body li{margin-bottom:.25rem}.checkbox-group{display:flex;flex-direction:column;gap:.75rem}.checkbox-item{display:flex;align-items:center;gap:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-item input[type=checkbox]{appearance:none;-webkit-appearance:none;width:1.25rem;height:1.25rem;border:2px solid var(--border-color);border-radius:4px;background-color:var(--bg-input);cursor:pointer;position:relative;transition:all .2s ease}.checkbox-item input[type=checkbox]:checked{background-color:var(--primary);border-color:var(--primary)}.checkbox-item input[type=checkbox]:checked:after{content:"";position:absolute;left:6px;top:2px;width:4px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.checkbox-item input[type=checkbox]:hover{border-color:var(--primary-light)}.checkbox-item label{color:var(--text-secondary);font-size:.95rem;cursor:pointer}.checkbox-item:hover label{color:var(--text-primary)}.bottom-nav{display:none}@media(max-width:768px){.app-container{padding:1rem 1rem 5rem}.dashboard-header{margin-bottom:1.5rem;flex-direction:column;align-items:flex-start;gap:1rem}.dashboard-header nav{display:none}.dashboard-grid-layout{grid-template-columns:1fr}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;width:100%;background-color:var(--bg-card);border-top:1px solid var(--border-color);padding-top:.75rem;padding-bottom:0;padding-left:.25rem;padding-right:.25rem;justify-content:space-around;align-items:center;z-index:1000;box-shadow:0 -4px 6px -1px #0000001a}.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;color:var(--text-muted);font-size:.75rem;line-height:1;text-decoration:none}.teacher-layout .bottom-nav.glass-nav{padding-top:.75rem;padding-bottom:max(.2rem,calc(env(safe-area-inset-bottom)*.6))}.nav-item.active{color:var(--primary)}.card{padding:1.5rem}}@media print{body *{visibility:hidden}.markdown-body,.markdown-body *{visibility:visible}.markdown-body{position:absolute;left:0;top:0;width:100%;background:#fff!important;color:#000!important;padding:0!important;margin:0!important}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6,.markdown-body p,.markdown-body li,.markdown-body span{color:#000!important}.markdown-body pre,.markdown-body code{background-color:#f8fafc!important;color:#000!important;border:1px solid #e2e8f0}.app-container,.dashboard-content,.card{background:transparent!important;border:none!important;box-shadow:none!important;margin:0!important;padding:0!important;min-height:0!important}}.text-center{text-align:center}.text-left{text-align:left}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.font-medium{font-weight:500}.text-transparent{color:transparent}.text-white{color:#fff}.text-slate-900{color:#0f172a}.text-slate-500{color:#64748b}.text-slate-400{color:#94a3b8}.text-slate-300{color:#cbd5e1}.text-indigo-400{color:#818cf8}.text-indigo-500{color:#6366f1}.text-violet-400{color:#a78bfa}.text-gray-500{color:#6b7280}.bg-white{background-color:#fff}.bg-slate-50{background-color:#f8fafc}.bg-slate-800{background-color:#1e293b}.bg-slate-900{background-color:#0f172a}.bg-indigo-500{background-color:#6366f1}.bg-violet-500{background-color:#8b5cf6}.bg-slate-800\/50{background-color:#1e293b80}.bg-indigo-500\/10{background-color:#6366f11a}.bg-violet-500\/10{background-color:#8b5cf61a}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-white{--tw-gradient-from: #fff;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(255, 255, 255, 0))}.to-slate-400{--tw-gradient-to: #94a3b8}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.p-6{padding:1.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.mb-8{margin-bottom:2rem}.mb-6{margin-bottom:1.5rem}.mb-4{margin-bottom:1rem}.mb-2{margin-bottom:.5rem}.mb-1{margin-bottom:.25rem}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.w-full{width:100%}.max-w-2xl{max-width:42rem}.h-5{height:1.25rem}.w-5{width:1.25rem}.h-8{height:2rem}.w-8{width:2rem}.h-4{height:1rem}.w-4{width:1rem}.block{display:block}.flex{display:flex}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.grid{display:grid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}@media(min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.border{border-width:1px}.border-2{border-width:2px}.border-slate-700{border-color:#334155}.border-slate-900{border-color:#0f172a}.border-t-transparent{border-top-color:transparent}.rounded-xl{border-radius:.75rem}.rounded-lg{border-radius:.5rem}.rounded-full{border-radius:9999px}.shadow-lg{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.relative{position:relative}.absolute{position:absolute}.top-4{top:1rem}.right-4{right:1rem}.hover\:bg-slate-50:hover{background-color:#f8fafc}.hover\:bg-slate-800:hover{background-color:#1e293b}.hover\:shadow-xl:hover{box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;transform:translateY(-.125rem)}.hover\:text-white:hover{color:#fff}.hover\:border-indigo-500:hover{border-color:#6366f1}.hover\:border-violet-500:hover{border-color:#8b5cf6}.hover\:shadow-indigo-500\/25:hover{box-shadow:0 10px 15px -3px #6366f140}.group:hover .group-hover\:bg-indigo-500{background-color:#6366f1}.group:hover .group-hover\:bg-violet-500{background-color:#8b5cf6}.group:hover .group-hover\:text-white{color:#fff}.focus\:ring-2:focus{box-shadow:0 0 0 2px var(--tw-ring-color)}.focus\:ring-indigo-500:focus{--tw-ring-color: #6366f1}.focus\:border-transparent:focus{border-color:transparent}.disabled\:opacity-70:disabled{opacity:.7}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fadeIn{animation:fadeIn .5s ease-out forwards}@keyframes blob{0%{transform:translate(0) scale(1)}33%{transform:translate(30px,-50px) scale(1.1)}66%{transform:translate(-20px,20px) scale(.9)}to{transform:translate(0) scale(1)}}.animate-blob{animation:blob 7s infinite}.animation-delay-2000{animation-delay:2s}.animation-delay-4000{animation-delay:4s}.backdrop-blur-xl{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.bg-white\/10{background-color:#ffffff1a}.border-white\/20{border-color:#fff3}.mix-blend-multiply{mix-blend-mode:multiply}.filter{filter:var(--tw-filter)}.blur-xl{--tw-blur: blur(24px);filter:var(--tw-blur)}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-100{opacity:1}.bg-purple-500{background-color:#a855f7}.bg-yellow-500{background-color:#eab308}.bg-pink-500{background-color:#ec4899}.bg-indigo-200{background-color:#c7d2fe}.bg-indigo-400{background-color:#818cf8}.bg-red-500\/20{background-color:#ef444433}.border-red-500\/50{border-color:#ef444480}.text-red-200{color:#fecaca}.via-indigo-200{--tw-gradient-stops: var(--tw-gradient-from), #c7d2fe, var(--tw-gradient-to)}.to-indigo-400{--tw-gradient-to: #818cf8}.to-purple-500{--tw-gradient-to: #a855f7}.from-indigo-500{--tw-gradient-from: #6366f1;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.bg-gradient-to-tr{background-image:linear-gradient(to top right,var(--tw-gradient-stops))}.w-72{width:18rem}.h-72{height:18rem}.w-24{width:6rem}.h-24{height:6rem}.w-16{width:4rem}.h-16{height:4rem}.w-10{width:2.5rem}.h-10{height:2.5rem}.w-6{width:1.5rem}.h-6{height:1.5rem}.-left-4{left:-1rem}.-right-4{right:-1rem}.-bottom-8{bottom:-2rem}.left-20{left:5rem}.z-10{z-index:10}.overflow-hidden{overflow:hidden}.min-h-screen{min-height:100vh}.object-cover{object-fit:cover}.tracking-tight{letter-spacing:-.025em}.font-light{font-weight:300}.shadow-2xl{box-shadow:0 25px 50px -12px #00000040}.hover\:scale-105:hover{transform:scale(1.05)}.hover\:scale-110:hover{transform:scale(1.1)}.duration-500{transition-duration:.5s}.duration-1000{transition-duration:1s}.blur{filter:blur(8px)}.mx-auto{margin-left:auto;margin-right:auto}.mx-4{margin-left:1rem;margin-right:1rem}.p-8{padding:2rem}.p-4{padding:1rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.max-w-md{max-width:28rem}.rounded-2xl{border-radius:1rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.hover\:bg-indigo-50:hover{background-color:#eef2ff}.hover\:-translate-y-1:hover{--tw-translate-y: -.25rem;transform:translateY(-.25rem)}.text-indigo-300{color:#a5b4fc}.hover\:text-indigo-200:hover{color:#c7d2fe}.cursor-default{cursor:default}.student-layout,.teacher-layout{padding-top:80px;padding-bottom:80px;max-width:1800px;width:100%;margin:0 auto}.student-header,.teacher-header{position:fixed;top:0;left:0;width:100%;height:70px;background:#0f172acc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:50;padding:0 2rem;border-bottom:1px solid rgba(255,255,255,.05);display:flex;align-items:center;justify-content:space-between;margin-bottom:0}.header-brand h1{font-size:1.5rem;margin:0;background:linear-gradient(to right,var(--primary-light),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.desktop-nav{display:flex;align-items:center;gap:2rem}.nav-link{color:var(--text-secondary);font-weight:500;font-size:.95rem;transition:color .2s;position:relative}.nav-link:hover,.nav-link.active{color:var(--text-primary)}.nav-link.active:after{content:"";position:absolute;bottom:-24px;left:0;width:100%;height:2px;background:var(--primary);box-shadow:0 -2px 10px var(--primary)}.user-menu{display:flex;align-items:center;gap:1rem;margin-left:2rem;padding-left:2rem;border-left:1px solid var(--border-color)}.btn-icon{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.5rem;border-radius:50%;transition:all .2s;display:flex;align-items:center;justify-content:center}.btn-icon:hover{background-color:#ffffff0d;color:var(--text-primary)}.mobile-header-title{display:none}.glass-nav{background:#0f172ad9;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid rgba(255,255,255,.05);padding-bottom:max(.75rem,env(safe-area-inset-bottom))}.nav-item{transition:all .2s}.nav-item.active{color:var(--primary-light)}.nav-item.active svg{filter:drop-shadow(0 0 8px rgba(99,102,241,.5))}@media(max-width:768px){.student-layout,.teacher-layout{padding-top:calc(70px + env(safe-area-inset-top));padding-left:1rem;padding-right:1rem}.student-header,.teacher-header{height:calc(70px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 0 0 0;justify-content:center}.header-brand,.desktop-nav{display:none}.mobile-header-title{display:flex;align-items:center;justify-content:space-between;position:relative;width:100%;height:100%;padding:0 1rem}.mobile-header-title h2{font-size:1.25rem;margin:0;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-title-container{display:flex;align-items:center;gap:.75rem;min-width:0;flex:1}.mobile-actions{display:flex;align-items:center;gap:.75rem;margin-left:1rem}}@media(max-width:768px){.hide-on-mobile{display:none!important}}@media(min-width:1025px){.dashboard-grid-layout{grid-template-columns:350px 1fr}}.desktop-subject-title{display:none!important}.chapters-grid{display:flex;flex-direction:column;gap:1rem}@media(min-width:769px){.desktop-subject-title{display:flex!important;margin-bottom:2rem;font-size:2rem;font-weight:700;color:var(--text-primary)}.chapters-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;align-items:start}}.loading-container{display:flex;justify-content:center;align-items:center;min-height:200px;width:100%}.spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.1);border-left-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.modern-loader-container{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;width:100%}.modern-loader-container.fullscreen{min-height:100vh;position:fixed;top:0;left:0;background-color:var(--bg-dark);z-index:1000}.loader-ring{width:50px;height:50px;border:3px solid rgba(99,102,241,.2);border-radius:50%;border-top-color:var(--primary);animation:spin 1s ease-in-out infinite;position:relative}.loader-ring:before{content:"";position:absolute;inset:5px;border-radius:50%;border:3px solid transparent;border-top-color:var(--accent);animation:spin 2s linear infinite reverse}.loader-text{color:var(--text-secondary);font-size:.95rem;font-weight:500;letter-spacing:.05em;animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@media(max-width:768px){.hide-mobile,.desktop-only{display:none!important}}@media(min-width:769px){.desktop-only{display:block!important}.hide-desktop{display:none!important}}.subjects-grid{display:grid;gap:1.5rem;grid-template-columns:1fr}.page-container{padding:1rem}.admin-shell{width:100%;max-width:1200px;margin:0 auto;padding:1rem 1.25rem}.admin-page-title{font-size:1.75rem;font-weight:800;margin:0;color:var(--text-primary);letter-spacing:-.01em}.admin-back-btn{background:none;border:none;color:var(--text-primary);display:inline-flex;align-items:center;justify-content:center;padding:.25rem;cursor:pointer;text-decoration:none}.admin-back-btn:hover{color:var(--primary-light)}.admin-header-row{display:flex;align-items:center;gap:1rem}@media(max-width:768px){.page-container{padding:.5rem}.admin-shell{max-width:100%;padding:.75rem}.admin-page-title{font-size:1.35rem}}@media(min-width:769px){.subjects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.subjects-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.desktop-section-header{display:block;width:100%;margin-bottom:1rem}.desktop-section-row{display:flex;align-items:center;gap:.75rem}.desktop-section-title{margin:0}.desktop-section-body{width:100%}.chapter-list{width:100%;align-items:stretch;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.chapter-tile{width:100%;display:block;flex:0 0 100%;max-width:100%;min-width:0}@media(max-width:768px){.chapter-list{padding-left:0;padding-right:0;grid-template-columns:1fr}.chapter-tile{margin-left:0;margin-right:0;width:100%}}.chapter-results-wrapper{border:1px solid rgba(255,255,255,.08);border-radius:14px;background:linear-gradient(145deg,#0f172ae6,#1e293bcc);box-shadow:0 20px 40px -20px #0000008c;overflow:hidden;position:relative}.chapter-results-scroll{overflow:auto;max-height:70vh;-webkit-overflow-scrolling:touch}.chapter-results-table{border-collapse:separate;border-spacing:0;min-width:520px}.chapter-results-table th{position:sticky;top:0;background:#0f172af2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid rgba(255,255,255,.08);border-right:1px solid rgba(255,255,255,.08);padding:.65rem .55rem;vertical-align:middle}.chapter-results-table td{border-bottom:1px solid rgba(255,255,255,.06);padding:.45rem .35rem;vertical-align:middle}.chapter-results-table th,.chapter-results-table td{border-color:#ffffff14}.student-cell{background:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default;-webkit-user-select:none;user-select:none}.student-header-cell{-webkit-user-select:none;user-select:none}.score-cell-td{padding:.35rem .3rem}.score-cell{width:2.4rem;height:2.4rem;margin:0 auto;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:700;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;border:1px solid transparent;box-shadow:0 8px 18px -12px #0009}.score-state-excellent{background:#10b98133;border-color:#10b98159;color:#34d399}.score-state-good{background:#eab30833;border-color:#eab30859;color:#facc15}.score-state-poor{background:#ef444433;border-color:#ef444459;color:#f87171}.score-state-progress{background:#d946ef38;border-color:#d946ef59;color:#e879f9}.score-state-none{background:#d946ef1f;border-color:#d946ef33;color:#d946ef}.score-cell:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.score-cell:hover{transform:translateY(-2px) scale(1.02)}.chapter-results-table tbody tr:hover td{background:#ffffff05}@media(max-width:768px){.chapter-results-wrapper{border-radius:12px}.chapter-results-scroll{max-height:65vh}.chapter-results-table th{font-size:.75rem;padding:.65rem .15rem}.chapter-results-table th.sticky-left-header{padding-left:.5rem;padding-right:.5rem}.chapter-results-table td{padding:.4rem .15rem}.chapter-results-table td.sticky-left-cell{padding-left:.5rem;padding-right:.5rem}.score-cell{width:1.8rem;height:1.8rem;border-radius:6px;font-size:.85rem}}.sticky-left-header{position:sticky;top:0;left:0;z-index:60;background:#0f172af5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-right:1px solid rgba(255,255,255,.08)}.student-header-cell{font-weight:700}.header-cell{position:sticky;top:0;z-index:50;background:#0f172af5;color:var(--text-muted);border-bottom:1px solid rgba(255,255,255,.08);text-align:center}.sticky-left-cell{position:sticky;left:0;z-index:40;border-right:1px solid rgba(255,255,255,.08);box-shadow:6px 0 12px -12px #000000bf;background:#0f172a;max-width:180px}.row-hover:hover td{background:#ffffff05}
