:root{--primary:#d32f2f;--primary-hover:#b71c1c;--primary-dark:#8b0000;--primary-light:#ffebee;--primary-50:#fff5f5;--primary-100:#ffe3e3;--primary-200:#ffcdd2;--primary-700:#d32f2f;--primary-800:#b71c1c;--primary-900:#7f1d1d;--primary-glow:#d32f2f59;--primary-glow-sm:#d32f2f26;--accent:#ef4444;--accent-hover:#dc2626;--accent-light:#ffebee;--success:#10b981;--success-light:#d1fae5;--warning:#f59e0b;--warning-light:#fef3c7;--sidebar-from:#140101;--sidebar-mid:#1e0202;--sidebar-to:#180202;--sidebar-border:#ffffff0d;--sidebar-hover-bg:#ffffff12;--sidebar-section-color:#ffffff59;--bg:#fafafa;--bg-card:#ffffffeb;--bg-sidebar:#fffffff2;--bg-sidebar-hover:#f1f5f9cc;--bg-glass:#fffc;--bg-muted:#f7f8fc;--text:#16213e;--text-secondary:#475569;--text-muted:#94a3b8;--text-sidebar:#ffffffd1;--border:#dce4f0d9;--border-light:#f1f5f9a6;--shadow-sm:0 2px 10px #0f172a0d, 0 1px 3px #0f172a08;--shadow-md:0 8px 28px #0f172a14, 0 3px 10px #0f172a0a;--shadow-lg:0 20px 50px #0f172a1a, 0 6px 16px #0f172a0d;--shadow-xl:0 32px 80px #0f172a24, 0 12px 32px #0f172a14;--shadow-glow:0 8px 32px var(--primary-glow), 0 2px 8px #d32f2f26;--shadow-glow-lg:0 16px 60px #d32f2f47, 0 6px 20px #d32f2f24;--shadow-card-hover:0 20px 50px #d32f2f1a, 0 6px 16px #0f172a12;--radius-xs:6px;--radius-sm:10px;--radius:14px;--radius-lg:20px;--radius-xl:28px;--radius-2xl:40px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html{scroll-behavior:smooth}@keyframes slideUpFade{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}body{background-color:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;touch-action:manipulation;overscroll-behavior-y:contain;background-image:radial-gradient(at 0 0,#fff 0,#0000 55%),radial-gradient(at 100% 0,#ffebeb80 0,#0000 50%),radial-gradient(at 100% 100%,#fffffff2 0,#0000 50%),radial-gradient(at 0 100%,#fff2f299 0,#0000 50%);background-attachment:fixed;font-family:Inter,-apple-system,system-ui,sans-serif;line-height:1.6}h1,h2,h3,h4,h5,h6{font-family:Plus Jakarta Sans,Inter,-apple-system,system-ui,sans-serif}h1,h2,h3,h4,h5,h6,.hero-content h1,.section-header h2,.category-header h2,.course-body h3,.stat-label,.login-logo h1{text-wrap:balance}p,.course-body p,.hero-content p,.login-logo p{text-wrap:pretty}.page-content p,.course-body p,.hero-content p,.login-logo p,.empty-state p,.progress-text,.markdown-content p,.markdown-content li,.lesson-rich-paragraph,.lesson-rich-numbered,.lesson-rich-list li{text-align:justify;text-justify:inter-word}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}img{max-width:100%}.app-layout{min-height:100vh;display:flex}.sidebar{background:linear-gradient(180deg, var(--sidebar-from) 0%, var(--sidebar-mid) 50%, var(--sidebar-to) 100%);border-right:1px solid var(--sidebar-border);width:264px;color:var(--text-sidebar);z-index:50;flex-direction:column;transition:transform .35s cubic-bezier(.22,1,.36,1);display:flex;position:fixed;top:0;bottom:0;left:0;box-shadow:6px 0 40px #0000004d,2px 0 8px #0003}.sidebar:before{content:"";background:linear-gradient(90deg, transparent, #d32f2fcc, var(--primary), #d32f2fcc, transparent);pointer-events:none;height:2px;position:absolute;top:0;left:0;right:0}.sidebar-header{border-bottom:1px solid var(--sidebar-border);padding:22px 18px}.sidebar-logo{align-items:center;gap:12px;display:flex}.sidebar-logo-img{object-fit:contain;background:#ffffff1f;border:1px solid #ffffff1f;border-radius:14px;flex-shrink:0;width:46px;height:46px;padding:5px;transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s;box-shadow:0 4px 12px #0000004d}.sidebar-logo:hover .sidebar-logo-img{transform:scale(1.08)rotate(-2deg);box-shadow:0 0 20px #ff646480,0 4px 16px #0006}.sidebar-logo-text h2{color:#fff;letter-spacing:-.01em;font-family:Plus Jakarta Sans,Inter,sans-serif;font-size:16px;font-weight:800}.sidebar-logo-text span{color:#fff6;letter-spacing:.02em;font-size:11px}.sidebar-nav{scrollbar-width:none;flex:1;padding:16px 10px;overflow-y:auto}.sidebar-nav::-webkit-scrollbar{display:none}.sidebar-section{margin-bottom:22px}.sidebar-section-title{text-transform:uppercase;letter-spacing:.12em;color:var(--sidebar-section-color);margin-bottom:6px;padding:0 14px;font-size:9.5px;font-weight:700}.sidebar-link{border-radius:var(--radius-sm);color:#ffffffb3;align-items:center;gap:10px;padding:10px 14px;font-size:13.5px;font-weight:500;transition:all .22s cubic-bezier(.22,1,.36,1);display:flex;position:relative}.sidebar-link:hover{background:var(--sidebar-hover-bg);color:#fffffff2;transform:translate(3px)}.sidebar-link.active{color:#fff;background:linear-gradient(135deg,#d32f2fd9,#b71c1ce6);border:1px solid #ff646433;font-weight:700;box-shadow:0 4px 16px #d32f2f66,0 1px 4px #0003}.sidebar-link.active:before{content:"";background:#ffc8c8cc;border-radius:0 2px 2px 0;width:3px;height:60%;position:absolute;top:50%;left:0;transform:translateY(-50%)}.sidebar-link svg{opacity:.7;width:18px;height:18px;transition:opacity .15s,transform .2s}.sidebar-link:hover svg{opacity:.9;transform:scale(1.1)}.sidebar-link.active svg{opacity:1}.sidebar-footer{border-top:1px solid var(--sidebar-border);padding:16px}.sidebar-logout{color:#ffffff80;border-radius:var(--radius-sm);background:#ffffff0d;border:1px solid #ffffff14;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:10px;padding:10px 14px;font-size:13px;font-weight:600;transition:all .2s;display:flex}.sidebar-logout:hover{color:#ff9696e6;background:#ff505014;border-color:#ff646433}.sidebar-user{align-items:center;gap:10px;display:flex}.sidebar-avatar{background:linear-gradient(135deg, var(--primary), #ef4444);color:#fff;border:2px solid #ffffff26;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:13px;font-weight:800;display:flex;box-shadow:0 4px 12px #d32f2f66}.sidebar-user-info h4{color:#ffffffeb;font-size:13px;font-weight:700}.sidebar-user-info span{color:#ffffff61;font-size:11px}.main-content{flex-direction:column;flex:1;margin-left:264px;display:flex}.topbar{background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border-light);min-height:64px;padding:env(safe-area-inset-top,0px) 24px 0;z-index:40;align-items:center;display:flex;position:sticky;top:0}.topbar-brand{color:var(--text);letter-spacing:-.02em;align-items:center;gap:10px;font-size:17px;font-weight:800;display:none}.topbar-brand .topbar-logo{object-fit:contain;border-radius:50%;width:32px;height:32px}.topbar-title{align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.topbar-title svg{width:16px;height:16px;color:var(--primary)}.page-content{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:24px}.mobile-toggle{border-radius:var(--radius-sm);justify-content:center;align-items:center;width:36px;height:36px;margin-right:12px;display:none}.sidebar-overlay{display:none}.bottom-tab-bar{background:var(--bg-glass);-webkit-backdrop-filter:blur(24px);border-top:1px solid var(--border-light);padding:8px 16px calc(8px + env(safe-area-inset-bottom));z-index:45;display:none;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 24px #0f172a0a}.bottom-tab-bar a.bottom-tab{min-height:48px;color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:8px 0;transition:color .25s cubic-bezier(.22,1,.36,1);display:flex;position:relative}.bottom-tab svg{width:22px;height:22px;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.bottom-tab span{letter-spacing:.01em;font-size:10px;font-weight:500;transition:font-weight .15s}.bottom-tab.active{color:var(--primary)}.bottom-tab.active span{font-weight:700}.bottom-tab.active svg{transform:scale(1.15)}.bottom-tab.active:before{content:"";background:var(--primary);border-radius:0 0 4px 4px;width:32px;height:3px;animation:.3s cubic-bezier(.34,1.56,.64,1) tabIndicator;position:absolute;top:0;left:50%;transform:translate(-50%)}@keyframes tabIndicator{0%{transform:translate(-50%)scaleX(0)}to{transform:translate(-50%)scaleX(1)}}.bottom-tab:active{transition:transform .1s;transform:scale(.9)}.pwa-install-banner{background:linear-gradient(135deg, var(--primary-50), #fff5f5);border-bottom:1px solid var(--primary-100);justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.pwa-install-content{align-items:center;gap:12px;display:flex}.pwa-install-icon{border-radius:50%;flex-shrink:0}.pwa-install-content strong{color:var(--primary-800);font-size:13px;font-weight:700;display:block}.pwa-install-content span{color:var(--text-secondary);font-size:11px}.pwa-install-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}@media (max-width:768px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:45;background:#00000080;transition:opacity .25s;display:none;position:fixed;inset:0}.sidebar-overlay.open{display:block}.main-content{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px));margin-left:0}.mobile-toggle{min-width:44px;min-height:44px;display:flex}.topbar{min-height:52px;padding:env(safe-area-inset-top,0px) 16px 0}.topbar-brand{display:flex}.topbar-title{display:none}.page-content{padding:16px}.bottom-tab-bar{display:flex}.hero-banner{border-radius:var(--radius-lg);padding:20px}.hero-content h1{font-size:20px}.hero-content p{margin-bottom:14px;font-size:13px}.hero-stats{flex-wrap:wrap;gap:16px}.hero-stat .value{font-size:22px}.hero-stat .label{font-size:11px}.stats-grid{grid-template-columns:repeat(2,1fr);gap:10px}.stat-card{padding:16px}.stat-value{font-size:22px}.stat-icon{width:36px;height:36px;margin-bottom:8px}.courses-grid{grid-template-columns:1fr;gap:14px}.course-thumb{height:120px;font-size:40px}.course-body{padding:14px}.course-body h3{font-size:14px}.course-body p{font-size:12px}.course-meta{margin-top:10px;padding-top:10px}.card-content{padding:16px}.section-header h2,.category-header h2{font-size:16px}.category-header span{font-size:12px}.category-section{margin-bottom:24px}.lesson-item{gap:10px;min-height:52px;padding:14px 12px}.lesson-number{width:28px;height:28px;font-size:12px}.quiz-option{gap:10px;min-height:48px;padding:14px 16px;font-size:13px}.btn{min-height:44px;padding:10px 18px}.btn-lg{min-height:48px;padding:14px 24px}.btn-sm{min-height:36px;padding:8px 14px}.badge{padding:4px 10px;font-size:10px}.form-input{padding:12px 14px;font-size:16px}.login-card{padding:28px 24px}.login-logo-img{width:60px;height:60px}.login-logo h1{font-size:20px}.progress-text{font-size:11px}.empty-state{padding:36px 20px}.settings-container{max-width:100%}.cert-details-grid{grid-template-columns:1fr!important}.page-content>div>h1{font-size:20px}.page-content>div>p{font-size:13px}.page-content p,.course-body p,.hero-content p,.login-logo p,.empty-state p,.progress-text,.markdown-content p,.markdown-content li,.lesson-rich-paragraph,.lesson-rich-numbered,.lesson-rich-list li{text-align:left}}@media (max-width:480px){.page-content{padding:12px}.stats-grid{gap:8px}.stat-card{padding:12px}.stat-value{font-size:20px}.stat-label{font-size:11px}.hero-banner{border-radius:var(--radius);padding:16px}.hero-content h1{font-size:18px}.hero-stat .value{font-size:20px}.course-thumb{height:100px;font-size:36px}.course-body{padding:12px}.card-content{padding:14px}.bottom-tab span{font-size:9px}.bottom-tab svg{width:20px;height:20px}.login-card{border-radius:var(--radius-lg);padding:24px 20px}}.card{background:var(--bg-card);-webkit-backdrop-filter:blur(16px);border-radius:var(--radius-lg);border:1px solid var(--border-light);box-shadow:var(--shadow-md);transition:all .35s cubic-bezier(.22,1,.36,1);animation:.5s cubic-bezier(.16,1,.3,1) both slideUpFade}.card:hover{box-shadow:var(--shadow-card-hover);border-color:#d32f2f26;transform:translateY(-5px)}.card-content{padding:22px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;display:grid}.stat-card{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-light);box-shadow:var(--shadow-sm);text-align:center;padding:22px 20px;transition:box-shadow .3s,transform .3s cubic-bezier(.22,1,.36,1),border-color .3s;position:relative;overflow:hidden}.stat-card:before{content:"";background:var(--border);height:4px;transition:all .3s;position:absolute;top:0;left:0;right:0}.stat-card:first-child:before{background:linear-gradient(90deg, var(--primary-dark), var(--primary))}.stat-card:nth-child(2):before{background:linear-gradient(90deg,#c2410c,#ef4444)}.stat-card:nth-child(3):before{background:linear-gradient(90deg, #059669, var(--success))}.stat-card:nth-child(4):before{background:linear-gradient(90deg, #d97706, var(--warning))}.stat-card:hover{border-color:#d32f2f2e;transform:translateY(-7px);box-shadow:0 20px 48px #d32f2f1f,0 8px 20px #0f172a14}.stat-icon{border-radius:var(--radius);justify-content:center;align-items:center;width:44px;height:44px;margin:0 auto 12px;display:flex}.stat-value{color:var(--text);font-family:Plus Jakarta Sans,Inter,sans-serif;font-size:30px;font-weight:800;line-height:1.2}.stat-label{color:var(--text-secondary);margin-top:3px;font-size:12px;font-weight:500}.courses-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;display:grid}.course-card{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-light);box-shadow:var(--shadow-sm);transition:box-shadow .3s,transform .3s cubic-bezier(.22,1,.36,1),border-color .3s;overflow:hidden}.course-card:hover{box-shadow:var(--shadow-card-hover);border-color:var(--primary-200);transform:translateY(-6px)}.course-thumb{background:linear-gradient(135deg,#b91c1c 0%,#d32f2f 50%,#991b1b 100%);justify-content:center;align-items:center;height:148px;font-size:52px;transition:all .3s;display:flex;position:relative}.course-card:hover .course-thumb{filter:brightness(1.08)}.course-thumb-overlay{position:absolute;top:12px;right:12px}.course-body{padding:16px}.course-body h3{margin-bottom:6px;font-size:15px;font-weight:700;line-height:1.4}.course-body p{color:var(--text-secondary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.course-meta{border-top:1px solid var(--border-light);color:var(--text-muted);align-items:center;gap:12px;margin-top:12px;padding-top:12px;font-size:12px;display:flex}.course-meta svg{width:14px;height:14px}.course-meta span{align-items:center;gap:4px;display:flex}.progress-bar{background:var(--border-light);border-radius:3px;width:100%;height:6px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--primary-800), var(--primary), #ef4444);border-radius:3px;height:100%;transition:width .6s cubic-bezier(.22,1,.36,1);position:relative}.progress-fill:after{content:"";background:linear-gradient(90deg,#0000,#fff6);border-radius:3px;width:30px;height:100%;animation:2s ease-in-out infinite progressShimmer;position:absolute;top:0;right:0}@keyframes progressShimmer{0%,to{opacity:0;transform:translate(0)}50%{opacity:1;transform:translate(6px)}}.progress-bar-lg{border-radius:5px;height:10px}.progress-bar-lg .progress-fill{border-radius:5px}.progress-text{color:var(--text-secondary);margin-top:4px;font-size:12px;font-weight:600}.badge{border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.badge-primary{background:var(--primary-light);color:var(--primary)}.badge-accent{background:var(--accent-light);color:var(--accent)}.badge-success{background:var(--success-light);color:var(--success)}.badge-warning{background:var(--warning-light);color:var(--warning)}.btn{border-radius:var(--radius);letter-spacing:.01em;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:13px;font-weight:600;transition:all .22s cubic-bezier(.22,1,.36,1);display:inline-flex;position:relative;overflow:hidden}.btn:after{content:"";border-radius:inherit;background:#fff0;transition:background .15s;position:absolute;inset:0}.btn:active:after{background:#00000014}.btn-primary{color:#fff;background:linear-gradient(135deg,#d32f2f 0%,#c62828 40%,#b71c1c 100%);border:1px solid #ffffff26;box-shadow:0 4px 14px #d32f2f4d,0 1px 4px #8b000033}.btn-primary:hover{box-shadow:var(--shadow-glow-lg);background:linear-gradient(135deg,#c62828 0%,#b71c1c 50%,#8b0000 100%);transform:translateY(-2px)}.btn-primary:active{transform:translateY(0);box-shadow:0 2px 8px #d32f2f40}.btn-outline{border:1.5px solid var(--border);color:var(--text);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffd9}.btn-outline:hover{border-color:var(--primary-200);color:var(--primary);background:#fff;box-shadow:0 4px 12px #d32f2f14}.btn-success{color:#fff;background:linear-gradient(135deg,#059669,#10b981);box-shadow:0 4px 14px #10b98140}.btn-success:hover{background:linear-gradient(135deg,#047857,#059669);transform:translateY(-2px);box-shadow:0 8px 24px #10b98159}.btn-sm{border-radius:var(--radius-sm);padding:6px 14px;font-size:12px}.btn-lg{border-radius:var(--radius-lg);letter-spacing:.02em;padding:15px 32px;font-size:15px;font-weight:700}.btn-block{width:100%}.lesson-list{list-style:none}.lesson-item{border-bottom:1px solid var(--border-light);align-items:center;gap:12px;padding:14px 16px;transition:background .15s;display:flex}.lesson-item:hover{background:var(--bg)}.lesson-item:last-child{border-bottom:none}.lesson-number{background:var(--border-light);width:32px;height:32px;color:var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.lesson-number.completed{background:var(--success-light);color:var(--success)}.lesson-info{flex:1;min-width:0}.lesson-info h4{font-size:14px;font-weight:600}.lesson-info span{color:var(--text-muted);font-size:12px}.section-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.section-header h2{align-items:center;gap:8px;font-size:18px;font-weight:700;display:flex}.category-section{margin-bottom:32px}.category-header{align-items:center;gap:10px;margin-bottom:16px;display:flex}.category-icon{font-size:24px}.category-header h2{font-size:18px;font-weight:700}.category-header span{color:var(--text-secondary);font-size:13px}.markdown-content{color:var(--text);word-break:break-word;max-width:980px;margin:0 auto;padding-bottom:24px;font-size:16px;line-height:1.9}.markdown-content>:first-child{margin-top:0}.markdown-content>:last-child{margin-bottom:0}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4{color:var(--text);letter-spacing:-.02em;line-height:1.3}.markdown-content h1{margin:0 0 18px;font-size:30px;font-weight:800}.markdown-content h2{margin:32px 0 14px;font-size:24px;font-weight:800}.markdown-content h3{margin:24px 0 12px;font-size:19px;font-weight:700}.markdown-content h4{margin:18px 0 10px;font-size:17px;font-weight:700}.markdown-content p{color:var(--text);text-wrap:auto;margin:0 0 18px}.markdown-content p+p{margin-top:-2px}.markdown-content ul,.markdown-content ol{margin:0 0 20px;padding-left:28px}.markdown-content li{text-wrap:auto;margin-bottom:10px;padding-left:4px}.markdown-content li::marker{color:var(--primary)}.lesson-rich-text{max-width:760px;margin:0 auto;padding-bottom:12px}.lesson-meta-card{width:100%;max-width:860px;margin:0 auto}.lesson-reader-card{background:linear-gradient(#fffefe 0%,#fffaf7 100%);border-color:#f1e7dd;width:100%;max-width:860px;margin:0 auto;box-shadow:0 12px 34px #0f172a0f}.lesson-rich-heading{color:var(--text);margin:0 0 20px;font-size:18px;font-weight:800;line-height:1.35}.lesson-rich-paragraph,.lesson-rich-numbered{color:var(--text);text-align:justify;text-justify:inter-word;text-align-last:left;margin:0 0 22px;font-size:17px;line-height:2.05}.lesson-rich-numbered{grid-template-columns:44px minmax(0,1fr);align-items:start;gap:12px;display:grid}.lesson-rich-number{color:var(--primary);text-align:right;font-weight:700;display:inline-block}.lesson-rich-list{margin:0 0 22px;padding-left:28px;list-style:outside}.lesson-rich-list li{text-align:justify;text-justify:inter-word;text-align-last:left;margin-bottom:14px;font-size:17px;line-height:2}.lesson-rich-list li::marker{color:var(--primary)}.markdown-content blockquote{border-left:4px solid var(--primary);background:var(--primary-50);border-radius:0 var(--radius) var(--radius) 0;margin:22px 0;padding:14px 18px;font-style:italic}.markdown-content hr{border:0;border-top:1px solid var(--border);margin:28px 0}.markdown-content table{border-collapse:collapse;border:1px solid var(--border);border-radius:var(--radius);width:100%;margin:20px 0 24px;display:block;overflow:auto hidden}.markdown-content th,.markdown-content td{border-bottom:1px solid var(--border-light);text-align:left;vertical-align:top;padding:12px 14px;font-size:14px}.markdown-content th{background:var(--bg-muted);color:var(--text);font-weight:700}.markdown-content tr:last-child td{border-bottom:0}.markdown-content strong{font-weight:800}.markdown-content em{color:var(--text-secondary)}.markdown-content code{background:var(--border-light);border-radius:6px;padding:2px 7px;font-size:13px}.markdown-content pre{border-radius:var(--radius);color:#e2e8f0;background:#0f172a;margin:18px 0 22px;padding:16px 18px;overflow-x:auto}.markdown-content pre code{color:inherit;background:0 0;padding:0}@media (max-width:768px){.markdown-content{font-size:15px;line-height:1.82}.markdown-content h1{font-size:26px}.markdown-content h2{font-size:22px}.markdown-content h3{font-size:18px}.markdown-content table{font-size:13px}.lesson-rich-heading{font-size:17px}.lesson-reader-card-content{padding:24px 20px 32px!important}.lesson-rich-paragraph,.lesson-rich-numbered,.lesson-rich-list li{text-align:left;font-size:15px;line-height:1.85}.lesson-rich-text{max-width:100%}.lesson-rich-numbered{grid-template-columns:34px minmax(0,1fr);gap:10px}}.quiz-question{margin-bottom:24px}.quiz-question h4{margin-bottom:10px;font-size:15px;font-weight:600}.quiz-option{border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;align-items:center;gap:10px;padding:12px 16px;font-size:14px;transition:all .15s;display:flex}.quiz-option:hover{border-color:var(--primary-200);background:var(--primary-50)}.quiz-option.selected{border-color:var(--primary);background:var(--primary-50)}.quiz-option.incorrect{background:#fef2f2;border-color:#ef4444}.login-page{background:linear-gradient(135deg,#1e1b2e 0%,#2d1b3e 50%,#1a1530 100%);justify-content:center;align-items:center;min-height:100dvh;padding:20px;display:flex}.login-page:before{content:"";pointer-events:none;background:radial-gradient(circle,#b91c1c26 0%,#0000 70%);border-radius:50%;width:500px;height:500px;position:fixed;top:-40%;right:-30%}.login-card{border-radius:var(--radius-xl);background:#fff;width:100%;max-width:400px;padding:40px;box-shadow:0 20px 60px #0000004d}.login-logo{flex-direction:column;align-items:center;margin-bottom:28px;display:flex}.login-logo-img{object-fit:contain;filter:drop-shadow(0 4px 12px #b91c1c33);border-radius:50%;width:72px;height:72px;margin-bottom:14px}.login-logo h1{color:var(--primary-800);font-size:22px;font-weight:800}.login-logo p{color:var(--text-secondary);margin-top:4px;font-size:13px}.form-group label{color:var(--text-secondary);margin-bottom:4px;font-size:13px;font-weight:600;display:block}.form-input{border:1.5px solid var(--border);border-radius:var(--radius);outline:none;width:100%;padding:11px 14px;font-family:inherit;font-size:14px;transition:border-color .15s}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-100)}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.fade-in{animation:.35s cubic-bezier(.22,1,.36,1) fadeIn}.slide-up{animation:.4s cubic-bezier(.22,1,.36,1) slideUp}.scale-in{animation:.3s cubic-bezier(.22,1,.36,1) scaleIn}.page-content{animation:.3s cubic-bezier(.22,1,.36,1) fadeIn}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@media (display-mode:standalone){.pwa-install-banner{display:none!important}}.empty-state{text-align:center;padding:48px 24px}.empty-state svg{width:48px;height:48px;color:var(--text-muted);opacity:.3;margin:0 auto 12px}.empty-state p{color:var(--text-muted);font-size:14px}.hero-banner{border-radius:var(--radius-xl);color:#fff;background:linear-gradient(135deg,#7f1d1d 0%,#b91c1c 35%,#d32f2f 65%,#991b1b 100%);padding:36px;position:relative;overflow:hidden;box-shadow:0 12px 40px #8b000059,0 4px 16px #d32f2f33}.hero-banner:before{content:"";pointer-events:none;background:radial-gradient(circle,#ffffff1f 0%,#0000 65%);border-radius:50%;width:420px;height:420px;animation:7s ease-in-out infinite heroPulse;position:absolute;top:-40%;right:-20%}.hero-banner:after{content:"";pointer-events:none;background:radial-gradient(circle,#ffc8c812 0%,#0000 65%);border-radius:50%;width:320px;height:320px;animation:9s ease-in-out infinite reverse heroPulse;position:absolute;bottom:-35%;left:-10%}@keyframes heroPulse{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.12)}}.settings-container{max-width:640px}.hero-content{z-index:1;position:relative}.hero-content h1{letter-spacing:-.02em;text-shadow:0 2px 8px #0003;margin-bottom:8px;font-family:Plus Jakarta Sans,Inter,sans-serif;font-size:26px;font-weight:800}.hero-content p{color:#fffc;margin-bottom:20px;font-size:14px}.hero-stats{gap:24px;display:flex}.hero-stat .value{font-size:28px;font-weight:800}.hero-stat .label{color:#ffffffa6;font-size:12px}.hero-progress-area{margin-top:18px}.hero-progress-row{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.hero-progress-label{color:#ffffffc7;font-size:13px;font-weight:500}.hero-progress-pct{color:#fff;letter-spacing:-.02em;font-size:20px;font-weight:800}.progress-bar-hero{background:#ffffff2e;border-radius:9px;height:8px;overflow:hidden}.progress-bar-hero .progress-fill{background:linear-gradient(90deg,#fffffff2,#ffe6e6d9);border-radius:9px;transition:width 1s cubic-bezier(.22,1,.36,1)}.course-progress-area{margin-top:12px}.course-progress-row{justify-content:space-between;align-items:center;margin-bottom:5px;font-size:12px;display:flex}.course-progress-count{color:var(--text-muted)}.course-progress-pct{color:var(--primary);font-weight:700}.course-continue-link{color:var(--primary);align-items:center;gap:4px;margin-left:auto;font-size:13px;font-weight:600;display:flex}.dashboard-stack{flex-direction:column;gap:20px;display:flex}.lesson-reader-shell{max-width:860px;margin:0 auto}.lesson-meta-card .card-content h1{color:var(--text);letter-spacing:-.01em;font-size:22px;font-weight:800;line-height:1.4}.lesson-reader-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-card);box-shadow:var(--shadow-sm)}.lesson-reader-card-content{padding:32px 36px!important}.lesson-rich-text{color:var(--text);word-break:break-word;overflow-wrap:break-word;font-size:15.5px;line-height:1.8}.lesson-rich-heading{color:var(--text);border-bottom:2px solid var(--primary-100);letter-spacing:-.01em;margin:28px 0 12px;padding-bottom:8px;font-size:17px;font-weight:700;line-height:1.5}.lesson-rich-text>.lesson-rich-heading:first-child{margin-top:0}.lesson-rich-paragraph{color:var(--text);text-align:justify;text-justify:inter-word;margin:0 0 16px;line-height:1.85}.lesson-rich-paragraph:last-child{margin-bottom:0}.lesson-rich-numbered{background:var(--bg-muted);border-radius:var(--radius-sm);border-left:3px solid var(--primary);gap:8px;margin:0 0 10px;padding:10px 14px;line-height:1.7;transition:background .15s;display:flex}.lesson-rich-numbered:hover{background:var(--primary-50)}.lesson-rich-number{color:var(--primary);flex-shrink:0;min-width:28px;font-weight:700}.lesson-rich-list{flex-direction:column;gap:6px;margin:8px 0 18px;padding-left:0;list-style:none;display:flex}.lesson-rich-list li{background:var(--bg-muted);border-radius:var(--radius-sm);padding:8px 12px 8px 28px;line-height:1.7;transition:background .15s;position:relative}.lesson-rich-list li:hover{background:var(--primary-50)}.lesson-rich-list li:before{content:"";background:var(--primary);border-radius:50%;width:6px;height:6px;position:absolute;top:16px;left:12px}.lesson-reader-shell>div:last-child{padding-top:8px}.quiz-question{border-bottom:1px solid var(--border-light);margin-bottom:28px;padding-bottom:24px}.quiz-question:last-of-type{border-bottom:none}.quiz-question h4{margin-bottom:14px;font-size:15px;font-weight:700;line-height:1.6}.quiz-options{flex-direction:column;gap:8px;display:flex}.quiz-option{border:1.5px solid var(--border);border-radius:var(--radius);background:var(--bg-card);cursor:pointer;text-align:left;align-items:center;gap:12px;padding:12px 16px;font-size:14px;line-height:1.5;transition:all .15s;display:flex}.quiz-option:hover:not(:disabled){border-color:var(--accent);background:var(--accent-light)}.quiz-option.selected{border-color:var(--accent);background:var(--accent-light);font-weight:600}.quiz-option.correct{border-color:var(--success);background:var(--success-light)}.quiz-option.incorrect{border-color:var(--primary);background:var(--primary-light)}.confetti-container{pointer-events:none;z-index:9998;width:100%;height:100%;position:fixed;top:0;left:0;overflow:hidden}.confetti-piece{border-radius:2px;animation:linear forwards confettiFall;position:absolute;top:-10px}@keyframes confettiFall{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(100vh)rotate(720deg)}}.filter-bar{flex-direction:column;gap:12px;display:flex}.search-box{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:10px;padding:10px 14px;transition:border-color .2s;display:flex}.search-box:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #b91c1c14}.search-box input{color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:14px}.search-box input::placeholder{color:var(--text-muted)}.search-clear{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px;display:flex}.search-clear:hover{background:var(--bg-muted)}.filter-chips{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.filter-select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text);cursor:pointer;outline:none;padding:6px 12px;font-size:13px}.filter-select:focus{border-color:var(--primary)}.status-chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-radius:999px;padding:5px 12px;font-size:12px;transition:all .15s}.chip:hover{border-color:var(--primary);color:var(--primary)}.chip-active{background:var(--primary);color:#fff;border-color:var(--primary)}.chip-active:hover{background:var(--primary-hover)}@media (max-width:768px){.filter-chips{flex-direction:column;align-items:stretch}.filter-select{width:100%}.status-chips{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;overflow-x:auto}}.toast-container{z-index:9999;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:16px;right:16px}.toast{border-radius:var(--radius);background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow-lg);pointer-events:auto;align-items:center;gap:10px;max-width:360px;padding:12px 16px;font-size:13px;line-height:1.4;animation:.3s ease-out toastSlideIn;display:flex}.toast-success{border-left:3px solid var(--success);color:var(--success)}.toast-error{color:#dc2626;border-left:3px solid #dc2626}.toast-info{border-left:3px solid var(--accent);color:var(--accent)}.toast-message{color:var(--text);flex:1}.toast-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:2px;display:flex}.toast-close:hover{background:var(--bg-muted)}@keyframes toastSlideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@media (max-width:768px){.toast-container{inset:auto 12px 72px}.toast{max-width:100%}.lesson-reader-card-content{padding:20px 18px!important}.lesson-rich-text{font-size:14.5px;line-height:1.75}.lesson-rich-heading{margin:22px 0 10px;font-size:15.5px}.lesson-rich-numbered{padding:8px 12px}.lesson-rich-list li{padding:6px 10px 6px 24px}.lesson-rich-list li:before{top:14px;left:10px}}.login-page{background:linear-gradient(135deg,#0d0101 0%,#1a0202 30%,#220303 60%,#16191f 100%);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative;overflow:hidden}.login-page:before{content:"";pointer-events:none;background:radial-gradient(circle,#d32f2f2e 0%,#0000 65%);border-radius:50%;width:600px;height:600px;animation:12s ease-in-out infinite loginBlob1;position:absolute;top:-30%;left:-20%}.login-page:after{content:"";pointer-events:none;background:radial-gradient(circle,#8b000026 0%,#0000 65%);border-radius:50%;width:500px;height:500px;animation:15s ease-in-out infinite reverse loginBlob2;position:absolute;bottom:-20%;right:-15%}@keyframes loginBlob1{0%,to{transform:translate(0)scale(1)}33%{transform:translate(40px,30px)scale(1.08)}66%{transform:translate(-20px,50px)scale(.95)}}@keyframes loginBlob2{0%,to{transform:translate(0)scale(1)}40%{transform:translate(-30px,-40px)scale(1.1)}70%{transform:translate(20px,20px)scale(.92)}}.login-card{-webkit-backdrop-filter:blur(32px);border-radius:var(--radius-xl);z-index:1;background:#fffffff7;width:100%;max-width:420px;padding:40px 36px;animation:.6s cubic-bezier(.16,1,.3,1) both loginCardIn;position:relative;box-shadow:0 40px 100px #00000080,0 12px 40px #d32f2f33,0 0 0 1px #ffffff26}@keyframes loginCardIn{0%{opacity:0;transform:translateY(32px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.login-card:before{content:"";background:linear-gradient(90deg, transparent, #d32f2fb3, var(--primary), #d32f2fb3, transparent);border-radius:0 0 4px 4px;height:2px;position:absolute;top:0;left:10%;right:10%}.login-logo{text-align:center;margin-bottom:28px}.login-logo-img{object-fit:contain;filter:drop-shadow(0 8px 20px #d32f2f4d);border-radius:24px;width:80px;height:80px;margin-bottom:16px;animation:5s ease-in-out infinite logoFloat}@keyframes logoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.login-logo h1{color:var(--text);letter-spacing:-.03em;margin-bottom:4px;font-family:Plus Jakarta Sans,Inter,sans-serif;font-size:24px;font-weight:800}.login-logo p{color:var(--text-secondary);font-size:13px;font-weight:500}.login-form{flex-direction:column;gap:16px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:var(--text-secondary);letter-spacing:.04em;text-transform:uppercase;font-size:12.5px;font-weight:700}.form-input{background:var(--bg-muted);border:1.5px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);outline:none;padding:13px 16px;font-family:Inter,sans-serif;font-size:14.5px;transition:all .2s}.form-input::placeholder{color:var(--text-muted)}.form-input:focus{border-color:var(--primary);background:#fff;box-shadow:0 0 0 4px #d32f2f14,0 2px 8px #d32f2f1a}.form-input:hover:not(:focus){border-color:var(--primary-200)}.form-label{color:var(--text-secondary);margin-bottom:5px;font-size:13px;font-weight:600;display:block}.form-hint{color:var(--text-muted);margin-top:4px;font-size:12px}.form-error-text{color:#ef4444;text-align:center;border-radius:var(--radius-sm);background:#ef44440f;border:1px solid #ef444426;padding:8px 12px;font-size:13px;font-weight:500}.login-footer-note{color:var(--text-muted);text-align:center;margin-top:4px;font-size:12px;line-height:1.6}select.form-input{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:36px}select.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 4px #d32f2f14}textarea.form-input{resize:vertical;min-height:90px;line-height:1.6}@media (max-width:768px){.login-page{padding:16px;padding-top:max(60px, env(safe-area-inset-top,60px));align-items:flex-start}.login-card{border-radius:var(--radius-lg);padding:28px 22px;box-shadow:0 24px 60px #0006,0 8px 24px #d32f2f26}.login-logo-img{width:64px;height:64px}.login-logo h1{font-size:20px}.form-input{font-size:16px}}
