@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/5662512df8b0ccdf-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/07ef58f5f6014a87-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/5ab5267d02dae909-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/cd79e1ff94fa521b-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/89362aa296165c6d-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e11f95d95ac59fa4-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/00f4982f357db61e-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/62a3c74fa0e47362-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8201559e247ad180-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/2173e4bb28c315da-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/c6f81e539d11fc99-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/25ab8995c98996d7-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/9ddf1512dbee9c99-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/8247d8d2a376ae43-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/e270c9fc4fe96f5a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/6bb6a9cb68044e10-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/9a3689a7cda641d2-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/bed26dc8a57eea87-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/04ed099c67ec6a9b-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/6a6ceb585bc5adc7-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/a1c0e39fc0203fbc-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro Fallback;src:local("Arial");ascent-override:90.61%;descent-override:24.01%;line-gap-override:0.00%;size-adjust:110.36%}.__className_b56e3a{font-family:Be Vietnam Pro,Be Vietnam Pro Fallback;font-style:normal}.__variable_b56e3a{--font-be-vietnam-pro:"Be Vietnam Pro","Be Vietnam Pro Fallback"}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_75b79f{font-family:Inter,Inter Fallback;font-style:normal}.__variable_75b79f{--font-display:"Inter","Inter Fallback"}: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{scroll-behavior:smooth}@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{background-color:var(--bg);background-image:radial-gradient(ellipse at 0 0,rgba(255,255,255,1) 0,transparent 55%),radial-gradient(ellipse at 100% 0,rgba(255,235,235,.5) 0,transparent 50%),radial-gradient(ellipse at 100% 100%,rgba(255,255,255,.95) 0,transparent 50%),radial-gradient(ellipse at 0 100%,rgba(255,242,242,.6) 0,transparent 50%);background-attachment:fixed;color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;touch-action:manipulation;overscroll-behavior-y:contain}body,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%}.app-layout{display:flex;min-height:100vh}.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);padding:0 14px;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);position:relative}.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{font-size:13px;font-weight:700;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}.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:1200px;margin:0 auto;flex:1 1;width:100%}.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{margin-left:0;padding-bottom:calc(64px + env(safe-area-inset-bottom, 0px))}.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}.courses-grid{grid-template-columns:1fr;gap:14px}.course-thumb{height:120px;font-size:40px}.course-body{padding:14px}.course-body h3{font-size:14px}.course-body p{font-size:12px}.course-meta{margin-top:10px;padding-top:10px}.card-content{padding:16px}.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: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);overflow:hidden;transition:box-shadow .4s ease,transform .4s cubic-bezier(.22,1,.36,1),border-color .4s ease;position:relative}.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{box-shadow:var(--shadow-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}@keyframes progressShimmer{0%,to{opacity:0;transform:translateX(0)}50%{opacity:1;transform:translateX(6px)}}.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;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:-20%;width:480px;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;border-radius:50%;pointer-events:none}.hero-banner:after{bottom:-35%;left:-10%;width:360px;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:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}.settings-container{max-width:640px}.hero-content{position:relative;z-index:1}.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}.streak-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:20px;background:linear-gradient(135deg,#f59e0b,#ef4444);color:white;font-size:13px;font-weight:700;box-shadow:0 2px 12px rgba(245,158,11,.4);animation:streakPulse 2s ease-in-out infinite;white-space:nowrap}@keyframes streakPulse{0%,to{box-shadow:0 2px 12px rgba(245,158,11,.4)}50%{box-shadow:0 4px 20px rgba(245,158,11,.65)}}.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}.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;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.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)}.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}.xp-level-title{font-size:18px;font-weight:800;letter-spacing:-.5px}.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}.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%{transform:translateX(-100%)}to{transform:translateX(100%)}}.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}::-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}.filter-select{width:100%}.status-chips{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}}.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}