.reg-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:24px 16px}.reg-card{background:#fff;border-radius:20px;box-shadow:0 24px 64px #0000002e;padding:40px 36px;width:100%;max-width:520px}.reg-header{text-align:center;margin-bottom:28px}.reg-logo{font-size:3rem;margin-bottom:8px}.reg-header h1{font-size:1.5rem;font-weight:900;color:#1a1a2e;margin:0 0 6px}.reg-header p{font-size:.88rem;color:#666;margin:0}.reg-form{display:flex;flex-direction:column;gap:14px}.reg-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.reg-field{display:flex;flex-direction:column;gap:5px}.reg-field label{font-size:.78rem;font-weight:700;color:#444}.reg-field input,.reg-field select{padding:10px 12px;border:1.5px solid #e0e0e0;border-radius:10px;font-size:.9rem;font-family:inherit;outline:none;transition:border-color .2s;background:#fafafa}.reg-field input:focus,.reg-field select:focus{border-color:#6c63ff;background:#fff}.reg-pass-wrap{position:relative}.reg-pass-wrap input{width:100%;box-sizing:border-box;padding-right:40px}.reg-eye{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:1rem;padding:0}.reg-divider{text-align:center;font-size:.72rem;font-weight:800;color:#999;text-transform:uppercase;letter-spacing:.08em;position:relative}.reg-divider:before,.reg-divider:after{content:"";position:absolute;top:50%;width:38%;height:1px;background:#e0e0e0}.reg-divider:before{left:0}.reg-divider:after{right:0}.reg-error{background:#fff0f0;border:1px solid #ffcccc;border-radius:8px;padding:10px 14px;font-size:.82rem;color:#c0392b}.reg-btn{background:linear-gradient(135deg,#6c63ff,#764ba2);color:#fff;border:none;border-radius:12px;padding:13px;font-size:.95rem;font-weight:800;cursor:pointer;transition:opacity .15s,transform .12s;font-family:inherit;margin-top:4px}.reg-btn:hover:not(:disabled){opacity:.88;transform:translateY(-1px)}.reg-btn:disabled{opacity:.6;cursor:not-allowed}.reg-login-link{text-align:center;font-size:.82rem;color:#666;margin:0}.reg-text-btn{background:none;border:none;color:#6c63ff;font-weight:700;cursor:pointer;font-size:inherit;font-family:inherit;padding:0}.reg-text-btn:hover{text-decoration:underline}.reg-plan-banner{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:12px;background:#f8f9fb;border:2px solid #e2e8f0;margin-bottom:20px}.reg-plan-icon{font-size:1.6rem;flex-shrink:0}.reg-plan-info{flex:1;min-width:0}.reg-plan-name{font-size:.92rem;font-weight:900}.reg-plan-desc{font-size:.72rem;font-weight:600;color:#94a3b8}.reg-plan-price{text-align:right;flex-shrink:0}.reg-plan-amount{font-size:1.2rem;font-weight:900}.reg-plan-period{font-size:.68rem;font-weight:700;color:#94a3b8}.reg-plan-pick{text-align:center;font-size:.82rem;font-weight:600;color:#94a3b8;margin-bottom:16px;padding:10px;background:#fef3c7;border-radius:10px;border:1px solid #fde68a}.reg-plan-pick span{color:#92400e}.reg-back-btn{position:absolute;top:20px;left:20px;background:#f1f5f9;border:none;border-radius:8px;padding:6px 12px;font-size:1rem;font-weight:800;color:#6c63ff;cursor:pointer;transition:all .15s}.reg-back-btn:hover{background:#6c63ff;color:#fff}.reg-gcash-box{display:flex;gap:16px;background:#f0fdf4;border:1.5px solid #86efac;border-radius:12px;padding:16px;margin-bottom:12px}.reg-gcash-details{flex:1}.reg-gcash-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid #dcfce7}.reg-gcash-row:last-child{border-bottom:none}.reg-gcash-label{font-size:.78rem;font-weight:700;color:#64748b}.reg-gcash-value{font-size:.85rem;font-weight:800;color:#1e293b}.reg-gcash-total{font-size:1rem;font-weight:900}.reg-gcash-calc{font-size:.7rem;font-weight:600;color:#94a3b8;margin-left:4px}.reg-gcash-qr{flex-shrink:0;text-align:center}.reg-gcash-qr img{width:100px;height:100px;border-radius:8px;border:2px solid #86efac;object-fit:contain}.reg-gcash-qr-label{font-size:.65rem;font-weight:700;color:#22c55e;margin-top:4px}.reg-gcash-instructions{font-size:.75rem;font-weight:600;color:#64748b;background:#f8fafc;padding:10px 14px;border-radius:8px;line-height:1.6;margin-bottom:12px}@media (max-width: 480px){.reg-gcash-box{flex-direction:column}.reg-gcash-qr img{width:80px;height:80px}}.reg-pay-amount{text-align:center;font-size:1.05rem;font-weight:900;margin-bottom:12px}.reg-qr-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.reg-qr-card{border-radius:12px;padding:14px 12px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;position:relative}.reg-qr-gcash{background:#f0fdf4;border:1.5px solid #86efac}.reg-qr-maya{background:#f0f9ff;border:1.5px solid #7dd3fc}.reg-qr-badge{color:#fff;font-size:.7rem;font-weight:800;padding:2px 10px;border-radius:6px;text-transform:uppercase;letter-spacing:.04em}.reg-qr-img{width:110px;height:110px;border-radius:10px;border:2px solid #e2e8f0;object-fit:contain;background:#fff}.reg-qr-gcash .reg-qr-img{border-color:#86efac}.reg-qr-maya .reg-qr-img{border-color:#7dd3fc}.reg-qr-name{font-size:.82rem;font-weight:800;color:#1e293b}.reg-qr-num{font-size:.78rem;font-weight:700;color:#64748b}@media (max-width: 480px){.reg-qr-grid{grid-template-columns:1fr}.reg-qr-img{width:90px;height:90px}}.reg-success{text-align:center;padding:20px 0;display:flex;flex-direction:column;align-items:center;gap:14px}.reg-success-icon{font-size:3rem}.reg-success p{font-size:1rem;font-weight:700;color:#2d6a4f}@media (max-width: 480px){.reg-card{padding:28px 20px}.reg-row{grid-template-columns:1fr}}.pricing-page{min-height:100vh;background:linear-gradient(135deg,#f0f4ff,#e8f0fe,#f5f0ff);display:flex;flex-direction:column;align-items:center;padding:0 20px 60px;font-family:Nunito,sans-serif;color:#1e293b}.pricing-topbar{width:100%;max-width:1000px;padding:20px 0}.pricing-home-btn{background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;padding:8px 20px;font-family:Nunito,sans-serif;font-size:.85rem;font-weight:800;color:#6c63ff;cursor:pointer;transition:all .15s}.pricing-home-btn:hover{background:#6c63ff;color:#fff;border-color:#6c63ff}.pricing-header{text-align:center;margin-bottom:48px}.pricing-logo{font-size:2.6rem;font-weight:900;background:linear-gradient(135deg,#6c63ff,#a855f7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:8px}.pricing-sub{font-size:1.1rem;font-weight:700;color:#64748b;margin-bottom:6px}.pricing-tagline{font-size:.9rem;font-weight:600;color:#94a3b8}.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:960px;width:100%;align-items:stretch}.pricing-card{background:#fff;border-radius:20px;padding:36px 28px 32px;box-shadow:0 2px 12px #0000000f;display:flex;flex-direction:column;position:relative;border:2px solid transparent;transition:transform .25s,box-shadow .25s}.pricing-card:hover{transform:translateY(-6px);box-shadow:0 12px 32px #6c63ff1f}.pricing-card.featured{border-color:#6c63ff;box-shadow:0 4px 24px #6c63ff2e;transform:scale(1.04);z-index:2}.pricing-card.featured:hover{transform:scale(1.04) translateY(-6px);box-shadow:0 16px 40px #6c63ff38}.pricing-badge{position:absolute;top:-14px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#6c63ff,#a855f7);color:#fff;font-size:.72rem;font-weight:800;padding:5px 18px;border-radius:20px;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.pricing-icon{font-size:2.4rem;margin-bottom:12px}.pricing-name{font-size:1.3rem;font-weight:900;margin-bottom:4px}.pricing-desc{font-size:.78rem;font-weight:600;color:#94a3b8;margin-bottom:20px;line-height:1.5}.pricing-price{display:flex;align-items:baseline;gap:4px;margin-bottom:4px}.pricing-currency{font-size:1.1rem;font-weight:800;color:#64748b;align-self:flex-start;margin-top:6px}.pricing-amount{font-size:3rem;font-weight:900;line-height:1}.pricing-period{font-size:.82rem;font-weight:700;color:#94a3b8}.pricing-per-month{font-size:.78rem;font-weight:700;color:#94a3b8;margin-bottom:16px}.pricing-save-tag{display:inline-block;font-size:.65rem;font-weight:800;padding:3px 10px;border-radius:10px;margin-bottom:16px;text-transform:uppercase;letter-spacing:.04em;align-self:flex-start}.pricing-divider{height:1px;background:#e2e8f0;margin-bottom:20px}.pricing-features{list-style:none;flex:1;margin-bottom:24px}.pricing-features li{font-size:.82rem;font-weight:700;color:#475569;padding:7px 0;display:flex;align-items:center;gap:10px}.pricing-check{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.65rem;flex-shrink:0;color:#fff;font-weight:900}.pricing-upgrade-nudge{margin-bottom:16px;padding:10px 14px;border-radius:10px;background:linear-gradient(135deg,#ede9fe,#f0f4ff);border:1px dashed #a5b4fc;text-align:center}.pricing-upgrade-text{font-size:.72rem;font-weight:700;color:#6c63ff;line-height:1.5}.pricing-upgrade-price{font-size:.78rem;font-weight:800;color:#4f46e5;margin-top:2px}.pricing-cta{width:100%;padding:14px 0;border:none;border-radius:12px;font-family:Nunito,sans-serif;font-size:.92rem;font-weight:800;color:#fff;cursor:pointer;transition:transform .15s,box-shadow .15s;letter-spacing:.02em}.pricing-cta:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0000001f}.pricing-footer{margin-top:40px;text-align:center}.pricing-footer p{font-size:.78rem;font-weight:600;color:#94a3b8;line-height:1.7}.pricing-footer strong{color:#64748b}@media (max-width: 820px){.pricing-grid{grid-template-columns:1fr;max-width:380px}.pricing-card.featured{transform:none}.pricing-card.featured:hover{transform:translateY(-6px)}}.sidebar{position:fixed;left:0;top:0;width:240px;height:100vh;background:var(--card-bg);border-right:2px solid var(--border);display:flex;flex-direction:column;padding:20px 16px;z-index:100;overflow-y:auto;box-shadow:4px 0 20px #6c63ff0f}.sidebar-logo{display:flex;align-items:center;gap:12px;padding:8px 4px 20px;border-bottom:2px solid var(--border);margin-bottom:16px}.logo-icon{font-size:2rem;animation:float 3s ease-in-out infinite}.logo-text{display:flex;flex-direction:column;line-height:1.2}.logo-name{font-size:1.3rem;font-weight:900;background:var(--grad-hero);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.logo-sub{font-size:.75rem;font-weight:600;color:var(--text-light);text-transform:uppercase;letter-spacing:1px}.sidebar-user{display:flex;align-items:center;gap:10px;padding:12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:12px}.user-avatar{font-size:2rem;line-height:1}.user-info{flex:1;min-width:0}.user-name{font-weight:800;font-size:.95rem;color:var(--text-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-level{font-size:.8rem;color:var(--primary);font-weight:700}.streak-badge{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;background:linear-gradient(135deg,#fff0e6,#ffe5cc);border:2px solid #FFD0A0;border-radius:var(--radius-md);margin-bottom:16px;font-size:.85rem}.streak-fire{font-size:1.2rem;animation:streakFire 1.5s ease-in-out infinite}.streak-count{font-weight:800;color:#c05a00}.nav-list{list-style:none;flex:1;display:flex;flex-direction:column;gap:4px}.nav-item{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:var(--radius-md);color:var(--text-medium);text-decoration:none;font-weight:700;font-size:.95rem;transition:all .2s;position:relative}.nav-item:hover{background:var(--bg);color:var(--primary);transform:translate(2px)}.nav-active{background:var(--grad-hero)!important;color:#fff!important;box-shadow:0 4px 12px #6c63ff59}.nav-icon{font-size:1.3rem;flex-shrink:0;width:24px;text-align:center}.nav-label{flex:1}.nav-badge{background:var(--accent);color:#5a3e00;font-size:.7rem;font-weight:900;padding:2px 7px;border-radius:var(--radius-full);min-width:20px;text-align:center}.nav-category{list-style:none;margin-top:6px}.nav-category-header,.nav-subgroup-header{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border-radius:var(--radius-md);border:none;background:transparent;color:var(--text-medium);font-family:inherit;font-weight:800;font-size:.82rem;letter-spacing:.02em;text-transform:uppercase;cursor:pointer;transition:background .15s,color .15s}.nav-category-header:hover,.nav-subgroup-header:hover{background:var(--bg);color:var(--primary)}.nav-category-header .nav-icon,.nav-subgroup-header .nav-icon{font-size:1.05rem;width:22px}.nav-chevron{margin-left:auto;font-size:.85rem;opacity:.65;transition:transform .2s}.nav-category-items,.nav-subgroup-items{list-style:none;padding:4px 0 4px 8px;display:flex;flex-direction:column;gap:3px;border-left:2px dashed var(--border);margin:0 0 0 14px}.nav-subgroup{list-style:none;margin:2px 0}.nav-subgroup-header{font-size:.78rem;padding:7px 12px;text-transform:none;letter-spacing:0;color:var(--text-light)}.nav-subgroup-items{margin-left:18px;border-left-color:var(--accent);border-left-style:solid;border-left-width:2px;opacity:.95}.nav-divider-label{list-style:none;margin:12px 4px 4px;padding:10px 8px 4px;font-size:.7rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--text-light);border-top:1px dashed var(--border)}.sidebar.sidebar-dark .nav-category-header,.sidebar.sidebar-dark .nav-subgroup-header,.app-layout.dark-mode .nav-category-header,.app-layout.dark-mode .nav-subgroup-header{color:#ffffffb8}.sidebar.sidebar-dark .nav-category-header:hover,.sidebar.sidebar-dark .nav-subgroup-header:hover,.app-layout.dark-mode .nav-category-header:hover,.app-layout.dark-mode .nav-subgroup-header:hover{background:#ffffff14;color:#fff}.sidebar.sidebar-dark .nav-category-items,.sidebar.sidebar-dark .nav-subgroup-items,.app-layout.dark-mode .nav-category-items,.app-layout.dark-mode .nav-subgroup-items{border-left-color:#ffffff2e}.sidebar-footer{padding:12px 4px 4px;border-top:2px solid var(--border);margin-top:8px}.logout-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px 14px;border-radius:var(--radius-md);border:2px solid #FEE2E2;background:#fff5f5;color:#dc2626;font-family:var(--font);font-size:.9rem;font-weight:800;cursor:pointer;transition:all .2s}.logout-btn:hover{background:#fee2e2;transform:translate(2px)}.mobile-topbar{display:none;position:fixed;top:0;left:0;right:0;height:60px;background:var(--card-bg);border-bottom:2px solid var(--border);align-items:center;justify-content:space-between;padding:0 16px;z-index:200;box-shadow:0 2px 10px #00000014}.mobile-menu-btn{background:var(--bg);border:1px solid var(--border);color:var(--text-dark);width:40px;height:40px;border-radius:var(--radius-md);font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;font-weight:700}.mobile-logo{font-weight:900;font-size:1.1rem;background:var(--grad-hero);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.mobile-streak{font-weight:800;font-size:1rem;color:#c05a00}.mobile-overlay{position:fixed;inset:0;background:#00000080;z-index:300;display:flex}.mobile-menu{width:280px;height:100%;background:var(--card-bg);border-right:1px solid var(--border);padding:80px 16px 20px;overflow-y:auto;animation:slideInLeft .3s ease}.mobile-user{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:16px}.mobile-bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;height:64px;background:var(--card-bg);border-top:2px solid var(--border);z-index:200;box-shadow:0 -4px 20px #00000014}.sidebar.sidebar-dark,.app-layout.dark-mode .sidebar{background:#171529!important;border-right-color:#2d2a50!important;box-shadow:4px 0 24px #00000059}.sidebar.sidebar-dark .sidebar-logo,.sidebar.sidebar-dark .sidebar-footer,.app-layout.dark-mode .sidebar-logo,.app-layout.dark-mode .sidebar-footer{border-color:var(--border)}.sidebar.sidebar-dark .sidebar-user,.sidebar.sidebar-dark~.mobile-overlay .mobile-user,.app-layout.dark-mode .sidebar-user,.app-layout.dark-mode .mobile-user,.app-layout.dark-mode .mobile-menu-btn{background:#211e3a!important;border-color:#383460!important}.sidebar.sidebar-dark .streak-badge,.app-layout.dark-mode .streak-badge{background:linear-gradient(135deg,#ff9f1c2e,#ffd93d1a);border-color:#ff9f1c59}.sidebar.sidebar-dark .streak-count,.app-layout.dark-mode .streak-count,.app-layout.dark-mode .mobile-streak{color:#ffd166}.sidebar.sidebar-dark .nav-item,.app-layout.dark-mode .nav-item{color:#a7a3d6}.sidebar.sidebar-dark .nav-item:hover,.app-layout.dark-mode .nav-item:hover{background:#211e3a!important;color:#f0efff}.sidebar.sidebar-dark .nav-active,.app-layout.dark-mode .nav-active{box-shadow:0 6px 18px #6c63ff73}.sidebar.sidebar-dark .nav-badge,.app-layout.dark-mode .nav-badge{background:#ffd93d;color:#3a2800}.sidebar.sidebar-dark .logout-btn,.app-layout.dark-mode .logout-btn{background:#ef44441f;border-color:#ef444452;color:#fca5a5}.sidebar.sidebar-dark .logout-btn:hover,.app-layout.dark-mode .logout-btn:hover{background:#ef444433}.mobile-topbar.mobile-topbar-dark,.mobile-menu.mobile-menu-dark,.mobile-bottom-nav.mobile-bottom-nav-dark,.app-layout.dark-mode .mobile-topbar,.app-layout.dark-mode .mobile-menu,.app-layout.dark-mode .mobile-bottom-nav{background:#171529!important;border-color:#2d2a50!important}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;text-decoration:none;color:var(--text-light);font-size:.65rem;font-weight:700;gap:2px;transition:all .2s;padding:8px 4px}.bottom-nav-item span:first-child{font-size:1.3rem}.bottom-nav-active{color:var(--primary)!important}@media (max-width: 768px){.sidebar{display:none}.mobile-topbar,.mobile-bottom-nav{display:flex}}.ls-screen{min-height:100vh;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px 40px;background:linear-gradient(135deg,#0f0c29,#302b63,#24243e);position:relative;overflow:hidden}.ls-screen-inner{background:linear-gradient(160deg,#1a1740,#251e55)}.ls-floater{position:absolute;font-size:1.8rem;opacity:.18;animation:float 4s ease-in-out infinite;user-select:none;pointer-events:none;top:10%}.ls-floater:nth-child(2n){top:60%}.ls-floater:nth-child(3n){top:35%}.ls-floater:nth-child(4n){top:80%}.ls-floater:nth-child(5n){top:20%}.ls-header{text-align:center;margin-bottom:44px;position:relative;z-index:1}.ls-logo{font-size:4.5rem;animation:float 3s ease-in-out infinite;display:block;margin-bottom:12px;filter:drop-shadow(0 4px 16px rgba(108,99,255,.7))}.ls-title{font-size:2.2rem;font-weight:900;color:#fff;margin-bottom:8px;text-shadow:0 2px 16px rgba(108,99,255,.5);line-height:1.2}.ls-subtitle{font-size:1.1rem;font-weight:600;color:#ffffffa6}.ls-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;max-width:960px;width:100%;position:relative;z-index:1}.ls-card{background:#ffffff12;border:2px solid rgba(255,255,255,.12);backdrop-filter:blur(12px);border-radius:28px;padding:36px 28px;cursor:pointer;transition:transform .25s,box-shadow .25s,border-color .25s;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;font-family:var(--font)}.ls-card:hover{transform:translateY(-6px);box-shadow:0 20px 50px #0006}.ls-card-child:hover{border-color:#ff6b6b;box-shadow:0 20px 50px #ff6b6b40}.ls-card-parent:hover{border-color:#a855f7;box-shadow:0 20px 50px #a855f740}.ls-card-teacher:hover{border-color:#f59e0b;box-shadow:0 20px 50px #f59e0b40}.lsc-emoji{font-size:4rem;animation:float 3s ease-in-out infinite;display:block}.ls-card h2{font-size:1.5rem;font-weight:900;color:#fff}.ls-card>p{font-size:.92rem;font-weight:600;color:#ffffffa6;line-height:1.5;max-width:240px}.lsc-chips{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:4px}.lsc-chips span{background:#ffffff1f;color:#fffc;font-size:.78rem;font-weight:700;padding:4px 12px;border-radius:999px}.lsc-btn{margin-top:8px;padding:12px 28px;border-radius:999px;font-size:1rem;font-weight:800;letter-spacing:.2px}.lsc-btn-child{background:linear-gradient(135deg,#ff6b6b,#ff8e53);color:#fff;box-shadow:0 4px 20px #ff6b6b66}.lsc-btn-parent{background:linear-gradient(135deg,#a855f7,#6c63ff);color:#fff;box-shadow:0 4px 20px #a855f766}.lsc-btn-teacher{background:linear-gradient(135deg,#f59e0b,#fbbf24);color:#fff;box-shadow:0 4px 20px #f59e0b66}.ls-back-btn{position:absolute;top:24px;left:24px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fffc;padding:8px 16px;border-radius:999px;font-family:var(--font);font-size:.9rem;font-weight:700;cursor:pointer;transition:background .2s;z-index:10}.ls-back-btn:hover{background:#ffffff2e}.ls-inner-header{text-align:center;margin-bottom:36px;position:relative;z-index:1}.ls-inner-icon{font-size:4rem;display:block;margin-bottom:12px;animation:float 3s ease-in-out infinite}.ls-inner-header h2{font-size:1.8rem;font-weight:900;color:#fff;margin-bottom:6px}.ls-inner-header p{color:#fff9;font-size:1rem;font-weight:600}.ls-profile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;max-width:720px;width:100%;position:relative;z-index:1}.ls-profile-card{background:#ffffff14;border:2px solid rgba(255,255,255,.12);border-radius:20px;padding:24px 16px;cursor:pointer;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;transition:all .25s;font-family:var(--font)}.ls-profile-card:hover{transform:translateY(-4px) scale(1.03);border-color:#6c63ff;box-shadow:0 12px 36px #6c63ff4d}.lspc-avatar{font-size:3.2rem;display:block;margin-bottom:4px;animation:float 3s ease-in-out infinite}.lspc-name{font-size:1.05rem;font-weight:900;color:#fff}.lspc-meta{font-size:.78rem;font-weight:700;color:#a855f7}.lspc-streak{font-size:.78rem;font-weight:700;color:#ff9f1c}.lspc-points{font-size:.75rem;font-weight:700;color:#ffffff8c}.ls-new-profile{border-style:dashed;border-color:#fff3}.ls-new-profile:hover{border-color:#6bcb77;box-shadow:0 12px 36px #6bcb7740}.lspc-new{width:64px;height:64px;border-radius:50%;background:#ffffff1a;display:flex;align-items:center;justify-content:center;font-size:2rem;color:#fff9;font-weight:300;margin:0 auto 4px}.ls-create-form{display:flex;flex-direction:column;align-items:center;gap:20px;max-width:520px;width:100%;position:relative;z-index:1}.ls-name-input{width:100%;padding:16px 24px;border-radius:16px;border:2px solid rgba(255,255,255,.2);background:#ffffff14;color:#fff;font-family:var(--font);font-size:1.2rem;font-weight:700;text-align:center;outline:none;transition:border-color .2s}.ls-name-input::placeholder{color:#ffffff59}.ls-name-input:focus{border-color:#6c63ff}.ls-avatar-label{color:#ffffffa6;font-size:.9rem;font-weight:700;align-self:flex-start}.ls-avatar-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;width:100%}.ls-avatar-btn{width:56px;height:56px;border-radius:12px;border:2px solid rgba(255,255,255,.12);background:#ffffff12;font-size:1.8rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.ls-avatar-btn:hover{transform:scale(1.12);border-color:#6c63ff}.ls-avatar-selected{border-color:#6c63ff!important;background:#6c63ff40!important;transform:scale(1.1);box-shadow:0 0 0 3px #6c63ff66}.ls-start-btn{width:100%;padding:16px;border-radius:999px;border:none;background:linear-gradient(135deg,#6c63ff,#a855f7);color:#fff;font-family:var(--font);font-size:1.15rem;font-weight:900;cursor:pointer;transition:all .2s;box-shadow:0 6px 24px #6c63ff80}.ls-start-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 30px #6c63ff99}.ls-start-btn:disabled{opacity:.4;cursor:not-allowed}.ls-pin-dots{display:flex;gap:16px;margin-bottom:12px;position:relative;z-index:1}.ls-pin-dot{width:20px;height:20px;border-radius:50%;border:2px solid rgba(255,255,255,.35);background:transparent;transition:all .2s}.ls-pin-dot-filled{background:#6c63ff;border-color:#6c63ff;box-shadow:0 0 12px #6c63ffb3;transform:scale(1.1)}.ls-pin-dot-error{border-color:#ff6b6b;background:#ff6b6b}.ls-pin-shake{animation:wrongShake .5s ease}.ls-pin-error{color:#ff8585;font-size:.9rem;font-weight:700;margin-bottom:12px;position:relative;z-index:1}.ls-pin-pad{display:grid;grid-template-columns:repeat(3,72px);gap:12px;position:relative;z-index:1;margin-bottom:16px}.ls-pin-key{width:72px;height:72px;border-radius:50%;border:2px solid rgba(255,255,255,.15);background:#ffffff14;color:#fff;font-family:var(--font);font-size:1.4rem;font-weight:800;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}.ls-pin-key:hover{background:#ffffff2e;transform:scale(1.05)}.ls-pin-key:active{transform:scale(.95)}.ls-pin-empty{visibility:hidden}.ls-pin-delete{font-size:1.2rem;color:#ffffff8c}.ls-pin-hint{color:#ffffff59;font-size:.82rem;font-weight:600;position:relative;z-index:1}@media (max-width: 640px){.ls-cards{grid-template-columns:1fr;gap:16px}.ls-title{font-size:1.6rem}.ls-avatar-grid{grid-template-columns:repeat(4,1fr)}.ls-profile-grid{grid-template-columns:repeat(2,1fr)}}.ls-admin-link{position:fixed;bottom:20px;right:20px;z-index:100;border:1px solid rgba(255,255,255,.2);background:#ffffff12;color:#ffffff73;border-radius:999px;padding:6px 14px;font-size:.75rem;font-weight:700;font-family:var(--font);cursor:pointer;transition:background .2s,color .2s}.ls-admin-link:hover{background:#ffffff24;color:#ffffffd9}.ls-register-link{position:relative;z-index:1;margin-top:20px;background:#ffffff1a;border:1.5px solid rgba(255,255,255,.28);color:#ffffffeb;font-size:.9rem;font-weight:700;cursor:pointer;font-family:var(--font);padding:10px 28px;border-radius:999px;transition:background .2s,border-color .2s,transform .2s;letter-spacing:.01em}.ls-register-link:hover{background:#ffffff2e;border-color:#ffffff80;transform:translateY(-1px)}.ls-login-form{width:100%;max-width:360px;position:relative;z-index:1;display:flex;flex-direction:column;gap:16px}.ls-field{display:flex;flex-direction:column;gap:6px}.ls-label{font-size:.82rem;font-weight:700;color:#ffffffb3;text-transform:uppercase;letter-spacing:.06em}.ls-input{width:100%;padding:12px 16px;border-radius:12px;border:2px solid rgba(255,255,255,.15);background:#ffffff14;color:#fff;font-size:1rem;font-family:var(--font);font-weight:600;outline:none;transition:border-color .2s;box-sizing:border-box}.ls-input::placeholder{color:#ffffff59}.ls-input:focus{border-color:#ffffff73;background:#ffffff1f}.ls-pass-wrap{position:relative}.ls-pass-wrap .ls-input{padding-right:48px}.ls-show-pass{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:1.1rem;opacity:.6;transition:opacity .2s}.ls-show-pass:hover{opacity:1}.ls-error{background:#ef444433;border:1px solid rgba(239,68,68,.4);color:#fca5a5;border-radius:10px;padding:10px 14px;font-size:.88rem;font-weight:600;text-align:center}.ls-hint{position:relative;z-index:1;margin-top:12px;color:#ffffff59;font-size:.82rem;font-weight:600;text-align:center;max-width:300px}.ls-counts{position:fixed;top:18px;right:18px;display:flex;gap:8px;z-index:5;animation:ls-counts-fade .5s ease-out}.ls-count-chip{display:flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;background:#ffffff1f;border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(8px);color:#fff;font-size:.8rem;font-weight:700}.ls-count-chip b{font-size:.95rem;font-weight:900;color:#fcd34d}.ls-count-chip>span:last-child{opacity:.85;font-weight:600}@keyframes ls-counts-fade{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 700px){.ls-counts{top:10px;right:10px;gap:4px}.ls-count-chip{padding:4px 8px;font-size:.7rem}.ls-count-chip b{font-size:.8rem}.ls-count-chip>span:last-child{display:none}}.ls-resend{margin-top:6px;text-align:center;font-size:.85rem;color:#ffffffc7}.ls-resend p{margin:0 0 6px}.ls-resend-btn{background:transparent;border:1px solid rgba(255,255,255,.4);color:#fff;padding:8px 14px;border-radius:8px;font-weight:700;cursor:pointer;transition:background .15s}.ls-resend-btn:hover:not(:disabled){background:#ffffff1a}.ls-resend-btn:disabled{opacity:.6;cursor:default}.dashboard{max-width:1100px;margin:0 auto;padding-bottom:32px}.hero-card{background:var(--grad-hero);border-radius:var(--radius-xl);padding:32px;margin-bottom:24px;color:#fff;box-shadow:var(--shadow-lg);overflow:hidden;position:relative}.hero-card:before{content:"";position:absolute;top:-40%;right:-10%;width:300px;height:300px;background:#ffffff14;border-radius:50%}.hero-card:after{content:"";position:absolute;bottom:-30%;right:15%;width:200px;height:200px;background:#ffffff0d;border-radius:50%}.hero-content{display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative;z-index:1}.hero-left{flex:1}.hero-greeting{display:flex;align-items:center;gap:12px;margin-bottom:20px}.greeting-wave{font-size:2.5rem;animation:wiggle 2s ease-in-out infinite;display:block}.hero-name{font-size:1.8rem;font-weight:900;color:#fff;line-height:1.2}.hero-motivate{font-size:1rem;font-weight:600;color:#ffffffd9;margin-top:4px}.hero-stats-row{display:flex;align-items:center;gap:0;background:#ffffff26;border-radius:var(--radius-md);padding:12px 20px;flex-wrap:wrap;gap:8px}.hero-stat{display:flex;flex-direction:column;align-items:center;flex:1;min-width:70px}.hero-stat-val{font-size:1.5rem;font-weight:900;color:#fff;line-height:1.2}.hero-stat-lbl{font-size:.72rem;font-weight:700;color:#ffffffbf;white-space:nowrap;margin-top:2px}.hero-stat-divider{width:1px;height:36px;background:#ffffff40;flex-shrink:0}.hero-right{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:140px}.hero-avatar-wrap{position:relative;display:inline-block}.hero-avatar{font-size:4.5rem;filter:drop-shadow(0 4px 8px rgba(0,0,0,.2));animation:float 3s ease-in-out infinite;display:block;line-height:1}.hero-level-badge{position:absolute;bottom:-4px;right:-8px;background:var(--accent);color:#7a5000;font-size:.75rem;font-weight:900;padding:3px 8px;border-radius:var(--radius-full);border:2px solid white}.hero-level-name{font-size:.9rem;font-weight:800;color:#ffffffe6;text-align:center}.hero-level-bar-wrap{width:100%}.hero-level-sub{font-size:.7rem;color:#ffffffb3;font-weight:600;display:block;text-align:center;margin-top:4px}.hero-mastery-trail{display:flex;flex-wrap:wrap;gap:3px;justify-content:center;margin-top:10px;padding:6px 8px;background:#ffffff14;border-radius:12px;max-width:220px}.mastery-pip{font-size:1rem;line-height:1;cursor:help;transition:transform .2s,opacity .2s,filter .2s}.mastery-pip-off{filter:grayscale(1);opacity:.32}.mastery-pip-on{filter:none;opacity:1}.mastery-pip-on:hover{transform:scale(1.35)}.mastery-pip-current{animation:mastery-pip-pulse 1.6s ease-in-out infinite;text-shadow:0 0 10px rgba(255,215,0,.85)}@keyframes mastery-pip-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@keyframes hero-level-up{0%{transform:scale(1);box-shadow:0 0 #ffd70000}35%{transform:scale(1.18);box-shadow:0 0 22px 8px #ffd700d9;background:#fcd34d}70%{transform:scale(1.18);box-shadow:0 0 28px 12px #ffd700e6}to{transform:scale(1);box-shadow:0 0 #ffd70000}}.hero-level-badge.level-up-glow{animation:hero-level-up 1.25s ease-in-out 2}.card-top-label{display:flex;align-items:center;gap:6px;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-light);margin-bottom:16px}.goal-card{display:flex;flex-direction:column;align-items:center}.goal-ring-wrap{position:relative;width:110px;height:110px;margin:0 auto 12px}.goal-circle{width:110px;height:110px;position:relative}.goal-svg{width:100%;height:100%}.goal-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:2px}.goal-done{font-size:1.6rem;font-weight:900;color:var(--primary)}.goal-sep,.goal-total{font-size:1rem;font-weight:700;color:var(--text-light)}.goal-label{font-size:.9rem;font-weight:700;color:var(--text-medium);text-align:center;margin-bottom:4px}.streak-card{display:flex;flex-direction:column;align-items:center;text-align:center}.streak-big{font-size:3.5rem;font-weight:900;color:#ff6b35;line-height:1;margin-bottom:4px}.streak-sub{font-size:.9rem;font-weight:700;color:var(--text-medium);margin-bottom:8px}.streak-best{font-size:.8rem;font-weight:700;color:var(--text-light);margin-bottom:16px}.weekly-dots{display:flex;gap:6px;align-items:center}.week-day{display:flex;flex-direction:column;align-items:center;gap:4px}.week-dot{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:900}.week-dot-active{background:var(--grad-success);color:#fff}.week-dot-empty{background:var(--border);color:transparent}.week-day-lbl{font-size:.62rem;font-weight:700;color:var(--text-light)}.time-card{display:flex;flex-direction:column;align-items:center;text-align:center}.time-big{font-size:3rem;font-weight:900;color:var(--primary);line-height:1;margin-bottom:4px}.time-unit{font-size:1.2rem;font-weight:700;margin-left:4px}.time-sub{font-size:.9rem;font-weight:700;color:var(--text-medium);margin-bottom:12px}.time-rows{width:100%}.time-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--border);font-size:.85rem;color:var(--text-medium);font-weight:600}.time-row:last-child{border-bottom:none}.time-row strong{color:var(--text-dark)}.subject-progress-card{display:block;cursor:pointer;transition:transform .2s,box-shadow .2s}.subject-progress-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.subj-card-header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.subj-icon{width:44px;height:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.subj-info{flex:1;min-width:0}.subj-name{font-weight:800;font-size:1rem;color:var(--text-dark)}.subj-count{font-size:.8rem;font-weight:600;color:var(--text-light)}.subj-pct{font-size:1.2rem;font-weight:900}.subj-card-footer{display:flex;justify-content:space-between;margin-top:8px;font-size:.78rem;font-weight:600;color:var(--text-light)}.badges-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.recent-badge-card{display:flex;flex-direction:column;align-items:center;text-align:center;cursor:pointer;text-decoration:none;transition:transform .2s}.recent-badge-card:hover{transform:translateY(-2px)}.badge-emoji-big{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.8rem;margin-bottom:8px}.badge-name-sm{font-weight:800;font-size:.85rem;color:var(--text-dark);margin-bottom:2px}.badge-desc-sm{font-size:.72rem;font-weight:600;color:var(--text-light);line-height:1.3}.more-badges-card{border:2px dashed var(--border)!important;color:var(--text-light)}.continue-card{display:flex;align-items:center;gap:12px;padding:16px 20px;cursor:pointer;transition:transform .2s}.continue-card:hover{transform:translate(4px)}.continue-emoji{font-size:1.8rem;flex-shrink:0}.continue-info{flex:1;display:flex;flex-direction:column}.continue-info strong{font-size:.95rem;color:var(--text-dark)}.continue-info span{font-size:.8rem;color:var(--text-light);font-weight:600}.continue-arrow{font-size:1.3rem;font-weight:900}.activity-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.activity-row:last-child{border-bottom:none}.activity-icon{width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0}.activity-info{flex:1;min-width:0}.activity-title{font-weight:700;font-size:.9rem;color:var(--text-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-sub{font-size:.75rem;font-weight:600;color:var(--text-light);margin-top:2px}.activity-reward{display:flex;gap:6px}.xp-pill{background:#fffbeb;color:#78350f;font-size:.75rem;font-weight:800;padding:3px 10px;border-radius:var(--radius-full)}.score-pill{background:#dcfce7;color:#166534;font-size:.75rem;font-weight:800;padding:3px 10px;border-radius:var(--radius-full)}.weekly-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0}.weekly-stat{display:flex;flex-direction:column;align-items:center;padding:20px;border-right:1px solid var(--border)}.weekly-stat:last-child{border-right:none}.weekly-val{font-size:2rem;font-weight:900;color:var(--primary);line-height:1.2}.weekly-lbl{font-size:.8rem;font-weight:600;color:var(--text-light);text-align:center;margin-top:4px}@media (max-width: 768px){.hero-content{flex-direction:column;align-items:flex-start}.hero-right{width:100%;flex-direction:row}.hero-stats-row{gap:4px}.weekly-grid{grid-template-columns:repeat(2,1fr)}.weekly-stat:nth-child(2){border-right:none}}@media (max-width: 480px){.weekly-grid{grid-template-columns:1fr}.weekly-stat{border-right:none;border-bottom:1px solid var(--border);padding:14px 16px}.weekly-stat:last-child{border-bottom:none}}.lesson-modal{background:var(--card-bg);border-radius:var(--radius-xl);max-width:640px;width:100%;max-height:92vh;overflow-y:auto;animation:fadeInScale .3s ease;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column}.lesson-modal-header{padding:28px 28px 24px;border-radius:var(--radius-xl) var(--radius-xl) 0 0;color:#fff;text-align:center;position:relative;flex-shrink:0}.lesson-close-btn{position:absolute;top:16px;right:16px;z-index:10;background:#fff3;border:none;color:#fff;width:36px;height:36px;border-radius:50%;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;font-weight:700}.lesson-close-btn:hover{background:#ffffff59}.lesson-modal-emoji{font-size:3rem;margin-bottom:8px;display:block;animation:float 3s ease-in-out infinite}.lesson-modal-title{font-size:1.4rem;font-weight:900;margin-bottom:12px;text-shadow:0 2px 4px rgba(0,0,0,.15)}.lesson-modal-meta{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.lesson-badge-pill{padding:4px 12px;border-radius:var(--radius-full);font-size:.8rem;font-weight:700}.lesson-progress-bar{display:flex;gap:4px;padding:12px 20px;background:#f8f7ff;border-bottom:1px solid var(--border);flex-shrink:0}.lesson-progress-step{height:6px;border-radius:var(--radius-full);transition:background .3s}.lesson-modal-body{padding:24px 28px;flex:1;overflow-y:auto}.intro-bubble{display:flex;gap:12px;align-items:flex-start;background:var(--bg);border-radius:var(--radius-md);padding:16px;margin-bottom:20px;border-left:4px solid var(--primary)}.intro-wave{font-size:1.5rem;flex-shrink:0}.intro-bubble p{color:var(--text-medium);font-size:1rem;font-weight:600;line-height:1.6}.lesson-image-figure{margin:16px 0 8px;text-align:center}.lesson-image-figure img{max-width:100%;height:auto;border-radius:12px;box-shadow:0 6px 20px #0f172a1f;display:block;margin:0 auto}.lesson-image-figure figcaption{margin-top:8px;font-size:.85rem;color:var(--text-light);font-style:italic}.lesson-section{margin-bottom:20px}.section-heading{font-size:1.15rem;font-weight:800;margin-bottom:10px}.section-text{color:var(--text-medium);font-size:.95rem;line-height:1.7;white-space:pre-line;font-weight:600}.code-block{background:#1e1b4b;border-radius:var(--radius-md);padding:16px 20px;margin-top:12px;overflow-x:auto}.code-block pre{color:#a5b4fc;font-family:Courier New,monospace;font-size:.875rem;line-height:1.7;white-space:pre-wrap;word-break:break-word}.fun-fact-box{background:linear-gradient(135deg,#fff9e6,#fffbf0);border:2px solid #FFD93D;border-radius:var(--radius-md);padding:16px;margin-top:16px}.fun-fact-box p{color:#7a5000;font-size:.9rem;font-weight:700;line-height:1.6}.lesson-modal-footer{display:flex;align-items:center;justify-content:space-between;padding:16px 28px 20px;border-top:2px solid var(--border);background:#fafbff;border-radius:0 0 var(--radius-xl) var(--radius-xl);flex-shrink:0}.section-counter{font-weight:800;color:var(--text-light);font-size:.9rem}.lesson-complete-modal{background:#fff;border-radius:var(--radius-xl);padding:48px 40px;text-align:center;animation:bounceIn .6s ease;max-width:380px;width:100%}.complete-icon{font-size:5rem;margin-bottom:16px;animation:wiggle .5s ease .3s;display:block}.lesson-complete-modal h2{font-size:2rem;font-weight:900;color:var(--text-dark);margin-bottom:8px}.lesson-complete-modal p{color:var(--text-medium);font-size:1.1rem;font-weight:600;margin-bottom:20px}.xp-earned{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;background:var(--grad-gold);border-radius:var(--radius-full);color:#7a5000;font-weight:900;font-size:1.2rem;animation:pulse 1s ease infinite}.ib-block{animation:fadeIn .3s ease;margin-bottom:8px}.ib-question{font-weight:700;font-size:1.05rem;color:var(--text-dark);margin-bottom:16px;line-height:1.4}.ib-options{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.ib-option{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:12px;cursor:pointer;font-size:.95rem;font-family:var(--font);font-weight:600;text-align:left;transition:all .15s ease;width:100%}.ib-option:hover:not(:disabled){transform:translate(4px);box-shadow:0 2px 8px #6c63ff26}.ib-option-letter{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#6c63ff1a;font-weight:900;font-size:.8rem;flex-shrink:0}.ib-tick,.ib-cross{margin-left:auto;font-size:1.1rem}.ib-fillblank-prompt{font-size:1rem;line-height:2.2;color:var(--text-dark);margin-bottom:16px;font-weight:600}.ib-blank-input{display:inline-block;border:2px solid #6C63FF;border-radius:8px;padding:4px 10px;font-size:.95rem;font-family:var(--font);font-weight:700;width:120px;margin:0 4px;text-align:center;outline:none;transition:border-color .2s}.ib-blank-input:focus{box-shadow:0 0 0 3px #6c63ff33}.ib-reorder-zone{background:var(--card-bg, #fff);border:2px dashed #6C63FF;border-radius:12px;padding:12px;margin-bottom:12px;min-height:64px}.ib-reorder-pool{background:var(--bg, #F8F7FF);border:2px solid var(--border);border-radius:12px;padding:12px;margin-bottom:12px;min-height:64px}.ib-zone-label{font-size:.75rem;font-weight:700;color:var(--text-light);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.ib-reorder-list{display:flex;flex-wrap:wrap;gap:8px}.ib-reorder-chip{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:20px;background:#ede9fe;border:2px solid #8B5CF6;color:#4c1d95;font-weight:700;font-size:.88rem;font-family:var(--font);cursor:pointer;transition:all .15s}.ib-reorder-chip:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 8px #8b5cf640}.ib-reorder-chip-placed{background:#ede9fe;border-color:#6c63ff}.ib-step-num{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#6c63ff33;font-size:.75rem;font-weight:900}.ib-reorder-empty{color:var(--text-light);font-size:.88rem;font-style:italic;padding:4px}.ib-recap-block{background:linear-gradient(135deg,#ede9fe,#f0f9ff);border-radius:16px;padding:20px;border:2px solid #C4B5FD}.ib-recap-title{font-weight:900;font-size:1.1rem;color:var(--text-dark);margin-bottom:14px}.ib-recap-list{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column;gap:8px}.ib-recap-item{display:flex;align-items:flex-start;gap:10px;font-size:.95rem;color:var(--text-dark);font-weight:600;line-height:1.4}.ib-recap-bullet{color:#22c55e;font-weight:900;flex-shrink:0;margin-top:1px}.ib-recap-footer{font-size:.85rem;color:#6c63ff;font-weight:700}.ib-explanation-block{background:var(--card-bg, #fff)}.ib-explanation-heading{font-size:1rem;font-weight:900;color:var(--text-dark);margin-bottom:8px}.ib-explanation-text{font-size:.95rem;color:var(--text-dark);line-height:1.6;margin-bottom:16px}.ib-feedback{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-radius:12px;margin-top:12px;animation:fadeIn .3s ease}.ib-feedback-correct{background:#dcfce7;border:2px solid #22C55E;color:#166534}.ib-feedback-wrong{background:#fee2e2;border:2px solid #EF4444;color:#991b1b}.ib-feedback-icon{font-size:1.5rem;flex-shrink:0}.ib-feedback strong{display:block;font-size:.95rem;margin-bottom:2px}.ib-feedback p{font-size:.88rem;margin:0;opacity:.9;line-height:1.4}.ib-check-btn{margin-top:4px}.ib-retry-btn{margin-left:auto;white-space:nowrap;flex-shrink:0}.ib-done-badge{display:inline-block;margin-top:8px;padding:4px 14px;border-radius:20px;background:#dcfce7;color:#166534;font-weight:700;font-size:.85rem}.ib-progress-bar{display:flex;gap:4px;margin-bottom:16px}.ib-progress-step{height:6px;border-radius:999px;flex:1;transition:background .3s}.ib-challenge-block{background:linear-gradient(135deg,#fff7ed,#fef3c7);border:2px solid #F59E0B;border-radius:16px;padding:20px}.ib-challenge-label{font-size:.75rem;font-weight:900;color:#d97706;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.subject-page{max-width:1100px;margin:0 auto;padding-bottom:40px}.subject-header{border-radius:var(--radius-xl);padding:32px;color:#fff;margin-bottom:24px;box-shadow:var(--shadow-lg);position:relative;overflow:hidden}.subject-header:before{content:"";position:absolute;top:-30%;right:-5%;width:280px;height:280px;background:#ffffff14;border-radius:50%;pointer-events:none}.subject-header-content{display:flex;align-items:flex-start;gap:20px;flex-wrap:wrap}.subject-header-icon{font-size:4rem;animation:float 3s ease-in-out infinite;flex-shrink:0;line-height:1}.subject-header-text{flex:1;min-width:200px}.subject-header-text h1{font-size:2rem;font-weight:900;color:#fff;margin-bottom:4px}.subject-header-text p{font-size:1rem;font-weight:600;color:#ffffffd9}.subject-intro{font-size:.9rem!important;margin-top:8px;max-width:500px}.subject-header-stats{display:flex;gap:20px;background:#ffffff26;border-radius:var(--radius-md);padding:16px 20px;flex-shrink:0}.header-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.header-stat-val{font-size:1.8rem;font-weight:900;color:#fff}.header-stat-lbl{font-size:.72rem;font-weight:700;color:#ffffffbf}.subject-progress-wrap{margin-top:20px}.subject-progress-label{display:flex;justify-content:space-between;font-size:.85rem;font-weight:700;color:#ffffffd9;margin-bottom:6px}.lesson-filters{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.filter-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-full);border:2px solid var(--border);background:var(--card-bg);color:var(--text-medium);font-family:var(--font);font-weight:700;font-size:.9rem;cursor:pointer;transition:all .2s}.filter-count{background:var(--border);color:var(--text-medium);font-size:.72rem;font-weight:800;padding:1px 7px;border-radius:var(--radius-full)}.filter-active .filter-count{background:#ffffff4d;color:#fff}.lessons-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}.lesson-card{background:var(--card-bg);border-radius:var(--radius-lg);padding:20px;cursor:pointer;border:2px solid var(--border);transition:all .25s;position:relative;display:flex;flex-direction:column;gap:10px}.lesson-card:hover{transform:translateY(-4px);box-shadow:0 8px 30px #0000001f;border-color:var(--subject-color, var(--primary))}.lesson-done{border-color:#6bcb77!important;background:linear-gradient(135deg,#fafffc,#fff)}.done-stamp{position:absolute;top:14px;right:14px;width:28px;height:28px;background:var(--grad-success);border-radius:50%;color:#fff;font-size:.8rem;font-weight:900;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #6bcb7766}.assigned-stamp{position:absolute;top:14px;right:14px;font-size:1.1rem;line-height:1;filter:drop-shadow(0 1px 3px rgba(245,158,11,.4))}.lesson-card-top{display:flex;align-items:flex-start;justify-content:space-between}.lesson-number{font-size:.72rem;font-weight:800;color:var(--text-light);letter-spacing:.5px}.lesson-emoji-wrap{width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.7rem;flex-shrink:0;transition:transform .2s}.lesson-card:hover .lesson-emoji-wrap{transform:scale(1.1) rotate(5deg)}.lesson-title{font-size:1rem;font-weight:800;color:var(--text-dark);line-height:1.3}.lesson-desc{font-size:.85rem;color:var(--text-medium);font-weight:600;line-height:1.4;flex:1}.lesson-card-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px}.lesson-tags{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.lesson-diff{display:flex;align-items:center;gap:4px;padding:3px 8px;border-radius:var(--radius-full);font-size:.72rem;font-weight:700}.diff-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.lesson-dur{font-size:.75rem;font-weight:600;color:var(--text-light)}.lesson-xp{font-size:.82rem;font-weight:800}.lesson-start-btn{width:100%;padding:10px;border-radius:var(--radius-md);border:none;font-family:var(--font);font-weight:800;font-size:.9rem;cursor:pointer;transition:all .2s;margin-top:4px}.lesson-start-btn:hover{opacity:.9;transform:scale(1.02)}.empty-state{text-align:center;padding:60px 24px;grid-column:1 / -1}.empty-icon{font-size:4rem;margin-bottom:16px}.empty-state h3{font-size:1.4rem;font-weight:900;color:var(--text-dark);margin-bottom:8px}.empty-state p{color:var(--text-medium);font-size:1rem;font-weight:600}@media (max-width: 640px){.subject-header-content{flex-direction:column}.subject-header-stats{width:100%;justify-content:space-around}}.quiz-page{max-width:860px;margin:0 auto;padding-bottom:40px}.quiz-select-header{text-align:center;margin-bottom:32px}.quiz-select-header h1{font-size:2.5rem;font-weight:900;color:var(--text-dark);margin-bottom:8px}.quiz-select-header p{font-size:1.1rem;color:var(--text-medium);font-weight:600}.quiz-subject-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:28px}.quiz-subject-card{background:var(--card-bg);border-radius:var(--radius-lg);padding:24px;cursor:pointer;border:2px solid var(--border);border-top:4px solid var(--quiz-color, var(--primary));transition:all .25s;text-align:center;display:flex;flex-direction:column;align-items:center;box-shadow:var(--shadow-sm)}.quiz-subject-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);border-color:var(--quiz-color, var(--primary))}.quiz-subj-icon{width:64px;height:64px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:2rem;margin-bottom:12px}.quiz-subject-card h2{font-size:1.2rem;font-weight:900;color:var(--text-dark);margin-bottom:4px}.quiz-subject-card>p{font-size:.85rem;color:var(--text-light);font-weight:600}.quiz-subj-topics{font-size:.78rem;color:var(--text-light);font-weight:600;margin-top:6px}.quiz-tips h3{margin-bottom:16px;font-size:1.1rem;font-weight:800}.tips-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.tip-item{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;color:var(--text-medium);font-weight:600}.tip-icon{font-size:1.3rem;flex-shrink:0}.quiz-container{background:var(--card-bg);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-lg);border:2px solid var(--border)}.quiz-header{padding:20px 24px;color:#fff;display:flex;align-items:center;justify-content:space-between}.quiz-subject-label{display:flex;align-items:center;gap:8px;font-weight:800;font-size:1rem}.quiz-counter{font-size:.9rem;font-weight:700;color:#ffffffd9}.quiz-score-badge{background:#fff3;padding:4px 12px;border-radius:var(--radius-full);font-size:.85rem;font-weight:800}.quiz-progress{height:6px;background:#e8e6ff}.quiz-progress-fill{height:100%;transition:width .5s ease;border-radius:0 3px 3px 0}.quiz-dots{display:flex;gap:6px;padding:14px 24px;justify-content:center;flex-wrap:wrap}.quiz-dot{width:20px;height:20px;border-radius:50%;border:2px solid transparent;transition:all .3s}.dot-future{background:#e8e6ff}.dot-current{background:transparent;border-color:var(--primary)}.dot-correct{background:#6bcb77}.dot-wrong{background:#ff6b6b}.quiz-question-wrap{padding:0 28px 20px}.quiz-question{padding:24px 0 20px}.quiz-question.correct{animation:correctFlash .4s ease}.quiz-question.wrong{animation:wrongShake .4s ease}.question-num{font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:1px;margin-bottom:8px}.quiz-question h2{font-size:1.3rem;font-weight:800;color:var(--text-dark);line-height:1.4}.quiz-options{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}.quiz-option{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:var(--radius-md);border:2px solid var(--border);background:var(--card-bg);cursor:pointer;font-family:var(--font);font-weight:700;font-size:.95rem;color:var(--text-dark);text-align:left;transition:all .2s;position:relative}.quiz-option:not(:disabled):hover{border-color:var(--opt-color, var(--primary));background:var(--bg);transform:scale(1.01)}.option-correct{border-color:#6bcb77!important;background:#dcfce7!important;animation:correctFlash .4s ease}.option-wrong{border-color:#ff6b6b!important;background:#fee2e2!important;animation:wrongShake .4s ease}.option-dim{opacity:.4}.opt-letter{width:28px;height:28px;border-radius:50%;background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:900;flex-shrink:0}.option-correct .opt-letter{background:#6bcb77;color:#fff}.option-wrong .opt-letter{background:#ff6b6b;color:#fff}.opt-text{flex:1;line-height:1.3}.opt-check,.opt-x{font-size:1.1rem;flex-shrink:0}.quiz-explanation{display:flex;gap:12px;padding:14px 18px;border-radius:var(--radius-md);animation:fadeIn .3s ease}.explain-correct{background:#dcfce7;border:1px solid #6BCB77}.explain-wrong{background:#fff0e6;border:1px solid #FFB347}.explain-icon{font-size:1.5rem;flex-shrink:0}.quiz-explanation strong{font-size:.95rem;font-weight:800;color:var(--text-dark);display:block;margin-bottom:4px}.quiz-explanation p{font-size:.875rem;color:var(--text-medium);font-weight:600;line-height:1.5}.quiz-bottom{display:flex;align-items:center;justify-content:space-between;padding:16px 28px 24px}.quiz-result-card{background:var(--card-bg);border-radius:var(--radius-xl);padding:40px;text-align:center;box-shadow:var(--shadow-lg);border:2px solid var(--border)}.result-emoji{font-size:5rem;margin-bottom:16px;animation:bounceIn .6s ease;display:block}.result-title{font-size:2.2rem;font-weight:900;color:var(--text-dark);margin-bottom:8px}.result-score-big{font-size:3.5rem;font-weight:900;line-height:1.2}.result-pct{font-size:1.1rem;font-weight:700;color:var(--text-medium);margin-bottom:20px}.result-xp-badge{display:inline-block;background:var(--grad-gold);color:#7a5000;font-weight:900;font-size:1.1rem;padding:10px 24px;border-radius:var(--radius-full);margin-bottom:16px;animation:pulse 1.5s ease infinite}.result-message{color:var(--text-medium);font-size:1rem;font-weight:600;max-width:480px;margin:0 auto 28px;line-height:1.6}.answer-review{text-align:left;margin:0 auto 28px;max-width:560px}.answer-review h3{font-size:1.1rem;font-weight:800;margin-bottom:12px;color:var(--text-dark)}.review-item{display:flex;gap:12px;padding:10px 14px;border-radius:var(--radius-md);margin-bottom:8px;border:1px solid}.review-correct{background:#f0fdf4;border-color:#bbf7d0}.review-wrong{background:#fff7f0;border-color:#fddcb5}.review-icon{font-size:1.2rem;flex-shrink:0;margin-top:1px}.review-question{font-weight:700;font-size:.9rem;color:var(--text-dark);margin-bottom:4px}.review-explanation{font-size:.8rem;color:var(--text-medium);font-weight:600;line-height:1.4}.result-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}@media (max-width: 640px){.quiz-subject-grid,.quiz-options,.tips-grid{grid-template-columns:1fr}.quiz-question-wrap{padding:0 16px 16px}.quiz-result-card{padding:24px 16px}.result-title{font-size:1.6rem}}.rewards-page{max-width:1100px;margin:0 auto;padding-bottom:40px}.rewards-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:16px}.rewards-header-left h1{font-size:2rem;font-weight:900;color:var(--text-dark)}.rewards-header-left p{color:var(--text-medium);font-weight:600;margin-top:4px}.badge-count{display:flex;align-items:baseline;gap:0;flex-wrap:wrap;justify-content:center;background:var(--grad-hero);border-radius:var(--radius-lg);padding:16px 24px;text-align:center;flex-direction:column;align-items:center}.badge-count-num{font-size:2.5rem;font-weight:900;color:#fff;line-height:1}.badge-count-label{font-size:1.2rem;font-weight:700;color:#ffffffb3}.badge-count-text{font-size:.8rem;font-weight:700;color:#ffffffbf;text-transform:uppercase;letter-spacing:.5px;margin-top:2px}.reward-stat-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:20px;transition:transform .2s}.reward-stat-card:hover{transform:translateY(-2px)}.reward-stat-icon{font-size:2rem;margin-bottom:8px}.reward-stat-val{font-size:1.8rem;font-weight:900;color:var(--primary);line-height:1.2}.reward-stat-lbl{font-size:.8rem;font-weight:700;color:var(--text-light);margin-top:2px}.level-progress-card{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.level-left{display:flex;align-items:center;gap:16px;flex-shrink:0}.level-badge-big{width:64px;height:64px;border-radius:50%;background:var(--grad-hero);color:#fff;font-size:1.1rem;font-weight:900;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #6c63ff66;flex-shrink:0}.level-title{font-size:1.1rem;font-weight:800;color:var(--text-dark)}.level-points{font-size:.85rem;font-weight:600;color:var(--text-light);margin-top:2px}.level-bar-wrap{flex:1;min-width:200px}.level-bar-label{display:flex;justify-content:space-between;font-size:.82rem;font-weight:700;color:var(--text-medium);margin-bottom:8px}.level-points-to-next{font-size:.78rem;font-weight:600;color:var(--text-light);margin-top:6px;text-align:right}.badge-filters{display:flex;gap:8px;flex-wrap:wrap}.filter-btn{padding:7px 14px;border-radius:var(--radius-full);border:2px solid var(--border);background:var(--card-bg);color:var(--text-medium);font-family:var(--font);font-weight:700;font-size:.85rem;cursor:pointer;transition:all .2s}.filter-btn:hover{border-color:var(--primary);color:var(--primary)}.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.badge-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:20px 16px;transition:transform .25s;position:relative;border:2px solid var(--border)}.badge-earned{cursor:default;animation:fadeIn .4s ease}.badge-earned:hover{transform:translateY(-4px) scale(1.02);box-shadow:var(--shadow-md)}.badge-locked{opacity:.7}.badge-emoji-circle{width:68px;height:68px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;margin-bottom:10px;transition:transform .2s;box-shadow:0 2px 12px #0000000f}.badge-earned:hover .badge-emoji-circle{transform:scale(1.1) rotate(5deg)}.badge-rarity-tag{font-size:.65rem;font-weight:800;padding:2px 8px;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.badge-name{font-size:.95rem;font-weight:900;margin-bottom:4px;line-height:1.2}.badge-description{font-size:.78rem;color:var(--text-medium);font-weight:600;line-height:1.4;margin-bottom:10px}.badge-xp-bonus{margin-top:auto}.xp-earned-tag{font-size:.78rem;font-weight:800;color:#166534;background:#dcfce7;padding:3px 10px;border-radius:var(--radius-full)}.xp-locked-tag{font-size:.72rem;font-weight:700;color:var(--text-light)}.earn-more-card h3{font-size:1.1rem;font-weight:800;margin-bottom:16px;color:var(--text-dark)}.earn-tips-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.earn-tip{display:flex;gap:12px;align-items:flex-start;padding:12px;background:var(--bg);border-radius:var(--radius-md)}.earn-tip>span{font-size:1.5rem;flex-shrink:0}.earn-tip strong{font-size:.9rem;font-weight:800;color:var(--text-dark);display:block;margin-bottom:2px}.earn-tip p{font-size:.8rem;color:var(--text-medium);font-weight:600;line-height:1.4}@media (max-width: 640px){.earn-tips-grid{grid-template-columns:1fr}}.pv-overview,.pv-report{min-height:100vh;background:var(--bg);padding:28px 28px 60px;max-width:1200px;margin:0 auto;position:relative}.pv-card{background:#fff;border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-card);border:1px solid var(--border)}.pv-section-title{font-size:1rem;font-weight:800;color:var(--text-dark);margin-bottom:16px;display:flex;align-items:center;gap:6px}.pv-back-btn{display:inline-flex;align-items:center;gap:6px;background:var(--bg);border:2px solid var(--border);border-radius:var(--radius-full);padding:8px 18px;font-family:var(--font);font-size:.9rem;font-weight:700;color:var(--text-medium);cursor:pointer;margin-bottom:24px;transition:all .2s}.pv-back-btn:hover{border-color:var(--primary);color:var(--primary)}.pv-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;flex-wrap:wrap;gap:12px}.pv-topbar-left{display:flex;align-items:center;gap:14px}.pv-topbar-icon{font-size:2.5rem}.pv-topbar-left h1{font-size:1.8rem;font-weight:900;color:var(--text-dark)}.pv-topbar-left p{color:var(--text-medium);font-weight:600;font-size:.9rem}.pv-logout-btn{display:flex;align-items:center;gap:6px;padding:10px 20px;border-radius:var(--radius-full);border:2px solid #FEE2E2;background:#fff5f5;color:#dc2626;font-family:var(--font);font-size:.9rem;font-weight:800;cursor:pointer;transition:all .2s}.pv-logout-btn:hover{background:#fee2e2}.pv-learner-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin-bottom:8px}.pv-learner-card{background:#fff;border-radius:var(--radius-xl);padding:24px;box-shadow:var(--shadow-card);border:2px solid var(--border);display:flex;flex-direction:column;gap:8px;transition:transform .25s,box-shadow .25s}.pv-learner-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.pvlc-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:4px}.pvlc-avatar{font-size:3.5rem;line-height:1;animation:float 3s ease-in-out infinite}.pvlc-level{background:var(--grad-hero);color:#fff;font-size:.8rem;font-weight:900;padding:4px 12px;border-radius:var(--radius-full)}.pvlc-name{font-size:1.3rem;font-weight:900;color:var(--text-dark);margin:0}.pvlc-title{font-size:.82rem;font-weight:700;color:var(--primary);margin-bottom:4px}.pvlc-stats{display:flex;gap:12px;background:var(--bg);border-radius:var(--radius-md);padding:10px 12px;margin:4px 0}.pvlc-stat{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px}.pvlc-stat span:first-child{font-size:.95rem;font-weight:800;color:var(--text-dark)}.pvlc-stat span:last-child{font-size:.66rem;font-weight:700;color:var(--text-light)}.pvlc-progress-label{display:flex;justify-content:space-between;font-size:.75rem;font-weight:700;color:var(--text-medium)}.pvlc-subj-row{display:flex;align-items:center;gap:8px}.pvlc-subj-emoji{font-size:.9rem;flex-shrink:0;width:20px}.pvlc-subj-bar{flex:1;height:6px;background:var(--border);border-radius:999px;overflow:hidden}.pvlc-subj-pct{font-size:.72rem;font-weight:800;width:32px;text-align:right}.pvlc-quiz-avg{font-size:.8rem;font-weight:700;color:var(--text-medium)}.pvlc-last-active{font-size:.75rem;font-weight:600;color:var(--text-light)}.pvlc-view-btn{width:100%;padding:11px;border-radius:var(--radius-md);border:none;background:var(--grad-hero);color:#fff;font-family:var(--font);font-size:.9rem;font-weight:800;cursor:pointer;margin-top:4px;transition:all .2s;box-shadow:0 3px 12px #6c63ff4d}.pvlc-view-btn:hover{opacity:.9;transform:translateY(-1px)}.pv-add-card{border:2px dashed var(--border)!important;cursor:pointer;align-items:center;justify-content:center;gap:12px;font-family:var(--font);transition:all .25s;min-height:220px}.pv-add-card:hover{border-color:var(--primary)!important;box-shadow:var(--shadow-md)}.pv-add-icon{width:60px;height:60px;border-radius:50%;background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:2rem;color:var(--primary);font-weight:300}.pv-add-label{font-size:1.1rem;font-weight:800;color:var(--text-dark)}.pv-add-sub{font-size:.85rem;font-weight:600;color:var(--text-light)}.pv-empty-state{text-align:center;padding:60px 24px;color:var(--text-light)}.pv-empty-state h3{font-size:1.4rem;font-weight:800;color:var(--text-dark);margin-bottom:8px}.pv-empty-state p{font-size:1rem;font-weight:600}.pv-table{width:100%;border-collapse:collapse;font-size:.88rem}.pv-table th{text-align:left;padding:10px 12px;font-size:.75rem;font-weight:800;color:var(--text-light);text-transform:uppercase;letter-spacing:.4px;border-bottom:2px solid var(--border)}.pv-table-row{cursor:pointer;transition:background .15s}.pv-table-row:hover td{background:var(--bg)}.pv-table-row td{padding:12px;border-bottom:1px solid var(--border);font-weight:700;color:var(--text-dark)}.pv-table-user{display:flex;align-items:center;gap:8px;font-size:1rem}.pv-profile-hero{background:var(--grad-hero);border-radius:var(--radius-xl);padding:28px 32px;color:#fff;display:flex;align-items:center;gap:20px;margin-bottom:20px;flex-wrap:wrap;box-shadow:var(--shadow-lg)}.pv-hero-avatar{font-size:4rem;animation:float 3s ease-in-out infinite;flex-shrink:0;line-height:1}.pv-hero-info{flex:1;min-width:140px}.pv-hero-info h1{font-size:1.8rem;font-weight:900;color:#fff}.pv-hero-meta{display:flex;gap:12px;margin-top:4px;flex-wrap:wrap}.pv-hero-meta span{font-size:.85rem;font-weight:600;color:#ffffffbf}.pv-hero-stats{display:flex;gap:20px;background:#ffffff26;padding:14px 20px;border-radius:var(--radius-md);flex-wrap:wrap}.pv-hstat{display:flex;flex-direction:column;align-items:center;gap:2px}.pv-hstat span:first-child{font-size:1.4rem;font-weight:900;color:#fff}.pv-hstat span:last-child{font-size:.7rem;font-weight:700;color:#ffffffb3}.pv-level-row{display:flex;align-items:center;gap:16px}.pv-level-badge{width:52px;height:52px;border-radius:50%;background:var(--grad-hero);color:#fff;font-size:.9rem;font-weight:900;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 12px #6c63ff59}.pv-level-bar-wrap{flex:1}.pv-level-labels{display:flex;justify-content:space-between;font-size:.82rem;font-weight:700;color:var(--text-medium);margin-bottom:6px}.pv-pts-to-next{font-size:.75rem;font-weight:600;color:var(--text-light);margin-top:4px;text-align:right}.pv-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.pv-stat-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px}.pv-stat-icon{font-size:1.5rem}.pv-stat-val{font-size:1.2rem;font-weight:900;color:var(--primary)}.pv-stat-lbl{font-size:.72rem;font-weight:700;color:var(--text-light)}.pv-subjects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.pv-subj-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.pv-subj-head span{font-size:1.4rem}.pv-subj-head h3{font-size:1rem;font-weight:800;color:var(--text-dark)}.pv-subj-nums{display:flex;gap:0;margin-bottom:4px}.pv-snum{flex:1;display:flex;flex-direction:column;align-items:center;border-right:1px solid var(--border);padding:6px 0}.pv-snum:last-child{border-right:none}.pv-snum span:first-child{font-size:1rem;font-weight:900;color:var(--text-dark)}.pv-snum span:last-child{font-size:.66rem;font-weight:700;color:var(--text-light)}.pv-score-chips{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.pv-score-chip{font-size:.72rem;font-weight:800;padding:2px 8px;border-radius:999px}.pv-no-scores{font-size:.8rem;color:var(--text-light);font-weight:600;margin-top:6px}.pv-week-row{display:flex;gap:10px;justify-content:space-around;flex-wrap:wrap;margin-bottom:12px}.pv-week-day{display:flex;flex-direction:column;align-items:center;gap:3px}.pv-week-dot{width:40px;height:40px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:900}.pv-dot-active{background:var(--grad-success);color:#fff;box-shadow:0 3px 8px #6bcb7759}.pv-dot-empty{background:var(--border);color:transparent}.pv-dot-today{border:2px solid var(--primary);background:var(--bg);color:var(--primary)}.pv-week-name{font-size:.68rem;font-weight:800;color:var(--text-medium)}.pv-week-date{font-size:.64rem;font-weight:600;color:var(--text-light)}.pv-week-summary{display:flex;gap:10px;justify-content:center;font-size:.82rem;font-weight:700;color:var(--text-medium);border-top:1px solid var(--border);padding-top:10px;flex-wrap:wrap}.pv-2col{display:grid;grid-template-columns:1fr 1fr;gap:14px}.pv-bar-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}.pv-bar-row:last-child{margin-bottom:0}.pv-bar-label{width:72px;font-size:.82rem;font-weight:700;color:var(--text-medium);flex-shrink:0}.pv-bar-track{flex:1;height:10px;background:var(--border);border-radius:999px;overflow:hidden}.pv-bar-fill{height:100%;border-radius:999px;transition:width 1s ease;min-width:3px}.pv-bar-val{width:48px;text-align:right;font-size:.82rem;font-weight:800;color:var(--text-dark)}.pv-badge-row{display:flex;flex-wrap:wrap;gap:8px}.pv-badge-chip{display:flex;align-items:center;gap:5px;padding:5px 12px;border-radius:999px;font-size:.82rem}.pv-badge-chip span:last-child{font-weight:800}.pv-empty-text{color:var(--text-light);font-size:.9rem;font-weight:600}.pv-insights{display:flex;flex-direction:column;gap:10px}.pv-insight{display:flex;gap:10px;align-items:flex-start;padding:11px 14px;border-radius:var(--radius-md);font-size:.88rem;font-weight:600;line-height:1.5}.pv-insight>span:first-child{font-size:1.1rem;flex-shrink:0}.pv-insight-good{background:#f0fdf4;color:#166534;border:1px solid #BBF7D0}.pv-insight-tip{background:#f0f9ff;color:#0c4a6e;border:1px solid #BAE6FD}.pv-danger-card{border:1px solid #FEE2E2!important;background:snow}.pv-danger-text{font-size:.9rem;font-weight:600;color:var(--text-medium);margin-bottom:12px}.pv-delete-btn{padding:9px 20px;border-radius:var(--radius-full);border:1px solid #EF4444;background:#fee2e2;color:#ef4444;font-family:var(--font);font-weight:800;font-size:.88rem;cursor:pointer;transition:all .2s}.pv-delete-btn:hover{background:#ef4444;color:#fff}.pv-add-form-wrap{display:flex;justify-content:center;padding:20px 0}.pv-add-form{max-width:520px;width:100%;text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px}.pv-add-form h2{font-size:1.5rem;font-weight:900;color:var(--text-dark)}.pv-name-input{width:100%;padding:14px 20px;border-radius:var(--radius-md);border:2px solid var(--border);font-family:var(--font);font-size:1rem;font-weight:700;outline:none;transition:border-color .2s;text-align:center}.pv-name-input:focus{border-color:var(--primary)}.pv-avatar-label{font-size:.9rem;font-weight:700;color:var(--text-medium);align-self:flex-start}.pv-avatar-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;width:100%}.pv-avatar-btn{width:52px;height:52px;border-radius:var(--radius-md);border:2px solid var(--border);background:var(--bg);font-size:1.6rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.pv-avatar-btn:hover{transform:scale(1.1);border-color:var(--primary)}.pv-avatar-sel{border-color:var(--primary)!important;background:#eef2ff!important;transform:scale(1.1);box-shadow:0 0 0 3px #6c63ff33}.pv-create-btn{width:100%;padding:14px;border-radius:999px;border:none;background:var(--grad-hero);color:#fff;font-family:var(--font);font-size:1rem;font-weight:900;cursor:pointer;box-shadow:0 4px 16px #6c63ff66;transition:all .2s}.pv-create-btn:hover:not(:disabled){transform:translateY(-2px)}.pv-create-btn:disabled{opacity:.4;cursor:not-allowed}@media (max-width: 960px){.pv-subjects-grid{grid-template-columns:1fr 1fr}.pv-stat-grid{grid-template-columns:repeat(2,1fr)}.pv-2col{grid-template-columns:1fr}}@media (max-width: 640px){.pv-overview,.pv-report{padding:16px}.pv-subjects-grid{grid-template-columns:1fr}.pv-hero-stats{gap:12px}.pv-learner-grid{grid-template-columns:1fr}.pv-table{font-size:.78rem}.pv-avatar-grid{grid-template-columns:repeat(4,1fr)}}.pv-add-disabled{opacity:.55;cursor:not-allowed!important;pointer-events:none}.pv-teachers-btn{padding:8px 16px;border-radius:10px;border:1.5px solid #F59E0B;background:#fff7ed;color:#f59e0b;font-weight:700;font-size:.88rem;cursor:pointer;transition:background .15s,color .15s;font-family:inherit}.pv-teachers-btn:hover{background:#f59e0b;color:#fff}.pv-teacher-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.pv-teacher-card{background:var(--card-bg, #fff);border-radius:16px;border:1.5px solid var(--border, #eee);border-top:4px solid #6C63FF;padding:20px;display:flex;flex-direction:column;gap:14px;box-shadow:0 2px 12px #0000000d;transition:box-shadow .2s,transform .2s}.pv-teacher-card:hover{box-shadow:0 6px 24px #0000001a;transform:translateY(-2px)}.pv-tc-header{display:flex;align-items:center;gap:14px}.pv-tc-avatar{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;flex-shrink:0}.pv-tc-info{flex:1;min-width:0}.pv-tc-name{font-size:1.05rem;font-weight:800;color:var(--text-dark);margin-bottom:4px}.pv-tc-badge{display:inline-block;font-size:.78rem;font-weight:700;padding:3px 10px;border-radius:20px}.pv-tc-bio{font-size:.88rem;color:var(--text-medium);line-height:1.55;margin:0}.pv-tc-bio-empty{color:var(--text-light);font-style:italic}.pv-tc-stats{display:flex;gap:0;border:1.5px solid var(--border, #eee);border-radius:12px;overflow:hidden}.pv-tc-stat{flex:1;display:flex;flex-direction:column;align-items:center;padding:10px 8px;border-right:1.5px solid var(--border, #eee);gap:2px}.pv-tc-stat:last-child{border-right:none}.pv-tc-stat span:first-child{font-size:1.3rem;font-weight:900;color:var(--text-dark)}.pv-tc-stat span:last-child{font-size:.72rem;font-weight:600;color:var(--text-light)}.pv-tc-buckets{display:flex;flex-wrap:wrap;gap:6px}.pv-tc-bucket-tag{font-size:.78rem;font-weight:700;padding:4px 10px;border-radius:20px;border:1.5px solid;background:transparent}.pv-tc-footer{padding-top:8px;border-top:1px solid var(--border, #eee)}.pv-tc-joined{font-size:.78rem;color:var(--text-light);font-weight:600}@keyframes pv-drawer-slide{0%{transform:translate(100%)}to{transform:translate(0)}}.pv-sub-overlay{position:fixed;inset:0;background:#00000073;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;animation:pv-sub-fade .2s ease}@keyframes pv-sub-fade{0%{opacity:0}to{opacity:1}}.pv-sub-modal{background:#fff;border-radius:20px;box-shadow:0 24px 64px #00000038;padding:28px 24px;width:100%;max-width:540px;max-height:90vh;overflow-y:auto;position:relative;animation:pv-sub-pop .25s ease}@keyframes pv-sub-pop{0%{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}.pv-sub-close{position:absolute;top:12px;right:14px;background:#f1f5f9;border:none;border-radius:8px;width:32px;height:32px;font-size:1rem;font-weight:800;cursor:pointer;color:#64748b;transition:all .15s}.pv-sub-close:hover{background:#e2e8f0;color:#1e293b}.pv-sub-header{display:flex;align-items:center;gap:12px;margin-bottom:20px}.pv-sub-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px}.pv-sub-plan-card{position:relative;background:#fff;border:2px solid #e2e8f0;border-radius:14px;padding:18px 12px;text-align:center;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;align-items:center;gap:4px}.pv-sub-plan-card:hover{border-color:var(--pc);transform:translateY(-2px);box-shadow:0 8px 24px #00000014}.pv-sub-featured{border-color:var(--pc);box-shadow:0 4px 20px #6c63ff26}.pv-sub-plan-badge{position:absolute;top:-10px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#6c63ff,#a855f7);color:#fff;font-size:.62rem;font-weight:800;padding:3px 10px;border-radius:8px;white-space:nowrap}@media (max-width: 600px){.pv-sub-plans{grid-template-columns:1fr}.pv-sub-modal{padding:20px 16px}}.lb-overlay{position:fixed;inset:0;background:#0000008c;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px}.lb-panel-wrap{display:flex;gap:14px;width:100%;max-width:720px;max-height:92vh;align-items:flex-start}.lb-with-refs{max-width:1100px}.lb-panel{background:var(--card-bg, #fff);border-radius:20px;width:100%;max-width:720px;max-height:92vh;display:flex;flex-direction:column;box-shadow:0 24px 64px #00000038;overflow:hidden;flex-shrink:0}.lb-ref-panel{background:var(--card-bg, #fff);border-radius:20px;width:340px;min-width:300px;max-height:92vh;display:flex;flex-direction:column;box-shadow:0 24px 64px #0000002e;overflow:hidden;flex-shrink:0}.lb-ref-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 12px;font-weight:800;font-size:.95rem;color:var(--text-dark);border-bottom:2px solid var(--border, #eee);flex-shrink:0}.lb-ref-search{margin:10px 14px 0;width:calc(100% - 28px)}.lb-ref-empty{padding:24px 16px;text-align:center;color:var(--text-light);font-weight:600;font-size:.88rem}.lb-ref-list{flex:1;overflow-y:auto;padding:10px 14px 14px;display:flex;flex-direction:column;gap:12px}.lb-ref-book{background:var(--bg, #f9f9f9);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;border:1.5px solid var(--border, #eee)}.lb-ref-book-title{font-size:.92rem;font-weight:800;color:var(--text-dark)}.lb-ref-book-author{font-size:.78rem;color:var(--text-light);font-style:italic}.lb-ref-book-subject{display:inline-flex;align-items:center;gap:4px;font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:20px;align-self:flex-start}.lb-ref-book-content{font-size:.83rem;color:var(--text-medium);line-height:1.6;max-height:200px;overflow-y:auto;white-space:pre-wrap;border-top:1px solid var(--border, #eee);padding-top:8px;margin-top:2px}.lb-refs-btn{padding:6px 12px;border-radius:10px;border:1.5px solid var(--border, #ddd);background:var(--bg, #f5f5f5);font-size:.82rem;font-weight:700;cursor:pointer;transition:all .15s;color:var(--text-medium)}.lb-refs-btn:hover{border-color:#6c63ff;color:#6c63ff}.lb-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px 14px;border-bottom:3px solid var(--border, #eee);flex-shrink:0}.lb-header-left{display:flex;align-items:center;gap:14px}.lb-header-emoji{font-size:2.2rem;line-height:1}.lb-header-title{font-size:1.15rem;font-weight:800;color:var(--text-dark, #1a1a2e)}.lb-header-sub{font-size:.85rem;font-weight:700;margin-top:2px}.lb-close{background:var(--bg, #f5f5f5);border:none;border-radius:50%;width:34px;height:34px;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-medium, #666);transition:background .15s}.lb-close:hover{background:#ffe5e5;color:#e53935}.lb-steps{display:flex;border-bottom:1px solid var(--border, #eee);flex-shrink:0;background:var(--bg, #f9f9f9)}.lb-step-btn{flex:1;padding:12px 8px;font-size:.88rem;font-weight:700;background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;color:var(--text-medium, #888);transition:color .15s,border-color .15s}.lb-step-btn:hover{color:var(--text-dark, #333)}.lb-step-active{color:#6c63ff;border-bottom-color:#6c63ff}.lb-step-done{color:#6bcb77}.lb-body{flex:1;overflow-y:auto;padding:0}.lb-form{padding:20px 24px;display:flex;flex-direction:column;gap:14px}.lb-form-row{display:flex;gap:14px}.lb-form-row-2>.lb-field{flex:1}.lb-field{display:flex;flex-direction:column;gap:6px;flex:1}.lb-field-sm{flex:0 0 auto;min-width:140px}.lb-field>label{font-size:.84rem;font-weight:700;color:var(--text-medium, #666);display:flex;align-items:center;gap:8px}.lb-field-hint{font-weight:400;color:var(--text-light, #aaa);font-size:.79rem}.lb-input{width:100%;padding:9px 13px;border:1.5px solid var(--border, #e0e0e0);border-radius:10px;font-size:.93rem;background:var(--bg, #f9f9f9);color:var(--text-dark, #1a1a2e);font-family:inherit;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.lb-input:focus{outline:none;border-color:#6c63ff;box-shadow:0 0 0 3px #6c63ff1f;background:var(--card-bg, #fff)}.lb-input-error{border-color:#ef4444!important;background:#fff5f5!important}.lb-textarea{resize:vertical;min-height:80px;line-height:1.55}.lb-code-area{font-family:Courier New,monospace;font-size:.88rem;background:#1a1a2e!important;color:#a8ff78!important;border-color:#333!important}.lb-code-area:focus{border-color:#6c63ff!important;box-shadow:0 0 0 3px #6c63ff26}.lb-error{font-size:.8rem;color:#ef4444;font-weight:600}.lb-error-block{background:#fff5f5;padding:8px 12px;border-radius:8px;border-left:3px solid #EF4444}.lb-subject-locked{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:10px;font-weight:700;font-size:.9rem}.lb-emoji-row{position:relative}.lb-emoji-btn{font-size:1.8rem;background:var(--bg, #f5f5f5);border:1.5px solid var(--border, #e0e0e0);border-radius:10px;width:52px;height:44px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .2s}.lb-emoji-btn:hover{border-color:#6c63ff}.lb-emoji-picker{position:absolute;top:50px;left:0;background:var(--card-bg, #fff);border:1.5px solid var(--border, #e0e0e0);border-radius:12px;padding:10px;display:flex;flex-wrap:wrap;gap:4px;width:220px;z-index:10;box-shadow:0 8px 24px #0000001f}.lb-emoji-opt{font-size:1.4rem;background:none;border:none;border-radius:8px;width:36px;height:36px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.lb-emoji-opt:hover{background:var(--bg, #f5f5f5)}.lb-diff-btns{display:flex;gap:8px;flex-wrap:wrap}.lb-diff-btn{padding:6px 14px;border-radius:20px;border:1.5px solid var(--border, #e0e0e0);background:var(--bg, #f5f5f5);font-size:.84rem;font-weight:700;cursor:pointer;transition:all .15s;color:var(--text-medium, #666)}.lb-diff-btn:hover{border-color:#6c63ff;color:#6c63ff}.lb-diff-active{box-shadow:0 2px 8px #00000026}.lb-xp-wrap{display:flex;align-items:center;gap:8px}.lb-xp-wrap .lb-input{max-width:100px}.lb-xp-label{font-weight:700;color:var(--text-medium, #888);font-size:.9rem}.lb-sections-label{display:flex;align-items:center;justify-content:space-between;font-size:.84rem;font-weight:700;color:var(--text-medium, #666)}.lb-section-card{background:var(--bg, #f9f9f9);border-radius:12px;padding:14px 16px;border-left:4px solid #6C63FF;display:flex;flex-direction:column;gap:10px}.lb-section-header{display:flex;align-items:center;justify-content:space-between}.lb-section-num{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;font-weight:800;font-size:.88rem}.lb-remove-btn{background:none;border:none;cursor:pointer;font-size:.9rem;color:var(--text-light, #aaa);padding:4px;border-radius:50%;transition:color .15s,background .15s}.lb-remove-btn:hover{color:#ef4444;background:#fee2e2}.lb-add-section-btn{background:none;border:2px dashed var(--border, #ddd);border-radius:12px;padding:12px;width:100%;font-size:.9rem;font-weight:700;color:var(--text-medium, #888);cursor:pointer;transition:border-color .2s,color .2s}.lb-add-section-btn:hover{border-color:#6c63ff;color:#6c63ff}.lb-footer{display:flex;align-items:center;justify-content:space-between;padding-top:8px;margin-top:4px;border-top:1px solid var(--border, #eee)}.lb-footer-preview{padding:20px 24px;background:var(--bg, #f9f9f9);margin-top:0;border-top:1px solid var(--border, #eee);flex-shrink:0}.lb-save-draft-btn{padding:10px 20px;border-radius:12px;border:1.5px solid var(--border, #ddd);background:var(--card-bg, #fff);font-size:.9rem;font-weight:700;cursor:pointer;color:var(--text-medium, #666);transition:border-color .2s,color .2s}.lb-save-draft-btn:hover{border-color:#6c63ff;color:#6c63ff}.lb-publish-btn{padding:10px 22px;border-radius:12px;font-weight:800;font-size:.9rem}.lb-preview{padding:20px 24px;display:flex;flex-direction:column;gap:16px}.lb-preview-card{background:var(--card-bg, #fff);border-radius:16px;border:1.5px solid var(--border, #eee);border-top:4px solid #6C63FF;overflow:hidden;box-shadow:0 2px 12px #0000000f}.lb-preview-header{padding:20px;display:flex;gap:16px;align-items:flex-start}.lb-preview-emoji{font-size:2.4rem;flex-shrink:0}.lb-preview-title{font-size:1.15rem;font-weight:800;color:var(--text-dark, #1a1a2e);margin-bottom:8px}.lb-preview-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px}.lb-preview-desc{font-size:.9rem;color:var(--text-medium, #666);line-height:1.5}.lb-preview-body{padding:16px 20px;border-top:1px solid var(--border, #eee);display:flex;flex-direction:column;gap:16px}.lb-preview-intro{display:flex;gap:10px;align-items:flex-start;background:var(--bg, #f9f9f9);padding:12px 14px;border-radius:10px;font-size:.93rem;color:var(--text-dark, #1a1a2e);line-height:1.55}.lb-preview-section h3{font-size:1rem;font-weight:800;margin:0 0 6px}.lb-preview-section p{font-size:.91rem;color:var(--text-medium, #555);line-height:1.6;margin:0}.lb-preview-code{background:#1a1a2e;border-radius:8px;padding:12px;margin-top:8px}.lb-preview-code pre{margin:0;font-size:.85rem;color:#a8ff78;font-family:Courier New,monospace;white-space:pre-wrap;word-break:break-word}.lb-preview-funfact{background:linear-gradient(135deg,#fff9c4,#fffde7);border-left:4px solid #F59E0B;border-radius:10px;padding:12px 14px;font-size:.9rem;color:var(--text-dark, #333)}.btn{padding:9px 20px;border-radius:12px;font-weight:700;font-size:.9rem;cursor:pointer;border:none;transition:opacity .15s,transform .1s}.btn:hover{opacity:.9}.btn-primary{background:linear-gradient(135deg,#6c63ff,#9b59b6);color:#fff}.btn-ghost{background:var(--bg, #f5f5f5);color:var(--text-medium, #666);border:1.5px solid var(--border, #ddd)}.btn-ghost:hover{background:var(--card-bg, #efefef)}.btn-sm{padding:6px 14px;font-size:.82rem}.lb-new-subject-btn{margin-top:4px;background:none;border:1.5px dashed var(--border, #ddd);border-radius:8px;padding:5px 10px;font-size:.8rem;font-weight:700;color:var(--text-medium, #888);cursor:pointer;transition:border-color .2s,color .2s;text-align:left}.lb-new-subject-btn:hover{border-color:#6c63ff;color:#6c63ff}.lb-new-subject-form{margin-top:6px;background:var(--bg, #f9f9f9);border:1.5px solid var(--border, #e0e0e0);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:10px;animation:fadeIn .15s ease}.lb-new-subject-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.lb-color-swatches{display:flex;flex-wrap:wrap;gap:5px;flex:1}.lb-color-swatch{width:20px;height:20px;border-radius:50%;border:none;cursor:pointer;transition:transform .15s,box-shadow .15s;flex-shrink:0}.lb-color-swatch:hover{transform:scale(1.2)}.lb-create-subject-btn{padding:7px 14px;border:none;border-radius:10px;font-size:.84rem;font-weight:700;color:#fff;cursor:pointer;transition:opacity .15s;align-self:flex-end}.lb-create-subject-btn:hover{opacity:.88}.lb-create-subject-btn:disabled{opacity:.45;cursor:not-allowed}@media (max-width: 600px){.lb-panel{max-height:100vh;border-radius:16px 16px 0 0;align-self:flex-end}.lb-form-row{flex-direction:column}.lb-form-row-2{flex-direction:row}.lb-field-sm{min-width:0}.lb-preview-header{flex-direction:column}}.csv-overlay{position:fixed;inset:0;background:#0000008c;z-index:1200;display:flex;align-items:center;justify-content:center;padding:20px}.csv-panel{background:var(--card-bg, #fff);border-radius:18px;width:100%;max-width:700px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 24px 64px #00000038;overflow:hidden}.csv-header{display:flex;align-items:center;gap:14px;padding:22px 24px 16px;border-bottom:1px solid var(--border, #e8e8f0);flex-shrink:0}.csv-header-icon{font-size:1.8rem;width:48px;height:48px;background:#6c63ff1a;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.csv-header-title{font-size:1.12rem;font-weight:800;color:var(--text-dark, #1a1a2e)}.csv-header-sub{font-size:.82rem;color:var(--text-light, #888);margin-top:2px}.csv-close-btn{margin-left:auto;background:none;border:none;font-size:1.1rem;color:var(--text-light, #999);cursor:pointer;width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background .15s;flex-shrink:0}.csv-close-btn:hover{background:var(--border, #eee)}.csv-steps{display:flex;align-items:center;padding:14px 24px;border-bottom:1px solid var(--border, #e8e8f0);flex-shrink:0;gap:0}.csv-step{display:flex;align-items:center;gap:8px;font-size:.8rem;font-weight:600;color:var(--text-light, #bbb);flex:1;position:relative}.csv-step:not(:last-child):after{content:"";position:absolute;right:4px;top:50%;transform:translateY(-50%);width:50%;height:2px;background:var(--border, #e8e8f0)}.csv-step-dot{width:26px;height:26px;border-radius:50%;background:var(--border, #e8e8f0);color:var(--text-light, #bbb);font-size:.75rem;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;z-index:1}.csv-step-active{color:#6c63ff}.csv-step-active .csv-step-dot{background:#6c63ff;color:#fff}.csv-step-done{color:#16a34a}.csv-step-done .csv-step-dot{background:#16a34a;color:#fff}.csv-body{flex:1;overflow-y:auto;padding:24px}.csv-upload-step{display:flex;flex-direction:column;gap:18px}.csv-template-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.csv-template-btn{background:#6c63ff;color:#fff;border:none;border-radius:10px;padding:10px 20px;font-size:.86rem;font-weight:700;cursor:pointer;font-family:inherit;transition:opacity .15s;white-space:nowrap}.csv-template-btn:hover{opacity:.86}.csv-template-hint{font-size:.8rem;color:var(--text-light, #999)}.csv-drop-zone{border:2px dashed var(--border, #d1d5db);border-radius:14px;padding:40px 24px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;background:var(--bg, #f9f9fb);user-select:none}.csv-drop-zone:hover,.csv-drop-active{border-color:#6c63ff;background:#6c63ff09}.csv-drop-icon{font-size:2.4rem;margin-bottom:10px}.csv-drop-text{font-size:.9rem;font-weight:700;color:var(--text-dark, #333);margin-bottom:6px}.csv-drop-hint{font-size:.76rem;color:var(--text-light, #aaa)}.csv-file-error{background:#fef2f2;color:#dc2626;border:1px solid #FCA5A5;border-radius:8px;padding:10px 14px;font-size:.84rem;font-weight:600}.csv-format-info{background:var(--bg, #f5f5fa);border-radius:12px;padding:16px 18px}.csv-format-title{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-medium, #666);margin-bottom:8px}.csv-columns-grid{display:flex;flex-wrap:wrap;gap:6px}.csv-columns-grid code{background:var(--card-bg, #fff);border:1px solid var(--border, #ddd);border-radius:6px;padding:3px 8px;font-size:.76rem;color:#6c63ff;font-family:Courier New,monospace}.csv-format-note{font-size:.78rem;color:var(--text-light, #999);margin-top:12px;line-height:1.5}.csv-preview-step{display:flex;flex-direction:column;gap:16px}.csv-preview-summary{display:flex;gap:10px;flex-wrap:wrap}.csv-sum-item{flex:1;min-width:80px;border-radius:12px;padding:14px 10px;text-align:center;border:1px solid transparent}.csv-sum-val{font-size:1.55rem;font-weight:900;display:block}.csv-sum-lbl{font-size:.72rem;font-weight:700;opacity:.8;margin-top:2px}.csv-sum-blue{background:#eff6ff;color:#3b82f6;border-color:#bfdbfe}.csv-sum-green{background:#f0fdf4;color:#16a34a;border-color:#bbf7d0}.csv-sum-amber{background:#fffbeb;color:#d97706;border-color:#fde68a}.csv-sum-red{background:#fef2f2;color:#dc2626;border-color:#fca5a5}.csv-warn-banner{background:#fffbeb;border:1px solid #FDE68A;color:#92400e;border-radius:8px;padding:10px 14px;font-size:.83rem;font-weight:600;line-height:1.5}.csv-subject-override{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#f0f4ff;border:1px solid #C7D2FE;border-radius:8px}.csv-subject-override label{font-size:.82rem;font-weight:600;color:#4338ca;white-space:nowrap}.csv-subject-override select{flex:1;padding:6px 10px;border:1px solid #C7D2FE;border-radius:6px;font-size:.85rem;background:#fff;color:var(--text, #1e293b);cursor:pointer;max-width:260px}.csv-file-tag{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--text-light, #999);background:var(--bg, #f5f5fa);border-radius:8px;padding:6px 10px;width:fit-content}.csv-lessons-list{display:flex;flex-direction:column;gap:8px;max-height:360px;overflow-y:auto;padding-right:2px}.csv-lesson-item{border:1px solid var(--border, #e0e0f0);border-radius:12px;overflow:hidden}.csv-lesson-item.csv-lesson-blocked{border-color:#fca5a5;opacity:.75}.csv-lesson-row{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;cursor:pointer;background:var(--card-bg, #fff);transition:background .12s;gap:8px}.csv-lesson-row:hover{background:var(--bg, #f9f9fb)}.csv-lesson-info{display:flex;align-items:center;gap:10px;min-width:0}.csv-lesson-emoji{font-size:1.4rem;flex-shrink:0}.csv-lesson-title{font-size:.88rem;font-weight:700;color:var(--text-dark, #222);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.csv-lesson-meta{display:flex;flex-wrap:wrap;gap:5px;margin-top:3px;align-items:center}.csv-badge{background:#6c63ff1a;color:#6c63ff;font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:20px}.csv-badge-ghost{font-size:.72rem;color:var(--text-light, #aaa)}.csv-err-badge{background:#fef2f2;color:#dc2626;font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:20px;white-space:nowrap}.csv-skip-badge{background:#ef44441a;color:#dc2626;font-size:.68rem;font-weight:800;letter-spacing:.05em;padding:2px 8px;border-radius:20px;white-space:nowrap}.csv-expand-btn{font-size:.7rem;color:var(--text-light, #ccc)}.csv-lesson-detail{padding:12px 14px;border-top:1px solid var(--border, #eee);background:var(--bg, #f9f9fb);display:flex;flex-direction:column;gap:10px}.csv-lesson-desc{font-size:.82rem;color:var(--text-medium, #555);margin:0}.csv-lesson-intro{font-size:.8rem;color:var(--text-medium, #666);margin:0;line-height:1.5}.csv-sections-list{display:flex;flex-direction:column;gap:6px}.csv-section-row{display:flex;gap:10px;background:var(--card-bg, #fff);border-radius:8px;padding:8px 10px;border:1px solid var(--border, #eee)}.csv-section-num{width:22px;height:22px;border-radius:50%;background:#6c63ff;color:#fff;font-size:.7rem;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}.csv-section-heading{font-size:.82rem;font-weight:700;color:var(--text-dark, #222)}.csv-section-exp{font-size:.78rem;color:var(--text-medium, #666);margin-top:2px;line-height:1.45}.csv-section-code{font-size:.74rem;background:#1e1b4b;color:#a5b4fc;border-radius:6px;padding:5px 8px;margin-top:4px;font-family:Courier New,monospace;white-space:pre-wrap;word-break:break-word}.csv-meta-warnings{display:flex;flex-direction:column;gap:4px}.csv-meta-warn{font-size:.77rem;color:#92400e;background:#fffbeb;border-radius:6px;padding:4px 8px;line-height:1.4}.csv-row-errors{display:flex;flex-direction:column;gap:4px}.csv-row-error{font-size:.77rem;color:#dc2626;background:#fef2f2;border-radius:6px;padding:4px 8px;line-height:1.4}.csv-preview-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:8px;border-top:1px solid var(--border, #eee)}.csv-results-step{display:flex;flex-direction:column;align-items:center;gap:20px;text-align:center;padding-top:8px}.csv-results-icon{font-size:3.5rem}.csv-results-title{font-size:1.25rem;font-weight:900;color:var(--text-dark, #222)}.csv-results-note{font-size:.84rem;color:var(--text-light, #888);max-width:380px;line-height:1.5}.csv-results-grid{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;width:100%}.csv-res-card{flex:1;min-width:110px;border-radius:14px;padding:18px 12px;border:1px solid transparent}.csv-res-val{font-size:1.9rem;font-weight:900}.csv-res-lbl{font-size:.73rem;font-weight:700;opacity:.8;margin-top:4px}.csv-res-blue{background:#eff6ff;color:#3b82f6;border-color:#bfdbfe}.csv-res-green{background:#f0fdf4;color:#16a34a;border-color:#bbf7d0}.csv-res-purple{background:#f5f3ff;color:#7c3aed;border-color:#ddd6fe}.csv-res-red{background:#fef2f2;color:#dc2626;border-color:#fca5a5}.csv-res-amber{background:#fffbeb;color:#d97706;border-color:#fde68a}.csv-error-list{width:100%;text-align:left;background:#fef2f2;border:1px solid #FCA5A5;border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:6px}.csv-error-list-title{font-size:.84rem;font-weight:700;color:#dc2626;margin-bottom:4px}.csv-results-actions{display:flex;gap:10px}.csv-btn-primary{background:#6c63ff;color:#fff;border:none;border-radius:10px;padding:11px 24px;font-size:.87rem;font-weight:700;cursor:pointer;font-family:inherit;transition:opacity .15s;white-space:nowrap}.csv-btn-primary:hover:not(:disabled){opacity:.86}.csv-btn-primary:disabled{opacity:.42;cursor:not-allowed}.csv-btn-ghost{background:transparent;color:var(--text-medium, #555);border:1px solid var(--border, #ddd);border-radius:10px;padding:11px 24px;font-size:.87rem;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s;white-space:nowrap}.csv-btn-ghost:hover{background:var(--bg, #f5f5fa)}@media (max-width: 600px){.csv-panel{border-radius:16px 16px 0 0;max-height:95vh;align-self:flex-end}.csv-body{padding:16px}.csv-step span{display:none}.csv-results-grid{flex-direction:column}.csv-res-card{min-width:unset}}.adc-root{display:flex;min-height:100vh;background:#f0f2f5;font-family:var(--font)}.adc-sidebar{width:220px;min-width:220px;background:#1e1b4b;display:flex;flex-direction:column;transition:width .25s,min-width .25s;position:sticky;top:0;height:100vh;overflow:hidden}.adc-sidebar-collapsed{width:60px;min-width:60px}.adc-sidebar-top{display:flex;align-items:center;justify-content:space-between;padding:18px 14px 14px;border-bottom:1px solid rgba(255,255,255,.08);gap:8px}.adc-brand{display:flex;align-items:center;gap:10px;overflow:hidden}.adc-brand-icon{font-size:1.5rem;flex-shrink:0}.adc-brand-title{font-size:.98rem;font-weight:900;color:#fff;white-space:nowrap}.adc-brand-sub{font-size:.72rem;color:#ffffff73;font-weight:600;white-space:nowrap}.adc-toggle-btn{background:#ffffff14;border:none;color:#ffffff80;border-radius:6px;width:26px;height:26px;cursor:pointer;font-size:.75rem;flex-shrink:0;transition:all .15s}.adc-toggle-btn:hover{background:#ffffff26;color:#fff}.adc-nav{flex:1;padding:12px 10px;display:flex;flex-direction:column;gap:3px;overflow-y:auto}.adc-nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;border:none;background:none;color:#ffffff8c;font-size:.9rem;font-weight:700;cursor:pointer;font-family:var(--font);transition:all .15s;text-align:left;white-space:nowrap;overflow:hidden;position:relative}.adc-nav-item:hover{background:#ffffff14;color:#fff}.adc-nav-active{background:#6c63ff4d!important;color:#fff!important}.adc-nav-icon{font-size:1.1rem;flex-shrink:0}.adc-nav-label{overflow:hidden}.adc-nav-active-dot{position:absolute;right:8px;width:6px;height:6px;border-radius:50%;background:#6c63ff}.adc-sidebar-footer{padding:12px 10px;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:8px}.adc-sidebar-user{font-size:.78rem;color:#fff6;padding:0 4px;white-space:nowrap;overflow:hidden}.adc-logout-btn{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:8px;border:1px solid rgba(239,68,68,.35);background:none;color:#ef4444bf;font-size:.88rem;font-weight:700;cursor:pointer;font-family:var(--font);transition:all .15s;white-space:nowrap;overflow:hidden}.adc-logout-btn:hover{background:#ef44441a;color:#ef4444}.adc-main{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.adc-topbar{background:#fff;padding:14px 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #E5E7EB;box-shadow:0 1px 3px #0000000d;position:sticky;top:0;z-index:10}.adc-topbar-breadcrumb{display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:700}.adc-breadcrumb-home,.adc-breadcrumb-sep{color:var(--text-light)}.adc-breadcrumb-current{color:var(--text-dark)}.adc-topbar-right{display:flex;align-items:center;gap:16px}.adc-quick-stats{display:flex;gap:16px;font-size:.82rem;font-weight:700;color:var(--text-medium)}.adc-content{flex:1;overflow-y:auto;padding:0 0 40px}.adc-tab-body{padding:28px 28px 0}.adc-page-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}.adc-page-title h2{font-size:1.4rem;font-weight:900;color:var(--text-dark);display:flex;align-items:center;gap:10px;margin:0}.adc-page-sub{font-size:.85rem;font-weight:600;color:var(--text-light)}.adc-count-badge{font-size:.8rem;font-weight:800;background:#eef2ff;color:#6c63ff;padding:2px 8px;border-radius:999px}.adc-metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin-bottom:24px}.adc-metric{background:#fff;border-radius:14px;padding:18px 20px;box-shadow:0 1px 4px #00000012;display:flex;align-items:center;gap:14px;transition:transform .15s,box-shadow .15s}.adc-metric:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.adc-metric-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0}.adc-metric-val{font-size:1.5rem;font-weight:900}.adc-metric-label{font-size:.78rem;font-weight:700;color:var(--text-light);text-transform:uppercase;letter-spacing:.04em}.adc-metric-sub{font-size:.75rem;font-weight:600;color:var(--text-light)}.adc-dash-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:24px}.adc-dash-card{background:#fff;border-radius:14px;padding:20px;box-shadow:0 1px 4px #00000012}.adc-dash-card-title{font-size:.92rem;font-weight:800;color:var(--text-dark);margin-bottom:16px}.adc-leader-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid #F3F4F6}.adc-leader-row:last-child{border-bottom:none}.adc-leader-rank{font-size:1rem;width:28px;text-align:center}.adc-leader-avatar{font-size:1.5rem}.adc-leader-info{flex:1}.adc-leader-name{font-size:.9rem;font-weight:800;color:var(--text-dark)}.adc-leader-sub{font-size:.75rem;color:var(--text-light);font-weight:600}.adc-leader-xp{font-size:.88rem;font-weight:800;color:#6c63ff}.adc-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.adc-search{padding:9px 14px;border-radius:10px;border:2px solid #E5E7EB;background:#fff;font-size:.9rem;font-family:var(--font);font-weight:600;color:var(--text-dark);outline:none;min-width:240px;transition:border-color .2s}.adc-search:focus{border-color:#6c63ff}.adc-filter-sel{padding:9px 12px;border-radius:10px;border:2px solid #E5E7EB;background:#fff;font-size:.88rem;font-family:var(--font);font-weight:600;color:var(--text-dark);outline:none;cursor:pointer}.adc-toolbar-count{margin-left:auto;font-size:.82rem;font-weight:700;color:var(--text-light)}.adc-confirm-inline{display:flex;align-items:center;gap:8px;background:#fef2f2;border-radius:8px;padding:6px 12px;font-size:.85rem;font-weight:700;color:#dc2626}.adc-table-wrap{background:#fff;border-radius:14px;box-shadow:0 1px 4px #00000012;overflow-x:auto;margin-bottom:24px}.adc-table{width:100%;border-collapse:collapse;font-size:.88rem}.adc-table th{text-align:left;padding:12px 16px;font-size:.75rem;font-weight:800;color:var(--text-light);text-transform:uppercase;letter-spacing:.05em;background:#fafafa;border-bottom:2px solid #F0F2F5;white-space:nowrap}.adc-table td{padding:13px 16px;border-bottom:1px solid #F3F4F6;color:var(--text-dark);vertical-align:middle}.adc-table tr:last-child td{border-bottom:none}.adc-tr:hover td{background:#fafbff}.adc-tr-selected td{background:#eef2ff!important}.adc-tr-inactive td{opacity:.55}.adc-sortable{cursor:pointer;user-select:none}.adc-sortable:hover{color:#6c63ff}.adc-sort-neutral{opacity:.4;margin-left:4px}.adc-sort-active{color:#6c63ff;margin-left:4px;font-weight:900}.adc-user-cell{display:flex;align-items:center;gap:10px}.adc-user-av{font-size:1.6rem}.adc-user-name{font-size:.9rem;font-weight:800;color:var(--text-dark)}.adc-user-sub{font-size:.75rem;color:var(--text-light);font-weight:600}.adc-td-muted{color:var(--text-medium);font-weight:600}.adc-empty-cell{text-align:center;padding:40px;color:var(--text-light);font-weight:700}.adc-empty-sm{color:var(--text-light);font-weight:600;font-size:.88rem;text-align:center;padding:20px 0}.adc-action-btns{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.adc-act-btn{padding:5px 12px;border-radius:7px;border:none;font-size:.78rem;font-weight:800;cursor:pointer;font-family:var(--font);transition:all .15s;white-space:nowrap}.adc-act-view{background:#eef2ff;color:#6c63ff}.adc-act-view:hover{background:#6c63ff;color:#fff}.adc-act-edit{background:#ecfdf5;color:#059669}.adc-act-edit:hover{background:#059669;color:#fff}.adc-act-save{background:#dcfce7;color:#166534}.adc-act-cancel{background:#f1f5f9;color:#64748b}.adc-act-del{background:#fef2f2;color:#dc2626}.adc-act-del:hover,.adc-act-del-confirm{background:#dc2626;color:#fff}.adc-inline-edit{padding:5px 9px;border-radius:7px;border:2px solid #6C63FF;background:#fff;font-size:.82rem;font-family:var(--font);font-weight:600;color:var(--text-dark);outline:none;max-width:130px}.adc-inline-num{max-width:60px}.adc-overlay{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px;backdrop-filter:blur(2px)}.adc-modal{background:#fff;border-radius:18px;box-shadow:0 20px 60px #00000040;width:100%;max-width:600px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.adc-modal-head{display:flex;align-items:center;gap:14px;padding:20px 24px;border-bottom:1px solid #F0F2F5;background:#fafafa}.adc-modal-avatar{font-size:2.2rem}.adc-modal-name{font-size:1.1rem;font-weight:900;color:var(--text-dark)}.adc-modal-meta{font-size:.8rem;color:var(--text-light);font-weight:600;margin-top:2px}.adc-modal-close{margin-left:auto;background:#f1f5f9;border:none;width:32px;height:32px;border-radius:50%;font-size:.9rem;cursor:pointer;font-family:var(--font);color:var(--text-medium);transition:all .15s}.adc-modal-close:hover{background:#e5e7eb;color:var(--text-dark)}.adc-modal-tabs{display:flex;border-bottom:2px solid #F0F2F5;padding:0 24px}.adc-modal-tab{padding:12px 16px;border:none;background:none;font-size:.88rem;font-weight:700;color:var(--text-light);cursor:pointer;font-family:var(--font);border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s}.adc-modal-tab:hover{color:#6c63ff}.adc-modal-tab-active{color:#6c63ff;border-bottom-color:#6c63ff}.adc-modal-body{padding:20px 24px;overflow-y:auto;flex:1}.adc-modal-section{display:flex;flex-direction:column;gap:8px}.adc-modal-row{display:flex;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid #F3F4F6;font-size:.9rem}.adc-modal-row:last-child{border-bottom:none}.adc-modal-field-label{font-weight:700;color:var(--text-light);min-width:110px;font-size:.82rem}.adc-kpi-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}.adc-kpi{background:#f8f9fa;border-radius:10px;padding:12px;text-align:center}.adc-kpi-icon{font-size:1.2rem;margin-bottom:4px}.adc-kpi-val{font-size:1rem;font-weight:900;color:var(--text-dark)}.adc-kpi-lbl{font-size:.7rem;font-weight:700;color:var(--text-light);margin-top:2px}.adc-prog-section-title{font-size:.8rem;font-weight:800;color:var(--text-light);text-transform:uppercase;letter-spacing:.05em;margin-bottom:12px}.adc-prog-row{margin-bottom:10px}.adc-prog-label{display:flex;justify-content:space-between;font-size:.85rem;font-weight:700;margin-bottom:5px}.adc-prog-detail{font-size:.75rem;color:var(--text-light);font-weight:600;margin-top:3px}.adc-prog-track{background:#f0f2f5;border-radius:999px;overflow:hidden}.adc-prog-fill{border-radius:999px;transition:width .5s ease}.adc-edit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:16px}.adc-edit-field{display:flex;flex-direction:column;gap:5px}.adc-edit-field label{font-size:.75rem;font-weight:800;color:var(--text-light);text-transform:uppercase;letter-spacing:.04em}.adc-edit-input{padding:9px 12px;border-radius:9px;border:2px solid #E5E7EB;background:#fafafa;color:var(--text-dark);font-size:.9rem;font-family:var(--font);font-weight:600;outline:none;transition:border-color .2s;width:100%;box-sizing:border-box}.adc-edit-input:focus{border-color:#6c63ff;background:#fff}.adc-edit-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}.adc-danger-zone{border:1px solid #FCA5A5;border-radius:10px;padding:14px;margin-top:8px}.adc-danger-title{font-size:.82rem;font-weight:800;color:#dc2626;margin-bottom:10px}.adc-confirm-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:.85rem;font-weight:700;color:#dc2626}.adc-avatar-row{display:flex;flex-wrap:wrap;gap:8px}.adc-av-btn{width:38px;height:38px;border-radius:8px;border:2px solid #E5E7EB;background:#f8f9fa;font-size:1.2rem;cursor:pointer;transition:all .15s}.adc-av-btn:hover{border-color:#6c63ff}.adc-av-sel{border-color:#6c63ff!important;background:#eef2ff!important}.adc-btn-primary{padding:10px 20px;border-radius:10px;border:none;background:#6c63ff;color:#fff;font-size:.92rem;font-weight:800;cursor:pointer;font-family:var(--font);transition:all .15s}.adc-btn-primary:hover{background:#5a52e0;transform:translateY(-1px);box-shadow:0 4px 12px #6c63ff59}.adc-btn-danger{padding:9px 16px;border-radius:9px;border:none;background:#ef4444;color:#fff;font-size:.88rem;font-weight:800;cursor:pointer;font-family:var(--font);transition:all .15s}.adc-btn-danger:hover{background:#dc2626}.adc-btn-danger-sm{padding:7px 14px;border-radius:8px;border:none;background:#fef2f2;color:#dc2626;font-size:.82rem;font-weight:800;cursor:pointer;font-family:var(--font);border:1px solid #FCA5A5;transition:all .15s}.adc-btn-danger-sm:hover{background:#fee2e2}.adc-btn-ghost{padding:9px 16px;border-radius:9px;border:2px solid #E5E7EB;background:none;color:var(--text-medium);font-size:.88rem;font-weight:800;cursor:pointer;font-family:var(--font)}.adc-btn-ghost-sm{padding:6px 12px;border-radius:7px;border:2px solid #E5E7EB;background:none;color:var(--text-medium);font-size:.78rem;font-weight:700;cursor:pointer;font-family:var(--font)}.adc-badge{padding:3px 9px;border-radius:999px;font-size:.75rem;font-weight:800;white-space:nowrap}.adc-analytics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-bottom:24px}.adc-an-card{background:#fff;border-radius:14px;padding:20px;box-shadow:0 1px 4px #00000012}.adc-an-title{font-size:.9rem;font-weight:800;color:var(--text-dark);margin-bottom:16px}.adc-an-detail{font-size:.73rem;color:var(--text-light);font-weight:600;margin-top:3px}.adc-an-wide{grid-column:1 / -1}.adc-subj-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px 24px}.adc-subj-row{display:flex;flex-direction:column;gap:4px}.adc-subj-head{display:flex;align-items:center;gap:6px;font-size:.82rem;font-weight:700}.adc-subj-emoji{font-size:1rem}.adc-subj-name{flex:1;color:var(--text-dark)}.adc-subj-pct{font-weight:900;font-size:.85rem}.adc-subj-detail{display:flex;justify-content:space-between;font-size:.68rem;color:var(--text-light);font-weight:600}.adc-dual-chart{display:flex;gap:0;align-items:stretch}.adc-dual-half{flex:1;min-width:0}.adc-dual-sep{width:1px;background:var(--border);margin:0 20px;flex-shrink:0}@media (max-width: 768px){.adc-dual-chart{flex-direction:column;gap:20px}.adc-dual-sep{width:100%;height:1px;margin:0}}.adc-mission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}.adc-mission-card{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:var(--bg-light, #f8f9fb);border:1px solid var(--border)}.adc-mission-av{font-size:1.3rem;flex-shrink:0}.adc-mission-info{flex:1;min-width:0}.adc-mission-name{font-size:.82rem;font-weight:800;color:var(--text-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.adc-mission-meta{font-size:.68rem;color:var(--text-light);font-weight:600}.adc-mission-bar-wrap{display:flex;align-items:center;gap:6px;flex-shrink:0;width:80px}.adc-mission-bar-track{flex:1;height:6px;border-radius:3px;background:var(--border);overflow:hidden}.adc-mission-bar-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,#6c63ff,#a855f7);transition:width .5s}.adc-mission-bar-pct{font-size:.65rem;font-weight:800;color:var(--text-light);width:28px;text-align:right}.adc-bar-chart{display:flex;align-items:flex-end;gap:4px;height:100px;padding-bottom:24px;position:relative}.adc-bar-col{display:flex;flex-direction:column;align-items:center;flex:1;gap:3px}.adc-bar-val{font-size:.65rem;font-weight:800;color:var(--text-light);height:16px}.adc-bar{width:100%;min-height:4px;border-radius:4px 4px 0 0;transition:height .5s}.adc-bar-lbl{font-size:.6rem;font-weight:700;color:var(--text-light);text-align:center}.adc-settings-card{background:#fff;border-radius:14px;padding:24px;box-shadow:0 1px 4px #00000012;max-width:580px;margin-bottom:24px}.adc-settings-section-title{font-size:.9rem;font-weight:800;color:var(--text-dark);margin-bottom:16px}.adc-confirm-modal{background:var(--card-bg, #fff);border-radius:20px;padding:28px 32px;max-width:380px;width:90%;text-align:center;box-shadow:0 20px 60px #0003}.adc-confirm-modal h3{font-size:1.1rem;font-weight:900;margin-bottom:8px}.adc-confirm-modal p{color:var(--text-light);font-size:.9rem;line-height:1.5}.adc-error{color:#dc2626;background:#fef2f2;border:1px solid #FCA5A5;border-radius:8px;padding:9px 14px;font-size:.88rem;font-weight:700;margin-bottom:12px}.adc-success{color:#166534;background:#dcfce7;border:1px solid #86EFAC;border-radius:8px;padding:9px 14px;font-size:.88rem;font-weight:700;margin-bottom:12px}@media (max-width: 900px){.adc-sidebar{width:60px;min-width:60px}.adc-brand-text,.adc-nav-label,.adc-sidebar-user{display:none}.adc-tab-body{padding:16px 16px 0}.adc-topbar{padding:12px 16px}.adc-metrics-grid,.adc-kpi-row{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){.adc-metrics-grid{grid-template-columns:1fr 1fr}.adc-table th,.adc-table td{padding:10px}.adc-modal{border-radius:12px}.adc-search{min-width:160px}}.adc-content-tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:2px solid var(--border);padding-bottom:0}.adc-content-tab{padding:10px 20px;background:none;border:none;border-bottom:3px solid transparent;margin-bottom:-2px;font-weight:700;font-size:.9rem;cursor:pointer;color:var(--text-medium);transition:color .15s,border-color .15s;font-family:inherit;display:flex;align-items:center;gap:8px}.adc-content-tab:hover{color:var(--text-dark)}.adc-content-tab-active{color:#6c63ff;border-bottom-color:#6c63ff}.adc-lesson-grid{display:flex;flex-direction:column;gap:12px}.adc-lesson-card{background:var(--card-bg);border-radius:14px;border:1.5px solid var(--border);padding:16px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .2s}.adc-lesson-card:hover{box-shadow:0 4px 16px #00000014}.adc-lc-head{display:flex;gap:14px;align-items:flex-start}.adc-lc-emoji{font-size:2rem;flex-shrink:0}.adc-lc-info{flex:1;min-width:0}.adc-lc-title{font-size:1rem;font-weight:800;color:var(--text-dark);margin-bottom:6px}.adc-lc-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:6px}.adc-lc-desc{font-size:.86rem;color:var(--text-medium);margin:0;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.adc-lc-footer{display:flex;align-items:center;justify-content:space-between;padding-top:10px;border-top:1px solid var(--border)}.adc-lc-status{font-size:.8rem;font-weight:700;padding:4px 10px;border-radius:20px}.adc-lc-live{background:#dcfce7;color:#166534}.adc-lc-draft{background:#f3f4f6;color:#6b7280}.adc-lc-actions{display:flex;gap:8px;align-items:center}.adc-book-grid{display:flex;flex-direction:column;gap:14px}.adc-book-card{background:var(--card-bg);border-radius:14px;border:1.5px solid var(--border);display:flex;flex-direction:column;overflow:hidden;transition:box-shadow .2s}.adc-book-card:hover{box-shadow:0 4px 16px #00000014}.adc-book-header{display:flex;gap:14px;align-items:flex-start;padding:16px}.adc-book-spine{width:44px;height:60px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.adc-book-meta{flex:1;min-width:0}.adc-book-title{font-size:1rem;font-weight:800;color:var(--text-dark);margin-bottom:3px}.adc-book-author{font-size:.8rem;color:var(--text-light);font-style:italic;margin-bottom:6px}.adc-book-subject-tag{display:inline-block;font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:20px;margin-bottom:4px}.adc-book-date{font-size:.75rem;color:var(--text-light);margin-top:4px}.adc-book-actions{display:flex;flex-direction:column;gap:6px;flex-shrink:0}.adc-book-preview{padding:12px 16px;font-size:.84rem;color:var(--text-medium);line-height:1.6;border-top:1px solid var(--border);background:var(--bg);white-space:pre-wrap;max-height:120px;overflow:hidden}.adc-empty-state{text-align:center;padding:48px 24px;color:var(--text-light)}.adc-empty-msg{font-size:.95rem;font-weight:600;color:var(--text-medium)}.adc-btn-danger{padding:8px 18px;border-radius:10px;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border:none;font-weight:700;font-size:.88rem;cursor:pointer}.adc-btn-ghost{padding:8px 18px;border-radius:10px;background:var(--bg);color:var(--text-medium);border:1.5px solid var(--border);font-weight:700;font-size:.88rem;cursor:pointer}.mcv-overlay{position:fixed;inset:0;background:#0000008c;z-index:1200;display:flex;align-items:center;justify-content:center;padding:20px}.mcv-panel{background:var(--card-bg, #fff);border-radius:18px;width:100%;max-width:660px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 24px 64px #00000038;overflow:hidden}.mcv-header{display:flex;align-items:center;gap:14px;padding:22px 24px 16px;border-bottom:1px solid var(--border, #e8e8f0);flex-shrink:0}.mcv-header-icon{font-size:1.6rem;width:46px;height:46px;background:#6c63ff15;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.mcv-header-title{font-size:1.1rem;font-weight:800;color:var(--text-dark, #1a1a2e)}.mcv-header-sub{font-size:.82rem;color:var(--text-light, #888);margin-top:2px;font-weight:600}.mcv-close{margin-left:auto;background:none;border:none;font-size:1.1rem;color:var(--text-light, #999);cursor:pointer;width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background .15s;flex-shrink:0}.mcv-close:hover{background:var(--border, #eee)}.mcv-steps{display:flex;align-items:center;padding:14px 24px;border-bottom:1px solid var(--border, #e8e8f0);flex-shrink:0;gap:0}.mcv-step{display:flex;align-items:center;gap:8px;font-size:.8rem;font-weight:600;color:var(--text-light, #bbb);flex:1}.mcv-step-dot{width:26px;height:26px;border-radius:50%;background:var(--border, #e8e8f0);color:var(--text-light, #bbb);font-size:.75rem;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}.mcv-step-active{color:#6c63ff}.mcv-step-active .mcv-step-dot{background:#6c63ff;color:#fff}.mcv-step-done{color:#16a34a}.mcv-step-done .mcv-step-dot{background:#16a34a;color:#fff}.mcv-body{flex:1;overflow-y:auto;padding:24px}.mcv-upload-step{display:flex;flex-direction:column;gap:18px}.mcv-drop-zone{border:2px dashed var(--border, #d1d5db);border-radius:14px;padding:36px 24px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;background:var(--bg, #f9f9fb);user-select:none}.mcv-drop-zone:hover,.mcv-drop-active{border-color:#6c63ff;background:#6c63ff09}.mcv-drop-icon{font-size:2.2rem;margin-bottom:10px}.mcv-drop-text{font-size:.9rem;font-weight:700;color:var(--text-dark, #333);margin-bottom:4px}.mcv-drop-hint{font-size:.76rem;color:var(--text-light, #aaa)}.mcv-template-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.mcv-template-btn{background:#6c63ff;color:#fff;border:none;border-radius:10px;padding:10px 20px;font-size:.84rem;font-weight:700;cursor:pointer;font-family:inherit;transition:opacity .15s;white-space:nowrap}.mcv-template-btn:hover{opacity:.86}.mcv-template-hint{font-size:.78rem;color:var(--text-light, #999)}.mcv-error-box{background:#fef2f2;color:#dc2626;border:1px solid #FCA5A5;border-radius:10px;padding:12px 16px;font-size:.82rem;font-weight:600;display:flex;flex-direction:column;gap:3px}.mcv-format-info{background:var(--bg, #f5f5fa);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:12px}.mcv-format-section{display:flex;flex-direction:column;gap:6px}.mcv-format-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-medium, #666)}.mcv-cols-grid{display:flex;flex-wrap:wrap;gap:5px}.mcv-col-req{background:#6c63ff15;color:#6c63ff;border:1px solid #6C63FF30;border-radius:6px;padding:3px 8px;font-size:.74rem;font-family:Courier New,monospace;font-weight:700}.mcv-col-opt{background:var(--card-bg, #fff);border:1px solid var(--border, #ddd);border-radius:6px;padding:3px 8px;font-size:.74rem;color:var(--text-medium, #666);font-family:Courier New,monospace}.mcv-defaults{font-size:.76rem;color:var(--text-light, #999);line-height:1.5;padding-top:4px;border-top:1px solid var(--border, #e5e5ee)}.mcv-preview-step{display:flex;flex-direction:column;gap:16px}.mcv-summary-row{display:flex;gap:10px;flex-wrap:wrap}.mcv-sum-card{flex:1;min-width:70px;border-radius:12px;padding:14px 10px;text-align:center;border:1px solid transparent}.mcv-sum-val{font-size:1.5rem;font-weight:900;display:block}.mcv-sum-lbl{font-size:.72rem;font-weight:700;opacity:.8;margin-top:2px}.mcv-sum-blue{background:#eff6ff;color:#3b82f6;border-color:#bfdbfe}.mcv-sum-purple{background:#f5f3ff;color:#7c3aed;border-color:#ddd6fe}.mcv-sum-amber{background:#fffbeb;color:#d97706;border-color:#fde68a}.mcv-sum-red{background:#fef2f2;color:#dc2626;border-color:#fca5a5}.mcv-warn-box{background:#fffbeb;border:1px solid #FDE68A;color:#92400e;border-radius:10px;padding:10px 14px;font-size:.8rem;font-weight:600;display:flex;flex-direction:column;gap:2px;max-height:100px;overflow-y:auto}.mcv-mission-list{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto;padding-right:2px}.mcv-mission-item{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--card-bg, #fff);border:1px solid var(--border, #e5e7ff);border-radius:12px;transition:box-shadow .12s}.mcv-mission-item:hover{box-shadow:0 2px 8px #0000000f}.mcv-mission-emoji{font-size:1.4rem;flex-shrink:0}.mcv-mission-info{flex:1;min-width:0}.mcv-mission-title{font-size:.88rem;font-weight:700;color:var(--text-dark, #222);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mcv-mission-meta{display:flex;align-items:center;gap:8px;margin-top:3px;flex-wrap:wrap}.mcv-mission-detail{font-size:.74rem;color:var(--text-light, #999);font-weight:600}.mcv-mission-xp{font-size:.82rem;font-weight:800;color:#6c63ff;flex-shrink:0}.mcv-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:10px;border-top:1px solid var(--border, #eee)}.mcv-done-step{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:20px 0}.mcv-done-icon{font-size:3.5rem}.mcv-done-title{font-size:1.25rem;font-weight:900;color:var(--text-dark, #222)}.mcv-done-note{font-size:.85rem;color:var(--text-light, #888);max-width:360px;line-height:1.5;margin:0}.mcv-btn-primary{background:#6c63ff;color:#fff;border:none;border-radius:10px;padding:11px 24px;font-size:.87rem;font-weight:700;cursor:pointer;font-family:inherit;transition:opacity .15s;white-space:nowrap}.mcv-btn-primary:hover:not(:disabled){opacity:.86}.mcv-btn-primary:disabled{opacity:.42;cursor:not-allowed}.mcv-btn-ghost{background:transparent;color:var(--text-medium, #555);border:1px solid var(--border, #ddd);border-radius:10px;padding:11px 24px;font-size:.87rem;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s;white-space:nowrap}.mcv-btn-ghost:hover{background:var(--bg, #f5f5fa)}@media (max-width: 600px){.mcv-panel{border-radius:16px 16px 0 0;max-height:95vh;align-self:flex-end}.mcv-body{padding:16px}.mcv-step span:not(.mcv-step-dot){display:none}.mcv-summary-row{flex-direction:column}}.td-root{min-height:100vh;background:var(--bg, #F8F7FF);font-family:var(--font, "Nunito", sans-serif)}.td-header{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;background:linear-gradient(135deg,#f59e0b,#fbbf24);color:#fff;box-shadow:0 2px 12px #f59e0b4d}.td-header-left{display:flex;align-items:center;gap:14px}.td-logo{font-size:2.4rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,.15))}.td-title{font-size:1.3rem;font-weight:900;color:#fff}.td-subtitle{font-size:.88rem;color:#ffffffd9;font-weight:600}.td-logout{color:#fff!important;border-color:#ffffff80!important}.td-logout:hover{background:#ffffff26!important}.td-tabs{display:flex;gap:0;background:var(--card-bg, #fff);border-bottom:2px solid var(--border, #e5e7eb);padding:0 32px;overflow-x:auto}.td-tab{padding:14px 24px;font-size:.92rem;font-weight:700;font-family:var(--font);color:var(--text-light);background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;white-space:nowrap;transition:all .2s}.td-tab:hover{color:#f59e0b}.td-tab-active{color:#f59e0b;border-bottom-color:#f59e0b}.td-content{padding:28px 32px;max-width:1100px;margin:0 auto}.td-stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:28px}.td-stat-card{background:var(--card-bg, #fff);border-radius:16px;padding:20px;text-align:center;box-shadow:var(--shadow);border:1px solid var(--border)}.td-stat-icon{font-size:1.8rem;margin-bottom:6px}.td-stat-val{font-size:2rem;font-weight:900;color:var(--text-dark)}.td-stat-lbl{font-size:.82rem;font-weight:700;color:var(--text-light);margin-top:2px}.td-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:8px}.td-section-title{font-size:1.1rem;font-weight:900;color:var(--text-dark)}.td-count-badge{font-size:.82rem;font-weight:700;color:var(--text-light);background:var(--border);padding:4px 12px;border-radius:20px}.td-bucket-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.td-bucket-card{background:var(--card-bg, #fff);border-radius:16px;border:1px solid var(--border);border-top:4px solid #6C63FF;box-shadow:var(--shadow);padding:18px;display:flex;flex-direction:column;gap:12px;transition:transform .2s,box-shadow .2s}.td-bucket-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000001a}.td-bucket-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.td-bucket-subject-tag{display:inline-block;font-size:.72rem;font-weight:800;padding:2px 10px;border-radius:20px;margin-bottom:6px}.td-bucket-name{font-size:1rem;font-weight:900;color:var(--text-dark)}.td-bucket-desc{font-size:.83rem;color:var(--text-light);margin-top:3px;line-height:1.4}.td-bucket-actions-top{display:flex;gap:4px;flex-shrink:0}.td-icon-btn{background:none;border:none;font-size:1rem;cursor:pointer;padding:4px;border-radius:6px;opacity:.7;transition:opacity .15s,background .15s}.td-icon-btn:hover{opacity:1;background:var(--border)}.td-bucket-stats{display:flex;gap:16px}.td-bucket-stat{display:flex;flex-direction:column;align-items:flex-start}.td-bucket-stat strong{font-size:1.2rem;font-weight:900;color:var(--text-dark)}.td-bucket-stat span{font-size:.72rem;font-weight:700;color:var(--text-light);text-transform:uppercase}.td-bucket-avatars{display:flex;flex-wrap:wrap;gap:4px}.td-avatar-chip{font-size:1.2rem;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;background:var(--bg, #F8F7FF);border-radius:50%;border:2px solid var(--border)}.td-avatar-more{font-size:.75rem;font-weight:800;color:var(--text-light);display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--border);border-radius:50%}.td-bucket-card-footer{display:flex;gap:8px;margin-top:auto}.td-learner-table-wrap{background:var(--card-bg, #fff);border-radius:16px;border:1px solid var(--border);overflow:hidden;box-shadow:var(--shadow)}.td-table{width:100%;border-collapse:collapse;font-size:.9rem}.td-table th{background:var(--bg, #F8F7FF);padding:12px 16px;text-align:left;font-weight:800;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-light);border-bottom:2px solid var(--border)}.td-table td{padding:12px 16px;border-bottom:1px solid var(--border);color:var(--text-dark);vertical-align:middle}.td-table tr:last-child td{border-bottom:none}.td-table tr:hover td{background:var(--bg, #F8F7FF)}.td-learner-cell{display:flex;align-items:center;gap:10px}.td-learner-avatar{font-size:1.4rem}.td-learner-name{font-weight:700;color:var(--text-dark)}.td-bucket-tag{display:inline-block;font-size:.75rem;font-weight:700;padding:2px 10px;border-radius:20px;border:2px solid #6C63FF;color:var(--text-dark);margin:2px 4px 2px 0}.td-none-tag{font-size:.82rem;color:var(--text-light);font-style:italic}.td-empty{text-align:center;padding:60px 20px}.td-empty-icon{font-size:3rem;margin-bottom:12px}.td-empty-msg{font-size:1.1rem;font-weight:800;color:var(--text-dark);margin-bottom:8px}.td-empty-sub{font-size:.9rem;color:var(--text-light);margin-bottom:20px}.td-confirm-modal{background:var(--card-bg, #fff);border-radius:20px;padding:32px;max-width:380px;width:90%;text-align:center;box-shadow:0 20px 60px #0003}.td-confirm-icon{font-size:2.5rem;margin-bottom:12px}.td-confirm-modal h3{font-size:1.2rem;font-weight:900;color:var(--text-dark);margin-bottom:8px}.td-confirm-modal p{font-size:.9rem;color:var(--text-light);margin-bottom:20px;line-height:1.5}.td-confirm-btns{display:flex;gap:10px;justify-content:center}.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.td-section-sub{font-size:.88rem;color:var(--text-light);margin-top:2px}.td-lesson-grid{display:flex;flex-direction:column;gap:12px}.td-lesson-card{background:var(--card-bg, #fff);border-radius:14px;border:1.5px solid var(--border, #eee);border-top:4px solid #6C63FF;padding:16px;display:flex;flex-direction:column;gap:12px;box-shadow:0 2px 8px #0000000d;transition:box-shadow .2s}.td-lesson-card:hover{box-shadow:0 4px 16px #00000014}.td-lesson-card-header{display:flex;gap:14px;align-items:flex-start}.td-lesson-emoji{font-size:2rem;flex-shrink:0}.td-lesson-info{flex:1;min-width:0}.td-lesson-title{font-size:1rem;font-weight:800;color:var(--text-dark);margin-bottom:6px}.td-lesson-sub-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:6px}.td-lesson-diff{font-size:.78rem;font-weight:700;background:#ede9fe;color:#4c1d95;padding:2px 8px;border-radius:20px}.td-lesson-dur{font-size:.82rem;color:var(--text-light)}.td-lesson-desc{font-size:.88rem;color:var(--text-medium);margin:0;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.td-lesson-card-footer{display:flex;align-items:center;justify-content:space-between;padding-top:10px;border-top:1px solid var(--border, #eee)}.td-pub-badge{font-size:.82rem;font-weight:700;padding:4px 10px;border-radius:20px}.td-pub-live{background:#dcfce7;color:#166534}.td-pub-draft{background:#f3f4f6;color:#6b7280}.td-lesson-actions{display:flex;align-items:center;gap:8px}.td-feedback-modal{background:var(--card-bg, #fff);border-radius:20px;width:100%;max-width:520px;max-height:88vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 60px #0003}.td-feedback-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px 14px;background:var(--bg, #f9f9f9)}.td-feedback-title{font-size:1.1rem;font-weight:900;color:var(--text-dark)}.td-feedback-sub{font-size:.85rem;color:var(--text-medium);margin-top:2px}.td-close-btn{background:none;border:none;font-size:1.1rem;cursor:pointer;color:var(--text-light);width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .15s}.td-close-btn:hover{background:#fee2e2;color:#e53935}.td-feedback-body{flex:1;overflow-y:auto;padding:18px 22px;display:flex;flex-direction:column;gap:14px}.td-feedback-types{display:flex;gap:8px;flex-wrap:wrap}.td-fb-type-btn{padding:7px 16px;border-radius:20px;border:2px solid var(--border, #e0e0e0);background:var(--bg, #f5f5f5);font-size:.85rem;font-weight:700;cursor:pointer;transition:all .15s;color:var(--text-medium)}.td-fb-type-btn:hover{border-color:#6c63ff}.td-fb-type-active{box-shadow:0 2px 8px #0000001a}.td-feedback-textarea{width:100%;padding:12px 14px;border:1.5px solid var(--border, #e0e0e0);border-radius:12px;font-family:inherit;font-size:.93rem;resize:vertical;min-height:110px;background:var(--bg, #f9f9f9);color:var(--text-dark);transition:border-color .2s;box-sizing:border-box}.td-feedback-textarea:focus{outline:none;border-color:#6c63ff;background:var(--card-bg, #fff)}.td-fb-error{font-size:.82rem;color:#ef4444;font-weight:700;padding:6px 10px;background:#fef2f2;border-radius:8px}.td-feedback-footer{padding:14px 22px;border-top:1px solid var(--border, #eee);display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.td-feedback-list{gap:10px}.td-fb-item{border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}.td-fb-item-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.td-fb-badge{font-size:.78rem;font-weight:700;padding:3px 10px;border-radius:20px}.td-fb-date{font-size:.78rem;color:var(--text-light);font-weight:600}.td-fb-msg{font-size:.9rem;color:var(--text-dark);line-height:1.6;margin:0}.td-chat-layout{display:flex;gap:16px;height:560px}.td-chat-sidebar{width:200px;flex-shrink:0;background:var(--card-bg);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-sm);border:1px solid var(--border)}.td-chat-sidebar-hd{padding:12px 16px;font-weight:800;font-size:.88rem;border-bottom:1px solid var(--border);color:var(--text-dark);flex-shrink:0}.td-chat-sidebar-list{flex:1;overflow-y:auto}.td-chat-no-learners{padding:24px 16px;text-align:center;color:var(--text-light);font-size:.85rem}.td-chat-learner-btn{width:100%;padding:11px 14px;background:none;border:none;border-left:3px solid transparent;cursor:pointer;display:flex;align-items:center;gap:10px;text-align:left;transition:background .15s}.td-chat-learner-btn:hover{background:var(--bg)}.td-chat-learner-btn.active{background:#6c63ff12;border-left-color:#6c63ff}.td-chat-learner-avatar{font-size:1.3rem;flex-shrink:0}.td-chat-learner-name{flex:1;font-weight:700;font-size:.88rem;color:var(--text-dark);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.td-chat-unread{background:#ef4444;color:#fff;border-radius:99px;padding:1px 7px;font-size:.72rem;font-weight:800;flex-shrink:0}.td-chat-main{flex:1;min-width:0;background:var(--card-bg);border-radius:16px;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--border)}.td-chat-empty-main{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-light);font-weight:600;font-size:.92rem}.td-chat-convo-hd{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;flex-shrink:0;background:var(--bg)}.td-chat-convo-avatar{font-size:1.4rem}.td-chat-convo-name{font-weight:800;font-size:.95rem;color:var(--text-dark)}.td-chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px}.td-chat-no-msg{text-align:center;padding:40px 0;color:var(--text-light);font-size:.92rem}.td-msg-row{display:flex;align-items:flex-end;gap:8px}.td-msg-mine{flex-direction:row-reverse}.td-msg-avatar{font-size:1.1rem;flex-shrink:0}.td-msg-content{max-width:75%;min-width:0}.td-msg-bubble{padding:10px 14px;border-radius:18px;font-size:.9rem;line-height:1.5;word-break:break-word}.td-msg-bubble-theirs{background:var(--bg);color:var(--text-dark);border:1.5px solid var(--border);border-bottom-left-radius:4px}.td-msg-bubble-mine{background:#6c63ff;color:#fff;border-bottom-right-radius:4px}.td-msg-time{font-size:.7rem;color:var(--text-light);margin-top:3px;text-align:left}.td-msg-time-mine{text-align:right}.td-chat-input-row{padding:10px 14px;border-top:1px solid var(--border);display:flex;gap:10px;flex-shrink:0;background:var(--bg);align-items:flex-end}.td-chat-textarea{flex:1;padding:9px 13px;border-radius:12px;border:1.5px solid var(--border);font-size:.9rem;resize:none;font-family:inherit;background:var(--card-bg);color:var(--text-dark);line-height:1.45;max-height:90px}.td-chat-textarea:focus{outline:none;border-color:#6c63ff;box-shadow:0 0 0 3px #6c63ff1f}.td-chat-send-btn{padding:9px 18px;background:#6c63ff;color:#fff;border:none;border-radius:12px;font-weight:700;cursor:pointer;font-size:.9rem;flex-shrink:0;transition:opacity .15s;font-family:inherit}.td-chat-send-btn:hover{opacity:.88}.td-chat-send-btn:disabled{opacity:.35;cursor:not-allowed}@media (max-width: 640px){.td-header{padding:14px 16px}.td-tabs{padding:0 16px}.td-content{padding:20px 16px}.td-stats-row{grid-template-columns:repeat(3,1fr);gap:10px}.td-stat-val{font-size:1.5rem}.td-lesson-card-footer{flex-direction:column;align-items:flex-start;gap:8px}.td-feedback-modal{max-height:100vh;border-radius:16px 16px 0 0;align-self:flex-end}.td-chat-layout{flex-direction:column;height:auto;gap:12px}.td-chat-sidebar{width:100%;flex-direction:column;max-height:180px;border-radius:12px}.td-chat-sidebar-list{display:flex;flex-direction:row;overflow-x:auto;overflow-y:hidden}.td-chat-learner-btn{flex-direction:column;width:auto;min-width:72px;padding:10px 8px;border-left:none;border-bottom:3px solid transparent}.td-chat-learner-btn.active{border-left-color:transparent;border-bottom-color:#6c63ff}.td-chat-learner-name{font-size:.72rem;text-align:center}.td-chat-main{height:400px;border-radius:12px}}@media (max-width: 480px){.td-stats-row{grid-template-columns:1fr}.td-stat-card{padding:14px 16px;display:flex;align-items:center;gap:12px;text-align:left}.td-stat-icon{font-size:1.5rem;margin-bottom:0}.td-stat-val{font-size:1.3rem}.td-chat-main{height:360px}}.td-assign-create-card{background:#fff;border:1.5px solid var(--border, #E8E4FF);border-radius:16px;padding:24px 28px;margin-bottom:8px;box-shadow:0 2px 8px #6c63ff0f}.td-assign-card-title{font-size:1.05rem;font-weight:800;color:var(--text-dark, #2D2B55);margin-bottom:18px}.td-assign-form-row{display:flex;gap:18px;flex-wrap:wrap;align-items:flex-start}.td-assign-field{display:flex;flex-direction:column;gap:4px;flex:1;min-width:180px}.td-assign-field>label{font-size:.82rem;font-weight:700;color:var(--text-medium, #6B6896);text-transform:uppercase;letter-spacing:.04em}.td-assign-select,.td-assign-input{margin-top:4px;padding:9px 12px;border:1.5px solid var(--border, #E8E4FF);border-radius:10px;font-family:inherit;font-size:.9rem;font-weight:600;color:var(--text-dark, #2D2B55);background:var(--bg, #F8F7FF);transition:border-color .15s,box-shadow .15s;width:100%;box-sizing:border-box}.td-assign-select:focus,.td-assign-input:focus{outline:none;border-color:#6c63ff;box-shadow:0 0 0 3px #6c63ff1f}@media (max-width: 640px){.td-assign-form-row{flex-direction:column;gap:14px}.td-assign-create-card{padding:18px 16px}}.modal-box{background:var(--card-bg, #fff);border-radius:20px;width:90%;max-width:500px;max-height:88vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0003;overflow:hidden}.modal-box-lg{max-width:680px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:2px solid var(--border, #e5e7eb);flex-shrink:0}.modal-header h2{font-size:1rem;font-weight:900;color:var(--text-dark);margin:0}.modal-close{background:none;border:none;font-size:1.1rem;cursor:pointer;color:var(--text-light);padding:4px 8px;border-radius:6px;transition:background .15s}.modal-close:hover{background:var(--border, #e5e7eb)}.modal-body{padding:20px 24px;overflow-y:auto;flex:1}.modal-form{padding:20px 24px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:16px}.modal-field{display:flex;flex-direction:column;gap:6px}.modal-field label{font-size:.85rem;font-weight:800;color:var(--text-dark)}.modal-input{padding:10px 14px;border:2px solid var(--border, #e5e7eb);border-radius:10px;font-size:.92rem;font-family:var(--font);font-weight:600;color:var(--text-dark);background:var(--card-bg, #fff);outline:none;transition:border-color .2s;width:100%;box-sizing:border-box}.modal-input:focus{border-color:#6c63ff;box-shadow:0 0 0 3px #6c63ff1f}textarea.modal-input{resize:vertical;min-height:80px}.modal-error{background:#fee2e2;color:#991b1b;border-radius:8px;padding:8px 12px;font-size:.88rem;font-weight:700}.modal-footer{display:flex;gap:10px;justify-content:flex-end;padding:16px 24px;border-top:2px solid var(--border, #e5e7eb);flex-shrink:0;background:var(--card-bg, #fff)}.al-learner-list{display:flex;flex-direction:column;gap:6px;max-height:340px;overflow-y:auto}.al-learner-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:12px;border:2px solid var(--border, #e5e7eb);cursor:pointer;transition:all .15s;background:var(--card-bg, #fff)}.al-learner-row:hover{border-color:#6c63ff;background:#f5f3ff}.al-learner-row-in{border-color:#22c55e;background:#f0fdf4}.al-avatar{font-size:1.4rem}.al-learner-info{flex:1;display:flex;flex-direction:column}.al-learner-info strong{font-size:.95rem;color:var(--text-dark)}.al-learner-info span{font-size:.78rem;color:var(--text-light)}.al-check{width:28px;height:28px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:.85rem;flex-shrink:0;transition:all .15s;color:var(--text-light)}.al-check-active{background:#22c55e;border-color:#22c55e;color:#fff}.alm-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.alm-filter-btn{padding:6px 14px;border-radius:20px;border:2px solid var(--border);background:var(--card-bg, #fff);font-size:.82rem;font-weight:700;font-family:var(--font);cursor:pointer;color:var(--text-dark);transition:all .15s}.alm-filter-btn:hover{border-color:#6c63ff;color:#6c63ff}.alm-filter-active{border-color:#6c63ff;background:#ede9fe;color:#6c63ff}.alm-controls{display:flex;gap:8px;align-items:center;margin-bottom:10px}.alm-lesson-list{display:flex;flex-direction:column;gap:5px;max-height:320px;overflow-y:auto;margin-bottom:12px}.alm-lesson-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;border:2px solid var(--border);cursor:pointer;transition:all .15s;background:var(--card-bg, #fff)}.alm-lesson-row:hover{border-color:#6c63ff;background:#f5f3ff}.alm-lesson-selected{border-color:#6c63ff;background:#ede9fe}.alm-lesson-emoji{font-size:1.2rem;flex-shrink:0}.alm-lesson-info{flex:1;display:flex;flex-direction:column}.alm-lesson-info strong{font-size:.88rem;color:var(--text-dark)}.alm-lesson-info span{font-size:.75rem;margin-top:1px;font-weight:600}.alm-due-row{display:flex;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}.toggle-switch{width:52px;height:28px;background:var(--border);border-radius:999px;border:none;cursor:pointer;position:relative;transition:background .3s;flex-shrink:0}.toggle-switch:after{content:"";position:absolute;width:22px;height:22px;background:#fff;border-radius:50%;top:3px;left:3px;transition:left .25s;box-shadow:0 2px 4px #0003}.toggle-switch.toggle-on{background:var(--primary)}.toggle-switch.toggle-on:after{left:27px}.profile-page{max-width:800px;margin:0 auto;padding-bottom:40px}.profile-hero-card{background:var(--grad-hero);border-radius:var(--radius-xl);padding:32px;color:#fff;display:flex;align-items:center;gap:24px;margin-bottom:20px;box-shadow:var(--shadow-lg);flex-wrap:wrap}.profile-avatar-section{position:relative;flex-shrink:0}.profile-avatar-display{font-size:5rem;line-height:1;animation:float 3s ease-in-out infinite;display:block}.profile-level-ring{position:absolute;bottom:-4px;right:-8px;background:var(--accent);color:#7a5000;font-size:.8rem;font-weight:900;padding:3px 10px;border-radius:var(--radius-full);border:2px solid white}.profile-info{flex:1;min-width:200px}.name-display-row{display:flex;align-items:center;gap:10px;margin-bottom:4px}.profile-name{font-size:2rem;font-weight:900;color:#fff}.edit-name-btn{background:#fff3;border:none;border-radius:50%;width:32px;height:32px;cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center;transition:background .2s}.edit-name-btn:hover{background:#ffffff59}.name-edit-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}.name-input{padding:8px 14px;border-radius:var(--radius-md);border:2px solid rgba(255,255,255,.5);background:#ffffff26;color:#fff;font-family:var(--font);font-size:1.1rem;font-weight:800;outline:none;width:200px}.name-input::placeholder{color:#fff9}.profile-title{font-size:1rem;font-weight:600;color:#ffffffd9;margin-bottom:8px}.profile-points-row{display:flex;gap:8px;font-size:.9rem;font-weight:700;color:#fffc;flex-wrap:wrap}.profile-section-title{font-size:1.1rem;font-weight:800;color:var(--text-dark);margin-bottom:16px}.avatar-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:12px}.avatar-option{width:56px;height:56px;border-radius:var(--radius-md);border:2px solid var(--border);background:var(--bg);font-size:1.8rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.avatar-option:hover{transform:scale(1.1);border-color:var(--primary)}.avatar-selected{border-color:var(--primary)!important;background:#6c63ff24!important;box-shadow:0 0 0 3px #6c63ff40;transform:scale(1.1)}.saved-toast{background:#6bcb772e;color:#166534;font-weight:800;font-size:.9rem;padding:8px 16px;border-radius:var(--radius-full);display:inline-block;margin-top:8px;animation:fadeIn .3s ease}.profile-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.pstat-block{display:flex;flex-direction:column;align-items:center;text-align:center;padding:16px 8px;background:var(--bg);border-radius:var(--radius-md)}.pstat-block-icon{font-size:1.5rem;margin-bottom:6px}.pstat-block-val{font-size:1.1rem;font-weight:900;color:var(--primary)}.pstat-block-lbl{font-size:.68rem;font-weight:700;color:var(--text-light);margin-top:2px;line-height:1.3}.level-journey{display:flex;align-items:center;gap:16px}.lj-current,.lj-next{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:.8rem;font-weight:700;color:var(--text-medium);flex-shrink:0}.lj-badge{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:900}.lj-bar{flex:1}.lj-pct{text-align:right;font-size:.8rem;font-weight:700;color:var(--text-light);margin-top:4px}.xp-row{display:flex;align-items:center;gap:12px;margin-bottom:12px}.xp-row:last-child{margin-bottom:0}.xp-row-icon{font-size:1.3rem;flex-shrink:0}.xp-row-label{width:72px;font-size:.9rem;font-weight:700;color:var(--text-medium);flex-shrink:0}.xp-row-bar{flex:1}.xp-row-val{width:60px;text-align:right;font-size:.9rem;font-weight:800}.danger-card{border:1px solid rgba(239,68,68,.28)!important;background:#ef44440d}.danger-text{color:var(--text-medium);font-size:.9rem;font-weight:600;margin-bottom:12px;line-height:1.5}.reset-confirm p{font-size:.9rem;line-height:1.5}.dark-mode .toggle-switch:after{background:#f0efff}.dark-mode .avatar-option{background:#211e3a}.dark-mode .avatar-selected{background:#6c63ff47!important}.dark-mode .saved-toast{color:#86efac}.dark-mode .danger-card{background:#ef444414!important}@media (max-width: 640px){.profile-stats-grid{grid-template-columns:repeat(2,1fr)}.avatar-grid{grid-template-columns:repeat(4,1fr)}.level-journey{flex-direction:column}}.phmap-page{max-width:1180px;margin:0 auto;padding-bottom:20px}.phmap-outer{position:relative;display:flex;border-radius:20px;overflow:hidden;box-shadow:0 24px 64px #0000008c}.phmap-ocean{flex:1;position:relative;display:flex;align-items:center;justify-content:center;background:#04152b;overflow:hidden}.phmap-ocean:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 17% 75%,rgba(56,189,248,.18),transparent 32%),repeating-linear-gradient(155deg,rgba(255,255,255,.035) 0 1px,transparent 1px 34px),repeating-linear-gradient(25deg,rgba(255,255,255,.025) 0 1px,transparent 1px 42px);opacity:.65;pointer-events:none;z-index:0}.phmap-ocean:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 42%,rgba(0,0,0,.34) 100%);pointer-events:none;z-index:2}.phmap-stage{position:relative;z-index:1;width:100%;aspect-ratio:1672 / 941;overflow:hidden}.phmap-art{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:fill;object-position:center;pointer-events:none;user-select:none}.phmap-island{position:absolute;pointer-events:none;z-index:1;box-shadow:inset 0 2px #ffffff38,inset 0 -18px 30px #00000047,0 12px 24px #00000052}.phmap-luzon{left:9%;top:4%;width:46%;height:37%;background:radial-gradient(circle at 24% 29%,#D9F99D 0 5%,transparent 6%),radial-gradient(circle at 50% 45%,#BEF264 0 8%,transparent 9%),radial-gradient(circle at 72% 68%,#65A30D 0 9%,transparent 10%),linear-gradient(145deg,#a3e635,#54b948 34%,#16803c 72%,#0f5f35);border:2px solid rgba(190,242,100,.42);clip-path:polygon(35% 0%,54% 4%,68% 12%,79% 24%,74% 38%,88% 47%,82% 61%,88% 74%,74% 88%,56% 96%,38% 92%,29% 82%,17% 78%,12% 63%,6% 51%,12% 36%,18% 25%,18% 12%)}.phmap-visayas{left:19%;top:39%;width:55%;height:25%;background:radial-gradient(ellipse at 20% 54%,#7DD3FC 0 7%,transparent 8%),radial-gradient(ellipse at 35% 39%,#38BDF8 0 8%,transparent 9%),radial-gradient(ellipse at 50% 58%,#0EA5E9 0 8%,transparent 9%),radial-gradient(ellipse at 63% 38%,#7DD3FC 0 6%,transparent 7%),radial-gradient(ellipse at 77% 58%,#0284C7 0 7%,transparent 8%);border:none;box-shadow:none}.phmap-mindanao{left:38%;top:60%;width:48%;height:34%;background:radial-gradient(circle at 28% 64%,#C084FC 0 8%,transparent 9%),radial-gradient(circle at 66% 38%,#A855F7 0 7%,transparent 8%),radial-gradient(circle at 78% 76%,#7E22CE 0 8%,transparent 9%),linear-gradient(140deg,#c084fc,#8b5cf6 34%,#6731b5 72%,#4a1d86);border:2px solid rgba(216,180,254,.42);clip-path:polygon(34% 2%,54% 4%,72% 12%,91% 26%,97% 44%,86% 62%,75% 80%,56% 96%,36% 99%,19% 88%,7% 69%,10% 49%,2% 37%,14% 22%)}.phmap-luzon:after,.phmap-mindanao:after{content:"";position:absolute;inset:8%;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.35) 0 2px,transparent 3px),radial-gradient(circle at 56% 54%,rgba(255,255,255,.22) 0 2px,transparent 3px),radial-gradient(circle at 72% 38%,rgba(255,255,255,.18) 0 2px,transparent 3px);opacity:.7}.phmap-mini-island{position:absolute;z-index:1;width:42px;height:20px;background:linear-gradient(135deg,#a3e635,#16803c);border:1px solid rgba(190,242,100,.36);border-radius:55% 45% 60% 40%;box-shadow:inset 0 -6px 10px #00000047,0 8px 16px #00000040}.mi-1{left:6%;top:55%;transform:rotate(-28deg);width:70px;height:25px}.mi-2{left:13%;top:61%;transform:rotate(-46deg);width:92px;height:28px}.mi-3{left:27%;top:52%;transform:rotate(12deg);background:linear-gradient(135deg,#7dd3fc,#0284c7);border-color:#7dd3fc66}.mi-4{left:80%;top:42%;transform:rotate(18deg);width:34px;height:16px;background:linear-gradient(135deg,#7dd3fc,#0284c7);border-color:#7dd3fc66}.mi-5{left:73%;top:23%;transform:rotate(-20deg);width:36px;height:18px}.mi-6{left:28%;top:88%;transform:rotate(6deg);width:54px;height:18px;background:linear-gradient(135deg,#c084fc,#7e22ce);border-color:#d8b4fe66}.phmap-landmark{position:absolute;z-index:2;pointer-events:none;font-size:1.6rem;filter:drop-shadow(0 4px 6px rgba(0,0,0,.45))}.phmap-lm-church{left:21%;top:28%}.phmap-lm-volcano{left:59%;top:30%}.phmap-lm-palms{left:48%;top:64%}.phmap-lm-falls{left:78%;top:83%}.phmap-lm-boat{left:12%;top:78%;font-size:1.8rem}.phmap-lm-dolphin{left:82%;top:35%;font-size:1.8rem}.phmap-rlabel{position:absolute;z-index:3;font-size:1.05rem;font-weight:900;letter-spacing:.02em;text-transform:uppercase;pointer-events:none;opacity:.95;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.75),0 0 12px currentColor}.phmap-rl-luzon{left:36%;top:17%;color:#a3e635}.phmap-rl-visayas{left:24%;top:41%;color:#38bdf8}.phmap-rl-mindanao{left:42%;top:64%;color:#c084fc}.phmap-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:4}.phmap-path-line{stroke:transparent;stroke-width:2.8px;fill:none;transition:stroke .4s;filter:none}.phmap-path-line.done,.phmap-path-line.cross{stroke:transparent}.phmap-node{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer;z-index:5;transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.phmap-node:hover:not(.ph-locked){transform:translate(-50%,-50%) scale(1.2);z-index:6}.phmap-pulse{position:absolute;width:44px;height:44px;border-radius:50%;border:2px solid var(--nc, #6C63FF);animation:ph-pulse 2.4s ease-in-out infinite;pointer-events:none}@keyframes ph-pulse{0%,to{transform:scale(1);opacity:.7}50%{transform:scale(1.5);opacity:0}}.phmap-node-ring{position:absolute;width:42px;height:42px;border-radius:50%;border:2px solid rgba(255,255,255,.72);outline:2px solid var(--nc, #6C63FF);opacity:.72;pointer-events:none;transition:opacity .2s,border-color .2s}.phmap-node:hover:not(.ph-locked) .phmap-node-ring,.phmap-node.ph-sel .phmap-node-ring,.phmap-node.ph-current .phmap-node-ring{opacity:1}.phmap-node-inner{width:36px;height:36px;border-radius:50%;background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.5),var(--nc, #6C63FF) 38%,color-mix(in srgb,var(--nc, #6C63FF),#000 28%) 100%);border:2px solid rgba(255,255,255,.95);display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:900;color:#fff;position:relative;z-index:1;transition:background .2s,box-shadow .2s}.phmap-node:hover:not(.ph-locked) .phmap-node-inner{background:var(--nc, #6C63FF);box-shadow:0 0 14px var(--nc, #6C63FF),0 0 28px #0006}.phmap-node.ph-done .phmap-node-inner{background:var(--nc, #6C63FF);box-shadow:0 0 10px var(--nc, #6C63FF);font-size:.78rem}.phmap-node.ph-current .phmap-node-inner{background:var(--nc, #6C63FF);box-shadow:0 0 16px var(--nc, #6C63FF),0 0 32px #0006}.phmap-node.ph-sel .phmap-node-inner{background:var(--nc, #6C63FF);box-shadow:0 0 20px var(--nc, #6C63FF),0 0 40px #0000004d;transform:scale(1.1)}.phmap-node.ph-locked{cursor:default;opacity:.85;filter:grayscale(1) brightness(.7)}.phmap-node.ph-locked .phmap-node-inner{background:radial-gradient(circle at 35% 25%,#fff3,#4a4a5a 38%,#2a2a3a);border-color:#fff6;color:#ffffff59}.phmap-node.ph-locked .phmap-node-ring{border-color:#ffffff4d;outline-color:#b4b4c880}.phmap-node-stars{display:flex;gap:1px;font-size:.58rem;line-height:1}.phmap-node-stars .st-on{color:#fbbf24}.phmap-node-stars .st-off{color:#fff3}.phmap-node-mastery{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:4px;display:flex;align-items:center;gap:4px;padding:2px 7px;border-radius:999px;background:#0f172ac7;color:#fff;font-size:.62rem;font-weight:800;white-space:nowrap;pointer-events:none;box-shadow:0 4px 12px #0000004d;opacity:0;transition:opacity .18s}.phmap-node-mastery-icon{font-size:.78rem}.phmap-node:hover .phmap-node-mastery,.phmap-node.ph-current .phmap-node-mastery,.phmap-node.ph-sel .phmap-node-mastery{opacity:1}.phmap-node.ph-locked:hover .phmap-node-mastery{opacity:.6}.phmap-legend{position:absolute;top:14px;left:14px;background:#060e24d1;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:10px 14px;z-index:10;min-width:160px}.phmap-legend-title{font-size:.62rem;font-weight:900;color:#ffffff73;text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px}.phmap-legend-row{display:flex;align-items:center;gap:7px;margin-bottom:5px}.phmap-legend-row:last-child{margin-bottom:0}.phmap-ldot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.phmap-lname{font-size:.7rem;font-weight:800;color:#fffc;flex:1}.phmap-llvls{font-size:.62rem;font-weight:700;color:#ffffff61}.phmap-journey{position:absolute;top:14px;right:305px;animation:lm-bg-in .2s ease;background:#060e24d1;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:10px 14px;z-index:10;min-width:160px}.phmap-journey-title{font-size:.62rem;font-weight:900;color:#ffffff73;text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px}.phmap-journey-row{display:flex;align-items:center;gap:7px;margin-bottom:5px}.phmap-journey-row:last-child{margin-bottom:0}.phmap-jdot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.phmap-jdot.j-done{background:#4ade80}.phmap-jdot.j-prog{background:#fbbf24}.phmap-jdot.j-lock{background:#ffffff40}.phmap-jkey{font-size:.7rem;font-weight:700;color:#ffffffb3;flex:1}.phmap-jval{font-size:.7rem;font-weight:900;color:#fff}.phmap-panel{position:absolute;top:0;right:0;width:290px;height:100%;background:#060a18f5;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-left:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;overflow-y:auto;z-index:20;transform:translate(100%);transition:transform .32s cubic-bezier(.4,0,.2,1);pointer-events:none}.phmap-panel.open{transform:translate(0);pointer-events:auto}.phmap-panel-hd{position:relative;padding:20px 16px 16px;color:#fff;flex-shrink:0}.phmap-panel-eyebrow{font-size:.68rem;font-weight:800;opacity:.7;text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}.phmap-panel-title{font-size:1.2rem;font-weight:900;line-height:1.25;padding-right:28px}.phmap-panel-x{position:absolute;top:14px;right:14px;width:26px;height:26px;background:#ffffff2e;border:none;border-radius:50%;color:#fff;font-size:.74rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.phmap-panel-x:hover{background:#ffffff4d}.phmap-panel-body{padding:16px;display:flex;flex-direction:column;gap:14px;flex:1}.phmap-panel-desc{font-size:.82rem;color:#fff9;line-height:1.6;margin:0}.phmap-panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.phmap-stat-cell{background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:8px 10px}.phmap-sc-lbl{font-size:.6rem;font-weight:800;color:#ffffff61;text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}.phmap-sc-val{font-size:.78rem;font-weight:800;color:#fff;line-height:1.2}.phmap-prog-block{display:flex;flex-direction:column;gap:5px}.phmap-prog-hd{display:flex;justify-content:space-between;font-size:.7rem;font-weight:700;color:#ffffff80}.phmap-prog-track{height:6px;background:#ffffff1a;border-radius:999px;overflow:hidden}.phmap-prog-fill{height:100%;border-radius:999px;transition:width .7s ease}.phmap-pstars{display:flex;align-items:center;gap:4px}.phmap-pstar{font-size:1.15rem}.phmap-pstar.on{color:#fbbf24}.phmap-pstar.off{color:#ffffff2e}.phmap-pstar-lbl{font-size:.68rem;color:#ffffff6b;font-weight:600;margin-left:4px}.phmap-cta{display:block;width:100%;padding:11px;border:none;border-radius:10px;color:#fff;font-size:.88rem;font-weight:800;cursor:pointer;box-shadow:0 4px 16px #00000059;transition:opacity .15s,transform .12s;text-align:center}.phmap-cta:hover{opacity:.88;transform:translateY(-1px)}.phmap-cta:active{transform:translateY(0)}.phmap-locked-msg{font-size:.78rem;color:#ffffff73;background:#ffffff0d;border:1px dashed rgba(255,255,255,.12);border-radius:10px;padding:12px 14px;line-height:1.5;text-align:center}.phmap-hint{font-size:.72rem;color:#ffffff59;text-align:center;line-height:1.4;padding:4px 0}.phmap-panel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:12px;padding:32px 20px;text-align:center}.phmap-panel-empty-ico{font-size:2.8rem}.phmap-panel-empty p{font-size:.84rem;color:#ffffff59;line-height:1.55;max-width:200px;margin:0}.phmap-tip{margin-top:14px;padding:11px 18px;background:#6c63ff1a;border:1px solid rgba(108,99,255,.25);border-radius:12px;font-size:.82rem;font-weight:700;color:var(--text-medium, #555);text-align:center}.dark-mode .phmap-tip{color:#ffffff8c}@media (max-width: 820px){.phmap-outer{flex-direction:column;min-height:auto}.phmap-ocean{min-height:580px}.phmap-journey{right:8px;top:8px}.phmap-panel{position:relative;width:100%;height:auto;max-height:0;overflow:hidden;top:auto;right:auto;transform:none;transition:max-height .35s ease;border-left:none;border-top:1px solid rgba(255,255,255,.08)}.phmap-panel.open{max-height:600px;transform:none;overflow-y:auto}}@media (max-width: 520px){.phmap-ocean,.phmap-stage{min-height:420px}.phmap-legend,.phmap-journey{padding:8px 10px;min-width:120px}.phmap-lname,.phmap-jkey{font-size:.62rem}.phmap-node-inner{width:26px;height:26px;font-size:.65rem}.phmap-node-ring{width:34px;height:34px}}.level-page{max-width:860px;margin:0 auto;padding-bottom:60px}.lp-back-btn{background:none;border:none;color:var(--primary);font-weight:700;font-size:.9rem;cursor:pointer;padding:0;margin-bottom:16px;font-family:var(--font)}.lp-hero-card{border-radius:var(--radius-xl);padding:24px 28px;color:#fff;display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:12px;box-shadow:var(--shadow-lg);flex-wrap:wrap}.lp-hero-num{font-size:.85rem;font-weight:700;opacity:.8;margin-bottom:2px}.lp-hero-name{font-size:1.6rem;font-weight:900;margin-bottom:4px}.lp-hero-desc{font-size:.9rem;opacity:.9;margin-bottom:10px;max-width:460px}.lp-hero-meta{display:flex;gap:12px;font-size:.85rem;font-weight:700;opacity:.85;flex-wrap:wrap}.lp-diff-pill{background:#ffffff40;padding:2px 10px;border-radius:999px;font-size:.78rem;font-weight:800}.lp-hero-stats{display:flex;gap:20px}.lp-hero-stat{text-align:center}.lp-stat-val{font-size:1.5rem;font-weight:900}.lp-stat-lbl{font-size:.72rem;font-weight:700;opacity:.8}.lp-overall-progress{display:flex;align-items:center;gap:10px;margin-bottom:20px}.lp-progress-bar{flex:1;height:10px;background:var(--border);border-radius:999px;overflow:hidden}.lp-progress-fill{height:100%;border-radius:999px;transition:width .5s ease}.lp-progress-pct{font-size:.85rem;font-weight:800;color:var(--text-medium);width:38px;text-align:right}.lp-subject-section{margin-bottom:20px}.lp-subject-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}.lp-subj-icon{font-size:1.2rem}.lp-subj-name{font-size:1rem;font-weight:800;color:var(--text-dark);flex:1}.lp-subj-count{font-size:.8rem;font-weight:700;color:var(--text-light)}.lp-lesson-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.lp-lesson-card{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--card-bg);border:2px solid var(--border);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:all .2s;font-family:var(--font)}.lp-lesson-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.lp-lesson-card.lp-lesson-done{background:var(--bg)}.lp-lesson-emoji{font-size:1.4rem;flex-shrink:0}.lp-lesson-info{flex:1}.lp-lesson-title{font-size:.85rem;font-weight:800;color:var(--text-dark);margin-bottom:2px;line-height:1.3}.lp-lesson-meta{display:flex;gap:8px;font-size:.72rem;color:var(--text-light);font-weight:600}.lp-lesson-check{font-size:1.1rem;font-weight:900;flex-shrink:0}.lp-mission-section{margin-bottom:20px}.lp-mission-section-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.lp-mission-section-icon{font-size:1.2rem}.lp-mission-section-title{font-size:1rem;font-weight:800;color:var(--text-dark);flex:1}.lp-mission-helper{font-size:.8rem;color:var(--text-light);font-weight:600;margin-bottom:10px}.lp-empty-missions{font-size:.85rem;color:var(--text-light);font-style:italic;padding:12px}.lp-challenge-locked{display:inline-flex;align-items:center;gap:8px;background:var(--bg);border:2px solid var(--border);border-radius:var(--radius-md);padding:12px 20px;font-size:.88rem;font-weight:700;color:var(--text-light)}.lp-quiz-cta{margin-top:28px;text-align:center}.lp-quiz-score-display{font-size:.9rem;font-weight:700;margin-bottom:12px;padding:8px 16px;border-radius:var(--radius-md);display:inline-block}.lp-qs-pass{background:#dcfce7;color:#166534}.lp-qs-fail{background:#fee2e2;color:#991b1b}.lp-locked-screen{text-align:center;padding:60px 20px}.lp-locked-icon{font-size:4rem;margin-bottom:16px}.lp-modal-overlay{position:fixed;inset:0;background:#0000008c;z-index:9000;display:flex;align-items:center;justify-content:center;padding:16px}.lp-modal{background:var(--card-bg);border-radius:var(--radius-xl);max-width:620px;width:100%;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0000004d}.lp-modal-header{display:flex;align-items:flex-start;gap:12px;padding:20px 20px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.lp-modal-emoji{font-size:2rem;flex-shrink:0}.lp-modal-title{font-size:1.1rem;font-weight:900;color:var(--text-dark);margin-bottom:4px}.lp-modal-meta{display:flex;gap:10px;font-size:.8rem;font-weight:700;color:var(--text-light)}.lp-diff-chip{background:var(--bg);padding:1px 8px;border-radius:999px;font-size:.72rem}.lp-modal-close{margin-left:auto;background:none;border:none;font-size:1.1rem;cursor:pointer;color:var(--text-light);padding:4px;flex-shrink:0}.lp-modal-body{overflow-y:auto;padding:20px;flex:1}.lp-modal-intro{font-size:.95rem;color:var(--text-medium);line-height:1.6;margin-bottom:16px}.lp-modal-section{margin-bottom:16px}.lp-modal-section-title{font-size:.95rem;font-weight:800;color:var(--text-dark);margin-bottom:6px}.lp-modal-section-body{font-size:.9rem;color:var(--text-medium);line-height:1.6}.lp-fun-fact{display:flex;gap:8px;background:#fff9e6;border-left:3px solid #FFD93D;padding:10px 12px;border-radius:0 var(--radius-md) var(--radius-md) 0;font-size:.88rem;color:#7a5000;font-weight:600;margin-bottom:16px;margin-top:4px}.lp-lesson-quiz{margin-top:16px}.lp-quiz-q{font-size:.9rem;font-weight:800;color:var(--text-dark);margin-bottom:10px}.lp-quiz-options{display:flex;flex-direction:column;gap:6px}.lp-quiz-opt{padding:8px 14px;background:var(--bg);border:2px solid var(--border);border-radius:var(--radius-md);cursor:pointer;text-align:left;font-family:var(--font);font-size:.88rem;font-weight:600;transition:all .15s}.lp-quiz-opt:hover{border-color:var(--primary)}.lp-opt-correct{background:#dcfce7!important;border-color:#6bcb77!important;color:#166534}.lp-opt-wrong{background:#fee2e2!important;border-color:#ef4444!important;color:#991b1b}.lp-quiz-feedback{margin-top:8px;font-size:.85rem;font-weight:700;padding:6px 12px;border-radius:var(--radius-md)}.lp-qf-correct{background:#dcfce7;color:#166534}.lp-qf-wrong{background:#fee2e2;color:#991b1b}.lp-modal-footer{padding:14px 20px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-shrink:0}.lp-done-tag{font-size:.85rem;font-weight:800;color:#6bcb77}.dark-mode .lp-fun-fact{background:#ffd93d1f;color:#ffd93d}.dark-mode .lp-qs-pass{background:#6bcb7726;color:#6bcb77}.dark-mode .lp-qs-fail{background:#ef444426;color:#f87171}.dark-mode .lp-opt-correct{background:#6bcb772e!important;border-color:#6bcb77!important;color:#6bcb77}.dark-mode .lp-opt-wrong{background:#ef44442e!important;border-color:#ef4444!important;color:#f87171}.dark-mode .lp-qf-correct{background:#6bcb7726;color:#6bcb77}.dark-mode .lp-qf-wrong{background:#ef444426;color:#f87171}@media (max-width: 640px){.lp-hero-card{padding:18px 16px}.lp-hero-name{font-size:1.3rem}.lp-hero-stats{gap:12px}.lp-stat-val{font-size:1.2rem}.lp-lesson-grid{grid-template-columns:1fr}.lp-modal-overlay{align-items:flex-end;padding:0}.lp-modal{border-radius:16px 16px 0 0;max-height:90vh;align-self:flex-end}}.lq-page{max-width:680px;margin:0 auto;padding-bottom:40px}.lq-back{background:none;border:none;color:var(--primary);font-weight:700;font-size:.9rem;cursor:pointer;padding:0;margin-bottom:16px;font-family:var(--font)}.lq-ready-card{background:var(--card-bg);border-radius:var(--radius-xl);padding:32px;text-align:center;box-shadow:var(--shadow-lg)}.lq-ready-emoji{font-size:3.5rem;margin-bottom:12px}.lq-ready-title{font-size:1.6rem;font-weight:900;color:var(--text-dark);margin-bottom:4px}.lq-ready-name{font-size:1rem;color:var(--text-light);font-weight:700;margin-bottom:20px}.lq-ready-info{display:flex;justify-content:center;gap:32px;margin-bottom:20px}.lq-info-item{text-align:center}.lq-info-val{font-size:1.8rem;font-weight:900;color:var(--primary)}.lq-info-lbl{font-size:.75rem;font-weight:700;color:var(--text-light)}.lq-ready-desc{font-size:.9rem;color:var(--text-medium);margin-bottom:24px;line-height:1.5}.lq-progress-bar-wrap{height:6px;background:var(--border);border-radius:999px;margin-bottom:14px;overflow:hidden}.lq-progress-bar-fill{height:100%;border-radius:999px;transition:width .3s ease}.lq-top-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.lq-counter{font-size:.85rem;font-weight:800;color:var(--text-medium)}.lq-score-chip{font-size:.85rem;font-weight:800;color:#6bcb77}.lq-subject-chip{font-size:.8rem;font-weight:700;padding:4px 12px;border-radius:999px}.lq-question-card{background:var(--card-bg);border-radius:var(--radius-xl);padding:28px;box-shadow:var(--shadow-md)}.lq-question-text{font-size:1.05rem;font-weight:800;color:var(--text-dark);margin-bottom:20px;line-height:1.5}.lq-options{display:flex;flex-direction:column;gap:10px}.lq-option{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg);border:2px solid var(--border);border-radius:var(--radius-md);cursor:pointer;text-align:left;font-family:var(--font);font-size:.92rem;font-weight:600;transition:all .15s;color:var(--text-dark)}.lq-option:hover{border-color:var(--primary);background:#eef2ff}.lq-opt-selected{border-color:var(--primary)!important;background:#eef2ff!important}.lq-opt-correct{border-color:#6bcb77!important;background:#dcfce7!important;color:#166534!important}.lq-opt-wrong{border-color:#ef4444!important;background:#fee2e2!important;color:#991b1b!important}.lq-opt-dim{opacity:.4}.lq-opt-letter{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--border);font-size:.78rem;font-weight:900;flex-shrink:0}.lq-explanation{margin-top:14px;padding:10px 14px;border-radius:var(--radius-md);font-size:.88rem;line-height:1.5;font-weight:600}.lq-exp-correct{background:#dcfce7;color:#166534}.lq-exp-wrong{background:#fee2e2;color:#991b1b}.lq-exp-detail{margin-top:6px;font-size:.82rem;font-weight:500;opacity:.85}.lq-auto-advance{margin-top:14px;height:4px;background:var(--border);border-radius:999px;overflow:hidden}.lq-auto-bar{height:100%;border-radius:999px;animation:lq-advance-progress 1.8s linear forwards}@keyframes lq-advance-progress{0%{width:0%}to{width:100%}}.lq-watermark{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden;user-select:none}.lq-page>*:not(.lq-watermark){position:relative;z-index:1}.lq-result-card{background:var(--card-bg);border-radius:var(--radius-xl);padding:36px 32px;text-align:center;box-shadow:var(--shadow-lg)}.lq-result-emoji{font-size:3.5rem;margin-bottom:12px}.lq-result-title{font-size:1.6rem;font-weight:900;color:var(--text-dark);margin-bottom:20px}.lq-result-score-ring{width:120px;height:120px;border-radius:50%;border:6px solid;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0 auto 20px}.lq-result-pct{font-size:2rem;font-weight:900}.lq-result-fraction{font-size:.8rem;font-weight:700;color:var(--text-light)}.lq-pass-msg{font-size:.95rem;color:#166534;font-weight:700;margin-bottom:20px;line-height:1.5}.lq-fail-msg{font-size:.95rem;color:#991b1b;font-weight:700;margin-bottom:20px;line-height:1.5}.lq-breakdown{background:var(--bg);border-radius:var(--radius-md);padding:12px 16px;margin-bottom:20px}.lq-breakdown-row{display:flex;justify-content:space-between;font-size:.88rem;font-weight:700;color:var(--text-medium);padding:4px 0}.lq-result-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.lq-empty{text-align:center;padding:60px 20px}.dark-mode .lq-option:hover{background:#6c63ff26}.dark-mode .lq-opt-selected{background:#6c63ff33!important}.dark-mode .lq-opt-correct{background:#6bcb772e!important;color:#6bcb77!important}.dark-mode .lq-opt-wrong{background:#ef44442e!important;color:#f87171!important}.dark-mode .lq-exp-correct{background:#6bcb7726;color:#6bcb77}.dark-mode .lq-exp-wrong{background:#ef444426;color:#f87171}.dark-mode .lq-pass-msg{color:#6bcb77}.dark-mode .lq-fail-msg{color:#f87171}@media (max-width: 640px){.lq-ready-card{padding:24px 18px}.lq-result-card{padding:28px 18px}.lq-question-card{padding:20px 16px}.lq-ready-info{gap:16px}.lq-info-val{font-size:1.4rem}.lq-ready-title,.lq-result-title{font-size:1.3rem}.lq-question-text{font-size:.95rem}.lq-result-actions{flex-direction:column;align-items:stretch}}.coding-page{max-width:1100px;margin:0 auto;padding-bottom:40px}.cp-header{background:linear-gradient(135deg,#1a1a2e,#2d2d44);border-radius:0 0 20px 20px;padding:32px 24px 24px;margin-bottom:20px;box-shadow:0 4px 24px #00000040;color:#fff;position:relative;overflow:hidden}.cp-header:before{content:"";position:absolute;top:-40%;right:-4%;width:260px;height:260px;background:#6c63ff1f;border-radius:50%;pointer-events:none}.cp-header:after{content:"";position:absolute;bottom:-30%;left:10%;width:180px;height:180px;background:#3b82f614;border-radius:50%;pointer-events:none}.cp-header-inner{display:flex;flex-direction:row;align-items:flex-start;gap:20px;margin-bottom:20px}.cp-header-emoji{font-size:3.5rem;line-height:1;flex-shrink:0;animation:float 3s ease-in-out infinite}.cp-header-text h1{font-size:1.8rem;font-weight:800;color:#fff;margin:0 0 4px;line-height:1.1}.cp-header-text p{font-size:.95rem;color:#ffffffb3;margin:0;font-weight:600}.cp-header-stats{display:flex;flex-direction:row;align-items:center;gap:0;background:#ffffff1a;border-radius:14px;padding:14px 20px;width:fit-content}.cp-stat{text-align:center;padding:0 20px}.cp-stat:first-child{padding-left:0}.cp-stat:last-child{padding-right:0}.cp-stat-val{font-size:1.5rem;font-weight:800;color:#fff;line-height:1.2}.cp-stat-lbl{font-size:.78rem;color:#ffffffa6;text-transform:uppercase;letter-spacing:1px;font-weight:700;margin-top:2px}.cp-stat-divider{width:1px;height:36px;background:#fff3;flex-shrink:0}.cp-filters{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px;padding:4px 0 16px}.cp-subj-tabs{display:flex;flex-direction:row;gap:6px}.cp-subj-tab{padding:6px 16px;border-radius:20px;border:1.5px solid var(--border);background:var(--bg);color:var(--text-medium);font-family:var(--font);font-weight:700;font-size:.85rem;cursor:pointer;transition:all .2s}.cp-subj-tab:hover{border-color:#6c63ff;color:#6c63ff}.cp-subj-tab-active{background:#6c63ff;color:#fff;border-color:#6c63ff}.cp-done-filters{display:flex;flex-direction:row;gap:6px;margin-left:auto}.cp-done-btn{padding:5px 14px;border-radius:20px;border:1.5px solid var(--border);background:var(--bg);color:var(--text-medium);font-family:var(--font);font-weight:700;font-size:.8rem;cursor:pointer;transition:all .2s}.cp-done-btn:hover{border-color:#6c63ff;color:#6c63ff}.cp-done-btn-active{background:#6c63ff;color:#fff;border-color:#6c63ff}.cp-section{margin-bottom:28px}.cp-section-head{display:flex;flex-direction:row;align-items:center;gap:10px;padding:12px 16px;background:var(--card-bg);border-radius:12px;box-shadow:var(--shadow-sm);border-left:4px solid currentColor;margin-bottom:12px}.cp-section-emoji{font-size:1.4rem;line-height:1;flex-shrink:0}.cp-section-label{font-size:1.05rem;font-weight:800}.cp-section-count{margin-left:auto;font-size:.85rem;color:var(--text-light);font-weight:600}.cp-lessons-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.cp-lesson-card{background:var(--card-bg);border-radius:16px;padding:20px;cursor:pointer;border:1.5px solid var(--border);position:relative;display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s,border-color .2s}.cp-lesson-card:hover{transform:translateY(-3px);box-shadow:0 8px 28px #00000021;border-color:var(--subject-color, #6C63FF)}.cp-lesson-done{border-color:#6bcb77!important;background:linear-gradient(135deg,#FAFFFC,var(--card-bg))}.cp-done-stamp{position:absolute;top:14px;right:14px;width:28px;height:28px;background:linear-gradient(135deg,#6bcb77,#4caf50);border-radius:50%;color:#fff;font-size:.8rem;font-weight:900;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #6bcb7773;z-index:1}.cp-assigned-stamp{position:absolute;top:14px;right:14px;font-size:1.1rem;line-height:1;filter:drop-shadow(0 1px 3px rgba(245,158,11,.4));z-index:1}.cp-lesson-card-top{display:flex;align-items:flex-start;justify-content:space-between}.cp-lesson-number{font-size:.72rem;font-weight:800;color:var(--text-light);letter-spacing:.5px}.cp-lesson-emoji-wrap{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.7rem;flex-shrink:0;transition:transform .2s}.cp-lesson-card:hover .cp-lesson-emoji-wrap{transform:scale(1.1) rotate(5deg)}.cp-lesson-title{font-size:1rem;font-weight:800;color:var(--text-dark);line-height:1.3;margin:0}.cp-lesson-desc{font-size:.85rem;color:var(--text-medium);font-weight:600;line-height:1.4;flex:1;margin:0}.cp-lesson-card-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px}.cp-lesson-tags{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.cp-lesson-diff{display:flex;align-items:center;gap:4px;padding:3px 8px;border-radius:20px;font-size:.72rem;font-weight:700}.cp-diff-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.cp-lesson-dur{font-size:.75rem;font-weight:600;color:var(--text-light)}.cp-assigned-tag{background:#fff7ed;color:#f59e0b;font-weight:700;font-size:.76rem;padding:2px 8px;border-radius:20px;border:1.5px solid rgba(245,158,11,.27)}.cp-lesson-xp{font-size:.82rem;font-weight:800}.cp-lesson-start-btn{width:100%;padding:10px;border-radius:10px;border:none;font-family:var(--font);font-weight:700;font-size:.9rem;cursor:pointer;transition:all .2s;margin-top:4px}.cp-lesson-start-btn:hover{opacity:.88;transform:scale(1.02)}.cp-empty{text-align:center;padding:48px 24px;color:var(--text-light)}.cp-empty h3{font-size:1.3rem;font-weight:800;color:var(--text-dark);margin:0 0 8px}.cp-empty p{font-size:.95rem;color:var(--text-medium);font-weight:600;margin:0}@media (max-width: 640px){.cp-header{border-radius:0 0 16px 16px;padding:24px 16px 20px}.cp-header-text h1{font-size:1.5rem}.cp-header-stats{width:100%;justify-content:space-around}.cp-filters{flex-direction:column;align-items:flex-start;gap:8px}.cp-done-filters{margin-left:0}.cp-lessons-grid{grid-template-columns:1fr}}.mt-page{padding:24px;max-width:900px;margin:0 auto}.mt-no-teacher{text-align:center;padding:64px 32px;background:var(--card-bg);border-radius:20px;box-shadow:var(--shadow-sm);font-size:.95rem;color:var(--text-medium)}.mt-selector{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:24px}.mt-teacher-header{display:flex;align-items:flex-start;gap:20px;padding:20px 22px;background:var(--card-bg);border-radius:20px;margin-bottom:20px;box-shadow:var(--shadow-sm)}.mt-teacher-avatar{font-size:3rem;width:68px;height:68px;background:var(--bg);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.mt-teacher-name{font-size:1.2rem;font-weight:800;color:var(--text-dark);margin-bottom:4px}.mt-online-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px;vertical-align:middle}.mt-online-dot.online{background:#10b981}.mt-online-dot.offline{background:#9ca3af}.mt-subj-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:.78rem;font-weight:700;margin-left:8px}.mt-teacher-bio{font-size:.88rem;color:var(--text-medium);margin-top:8px;line-height:1.55}.mt-tabs{display:flex;border-bottom:2px solid var(--border);margin-bottom:20px;flex-wrap:wrap}.mt-tab{position:relative;padding:11px 18px;font-size:.9rem;font-weight:700;background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;color:var(--text-medium);transition:color .15s,border-color .15s;white-space:nowrap}.mt-tab:hover{color:var(--text-dark)}.mt-tab-active{color:#6c63ff;border-bottom-color:#6c63ff}.mt-tab-badge{position:absolute;top:6px;right:4px;background:#ef4444;color:#fff;border-radius:50%;width:16px;height:16px;font-size:.65rem;font-weight:800;display:flex;align-items:center;justify-content:center}.mt-section-title{font-size:.8rem;font-weight:700;color:var(--text-light);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.mt-empty{text-align:center;padding:48px 24px;color:var(--text-light);font-size:.95rem;font-weight:600}.mt-bucket-section{margin-bottom:24px}.mt-bucket-head{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--card-bg);border-radius:12px;box-shadow:var(--shadow-sm);border-left:4px solid #6C63FF;margin-bottom:10px}.mt-lesson-list{display:flex;flex-direction:column;gap:10px}.mt-lesson-item{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--card-bg);border-radius:14px;border:1.5px solid var(--border);box-shadow:var(--shadow-sm);transition:box-shadow .15s}.mt-lesson-item:hover{box-shadow:var(--shadow-md)}.mt-lesson-emoji{font-size:1.7rem;width:44px;height:44px;background:var(--bg);border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.mt-lesson-info{flex:1;min-width:0}.mt-lesson-title{font-size:.95rem;font-weight:800;color:var(--text-dark)}.mt-lesson-desc{font-size:.8rem;color:var(--text-light);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mt-lesson-done-badge{background:#d1fae5;color:#065f46;font-size:.78rem;font-weight:700;padding:3px 10px;border-radius:20px;flex-shrink:0}.mt-open-btn{padding:8px 16px;border-radius:10px;background:#6c63ff;color:#fff;border:none;font-weight:700;cursor:pointer;font-size:.85rem;flex-shrink:0;transition:opacity .15s}.mt-open-btn:hover{opacity:.88}.mt-report-overall{display:flex;gap:24px;background:var(--card-bg);border-radius:16px;padding:20px 24px;margin-bottom:16px;box-shadow:var(--shadow-sm);align-items:center;flex-wrap:wrap}.mt-report-stat{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:70px}.mt-report-stat-val{font-size:1.7rem;font-weight:800;color:#6c63ff}.mt-report-stat-lbl{font-size:.74rem;color:var(--text-light);text-transform:uppercase;letter-spacing:.5px;text-align:center}.mt-report-card{background:var(--card-bg);border-radius:16px;padding:16px 20px;margin-bottom:12px;box-shadow:var(--shadow-sm)}.mt-progress-track{height:8px;background:var(--bg);border-radius:99px;overflow:hidden;margin-top:8px}.mt-progress-fill{height:100%;border-radius:99px;transition:width .4s ease}.mt-feedback-list{display:flex;flex-direction:column;gap:12px}.mt-feedback-item{background:var(--card-bg);border-radius:14px;padding:14px 16px;border-left:4px solid #6C63FF;box-shadow:var(--shadow-sm)}.mt-fb-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.mt-fb-badge{font-size:.78rem;font-weight:700;padding:2px 10px;border-radius:20px}.mt-fb-date{font-size:.78rem;color:var(--text-light);margin-left:auto}.mt-fb-msg{font-size:.92rem;color:var(--text-medium);line-height:1.6;margin:0}.mt-msg-row{display:flex;align-items:flex-end;gap:8px}.mt-msg-row-mine{flex-direction:row-reverse}.mt-msg-content{max-width:75%;min-width:0}.mt-msg-bubble{padding:10px 14px;border-radius:18px;font-size:.92rem;line-height:1.5;word-break:break-word}.mt-msg-bubble-theirs{background:var(--bg);color:var(--text-dark);border:1.5px solid var(--border);border-bottom-left-radius:4px}.mt-msg-bubble-mine{background:#6c63ff;color:#fff;border-bottom-right-radius:4px}.mt-chat-wrap{display:flex;flex-direction:column;height:clamp(360px,60vh,560px);background:var(--card-bg);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm)}.mt-chat-header{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg)}.mt-chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px}.mt-chat-empty{text-align:center;padding:48px 24px;color:var(--text-light);font-size:.95rem}.mt-msg-avatar{font-size:1.15rem;width:28px;height:28px;border-radius:50%;background:var(--bg);display:flex;align-items:center;justify-content:center;flex-shrink:0}.mt-msg-time{font-size:.7rem;color:var(--text-light);margin-top:3px}.mt-chat-input-wrap{display:flex;gap:10px;padding:10px 14px;border-top:1px solid var(--border);flex-shrink:0;background:var(--bg);align-items:flex-end}.mt-chat-input{flex:1;padding:9px 13px;border-radius:12px;border:1.5px solid var(--border);font-size:.92rem;resize:none;font-family:inherit;background:var(--card-bg);color:var(--text-dark);line-height:1.45;max-height:90px}.mt-chat-input:focus{outline:none;border-color:#6c63ff;box-shadow:0 0 0 3px #6c63ff1f}.mt-chat-send-btn{padding:9px 18px;background:#6c63ff;color:#fff;border:none;border-radius:12px;font-weight:700;cursor:pointer;font-size:.9rem;flex-shrink:0;transition:opacity .15s}.mt-chat-send-btn:hover{opacity:.88}.mt-chat-send-btn:disabled{opacity:.35;cursor:not-allowed}.dark-mode .mt-msg-bubble-theirs{background:#ffffff0f;border-color:#ffffff1a}@media (max-width: 600px){.mt-page{padding:16px}.mt-teacher-header{flex-direction:column}.mt-tabs{gap:0}.mt-tab{padding:10px 12px;font-size:.82rem}.mt-chat-wrap{height:clamp(300px,55vh,440px)}}.gp-page{padding:24px 20px;max-width:1100px;margin:0 auto}.gp-page-header{display:flex;align-items:center;gap:14px;margin-bottom:20px;flex-wrap:wrap}.gp-page-title{font-size:1.5rem;font-weight:900;color:var(--text-dark);margin:0}.gp-global-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:linear-gradient(135deg,#6c63ff,#a855f7);color:#fff;border-radius:999px;font-size:.82rem;font-weight:800;animation:gp-pulse 2s infinite}@keyframes gp-pulse{0%,to{box-shadow:0 0 #6c63ff55}50%{box-shadow:0 0 0 6px #6c63ff00}}.gp-layout{display:flex;gap:20px;align-items:flex-start}.gp-sidebar{width:240px;flex-shrink:0;display:flex;flex-direction:column;gap:6px}.gp-teacher-section{margin-bottom:8px}.gp-teacher-row{display:flex;align-items:center;gap:6px;padding:8px 10px 6px;font-size:.78rem;font-weight:700;color:var(--text-medium);text-transform:uppercase;letter-spacing:.5px}.gp-teacher-avatar{font-size:1.1rem}.gp-teacher-name{flex:1;font-size:.82rem;font-weight:800;color:var(--text-dark)}.gp-teacher-subj{padding:2px 7px;border-radius:999px;font-size:.75rem;font-weight:700}.gp-unread-pill{background:#ef4444;color:#fff;border-radius:999px;font-size:.7rem;font-weight:800;padding:2px 7px;min-width:20px;text-align:center}.gp-online-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.gp-group-btn{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--card-bg);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:10px;cursor:pointer;text-align:left;transition:background .15s,border-left-color .15s;margin-bottom:4px;color:var(--text-dark)}.gp-group-btn:hover{background:var(--bg)}.gp-group-btn-active{background:var(--bg);border-color:var(--border)}.gp-group-emoji{font-size:1.2rem;flex-shrink:0}.gp-group-text{min-width:0}.gp-group-name{font-weight:800;font-size:.88rem;color:var(--text-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gp-group-meta{font-size:.75rem;color:var(--text-light);margin-top:2px}.gp-detail{flex:1;min-width:0;background:var(--card-bg);border:1px solid var(--border);border-radius:16px;overflow:hidden;display:flex;flex-direction:column}.gp-detail-empty{align-items:center;justify-content:center;min-height:300px;color:var(--text-light);font-size:1rem;font-weight:700;padding:40px;text-align:center}.gp-detail-header{display:flex;align-items:center;gap:14px;padding:18px 20px;border-bottom:1px solid var(--border);background:var(--bg);flex-wrap:wrap}.gp-detail-avatar{font-size:2.2rem;flex-shrink:0;width:48px;height:48px;background:var(--border);border-radius:12px;display:flex;align-items:center;justify-content:center}.gp-detail-meta{flex:1;min-width:0}.gp-detail-group-name{font-size:1.05rem;font-weight:900;color:var(--text-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gp-detail-teacher{display:flex;align-items:center;gap:6px;font-size:.82rem;font-weight:700;color:var(--text-medium);margin-top:4px}.gp-detail-progress{display:flex;flex-direction:column;align-items:flex-end;gap:3px;min-width:60px}.gp-prog-nums{font-size:1rem;font-weight:900;color:var(--text-dark)}.gp-prog-label{font-size:.7rem;color:var(--text-light);font-weight:700;text-transform:uppercase}.gp-prog-bar{width:60px;height:6px;background:var(--border);border-radius:999px;overflow:hidden}.gp-prog-fill{height:100%;border-radius:999px;transition:width .5s ease}.gp-due-chip{padding:4px 12px;background:#fff7ed;color:#92400e;border-radius:999px;font-size:.78rem;font-weight:700;border:1.5px solid #FDE68A;white-space:nowrap}.gp-tabs{display:flex;border-bottom:2px solid var(--border);background:var(--card-bg)}.gp-tab{flex:1;padding:12px 16px;font-size:.88rem;font-weight:800;color:var(--text-medium);background:none;border:none;border-bottom:3px solid transparent;margin-bottom:-2px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:color .15s,border-color .15s}.gp-tab:hover{color:var(--text-dark)}.gp-tab-active{color:#6c63ff;border-bottom-color:#6c63ff}.gp-tab-count{background:var(--border);color:var(--text-medium);border-radius:999px;font-size:.72rem;font-weight:800;padding:1px 7px}.gp-tab-badge{background:#ef4444;color:#fff;border-radius:999px;font-size:.72rem;font-weight:800;padding:2px 7px;animation:gp-pulse 2s infinite}.gp-lessons{padding:16px;display:flex;flex-direction:column;gap:10px;overflow-y:auto;max-height:520px;background:var(--card-bg)}.gp-lesson-item{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg);border:1px solid var(--border);border-radius:12px;transition:box-shadow .15s}.gp-lesson-item:hover{box-shadow:var(--shadow-sm)}.gp-lesson-left{display:flex;align-items:flex-start;gap:12px;flex:1;min-width:0}.gp-lesson-emoji{font-size:1.6rem;flex-shrink:0}.gp-lesson-title{font-weight:800;font-size:.9rem;color:var(--text-dark)}.gp-lesson-desc{font-size:.78rem;color:var(--text-medium);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.gp-subj-chip{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.72rem;font-weight:700;margin-top:5px}.gp-lesson-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}.gp-done-badge{font-size:.78rem;font-weight:800;color:#065f46;background:#d1fae5;padding:3px 10px;border-radius:999px}.gp-open-badge{font-size:.78rem;font-weight:800;padding:3px 10px;border-radius:999px;border:1.5px solid;background:transparent}.gp-open-btn{padding:7px 16px;border:none;border-radius:8px;color:#fff;font-weight:800;font-size:.82rem;cursor:pointer;transition:opacity .15s}.gp-open-btn:hover{opacity:.85}.gp-empty-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;color:var(--text-medium);font-weight:700;font-size:.95rem}.gp-chat{display:flex;flex-direction:column;height:520px;background:var(--card-bg)}.gp-chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;background:var(--bg)}.gp-chat-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-medium);font-weight:700;text-align:center;padding:40px}.gp-msg{display:flex;align-items:flex-end;gap:8px}.gp-msg-mine{flex-direction:row-reverse}.gp-msg-theirs{flex-direction:row}.gp-msg-avatar{width:32px;height:32px;border-radius:50%;background:var(--border);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}.gp-msg-avatar-me{background:var(--border)}.gp-msg-body{display:flex;flex-direction:column;max-width:68%}.gp-msg-mine .gp-msg-body{align-items:flex-end}.gp-msg-bubble{padding:10px 14px;border-radius:16px;font-size:.9rem;line-height:1.5;word-break:break-word}.gp-bubble-mine{background:linear-gradient(135deg,#6c63ff,#a855f7);color:#fff;border-bottom-right-radius:4px}.gp-bubble-theirs{background:var(--card-bg);color:var(--text-dark);border:1px solid var(--border);border-bottom-left-radius:4px}.gp-msg-time{font-size:.7rem;color:var(--text-light);margin-top:3px;padding:0 4px}.gp-chat-input-row{display:flex;align-items:flex-end;gap:10px;padding:12px 16px;border-top:1px solid var(--border);background:var(--card-bg)}.gp-chat-input{flex:1;resize:none;border:1.5px solid var(--border);border-radius:12px;padding:10px 14px;font-size:.9rem;font-family:inherit;outline:none;transition:border-color .15s;max-height:80px;overflow-y:auto;background:var(--bg);color:var(--text-dark)}.gp-chat-input:focus{border-color:#6c63ff}.gp-chat-input::placeholder{color:var(--text-light)}.gp-send-btn{width:42px;height:42px;border-radius:50%;border:none;background:linear-gradient(135deg,#6c63ff,#a855f7);color:#fff;font-size:1rem;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:opacity .15s,transform .1s}.gp-send-btn:hover:not(:disabled){opacity:.85;transform:scale(1.05)}.gp-send-btn:disabled{opacity:.35;cursor:not-allowed}.gp-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;color:var(--text-medium)}.gp-empty-icon{font-size:4rem;margin-bottom:16px}.gp-empty-state h2{font-size:1.3rem;font-weight:900;color:var(--text-dark);margin-bottom:10px}.gp-empty-state p{font-size:.95rem;max-width:320px}.dark-mode .gp-due-chip{background:#2d1a00;color:#fde68a;border-color:#4d2e00}.dark-mode .gp-done-badge{background:#052e16;color:#6ee7b7}.dark-mode .gp-group-btn-active{border-left-color:#6c63ff}.dark-mode .gp-lesson-item:hover{box-shadow:var(--shadow-sm)}.gp-chat-header-bar{padding:8px 16px;border-bottom:1px solid var(--border, #E8E4FF);background:var(--bg, #F8F7FF);flex-shrink:0}.gp-msg-sender{font-size:.72rem;font-weight:700;color:var(--text-light, #9CA3AF);margin-bottom:2px}@media (max-width: 700px){.gp-layout{flex-direction:column}.gp-sidebar{width:100%;flex-direction:row;overflow-x:auto;gap:8px;padding-bottom:4px}.gp-teacher-section{display:contents}.gp-teacher-row{display:none}.gp-group-btn{min-width:140px}.gp-chat{height:420px}.gp-lessons{max-height:420px}.gp-lesson-desc{max-width:160px}}.cp-wrap{display:flex;flex-direction:column;height:100%;border-radius:14px;overflow:hidden;box-shadow:0 6px 32px #0000002e;border:1.5px solid rgba(255,255,255,.06)}.cp-toolbar{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#12121f;border-bottom:1.5px solid rgba(255,255,255,.07);flex-wrap:wrap;flex-shrink:0}.cp-tabs{display:flex;gap:3px;background:#ffffff12;border-radius:8px;padding:3px}.cp-tab{padding:6px 16px;border:none;border-radius:6px;background:none;color:#ffffff73;font-family:inherit;font-size:.82rem;font-weight:800;cursor:pointer;transition:all .15s;letter-spacing:.01em}.cp-tab:hover{color:#fffc}.cp-tab-active{color:#fff!important}.cp-tab-html.cp-tab-active{background:#ff6b6b}.cp-tab-py.cp-tab-active{background:#3b82f6}.cp-title{flex:1;font-size:.8rem;font-weight:700;color:#ffffff59;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cp-actions{display:flex;gap:8px;margin-left:auto}.cp-btn-reset{padding:6px 13px;border:1.5px solid rgba(255,255,255,.14);border-radius:7px;background:none;color:#ffffff80;font-size:.82rem;font-weight:700;cursor:pointer;font-family:inherit;transition:all .15s}.cp-btn-reset:hover{border-color:#ffffff52;color:#ffffffd9}.cp-btn-run{padding:7px 22px;border:none;border-radius:7px;background:#6bcb77;color:#102010;font-size:.88rem;font-weight:900;cursor:pointer;font-family:inherit;transition:all .15s;letter-spacing:.03em;box-shadow:0 2px 10px #6bcb7759}.cp-btn-run:hover{background:#52c060;transform:translateY(-1px);box-shadow:0 4px 14px #6bcb7773}.cp-btn-run:active{transform:translateY(0)}.cp-split{display:flex;flex:1;min-height:0;overflow:hidden}.cp-pane{display:flex;flex-direction:column;flex:1;min-width:0;overflow:hidden}.cp-pane-label{padding:5px 14px;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;flex-shrink:0}.cp-editor-pane{background:#1e1e2e}.cp-editor-pane .cp-pane-label{background:#ffffff0a;color:#ffffff47;border-bottom:1px solid rgba(255,255,255,.06)}.cp-output-pane{background:#fff}.cp-output-pane .cp-pane-label{background:#f4f5f7;color:#999;border-bottom:1px solid #e8eaed}.cp-divider{width:3px;background:#ffffff0f;flex-shrink:0}.cp-editor{flex:1;width:100%;resize:none;border:none;outline:none;background:#1e1e2e;color:#cdd6f4;font-family:Courier New,Courier,monospace;font-size:13px;line-height:1.75;padding:14px 18px;tab-size:2;overflow-y:auto;overflow-x:auto;white-space:pre}.cp-editor::selection{background:#6c63ff59}.cp-output-wrap{flex:1;position:relative;overflow:hidden}.cp-iframe{position:absolute;inset:0;width:100%;height:100%;border:none;background:#fff}.cp-not-run{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fafbff;gap:10px;padding:24px;text-align:center}.cp-nr-icon{font-size:2.8rem;color:#6bcb77;line-height:1;background:#dcfce7;width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding-left:4px}.cp-not-run p{font-size:.9rem;font-weight:600;color:#aaa;margin:0}.cp-not-run strong{color:#52c060}.cp-nr-note{font-size:.76rem!important;color:#ccc!important}@media (max-width: 700px){.cp-split{flex-direction:column}.cp-divider{width:100%;height:3px}.cp-output-pane{border-top:1.5px solid rgba(255,255,255,.06)}.cp-output-wrap{min-height:240px}}.pg-page{display:flex;flex-direction:column;padding-bottom:0}.pg-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:18px}.pg-title{font-size:1.5rem;font-weight:900;color:var(--text-dark);margin:0 0 4px}.pg-sub{font-size:.88rem;color:var(--text-medium);margin:0}.pg-sub strong{color:#52c060}.pg-badges{display:flex;gap:8px;flex-shrink:0}.pg-badge{padding:5px 14px;border-radius:999px;font-size:.8rem;font-weight:800}.pg-badge-html{background:#ffe5e5;color:#e05a5a}.pg-badge-py{background:#eff6ff;color:#3b82f6}.pg-editor-wrap{height:calc(100vh - 220px);min-height:480px;max-height:820px}@media (max-width: 700px){.pg-editor-wrap{height:calc(100vh - 180px);min-height:520px}.pg-title{font-size:1.2rem}}.arcade-page{padding:24px;max-width:900px;margin:0 auto}.arcade-header{margin-bottom:28px}.arcade-header h1{font-size:2rem;font-weight:900;margin-bottom:6px}.arcade-header p{color:var(--text-medium, #62608a);font-size:1.05rem}.arcade-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}.arcade-card{background:var(--card-bg, #fff);border:2px solid var(--border, #e5e7ff);border-radius:20px;padding:28px 22px;text-align:center;cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s}.arcade-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px #6c63ff26;border-color:#6c63ff}.arcade-card-coming{opacity:.55;cursor:default;pointer-events:none}.arcade-card-icon{font-size:3rem;margin-bottom:12px}.arcade-card-label{font-size:1.1rem;font-weight:800;margin-bottom:6px;color:var(--text-dark, #17153f)}.arcade-card-desc{font-size:.88rem;color:var(--text-medium, #62608a);line-height:1.45}.arcade-back-btn{background:none;border:none;color:#6c63ff;font-weight:800;font-size:.95rem;cursor:pointer;margin-bottom:12px;padding:6px 0}.arcade-back-btn:hover{text-decoration:underline}.arcade-disabled-notice{text-align:center;padding:80px 24px;max-width:480px;margin:0 auto}.arcade-disabled-icon{font-size:4rem;margin-bottom:16px}.arcade-disabled-notice h2{font-size:1.4rem;font-weight:900;margin-bottom:10px;color:var(--text-dark, #17153f)}.arcade-disabled-notice p{color:var(--text-medium, #62608a);font-size:1rem;line-height:1.5}.main-content>*{animation:fadeIn .3s ease-out}.app-layout{background:var(--bg)}.loading-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:700;color:var(--text-medium)}.page-title{font-size:2rem;font-weight:900;color:var(--text-dark);margin-bottom:8px}.page-subtitle{color:var(--text-medium);font-size:1rem;font-weight:600;margin-bottom:24px}:focus-visible{outline:3px solid var(--primary);outline-offset:2px;border-radius:4px}:focus:not(:focus-visible){outline:none}:root{--primary: #6C63FF;--primary-light: #8B85FF;--primary-dark: #4B44CC;--secondary: #FF6B6B;--accent: #FFD93D;--success: #6BCB77;--warning: #FF9F1C;--info: #4ECDC4;--webdev: #FF6B6B;--webdev-light: #FFE5E5;--webdev-dark: #CC4444;--math: #4ECDC4;--math-light: #E0F7F6;--math-dark: #2BA69E;--science: #A855F7;--science-light: #F3E8FF;--science-dark: #7C3ABD;--bg: #F0F2FF;--card-bg: #FFFFFF;--text-dark: #1E1B4B;--text-medium: #4C4A7A;--text-light: #9492B5;--border: #E8E6FF;--grad-hero: linear-gradient(135deg, #6C63FF 0%, #A855F7 100%);--grad-webdev: linear-gradient(135deg, #FF6B6B 0%, #FF8E53 100%);--grad-math: linear-gradient(135deg, #4ECDC4 0%, #44A8D8 100%);--grad-science: linear-gradient(135deg, #A855F7 0%, #6C63FF 100%);--grad-gold: linear-gradient(135deg, #FFD93D 0%, #FF9F1C 100%);--grad-success: linear-gradient(135deg, #6BCB77 0%, #4ECDC4 100%);--python: #3B82F6;--python-light: #EFF6FF;--python-dark: #1D4ED8;--grad-python: linear-gradient(135deg, #3B82F6 0%, #6366F1 100%);--radius-sm: 8px;--radius-md: 16px;--radius-lg: 24px;--radius-xl: 32px;--radius-full: 9999px;--shadow-sm: 0 2px 8px rgba(108, 99, 255, .1);--shadow-md: 0 4px 16px rgba(108, 99, 255, .15);--shadow-lg: 0 8px 32px rgba(108, 99, 255, .2);--shadow-card: 0 4px 20px rgba(0, 0, 0, .08);--font: "Nunito", sans-serif}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font);background-color:var(--bg);color:var(--text-dark);min-height:100vh;overflow-x:hidden}.dark-mode{--bg: #0F0E1A;--card-bg: #1A1830;--text-dark: #F0EFFF;--text-medium: #B8B6D9;--text-light: #6B6990;--border: #2D2A50;--shadow-card: 0 4px 20px rgba(0, 0, 0, .45);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .5)}.dark-mode body{background:var(--bg);color:var(--text-dark)}.dark-mode .card,.dark-mode [class*=-card],.dark-mode [class*=card-]{background:var(--card-bg)!important;border-color:var(--border)!important}.dark-mode input,.dark-mode select{background:#0f0e1a;color:var(--text-dark);border-color:var(--border)}h1{font-size:2rem;font-weight:900}h2{font-size:1.5rem;font-weight:800}h3{font-size:1.25rem;font-weight:700}h4{font-size:1rem;font-weight:700}p{line-height:1.6}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--border)}::-webkit-scrollbar-thumb{background:var(--primary-light);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--primary)}@keyframes fadeIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes bounceIn{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.05)}70%{transform:scale(.9)}to{transform:scale(1);opacity:1}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes confettiFall{0%{transform:translateY(-20px) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}@keyframes starPop{0%{transform:scale(0) rotate(-30deg);opacity:0}60%{transform:scale(1.3) rotate(10deg)}to{transform:scale(1) rotate(0);opacity:1}}@keyframes progressFill{0%{width:0%}to{width:var(--target-width)}}@keyframes correctFlash{0%,to{background:initial}30%{background:#d4edda;transform:scale(1.02)}}@keyframes wrongShake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}@keyframes streakFire{0%,to{transform:scale(1) rotate(-3deg)}50%{transform:scale(1.1) rotate(3deg)}}.animate-fadeIn{animation:fadeIn .4s ease-out}.animate-bounceIn{animation:bounceIn .6s ease}.animate-pulse{animation:pulse 2s infinite}.animate-wiggle{animation:wiggle .5s ease}.animate-float{animation:float 3s ease-in-out infinite}.glass{background:#ffffffb3;backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.5)}.app-layout{display:flex;min-height:100vh;color:var(--text-dark)}.main-content{flex:1;padding:24px;margin-left:240px;max-width:calc(100vw - 240px);min-height:100vh;animation:fadeIn .3s ease-out}@media (max-width: 768px){.main-content{margin-left:0;max-width:100vw;padding:16px 16px 80px}}.card{background:var(--card-bg);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-card);border:1px solid var(--border);transition:transform .2s,box-shadow .2s}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.card-sm{padding:16px;border-radius:var(--radius-md)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:var(--radius-full);font-family:var(--font);font-size:1rem;font-weight:700;border:none;cursor:pointer;transition:all .2s;text-decoration:none;white-space:nowrap}.btn:active{transform:scale(.97)}.btn-primary{background:var(--grad-hero);color:#fff;box-shadow:0 4px 15px #6c63ff66}.btn-primary:hover{box-shadow:0 6px 20px #6c63ff80;transform:translateY(-1px)}.btn-success{background:var(--grad-success);color:#fff;box-shadow:0 4px 15px #6bcb7766}.btn-success:hover{transform:translateY(-1px);box-shadow:0 6px 20px #6bcb7780}.btn-outline{background:transparent;border:2px solid var(--primary);color:var(--primary)}.btn-outline:hover{background:var(--primary);color:#fff}.btn-ghost{background:#6c63ff1a;color:var(--primary)}.btn-ghost:hover{background:#6c63ff33}.btn-lg{padding:16px 32px;font-size:1.1rem;border-radius:var(--radius-xl)}.btn-sm{padding:8px 16px;font-size:.875rem}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:var(--radius-full);font-size:.75rem;font-weight:700}.badge-new{background:var(--grad-gold);color:#7a5000}.badge-webdev{background:var(--webdev-light);color:var(--webdev-dark)}.badge-math{background:var(--math-light);color:var(--math-dark)}.badge-science{background:var(--science-light);color:var(--science-dark)}.badge-success{background:#dcfce7;color:#166534}.progress-wrap{width:100%;background:var(--border);border-radius:var(--radius-full);overflow:hidden;height:12px}.progress-fill{height:100%;border-radius:var(--radius-full);transition:width 1s ease}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.section-title{font-size:1.3rem;font-weight:800;color:var(--text-dark);display:flex;align-items:center;gap:8px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.grid-auto{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}@media (max-width: 1024px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}}.overlay{position:fixed;inset:0;background:#00000080;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease;padding:16px}.modal{background:var(--card-bg);border-radius:var(--radius-xl);padding:32px;max-width:560px;width:100%;max-height:90vh;overflow-y:auto;animation:fadeInScale .3s ease;box-shadow:0 20px 60px #0000004d}.confetti-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999;overflow:hidden}.confetti-particle{position:absolute;width:10px;height:10px;border-radius:2px;animation:confettiFall linear forwards}
