: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:rgba(211,47,47,0.35);--primary-glow-sm:rgba(211,47,47,0.15);--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:rgba(255,255,255,0.05);--sidebar-hover-bg:rgba(255,255,255,0.07);--sidebar-section-color:rgba(255,255,255,0.35);--bg:#fafafa;--bg-card:rgba(255,255,255,0.92);--bg-sidebar:rgba(255,255,255,0.95);--bg-sidebar-hover:rgba(241,245,249,0.8);--bg-glass:rgba(255,255,255,0.82);--bg-muted:#f7f8fc;--text:#16213e;--text-secondary:#475569;--text-muted:#94a3b8;--text-sidebar:rgba(255,255,255,0.82);--border:rgba(220,228,240,0.85);--border-light:rgba(241,245,249,0.65);--shadow-sm:0 2px 10px rgba(15,23,42,0.05),0 1px 3px rgba(15,23,42,0.03);--shadow-md:0 8px 28px rgba(15,23,42,0.08),0 3px 10px rgba(15,23,42,0.04);--shadow-lg:0 20px 50px rgba(15,23,42,0.10),0 6px 16px rgba(15,23,42,0.05);--shadow-xl:0 32px 80px rgba(15,23,42,0.14),0 12px 32px rgba(15,23,42,0.08);--shadow-glow:0 8px 32px var(--primary-glow),0 2px 8px rgba(211,47,47,0.15);--shadow-glow-lg:0 16px 60px rgba(211,47,47,0.28),0 6px 20px rgba(211,47,47,0.14);--shadow-card-hover:0 20px 50px rgba(211,47,47,0.10),0 6px 16px rgba(15,23,42,0.07);--radius-xs:6px;--radius-sm:10px;--radius:14px;--radius-lg:20px;--radius-xl:28px;--radius-2xl:40px;--cat-leadership:linear-gradient(135deg,#991b1b,#dc2626 50%,#b91c1c);--cat-member:linear-gradient(135deg,#7f1d1d,#ef4444 60%,#f87171);--cat-mentor:linear-gradient(135deg,#450a0a,#991b1b 50%,#7f1d1d)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}::selection{background:rgba(211,47,47,.18);color:var(--primary-900)}::-moz-selection{background:rgba(211,47,47,.18);color:var(--primary-900)}html{text-size-adjust:100%}body,html{scroll-behavior:smooth;overflow-x:hidden;overscroll-behavior-x:none;max-width:100%;width:100%;position:relative}@keyframes slideUpFade{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes gradientShift{0%,to{background-position:0 50%}50%{background-position:100% 50%}}@keyframes subtleFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes shimmerLine{0%{transform:translateX(-100%)}to{transform:translateX(200%)}}@keyframes pulseGlow{0%,to{opacity:.5}50%{opacity:1}}body{font-family:Be Vietnam Pro,-apple-system,system-ui,sans-serif;background-color:var(--bg);background-image:radial-gradient(ellipse at top right,rgba(255,235,235,.35) 0,transparent 50%),radial-gradient(ellipse at bottom left,rgba(255,242,242,.45) 0,transparent 50%);background-repeat:no-repeat;color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-layout{touch-action:manipulation;overscroll-behavior-y:contain}h1,h2,h3,h4,h5,h6{font-family:Be Vietnam Pro,-apple-system,system-ui,sans-serif}.category-header h2,.course-body h3,.hero-content h1,.login-logo h1,.section-header h2,.stat-label,h1,h2,h3,h4,h5,h6{text-wrap:balance}.course-body p,.hero-content p,.login-logo p,p{text-wrap:pretty}.course-body p,.empty-state p,.hero-content p,.lesson-rich-list li,.lesson-rich-numbered,.lesson-rich-paragraph,.login-logo p,.markdown-content li,.markdown-content p,.page-content p,.progress-text{text-align:justify;text-justify:inter-word}a{text-decoration:none;color:inherit}button{cursor:pointer;border:none;background:none;font-family:inherit}img{max-width:100%}html.is-mobile .main-content{position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:calc(64px + env(safe-area-inset-bottom, 0px))!important;margin:0!important;width:auto!important;max-width:none!important;min-width:0!important;overflow-x:hidden!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch}@media (max-width:768px){.admin-sidebar~.main-content{bottom:env(safe-area-inset-bottom,0)}}html.is-mobile .admin-sidebar~.main-content{bottom:env(safe-area-inset-bottom,0)!important}html.is-mobile .courses-grid{grid-template-columns:1fr!important;gap:14px!important}.app-layout{display:flex;height:100vh;max-width:100%;width:100%;overflow:hidden;overscroll-behavior-x:none}.sidebar{width:264px;background:linear-gradient(180deg,var(--sidebar-from) 0,var(--sidebar-mid) 50%,var(--sidebar-to) 100%);border-right:1px solid var(--sidebar-border);color:var(--text-sidebar);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:50;transition:transform .35s cubic-bezier(.22,1,.36,1);box-shadow:6px 0 40px rgba(0,0,0,.3),2px 0 8px rgba(0,0,0,.2)}.sidebar:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,rgba(211,47,47,.8),var(--primary),rgba(211,47,47,.8),transparent);pointer-events:none}.sidebar-header{padding:22px 18px;border-bottom:1px solid var(--sidebar-border)}.sidebar-logo{display:flex;align-items:center;gap:12px}.sidebar-logo-img{width:46px;height:46px;border-radius:14px;object-fit:contain;flex-shrink:0;background:rgba(255,255,255,.12);padding:5px;border:1px solid rgba(255,255,255,.12);transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease;box-shadow:0 4px 12px rgba(0,0,0,.3)}.sidebar-logo:hover .sidebar-logo-img{transform:scale(1.08) rotate(-2deg);box-shadow:0 0 20px rgba(255,100,100,.5),0 4px 16px rgba(0,0,0,.4)}.sidebar-logo-text h2{font-family:Be Vietnam Pro,sans-serif;font-size:16px;font-weight:800;color:#fff;letter-spacing:-.01em}.sidebar-logo-text span{font-size:11px;color:rgba(255,255,255,.4);letter-spacing:.02em}.sidebar-nav{flex:1 1;padding:16px 10px;overflow-y:auto;scrollbar-width:none}.sidebar-nav::-webkit-scrollbar{display:none}.sidebar-section{margin-bottom:22px}.sidebar-section-title{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--sidebar-section-color);margin-bottom:6px}.sidebar-link{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--radius-sm);font-size:13.5px;font-weight:500;color:rgba(255,255,255,.7);transition:all .22s cubic-bezier(.22,1,.36,1)}.sidebar-link:hover{background:var(--sidebar-hover-bg);color:rgba(255,255,255,.95);transform:translateX(3px)}.sidebar-link.active{background:linear-gradient(135deg,rgba(211,47,47,.85),rgba(183,28,28,.9));color:#fff;font-weight:700;box-shadow:0 4px 16px rgba(211,47,47,.4),0 1px 4px rgba(0,0,0,.2);border:1px solid rgba(255,100,100,.2)}.sidebar-link.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:60%;background:rgba(255,200,200,.8);border-radius:0 2px 2px 0}.sidebar-link svg{width:18px;height:18px;opacity:.7;transition:opacity .15s,transform .2s}.sidebar-link:hover svg{opacity:.9;transform:scale(1.1)}.sidebar-link.active svg{opacity:1}.sidebar-footer{padding:16px;border-top:1px solid var(--sidebar-border)}.sidebar-logout{width:100%;margin-top:10px;padding:10px 14px;font-size:13px;font-weight:600;color:rgba(255,255,255,.5);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s ease}.sidebar-logout:hover{color:rgba(255,150,150,.9);border-color:rgba(255,100,100,.2);background:rgba(255,80,80,.08)}.sidebar-user{gap:10px}.sidebar-avatar,.sidebar-user{display:flex;align-items:center}.sidebar-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--primary),#ef4444);justify-content:center;font-size:13px;font-weight:800;color:white;box-shadow:0 4px 12px rgba(211,47,47,.4);flex-shrink:0;border:2px solid rgba(255,255,255,.15)}.sidebar-user-info h4{color:rgba(255,255,255,.92)}.sidebar-user-info span{font-size:11px;color:rgba(255,255,255,.38)}.main-content{flex:1 1;margin-left:264px;display:flex;flex-direction:column;min-width:0;max-width:100%;overflow-x:hidden;overflow-y:auto}.topbar{min-height:64px;background:var(--bg-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border-light);display:flex;align-items:center;padding:env(safe-area-inset-top,0) 24px 0;position:sticky;top:0;z-index:40}.topbar-brand{display:none;align-items:center;gap:10px;font-size:17px;font-weight:800;color:var(--text);letter-spacing:-.02em}.topbar-brand .topbar-logo{width:32px;height:32px;border-radius:50%;object-fit:contain}.topbar-title{font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px}.topbar-title svg{width:16px;height:16px;color:var(--primary)}.page-content{padding:24px;max-width:min(1200px,100%);margin:0 auto;flex:1 1;width:100%;overflow-x:hidden}.mobile-toggle{display:none;width:36px;height:36px;align-items:center;justify-content:center;border-radius:var(--radius-sm);margin-right:12px}.sidebar-overlay{display:none}.bottom-tab-bar{display:none;background:var(--bg-glass);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-top:1px solid var(--border-light);padding:8px 16px calc(8px + env(safe-area-inset-bottom));position:fixed;bottom:0;left:0;right:0;z-index:45;box-shadow:0 -4px 24px rgba(15,23,42,.04)}.bottom-tab-bar a.bottom-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;flex:1 1;padding:8px 0;min-height:48px;color:var(--text-muted);transition:color .25s cubic-bezier(.22,1,.36,1);position:relative}.bottom-tab svg{width:22px;height:22px;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.bottom-tab span{font-size:10px;font-weight:500;letter-spacing:.01em;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:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:32px;height:3px;background:var(--primary);border-radius:0 0 4px 4px;animation:tabIndicator .3s cubic-bezier(.34,1.56,.64,1)}@keyframes tabIndicator{0%{transform:translateX(-50%) scaleX(0)}to{transform:translateX(-50%) scaleX(1)}}.bottom-tab:active{transform:scale(.9);transition:transform .1s}.pwa-install-banner{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:linear-gradient(135deg,var(--primary-50),#fff5f5);border-bottom:1px solid var(--primary-100)}.pwa-install-content{display:flex;align-items:center;gap:12px}.pwa-install-icon{border-radius:50%;flex-shrink:0}.pwa-install-content strong{font-size:13px;font-weight:700;display:block;color:var(--primary-800)}.pwa-install-content span{font-size:11px;color:var(--text-secondary)}.pwa-install-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}@media (max-width:768px){.sidebar{transform:translateX(-100%)}.sidebar.open{transform:translateX(0)}.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:45;transition:opacity .25s ease}.sidebar-overlay.open{display:block}.main-content{position:fixed;top:0;left:0;right:0;bottom:calc(64px + env(safe-area-inset-bottom, 0px));margin:0;width:auto;max-width:none;min-width:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.topbar{flex-shrink:0}.category-section,.continue-card,.courses-grid,.dashboard-stack,.hero-banner,.stats-grid,.xp-level-card{max-width:100%;width:100%}.mobile-toggle{display:flex;min-width:44px;min-height:44px}.topbar{min-height:52px;padding:env(safe-area-inset-top,0) 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{font-size:13px;margin-bottom:14px}.hero-stats{gap:16px;flex-wrap:wrap}.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}.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}.category-header h2,.section-header h2{font-size:16px}.category-header span{font-size:12px}.category-section{margin-bottom:24px}.lesson-item{padding:14px 12px;min-height:52px;gap:10px}.lesson-number{width:28px;height:28px;font-size:12px}.quiz-option{padding:14px 16px;min-height:48px;gap:10px;font-size:13px}.btn{min-height:44px;padding:10px 18px}.btn-lg{padding:14px 24px;min-height:48px}.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}.course-body p,.empty-state p,.hero-content p,.lesson-rich-list li,.lesson-rich-numbered,.lesson-rich-paragraph,.login-logo p,.markdown-content li,.markdown-content p,.page-content p,.progress-text{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{padding:16px;border-radius:var(--radius)}.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{padding:24px 20px;border-radius:var(--radius-lg)}}.card{background:var(--bg-card);backdrop-filter:blur(16px);-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:slideUpFade .5s cubic-bezier(.16,1,.3,1) both}.card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-5px);border-color:rgba(211,47,47,.15)}.card-content{padding:22px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.stat-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:22px 20px;border:1px solid var(--border-light);box-shadow:var(--shadow-sm);text-align:center;position:relative;overflow:hidden;transition:box-shadow .3s ease,transform .3s cubic-bezier(.22,1,.36,1),border-color .3s ease}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--border);transition:all .3s ease}.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{box-shadow:0 20px 48px rgba(211,47,47,.12),0 8px 20px rgba(15,23,42,.08);transform:translateY(-7px);border-color:rgba(211,47,47,.18)}.stat-icon{width:44px;height:44px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;margin:0 auto 12px}.stat-value{font-family:Be Vietnam Pro,sans-serif;font-size:30px;font-weight:800;line-height:1.2;color:var(--text)}.stat-label{font-size:12px;color:var(--text-secondary);margin-top:3px;font-weight:500}.courses-grid{display:grid;grid-template-columns:1fr;gap:14px}@media (min-width:769px){.courses-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}}.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 .4s ease,transform .4s cubic-bezier(.22,1,.36,1),border-color .4s ease}.course-card:after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent 0,var(--primary) 50%,transparent 100%);opacity:0;transition:opacity .4s ease}.course-card:hover{transform:translateY(-8px) scale(1.01);border-color:var(--primary-200)}.course-card:hover:after{opacity:1}.course-card{animation:slideUpFade .5s cubic-bezier(.16,1,.3,1) both}.courses-grid .course-card:first-child{animation-delay:.05s}.courses-grid .course-card:nth-child(2){animation-delay:.1s}.courses-grid .course-card:nth-child(3){animation-delay:.15s}.courses-grid .course-card:nth-child(4){animation-delay:.2s}.courses-grid .course-card:nth-child(5){animation-delay:.25s}.courses-grid .course-card:nth-child(6){animation-delay:.3s}.courses-grid .course-card:nth-child(7){animation-delay:.35s}.courses-grid .course-card:nth-child(8){animation-delay:.4s}.courses-grid .course-card:nth-child(9){animation-delay:.45s}.course-thumb{height:148px;background:linear-gradient(135deg,#b91c1c,#d32f2f 50%,#991b1b);background-size:200% 200%;animation:gradientShift 8s ease infinite;display:flex;align-items:center;justify-content:center;font-size:52px;position:relative;transition:all .4s ease;overflow:hidden}.course-thumb:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.08) 1px,transparent 0);background-size:16px 16px;pointer-events:none;opacity:.6;transition:opacity .4s ease}.course-thumb:after{content:"";position:absolute;top:0;left:-100%;width:50%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.12),transparent);transition:none}.course-card:hover .course-thumb{filter:brightness(1.08);background-size:250% 250%}.course-card:hover .course-thumb:after{animation:shimmerLine 1.2s ease forwards}.course-card:hover .course-thumb:before{opacity:1}.course-thumb-overlay{position:absolute;top:12px;right:12px}.course-body{padding:16px}.course-body h3{font-size:15px;font-weight:700;margin-bottom:6px;line-height:1.4}.course-body p{font-size:13px;color:var(--text-secondary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.course-meta{display:flex;align-items:center;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border-light);font-size:12px;color:var(--text-muted)}.course-meta svg{width:14px;height:14px}.course-meta span{display:flex;align-items:center;gap:4px}.progress-bar{width:100%;height:6px;background:var(--border-light);border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary-800),var(--primary),#ef4444);border-radius:3px;transition:width .6s cubic-bezier(.22,1,.36,1);position:relative;box-shadow:0 0 8px rgba(211,47,47,.25)}.progress-fill:after{content:"";position:absolute;top:0;right:0;width:30px;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4));border-radius:3px;animation:progressShimmer 2s ease-in-out infinite}.progress-bar-lg{height:10px}.progress-bar-lg,.progress-bar-lg .progress-fill{border-radius:5px}.progress-text{font-size:12px;font-weight:600;color:var(--text-secondary);margin-top:4px}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600}.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{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:var(--radius);font-size:13px;font-weight:600;letter-spacing:.01em;transition:all .22s cubic-bezier(.22,1,.36,1);position:relative;overflow:hidden}.btn:after{content:"";position:absolute;inset:0;background:rgba(255,255,255,0);transition:background .15s ease;border-radius:inherit}.btn:active:after{background:rgba(0,0,0,.08)}.btn-primary{background:linear-gradient(135deg,#d32f2f,#c62828 40%,#b71c1c);color:white;border:1px solid rgba(255,255,255,.15);box-shadow:0 4px 14px rgba(211,47,47,.3),0 1px 4px rgba(139,0,0,.2)}.btn-primary:hover{background:linear-gradient(135deg,#c62828,#b71c1c 50%,#8b0000);box-shadow:var(--shadow-glow-lg);transform:translateY(-2px)}.btn-primary:active{transform:translateY(0);box-shadow:0 2px 8px rgba(211,47,47,.25)}.btn-outline{color:var(--text);background:rgba(255,255,255,.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn-outline:hover{background:white;border-color:var(--primary-200);box-shadow:0 4px 12px rgba(211,47,47,.08)}.btn-success{background:linear-gradient(135deg,#059669,#10b981);color:white;box-shadow:0 4px 14px rgba(16,185,129,.25)}.btn-success:hover{background:linear-gradient(135deg,#047857,#059669);box-shadow:0 8px 24px rgba(16,185,129,.35);transform:translateY(-2px)}.btn-sm{padding:6px 14px;font-size:12px;border-radius:var(--radius-sm)}.btn-lg{padding:15px 32px;font-size:15px;font-weight:700;border-radius:var(--radius-lg);letter-spacing:.02em}.btn-block{width:100%}.lesson-list{list-style:none}.lesson-item{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border-light);transition:background .15s ease}.lesson-item:hover{background:var(--bg)}.lesson-item:last-child{border-bottom:none}.lesson-number{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;background:var(--border-light);color:var(--text-muted);flex-shrink:0}.lesson-number.completed{background:var(--success-light);color:var(--success)}.lesson-info{flex:1 1;min-width:0}.lesson-info h4{font-size:14px;font-weight:600}.lesson-info span{font-size:12px;color:var(--text-muted)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-header h2{font-size:18px;font-weight:700;display:flex;align-items:center;gap:8px}.category-section{margin-bottom:32px}.category-header{display:flex;align-items:center;gap:10px;margin-bottom:16px}.category-icon{font-size:24px}.category-header h2{font-size:18px;font-weight:700}.category-header span{font-size:13px;color:var(--text-secondary)}.markdown-content{font-size:16px;line-height:1.9;color:var(--text);max-width:980px;margin:0 auto;word-break:break-word;padding-bottom:24px}.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);line-height:1.3;letter-spacing:-.02em}.markdown-content h1{font-size:30px;font-weight:800;margin:0 0 18px}.markdown-content h2{font-size:24px;font-weight:800;margin:32px 0 14px}.markdown-content h3{font-size:19px;font-weight:700;margin:24px 0 12px}.markdown-content h4{font-size:17px;font-weight:700;margin:18px 0 10px}.markdown-content p{margin:0 0 18px;color:var(--text);text-wrap:auto}.markdown-content p+p{margin-top:-2px}.markdown-content ol,.markdown-content ul{margin:0 0 20px;padding-left:28px}.markdown-content li{margin-bottom:10px;padding-left:4px;text-wrap:auto}.markdown-content li::marker{color:var(--primary)}.lesson-rich-text{max-width:760px;margin:0 auto;padding-bottom:12px}.lesson-reader-shell{max-width:1040px}.lesson-meta-card,.lesson-reader-card{max-width:860px;margin:0 auto;width:100%}.lesson-reader-card{background:linear-gradient(180deg,#fffefe,#fffaf7);border-color:#f1e7dd;box-shadow:0 12px 34px rgba(15,23,42,.06)}.lesson-reader-card-content{padding:40px 48px 52px!important}.lesson-rich-heading{font-size:18px;font-weight:800;line-height:1.35;margin:0 0 20px}.lesson-rich-numbered,.lesson-rich-paragraph{font-size:17px;line-height:2.05;color:var(--text);margin:0 0 22px;text-align:justify;text-justify:inter-word;text-align-last:left}.lesson-rich-numbered{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:start}.lesson-rich-number{text-align:right;display:inline-block}.lesson-rich-list{list-style:disc;padding-left:28px;margin:0 0 22px}.lesson-rich-list li{font-size:17px;line-height:2;margin-bottom:14px;text-align:justify;text-justify:inter-word;text-align-last:left}.lesson-rich-list li::marker{color:var(--primary)}.lesson-form-line{font-size:16px;line-height:1.8;color:var(--text);margin:0 0 10px;font-family:inherit;white-space:pre-wrap;word-break:break-word;border-left:2px solid var(--border-light,rgba(0,0,0,.08));padding-left:12px}.lesson-signature-line{display:flex;flex-direction:column;gap:4px;padding:10px 0 6px;font-size:15px;font-style:italic;color:var(--text-secondary);border-top:1px dashed var(--border-light,rgba(0,0,0,.12));margin-top:8px}.lesson-signature-name{font-weight:700;font-style:normal;color:var(--text)}.markdown-content blockquote{border-left:4px solid var(--primary);padding:14px 18px;background:var(--primary-50);border-radius:0 var(--radius) var(--radius) 0;margin:22px 0;font-style:italic}.markdown-content hr{border:0;border-top:1px solid var(--border);margin:28px 0}.markdown-content table{width:100%;border-collapse:collapse;margin:20px 0 24px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);display:block;overflow-x:auto}.markdown-content td,.markdown-content th{padding:12px 14px;border-bottom:1px solid var(--border-light);text-align:left;font-size:14px;vertical-align:top}.markdown-content th{background:var(--bg-muted);font-weight:700;color:var(--text)}.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);padding:2px 7px;border-radius:6px;font-size:13px}.markdown-content pre{margin:18px 0 22px;padding:16px 18px;border-radius:var(--radius);background:#0f172a;color:#e2e8f0;overflow-x:auto}.markdown-content pre code{background:transparent;padding:0;color:inherit}@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-list li,.lesson-rich-numbered,.lesson-rich-paragraph{font-size:15px;line-height:1.85;text-align:left}.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{font-weight:600;margin-bottom:10px}.quiz-option{gap:10px;border:2px solid var(--border)}.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{border-color:#ef4444;background:#fef2f2}.login-page{min-height:100dvh;background:linear-gradient(135deg,#1e1b2e,#2d1b3e 50%,#1a1530);padding:20px}.login-page:before{position:fixed;top:-40%;right:-30%;width:500px;height:500px;background:radial-gradient(circle,rgba(185,28,28,.15) 0,transparent 70%)}.login-card{max-width:400px;background:white;padding:40px;box-shadow:0 20px 60px rgba(0,0,0,.3)}.login-logo{display:flex;flex-direction:column;align-items:center}.login-logo-img{width:72px;height:72px;border-radius:50%;margin-bottom:14px;filter:drop-shadow(0 4px 12px rgba(185,28,28,.2))}.login-logo h1{font-size:22px;color:var(--primary-800)}.login-logo p{margin-top:4px}.login-form{gap:14px}.form-group label{font-size:13px;font-weight:600;margin-bottom:4px;display:block}.form-input{padding:11px 14px;font-size:14px;font-family:inherit;transition:border-color .15s}.form-input:focus{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:fadeIn .35s cubic-bezier(.22,1,.36,1)}.slide-up{animation:slideUp .4s cubic-bezier(.22,1,.36,1)}.scale-in{animation:scaleIn .3s cubic-bezier(.22,1,.36,1)}.page-content{animation:fadeIn .3s cubic-bezier(.22,1,.36,1)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-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{background:linear-gradient(135deg,#7f1d1d,#b91c1c 30%,#d32f2f 55%,#991b1b 80%,#7f1d1d);background-size:300% 300%;animation:gradientShift 12s ease infinite;border-radius:var(--radius-xl);padding:40px;color:white;position:relative;overflow:hidden;width:100%;min-width:0;box-sizing:border-box;box-shadow:0 16px 48px rgba(139,0,0,.4),0 6px 20px rgba(211,47,47,.22),inset 0 1px 0 rgba(255,255,255,.1)}.hero-banner:before{top:-40%;right:0;height:480px;background:radial-gradient(circle,rgba(255,255,255,.14) 0,transparent 65%);animation:heroPulse 7s ease-in-out infinite}.hero-banner:after,.hero-banner:before{content:"";position:absolute;width:50%;border-radius:50%;pointer-events:none}.hero-banner:after{bottom:-35%;left:0;height:360px;background:radial-gradient(circle,rgba(255,200,200,.08) 0,transparent 65%);animation:heroPulse 9s ease-in-out infinite reverse}@keyframes heroPulse{0%,to{opacity:.6}50%{opacity:1}}.settings-container{max-width:640px}.hero-content{position:relative;z-index:1;min-width:0;max-width:100%;overflow-wrap:break-word;word-break:break-word}.hero-content h1{font-family:Be Vietnam Pro,-apple-system,system-ui,sans-serif;font-size:26px;font-weight:800;font-style:normal!important;margin-bottom:8px;letter-spacing:-.02em;text-shadow:0 2px 8px rgba(0,0,0,.2);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.hero-content h1,.hero-content p{max-width:100%;overflow-wrap:break-word;word-break:break-word;white-space:normal}.streak-badge{gap:6px;padding:6px 14px;border-radius:20px;background:linear-gradient(135deg,#f59e0b,#ef4444);color:white;font-size:13px;box-shadow:0 2px 12px rgba(245,158,11,.4);animation:streakPulse 2s ease-in-out infinite;white-space:nowrap}.hero-content p{font-size:14px;color:rgba(255,255,255,.8);margin-bottom:20px}.hero-stats{display:flex;gap:24px}.hero-stat .value{font-size:28px;font-weight:800}.hero-stat .label{font-size:12px;color:rgba(255,255,255,.65)}.hero-progress-area{margin-top:18px}.hero-progress-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.hero-progress-label{font-size:13px;color:rgba(255,255,255,.78);font-weight:500}.hero-progress-pct{font-size:20px;font-weight:800;color:white;letter-spacing:-.02em}.progress-bar-hero{background:rgba(255,255,255,.18);border-radius:9px;height:8px;overflow:hidden}.progress-bar-hero .progress-fill{background:linear-gradient(90deg,rgba(255,255,255,.95),rgba(255,230,230,.85));border-radius:9px;transition:width 1s cubic-bezier(.22,1,.36,1)}.continue-card{display:flex;align-items:center;gap:16px;padding:20px 24px;background:linear-gradient(135deg,#1e293b,#334155);border-radius:16px;cursor:pointer;transition:all .3s cubic-bezier(.22,1,.36,1);box-shadow:0 4px 20px rgba(0,0,0,.12);position:relative;overflow:hidden;width:100%;min-width:0;box-sizing:border-box}.continue-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(185,28,28,.15),transparent 60%);opacity:0;transition:opacity .3s ease}.continue-card:hover{transform:translateY(-2px);box-shadow:0 8px 30px rgba(0,0,0,.2)}.continue-card:hover:before{opacity:1}.continue-card-icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,var(--primary),#dc2626);color:white;flex-shrink:0;box-shadow:0 4px 15px rgba(185,28,28,.4)}.continue-card-content{flex:1 1;min-width:0}.continue-card-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.55)}.continue-card-title{font-size:16px;font-weight:700;color:white;margin:4px 0;line-height:1.3}.continue-card-meta,.continue-card-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:break-word;word-break:break-word}.continue-card-meta{font-size:12px;color:rgba(255,255,255,.5)}@media (max-width:600px){.continue-card{padding:16px;gap:12px}.continue-card-icon{width:44px;height:44px}.continue-card-title{font-size:14px}}.xp-level-card{background:linear-gradient(135deg,#1a1a2e,#16213e 50%,#0f3460);border-radius:16px;padding:20px 24px;box-shadow:0 4px 24px rgba(0,0,0,.15),inset 0 1px 0 rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);width:100%;min-width:0;overflow:hidden;box-sizing:border-box}.xp-level-header{display:flex;align-items:center;gap:16px;margin-bottom:16px}.xp-level-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;width:56px;height:56px;border-radius:14px;background:rgba(255,255,255,.06);border:2px solid;flex-shrink:0}.xp-level-emoji{font-size:22px;line-height:1}.xp-level-number{font-size:11px;font-weight:800;letter-spacing:.5px;margin-top:2px}.xp-level-info{flex:1 1;min-width:0;max-width:100%;overflow:hidden}.xp-level-title{font-size:18px;font-weight:800;letter-spacing:-.5px}.xp-level-subtitle,.xp-level-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xp-level-subtitle{font-size:12px;color:rgba(255,255,255,.5);margin-top:2px}.xp-total{display:flex;align-items:center;gap:4px;background:rgba(245,158,11,.12);padding:8px 14px;border-radius:12px;border:1px solid rgba(245,158,11,.2);flex-shrink:0}.xp-total-value{font-size:20px;font-weight:800;color:#fbbf24;line-height:1}.xp-total-label{font-size:11px;font-weight:700;color:rgba(251,191,36,.7);text-transform:uppercase;letter-spacing:1px}.xp-progress-section{display:flex;align-items:center;gap:12px}.xp-progress-bar{flex:1 1;height:8px;background:rgba(255,255,255,.08);border-radius:4px;overflow:hidden;will-change:transform;isolation:isolate}.xp-progress-fill{height:100%;border-radius:4px;transition:width .6s cubic-bezier(.22,1,.36,1);box-shadow:0 0 12px rgba(255,255,255,.2);position:relative}.xp-progress-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:xpShimmer 2s ease-in-out infinite}@keyframes xpShimmer{0%{opacity:0}50%{opacity:.4}to{opacity:0}}.xp-progress-text{font-size:12px;color:rgba(255,255,255,.5);font-weight:600;white-space:nowrap;min-width:80px;text-align:right}@media (max-width:480px){.xp-level-card{padding:16px}.xp-level-header{gap:12px}.xp-level-badge{width:44px;height:44px;border-radius:10px}.xp-level-emoji{font-size:18px}.xp-level-title{font-size:15px}.xp-total{padding:6px 10px}.xp-total-value{font-size:16px}}.learning-path{padding:8px 0}.learning-path-item{display:flex;align-items:flex-start;gap:16px;padding:0;border:none;background:none;width:100%;text-align:left;cursor:pointer;position:relative}.learning-path-item:not(:last-child){padding-bottom:8px}.learning-path-track{flex-direction:column;position:relative}.learning-path-node,.learning-path-track{display:flex;align-items:center;width:36px;flex-shrink:0}.learning-path-node{height:36px;border-radius:50%;justify-content:center;font-size:13px;font-weight:700;z-index:1;transition:all .3s ease}.learning-path-node.completed{background:var(--success);color:white;box-shadow:0 2px 8px rgba(16,185,129,.3)}.learning-path-node.current{background:var(--primary);color:white;box-shadow:0 2px 12px rgba(185,28,28,.4);animation:currentNodePulse 2s ease-in-out infinite}.learning-path-node.locked{background:var(--gray-100);color:var(--text-muted);border:2px solid var(--border-light)}@keyframes currentNodePulse{0%,to{box-shadow:0 2px 12px rgba(185,28,28,.4)}50%{box-shadow:0 4px 20px rgba(185,28,28,.6)}}.learning-path-line{width:2px;flex:1 1;min-height:20px;margin:4px 0}.learning-path-line.completed{background:var(--success)}.learning-path-line.pending{background:var(--border-light)}.learning-path-body{flex:1 1;min-width:0;padding:6px 12px;border-radius:10px;transition:background .2s ease}.learning-path-item:hover .learning-path-body{background:var(--gray-50)}.learning-path-body h4{font-size:14px;font-weight:600;color:var(--text);margin:0 0 2px;line-height:1.4}.learning-path-body .lp-meta{font-size:12px;color:var(--text-muted);display:flex;align-items:center;gap:8px}.learning-path-body .lp-current-tag{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:8px;background:rgba(185,28,28,.08);color:var(--primary);font-size:11px;font-weight:600}.course-progress-area{margin-top:12px}.course-progress-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin-bottom:5px}.course-progress-count{color:var(--text-muted)}.course-progress-pct{font-weight:700;color:var(--primary)}.course-continue-link{margin-left:auto;color:var(--primary);font-weight:600;font-size:13px;display:flex;align-items:center;gap:4px}.dashboard-stack{display:flex;flex-direction:column;gap:24px;width:100%;overflow:hidden}.dashboard-stack>*{min-width:0;max-width:100%;box-sizing:border-box}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-muted)}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,rgba(211,47,47,.25),rgba(211,47,47,.4));border-radius:4px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,rgba(211,47,47,.4),rgba(211,47,47,.55))}.category-header h2,.section-header h2{font-family:Be Vietnam Pro,sans-serif;letter-spacing:-.02em}.lesson-reader-shell{max-width:860px;margin:0 auto}.lesson-meta-card .card-content h1{font-size:22px;font-weight:800;line-height:1.4;color:var(--text);letter-spacing:-.01em}.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{font-size:15.5px;line-height:1.8;color:var(--text);word-break:break-word;overflow-wrap:break-word}.lesson-rich-heading{font-size:17px;font-weight:700;color:var(--text);margin:28px 0 12px;padding-bottom:8px;border-bottom:2px solid var(--primary-100);letter-spacing:-.01em;line-height:1.5}.lesson-rich-text>.lesson-rich-heading:first-child{margin-top:0}.lesson-rich-paragraph{margin:0 0 16px;color:var(--text);line-height:1.85;text-align:justify;text-justify:inter-word}.lesson-rich-paragraph:last-child{margin-bottom:0}.lesson-rich-numbered{display:flex;gap:8px;margin:0 0 10px;padding:10px 14px;background:var(--bg-muted);border-radius:var(--radius-sm);border-left:3px solid var(--primary);line-height:1.7;transition:background .15s ease}.lesson-rich-numbered:hover{background:var(--primary-50)}.lesson-rich-number{font-weight:700;color:var(--primary);flex-shrink:0;min-width:28px}.lesson-rich-list{margin:8px 0 18px;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:6px}.lesson-rich-list li{position:relative;padding:8px 12px 8px 28px;line-height:1.7;background:var(--bg-muted);border-radius:var(--radius-sm);transition:background .15s ease}.lesson-rich-list li:hover{background:var(--primary-50)}.lesson-rich-list li:before{content:"";position:absolute;left:12px;top:16px;width:6px;height:6px;border-radius:50%;background:var(--primary)}.lesson-rich-quote{display:flex;gap:14px;align-items:flex-start;margin:20px 0;padding:18px 20px;background:linear-gradient(135deg,rgba(185,28,28,.04),rgba(185,28,28,.08));border-left:4px solid;border-image:linear-gradient(180deg,var(--primary),rgba(185,28,28,.3)) 1;border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-style:italic;color:var(--text-secondary);line-height:1.8;transition:background .2s ease}.lesson-rich-quote:hover{background:linear-gradient(135deg,rgba(185,28,28,.06),rgba(185,28,28,.12))}.lesson-rich-quote p{margin:0;font-size:inherit}.lesson-rich-callout{display:flex;gap:14px;align-items:flex-start;margin:18px 0;padding:16px 18px;border-radius:var(--radius);border:1px solid;transition:transform .15s ease,box-shadow .15s ease}.lesson-rich-callout:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(0,0,0,.06)}.lesson-rich-callout-icon{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%}.lesson-rich-callout-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.lesson-rich-callout-text{margin:0;font-size:14.5px;line-height:1.7}.lesson-rich-callout-tip{background:linear-gradient(135deg,rgba(16,185,129,.06),rgba(16,185,129,.12));border-color:rgba(16,185,129,.25)}.lesson-rich-callout-tip .lesson-rich-callout-icon{background:rgba(16,185,129,.15);color:#059669}.lesson-rich-callout-tip .lesson-rich-callout-label{color:#059669}.lesson-rich-callout-warning{background:linear-gradient(135deg,rgba(245,158,11,.06),rgba(245,158,11,.12));border-color:rgba(245,158,11,.25)}.lesson-rich-callout-warning .lesson-rich-callout-icon{background:rgba(245,158,11,.15);color:#d97706}.lesson-rich-callout-warning .lesson-rich-callout-label{color:#d97706}.lesson-rich-callout-example{background:linear-gradient(135deg,rgba(59,130,246,.06),rgba(59,130,246,.12));border-color:rgba(59,130,246,.25)}.lesson-rich-callout-example .lesson-rich-callout-icon{background:rgba(59,130,246,.15);color:#2563eb}.lesson-rich-callout-example .lesson-rich-callout-label{color:#2563eb}.lesson-rich-callout-key{background:linear-gradient(135deg,rgba(185,28,28,.05),rgba(185,28,28,.1));border-color:rgba(185,28,28,.2)}.lesson-rich-callout-key .lesson-rich-callout-icon{background:rgba(185,28,28,.12);color:var(--primary)}.lesson-rich-callout-key .lesson-rich-callout-label{color:var(--primary)}.lesson-rich-highlight{display:flex;gap:10px;align-items:flex-start;margin:14px 0;padding:12px 16px;background:linear-gradient(135deg,rgba(217,119,6,.06),rgba(217,119,6,.12));border-left:3px solid #d97706;border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:#92400e;font-weight:600;font-size:14.5px;line-height:1.7;transition:background .15s ease}.lesson-rich-highlight:hover{background:linear-gradient(135deg,rgba(217,119,6,.1),rgba(217,119,6,.18))}.lesson-rich-highlight p{margin:0}.lesson-reader-shell>div:last-child{padding-top:8px}.quiz-question{margin-bottom:28px;padding-bottom:24px;border-bottom:1px solid var(--border-light)}.quiz-question:last-of-type{border-bottom:none}.quiz-question h4{font-size:15px;font-weight:700;margin-bottom:14px;line-height:1.6}.quiz-options{display:flex;flex-direction:column;gap:8px}.quiz-option{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--bg-card);cursor:pointer;transition:all .15s ease;text-align:left;font-size:14px;line-height:1.5}.quiz-option.selected,.quiz-option:hover:not(:disabled){border-color:var(--accent);background:var(--accent-light)}.quiz-option.selected{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{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9998;overflow:hidden}.confetti-piece{position:absolute;top:-10px;border-radius:2px;animation:confettiFall linear forwards}@keyframes confettiFall{0%{transform:translateY(0) rotate(0deg);opacity:1}to{transform:translateY(100vh) rotate(2turn);opacity:0}}.filter-bar{display:flex;flex-direction:column;gap:12px}.search-box{display:flex;align-items:center;gap:10px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;transition:border-color .2s}.search-box:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px rgba(185,28,28,.08)}.search-box input{flex:1 1;border:none;outline:none;background:transparent;font-size:14px;color:var(--text)}.search-box input::placeholder{color:var(--text-muted)}.search-clear{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;border-radius:4px;display:flex}.search-clear:hover{background:var(--bg-muted)}.filter-chips{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.filter-select{padding:6px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);font-size:13px;color:var(--text);cursor:pointer;outline:none}.filter-select:focus{border-color:var(--primary)}.status-chips{display:flex;gap:6px;flex-wrap:wrap}.chip{padding:5px 12px;border:1px solid var(--border);border-radius:999px;background:var(--bg-card);font-size:12px;color:var(--text-secondary);cursor:pointer;transition:all .15s;white-space:nowrap}.chip:hover{color:var(--primary)}.chip-active,.chip:hover{border-color:var(--primary)}.chip-active{background:var(--primary);color:white}.chip-active:hover{background:var(--primary-hover)}@media (max-width:768px){.filter-chips{flex-direction:column;align-items:stretch;min-width:0}.filter-select{width:100%}.status-chips{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;width:100%;max-width:100%;min-width:0;padding-bottom:4px;scrollbar-width:thin}.status-chips::-webkit-scrollbar{height:4px}.status-chips::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}.status-chips>.chip{flex-shrink:0}}.toast-container{position:fixed;top:16px;right:16px;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--radius);background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow-lg);pointer-events:auto;animation:toastSlideIn .3s ease-out;max-width:360px;font-size:13px;line-height:1.4}.toast-success{border-left:3px solid var(--success);color:var(--success)}.toast-error{border-left:3px solid #dc2626;color:#dc2626}.toast-info{border-left:3px solid var(--accent);color:var(--accent)}.toast-message{color:var(--text);flex:1 1}.toast-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;border-radius:4px;display:flex;align-items:center}.toast-close:hover{background:var(--bg-muted)}@keyframes toastSlideIn{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}@media (max-width:768px){.toast-container{top:auto;bottom:72px;right:12px;left:12px}.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{font-size:15.5px;margin:22px 0 10px}.lesson-rich-numbered{padding:8px 12px}.lesson-rich-list li{padding:6px 10px 6px 24px}.lesson-rich-list li:before{left:10px;top:14px}.lesson-rich-quote{padding:14px 16px;gap:10px}.lesson-rich-callout{padding:14px;gap:10px;flex-direction:column}.lesson-rich-callout-icon{width:30px;height:30px}.lesson-rich-callout-text{font-size:13.5px}.lesson-rich-highlight{padding:10px 14px;font-size:13.5px}.lesson-milestone-toast{font-size:12px;padding:8px 16px}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;position:relative;overflow:hidden;background:linear-gradient(135deg,#0d0101,#1a0202 30%,#220303 60%,#16191f)}.login-page:before{top:-30%;left:-20%;width:600px;height:600px;background:radial-gradient(circle,rgba(211,47,47,.18) 0,transparent 65%);animation:loginBlob1 12s ease-in-out infinite}.login-page:after,.login-page:before{content:"";position:absolute;border-radius:50%;pointer-events:none}.login-page:after{bottom:-20%;right:-15%;width:500px;height:500px;background:radial-gradient(circle,rgba(139,0,0,.15) 0,transparent 65%);animation:loginBlob2 15s ease-in-out infinite reverse}@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{width:100%;max-width:420px;background:rgba(255,255,255,.97);backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px);border-radius:var(--radius-xl);padding:40px 36px;box-shadow:0 40px 100px rgba(0,0,0,.5),0 12px 40px rgba(211,47,47,.2),0 0 0 1px rgba(255,255,255,.15);position:relative;z-index:1;animation:loginCardIn .6s cubic-bezier(.16,1,.3,1) both}@keyframes loginCardIn{0%{opacity:0;transform:translateY(32px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.login-card:before{content:"";position:absolute;top:0;left:10%;right:10%;height:2px;background:linear-gradient(90deg,transparent,rgba(211,47,47,.7),var(--primary),rgba(211,47,47,.7),transparent);border-radius:0 0 4px 4px}.login-logo{text-align:center;margin-bottom:28px}.login-logo-img{width:80px;height:80px;border-radius:24px;object-fit:contain;margin-bottom:16px;filter:drop-shadow(0 8px 20px rgba(211,47,47,.3));animation:logoFloat 5s ease-in-out infinite}@keyframes logoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.login-logo h1{font-family:Be Vietnam Pro,sans-serif;font-size:24px;font-weight:800;color:var(--text);letter-spacing:-.03em;margin-bottom:4px}.login-logo p{font-size:13px;color:var(--text-secondary);font-weight:500}.login-form{gap:16px}.form-group,.login-form{display:flex;flex-direction:column}.form-group{gap:6px}.form-group label{font-size:12.5px;font-weight:700;color:var(--text-secondary);letter-spacing:.04em;text-transform:uppercase}.form-input{width:100%;padding:13px 16px;font-size:14.5px;font-family:Inter,sans-serif;background:var(--bg-muted);border:1.5px solid var(--border);border-radius:var(--radius);color:var(--text);transition:all .2s ease;outline:none}.form-input::placeholder{color:var(--text-muted)}.form-input:focus{border-color:var(--primary);background:white;box-shadow:0 0 0 4px rgba(211,47,47,.08),0 2px 8px rgba(211,47,47,.1)}.form-input:hover:not(:focus){border-color:var(--primary-200)}.form-label{font-size:13px;font-weight:600;color:var(--text-secondary);display:block;margin-bottom:5px}.form-hint{font-size:12px;color:var(--text-muted);margin-top:4px}.form-error-text{font-size:13px;color:#ef4444;text-align:center;font-weight:500;padding:8px 12px;background:rgba(239,68,68,.06);border-radius:var(--radius-sm);border:1px solid rgba(239,68,68,.15)}.login-footer-note{font-size:12px;color:var(--text-muted);text-align:center;margin-top:4px;line-height:1.6}.login-sent{text-align:center;padding:8px 0}.login-sent-icon{font-size:48px;margin-bottom:16px;animation:loginSentBounce .6s cubic-bezier(.34,1.56,.64,1) both}@keyframes loginSentBounce{0%{opacity:0;transform:scale(.5) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.login-sent h2{font-size:18px;font-weight:700;color:var(--text);margin-bottom:10px}.login-sent p{font-size:14px;color:var(--text-secondary);line-height:1.7;margin-bottom:8px}.login-sent strong{color:var(--primary);font-weight:600}.login-sent-hint{font-size:12.5px;color:var(--text-muted);margin-bottom:16px}.btn-outline{background:transparent;border:1.5px solid var(--border);color:var(--text-secondary);font-weight:600;transition:all .2s}.btn-outline:hover{border-color:var(--primary);color:var(--primary);background:rgba(211,47,47,.04)}select.form-input{appearance:none;-webkit-appearance:none;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-repeat:no-repeat;background-position:right 14px center;padding-right:36px;cursor:pointer}select.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(211,47,47,.08)}textarea.form-input{resize:vertical;min-height:90px;line-height:1.6}@media (max-width:768px){.login-page{align-items:flex-start;padding:max(60px,env(safe-area-inset-top,60px)) 16px 16px}.login-card{padding:28px 22px;border-radius:var(--radius-lg);box-shadow:0 24px 60px rgba(0,0,0,.4),0 8px 24px rgba(211,47,47,.15)}.login-logo-img{width:64px;height:64px}.login-logo h1{font-size:20px}.form-input{font-size:16px}}.slide-content-wrapper{align-items:center!important;justify-content:flex-start!important}.slide-content-wrapper div:not([class*=slide-]),.slide-content-wrapper li,.slide-content-wrapper ol,.slide-content-wrapper p,.slide-content-wrapper ul{text-align:left!important;font-style:normal!important}.slide-content-wrapper p{line-height:1.75!important;word-break:break-word!important;overflow-wrap:break-word!important;max-width:100%!important;width:100%!important}.lesson-rich-text{font-size:16.5px;line-height:1.85;letter-spacing:-.003em;font-feature-settings:"kern","liga","calt";-webkit-font-smoothing:antialiased}.lesson-rich-paragraph{font-size:inherit;line-height:1.9;margin:0 0 18px;text-wrap:pretty}.lesson-rich-heading{font-size:19px;margin:36px 0 14px;letter-spacing:-.015em;background:linear-gradient(90deg,var(--primary) 0,var(--primary-100) 100%);background-size:36px 2px;background-repeat:no-repeat;background-position:0 100%;border-bottom:1px solid var(--border-light);padding-bottom:10px}.lesson-reader-shell{max-width:760px}.reading-progress-bar{position:fixed;top:0;left:0;right:0;height:3px;z-index:9999;background:transparent;pointer-events:none}.reading-progress-fill{height:100%;background:linear-gradient(90deg,var(--primary) 0,var(--accent) 50%,var(--primary) 100%);background-size:200% 100%;animation:progressShimmer 3s linear infinite;box-shadow:0 0 8px var(--primary-glow);transition:width .1s ease-out;border-radius:0 2px 2px 0}@keyframes progressShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.lesson-rich-text>.lesson-rich-heading+.lesson-rich-paragraph:first-letter,.lesson-rich-text>.lesson-rich-paragraph:first-child:first-letter{float:left;font-size:3.4em;line-height:.9;font-weight:800;margin:6px 12px 0 0;padding:4px 10px 2px;background:linear-gradient(135deg,var(--primary) 0,var(--accent) 100%);color:white;border-radius:8px;box-shadow:0 4px 12px var(--primary-glow-sm);text-transform:uppercase}@keyframes lessonFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.lesson-reader-card{animation:lessonFadeIn .5s cubic-bezier(.16,1,.3,1) both}.lesson-meta-card{animation:lessonFadeIn .4s cubic-bezier(.16,1,.3,1) both;animation-delay:.05s}.lesson-rich-text>*{animation:lessonFadeIn .35s cubic-bezier(.16,1,.3,1) both}.lesson-rich-text>:first-child{animation-delay:.08s}.lesson-rich-text>:nth-child(2){animation-delay:.12s}.lesson-rich-text>:nth-child(3){animation-delay:.16s}.lesson-rich-text>:nth-child(4){animation-delay:.2s}.lesson-rich-text>:nth-child(5){animation-delay:.24s}.lesson-rich-text>:nth-child(n+6){animation-delay:.28s}.lesson-rich-callout{margin:22px 0;padding:18px 22px;border-width:1px;border-radius:var(--radius-lg);box-shadow:0 2px 8px rgba(15,23,42,.04);position:relative;overflow:hidden}.lesson-rich-callout:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:currentColor;opacity:.6}.lesson-rich-callout-tip:before{background:linear-gradient(90deg,#10b981,#059669)}.lesson-rich-callout-warning:before{background:linear-gradient(90deg,#f59e0b,#d97706)}.lesson-rich-callout-example:before{background:linear-gradient(90deg,#3b82f6,#2563eb)}.lesson-rich-callout-key:before{background:linear-gradient(90deg,var(--primary),var(--accent))}.lesson-rich-callout-icon{width:40px;height:40px;box-shadow:0 2px 8px rgba(0,0,0,.06)}.lesson-rich-callout-label{font-size:11px;letter-spacing:.08em;margin-bottom:6px}.lesson-rich-callout-text{font-size:15px;line-height:1.75}.lesson-rich-callout:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(15,23,42,.08)}.course-card{transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.course-card:hover{transform:translateY(-6px) scale(1.01);box-shadow:var(--shadow-card-hover)}.course-card:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .6s ease;z-index:2;pointer-events:none}.course-card:hover:before{left:100%}.course-progress-ring{position:relative;width:56px;height:56px;flex-shrink:0}.course-progress-ring svg{transform:rotate(-90deg)}.course-progress-ring-track{fill:none;stroke:var(--border);stroke-width:4}.course-progress-ring-fill{fill:none;stroke:var(--primary);stroke-width:4;stroke-linecap:round;filter:drop-shadow(0 0 4px var(--primary-glow-sm));transition:stroke-dashoffset .6s cubic-bezier(.16,1,.3,1)}.course-progress-ring-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:var(--primary)}@media (prefers-reduced-motion:reduce){.lesson-meta-card,.lesson-reader-card,.lesson-rich-text>*,.reading-progress-fill{animation:none!important;transition:none!important}}@media (max-width:640px){.lesson-rich-text{font-size:16px}.lesson-rich-heading{font-size:17px;margin:28px 0 12px}.lesson-rich-text>.lesson-rich-heading+.lesson-rich-paragraph:first-letter,.lesson-rich-text>.lesson-rich-paragraph:first-child:first-letter{font-size:2.8em;margin:4px 8px 0 0;padding:3px 8px}.lesson-rich-callout{padding:14px 16px}}.lesson-toc{position:fixed;right:16px;top:96px;width:280px;max-height:calc(100vh - 140px);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);z-index:50;display:flex;flex-direction:column;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:transform .3s cubic-bezier(.16,1,.3,1),width .3s ease}.lesson-toc.collapsed{width:44px;max-height:44px;overflow:hidden}.lesson-toc-toggle{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:8px;background:var(--bg-muted);color:var(--text);display:flex;align-items:center;justify-content:center;z-index:2;transition:background .15s ease}.lesson-toc-toggle:hover{background:var(--primary-50);color:var(--primary)}.lesson-toc-header{border-bottom:1px solid var(--border-light);padding:16px 44px 12px 16px}.lesson-toc-header h3{font-size:13px;font-weight:700;color:var(--text);margin:0 0 8px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lesson-toc-progress-bar{height:4px;background:var(--border-light);border-radius:2px;overflow:hidden;margin-bottom:6px}.lesson-toc-progress-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:2px;transition:width .5s cubic-bezier(.16,1,.3,1)}.lesson-toc-progress-meta{display:flex;justify-content:space-between;font-size:11px;color:var(--text-muted)}.lesson-toc-progress-meta span{display:inline-flex;align-items:center;gap:3px}.lesson-toc-list{flex:1 1;overflow-y:auto;padding:6px 0;margin:0;list-style:none}.lesson-toc-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 14px;font-size:12.5px;color:var(--text-secondary);text-align:left;background:transparent;border-radius:0;cursor:pointer;transition:background .15s ease,color .15s ease;line-height:1.4}.lesson-toc-item:hover:not(:disabled){background:var(--primary-50);color:var(--text)}.lesson-toc-item.current{background:linear-gradient(90deg,var(--primary-50),transparent);color:var(--primary);font-weight:700;border-left:3px solid var(--primary)}.lesson-toc-item.done{color:var(--text-muted)}.lesson-toc-item.done .lesson-toc-item-icon{color:#10b981}.lesson-toc-item.locked{cursor:not-allowed;opacity:.55}.lesson-toc-item-icon{flex-shrink:0;display:flex;align-items:center;color:var(--text-muted)}.lesson-toc-item.current .lesson-toc-item-icon{color:var(--primary)}.lesson-toc-item-num{font-weight:600;color:var(--text-muted);font-size:11px;flex-shrink:0;min-width:18px}.lesson-toc-item.current .lesson-toc-item-num{color:var(--primary)}.lesson-toc-item-title{flex:1 1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lesson-toc-item-meta{font-size:10px;color:var(--text-muted);flex-shrink:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lesson-toolbar{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:6px;padding:6px;background:var(--bg-card);border:1px solid var(--border);border-radius:999px;box-shadow:var(--shadow-lg);z-index:60;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.lesson-toolbar-btn{width:36px;height:36px;border-radius:50%;background:transparent;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease,transform .15s ease}.lesson-toolbar-btn:hover{background:var(--primary-50);color:var(--primary);transform:scale(1.08)}.lesson-toolbar-btn.active{background:var(--primary);color:white}html.reading-mode .lesson-toc,html.reading-mode .mobile-bottom-nav,html.reading-mode .sidebar{opacity:0;pointer-events:none;transform:translateX(-20px);transition:opacity .3s ease,transform .3s ease}html.reading-mode .main-content{margin-left:0!important;max-width:880px!important;margin-inline:auto!important;transition:margin .3s ease,max-width .3s ease}html.reading-mode .lesson-toolbar{opacity:.85}.lesson-time-remaining{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;background:linear-gradient(135deg,rgba(245,158,11,.08),rgba(245,158,11,.18));border:1px solid rgba(245,158,11,.3);color:#b45309;border-radius:999px;font-size:11.5px;font-weight:600}.lesson-note-overlay{position:fixed;inset:0;background:rgba(15,23,42,.4);z-index:80;animation:noteOverlayIn .25s ease both}@keyframes noteOverlayIn{0%{opacity:0}to{opacity:1}}.lesson-note-panel{position:fixed;top:0;right:0;bottom:0;width:min(440px,95vw);background:var(--bg-card);border-left:1px solid var(--border);box-shadow:-8px 0 32px rgba(15,23,42,.15);z-index:81;display:flex;flex-direction:column;animation:noteSlideIn .3s cubic-bezier(.16,1,.3,1) both}@keyframes noteSlideIn{0%{transform:translateX(100%)}to{transform:translateX(0)}}.lesson-note-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px 14px;border-bottom:1px solid var(--border-light)}.lesson-note-header h3{font-size:15px;font-weight:700;color:var(--text);margin:0 0 4px}.lesson-note-header p{font-size:12px;color:var(--text-muted);margin:0;line-height:1.4}.lesson-note-close{width:32px;height:32px;border-radius:8px;background:var(--bg-muted);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s ease}.lesson-note-close:hover{background:var(--primary-50);color:var(--primary)}.lesson-note-textarea{flex:1 1;width:100%;padding:18px 20px;font-family:inherit;font-size:14.5px;line-height:1.7;color:var(--text);background:var(--bg-card);border:none;outline:none;resize:none}.lesson-note-textarea::placeholder{color:var(--text-muted);white-space:pre-line}.lesson-note-footer{display:flex;justify-content:space-between;align-items:center;padding:10px 20px;border-top:1px solid var(--border-light);font-size:11px;color:var(--text-muted)}.lesson-note-saved{display:inline-flex;align-items:center;gap:4px}html[data-theme=dark]{--bg:#0f1419;--bg-card:#1a2030;--bg-sidebar:rgba(15,20,25,0.95);--bg-sidebar-hover:rgba(255,255,255,0.08);--bg-glass:rgba(26,32,48,0.85);--bg-muted:#232a3d;--text:#e8eaf0;--text-secondary:#a8b2c8;--text-muted:#6b7894;--border:rgba(255,255,255,0.08);--border-light:rgba(255,255,255,0.04);--primary-50:rgba(220,38,38,0.12);--primary-100:rgba(220,38,38,0.18);--shadow-sm:0 2px 10px rgba(0,0,0,0.3);--shadow-md:0 8px 28px rgba(0,0,0,0.4);--shadow-lg:0 20px 50px rgba(0,0,0,0.5)}html[data-theme=dark] body{background-color:#0f1419;background-image:radial-gradient(ellipse at 0 0,rgba(220,38,38,.05) 0,transparent 55%),radial-gradient(ellipse at 100% 100%,rgba(220,38,38,.04) 0,transparent 55%)}html[data-theme=dark] .card,html[data-theme=dark] .lesson-meta-card,html[data-theme=dark] .lesson-reader-card{background:var(--bg-card);border-color:var(--border)}html[data-theme=dark] .lesson-rich-callout{filter:brightness(.95)}html[data-theme=dark] .lesson-rich-list li,html[data-theme=dark] .lesson-rich-numbered{background:var(--bg-muted)}html[data-theme=dark] .lesson-rich-list li:hover,html[data-theme=dark] .lesson-rich-numbered:hover{background:rgba(220,38,38,.12)}html[data-theme=dark] .lesson-note-panel,html[data-theme=dark] .lesson-toc,html[data-theme=dark] .lesson-toolbar{background:var(--bg-card)}html[data-theme=dark] .lesson-rich-heading{color:#f1f5f9;border-bottom-color:var(--border)}html[data-theme=dark] .lesson-rich-text>.lesson-rich-heading+.lesson-rich-paragraph:first-letter,html[data-theme=dark] .lesson-rich-text>.lesson-rich-paragraph:first-child:first-letter{box-shadow:0 4px 16px rgba(220,38,38,.4)}html[data-theme=dark] .quiz-option{background:var(--bg-muted);border-color:var(--border);color:var(--text)}html[data-theme=dark] .quiz-option.selected{background:rgba(220,38,38,.18)}html[data-theme=dark] .quiz-option.correct{background:rgba(16,185,129,.18)}html[data-theme=dark] .quiz-option.incorrect{background:rgba(220,38,38,.22)}html[data-theme=dark] .lesson-time-remaining{background:linear-gradient(135deg,rgba(245,158,11,.18),rgba(245,158,11,.28));color:#fbbf24;border-color:rgba(245,158,11,.4)}@media print{.btn,.lesson-note-overlay,.lesson-note-panel,.lesson-toc,.lesson-toolbar,.mobile-bottom-nav,.reading-progress-bar,.sidebar,button{display:none!important}body,html{background:white!important;color:black!important}.main-content{margin:0!important;padding:20px!important}.lesson-reader-shell,.main-content{max-width:100%!important}.card,.lesson-meta-card,.lesson-reader-card{border:1px solid #ccc!important;box-shadow:none!important;page-break-inside:avoid;background:white!important}.lesson-rich-text{font-size:11pt!important;line-height:1.6!important;color:black!important}.lesson-rich-heading{color:#000!important;page-break-after:avoid}.lesson-rich-callout,.lesson-rich-list li,.lesson-rich-numbered{background:#f5f5f5!important;border-color:#ddd!important;page-break-inside:avoid}a[href^=http]:after{content:" (" attr(href) ")";font-size:9pt;color:#555}.lesson-rich-text>.lesson-rich-heading+.lesson-rich-paragraph:first-letter,.lesson-rich-text>.lesson-rich-paragraph:first-child:first-letter{float:none!important;font-size:inherit!important;background:none!important;color:black!important;padding:0!important;box-shadow:none!important}}@media (max-width:1100px){.lesson-toc{width:240px;top:80px;right:12px}}@media (max-width:900px){.lesson-toc{width:44px;max-height:44px;top:80px;right:12px}.lesson-toc:not(.collapsed){width:min(320px,90vw);max-height:calc(100vh - 200px)}.lesson-toolbar{bottom:80px;right:12px;flex-direction:row}.lesson-toolbar-btn{width:32px;height:32px}}.gamification-grid{display:grid;grid-template-columns:1fr 2fr 1fr;gap:16px}@media (max-width:900px){.gamification-grid{grid-template-columns:1fr}}.streak-card{gap:14px;padding:18px 20px;background:linear-gradient(135deg,#fff7ed,#ffedd5);border:1px solid rgba(245,158,11,.25);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.streak-card,.streak-card-icon{display:flex;align-items:center}.streak-card-icon{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#f59e0b,#ea580c);color:white;justify-content:center;flex-shrink:0;box-shadow:0 6px 20px rgba(245,158,11,.4);animation:streakPulse 2s ease-in-out infinite}@keyframes streakPulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.streak-card-body h3{font-size:12px;font-weight:700;color:#92400e;text-transform:uppercase;letter-spacing:.05em;margin:0 0 2px}.streak-days{font-size:22px;font-weight:800;color:#b45309;margin:0;display:flex;align-items:baseline;gap:4px}.streak-days span{font-size:32px}.streak-record{font-size:11px;color:#92400e;font-weight:600}.achievements-card{padding:16px 18px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.achievements-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.achievements-header h3{font-size:13px;font-weight:700;color:var(--text);display:inline-flex;align-items:center;gap:6px;margin:0}.achievements-count{font-size:12px;font-weight:700;color:var(--primary);padding:2px 8px;background:var(--primary-50);border-radius:999px}.achievements-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}@media (max-width:600px){.achievements-grid{grid-template-columns:repeat(2,1fr)}}.achievement-tile{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:12px 14px;border-radius:var(--radius);border:1.5px solid var(--border-light);background:var(--bg-card);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;cursor:help;min-height:90px}.achievement-tile.unlocked{background:linear-gradient(135deg,#ffffff,#fff5f5);border-width:2px;box-shadow:0 4px 14px rgba(185,28,28,.08);position:relative}.achievement-tile.unlocked:after{content:"";position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:50%;background:#10b981;box-shadow:0 0 0 3px rgba(16,185,129,.18)}.achievement-tile.unlocked:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(185,28,28,.14)}.achievement-tile.locked{background:var(--bg-muted);border-style:dashed}.achievement-tile.locked .achievement-emoji{filter:grayscale(1);opacity:.55}.achievement-tile.locked .achievement-title{color:var(--text-secondary)}.achievement-tile.locked .achievement-desc{color:var(--text-muted)}.achievement-emoji{font-size:26px;line-height:1}.achievement-title{font-size:12.5px;font-weight:700;color:var(--text);line-height:1.25}.achievement-desc{font-size:10.5px;font-weight:500;color:var(--text-secondary);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.achievements-footer{margin-top:10px;padding-top:10px;border-top:1px dashed var(--border-light);font-size:11px;color:var(--text-muted);text-align:center;font-style:italic}.leaderboard-cta{display:flex;align-items:center;gap:12px;padding:16px 18px;background:linear-gradient(135deg,var(--primary) 0,var(--primary-dark) 100%);color:white;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:transform .2s ease,box-shadow .2s ease}.leaderboard-cta:hover{transform:translateY(-3px);box-shadow:var(--shadow-glow)}.leaderboard-cta-icon{width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;flex-shrink:0}.leaderboard-cta h3{font-size:14px;font-weight:700;margin:0 0 2px}.leaderboard-cta p{font-size:11px;margin:0;opacity:.9}.leaderboard-podium{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:12px;align-items:end}.leaderboard-podium-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 12px 14px;border-radius:var(--radius-lg);background:var(--bg-card);border:1px solid var(--border);text-align:center;box-shadow:var(--shadow-sm);transition:transform .2s ease,box-shadow .2s ease}.leaderboard-podium-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.leaderboard-podium-card.is-me{border-color:var(--primary);background:linear-gradient(180deg,var(--primary-50),var(--bg-card))}.leaderboard-podium-card.place-1{background:linear-gradient(180deg,#fef3c7,#fff);border-color:#f59e0b;padding-top:28px;transform:translateY(-12px)}.leaderboard-podium-card.place-2{background:linear-gradient(180deg,#f1f5f9,#fff);border-color:#94a3b8}.leaderboard-podium-card.place-3{background:linear-gradient(180deg,#ffedd5,#fff);border-color:#ea580c}.leaderboard-podium-rank{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--primary);color:white;font-size:13px;font-weight:800;padding:4px 10px;border-radius:999px;display:inline-flex;align-items:center;gap:3px}.leaderboard-podium-card.place-1 .leaderboard-podium-rank{background:linear-gradient(135deg,#f59e0b,#d97706)}.leaderboard-podium-card.place-2 .leaderboard-podium-rank{background:linear-gradient(135deg,#94a3b8,#64748b)}.leaderboard-podium-card.place-3 .leaderboard-podium-rank{background:linear-gradient(135deg,#ea580c,#c2410c)}.leaderboard-podium-emoji{font-size:32px;line-height:1}.leaderboard-podium-card.place-1 .leaderboard-podium-emoji{font-size:40px}.leaderboard-podium-name{font-size:13px;font-weight:700;color:var(--text);margin:0;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;max-width:100%}.leaderboard-podium-chapter{font-size:10px;color:var(--text-muted)}.leaderboard-podium-xp{font-size:14px;font-weight:800;color:var(--primary);margin-top:2px}.leaderboard-podium-streak{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:#ea580c;font-weight:700;margin-top:2px}.leaderboard-table{width:100%;border-collapse:collapse;font-size:13px}.leaderboard-table thead th{text-align:left;padding:12px 16px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:var(--bg-muted);border-bottom:1px solid var(--border)}.leaderboard-table tbody tr{transition:background .15s ease}.leaderboard-table tbody tr:hover{background:var(--primary-50)}.leaderboard-table tbody tr.is-me{background:linear-gradient(90deg,var(--primary-50),transparent);border-left:3px solid var(--primary)}.leaderboard-table tbody tr.is-me td{font-weight:700}.leaderboard-table td{padding:12px 16px;border-bottom:1px solid var(--border-light);color:var(--text)}.leaderboard-table td.rank{font-weight:800;color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;width:50px}.leaderboard-table td.xp{text-align:right;font-weight:700;color:var(--primary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.leaderboard-table td.streak{text-align:center}.streak-badge{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:#ea580c;font-weight:700;padding:2px 8px;background:#fff7ed;border-radius:999px}.leaderboard-me-card{border:2px solid var(--primary);background:var(--primary-50)}.smart-review-banner{display:flex;align-items:center;gap:14px;padding:14px 16px;background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid rgba(245,158,11,.35);border-radius:var(--radius-lg);position:relative;box-shadow:var(--shadow-sm);animation:lessonFadeIn .4s cubic-bezier(.16,1,.3,1) both}.smart-review-icon{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,#f59e0b,#d97706);color:white;display:flex;align-items:center;justify-content:center;flex-shrink:0}.smart-review-body{flex:1 1;min-width:0}.smart-review-body h4{font-size:13px;font-weight:700;color:#92400e;margin:0 0 2px}.smart-review-body p{font-size:12.5px;color:#78350f;margin:0;line-height:1.5}.smart-review-cta{flex-shrink:0;padding:8px 16px;background:#d97706;color:white;border-radius:999px;font-size:12px;font-weight:700;transition:background .15s ease}.smart-review-cta:hover{background:#b45309}.smart-review-dismiss{position:absolute;top:4px;right:4px;width:32px;height:32px;border-radius:50%;background:rgba(120,53,15,.1);color:#78350f;display:flex;align-items:center;justify-content:center;transition:background .15s ease}.smart-review-dismiss:hover{background:rgba(120,53,15,.2)}html[data-theme=dark] .streak-card{background:linear-gradient(135deg,rgba(245,158,11,.12),rgba(234,88,12,.18));border-color:rgba(245,158,11,.3)}html[data-theme=dark] .streak-card-body h3{color:#fbbf24}html[data-theme=dark] .streak-days{color:#fcd34d}html[data-theme=dark] .streak-record{color:#fbbf24}html[data-theme=dark] .achievements-card{background:var(--bg-card)}html[data-theme=dark] .achievement-tile{background:var(--bg-muted)}html[data-theme=dark] .achievement-tile.unlocked{background:linear-gradient(135deg,var(--bg-muted) 0,rgba(220,38,38,.08) 100%)}html[data-theme=dark] .leaderboard-table thead th{background:var(--bg-muted)}html[data-theme=dark] .leaderboard-table tbody tr:hover{background:rgba(220,38,38,.08)}html[data-theme=dark] .smart-review-banner{background:linear-gradient(135deg,rgba(245,158,11,.12),rgba(217,119,6,.18));border-color:rgba(245,158,11,.3)}html[data-theme=dark] .smart-review-body h4{color:#fcd34d}html[data-theme=dark] .smart-review-body p{color:#fbbf24}.lesson-rich-text>.lesson-rich-heading+.lesson-rich-paragraph:first-letter,.lesson-rich-text>.lesson-rich-paragraph:first-child:first-letter{float:none!important;font-size:inherit!important;font-weight:inherit!important;line-height:inherit!important;margin:0!important;padding:0!important;background:none!important;color:inherit!important;border-radius:0!important;box-shadow:none!important;text-transform:none!important}.lesson-rich-text>*{animation:none!important}.lesson-reader-card{animation:lessonFadeIn .35s cubic-bezier(.16,1,.3,1) both!important}.lesson-toolbar{transition:opacity .4s ease,transform .4s ease}.lesson-toolbar.idle{opacity:0;pointer-events:none;transform:translateY(8px)}.reading-progress-bar{height:2px}.reading-progress-fill{animation:none;background:var(--primary);box-shadow:none}@media (max-width:700px){.lesson-time-remaining{display:none!important}}@media (max-width:768px){.courses-grid{grid-template-columns:1fr!important;gap:12px!important}.course-card{border-radius:var(--radius)!important;transition:transform .2s ease!important}.course-card:before{display:none!important}.course-card:hover{transform:none!important}.course-card:active{transform:scale(.98)!important}.lesson-toolbar{bottom:calc(72px + env(safe-area-inset-bottom, 0px))!important;right:12px!important;flex-direction:column!important;padding:4px!important}.lesson-toolbar.collapsed-mobile .lesson-toolbar-btn{display:none!important}.lesson-toolbar.collapsed-mobile .lesson-toolbar-btn.menu-trigger{display:flex!important}.lesson-toolbar-btn.menu-trigger{display:none}.lesson-toc:not(.bottom-sheet){display:none!important}.lesson-toc.bottom-sheet{position:fixed!important;inset:auto 0 0 0!important;width:100%!important;max-width:100%!important;max-height:70vh!important;border-radius:20px 20px 0 0!important;z-index:90!important;transform:translateY(100%);transition:transform .3s cubic-bezier(.16,1,.3,1);box-shadow:0 -8px 32px rgba(15,23,42,.18)!important}.lesson-toc.bottom-sheet.open{transform:translateY(0)}.lesson-toc.bottom-sheet:before{content:"";position:absolute;top:8px;left:50%;transform:translateX(-50%);width:40px;height:4px;background:var(--border);border-radius:2px}.lesson-toc-toggle{display:none!important}.lesson-toc.bottom-sheet .lesson-toc-header{padding-top:22px!important;padding-right:16px!important}.lesson-note-panel{top:auto!important;inset:auto 0 0 0!important;width:100%!important;max-width:100%!important;height:75vh!important;border-radius:20px 20px 0 0!important;border-left:none!important;border-top:1px solid var(--border)!important;animation:noteSlideUpMobile .3s cubic-bezier(.16,1,.3,1) both!important}@keyframes noteSlideUpMobile{0%{transform:translateY(100%)}to{transform:translateY(0)}}html.reading-mode .bottom-tab-bar,html.reading-mode .topbar{display:none!important}html.reading-mode .lesson-toolbar{bottom:16px!important}.achievements-grid{grid-template-columns:repeat(2,1fr)!important}.achievement-tile{min-height:84px!important;padding:10px 12px!important}.achievement-emoji{font-size:22px!important}.achievement-title{font-size:12px!important}.achievement-desc{font-size:10px!important;-webkit-line-clamp:2!important}.leaderboard-table thead{display:none!important}.leaderboard-table,.leaderboard-table tbody,.leaderboard-table td,.leaderboard-table tr{display:block!important;width:100%!important}.leaderboard-table tbody tr{padding:12px 14px!important;margin:0 0 8px!important;border:1px solid var(--border)!important;border-radius:var(--radius)!important;display:grid!important;grid-template-columns:auto 1fr auto!important;grid-template-rows:auto auto!important;grid-template-areas:"rank name xp" "rank chapter streak"!important;column-gap:12px!important;background:var(--bg-card)!important}.leaderboard-table tbody tr.is-me{border-left-width:3px!important}.leaderboard-table td{border:none!important;padding:0!important;font-size:13px!important}.leaderboard-table td.rank{grid-area:rank;font-size:22px!important;align-self:center;width:36px!important;text-align:center!important}.leaderboard-table td.name{grid-area:name;font-weight:700!important}.leaderboard-table td.chapter{grid-area:chapter;font-size:11px!important;color:var(--text-muted)!important}.leaderboard-table td.xp{grid-area:xp;align-self:center}.leaderboard-table td.streak{grid-area:streak;text-align:right!important}.leaderboard-table td.level{display:none!important}.leaderboard-podium{gap:8px!important}.leaderboard-podium-card{padding:14px 6px 12px!important}.leaderboard-podium-card.place-1{transform:translateY(-6px)!important;padding-top:22px!important}.leaderboard-podium-emoji{font-size:26px!important}.leaderboard-podium-card.place-1 .leaderboard-podium-emoji{font-size:32px!important}.leaderboard-podium-name{font-size:11px!important}.leaderboard-podium-xp{font-size:12px!important}.leaderboard-podium-chapter{display:none!important}.gamification-grid{grid-template-columns:1fr!important;gap:10px!important}.streak-card{padding:14px 16px!important}.streak-card-icon{width:48px!important;height:48px!important}.streak-days span{font-size:28px!important}.stats-grid{grid-template-columns:repeat(2,1fr)!important;gap:10px!important}.stat-card{padding:14px!important}.stat-value{font-size:22px!important}.lesson-reader-card-content{padding:20px 16px!important}.lesson-rich-text{font-size:15.5px!important}.lesson-rich-paragraph{line-height:1.75!important;margin-bottom:14px!important}.reading-progress-bar{height:2px!important}.lesson-meta-card .card-content{padding:14px 16px!important}.lesson-meta-card .card-content h1{font-size:17px!important;line-height:1.4!important}.smart-review-banner{flex-wrap:wrap!important;padding:12px 14px!important}.smart-review-cta{width:100%!important;text-align:center!important;margin-top:4px!important}}@media (min-width:769px) and (max-width:1100px){.achievements-grid{grid-template-columns:repeat(3,1fr)}.courses-grid{grid-template-columns:repeat(2,1fr)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (max-width:768px){.btn,a.btn,button:not(.lesson-toolbar-btn):not(.search-clear):not(.smart-review-dismiss):not(.lesson-toc-sheet-close){min-height:44px}}.vbna-skeleton{background:linear-gradient(90deg,rgba(220,38,38,.04),rgba(220,38,38,.12) 40%,rgba(220,38,38,.04) 80%);background-size:200% 100%;animation:vbnaShimmer 1.5s ease-in-out infinite}@keyframes vbnaShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}html[data-theme=dark] .vbna-skeleton{background:linear-gradient(90deg,rgba(255,255,255,.04),rgba(255,255,255,.1) 40%,rgba(255,255,255,.04) 80%);background-size:200% 100%}.skeleton-hero{background:linear-gradient(135deg,var(--primary-50) 0,#fff5f5 100%)}.activity-heatmap-card{padding:18px 20px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.activity-heatmap-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.activity-heatmap-title{font-size:13px;font-weight:700;color:var(--text);display:inline-flex;align-items:center;gap:6px}.activity-heatmap-subtitle{font-size:11px;color:var(--text-muted)}.activity-heatmap-body{display:flex;align-items:center;gap:28px;flex-wrap:wrap}.activity-heatmap-explain{flex:1 1 200px;min-width:180px;max-width:300px;display:flex;flex-direction:column;gap:14px}.activity-heatmap-explain p{margin:0;font-size:12.5px;line-height:1.55;color:var(--text-secondary)}.activity-heatmap-explain strong{color:var(--text);font-weight:700}.activity-heatmap-cal{flex:0 0 auto}.activity-heatmap-grid{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto 1fr;grid-template-areas:"corner months" "days   weeks";gap:5px 6px}.ahm-corner{grid-area:corner}.ahm-months{grid-area:months;display:grid;grid-auto-flow:column;grid-auto-columns:14px;gap:3px;font-size:9.5px;font-weight:600;color:var(--text-muted);height:12px;align-items:center}.ahm-months span{white-space:nowrap;overflow:visible}.activity-heatmap-days{grid-area:days;display:flex;flex-direction:column;justify-content:space-between;font-size:9px;color:var(--text-muted);padding:1px 0;line-height:1}.activity-heatmap-weeks{grid-area:weeks;display:grid;grid-auto-flow:column;grid-auto-columns:14px;grid-template-rows:repeat(7,14px);gap:3px}.activity-heatmap-cell{width:14px;height:14px;border-radius:3px;background:rgba(185,28,28,.05);transition:transform .15s ease;cursor:help}.activity-heatmap-cell:hover{transform:scale(1.4);z-index:2}.activity-heatmap-cell[data-level="0"]{background:rgba(185,28,28,.05)}.activity-heatmap-cell[data-level="1"]{background:rgba(185,28,28,.25)}.activity-heatmap-cell[data-level="2"]{background:rgba(185,28,28,.5)}.activity-heatmap-cell[data-level="3"]{background:rgba(185,28,28,.75)}.activity-heatmap-cell[data-level="4"]{background:rgba(185,28,28,1);box-shadow:0 0 6px rgba(185,28,28,.4)}.activity-heatmap-legend{display:flex;align-items:center;gap:6px;margin-top:0;font-size:10px;color:var(--text-muted);justify-content:flex-start}.activity-heatmap-legend-cell{width:11px;height:11px;border-radius:2px}.activity-heatmap-legend-cell[data-level="0"]{background:rgba(185,28,28,.05)}.activity-heatmap-legend-cell[data-level="1"]{background:rgba(185,28,28,.25)}.activity-heatmap-legend-cell[data-level="2"]{background:rgba(185,28,28,.5)}.activity-heatmap-legend-cell[data-level="3"]{background:rgba(185,28,28,.75)}.activity-heatmap-legend-cell[data-level="4"]{background:rgba(185,28,28,1)}html[data-theme=dark] .activity-heatmap-cell[data-level="0"],html[data-theme=dark] .activity-heatmap-legend-cell[data-level="0"]{background:rgba(255,255,255,.05)}.completion-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:200;display:flex;align-items:center;justify-content:center;padding:20px;animation:completionFadeIn .4s ease both}@keyframes completionFadeIn{0%{opacity:0}to{opacity:1}}.completion-modal{background:linear-gradient(180deg,#ffffff,#fff5f5);border-radius:24px;padding:36px 32px 32px;max-width:480px;width:100%;text-align:center;position:relative;box-shadow:0 24px 80px rgba(127,29,29,.4);animation:completionPop .5s cubic-bezier(.34,1.56,.64,1) both}@keyframes completionPop{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}.completion-trophy{width:88px;height:88px;border-radius:50%;background:linear-gradient(135deg,#f59e0b,#d97706);display:flex;align-items:center;justify-content:center;margin:0 auto 18px;color:white;box-shadow:0 12px 32px rgba(245,158,11,.5);animation:completionTrophyFloat 2s ease-in-out infinite}@keyframes completionTrophyFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.completion-title{font-size:24px;font-weight:800;color:var(--primary-dark);margin:0 0 6px;letter-spacing:-.01em}.completion-course-name{font-size:14px;font-weight:600;color:var(--text-secondary);margin:0 0 24px}.completion-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px;padding:16px;background:rgba(185,28,28,.04);border-radius:12px}.completion-stat-num{font-size:22px;font-weight:800;color:var(--primary);line-height:1;margin-bottom:4px}.completion-stat-label{font-size:10.5px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.completion-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.completion-btn-primary{flex:1 1;min-width:140px;padding:12px 20px;background:linear-gradient(135deg,#b91c1c,#7f1d1d);color:white;font-weight:700;font-size:14px;border:none;border-radius:999px;cursor:pointer;box-shadow:0 4px 14px rgba(185,28,28,.4);transition:transform .15s ease,box-shadow .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:6px}.completion-btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(185,28,28,.5)}.completion-btn-secondary{flex:1 1;min-width:100px;padding:12px 20px;background:white;color:var(--primary);font-weight:600;font-size:14px;border:1.5px solid var(--primary);border-radius:999px;cursor:pointer;transition:background .15s ease}.completion-btn-secondary:hover{background:var(--primary-50)}.completion-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:50%;background:rgba(0,0,0,.05);color:var(--text-muted);display:flex;align-items:center;justify-content:center;transition:background .15s ease}.completion-close:hover{background:rgba(0,0,0,.1)}html[data-theme=dark] .completion-modal{background:linear-gradient(180deg,#1a2030,#1f1015)}html[data-theme=dark] .completion-title{color:#fca5a5}.cmdk-overlay{position:fixed;inset:0;background:rgba(15,23,42,.5);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:150;display:flex;align-items:flex-start;justify-content:center;padding-top:min(15vh,80px);padding-left:16px;padding-right:16px;animation:completionFadeIn .18s ease both}.cmdk-modal{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;width:100%;max-width:620px;box-shadow:0 24px 80px rgba(15,23,42,.3);overflow:hidden;animation:cmdkSlide .22s cubic-bezier(.16,1,.3,1) both}@keyframes cmdkSlide{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}.cmdk-input-wrap{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border-light)}.cmdk-input{flex:1 1;border:none;outline:none;background:transparent;font-size:15px;color:var(--text);font-family:inherit}.cmdk-input::placeholder{color:var(--text-muted)}.cmdk-kbd-hint{font-size:11px;color:var(--text-muted);padding:2px 6px;border:1px solid var(--border);border-radius:4px;font-family:ui-monospace,monospace}.cmdk-list{max-height:min(50vh,440px);overflow-y:auto;padding:6px 0}.cmdk-empty{padding:28px 18px;text-align:center;font-size:13px;color:var(--text-muted)}.cmdk-section{padding:6px 14px 2px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.cmdk-item{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;font-size:13.5px;color:var(--text);background:transparent;border:none;width:100%;text-align:left;transition:background .1s ease}.cmdk-item.active,.cmdk-item:hover{background:var(--primary-50)}.cmdk-item.active{position:relative}.cmdk-item.active:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;background:var(--primary);border-radius:0 2px 2px 0}.cmdk-item-icon{width:26px;height:26px;border-radius:6px;background:var(--bg-muted);color:var(--primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.cmdk-item-main{flex:1 1;min-width:0}.cmdk-item-title{font-weight:600}.cmdk-item-subtitle,.cmdk-item-title{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.cmdk-item-subtitle{font-size:11.5px;color:var(--text-muted);margin-top:1px}.cmdk-item-meta{font-size:10.5px;color:var(--text-muted);flex-shrink:0}.cmdk-footer{display:flex;align-items:center;gap:14px;padding:8px 14px;border-top:1px solid var(--border-light);font-size:11px;color:var(--text-muted)}.cmdk-footer-key{font-family:ui-monospace,monospace;padding:1px 6px;border:1px solid var(--border);border-radius:4px;font-size:10px;margin-right:4px}.animated-number-pulse{animation:numberPulse .4s ease}@keyframes numberPulse{0%{transform:scale(1);color:inherit}50%{transform:scale(1.1);color:var(--primary)}to{transform:scale(1);color:inherit}}.hero-v2{position:relative;overflow:hidden;padding:28px 32px;background:radial-gradient(circle at 0 0,#ef4444 0,transparent 45%),radial-gradient(circle at 100% 0,#b91c1c 0,transparent 45%),radial-gradient(circle at 50% 100%,#7f1d1d 0,transparent 55%),linear-gradient(135deg,#991b1b,#b91c1c 50%,#7f1d1d);background-size:200% 200%;animation:heroMeshShift 14s ease infinite;color:white;border-radius:var(--radius-xl);box-shadow:0 16px 48px rgba(127,29,29,.35)}@keyframes heroMeshShift{0%,to{background-position:0 0,100% 0,50% 100%,0 50%}50%{background-position:30% 20%,70% 30%,50% 80%,100% 50%}}.hero-decoration{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:inherit}.hero-blob{position:absolute;border-radius:50%;filter:blur(50px);opacity:.25}.hero-blob-1{top:-40px;left:-30px;width:220px;height:220px;background:#fbbf24;animation:heroBlobFloat 12s ease-in-out infinite}.hero-blob-2{bottom:-60px;right:-40px;width:260px;height:260px;background:#fb7185;animation:heroBlobFloat 16s ease-in-out infinite reverse}.hero-blob-3{top:40%;left:60%;width:160px;height:160px;background:#fff5f5;opacity:.12;animation:heroBlobFloat 10s ease-in-out infinite}@keyframes heroBlobFloat{0%,to{transform:translate(0) scale(1)}33%{transform:translate(20px,-15px) scale(1.08)}66%{transform:translate(-15px,10px) scale(.95)}}.hero-dot-pattern{position:absolute;inset:0;background-image:radial-gradient(circle at 2px 2px,rgba(255,255,255,.12) 1px,transparent 0);background-size:28px 28px;opacity:.4;pointer-events:none}.hero-v2-row{position:relative;display:flex;align-items:center;gap:20px;margin-bottom:16px;z-index:2}.hero-v2-content{flex:1 1;min-width:0}.hero-greeting{display:block;font-size:13px;font-weight:500;color:rgba(255,255,255,.8);letter-spacing:.5px;margin-bottom:2px}.hero-v2-name{font-size:26px;font-weight:800;margin:0 0 6px;line-height:1.15;word-break:break-word;letter-spacing:-.015em;text-shadow:0 2px 12px rgba(0,0,0,.15)}.hero-v2-subtitle{font-size:13.5px;color:rgba(255,255,255,.88);margin:0;line-height:1.5}.hero-v2 .hero-progress-area{position:relative;z-index:2}@media (max-width:640px){.hero-v2{padding:20px 18px}.hero-v2-row{gap:14px;margin-bottom:14px}.hero-v2-name{font-size:20px}.hero-v2-subtitle{font-size:12px}.hero-greeting{font-size:11.5px}}.vbna-avatar{position:relative;flex-shrink:0}.vbna-avatar-inner{top:50%;left:50%;transform:translate(-50%,-50%);width:calc(100% - 14px);height:calc(100% - 14px);color:white;font-weight:800;letter-spacing:.5px;box-shadow:inset 0 -3px 8px rgba(0,0,0,.15),0 2px 8px rgba(0,0,0,.2)}.vbna-avatar-inner,.vbna-avatar-level-badge{position:absolute;border-radius:50%;display:flex;align-items:center;justify-content:center}.vbna-avatar-level-badge{bottom:-4px;right:-4px;width:24px;height:24px;background:white;font-size:13px;box-shadow:0 2px 6px rgba(0,0,0,.2);border:2px solid white}.xp-level-card-v2{display:flex;align-items:center;gap:28px;padding:24px 28px}.xp-level-circular{flex-shrink:0}.xp-ring-emoji{font-size:30px;line-height:1}.xp-ring-level{font-size:14px;font-weight:800;margin-top:2px}.xp-level-info-v2{flex:1 1;min-width:0}.xp-level-title-v2{font-size:20px;font-weight:800;margin:0 0 4px;letter-spacing:-.01em}.xp-level-subtitle-v2{font-size:13px;color:var(--text-secondary);margin-bottom:12px}.xp-total-v2{display:inline-flex;align-items:baseline;gap:6px;padding:6px 14px;background:linear-gradient(135deg,#fff7ed,#fed7aa);border:1px solid rgba(245,158,11,.3);border-radius:999px;margin-bottom:10px}.xp-total-value-v2{font-size:18px;font-weight:800;color:#b45309;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.xp-total-label-v2{font-size:11px;font-weight:700;color:#92400e;letter-spacing:.06em}.xp-level-helper{font-size:12px;color:var(--text-muted)}@media (max-width:640px){.xp-level-card-v2{flex-direction:column;text-align:center;gap:16px;padding:20px}.xp-total-v2{margin:10px auto}}.stats-grid-v2{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat-v2{position:relative;padding:20px 18px;border-radius:var(--radius-lg);border:1px solid transparent;color:white;overflow:hidden;isolation:isolate;transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s ease}.stat-v2:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(0,0,0,.12)}.stat-v2 .stat-card-glow{position:absolute;inset:0;z-index:-1;opacity:.85;transition:opacity .25s ease}.stat-v2:hover .stat-card-glow{opacity:1}.stat-courses .stat-card-glow{background:linear-gradient(135deg,#b91c1c,#7f1d1d)}.stat-lessons .stat-card-glow{background:linear-gradient(135deg,#ef4444,#b91c1c)}.stat-progress .stat-card-glow{background:linear-gradient(135deg,#10b981,#059669)}.stat-streak .stat-card-glow{background:linear-gradient(135deg,#f59e0b,#ea580c)}.stat-v2:after{content:"";position:absolute;top:-40%;right:-30%;width:140px;height:140px;border-radius:50%;background:rgba(255,255,255,.12);filter:blur(20px);pointer-events:none;z-index:-1}.stat-icon-v2{width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,.18);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;color:white;margin-bottom:14px;box-shadow:0 4px 12px rgba(0,0,0,.1)}.stat-value-v2{font-size:30px;font-weight:800;line-height:1;margin-bottom:6px;text-shadow:0 2px 8px rgba(0,0,0,.15);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em}.stat-label-v2{font-size:12px;font-weight:600;color:rgba(255,255,255,.92);letter-spacing:.02em}@media (max-width:768px){.stats-grid-v2{grid-template-columns:repeat(2,1fr);gap:10px}.stat-v2{padding:16px}.stat-value-v2{font-size:24px}.stat-icon-v2{width:36px;height:36px;margin-bottom:10px}}.daily-insight-link{display:block;text-decoration:none;color:inherit}.daily-insight{display:flex;align-items:center;gap:16px;padding:16px 18px;border-radius:var(--radius-lg);border:1px solid;background:var(--bg-card);position:relative;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.daily-insight-link:hover .daily-insight{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.08)}.daily-insight:before{content:"";position:absolute;top:0;left:0;bottom:0;width:4px;border-radius:4px 0 0 4px}.daily-insight-icon{flex-shrink:0;width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:white;box-shadow:0 4px 12px rgba(0,0,0,.12)}.daily-insight-body{flex:1 1;min-width:0}.daily-insight-label{display:block;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}.daily-insight-title{font-size:14px;font-weight:600;color:var(--text);margin:0;line-height:1.5}.daily-insight-title strong{font-weight:800}.daily-insight-cta{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;margin-top:6px;font-weight:600}.insight-close{background:linear-gradient(135deg,#fff5f5,#ffe3e3);border-color:rgba(185,28,28,.3)}.insight-close:before{background:var(--primary)}.insight-close .daily-insight-icon{background:linear-gradient(135deg,#b91c1c,#7f1d1d)}.insight-close .daily-insight-cta,.insight-close .daily-insight-label{color:var(--primary)}.insight-streak{background:linear-gradient(135deg,#fff7ed,#ffedd5);border-color:rgba(245,158,11,.3)}.insight-streak:before{background:#f59e0b}.insight-streak .daily-insight-icon{background:linear-gradient(135deg,#f59e0b,#ea580c)}.insight-streak .daily-insight-cta,.insight-streak .daily-insight-label{color:#b45309}.insight-level{background:linear-gradient(135deg,#faf5ff,#f3e8ff);border-color:rgba(168,85,247,.3)}.insight-level:before{background:#a855f7}.insight-level .daily-insight-icon{background:linear-gradient(135deg,#a855f7,#7c3aed)}.insight-level .daily-insight-cta,.insight-level .daily-insight-label{color:#6b21a8}.insight-encourage{background:linear-gradient(135deg,#eff6ff,#dbeafe);border-color:rgba(59,130,246,.3)}.insight-encourage:before{background:#3b82f6}.insight-encourage .daily-insight-icon{background:linear-gradient(135deg,#3b82f6,#1d4ed8)}.insight-encourage .daily-insight-cta,.insight-encourage .daily-insight-label{color:#1e40af}html[data-theme=dark] .insight-close{background:linear-gradient(135deg,rgba(185,28,28,.1),rgba(127,29,29,.15))}html[data-theme=dark] .insight-streak{background:linear-gradient(135deg,rgba(245,158,11,.1),rgba(234,88,12,.15))}html[data-theme=dark] .insight-level{background:linear-gradient(135deg,rgba(168,85,247,.1),rgba(124,58,237,.15))}html[data-theme=dark] .insight-encourage{background:linear-gradient(135deg,rgba(59,130,246,.1),rgba(29,78,216,.15))}html[data-theme=dark] .daily-insight-title{color:var(--text)}@media (prefers-reduced-motion:reduce){.hero-blob,.hero-v2{animation:none}}.courses-hero{position:relative;overflow:hidden;padding:28px 32px 22px;background:radial-gradient(circle at 0 0,#b91c1c 0,transparent 50%),radial-gradient(circle at 100% 100%,#7f1d1d 0,transparent 55%),linear-gradient(135deg,#991b1b,#b91c1c 50%,#7f1d1d);color:white;border-radius:var(--radius-xl);box-shadow:0 14px 40px rgba(127,29,29,.3)}.courses-hero-decoration{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:inherit}.courses-hero-blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.25}.courses-hero-blob-1{top:-60px;right:-40px;width:240px;height:240px;background:#fbbf24;animation:heroBlobFloat 14s ease-in-out infinite}.courses-hero-blob-2{bottom:-80px;left:-50px;width:280px;height:280px;background:#fb7185;animation:heroBlobFloat 18s ease-in-out infinite reverse}.courses-hero-content{position:relative;z-index:2;display:flex;align-items:flex-start;gap:16px;margin-bottom:22px}.courses-hero-icon{width:52px;height:52px;border-radius:14px;background:rgba(255,255,255,.18);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 16px rgba(0,0,0,.15)}.courses-hero-title{font-size:24px;font-weight:800;margin:0 0 4px;letter-spacing:-.015em;text-shadow:0 2px 10px rgba(0,0,0,.15)}.courses-hero-subtitle{font-size:13px;color:rgba(255,255,255,.88);margin:0;line-height:1.5}.courses-hero-stats{position:relative;z-index:2;display:flex;align-items:stretch;gap:12px;padding:12px 16px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-lg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.courses-hero-stat{flex:1 1;text-align:center;min-width:0}.courses-hero-stat-value{font-size:22px;font-weight:800;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.1;margin-bottom:2px}.courses-hero-stat-label{font-size:11px;color:rgba(255,255,255,.85);font-weight:500;letter-spacing:.02em}.courses-hero-stat-divider{width:1px;background:rgba(255,255,255,.18)}@media (max-width:640px){.courses-hero{padding:20px 18px 16px}.courses-hero-content{gap:12px;margin-bottom:16px}.courses-hero-icon{width:44px;height:44px}.courses-hero-title{font-size:19px}.courses-hero-subtitle{font-size:12px}.courses-hero-stats{padding:10px 12px;gap:6px}.courses-hero-stat-value{font-size:17px}.courses-hero-stat-label{font-size:9.5px}.courses-hero-stat-divider{display:none}}.course-card-link{text-decoration:none;color:inherit;display:block}.course-card-v2{border-radius:var(--radius-lg);background:var(--bg-card);border:1px solid var(--border);overflow:hidden;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s ease;display:flex;flex-direction:column;height:100%}.course-card-v2:hover{transform:translateY(-6px);box-shadow:0 20px 40px rgba(185,28,28,.18)}.course-thumb-v2{position:relative;height:140px;display:flex;align-items:center;justify-content:center;overflow:hidden}.course-thumb-pattern{position:absolute;inset:0;background-image:radial-gradient(circle at 20% 30%,rgba(255,255,255,.15) 0,transparent 40%),radial-gradient(circle at 80% 70%,rgba(0,0,0,.15) 0,transparent 40%),repeating-linear-gradient(45deg,transparent,transparent 20px,rgba(255,255,255,.04) 0,rgba(255,255,255,.04) 22px);pointer-events:none}.course-thumb-emoji{font-size:56px;filter:drop-shadow(0 4px 12px rgba(0,0,0,.25));position:relative;z-index:1;transition:transform .3s cubic-bezier(.16,1,.3,1)}.course-card-v2:hover .course-thumb-emoji{transform:scale(1.15) rotate(-3deg)}.course-status-badge{position:absolute;top:12px;right:12px;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em;z-index:2;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 2px 8px rgba(0,0,0,.15)}.status-new{color:#3b82f6}.status-in-progress,.status-new{background:rgba(255,255,255,.92)}.status-in-progress{color:var(--primary)}.status-almost{background:linear-gradient(135deg,#f59e0b,#ea580c);color:white}.course-thumb-done-ribbon,.status-done{background:linear-gradient(135deg,#10b981,#059669);color:white}.course-thumb-done-ribbon{position:absolute;top:16px;left:-40px;width:160px;padding:4px 0;text-align:center;font-size:10px;font-weight:800;letter-spacing:.1em;transform:rotate(-35deg);box-shadow:0 2px 8px rgba(0,0,0,.2);z-index:2}.course-body-v2{padding:16px 18px 18px;display:flex;flex-direction:column;gap:8px;flex:1 1}.course-body-v2 h3{font-size:15px;font-weight:700;color:var(--text);line-height:1.35}.course-body-v2 h3,.course-body-v2 p{margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.course-body-v2 p{font-size:12.5px;color:var(--text-secondary);line-height:1.5}.progress-bar-v2{height:6px;background:var(--border-light);border-radius:999px;overflow:hidden}.progress-bar-v2 .progress-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:999px;transition:width .6s cubic-bezier(.16,1,.3,1)}.course-meta-v2{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--text-secondary);margin-top:auto;padding-top:4px}.course-meta-item{gap:3px;color:var(--text-muted)}.course-meta-cta,.course-meta-item{display:inline-flex;align-items:center}.course-meta-cta{margin-left:auto;gap:2px;color:var(--primary);font-weight:700;font-size:12px}.category-header-v2{display:flex;align-items:center;gap:14px;padding:14px 18px;background:linear-gradient(135deg,rgba(185,28,28,.06),rgba(185,28,28,.02));border:1px solid rgba(185,28,28,.15);border-radius:var(--radius-lg);margin-bottom:14px;position:relative;overflow:hidden}.category-header-v2:before{content:"";position:absolute;top:0;bottom:0;left:0;width:4px;background:linear-gradient(180deg,var(--primary),var(--accent))}.category-header-icon{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,#fff,#fff5f5);border:1px solid rgba(185,28,28,.15);display:flex;align-items:center;justify-content:center;font-size:26px;flex-shrink:0;box-shadow:0 4px 12px rgba(185,28,28,.08)}.category-header-text{flex:1 1;min-width:0}.category-header-text h2{font-size:18px;font-weight:800;color:var(--text);margin:0 0 2px;letter-spacing:-.01em}.category-header-text span{font-size:12.5px;color:var(--text-secondary);line-height:1.4}.category-header-count{padding:4px 12px;background:rgba(185,28,28,.08);color:var(--primary);border-radius:999px;font-size:12px;font-weight:700;flex-shrink:0}.filter-bar-v2{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px;box-shadow:var(--shadow-sm)}.chip-v2{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;border-radius:999px;font-size:12.5px;font-weight:600;background:var(--bg-muted);color:var(--text-secondary);border:1px solid var(--border-light);cursor:pointer;transition:all .2s ease}.chip-v2:hover{border-color:var(--primary);color:var(--primary)}.chip-v2.chip-active{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:white;border-color:transparent;box-shadow:0 4px 12px rgba(185,28,28,.25)}.chip-emoji{font-size:13px;line-height:1}.results-strip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;background:linear-gradient(135deg,#fff5f5,#ffe3e3);border:1px solid rgba(185,28,28,.2);border-radius:999px;font-size:12.5px;color:var(--text-secondary);align-self:flex-start}.results-strip strong{color:var(--primary);font-weight:700}.results-strip-clear{margin-left:6px;padding:2px 10px;background:var(--primary);color:white;font-size:11px;font-weight:600;border-radius:999px;cursor:pointer}.results-strip-clear:hover{background:var(--primary-dark)}.empty-state-v2{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:48px 24px;background:linear-gradient(180deg,#fff5f5 0,var(--bg-card) 100%);border:1px dashed rgba(185,28,28,.25);border-radius:var(--radius-lg)}.empty-state-illustration{position:relative;width:100px;height:100px;margin-bottom:16px}.empty-state-bg{inset:0;font-size:80px;opacity:.25;animation:emptyFloat 4s ease-in-out infinite}.empty-state-bg,.empty-state-search{position:absolute;display:flex;align-items:center;justify-content:center}.empty-state-search{bottom:0;right:0;width:44px;height:44px;border-radius:50%;background:white;color:var(--primary);box-shadow:0 6px 16px rgba(0,0,0,.1);border:2px solid white}@keyframes emptyFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.empty-state-title{font-size:16px;font-weight:700;color:var(--text);margin:0 0 6px}.empty-state-text{font-size:13px;color:var(--text-secondary);margin:0;max-width:360px;line-height:1.5}html[data-theme=dark] .category-header-v2{background:linear-gradient(135deg,rgba(220,38,38,.08),rgba(220,38,38,.02));border-color:rgba(220,38,38,.2)}html[data-theme=dark] .category-header-icon{background:linear-gradient(135deg,var(--bg-muted),rgba(220,38,38,.1))}html[data-theme=dark] .results-strip{background:linear-gradient(135deg,rgba(220,38,38,.08),rgba(220,38,38,.12))}html[data-theme=dark] .empty-state-v2{background:linear-gradient(180deg,rgba(220,38,38,.05) 0,var(--bg-card) 100%)}.progress-hero{position:relative;overflow:hidden;padding:26px 28px 22px;background:radial-gradient(circle at 0 0,#b91c1c 0,transparent 50%),radial-gradient(circle at 100% 100%,#7f1d1d 0,transparent 55%),linear-gradient(135deg,#991b1b,#b91c1c 50%,#7f1d1d);color:white;border-radius:var(--radius-xl);box-shadow:0 14px 40px rgba(127,29,29,.3)}.progress-hero-decoration{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:inherit}.progress-hero-blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.22}.progress-hero-blob-1{top:-50px;right:-30px;width:220px;height:220px;background:#fbbf24;animation:heroBlobFloat 14s ease-in-out infinite}.progress-hero-blob-2{bottom:-70px;left:-40px;width:250px;height:250px;background:#fb7185;animation:heroBlobFloat 18s ease-in-out infinite reverse}.progress-hero-row{position:relative;z-index:2;display:flex;align-items:center;gap:24px;margin-bottom:18px}.progress-hero-ring{flex-shrink:0}.progress-hero-ring-pct{font-size:28px;font-weight:800;letter-spacing:-.02em;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.progress-hero-ring-pct small{font-size:14px;font-weight:700;margin-left:1px;opacity:.8}.progress-hero-ring-label{font-size:10px;font-weight:600;margin-top:4px;letter-spacing:.06em;text-transform:uppercase;opacity:.85}.progress-hero-content{flex:1 1;min-width:0}.progress-hero-eyebrow{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:rgba(255,255,255,.18);padding:4px 10px;border-radius:999px;margin-bottom:10px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.progress-hero-title{font-size:20px;font-weight:800;margin:0 0 6px;line-height:1.3;letter-spacing:-.01em;text-shadow:0 2px 10px rgba(0,0,0,.15)}.progress-hero-subtitle{font-size:13px;color:rgba(255,255,255,.88);margin:0}.progress-hero-stats{position:relative;z-index:2;display:flex;align-items:center;gap:14px;padding:12px 18px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-lg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.progress-hero-stat{flex:1 1;display:flex;align-items:center;gap:10px;min-width:0}.progress-hero-stat svg{opacity:.7;flex-shrink:0}.progress-hero-stat-value{font-size:16px;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.01em;line-height:1.1}.progress-hero-stat-label{font-size:10.5px;color:rgba(255,255,255,.85);font-weight:500;letter-spacing:.02em}.progress-hero-stat-divider{width:1px;height:32px;background:rgba(255,255,255,.18);flex-shrink:0}@media (max-width:640px){.progress-hero{padding:18px 16px}.progress-hero-row{gap:16px;margin-bottom:14px}.progress-hero-ring>div{transform:scale(.85)}.progress-hero-title{font-size:15px}.progress-hero-subtitle{font-size:11.5px}.progress-hero-stats{padding:10px 12px;gap:8px}.progress-hero-stat-value{font-size:13.5px}.progress-hero-stat-label{font-size:9px}.progress-hero-stat-divider{display:none}}.progress-filter{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.chip-count{margin-left:4px;padding:1px 7px;background:rgba(0,0,0,.08);color:inherit;border-radius:999px;font-size:11px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chip-v2.chip-active .chip-count{background:rgba(255,255,255,.25);color:white}.progress-card{display:flex;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.progress-card:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(0,0,0,.08)}.progress-card-bar{width:5px;flex-shrink:0}.progress-card-inner{flex:1 1;padding:16px 18px;min-width:0}.progress-card-row{display:flex;align-items:center;gap:14px;margin-bottom:12px}.progress-card-thumb{flex-shrink:0;width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:28px;box-shadow:0 4px 14px rgba(0,0,0,.12)}.progress-card-main{flex:1 1;min-width:0}.progress-card-title-link{display:block;color:inherit;text-decoration:none;min-height:44px;padding:6px 0}.progress-card-title-link:hover h3{color:var(--primary)}.progress-card-main h3{font-size:15px;font-weight:700;color:var(--text);margin:0 0 6px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;transition:color .15s ease}.progress-card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11.5px;color:var(--text-muted)}.progress-card-cat{color:var(--text-secondary)}.progress-card-activity{display:inline-flex;align-items:center;gap:3px}.progress-status-pill{padding:2px 9px;border-radius:999px;font-size:10.5px;font-weight:700;letter-spacing:.02em}.status-not-started.progress-status-pill{background:#f1f5f9;color:#475569}.status-in-progress.progress-status-pill{background:#fee2e2;color:var(--primary)}.status-almost.progress-status-pill{background:#ffedd5;color:#c2410c}.status-done.progress-status-pill{background:#d1fae5;color:#065f46}.progress-card-pct{flex-shrink:0}.progress-card-pct-value{font-size:12px;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1}.progress-card-bar-row{margin-bottom:12px}.progress-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.progress-card-counts{font-size:12.5px;color:var(--text-secondary)}.progress-card-counts strong{color:var(--text);font-weight:700}.progress-card-actions{display:flex;align-items:center;gap:8px}.progress-continue-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 14px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:white;font-size:12px;font-weight:700;border-radius:999px;text-decoration:none;box-shadow:0 2px 8px rgba(185,28,28,.25);transition:transform .15s ease,box-shadow .15s ease}.progress-continue-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(185,28,28,.35)}.progress-continue-start{background:linear-gradient(135deg,#3b82f6,#1d4ed8);box-shadow:0 2px 8px rgba(59,130,246,.25)}.progress-continue-start:hover{box-shadow:0 4px 12px rgba(59,130,246,.35)}.progress-continue-review{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 2px 8px rgba(16,185,129,.25)}.progress-continue-review:hover{box-shadow:0 4px 12px rgba(16,185,129,.35)}.progress-expand-btn{width:44px;height:44px;min-width:44px;min-height:44px;border-radius:50%;background:var(--bg-muted);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease,transform .25s cubic-bezier(.16,1,.3,1)}.progress-expand-btn:hover{background:var(--primary-50);color:var(--primary)}.progress-expand-btn.expanded{background:var(--primary);color:white;transform:rotate(180deg)}.progress-lessons{list-style:none;padding:14px 0 0;margin:12px 0 0;border-top:1px dashed var(--border-light);display:flex;flex-direction:column;gap:2px;animation:progressLessonsSlide .3s ease both}@keyframes progressLessonsSlide{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.progress-lesson-row{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:8px;font-size:13px;color:var(--text-muted);transition:background .15s ease}.progress-lesson-row:hover{background:var(--bg-muted)}.progress-lesson-row.done{color:var(--text)}.progress-lesson-icon{color:var(--text-muted);display:flex;align-items:center}.progress-lesson-row.done .progress-lesson-icon{color:#10b981}.progress-lesson-num{font-size:11px;font-weight:700;color:var(--text-muted);flex-shrink:0;min-width:22px}.progress-lesson-title{flex:1 1;font-weight:500;line-height:1.35;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.progress-lesson-meta{font-size:10.5px;color:var(--text-muted);flex-shrink:0}@media (max-width:600px){.progress-card-inner{padding:14px}.progress-card-row{gap:10px}.progress-card-thumb{width:44px;height:44px;font-size:22px}.progress-card-main h3{font-size:13.5px}.progress-card-meta{font-size:10.5px;gap:6px}.progress-status-pill{font-size:9.5px;padding:2px 7px}.progress-card-pct>div{transform:scale(.85)}.progress-continue-btn{padding:5px 10px;font-size:11.5px}.progress-card-counts{font-size:11.5px}}html[data-theme=dark] .status-not-started.progress-status-pill{background:rgba(255,255,255,.06);color:#94a3b8}html[data-theme=dark] .status-in-progress.progress-status-pill{background:rgba(220,38,38,.15);color:#fca5a5}html[data-theme=dark] .status-almost.progress-status-pill{background:rgba(234,88,12,.15);color:#fdba74}html[data-theme=dark] .status-done.progress-status-pill{background:rgba(16,185,129,.15);color:#6ee7b7}.cert-hero{position:relative;overflow:hidden;padding:26px 28px;background:radial-gradient(circle at 0 0,#b91c1c 0,transparent 50%),radial-gradient(circle at 100% 100%,#7f1d1d 0,transparent 55%),linear-gradient(135deg,#991b1b,#b91c1c 50%,#7f1d1d);color:white;border-radius:var(--radius-xl);box-shadow:0 14px 40px rgba(127,29,29,.3)}.cert-hero-decoration{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:inherit}.cert-hero-blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.22}.cert-hero-blob-1{top:-50px;right:-40px;width:240px;height:240px;background:#fbbf24;animation:heroBlobFloat 14s ease-in-out infinite}.cert-hero-blob-2{bottom:-70px;left:-50px;width:280px;height:280px;background:#fb7185;animation:heroBlobFloat 18s ease-in-out infinite reverse}.cert-hero-medal{position:absolute;opacity:.18;filter:drop-shadow(0 4px 8px rgba(0,0,0,.2));animation:certMedalFloat 6s ease-in-out infinite}.cert-hero-medal-1{top:16px;right:32px;font-size:56px;animation-delay:0s}.cert-hero-medal-2{top:50%;right:18%;font-size:44px;animation-delay:-2s}.cert-hero-medal-3{bottom:18px;right:40%;font-size:36px;animation-delay:-4s}@keyframes certMedalFloat{0%,to{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-10px) rotate(6deg)}}.cert-hero-content{position:relative;z-index:2;display:flex;align-items:flex-start;gap:16px}.cert-hero-icon-box{width:56px;height:56px;border-radius:16px;background:linear-gradient(135deg,rgba(255,255,255,.25),rgba(255,255,255,.08));border:1px solid rgba(255,255,255,.25);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 16px rgba(0,0,0,.15)}.cert-hero-eyebrow{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:rgba(255,255,255,.18);padding:4px 10px;border-radius:999px;margin-bottom:8px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.cert-hero-title{font-size:24px;font-weight:800;margin:0 0 4px;letter-spacing:-.015em;text-shadow:0 2px 12px rgba(0,0,0,.15);line-height:1.2}.cert-hero-subtitle{font-size:13.5px;color:rgba(255,255,255,.88);margin:0;line-height:1.5;max-width:540px}@media (max-width:640px){.cert-hero{padding:20px 18px}.cert-hero-icon-box{width:44px;height:44px}.cert-hero-title{font-size:19px}.cert-hero-subtitle{font-size:12px}.cert-hero-medal-1{font-size:40px}.cert-hero-medal-2,.cert-hero-medal-3{display:none}}.cert-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.cert-stat{position:relative;padding:20px 18px;border-radius:var(--radius-lg);border:1px solid transparent;color:white;overflow:hidden;isolation:isolate;transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s ease}.cert-stat:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(0,0,0,.12)}.cert-stat:after{content:"";position:absolute;top:-40%;right:-30%;width:140px;height:140px;border-radius:50%;background:rgba(255,255,255,.12);filter:blur(20px);pointer-events:none;z-index:-1}.cert-stat-gold{background:linear-gradient(135deg,#f59e0b,#d97706)}.cert-stat-red{background:linear-gradient(135deg,#b91c1c,#7f1d1d)}.cert-stat-green{background:linear-gradient(135deg,#10b981,#059669)}.cert-stat-icon{width:42px;height:42px;border-radius:12px;background:rgba(255,255,255,.18);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;color:white;margin-bottom:12px;box-shadow:0 4px 12px rgba(0,0,0,.1)}.cert-stat-value{font-size:28px;font-weight:800;line-height:1;margin-bottom:4px;text-shadow:0 2px 8px rgba(0,0,0,.15);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em}.cert-stat-label{font-size:12px;font-weight:600;color:rgba(255,255,255,.92);letter-spacing:.02em}@media (max-width:640px){.cert-stats-grid{grid-template-columns:1fr;gap:10px}.cert-stat{padding:16px}.cert-stat-value{font-size:24px}}.cert-list{display:flex;flex-direction:column;gap:16px}.cert-list-item{display:flex;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;position:relative;transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s ease}.cert-list-item:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(185,28,28,.12)}.cert-list-item:before{content:"";position:absolute;top:0;left:0;bottom:0;width:5px;background:linear-gradient(180deg,#f59e0b,#d97706,#b45309)}.cert-list-item-seal{flex-shrink:0;width:130px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:radial-gradient(circle at 50% 30%,rgba(245,158,11,.12) 0,transparent 70%),linear-gradient(180deg,#fff7ed,#ffedd5);border-right:1px dashed rgba(245,158,11,.3);padding:20px 14px;position:relative}.cert-list-item-seal:before{content:"🏆";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:80px;opacity:.1;z-index:0}.cert-list-item-trophy{font-size:44px;position:relative;z-index:1;filter:drop-shadow(0 4px 10px rgba(245,158,11,.35));transition:transform .3s cubic-bezier(.16,1,.3,1)}.cert-list-item:hover .cert-list-item-trophy{transform:scale(1.1) rotate(-5deg)}.cert-list-item-badge{position:relative;z-index:1;font-size:9.5px;font-weight:800;letter-spacing:.1em;color:#b45309;text-transform:uppercase;padding:3px 10px;background:white;border:1px solid rgba(245,158,11,.4);border-radius:999px}.cert-list-item-body{flex:1 1;padding:20px 22px;display:flex;flex-direction:column;gap:14px;min-width:0}.cert-list-item-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.cert-list-item-title{font-size:17px;font-weight:800;color:var(--text);margin:0 0 6px;line-height:1.3;letter-spacing:-.01em}.cert-list-item-cat{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--text-muted);margin:0}.cert-list-item-score{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;padding:8px 14px;background:linear-gradient(135deg,#d1fae5,#a7f3d0);border:1px solid rgba(16,185,129,.3);border-radius:12px}.cert-list-item-score-value{font-size:22px;font-weight:800;color:#047857;line-height:1}.cert-list-item-score-value small{font-size:12px;font-weight:700;margin-left:1px}.cert-list-item-score-label{font-size:10.5px;color:#065f46;font-weight:600;margin-top:2px}.cert-list-item-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.cert-detail{gap:10px;padding:10px 14px;background:linear-gradient(135deg,#fff5f5 0,var(--bg-card) 100%);border:1px solid var(--border-light);border-radius:10px}.cert-detail,.cert-detail-icon{display:flex;align-items:center}.cert-detail-icon{width:28px;height:28px;border-radius:8px;background:rgba(185,28,28,.08);color:var(--primary);justify-content:center;flex-shrink:0}.cert-detail-label{font-size:10.5px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600;margin-bottom:2px}.cert-detail-value{font-size:13px;font-weight:700;color:var(--text)}.cert-detail-value.mono{font-family:ui-monospace,Cascadia Code,monospace;font-size:12px;letter-spacing:.5px;color:var(--primary)}.cert-list-item-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;align-items:center;margin-top:auto;padding-top:4px}.cert-list-item-view{display:inline-flex;align-items:center;gap:6px}@media (max-width:720px){.cert-list-item{flex-direction:column}.cert-list-item:before{width:100%;height:4px;bottom:auto}.cert-list-item-seal{width:100%;flex-direction:row;padding:14px 18px;border-right:none;border-bottom:1px dashed rgba(245,158,11,.3);justify-content:flex-start}.cert-list-item-trophy{font-size:34px}.cert-list-item-seal:before{display:none}.cert-list-item-body{padding:16px 18px}.cert-list-item-header{flex-direction:column;gap:10px}.cert-list-item-score{align-self:flex-start}.cert-list-item-title{font-size:15px}}html[data-theme=dark] .cert-list-item-seal{background:radial-gradient(circle at 50% 30%,rgba(245,158,11,.12) 0,transparent 70%),linear-gradient(180deg,rgba(245,158,11,.08),rgba(180,83,9,.08))}html[data-theme=dark] .cert-list-item-badge{background:var(--bg-muted);color:#fbbf24}html[data-theme=dark] .cert-detail{background:linear-gradient(135deg,rgba(220,38,38,.05) 0,var(--bg-card) 100%)}html[data-theme=dark] .cert-list-item-score{background:linear-gradient(135deg,rgba(16,185,129,.18),rgba(5,150,105,.18));border-color:rgba(16,185,129,.35)}html[data-theme=dark] .cert-list-item-score-value{color:#6ee7b7}html[data-theme=dark] .cert-list-item-score-label{color:#34d399}.lesson-toc-fab{position:fixed;bottom:calc(72px + env(safe-area-inset-bottom, 0px));left:12px;display:none;align-items:center;gap:6px;padding:10px 14px;border-radius:999px;background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow-md);color:var(--primary);font-weight:700;font-size:12px;z-index:70;transition:transform .15s ease}.lesson-toc-fab:active{transform:scale(.95)}.lesson-toc-fab-pct{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text-secondary);font-size:11px}.lesson-toc-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.5);z-index:89;animation:noteOverlayIn .25s ease both}.lesson-toc-sheet-close{position:absolute;top:14px;right:12px;width:32px;height:32px;border-radius:8px;background:var(--bg-muted);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;z-index:3;transition:background .15s ease}.lesson-toc-sheet-close:hover{background:var(--primary-50);color:var(--primary)}@media (max-width:768px){.lesson-toc-fab{display:inline-flex}}@media (min-width:769px){.lesson-toc-backdrop,.lesson-toc-sheet-close{display:none}}.lb-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:80px 24px;background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border)}.lb-loading p{color:var(--text-muted);font-size:13px;margin:0}.lb-hero{position:relative;overflow:hidden;padding:28px 32px 22px;background:radial-gradient(circle at 0 0,#b91c1c 0,transparent 50%),radial-gradient(circle at 100% 100%,#7f1d1d 0,transparent 55%),linear-gradient(135deg,#991b1b,#b91c1c 50%,#7f1d1d);color:white;border-radius:var(--radius-xl);box-shadow:0 14px 40px rgba(127,29,29,.3)}.lb-hero-decoration{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:inherit}.lb-hero-blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.22}.lb-hero-blob-1{top:-50px;right:-40px;width:240px;height:240px;background:#fbbf24;animation:heroBlobFloat 14s ease-in-out infinite}.lb-hero-blob-2{bottom:-70px;left:-50px;width:280px;height:280px;background:#fb7185;animation:heroBlobFloat 18s ease-in-out infinite reverse}.lb-hero-trophy{position:absolute;top:50%;right:6%;transform:translateY(-50%) rotate(-10deg);color:rgba(255,255,255,.08);filter:drop-shadow(0 8px 16px rgba(0,0,0,.15))}.lb-hero-content{position:relative;z-index:2;margin-bottom:18px}.lb-hero-eyebrow{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:rgba(255,255,255,.18);padding:4px 10px;border-radius:999px;margin-bottom:8px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.lb-hero-title{font-size:26px;font-weight:800;margin:0 0 4px;letter-spacing:-.015em;text-shadow:0 2px 12px rgba(0,0,0,.15)}.lb-hero-subtitle{font-size:13.5px;color:rgba(255,255,255,.88);margin:0;max-width:600px}.lb-hero-stats{position:relative;z-index:2;display:flex;gap:16px;padding:14px 18px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.lb-hero-stat{flex:1 1;display:flex;align-items:center;gap:10px;min-width:0}.lb-hero-stat svg{opacity:.75;flex-shrink:0}.lb-hero-stat-value{font-size:18px;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.01em;line-height:1.1}.lb-hero-stat-label{font-size:10.5px;color:rgba(255,255,255,.85);font-weight:500}.lb-hero-stat-divider{width:1px;background:rgba(255,255,255,.2)}@media (max-width:640px){.lb-hero{padding:20px 18px}.lb-hero-title{font-size:19px}.lb-hero-subtitle{font-size:12px}.lb-hero-trophy{display:none}.lb-hero-stats{padding:10px 12px;gap:8px}.lb-hero-stat-value{font-size:14px}.lb-hero-stat-label{font-size:9px}.lb-hero-stat-divider{display:none}}.lb-podium-v2{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:14px;align-items:end;margin-top:10px}.lb-podium-empty{visibility:hidden}.lb-podium-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;padding:22px 14px 18px;border-radius:var(--radius-lg);background:var(--bg-card);border:1px solid var(--border);text-align:center;box-shadow:var(--shadow-sm);transition:transform .2s ease,box-shadow .2s ease}.lb-podium-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.lb-podium-1{background:linear-gradient(180deg,#fffbeb,#fef3c7 80%,#fde68a);border:2px solid #f59e0b;padding-top:38px;transform:translateY(-20px);box-shadow:0 12px 40px rgba(245,158,11,.3);position:relative}.lb-podium-1:hover{transform:translateY(-23px)}.lb-podium-2{background:linear-gradient(180deg,#f8fafc,#f1f5f9);border:2px solid #94a3b8}.lb-podium-3{background:linear-gradient(180deg,#fff7ed,#ffedd5);border:2px solid #ea580c}.lb-podium-card.is-me{outline:3px solid var(--primary);outline-offset:2px}.lb-podium-crown{position:absolute;top:-20px;left:50%;transform:translateX(-50%);width:52px;height:52px;background:linear-gradient(135deg,#fcd34d,#d97706);border-radius:50%;display:flex;align-items:center;justify-content:center;color:white;box-shadow:0 8px 20px rgba(217,119,6,.5);animation:lbCrownFloat 2.4s ease-in-out infinite;z-index:3}@keyframes lbCrownFloat{0%,to{transform:translateX(-50%) translateY(0) rotate(-4deg)}50%{transform:translateX(-50%) translateY(-6px) rotate(4deg)}}.lb-podium-rank{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:800;letter-spacing:.5px;padding:3px 10px;border-radius:999px;background:rgba(0,0,0,.06);color:var(--text-secondary)}.lb-podium-1 .lb-podium-rank{background:linear-gradient(135deg,#f59e0b,#d97706);color:white}.lb-podium-2 .lb-podium-rank{background:linear-gradient(135deg,#94a3b8,#64748b);color:white}.lb-podium-3 .lb-podium-rank{background:linear-gradient(135deg,#ea580c,#c2410c);color:white}.lb-podium-avatar{margin:2px 0 4px}.lb-podium-name{font-size:14.5px;font-weight:800;margin:0;color:var(--text);letter-spacing:-.005em;line-height:1.25;max-width:100%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lb-podium-1 .lb-podium-name{font-size:16px;color:#7f1d1d}.lb-podium-chapter{font-size:11px;color:var(--text-muted);margin-top:-3px}.lb-podium-xp{display:inline-flex;align-items:baseline;gap:5px;font-size:17px;font-weight:800;color:var(--primary);margin-top:4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lb-podium-1 .lb-podium-xp{font-size:21px;color:#b45309}.lb-podium-xp small{font-size:11px;font-weight:700;letter-spacing:.05em;opacity:.85}.lb-podium-xp svg{color:#f59e0b}.lb-podium-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:center;font-size:11px;margin-top:4px}.lb-podium-streak{display:inline-flex;align-items:center;gap:3px;color:#ea580c;font-weight:700;padding:1px 8px;background:#fff7ed;border-radius:999px;border:1px solid #fed7aa}@media (max-width:640px){.lb-podium-v2{gap:8px}.lb-podium-card{padding:16px 8px 12px;gap:5px}.lb-podium-1{padding-top:30px;transform:translateY(-12px)}.lb-podium-name{font-size:11.5px}.lb-podium-1 .lb-podium-name{font-size:12.5px}.lb-podium-xp{font-size:14px}.lb-podium-1 .lb-podium-xp{font-size:16px}.lb-podium-chapter{display:none}.lb-podium-crown{width:40px;height:40px;top:-15px}}.lb-filter{gap:10px;flex-wrap:wrap}.lb-filter,.lb-search{display:flex;align-items:center}.lb-search{flex:1 1;min-width:200px;gap:8px;padding:0 12px;height:42px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s ease,box-shadow .15s ease}.lb-search:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px rgba(185,28,28,.08)}.lb-search input{flex:1 1;border:none;outline:none;background:transparent;font-size:13.5px;color:var(--text);font-family:inherit}.lb-search-clear{width:22px;height:22px;border-radius:50%;background:var(--bg-muted);display:flex;align-items:center;justify-content:center;color:var(--text-muted);cursor:pointer}.lb-search-clear:hover{background:var(--primary-50);color:var(--primary)}.lb-chapter-select{padding:0 14px;background:var(--bg-card);border:1px solid var(--border);font-size:13px;color:var(--text);font-family:inherit}.lb-chapter-select,.lb-clear-all{height:42px;border-radius:var(--radius);cursor:pointer}.lb-clear-all{padding:0 16px;background:var(--primary);color:white;font-size:12.5px;font-weight:700}.lb-list{display:flex;flex-direction:column;gap:8px}.lb-row{display:grid;grid-template-columns:60px auto 1fr auto;align-items:center;gap:14px;padding:12px 16px;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.lb-row:hover{transform:translateY(-1px);border-color:rgba(185,28,28,.25);box-shadow:0 6px 16px rgba(185,28,28,.08)}.lb-row.is-me{background:linear-gradient(90deg,var(--primary-50),var(--bg-card));border-left:4px solid;border-color:rgba(185,28,28,.25)}.lb-row-rank{font-size:17px;font-weight:800;color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:center}.lb-row.is-me .lb-row-rank{color:var(--primary)}.lb-row-avatar{flex-shrink:0}.lb-row-main{min-width:0;display:flex;flex-direction:column;gap:4px}.lb-row-name{font-size:14px;font-weight:700;color:var(--text);display:inline-flex;align-items:center;gap:8px}.lb-you{display:inline-block;font-size:9.5px;font-weight:800;letter-spacing:.08em;padding:2px 7px;background:var(--primary);color:white;border-radius:999px}.lb-row-meta{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--text-muted);flex-wrap:wrap}.lb-dot{opacity:.5}.lb-row-chapter{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}.lb-row-xpbar{width:100%;height:4px;background:var(--border-light);border-radius:999px;overflow:hidden;margin-top:2px}.lb-row-xpfill{height:100%;background:var(--primary);border-radius:999px;transition:width .6s cubic-bezier(.16,1,.3,1)}.lb-row-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right}.lb-row-xp{font-size:15px;font-weight:800;color:var(--primary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;display:inline-flex;align-items:baseline;gap:3px}.lb-row-xp small{font-size:10px;font-weight:700;letter-spacing:.05em;opacity:.7}.lb-row-streak{display:inline-flex;align-items:center;gap:3px;font-size:10.5px;color:#ea580c;font-weight:700;padding:1px 7px;background:#fff7ed;border-radius:999px;border:1px solid #fed7aa}@media (max-width:640px){.lb-row{grid-template-columns:36px auto 1fr auto;gap:10px;padding:10px 12px}.lb-row-rank{font-size:14px}.lb-row-name{font-size:12.5px}.lb-row-meta{font-size:10px}.lb-row-xp{font-size:13px}}.lb-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:50px 20px;background:var(--bg-card);border:1px dashed var(--border);border-radius:var(--radius-lg)}.lb-empty p{color:var(--text-muted);font-size:13px;margin:0}.lb-sticky-me{position:sticky;bottom:16px;display:flex;align-items:center;gap:12px;padding:12px 16px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:white;border-radius:var(--radius-lg);box-shadow:0 16px 40px rgba(185,28,28,.4);z-index:30;animation:stickySlideUp .4s cubic-bezier(.16,1,.3,1) both}@keyframes stickySlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.lb-sticky-rank{font-size:22px;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;width:50px;text-align:center}.lb-sticky-avatar{flex-shrink:0}.lb-sticky-main{flex:1 1;min-width:0}.lb-sticky-label{font-size:10px;font-weight:700;letter-spacing:.08em;opacity:.85;text-transform:uppercase}.lb-sticky-name{font-size:14px;font-weight:700;margin-top:1px}.lb-sticky-xp{display:inline-flex;align-items:baseline;gap:4px;font-size:18px;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lb-sticky-xp small{font-size:11px;font-weight:700;opacity:.85}.lb-sticky-xp svg{color:#fbbf24}html[data-theme=dark] .lb-podium-1{background:linear-gradient(180deg,rgba(245,158,11,.15),rgba(217,119,6,.18))}html[data-theme=dark] .lb-podium-2{background:linear-gradient(180deg,rgba(148,163,184,.1),rgba(100,116,139,.13))}html[data-theme=dark] .lb-podium-3{background:linear-gradient(180deg,rgba(234,88,12,.12),rgba(194,65,12,.15))}html[data-theme=dark] .lb-row.is-me{background:linear-gradient(90deg,rgba(185,28,28,.15),var(--bg-card))}html[data-theme=dark] .lb-podium-streak,html[data-theme=dark] .lb-row-streak{background:rgba(234,88,12,.15);color:#fdba74;border-color:rgba(234,88,12,.35)}.st-hero{position:relative;overflow:hidden;padding:28px 32px;background:radial-gradient(circle at 0 0,#b91c1c 0,transparent 50%),radial-gradient(circle at 100% 100%,#7f1d1d 0,transparent 55%),linear-gradient(135deg,#991b1b,#b91c1c 50%,#7f1d1d);color:white;border-radius:var(--radius-xl);box-shadow:0 14px 40px rgba(127,29,29,.3)}.st-hero-decoration{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:inherit}.st-hero-blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.22}.st-hero-blob-1{top:-50px;right:-40px;width:240px;height:240px;background:#fbbf24;animation:heroBlobFloat 14s ease-in-out infinite}.st-hero-blob-2{bottom:-70px;left:-50px;width:280px;height:280px;background:#fb7185;animation:heroBlobFloat 18s ease-in-out infinite reverse}.st-hero-content{position:relative;z-index:2;display:flex;align-items:center;gap:20px}.st-hero-main{flex:1 1;min-width:0}.st-hero-eyebrow{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:rgba(255,255,255,.18);padding:4px 10px;border-radius:999px;margin-bottom:8px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.st-hero-name{font-size:26px;font-weight:800;margin:0 0 10px;letter-spacing:-.015em;text-shadow:0 2px 12px rgba(0,0,0,.15);line-height:1.15}.st-hero-meta{display:flex;flex-wrap:wrap;gap:7px}.st-hero-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;font-size:11.5px;font-weight:600;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.2);border-radius:999px;color:rgba(255,255,255,.95);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}@media (max-width:640px){.st-hero{padding:20px 18px}.st-hero-content{gap:14px}.st-hero-name{font-size:19px}.st-hero-badge{font-size:10.5px;padding:3px 8px}}.st-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width:800px){.st-grid{grid-template-columns:1fr}}.st-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 22px;box-shadow:var(--shadow-sm)}.st-card-header{gap:10px;margin-bottom:14px}.st-card-header,.st-card-icon{display:flex;align-items:center}.st-card-icon{width:36px;height:36px;border-radius:10px;justify-content:center;color:white;box-shadow:0 4px 12px rgba(0,0,0,.08)}.st-card-title{font-size:15px;font-weight:700;color:var(--text);margin:0;letter-spacing:-.005em}.st-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}.st-list li{display:grid;grid-template-columns:26px auto 1fr;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--border-light);font-size:13px}.st-list li:last-child{border-bottom:none}.st-li-icon{width:26px;height:26px;border-radius:7px;background:var(--bg-muted);color:var(--text-muted);display:flex;align-items:center;justify-content:center}.st-li-label{color:var(--text-muted);font-size:12.5px}.st-li-value{text-align:right;font-weight:600;color:var(--text);word-break:break-word;font-size:13px}.st-li-value.mono{font-family:ui-monospace,SF Mono,monospace;color:var(--primary);letter-spacing:.5px}.st-hint{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--text-muted);margin:12px 0 0;font-style:italic}.st-toggles{display:flex;flex-direction:column;gap:4px}.st-toggle{display:flex;align-items:center;gap:14px;padding:12px;width:100%;background:transparent;border:1px solid transparent;border-radius:var(--radius);cursor:pointer;text-align:left;transition:background .15s ease,border-color .15s ease}.st-toggle:hover{background:var(--bg-muted);border-color:var(--border-light)}.st-toggle-icon{width:36px;height:36px;border-radius:50%;background:var(--bg-muted);color:var(--primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.st-toggle-text{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.st-toggle-label{font-size:13.5px;font-weight:700;color:var(--text)}.st-toggle-desc{font-size:11.5px;color:var(--text-muted)}.st-switch{width:42px;height:24px;border-radius:999px;background:var(--border);position:relative;flex-shrink:0;transition:background .2s ease}.st-switch span{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:white;box-shadow:0 2px 4px rgba(0,0,0,.2);transition:transform .25s cubic-bezier(.16,1,.3,1)}.st-switch.on{background:linear-gradient(135deg,var(--primary),var(--primary-dark))}.st-switch.on span{transform:translateX(18px)}.st-actions{display:flex;flex-direction:column;gap:6px}.st-action{display:flex;align-items:center;gap:12px;padding:12px;background:transparent;border:1px solid var(--border-light);border-radius:var(--radius);cursor:pointer;text-align:left;transition:background .15s ease,border-color .15s ease}.st-action:hover{background:var(--bg-muted);border-color:var(--primary)}.st-action.confirm{background:linear-gradient(135deg,rgba(220,38,38,.08),rgba(185,28,28,.12));border-color:var(--primary)}.st-action-icon{width:36px;height:36px;border-radius:50%;background:var(--bg-muted);color:var(--primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.st-action-text{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.st-action-label{font-size:13.5px;font-weight:700;color:var(--text)}.st-action-desc{font-size:11.5px;color:var(--text-muted)}.st-about{font-size:13.5px;color:var(--text-secondary);line-height:1.6;margin:0 0 14px}.st-about strong{color:var(--primary)}.st-logout-wrap{display:flex;justify-content:center;padding:20px 0 8px}.st-logout{display:inline-flex;align-items:center;gap:8px;padding:13px 32px;background:transparent;color:var(--primary);font-size:13.5px;font-weight:700;letter-spacing:.5px;border:2px solid var(--primary);border-radius:999px;cursor:pointer;transition:all .2s ease}.st-logout:hover{background:var(--primary);color:white;box-shadow:0 8px 24px rgba(185,28,28,.3);transform:translateY(-1px)}.st-logout:disabled{opacity:.6;cursor:wait}.scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#b91c1c,#dc2626 40%,#f87171 70%,#fca5a5);transform-origin:left center;transform:scaleX(0);transition:transform .18s cubic-bezier(.22,1,.36,1);z-index:100;pointer-events:none;box-shadow:0 0 8px rgba(220,38,38,.5)}.sidebar-pattern{position:absolute;inset:0;background-image:radial-gradient(circle at 20% 20%,rgba(220,38,38,.06) 0,transparent 40%),radial-gradient(circle at 80% 70%,rgba(127,29,29,.1) 0,transparent 45%);pointer-events:none;opacity:.9}.sidebar-section-title{display:flex;align-items:center;gap:8px;padding:0 14px;margin-bottom:8px}.sidebar-section-line{flex:none;width:14px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,100,100,.45));border-radius:2px}.sidebar-section-label{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--sidebar-section-color)}.sidebar-link{position:relative}.sidebar-link-arrow{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:14px!important;height:14px!important;opacity:1!important;color:rgba(255,220,220,.85);animation:arrowSlideIn .3s cubic-bezier(.16,1,.3,1)}@keyframes arrowSlideIn{0%{opacity:0;transform:translate(-6px,-50%)}to{opacity:1;transform:translateY(-50%)}}.sidebar-user-card{display:flex;gap:12px;align-items:flex-start;padding:12px;background:linear-gradient(135deg,rgba(255,255,255,.04),rgba(220,38,38,.08));border:1px solid rgba(255,255,255,.08);border-radius:14px;transition:all .25s ease;cursor:pointer;text-decoration:none}.sidebar-user-card:hover{background:linear-gradient(135deg,rgba(255,255,255,.07),rgba(220,38,38,.14));border-color:rgba(255,100,100,.22);transform:translateY(-1px);box-shadow:0 8px 24px rgba(0,0,0,.3),0 0 0 1px rgba(220,38,38,.18)}.sidebar-user-info{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:4px}.sidebar-user-info h4{font-size:13px;font-weight:700;color:rgba(255,255,255,.95);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}.sidebar-user-level{display:flex;align-items:center;gap:5px;font-size:10.5px}.sidebar-user-emoji{font-size:11px}.sidebar-user-leveltext{color:rgba(255,200,200,.75);font-weight:600;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-xp-track{width:100%;height:4px;background:rgba(255,255,255,.08);border-radius:999px;overflow:hidden;margin-top:2px}.sidebar-xp-fill{height:100%;background:linear-gradient(90deg,#dc2626,#f87171,#fbbf24);border-radius:999px;transition:width 1.2s cubic-bezier(.16,1,.3,1);box-shadow:0 0 6px rgba(220,38,38,.6)}.sidebar-xp-text{font-size:9.5px;color:rgba(255,255,255,.45);letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-xp-loading{display:inline-block;color:rgba(255,255,255,.35);font-style:italic;animation:xpLoadingPulse 1.4s ease-in-out infinite}@keyframes xpLoadingPulse{0%,to{opacity:.4}50%{opacity:.9}}.sidebar{background:radial-gradient(130% 55% at 50% -8%,rgba(220,38,38,.12) 0,transparent 55%),linear-gradient(180deg,var(--sidebar-from) 0,var(--sidebar-mid) 50%,var(--sidebar-to) 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.05),6px 0 44px rgba(0,0,0,.38),2px 0 8px rgba(0,0,0,.24)}.sidebar-pattern{background-image:radial-gradient(circle at 16% 10%,rgba(220,38,38,.11) 0,transparent 42%),radial-gradient(circle at 88% 80%,rgba(139,0,0,.17) 0,transparent 46%);animation:sidebarGlowDrift 18s ease-in-out infinite alternate}@keyframes sidebarGlowDrift{0%{transform:translateZ(0) scale(1);opacity:.82}to{transform:translate3d(0,-10px,0) scale(1.04);opacity:1}}.sidebar:after{content:"";position:absolute;left:0;right:0;bottom:0;height:170px;background:linear-gradient(180deg,transparent,rgba(0,0,0,.3));pointer-events:none;z-index:0}.sidebar-footer,.sidebar-header,.sidebar-nav{position:relative;z-index:1}.sidebar-header{border-bottom:none}.sidebar-header:after{content:"";position:absolute;left:18px;right:18px;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1) 35%,rgba(220,38,38,.28) 60%,transparent)}.sidebar-link{overflow:hidden}.sidebar-link svg:not(.sidebar-link-arrow){width:30px;height:30px;padding:6px;border-radius:9px;box-sizing:border-box;flex-shrink:0;opacity:1;color:rgba(255,255,255,.8);background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.05);transition:background .22s ease,color .22s ease,transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .22s ease}.sidebar-link:hover svg:not(.sidebar-link-arrow){background:rgba(255,255,255,.1);color:#fff;transform:scale(1.06)}.sidebar-link.active svg:not(.sidebar-link-arrow){background:linear-gradient(135deg,rgba(255,120,120,.32),rgba(255,80,80,.16));border-color:rgba(255,160,160,.38);color:#fff;box-shadow:0 2px 10px rgba(220,38,38,.45),inset 0 1px 0 rgba(255,255,255,.28)}.sidebar-link:hover:not(.active){background:linear-gradient(135deg,rgba(255,255,255,.06),rgba(220,38,38,.08))}.sidebar-link.active{background:linear-gradient(135deg,rgba(211,47,47,.94),rgba(139,0,0,.92));border:1px solid rgba(255,140,140,.3);box-shadow:0 6px 22px rgba(211,47,47,.42),0 1px 3px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.2)}.sidebar-link.active:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 32%,rgba(255,255,255,.16) 50%,transparent 68%);transform:translateX(-130%);animation:sidebarActiveSheen .75s cubic-bezier(.16,1,.3,1) .05s;pointer-events:none}@keyframes sidebarActiveSheen{to{transform:translateX(130%)}}.sidebar-xp-fill{position:relative;overflow:hidden}.sidebar-xp-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);transform:translateX(-100%);animation:sidebarXpShimmer 2.8s ease-in-out infinite}@keyframes sidebarXpShimmer{0%{transform:translateX(-100%)}60%,to{transform:translateX(240%)}}.sidebar-user-card.is-max{background:linear-gradient(135deg,rgba(251,191,36,.11),rgba(220,38,38,.1));border-color:rgba(251,191,36,.32)}.sidebar-user-card.is-max:hover{border-color:rgba(251,191,36,.5);box-shadow:0 8px 24px rgba(0,0,0,.3),0 0 0 1px rgba(251,191,36,.28)}.sidebar-user-card.is-max .sidebar-user-leveltext{color:rgba(253,230,138,.95)}.sidebar-user-card.is-max .sidebar-xp-fill{background:linear-gradient(90deg,#f59e0b,#fbbf24,#fde68a);box-shadow:0 0 10px rgba(251,191,36,.7)}@media (prefers-reduced-motion:reduce){.sidebar-link.active:after,.sidebar-pattern,.sidebar-xp-fill:after{animation:none}}.dash-v3{display:flex;flex-direction:column;gap:22px;width:100%;overflow:hidden}.dash-v3>*{min-width:0;max-width:100%;box-sizing:border-box}.dash-bento{display:grid;grid-template-columns:repeat(12,1fr);gap:16px;align-items:stretch}.bento-cell{display:flex;min-width:0}.bento-cell>*{width:100%;min-width:0}.bento-span-4{grid-column:span 4}.bento-span-5{grid-column:span 5}.bento-span-7{grid-column:span 7}.bento-span-8{grid-column:span 8}.bento-span-12{grid-column:1/-1}.dash-bento .continue-card,.dash-bento .xp-level-card-v2{height:100%}@media (max-width:900px){.dash-bento{grid-template-columns:1fr;gap:14px}.dash-bento>.bento-cell{grid-column:1/-1}}.bento-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;width:100%}.bento-stat{display:flex;flex-direction:column;gap:8px;padding:18px 18px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s ease,border-color .25s ease}.bento-stat:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:rgba(211,47,47,.18)}.bento-stat-icon{width:38px;height:38px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.bento-stat-icon[data-tone=crimson]{background:linear-gradient(135deg,var(--primary),var(--primary-dark))}.bento-stat-icon[data-tone=green]{background:linear-gradient(135deg,#10b981,#059669)}.bento-stat-num{font-size:28px;font-weight:800;line-height:1;color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em}.bento-stat-label{font-size:12.5px;font-weight:600;color:var(--text-secondary)}@media (max-width:900px){.bento-stats{gap:10px}.bento-stat{padding:14px;gap:6px}.bento-stat-num{font-size:22px}.bento-stat-icon{width:34px;height:34px}.bento-stat-label{font-size:11.5px}}.bento-streak{display:flex;flex-direction:column;justify-content:center;gap:9px;padding:20px;border-radius:var(--radius-lg);background:linear-gradient(135deg,#fff7ed,#ffedd5);border:1px solid rgba(245,158,11,.25);box-shadow:var(--shadow-sm);height:100%}.bento-streak-icon{width:46px;height:46px;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(135deg,#f59e0b,#ea580c);box-shadow:0 6px 16px rgba(245,158,11,.35)}.bento-streak-num{display:flex;align-items:baseline;gap:6px;font-size:34px;font-weight:800;color:#9a3412;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bento-streak-num span{font-size:14px;font-weight:600;color:#c2410c}.bento-streak-label{font-size:12.5px;font-weight:600;color:#b45309}.continue-card-cta{background:linear-gradient(135deg,var(--primary),var(--primary-dark))!important}.dash-bento .activity-heatmap-body,.dash-bento .activity-heatmap-card{height:100%}.gamification-grid-nostreak{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}@media (max-width:900px){.gamification-grid-nostreak{grid-template-columns:1fr}}.dash-catalog{display:flex;flex-direction:column;gap:28px}.sidebar-link{min-height:44px}@media (max-width:768px){.smart-review-cta{min-height:44px;padding:10px 16px;display:inline-flex;align-items:center;justify-content:center}.smart-review-dismiss{width:44px;height:44px;top:2px;right:2px}}.progress-continue-btn{min-height:36px}@media (max-width:768px){.progress-continue-btn{min-height:44px;padding:8px 16px}.course-back-link,.course-breadcrumb a{min-height:44px;display:inline-flex;align-items:center}}.completion-close{width:44px;height:44px;min-width:44px;min-height:44px}.topbar-v2{gap:14px;padding:env(safe-area-inset-top,0) 20px 0}.topbar-breadcrumb{display:none;align-items:center;gap:12px;min-width:0;flex-shrink:0}@media (min-width:769px){.topbar-breadcrumb{display:flex}}.topbar-breadcrumb-icon{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,rgba(220,38,38,.1),rgba(127,29,29,.06));border:1px solid rgba(220,38,38,.15);display:flex;align-items:center;justify-content:center;flex-shrink:0}.topbar-breadcrumb-icon svg{width:18px;height:18px;color:var(--primary)}.topbar-breadcrumb-text{display:flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;color:var(--text-muted);flex-wrap:nowrap;min-width:0}.topbar-breadcrumb-item{display:inline-flex;align-items:center;gap:6px}.topbar-breadcrumb-item a{color:var(--text-muted);transition:color .18s ease}.topbar-breadcrumb-item a:hover{color:var(--primary)}.topbar-breadcrumb-current{color:var(--text);font-weight:700}.topbar-breadcrumb-sep{width:14px;height:14px;color:var(--text-muted);opacity:.6}.topbar-search{display:none;flex:1 1;max-width:380px;margin:0 auto 0 16px;align-items:center;gap:10px;padding:8px 12px;height:40px;background:var(--bg-muted);border:1px solid var(--border-light);border-radius:12px;cursor:pointer;transition:all .2s ease;color:var(--text-muted);font-size:13px;text-align:left}@media (min-width:1024px){.topbar-search{display:inline-flex}}.topbar-search:hover{background:white;border-color:rgba(220,38,38,.25);box-shadow:0 4px 12px rgba(15,23,42,.06)}.topbar-search-icon{width:16px;height:16px;flex-shrink:0;color:var(--text-muted)}.topbar-search-placeholder{flex:1 1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-search-kbd{flex-shrink:0;font-family:Be Vietnam Pro,sans-serif;font-size:10.5px;font-weight:700;padding:3px 8px;background:white;border:1px solid var(--border);border-radius:6px;color:var(--text-muted);letter-spacing:.04em}.topbar-right{display:flex;align-items:center;gap:10px;margin-left:auto;flex-shrink:0}.topbar-level-pill{display:none;align-items:center;gap:10px;padding:6px 12px 6px 8px;background:linear-gradient(135deg,rgba(220,38,38,.06),rgba(127,29,29,.04));border:1px solid rgba(220,38,38,.18);border-radius:999px;transition:all .2s ease;cursor:pointer;text-decoration:none}@media (min-width:769px){.topbar-level-pill{display:inline-flex}}.topbar-level-pill:hover{background:linear-gradient(135deg,rgba(220,38,38,.12),rgba(127,29,29,.08));border-color:rgba(220,38,38,.32);transform:translateY(-1px);box-shadow:0 6px 16px rgba(220,38,38,.15)}.topbar-level-emoji{font-size:16px;line-height:1}.topbar-level-text{display:flex;flex-direction:column;line-height:1.1}.topbar-level-num{font-size:11px;font-weight:800;color:var(--primary);letter-spacing:.02em}.topbar-level-xp{font-size:9.5px;font-weight:600;color:var(--text-muted)}.topbar-level-ring{width:24px;height:24px;flex-shrink:0}.user-menu-wrap{position:relative}.topbar-user-btn{width:44px;height:44px;min-width:44px;min-height:44px;border-radius:50%;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s ease;padding:0}.topbar-user-btn:hover{transform:scale(1.05)}.topbar-user-menu{position:absolute;top:calc(100% + 8px);right:0;width:280px;background:white;border:1px solid var(--border-light);border-radius:16px;box-shadow:0 24px 48px rgba(15,23,42,.12),0 8px 16px rgba(15,23,42,.06);z-index:60;overflow:hidden;animation:userMenuIn .22s cubic-bezier(.16,1,.3,1)}@keyframes userMenuIn{0%{opacity:0;transform:translateY(-8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.topbar-user-menu-head{display:flex;align-items:center;gap:12px;padding:16px;background:linear-gradient(135deg,rgba(255,235,235,.6),rgba(255,245,245,.4));border-bottom:1px solid var(--border-light)}.topbar-user-menu-info{flex:1 1;min-width:0}.topbar-user-menu-info h4{font-size:14px;font-weight:700;color:var(--text);margin:0}.topbar-user-menu-info h4,.topbar-user-menu-info p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-user-menu-info p{font-size:11.5px;color:var(--text-muted);margin:2px 0 6px}.topbar-user-menu-badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;padding:3px 8px;background:linear-gradient(135deg,var(--primary),#ef4444);color:white;border-radius:999px;letter-spacing:.02em}.topbar-user-menu-list{padding:6px}.topbar-user-menu-item{display:flex;align-items:center;gap:10px;padding:10px 12px;font-size:13px;font-weight:500;color:var(--text);border-radius:10px;transition:all .15s ease;text-decoration:none}.topbar-user-menu-item:hover{background:var(--bg-muted);color:var(--primary)}.topbar-user-menu-item svg{color:var(--text-muted);transition:color .15s ease}.topbar-user-menu-item:hover svg{color:var(--primary)}.topbar-user-menu-logout{display:flex;align-items:center;justify-content:center;gap:8px;width:calc(100% - 12px);margin:0 6px 6px;padding:10px 12px;font-size:13px;font-weight:600;color:var(--primary);background:rgba(220,38,38,.06);border:1px solid rgba(220,38,38,.12);border-radius:10px;cursor:pointer;transition:all .18s ease}.topbar-user-menu-logout:hover{background:rgba(220,38,38,.12);border-color:rgba(220,38,38,.25)}.topbar-v2 .topbar-title{display:none}@media (max-width:768px){.topbar-breadcrumb,.topbar-level-pill,.topbar-search,.topbar-user-btn{display:none}.topbar-v2{padding:env(safe-area-inset-top,0) 14px 0}}.bottom-tab-bar-v2{background:rgba(255,255,255,.92);backdrop-filter:blur(28px) saturate(180%);-webkit-backdrop-filter:blur(28px) saturate(180%);border-top:1px solid rgba(220,38,38,.08);box-shadow:0 -8px 32px rgba(15,23,42,.08),inset 0 -1px 0 rgba(255,255,255,.5)}.bottom-tab-bar-v2:before{content:"";position:absolute;top:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(220,38,38,.4),transparent)}.bottom-tab-fab{position:relative;display:none;align-items:center;justify-content:center;width:52px;height:52px;margin:-22px 4px 0;border-radius:50%;background:linear-gradient(135deg,#b91c1c,#dc2626 50%,#7f1d1d);color:white;cursor:pointer;box-shadow:0 8px 24px rgba(185,28,28,.45),0 4px 10px rgba(185,28,28,.25),inset 0 1px 0 rgba(255,255,255,.25);border:3px solid white;flex-shrink:0;transition:transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .22s ease;z-index:1}.bottom-tab-fab:before{content:"";position:absolute;inset:-4px;border-radius:50%;background:radial-gradient(circle,rgba(220,38,38,.4) 0,transparent 70%);z-index:-1;opacity:.7;animation:fabPulse 2.5s ease-in-out infinite}@keyframes fabPulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.8;transform:scale(1.15)}}.bottom-tab-fab svg{width:22px;height:22px}.bottom-tab-fab:active{transform:scale(.92)}@media (max-width:768px){.bottom-tab-fab{display:flex}}.bottom-tab-bar-v2 .bottom-tab.active:before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:24px;height:3px;background:linear-gradient(90deg,#b91c1c,#dc2626,#b91c1c);border-radius:0 0 6px 6px;box-shadow:0 1px 4px rgba(220,38,38,.5)}.bottom-tab-bar-v2 .bottom-tab.active{color:var(--primary)}.bottom-tab-bar-v2 .bottom-tab.active svg{transform:scale(1.18) translateY(-1px);filter:drop-shadow(0 2px 4px rgba(220,38,38,.35))}.page-enter{animation:pageEnter .42s cubic-bezier(.22,1,.36,1)}@keyframes pageEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-color-scheme:dark){.topbar-user-menu{background:#1a1a1a;border-color:rgba(255,255,255,.08)}.topbar-user-menu-head{background:linear-gradient(135deg,rgba(220,38,38,.12),rgba(0,0,0,.2))}.topbar-user-menu-info h4{color:white}.topbar-user-menu-item{color:rgba(255,255,255,.8)}.topbar-user-menu-item:hover{background:rgba(255,255,255,.05)}.bottom-tab-bar-v2{background:rgba(20,20,20,.85)}}