:root{--bg: #070a13;--bg-alt: #0b0f1d;--card: rgba(19, 26, 46, .45);--card-hover: rgba(26, 35, 64, .6);--border: rgba(255, 255, 255, .06);--border-focus: rgba(99, 102, 241, .4);--primary: #6366f1;--primary-hover: #818cf8;--primary-soft: rgba(99, 102, 241, .08);--secondary: #06b6d4;--secondary-hover: #22d3ee;--success: #10b981;--danger: #ef4444;--warning: #f59e0b;--text: #f8fafc;--muted: #64748b;--sidebar: rgba(10, 14, 26, .8);--shadow: 0 8px 32px 0 rgba(0, 0, 0, .3);--shadow-soft: 0 4px 16px 0 rgba(0, 0, 0, .15);--glow: 0 0 25px rgba(99, 102, 241, .15);--glow-cyan: 0 0 25px rgba(6, 182, 212, .15);--radius: 16px;--radius-sm: 12px;--transition: .2s ease;--bounce: cubic-bezier(.16, 1, .3, 1);--glass: blur(12px) saturate(180%)}[data-theme=light]{--bg: #f8fafc;--bg-alt: #f1f5f9;--card: rgba(255, 255, 255, .7);--card-hover: rgba(255, 255, 255, .95);--border: rgba(0, 0, 0, .06);--border-focus: rgba(99, 102, 241, .3);--primary: #4f46e5;--primary-hover: #6366f1;--primary-soft: rgba(79, 70, 229, .06);--secondary: #0891b2;--secondary-hover: #06b6d4;--success: #059669;--danger: #dc2626;--warning: #d97706;--text: #0f172a;--muted: #475569;--sidebar: rgba(255, 255, 255, .85);--shadow: 0 8px 32px 0 rgba(31, 38, 135, .05);--shadow-soft: 0 4px 16px 0 rgba(0, 0, 0, .02);--glow: 0 0 25px rgba(79, 70, 229, .08);--glow-cyan: 0 0 25px rgba(8, 145, 178, .08);--glass: blur(12px) saturate(180%)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:Inter,-apple-system,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased;transition:background .4s ease,color .4s ease;overflow-x:hidden}body.sidebar-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input{font-family:inherit}ul{list-style:none}.hidden{display:none!important}.muted{color:var(--muted)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}.auth-screen{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:var(--bg)}.auth-bg{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.auth-bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle at 20% 80%,rgba(99,102,241,.08) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(6,182,212,.08) 0%,transparent 50%)}.orb{position:absolute;border-radius:50%;filter:blur(100px);opacity:.2;animation:float 12s ease-in-out infinite}.orb-1{width:450px;height:450px;background:var(--primary);top:-120px;left:-120px}.orb-2{width:350px;height:350px;background:var(--secondary);bottom:-80px;right:-80px;animation-delay:3s}.orb-3{width:280px;height:280px;background:var(--primary);top:40%;left:60%;animation-delay:5s;opacity:.1}@keyframes float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-15px) scale(1.05)}66%{transform:translate(-15px,20px) scale(.97)}}.auth-container{position:relative;z-index:1;width:100%;max-width:460px;padding:20px;animation:authSlideIn .6s var(--bounce)}@keyframes authSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.auth-brand{text-align:center;margin-bottom:32px}.auth-logo{width:72px;height:72px;background:linear-gradient(135deg,var(--primary),var(--secondary));border-radius:20px;display:flex;align-items:center;justify-content:center;font-size:36px;margin:0 auto 16px;box-shadow:0 12px 40px #6366f159;animation:logoFloat 4s ease-in-out infinite}@keyframes logoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.auth-brand h1{font-size:28px;font-weight:800;letter-spacing:-.5px}.auth-brand h1 span{color:var(--primary)}.auth-brand p{color:var(--muted);font-size:14px;margin-top:8px}.auth-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow);backdrop-filter:var(--glass);-webkit-backdrop-filter:var(--glass)}.auth-tabs{display:flex;gap:4px;background:var(--bg);border-radius:var(--radius-sm);padding:4px;margin-bottom:24px}.auth-tab{flex:1;padding:10px;border-radius:10px;font-weight:600;font-size:14px;color:var(--muted);transition:all .3s var(--transition)}.auth-tab:hover:not(.active){color:var(--text)}.auth-tab.active{background:linear-gradient(135deg,var(--primary),var(--primary-hover));color:#fff;box-shadow:0 4px 14px #6366f14d}.auth-form{display:none}.auth-form.active{display:block}.form-group{margin-bottom:16px}.form-row{display:flex;gap:12px}.form-row .form-group{flex:1}.form-group label{display:block;font-size:13px;font-weight:500;margin-bottom:6px;color:var(--muted)}.form-group input{width:100%;padding:13px 16px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:14px;transition:border var(--transition),box-shadow var(--transition),transform var(--transition)}.form-group input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft)}.form-group input::placeholder{color:var(--muted);opacity:.6}.pwd-wrap{position:relative}.pwd-wrap input{padding-right:44px}.pwd-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:18px;opacity:.6;transition:opacity var(--transition)}.pwd-toggle:hover{opacity:1}.btn{padding:12px 22px;border-radius:var(--radius-sm);font-weight:600;font-size:14px;transition:all .3s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;justify-content:center;gap:8px;position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent}.btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffff26;opacity:0;transition:opacity .3s}.btn:active:after{opacity:1;transition:opacity 0s}.btn-block{width:100%}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-hover));color:#fff;box-shadow:0 4px 14px #5b7cfa40}.btn-primary:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 8px 25px #5b7cfa66}.btn-ghost{background:var(--bg);border:1px solid var(--border);color:var(--text)}.btn-ghost:hover{background:var(--card-hover);border-color:var(--primary);transform:translateY(-1px) scale(1.02);box-shadow:0 4px 12px #6366f126}.btn-danger{background:linear-gradient(135deg,var(--danger),#e8555a);color:#fff;box-shadow:0 4px 14px #f0656a33}.btn-danger:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 8px 25px #f0656a59}.link-btn{color:var(--primary);font-size:13px;font-weight:500;transition:opacity var(--transition)}.link-btn:hover{text-decoration:underline;opacity:.85}.btn-lg{padding:16px 28px;font-size:16px;border-radius:var(--radius)}.btn-sm{padding:8px 16px;font-size:13px;border-radius:8px}@keyframes successPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.btn.success-animate{animation:successPulse .4s ease}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.animate-slide-in{animation:slideInUp .3s ease forwards}.animate-fade-in{animation:fadeIn .3s ease forwards}.animate-scale-in{animation:scaleIn .3s ease forwards}.shimmer-effect{background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);background-size:200% 100%;animation:shimmer 2s infinite}.app{display:flex;min-height:100vh;min-height:100dvh}.sidebar{width:260px;background:var(--sidebar);border-right:1px solid var(--border);backdrop-filter:var(--glass);-webkit-backdrop-filter:var(--glass);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;transition:width .25s ease,transform .25s ease,opacity .25s ease}.app.sidebar-collapsed .sidebar,.sidebar.collapsed{width:84px}.sidebar-header{padding:20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);transition:padding .25s ease}.app.sidebar-collapsed .sidebar-header,.sidebar.collapsed .sidebar-header{padding:18px 10px;justify-content:center}.sidebar-logo{font-size:20px;font-weight:800;display:flex;align-items:center;gap:8px;white-space:nowrap}.app.sidebar-collapsed .sidebar-logo span,.sidebar.collapsed .sidebar-logo span{display:none}.sidebar-logo span span{color:var(--primary)}.sidebar-close{display:none;font-size:20px}.sidebar-nav{flex:1;padding:16px;overflow-y:auto;overflow-x:hidden}.nav-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;color:var(--muted);transition:all .25s ease;margin-bottom:4px;width:100%;text-align:left;position:relative;overflow:hidden}.nav-label{white-space:nowrap;transition:opacity .25s ease,width .25s ease}.app.sidebar-collapsed .nav-label,.sidebar.collapsed .nav-label{display:none}.app.sidebar-collapsed .nav-item,.sidebar.collapsed .nav-item{justify-content:center;padding-left:8px;padding-right:8px}.nav-item .ripple{background:#fff3}.nav-item:hover{background:var(--card-hover);color:var(--text);transform:translate(6px)}.app.sidebar-collapsed .nav-item:hover,.sidebar.collapsed .nav-item:hover{transform:translate(0) translateY(-1px)}.nav-item:active{transform:translate(6px) scale(.98)}.nav-item.active{background:linear-gradient(135deg,var(--primary),var(--primary-hover));color:#fff;box-shadow:0 4px 15px #6366f159}.nav-icon{font-size:18px;width:24px;text-align:center;flex-shrink:0}.sidebar-footer{padding:16px;border-top:1px solid var(--border)}.logout-btn{width:100%;color:var(--danger)}.logout-btn:hover{background:#ef44441a;color:var(--danger)}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:99;opacity:0;transition:opacity .25s ease}.sidebar-overlay.active{display:block;opacity:1}.main{flex:1;margin-left:260px;display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;min-width:0;transition:margin-left .25s ease}.app.sidebar-collapsed .main{margin-left:84px}@media (min-width: 769px){html,body{max-width:none;width:auto}#app,.app{width:100%;max-width:none;min-width:0}.main{flex:1 1 auto;width:auto;max-width:none}.main .page{width:100%;max-width:none}}@media (max-width: 768px){.app{display:block}.sidebar{width:min(78vw,290px);transform:translate(-105%);box-shadow:var(--shadow);border-right:none}.sidebar.active{transform:translate(0)}.sidebar-header{padding:18px 18px 16px;justify-content:space-between}.sidebar-close{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:var(--bg);border:1px solid var(--border)}.sidebar-logo{gap:6px}.sidebar-logo span{display:inline-flex}.nav-item,.nav-item:hover,.nav-item:active{transform:none}.nav-label{display:block}.main{margin-left:0!important}.sidebar-overlay{display:block;opacity:0;pointer-events:none}.sidebar-overlay.active{opacity:1;pointer-events:auto}}@media (max-width: 430px){.sidebar{width:min(82vw,280px)}.nav-item{padding:11px 12px}.topbar{padding-left:14px;padding-right:14px}.topbar-left h2{font-size:18px}}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;min-height:64px;background:color-mix(in srgb,var(--bg) 92%,var(--card));border-bottom:1px solid var(--border);backdrop-filter:var(--glass);-webkit-backdrop-filter:var(--glass);box-shadow:var(--shadow-soft);position:sticky;top:0;left:0;width:100%;z-index:90;gap:12px;isolation:isolate}.topbar-left{display:flex;align-items:center;gap:12px}.topbar-left h2{font-size:20px;font-weight:700}.hamburger{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;border:1px solid var(--border);background:var(--bg);position:relative;transition:background .25s ease,border-color .25s ease,transform .25s ease}.hamburger:hover{background:var(--card-hover);border-color:#6366f138}.hamburger:active{transform:scale(.96)}.hamburger span{position:absolute;width:18px;height:2px;background:var(--text);border-radius:999px;transition:transform .25s ease,opacity .25s ease}.hamburger span:nth-child(1){transform:translateY(-6px)}.hamburger span:nth-child(2){transform:translateY(0)}.hamburger span:nth-child(3){transform:translateY(6px)}.topbar-right{display:flex;align-items:center;gap:8px}.icon-btn{width:40px;height:40px;border-radius:var(--radius-sm);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:18px;position:relative;transition:all .3s var(--transition)}.icon-btn:hover{background:var(--card-hover);border-color:#6366f140;transform:translateY(-1px)}.icon-btn:active{transform:translateY(0) scale(.95)}.theme-icon-light,[data-theme=light] .theme-icon-dark{display:none}[data-theme=light] .theme-icon-light{display:inline}.notif-badge{position:absolute;top:6px;right:6px;width:8px;height:8px;background:var(--danger);border-radius:50%;display:none}.notif-badge.active{display:block;animation:badgePulse 2s ease-in-out infinite}@keyframes badgePulse{0%,to{transform:scale(1);box-shadow:0 0 #ef444466}50%{transform:scale(1.15);box-shadow:0 0 0 6px #ef444400}}.notif-wrap{position:relative}.notif-dropdown{position:absolute;top:48px;right:0;width:320px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);backdrop-filter:var(--glass);-webkit-backdrop-filter:var(--glass);display:none;z-index:200}.notif-dropdown.active{display:block;animation:dropDown .3s var(--transition)}@keyframes dropDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.notif-header{padding:14px 16px;font-weight:600;border-bottom:1px solid var(--border);font-size:14px}.notif-list{max-height:360px;overflow-y:auto}.notif-item{padding:12px 16px;border-bottom:1px solid var(--border);font-size:13px;display:flex;gap:10px;align-items:start;transition:background var(--transition)}.notif-item:hover{background:var(--bg)}.notif-item .notif-emoji{font-size:18px}.notif-item .notif-text{color:var(--muted)}.notif-item .notif-time{font-size:11px;color:var(--muted);display:block;margin-top:2px}.user-chip{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border-radius:30px;background:var(--bg);transition:all .3s ease;cursor:pointer}.user-chip:hover{background:var(--card-hover);transform:scale(1.03)}.user-chip:active{transform:scale(.97)}.user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--secondary));display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;color:#fff;flex-shrink:0;transition:transform .3s var(--bounce)}.user-chip:hover .user-avatar{transform:scale(1.1) rotate(-5deg)}#topbarUsername{font-size:14px;font-weight:500}.content{padding:24px;flex:1}.page{display:none}.page.active{display:block;animation:pageIn .4s cubic-bezier(.4,0,.2,1)}@keyframes pageIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:20px;overflow:hidden;backdrop-filter:var(--glass);-webkit-backdrop-filter:var(--glass);transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition)}.card:hover{border-color:#6366f140;box-shadow:var(--glow);transform:translateY(-4px) scale(1.01)}.card-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.card-header h3{font-size:16px;font-weight:600}.card-body{padding:20px}.card.premium-card{background:linear-gradient(135deg,#6366f10d,#06b6d40d);border:1px solid rgba(99,102,241,.2)}.card.premium-card:hover{border-color:#6366f166;box-shadow:0 12px 40px #6366f133}@keyframes cardGlow{0%,to{box-shadow:0 4px 16px #6366f11a}50%{box-shadow:0 8px 32px #6366f133}}.card.glow-hover:hover{animation:cardGlow 2s ease-in-out infinite}.welcome-banner{background:linear-gradient(135deg,var(--primary),var(--secondary));border-radius:var(--radius);padding:30px;margin-bottom:20px;color:#fff;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;position:relative;overflow:hidden;animation:bannerIn .5s var(--bounce)}.welcome-banner:before{content:"";position:absolute;top:-50%;right:-20%;width:300px;height:300px;background:#ffffff14;border-radius:50%;filter:blur(40px);animation:floatOrb 8s ease-in-out infinite}@keyframes floatOrb{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-20px,10px) scale(1.1)}}@keyframes bannerIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.welcome-banner h1{font-size:24px;font-weight:700}.welcome-banner p{opacity:.9;font-size:14px;margin-top:4px}.welcome-level{display:flex;align-items:center;gap:16px}.level-badge{background:#fff3;padding:8px 16px;border-radius:20px;font-weight:600;font-size:14px;white-space:nowrap;transition:transform .3s ease}.level-badge:hover{transform:scale(1.05)}.xp-bar-wrap{min-width:180px}.xp-bar-info{display:flex;justify-content:space-between;font-size:12px;margin-bottom:4px;opacity:.9}.xp-bar{height:8px;background:#fff3;border-radius:4px;overflow:hidden}.xp-bar-fill{height:100%;background:#fff;border-radius:4px;transition:width .6s ease;position:relative}.xp-bar-fill:after{content:"";position:absolute;top:0;right:0;bottom:0;width:10px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4));border-radius:4px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin-bottom:20px}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;display:flex;align-items:center;gap:14px;backdrop-filter:var(--glass);-webkit-backdrop-filter:var(--glass);transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition);animation:cardSlideIn .5s var(--transition) backwards}.stat-card:nth-child(1){animation-delay:.05s}.stat-card:nth-child(2){animation-delay:.1s}.stat-card:nth-child(3){animation-delay:.15s}.stat-card:nth-child(4){animation-delay:.2s}.stat-card:nth-child(5){animation-delay:.25s}.stat-card.duel-stat-card{background:var(--card);border:1px solid var(--border)}.stat-card.duel-stat-card:hover{border-color:#6366f140;box-shadow:var(--glow)}.duel-icon{background:#6366f11f;color:var(--primary)}.stat-info-compact{display:flex;flex-direction:column;gap:2px;width:100%}.stat-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;gap:12px}.stat-row-label{color:var(--muted);font-weight:500;white-space:nowrap}.stat-row-val{font-weight:700;color:var(--text)}.stat-row-sub{font-size:11px;opacity:.85;margin-top:1px;padding-top:2px;border-top:1px dashed rgba(255,255,255,.08)}@keyframes cardSlideIn{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.stat-card:hover{transform:translateY(-4px);box-shadow:var(--glow);border-color:#6366f14d}.stat-card:active{transform:translateY(-1px)}.stat-card:hover .stat-icon{transform:scale(1.1) rotate(-3deg)}.stat-icon{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;transition:transform .3s var(--transition)}.xp-icon{background:linear-gradient(135deg,#6366f133,#6366f10d);border:1px solid rgba(99,102,241,.25);box-shadow:0 0 15px #6366f126}.test-icon{background:linear-gradient(135deg,#06b6d433,#06b6d40d);border:1px solid rgba(6,182,212,.25);box-shadow:0 0 15px #06b6d426}.avg-icon{background:linear-gradient(135deg,#10b98133,#10b9810d);border:1px solid rgba(16,185,129,.25);box-shadow:0 0 15px #10b98126}.streak-icon{background:linear-gradient(135deg,#f59e0b33,#f59e0b0d);border:1px solid rgba(245,158,11,.25);box-shadow:0 0 15px #f59e0b26}.stat-info{display:flex;flex-direction:column}.stat-value{font-size:24px;font-weight:700}.stat-label{font-size:13px;color:var(--muted)}.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.progress-item{margin-bottom:16px}.progress-item:last-child{margin-bottom:0}.progress-item-head{display:flex;justify-content:space-between;margin-bottom:6px;font-size:13px}.progress-item-head .muted{font-size:12px}.progress-bar{height:8px;background:var(--bg);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--secondary));border-radius:4px;transition:width .8s cubic-bezier(.4,0,.2,1);position:relative}.progress-fill:after{content:"";position:absolute;top:0;right:0;bottom:0;width:20px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3));border-radius:4px}.recent-item{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border);transition:all .25s ease}.recent-item:last-child{border-bottom:none}.recent-item:hover{padding-left:8px}.recent-item-info{display:flex;flex-direction:column;gap:2px}.recent-item-name{font-weight:500;font-size:14px}.recent-item-sub{font-size:12px;color:var(--muted)}.recent-item-score{text-align:right}.recent-item-pct{font-weight:700;font-size:16px}.badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:11px;font-weight:600}.badge-success{background:#2dd4a726;color:var(--success)}.badge-danger{background:#f0656a26;color:var(--danger)}.empty-state{text-align:center;padding:40px 20px}.empty-state-icon{font-size:48px;margin-bottom:12px;opacity:.6}.dash-grid-charts{margin-top:12px}.chart-card .card-body.chart-body{padding-top:10px}.chart-legend{display:flex;gap:16px;justify-content:center;padding:10px 0 4px;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.legend-dot{width:12px;height:12px;border-radius:50%;display:inline-block;flex-shrink:0}.legend-dot-primary{background:var(--primary)}.legend-dot-pass{background:var(--success);border-style:dashed;opacity:.7}.line-chart-wrap{position:relative;width:100%;height:260px}.line-chart-wrap svg{width:100%;height:100%;display:block}.line-chart-empty{display:flex;align-items:center;justify-content:center;flex-direction:column;height:100%;color:var(--muted);gap:8px;text-align:center;padding:12px}.line-chart-empty .big-icon{font-size:52px;opacity:.5}.donut-body{display:flex;flex-direction:row;align-items:center;justify-content:space-around;gap:16px;flex-wrap:wrap}.donut-chart-wrap{position:relative;width:200px;height:200px;flex-shrink:0}.donut-chart-wrap svg{width:100%;height:100%}.donut-center-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none}.donut-center-text .dc-big{font-size:30px;font-weight:800;color:var(--primary);line-height:1}.donut-center-text .dc-small{font-size:12px;color:var(--muted);margin-top:4px}.donut-empty{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--muted);flex-direction:column;gap:6px;font-size:13px}.chart-stats{display:flex;flex-direction:column;gap:12px;flex:1;min-width:150px}.chart-stat{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-radius:12px;background:var(--bg);border:1px solid var(--border)}.chart-stat .cs-val{font-size:18px;font-weight:700}.chart-stat .cs-lbl{font-size:12px;color:var(--muted)}.chart-stat-correct .cs-val{color:var(--success)}.chart-stat-wrong .cs-val{color:var(--danger)}.chart-stat-skipped .cs-val{color:var(--muted)}@media (max-width: 768px){.donut-body{flex-direction:column}.donut-chart-wrap{width:180px;height:180px}.line-chart-wrap{height:220px}}.empty-state h3{font-size:16px;margin-bottom:4px}.empty-state p{color:var(--muted);font-size:14px;margin-bottom:16px}.subject-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.subject-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:22px;backdrop-filter:var(--glass);-webkit-backdrop-filter:var(--glass);transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition);cursor:pointer;position:relative;overflow:hidden}.subject-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--primary),var(--secondary));transform:scaleX(0);transform-origin:left;transition:transform .4s var(--transition)}.subject-card:hover{transform:translateY(-5px);box-shadow:var(--glow-cyan);border-color:#06b6d44d}.subject-card:hover:before{transform:scaleX(1)}.subject-card:active{transform:translateY(-2px) scale(.99)}.subject-card-icon{font-size:38px;margin-bottom:12px;display:inline-block;transition:transform .4s var(--transition)}.subject-card:hover .subject-card-icon{transform:scale(1.15) rotate(-5deg)}.subject-card h3{font-size:18px;font-weight:700;margin-bottom:4px}.subject-card p{font-size:13px;color:var(--muted);margin-bottom:12px}.subject-card-stats{display:flex;gap:16px;font-size:13px;margin-bottom:12px}.subject-card-stats span{color:var(--muted)}.subject-card-stats strong{color:var(--text)}.diff-badges{display:flex;gap:6px;margin-bottom:14px}.subject-card-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}.subject-icon{font-size:32px;transition:transform .4s var(--bounce)}.subject-card:hover .subject-icon{transform:scale(1.15) rotate(-5deg)}.subject-name{font-size:18px;font-weight:700}.subject-desc{font-size:13px;color:var(--muted);margin-bottom:12px}.subject-meta{display:flex;gap:12px;font-size:12px;color:var(--muted);margin-bottom:14px}.diff-badge{padding:3px 10px;border-radius:8px;font-size:11px;font-weight:600}.diff-beginner{background:#2dd4a726;color:var(--success)}.diff-intermediate{background:#fbbf3c26;color:var(--warning)}.diff-advanced{background:#f0656a26;color:var(--danger)}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}.page-head h2{font-size:22px;font-weight:700}.back-btn{padding:8px 14px;font-size:14px}.test-list{display:flex;flex-direction:column;gap:12px}.test-list-item{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;display:flex;align-items:center;justify-content:space-between;transition:all .3s ease;gap:16px}.test-list-item:hover{border-color:var(--primary);transform:translate(6px);box-shadow:var(--shadow-soft)}.test-list-item:active{transform:translate(2px) scale(.99)}.test-list-info{flex:1}.test-list-info h4{font-size:16px;font-weight:600;margin-bottom:4px}.test-list-info p{font-size:13px;color:var(--muted)}.test-list-meta{display:flex;gap:16px;font-size:13px;color:var(--muted)}.test-list-meta strong{color:var(--text)}.tli-left{flex:1}.tli-title{font-size:16px;font-weight:600;margin-bottom:6px}.tli-meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:13px;color:var(--muted)}.tli-best{color:var(--warning);font-weight:600}.tli-right{flex-shrink:0}.page-toolbar{display:flex;gap:16px;margin-bottom:20px;flex-wrap:wrap;align-items:center}.search-box{position:relative;flex:1;min-width:200px}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:16px;opacity:.5}.search-box input{width:100%;padding:12px 14px 12px 42px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:14px}.search-box input:focus{outline:none;border-color:var(--primary)}.filter-chips{display:flex;gap:8px;flex-wrap:wrap}.chip{padding:8px 18px;border-radius:20px;font-size:13px;font-weight:600;background:var(--card);border:1px solid var(--border);color:var(--muted);transition:all .3s ease;-webkit-tap-highlight-color:transparent;position:relative;overflow:hidden}.chip.active{background:linear-gradient(135deg,var(--primary),var(--primary-hover));color:#fff;border-color:var(--primary);box-shadow:0 4px 14px #5b7cfa40}.chip:hover:not(.active){border-color:var(--primary);color:var(--text);transform:translateY(-1px)}.chip:active{transform:scale(.95)}.test-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:16px}.test-header-info h2{font-size:20px}.test-timer{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 20px;font-size:22px;font-weight:700;font-variant-numeric:tabular-nums}.test-timer.warning{color:var(--warning);border-color:var(--warning)}.test-timer.timer-warn{color:var(--warning);border-color:var(--warning);animation:pulse 1s infinite}.test-timer.danger{color:var(--danger);border-color:var(--danger);animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.test-progress{margin-bottom:20px}.test-progress-text{font-size:13px;color:var(--muted);margin-bottom:6px}.test-body{display:grid;grid-template-columns:1fr 220px;gap:20px;margin-bottom:20px}.question-area{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:28px}.question-number{font-size:13px;color:var(--primary);font-weight:600;margin-bottom:8px}.question-text{font-size:18px;font-weight:600;line-height:1.5;margin-bottom:24px}.question-type-tag{display:inline-block;padding:2px 10px;background:var(--bg);border-radius:8px;font-size:11px;color:var(--muted);margin-left:8px;vertical-align:middle}.options{display:flex;flex-direction:column;gap:10px}.option{width:100%;min-height:60px;margin:0;padding:14px 16px;background:var(--bg);border:2px solid var(--border);border-radius:12px;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;gap:12px;font-size:15px;-webkit-tap-highlight-color:transparent;position:relative;overflow:hidden}.option:hover{border-color:var(--primary);background:var(--card-hover);transform:translate(4px)}.option:focus-visible{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.option-text{flex:1 1 auto;min-width:0;line-height:1.5;word-break:break-word;overflow-wrap:anywhere;white-space:normal}#finishTestSummary{font-size:14px;line-height:1.8}.option.selected{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 3px var(--primary-soft)}.option.selected.correct{border-color:var(--success);background:#2dd4a724;box-shadow:0 0 0 3px #2dd4a738}.option.selected.correct .option-mark{background:var(--success);color:#fff;border-color:var(--success)}.option.selected.wrong{border-color:var(--danger);background:#f0656a24;box-shadow:0 0 0 3px #f0656a38}.option.selected.wrong .option-mark{background:var(--danger);color:#fff;border-color:var(--danger)}.option-badge{position:absolute;right:14px;top:50%;transform:translateY(-50%);padding:5px 12px;border-radius:20px;font-size:12px;font-weight:700;letter-spacing:.2px;flex-shrink:0}.option-badge.badge-correct{background:var(--success);color:#fff;box-shadow:0 4px 12px #2dd4a74d}.option-badge.badge-wrong{background:var(--danger);color:#fff;box-shadow:0 4px 12px #f0656a4d}@media (max-width: 480px){.option-badge{position:static;transform:none;margin-left:auto;padding:3px 8px;font-size:11px}.option{width:100%;min-height:54px;padding:12px 14px;gap:10px;border-radius:12px;margin:0;flex-wrap:nowrap;align-items:center}.option-text{flex:1 1 auto;min-width:0;font-size:14px}.option-mark,.option-letter{width:30px;height:30px;font-size:12px}}.option-mark{width:32px;height:32px;border-radius:8px;background:var(--card);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0;transition:all var(--transition);color:var(--muted)}.option.selected .option-mark{background:linear-gradient(135deg,var(--primary),var(--primary-hover));color:#fff;border-color:var(--primary);transform:scale(1.08);box-shadow:0 4px 12px #5b7cfa4d}.option-letter{width:32px;height:32px;border-radius:8px;background:var(--card);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;flex-shrink:0;transition:all var(--transition)}.option.selected .option-letter{background:linear-gradient(135deg,var(--primary),var(--primary-hover));color:#fff;border-color:var(--primary);transform:scale(1.1);box-shadow:0 4px 12px #5b7cfa4d}.navigator-area{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;align-self:start;position:fixed;top:80px}.navigator-header{font-weight:600;font-size:14px;margin-bottom:12px}.question-nav{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:16px}.qn-btn{aspect-ratio:1;border-radius:8px;background:var(--bg);border:1px solid var(--border);font-size:13px;font-weight:600;transition:all .25s ease;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;position:relative;overflow:hidden}.qn-btn:hover{border-color:var(--primary);transform:scale(1.1)}.qn-btn:active{transform:scale(.9)}.qn-btn.current{background:linear-gradient(135deg,var(--primary),var(--primary-hover));color:#fff;border-color:var(--primary);box-shadow:0 4px 12px #6366f14d}.qn-btn.correct{background:linear-gradient(135deg,var(--success),#34d399);color:#fff;border-color:var(--success)}.qn-btn.wrong{background:linear-gradient(135deg,var(--danger),#f0656a);color:#fff;border-color:var(--danger)}.test-nav-buttons{display:flex;justify-content:space-between;gap:12px;align-items:center}.test-nav-center{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.btn-sm{padding:8px 14px;font-size:13px}.btn-marked{background:#f59e0b26!important;border-color:var(--warning)!important;color:var(--warning)!important}.test-mini-stats{display:flex;gap:20px;margin-bottom:16px;flex-wrap:wrap}.mini-stat{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);padding:6px 14px;background:var(--card);border:1px solid var(--border);border-radius:20px}.mini-stat strong{color:var(--text)}.mini-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.mini-answered{background:var(--success)}.mini-unanswered{background:var(--muted)}.mini-marked{background:var(--warning)}.question-diff-tag{display:inline-block;padding:2px 10px;border-radius:8px;font-size:11px;font-weight:600;margin-left:6px;vertical-align:middle}.question-diff-tag.diff-beginner{background:#2dd4a726;color:var(--success)}.question-diff-tag.diff-intermediate{background:#fbbf3c26;color:var(--warning)}.question-diff-tag.diff-advanced{background:#f0656a26;color:var(--danger)}.option-checkmark{margin-left:auto;font-size:18px;color:var(--primary);opacity:0;transition:opacity .25s ease}.option.selected .option-checkmark{opacity:1}.question-hint{margin-top:20px;padding:12px 16px;background:var(--bg);border-radius:var(--radius-sm);font-size:12px;color:var(--muted);border-left:3px solid var(--primary)}@keyframes qSlideIn{0%{opacity:0;transform:translate(15px)}to{opacity:1;transform:translate(0)}}.navigator-header{font-weight:600;font-size:14px;margin-bottom:12px;display:flex;flex-direction:column;gap:6px}.navigator-legend{font-size:11px;font-weight:400;color:var(--muted);display:flex;gap:10px;align-items:center;flex-wrap:wrap}.legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.legend-dot.legend-correct{background:var(--success)}.legend-dot.legend-wrong{background:var(--danger)}.legend-dot.legend-marked{background:var(--warning)}.qn-btn.marked{border-color:var(--warning);box-shadow:0 0 0 2px #f59e0b33}.qn-btn.marked.current{border-color:var(--warning)}.result-hero{text-align:center;padding:40px 20px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:20px}.result-emoji{font-size:60px;margin-bottom:12px;animation:emojiBounce .6s var(--bounce)}@keyframes emojiBounce{0%{transform:scale(0) rotate(-20deg)}60%{transform:scale(1.2) rotate(10deg)}to{transform:scale(1) rotate(0)}}.result-hero h1{font-size:42px;font-weight:800;margin-bottom:4px;animation:countUp .5s ease .2s backwards}@keyframes countUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.result-percent{font-size:24px;font-weight:700;color:var(--primary);margin-bottom:12px}.result-status{display:inline-block;padding:6px 24px;border-radius:20px;font-weight:700;font-size:16px}.result-status.passed{background:#2dd4a726;color:var(--success);animation:statusPop .4s var(--bounce) .3s backwards}.result-status.failed{background:#f0656a26;color:var(--danger);animation:statusPop .4s var(--bounce) .3s backwards}@keyframes statusPop{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.result-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:20px}.result-stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px;text-align:center;transition:all .3s ease;animation:cardSlideIn .5s ease backwards}.result-stat-card:nth-child(1){animation-delay:.1s}.result-stat-card:nth-child(2){animation-delay:.15s}.result-stat-card:nth-child(3){animation-delay:.2s}.result-stat-card:nth-child(4){animation-delay:.25s}.result-stat-card:nth-child(5){animation-delay:.3s}.result-stat-card:hover{transform:translateY(-3px);border-color:var(--primary)}.result-stat-card .val{font-size:22px;font-weight:700}.result-stat-card .lbl{font-size:12px;color:var(--muted);margin-top:4px}.result-actions{display:flex;gap:12px;justify-content:center;margin-bottom:20px;flex-wrap:wrap}.review-card{display:none}.review-card.active{display:block}.review-item{padding:20px 0;border-bottom:1px solid var(--border)}.review-item:last-child{border-bottom:none}.review-q{font-weight:600;font-size:15px;margin-bottom:12px}.review-ans{display:flex;gap:8px;margin-bottom:6px;font-size:14px;align-items:center}.review-ans .label{color:var(--muted);min-width:140px}.review-ans .ans{padding:4px 12px;border-radius:8px;font-weight:600}.review-correct{background:#2dd4a726;color:var(--success)}.review-wrong{background:#f0656a26;color:var(--danger)}.review-status{font-weight:700;margin:8px 0}.review-status.correct{color:var(--success)}.review-status.incorrect{color:var(--danger)}.ripple{position:absolute;border-radius:50%;background:#ffffff4d;transform:scale(0);animation:rippleEffect .6s ease-out;pointer-events:none}@keyframes rippleEffect{to{transform:scale(4);opacity:0}}.review-explanation{margin-top:8px;padding:12px 16px;background:var(--bg);border-radius:var(--radius-sm);font-size:13px;color:var(--muted)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}th,td{padding:14px 18px;text-align:left;font-size:14px;border-bottom:1px solid var(--border)}th{font-weight:600;color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.5px}tr:last-child td{border-bottom:none}tbody tr{transition:all .25s ease}tbody tr:hover{background:var(--card-hover);transform:scale(1.005)}.leaderboard{display:flex;flex-direction:column;gap:8px}.rank-item{display:flex;align-items:center;gap:16px;padding:14px 18px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);transition:all .3s ease;animation:cardSlideIn .4s ease backwards;position:relative;overflow:hidden}.rank-item:nth-child(1){animation-delay:.05s}.rank-item:nth-child(2){animation-delay:.1s}.rank-item:nth-child(3){animation-delay:.15s}.rank-item:nth-child(4){animation-delay:.2s}.rank-item:nth-child(5){animation-delay:.25s}.rank-item:hover{border-color:var(--primary);transform:translate(4px);box-shadow:var(--shadow-soft)}.rank-item.you{border-color:var(--primary);background:var(--primary-soft)}.rank-position{width:44px;height:44px;border-radius:12px;background:var(--bg);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;flex-shrink:0}.rank-position.gold{background:linear-gradient(135deg,#f59e0b,#fbbf24);color:#fff}.rank-position.silver{background:linear-gradient(135deg,#94a3b8,#cbd5e1);color:#fff}.rank-position.bronze{background:linear-gradient(135deg,#b45309,#d97706);color:#fff}.rank-info{flex:1}.rank-name{font-weight:600;font-size:15px}.rank-level{font-size:12px;color:var(--muted)}.rank-xp{font-weight:700;font-size:18px;color:var(--primary)}.podium{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end;gap:12px;margin-bottom:24px;padding:12px 0}.podium-place{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px 12px 16px;text-align:center;position:relative;transition:all .3s ease;animation:cardSlideIn .5s var(--bounce) backwards}.podium-place:nth-child(1){animation-delay:.1s}.podium-place:nth-child(2){animation-delay:.2s}.podium-place:nth-child(3){animation-delay:.3s}.podium-place:hover{transform:translateY(-4px);box-shadow:var(--shadow-soft)}.podium-place.place-1{order:2;padding-bottom:28px;border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 1px var(--primary-soft),var(--shadow-soft)}.podium-place.place-1 .avatar{width:72px;height:72px;font-size:22px;background:linear-gradient(135deg,#5b7cfa,#8b5cf6);color:#fff}.podium-place.place-2{order:1}.podium-place.place-2 .avatar{background:linear-gradient(135deg,#94a3b8,#cbd5e1);color:#fff}.podium-place.place-3{order:3}.podium-place.place-3 .avatar{background:linear-gradient(135deg,#b45309,#d97706);color:#fff}.podium-medal{font-size:28px;margin-bottom:6px}.podium-place .avatar{width:56px;height:56px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--bg);font-weight:700;font-size:18px;margin:6px auto;border:3px solid #fff;box-shadow:0 4px 14px #0000001f}.p-name{font-weight:700;font-size:14px;margin-top:6px}.p-username{font-size:11px;margin:2px 0 6px}.p-pts{margin-top:4px;font-size:14px}.p-pts strong{color:var(--primary);font-size:18px}.leader-list{display:flex;flex-direction:column;gap:10px}.leader-row{display:flex;align-items:center;gap:14px;padding:12px 16px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);transition:all .3s ease;animation:cardSlideIn .35s ease backwards}.leader-row:nth-child(1){animation-delay:.05s}.leader-row:nth-child(2){animation-delay:.1s}.leader-row:nth-child(3){animation-delay:.15s}.leader-row:nth-child(4){animation-delay:.2s}.leader-row:nth-child(5){animation-delay:.25s}.leader-row:hover{transform:translate(4px);border-color:var(--primary);box-shadow:var(--shadow-soft)}.leader-row.me{border-color:var(--primary);background:var(--primary-soft)}.lr-rank{width:38px;height:38px;border-radius:10px;background:var(--bg);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;flex-shrink:0}.lr-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--primary),#8b5cf6);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.lr-info{flex:1}.lr-name{font-weight:600;font-size:14px}.lr-name .me-tag{display:inline-block;font-size:10px;padding:1px 8px;border-radius:20px;background:var(--primary);color:#fff;margin-left:6px;font-weight:500}.lr-user{font-size:12px;margin-top:2px}.lr-pts{text-align:right;font-size:13px}.lr-pts strong{color:var(--primary);font-size:18px;display:block}@media (max-width: 768px){.podium{grid-template-columns:1fr;gap:10px}.podium-place.place-1{order:1}.podium-place.place-2{order:2}.podium-place.place-3{order:3}}.achievement-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.achievement-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:24px 20px;text-align:center;transition:all var(--transition)}.achievement-card.unlocked{border-color:#5b7cfa4d}.achievement-card.unlocked:hover{transform:translateY(-5px) scale(1.02);box-shadow:var(--shadow)}.achievement-card.unlocked:hover .achievement-icon{transform:scale(1.2) rotate(-10deg)}.achievement-card.locked{opacity:.45;filter:grayscale(.6)}.achievement-icon{font-size:40px;margin-bottom:12px;transition:transform .4s var(--bounce)}.achievement-card h4{font-size:15px;font-weight:600;margin-bottom:4px}.achievement-card p{font-size:12px;color:var(--muted)}.achievement-status{margin-top:10px;font-size:11px;font-weight:600;padding:3px 10px;border-radius:8px;display:inline-block}.achievement-status.unlocked{background:#2dd4a726;color:var(--success)}.achievement-status.locked{background:var(--bg);color:var(--muted)}.achievement{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px;text-align:center;transition:all .3s ease}.achievement.unlocked{border-color:#5b7cfa4d}.achievement.unlocked:hover{transform:translateY(-5px) scale(1.02);box-shadow:var(--shadow)}.achievement.locked{opacity:.45;filter:grayscale(.6)}.ach-icon{font-size:32px;margin-bottom:8px}.ach-name{font-size:15px;font-weight:600;margin-bottom:4px}.ach-desc{font-size:12px;color:var(--muted)}.profile-header{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:32px;text-align:center;margin-bottom:20px}.profile-avatar{width:100px;height:100px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--secondary));display:flex;align-items:center;justify-content:center;font-size:42px;font-weight:700;color:#fff;margin:0 auto 16px;box-shadow:0 8px 30px #5b7cfa4d;animation:avatarIn .6s var(--bounce)}@keyframes avatarIn{0%{transform:scale(0) rotate(-180deg)}to{transform:scale(1) rotate(0)}}.profile-name{font-size:24px;font-weight:700}.profile-username{color:var(--muted);font-size:14px;margin-bottom:4px}.profile-email{color:var(--muted);font-size:13px;margin-bottom:16px}.profile-level-badge{display:inline-flex;align-items:center;gap:6px;padding:7px 20px;border-radius:20px;background:var(--primary-soft);color:var(--primary);font-weight:600;font-size:14px}.profile-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;margin-bottom:20px}.profile-stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;text-align:center;transition:all .3s ease;animation:cardSlideIn .4s ease backwards}.profile-stat-card:hover{transform:translateY(-3px);border-color:var(--primary);box-shadow:var(--shadow-soft)}.profile-stat-card .val{font-size:24px;font-weight:700}.profile-stat-card .lbl{font-size:13px;color:var(--muted);margin-top:4px}.profile-actions{text-align:center}.profile-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px;margin-bottom:20px}.profile-stat{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;transition:all .25s ease}.profile-stat:hover{border-color:var(--primary);transform:translate(4px)}.profile-stat .stat-label{color:var(--muted)}.profile-stat .stat-value{font-weight:700}.avatar-opt{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;background:var(--bg);border:2px solid var(--border);transition:all .3s var(--bounce);cursor:pointer}.avatar-opt:hover{border-color:var(--primary);transform:scale(1.15) rotate(5deg)}.avatar-opt.selected{border-color:var(--primary);background:var(--primary-soft);transform:scale(1.1)}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--border)}.setting-row:last-child{border-bottom:none}.setting-row span{font-size:14px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#04060c99;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);display:none;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-overlay.active{display:flex;animation:fadeIn .25s ease-out}.modal{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:520px;max-height:90vh;overflow-y:auto;backdrop-filter:var(--glass);-webkit-backdrop-filter:var(--glass);box-shadow:0 20px 50px #00000080,0 0 30px #6366f126;animation:slideUp .45s var(--transition)}.modal-sm{max-width:400px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px) scale(.97);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.modal-header{padding:18px 24px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.modal-header h3{font-size:18px;font-weight:600}.modal-close{font-size:20px;opacity:.6;transition:all .25s ease;width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center}.modal-close:hover{opacity:1;background:var(--bg);transform:rotate(90deg)}.modal-close:active{transform:rotate(90deg) scale(.9)}.modal-body{padding:24px}.modal-body p{font-size:14px;color:var(--muted);line-height:1.6}.modal-footer{padding:18px 24px;border-top:1px solid var(--border);display:flex;gap:12px;justify-content:flex-end}.start-test-info{display:flex;flex-direction:column;gap:12px}.start-test-info-row{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--bg);border-radius:var(--radius-sm);font-size:14px}.start-test-info-row .lbl{color:var(--muted);font-size:14px}.start-test-info-row .val{font-weight:600;font-size:14px}.start-info{display:flex;flex-direction:column;gap:10px}.start-info-row{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--bg);border-radius:var(--radius-sm);font-size:14px}.start-info-row span{color:var(--muted)}.start-info-row strong{color:var(--text)}.avatar-picker{margin-bottom:20px}.avatar-preview{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--secondary));display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:700;color:#fff;margin:0 auto 16px}.avatar-options{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.avatar-option{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;background:var(--bg);border:2px solid var(--border);transition:all .3s var(--bounce);cursor:pointer}.avatar-option:hover{border-color:var(--primary);transform:scale(1.15) rotate(5deg)}.avatar-option:active{transform:scale(.9)}.avatar-option.selected{border-color:var(--primary);background:var(--primary-soft);transform:scale(1.1)}.achievement-modal-body{text-align:center;padding:32px 24px}.achievement-modal-body .ach-icon{font-size:56px;margin-bottom:16px}.achievement-modal-body h2{font-size:22px;margin-bottom:8px}.achievement-modal-body p{color:var(--muted)}.toast-container{position:fixed;bottom:24px;right:24px;z-index:2000;display:flex;flex-direction:column;gap:10px}.toast{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 18px;display:flex;align-items:center;gap:10px;font-size:14px;box-shadow:var(--shadow);backdrop-filter:var(--glass);-webkit-backdrop-filter:var(--glass);animation:toastIn .35s var(--transition);min-width:280px;max-width:400px}.toast.success{border-left:4px solid var(--success);background:linear-gradient(135deg,rgba(16,185,129,.1),var(--card));box-shadow:0 4px 12px #10b98133}.toast.error{border-left:4px solid var(--danger);background:linear-gradient(135deg,rgba(239,68,68,.1),var(--card));box-shadow:0 4px 12px #ef444433}.toast.info{border-left:4px solid var(--primary);background:linear-gradient(135deg,rgba(99,102,241,.1),var(--card));box-shadow:0 4px 12px #6366f133}@keyframes toastIn{0%{transform:translateY(15px) scale(.95);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.toast.removing{animation:toastOut .25s var(--transition) forwards}@keyframes toastOut{to{transform:translateY(10px) scale(.95);opacity:0}}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);display:none;align-items:center;justify-content:center;flex-direction:column;gap:16px;z-index:3000}.loading-overlay.active{display:flex}.loader{width:48px;height:48px;border:4px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay p{color:var(--muted);font-size:14px}*{box-sizing:border-box}html,body{margin:0;max-width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{min-height:100vh;min-height:100dvh}body,p,h1,h2,h3,h4,h5,h6,span,td,th,button,input,textarea,select{overflow-wrap:anywhere;word-break:break-word}img,svg,canvas,video,iframe{max-width:100%;display:block}button,input,select,textarea{font:inherit}.btn,.nav-item,.icon-btn,.user-chip,.modal-close,.hamburger,.auth-tab,.pwd-toggle{min-height:44px}@media (max-width: 1024px){.sidebar{transform:translate(-100%)}.sidebar.active{transform:translate(0)}.sidebar-close,.sidebar-overlay.active{display:block}.main{margin-left:0}.hamburger{display:block}.stats-grid{grid-template-columns:repeat(2,1fr)}.dash-grid{grid-template-columns:1fr}.result-stats{grid-template-columns:repeat(3,1fr)}.test-body{grid-template-columns:1fr}.navigator-area{position:static}}@media (max-width: 768px){#topbarUsername{display:none}.content{padding:16px}.page,.card,.content,.main{min-width:0}.card{overflow:hidden}.card-header,.card-body,.modal-header,.modal-body,.modal-footer,.welcome-banner,.question-area{padding-left:16px;padding-right:16px}.stats-grid{grid-template-columns:1fr 1fr}.welcome-banner{flex-direction:column;text-align:center}.welcome-level{width:100%;justify-content:center}#page-result .result-hero{padding:28px 16px}#page-result .result-emoji{font-size:44px}#page-result .result-hero h1{font-size:34px}#page-result .result-percent{font-size:22px}#page-result .result-status{padding:6px 18px;font-size:14px}#page-result .result-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}#page-result .result-stat-card .val{font-size:20px}.test-header{flex-direction:column;align-items:stretch}.test-timer{text-align:center}.question-area{padding:18px}.question-text{font-size:16px}.form-row{flex-direction:column}.modal-footer{flex-direction:column-reverse}.modal-footer .btn{width:100%}.toast-container{left:16px;right:16px;bottom:16px}.toast{min-width:auto}.notif-dropdown{width:280px;right:-60px}.sidebar{width:min(82vw,320px)}.sidebar-header,.sidebar-nav,.sidebar-footer{padding-left:14px;padding-right:14px}.nav-item,.btn,.auth-tab,.pwd-toggle,.hamburger,.icon-btn{min-height:46px}.btn{padding-top:12px;padding-bottom:12px}.modal{max-height:88vh}}@media (max-width: 480px){.stats-grid{grid-template-columns:1fr}.result-stats{grid-template-columns:1fr 1fr}.question-nav{grid-template-columns:repeat(5,1fr)}.auth-card{padding:20px}.topbar{padding:12px 16px}.topbar-left h2{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.welcome-banner{padding:24px 16px}.welcome-banner h1{font-size:24px}.content{padding:12px 10px 88px}.result-hero{padding:24px 14px}.result-hero h1{font-size:28px}.result-percent,.result-stat-card .val{font-size:18px}.question-area{padding:16px 12px}.modal-overlay{padding:10px}.modal-header,.modal-body,.modal-footer{padding-left:14px;padding-right:14px}.toast-container{left:10px;right:10px;bottom:10px}}.duel-welcome{background:linear-gradient(135deg,#6366f133,#06b6d433);border:1px solid var(--border)}.duel-setup-card{margin-top:24px}.duel-setup-card .form-control{width:100%;padding:12px;background:var(--bg-alt);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);font-size:16px;margin-top:8px;outline:none;transition:border-color var(--transition)}.duel-setup-card .form-control:focus{border-color:var(--primary)}.duel-history-card{margin-top:24px}.duel-history-table{width:100%;border-collapse:collapse}.duel-history-table th,.duel-history-table td{padding:12px;text-align:left;border-bottom:1px solid var(--border)}.duel-history-table th{color:var(--muted);font-weight:600}.duel-history-table tr:last-child td{border-bottom:none}.duel-history-win{color:var(--success);font-weight:600}.duel-history-loss{color:var(--danger);font-weight:600}.duel-history-draw{color:var(--warning);font-weight:600}.duel-matchmaking{display:flex;justify-content:center;align-items:center;min-height:50vh}.matchmaking-container{width:100%;max-width:600px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:40px;-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);box-shadow:var(--shadow);text-align:center}.matchmaking-status{font-size:20px;font-weight:700;margin-bottom:30px;letter-spacing:-.5px;color:var(--primary-hover)}.matchmaking-players{display:flex;justify-content:space-around;align-items:center;margin-bottom:30px}.m-player{display:flex;flex-direction:column;align-items:center;width:150px}.m-avatar{width:80px;height:80px;background:var(--bg-alt);border:2px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:40px;margin-bottom:12px;box-shadow:var(--shadow-soft)}.pulse-avatar{animation:pulseAvatar 1.5s infinite;border-color:var(--primary)}@keyframes pulseAvatar{0%{transform:scale(1);box-shadow:0 0 #6366f166}70%{transform:scale(1.05);box-shadow:0 0 0 12px #6366f100}to{transform:scale(1);box-shadow:0 0 #6366f100}}.m-name{font-weight:600;margin-bottom:6px}.m-status{font-size:12px}.matchmaking-vs{font-size:24px;font-weight:800;color:var(--muted);font-style:italic}.matchmaking-progress-bar{height:6px;background:var(--bg-alt);border-radius:3px;overflow:hidden}.mm-progress-fill{width:0%;height:100%;background:linear-gradient(90deg,var(--primary),var(--secondary));transition:width .1s linear}.tow-visualizer{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);box-shadow:var(--shadow)}.tow-player{display:flex;align-items:center;gap:12px;padding:8px 16px;border-radius:var(--radius-sm);background:var(--bg-alt);border:1px solid var(--border);min-width:140px;transition:box-shadow var(--transition),border-color var(--transition)}.tow-player.leading{border-color:var(--success);box-shadow:0 0 15px #10b98133}.tow-avatar{font-size:28px}.tow-info{display:flex;flex-direction:column}.tow-username{font-size:14px;font-weight:600;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tow-score{font-size:20px;font-weight:800;color:var(--primary-hover)}.tow-rope-container{flex:1;height:6px;background:var(--border);border-radius:3px;margin:0 20px;position:relative}.tow-rope-line{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,var(--primary),var(--secondary));border-radius:3px;opacity:.6}.tow-rope-marker{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:28px;transition:left .4s cubic-bezier(.25,.8,.25,1);filter:drop-shadow(0 2px 8px rgba(0,0,0,.5));-webkit-user-select:none;user-select:none}.duel-quiz-card{margin-top:16px}.duel-quiz-header{display:flex;justify-content:space-between;align-items:center}.duel-timer-badge{background:var(--bg-alt);border:1px solid var(--border);padding:6px 12px;border-radius:20px;font-weight:700;color:var(--warning);font-size:14px;min-width:42px;text-align:center}.duel-timer-badge.warning{color:var(--danger);border-color:var(--danger);animation:timerPulse .5s infinite alternate}@keyframes timerPulse{0%{transform:scale(1)}to{transform:scale(1.1)}}.duel-q-text{font-size:18px;font-weight:600;margin-bottom:24px;line-height:1.6}.duel-options{display:grid;grid-template-columns:1fr;gap:12px}.duel-opt-btn{background:var(--bg-alt);border:1px solid var(--border);padding:16px;border-radius:var(--radius-sm);display:flex;align-items:center;gap:12px;text-align:left;font-size:15px;transition:all var(--transition);position:relative;width:100%}.duel-opt-btn:hover:not(:disabled){border-color:var(--primary);background:var(--primary-soft);transform:translateY(-2px)}.duel-opt-btn:disabled{cursor:not-allowed;opacity:.8}.duel-opt-btn.correct{background:#10b9811a!important;border-color:var(--success)!important;color:var(--success)!important;font-weight:600}.duel-opt-btn.wrong{background:#ef44441a!important;border-color:var(--danger)!important;color:var(--danger)!important}.duel-opt-badge{position:absolute;right:16px;font-size:12px;padding:4px 8px;border-radius:4px;font-weight:600}.duel-opt-badge.c-badge{background:var(--success);color:#fff}.duel-opt-badge.w-badge{background:var(--danger);color:#fff}.duel-opt-mark{width:28px;height:28px;border-radius:6px;background:var(--border);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:var(--muted);transition:all var(--transition)}.duel-opt-btn:hover:not(:disabled) .duel-opt-mark{background:var(--primary);color:#fff}.duel-status-banner{margin-top:16px;padding:12px;border-radius:var(--radius-sm);text-align:center;font-weight:600;font-size:15px;transition:opacity .3s;opacity:0}.duel-status-banner.show{opacity:1}.duel-status-banner.success{background:#10b9811a;color:var(--success);border:1px solid rgba(16,185,129,.2)}.duel-status-banner.danger{background:#ef44441a;color:var(--danger);border:1px solid rgba(239,68,68,.2)}.duel-status-banner.neutral{background:#f59e0b1a;color:var(--warning);border:1px solid rgba(245,158,11,.2)}.duel-result #duelResultHero{border-bottom:1px solid var(--border)}.duel-rewards-card{margin-top:24px}.rewards-grid{display:flex;justify-content:space-around;gap:16px}.reward-item{flex:1;background:var(--bg-alt);border:1px solid var(--border);padding:20px;border-radius:var(--radius-sm);display:flex;flex-direction:column;align-items:center;gap:8px;box-shadow:var(--shadow-soft)}.reward-item .r-icon{font-size:32px}.reward-item .r-val{font-size:18px;font-weight:700;color:var(--success)}.confetti-particle{position:fixed;width:10px;height:10px;border-radius:50%;pointer-events:none;z-index:9999;animation:confettiFall 3s ease-out forwards}@keyframes confettiFall{0%{transform:translateY(-50px) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}@media (max-width: 768px){.tow-visualizer{flex-direction:column;gap:16px}.tow-rope-container{width:100%;margin:10px 0;height:8px}.tow-player{width:100%;justify-content:center}.rewards-grid{flex-direction:column}}.duel-mode-chips,.duel-diff-chips{display:flex;gap:8px;background:var(--bg-alt);padding:4px;border-radius:var(--radius-sm);border:1px solid var(--border);margin-top:6px}.duel-chip{flex:1;padding:8px 12px;border-radius:8px;font-size:13px;font-weight:600;color:var(--muted);background:transparent;border:none;transition:all .2s var(--transition);text-align:center}.duel-chip:hover:not(.active){color:var(--text);background:#ffffff08}.duel-chip.active{background:linear-gradient(135deg,var(--primary),var(--primary-hover));color:#fff;box-shadow:0 4px 12px #6366f159;transform:scale(1.05)}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.premium-shimmer{background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);background-size:200% 100%;animation:shimmer 2s infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.float-animation{animation:float 3s ease-in-out infinite}@keyframes pulse-glow{0%,to{box-shadow:0 0 5px #6366f14d}50%{box-shadow:0 0 20px #6366f199}}.pulse-glow{animation:pulse-glow 2s ease-in-out infinite}@keyframes success-bounce{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.success-bounce{animation:success-bounce .4s ease}@keyframes confetti-fall{0%{transform:translateY(-100vh) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}.confetti-particle{position:fixed;width:10px;height:10px;border-radius:2px;animation:confetti-fall 3s linear forwards;pointer-events:none;z-index:9999}@keyframes xp-float{0%{transform:translateY(0) scale(1);opacity:1}to{transform:translateY(-30px) scale(1.2);opacity:0}}.xp-float{position:absolute;font-weight:700;color:var(--success);animation:xp-float 1s ease-out forwards;pointer-events:none;z-index:100}@keyframes skeleton-loading{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,var(--bg) 25%,var(--card-hover) 50%,var(--bg) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border-radius:4px}@keyframes toast-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes toast-out{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.toast{animation:toast-in .3s ease forwards}.toast.toast-hiding{animation:toast-out .3s ease forwards}.duel-timer-progress{width:100%;height:4px;background:var(--border);position:relative;overflow:hidden}.duel-timer-fill{width:100%;height:100%;background:linear-gradient(90deg,var(--success) 0%,var(--warning) 60%,var(--danger) 100%);transition:width .1s linear}.duel-double-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:10px}.duel-player-panel{background:#ffffff03;border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px;box-shadow:var(--shadow-soft);display:flex;flex-direction:column}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.panel-player-name{font-size:14px;font-weight:700;color:var(--primary-hover)}.panel-player-keys{font-size:11px;color:var(--muted);background:var(--bg-alt);padding:2px 6px;border-radius:4px;border:1px solid var(--border)}.duel-opt-btn.p1-selected{border-color:var(--primary)!important;box-shadow:0 0 10px #6366f140!important;background:#6366f10f!important}.duel-opt-btn.p2-selected{border-color:var(--secondary)!important;box-shadow:0 0 10px #06b6d440!important;background:#06b6d40f!important}.duel-opt-btn.both-selected{border-color:var(--warning)!important;box-shadow:0 0 10px #f59e0b40!important;background:#f59e0b0f!important}.pop-score{animation:scorePopEffect .5s cubic-bezier(.175,.885,.32,1.275)}@keyframes scorePopEffect{0%{transform:scale(1)}50%{transform:scale(1.4);color:var(--success);text-shadow:0 0 8px var(--success)}to{transform:scale(1)}}.duel-result-players-scores{display:flex;justify-content:center;align-items:center;gap:24px;margin:24px 0;padding:16px;background:#ffffff05;border-radius:var(--radius);border:1px solid var(--border)}.duel-res-player{flex:1;display:flex;flex-direction:column;align-items:center;max-width:160px;padding:16px;background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius-sm);transition:transform .3s ease,box-shadow .3s ease}.duel-res-player.winner-card{border-color:var(--success);box-shadow:0 0 20px #10b98140;transform:translateY(-5px)}.duel-res-avatar{width:56px;height:56px;border-radius:50%;background:var(--card);display:flex;align-items:center;justify-content:center;font-size:28px;margin-bottom:8px;box-shadow:var(--shadow-soft)}.duel-res-name{font-size:13px;font-weight:600;margin-bottom:6px;color:var(--text);max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.duel-res-score-num{font-size:32px;font-weight:800;color:var(--primary-hover)}.duel-res-player.winner-card .duel-res-score-num{color:var(--success)}.duel-res-vs{font-size:18px;font-weight:800;color:var(--muted);font-style:italic}@media (max-width: 768px){.duel-double-grid{grid-template-columns:1fr;gap:16px}.duel-result-players-scores{flex-direction:column;gap:16px}.duel-res-player{width:100%;max-width:none}}.shop-balance-card{background:linear-gradient(135deg,var(--accent) 0%,var(--primary) 100%);color:#fff;margin-bottom:2rem;border:none;box-shadow:0 8px 24px #6366f14d}.shop-balance-content{display:flex;align-items:center;justify-content:center;gap:1rem;padding:1rem}.balance-label{font-size:1.1rem;font-weight:500}.balance-value{font-size:2.5rem;font-weight:700;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.balance-unit{font-size:1.1rem;opacity:.9}.shop-filters{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:2rem;justify-content:center}.filter-chip{padding:.5rem 1.25rem;border-radius:2rem;border:2px solid var(--border);background:var(--card-bg);color:var(--text);font-weight:500;cursor:pointer;transition:all .3s ease}.filter-chip:hover{border-color:var(--primary);background:var(--primary-bg);transform:translateY(-2px)}.filter-chip.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 4px 12px #6366f14d}.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem}.reward-card{background:var(--card-bg);border:2px solid var(--border);border-radius:1rem;padding:1.5rem;text-align:center;transition:all .3s ease;position:relative;overflow:hidden}.reward-card:hover{transform:translateY(-5px);box-shadow:0 8px 24px #00000026;border-color:var(--primary)}.reward-card.owned{background:linear-gradient(135deg,#10b9811a,#10b9810d);border-color:var(--success)}.reward-icon{font-size:4rem;margin-bottom:1rem;display:block;animation:floatIcon 3s ease-in-out infinite}@keyframes floatIcon{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.reward-name{font-size:1.25rem;font-weight:600;margin-bottom:.5rem;color:var(--text)}.reward-rarity{display:inline-block;padding:.25rem .75rem;border-radius:1rem;font-size:.75rem;font-weight:600;text-transform:uppercase;margin-bottom:1rem}.reward-rarity.common{background:#9ca3af;color:#fff}.reward-rarity.rare{background:#3b82f6;color:#fff}.reward-rarity.epic{background:#a855f7;color:#fff}.reward-rarity.legendary{background:linear-gradient(135deg,#f59e0b,#ef4444);color:#fff;box-shadow:0 4px 12px #f59e0b66}.reward-price{font-size:1.5rem;font-weight:700;color:var(--primary);margin-bottom:1rem}.reward-actions{display:flex;gap:.5rem;justify-content:center}.btn-buy{flex:1;background:var(--primary);color:#fff;border:none;padding:.75rem;border-radius:.5rem;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-buy:hover:not(:disabled){background:var(--primary-dark);transform:scale(1.05)}.btn-buy:disabled{opacity:.5;cursor:not-allowed}.btn-buy.owned{background:var(--success)}.purchase-confirm-content{text-align:center}.purchase-item-preview{margin-bottom:1.5rem}.purchase-icon{font-size:4rem;margin-bottom:.5rem}.purchase-name{font-size:1.5rem;font-weight:600;color:var(--text)}.purchase-details{background:var(--bg);border-radius:.75rem;padding:1rem;margin-bottom:1.5rem}.purchase-row{display:flex;justify-content:space-between;padding:.5rem 0;font-size:1rem}.purchase-row.purchase-after{border-top:2px solid var(--border);margin-top:.5rem;padding-top:1rem;font-weight:600}.purchase-price{color:var(--primary);font-weight:600}.purchase-after-balance{color:var(--success);font-weight:700;font-size:1.1rem}.purchase-question{font-size:1.1rem;font-weight:500;color:var(--text);margin:0}@keyframes purchaseSuccess{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.purchase-success{animation:purchaseSuccess .5s ease-out}.avatar-preview-card{margin-bottom:2rem}.avatar-preview-body{display:flex;flex-direction:column;align-items:center;gap:2rem}.avatar-display{position:relative;width:200px;height:200px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary-bg) 0%,var(--accent-bg) 100%);border-radius:50%;border:4px solid var(--primary);box-shadow:0 8px 32px #6366f14d}.avatar-base{font-size:6rem;z-index:1}.avatar-equipped-items{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.equipped-item-overlay{position:absolute;font-size:3rem;animation:itemEquip .3s ease-out}@keyframes itemEquip{0%{transform:scale(0);opacity:0}50%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.equipped-item-overlay.hat{top:-10%;left:50%;transform:translate(-50%)}.equipped-item-overlay.glasses{top:35%;left:50%;transform:translate(-50%)}.equipped-item-overlay.badge{bottom:5%;right:5%;font-size:2rem}.equipped-item-overlay.frame{top:0;left:0;right:0;bottom:0;font-size:8rem;opacity:.6}.equipped-list{width:100%;max-width:500px}.equipped-item-row{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--bg);border-radius:.5rem;margin-bottom:.5rem}.equipped-item-info{display:flex;align-items:center;gap:.75rem}.equipped-item-icon{font-size:1.5rem}.equipped-item-name{font-weight:500}.btn-unequip{background:var(--error);color:#fff;border:none;padding:.5rem 1rem;border-radius:.5rem;font-weight:500;cursor:pointer;transition:all .3s ease}.btn-unequip:hover{background:#dc2626;transform:scale(1.05)}.inventory-section{margin-bottom:2rem}.inventory-section h2{margin-bottom:1.5rem;color:var(--text)}.inventory-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.inventory-item{background:var(--card-bg);border:2px solid var(--border);border-radius:.75rem;padding:1rem;text-align:center;transition:all .3s ease}.inventory-item:hover{transform:translateY(-3px);border-color:var(--primary);box-shadow:0 4px 16px #0000001a}.inventory-item.equipped{background:linear-gradient(135deg,#6366f11a,#6366f10d);border-color:var(--primary)}.inventory-icon{font-size:3rem;margin-bottom:.5rem;display:block}.inventory-name{font-weight:600;margin-bottom:.75rem;color:var(--text)}.inventory-type{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;margin-bottom:.75rem}.btn-equip{width:100%;background:var(--primary);color:#fff;border:none;padding:.5rem;border-radius:.5rem;font-weight:500;cursor:pointer;transition:all .3s ease}.btn-equip:hover{background:var(--primary-dark)}.btn-equip.equipped{background:var(--success)}.empty-inventory{text-align:center;padding:3rem;color:var(--text-muted)}.empty-inventory-icon{font-size:4rem;margin-bottom:1rem;opacity:.5}@media (max-width: 768px){.shop-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.reward-icon{font-size:3rem}.balance-value{font-size:2rem}.avatar-display{width:150px;height:150px}.avatar-base{font-size:4rem}.inventory-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}@media (prefers-contrast: high){:root{--border: #ffffff}.btn,.option,.card{border-width:2px}}.store-hero{background:linear-gradient(135deg,#0f172ad9,#1e293bd9);border:1px solid rgba(255,255,255,.08);box-shadow:0 15px 30px #0000004d;border-radius:var(--radius);padding:24px;margin-bottom:24px;display:flex;justify-content:space-between;align-items:center;gap:20px}.store-kicker{font-size:11px;font-weight:700;letter-spacing:1px;color:var(--primary-hover);text-transform:uppercase}.store-hero h1{font-size:28px;font-weight:800;margin-top:4px;color:#fff}.store-hero p{font-size:14px;color:var(--muted);margin-top:4px}.store-balance{background:#6366f11a;border:1px solid rgba(99,102,241,.2);padding:12px 24px;border-radius:var(--radius-sm);display:flex;flex-direction:column;align-items:flex-end}.store-balance span{font-size:11px;font-weight:600;color:var(--muted);letter-spacing:.5px}.store-balance strong{font-size:24px;font-weight:800;color:var(--warning);margin-top:2px}.store-layout{display:grid;grid-template-columns:320px 1fr;gap:24px;align-items:start}.store-preview{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;display:flex;flex-direction:column;align-items:center;text-align:center}.store-card-heading{width:100%;display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:700;letter-spacing:.5px;color:var(--muted);margin-bottom:20px}.store-live{color:var(--success);animation:pulseLive 1.5s infinite alternate}@keyframes pulseLive{0%{opacity:.4}to{opacity:1}}.store-avatar-stage{position:relative;width:150px;height:150px;background:linear-gradient(135deg,#6366f114,#06b6d414);border-radius:50%;border:2px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;margin-bottom:16px;box-shadow:0 10px 25px #0003;transition:all .3s ease;overflow:visible}.store-avatar-stage:hover{transform:scale(1.03);border-color:var(--primary);box-shadow:0 12px 30px #6366f133}.store-avatar-base{font-size:4.5rem;z-index:1}.store-avatar-item{position:absolute;font-size:2.2rem;display:none;animation:itemEquip .3s var(--bounce);z-index:2}.store-avatar-item.visible{display:block}.store-avatar-hat{top:-15px;left:50%;transform:translate(-50%)}.store-avatar-glasses{top:38px;left:50%;transform:translate(-50%);font-size:2rem}.store-avatar-clothes{bottom:0;left:50%;transform:translate(-50%);font-size:2.5rem}.store-avatar-badge{bottom:10px;right:10px;font-size:1.5rem;z-index:3}.store-avatar-stage.store-bg-galaxy{background:radial-gradient(circle,#2e1065,#0f172a);border-color:#a855f7}.store-avatar-stage.store-bg-ocean{background:radial-gradient(circle,#0e7490,#0f172a);border-color:#06b6d4}.store-avatar-stage.store-bg-sunset{background:radial-gradient(circle,#b45309,#0f172a);border-color:#f59e0b}.store-avatar-stage.store-frame-diamond{border:4px solid #38bdf8;box-shadow:0 0 20px #38bdf866}.store-avatar-stage.store-frame-fire{border:4px solid #f97316;box-shadow:0 0 20px #f9731666}.store-avatar-stage.store-frame-gold{border:4px solid #fbbf24;box-shadow:0 0 20px #fbbf2466}.store-avatar-stage.store-frame-silver{border:4px solid #9ca3af;box-shadow:0 0 20px #9ca3af66}.store-avatar-stage.store-effect-sparkle:before{content:"✨";position:absolute;top:10px;left:10px;font-size:1.2rem;animation:float 2s infinite ease-in-out}.store-avatar-stage.store-effect-glow{box-shadow:0 0 35px #6366f173}.store-avatar-stage.store-effect-rainbow{animation:rainbowGlow 5s linear infinite}@keyframes rainbowGlow{0%,to{border-color:#ef4444;box-shadow:0 0 20px #ef444466}33%{border-color:#10b981;box-shadow:0 0 20px #10b98166}66%{border-color:#3b82f6;box-shadow:0 0 20px #3b82f666}}#storeAvatarName{font-size:18px;font-weight:700;color:#fff;margin-top:4px}.store-equipped{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:12px;width:100%}.store-equipped-pill{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:6px 12px;font-size:12px;font-weight:500;color:var(--text);display:flex;align-items:center;gap:6px;transition:all .2s ease}.store-equipped-pill:hover{background:#ef44441a;border-color:#ef44444d;color:var(--danger);transform:translateY(-1px)}.store-equipped-pill b{font-weight:800;margin-left:4px;opacity:.7}.store-inventory-title{width:100%;display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:700;letter-spacing:.5px;color:var(--muted);margin-top:24px;margin-bottom:12px;border-top:1px solid var(--border);padding-top:16px}.store-inventory{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;width:100%}.store-inventory-item{aspect-ratio:1;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-sm);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;position:relative}.store-inventory-item:hover{background:#6366f114;border-color:#6366f14d;transform:scale(1.05)}.store-inventory-item.equipped{border-color:var(--primary);background:#6366f11f;box-shadow:0 0 10px #6366f126}.store-inventory-item span{font-size:28px}.store-inventory-item small{font-size:8px;font-weight:700;letter-spacing:.5px;color:var(--muted);margin-top:4px;text-transform:uppercase}.store-inventory-item.equipped small{color:var(--primary-hover)}.store-empty-equipped,.store-empty-inventory{font-size:13px;color:var(--muted);padding:12px;width:100%}.store-empty-inventory{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:24px 0}.store-catalog{display:flex;flex-direction:column;gap:20px}.store-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.store-tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}.store-tab{padding:8px 16px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-sm);font-size:13px;font-weight:600;color:var(--muted);white-space:nowrap;transition:all .2s ease}.store-tab:hover{background:#ffffff14;color:var(--text)}.store-tab.active{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 4px 12px #6366f140}.store-catalog-count{font-size:13px;color:var(--muted)}.store-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.store-item{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;backdrop-filter:var(--glass);-webkit-backdrop-filter:var(--glass);transition:all .25s var(--transition);position:relative;overflow:hidden}.store-item:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--primary),var(--secondary));transform:scaleX(0);transition:transform .25s ease}.store-item:hover{transform:translateY(-4px);border-color:#ffffff26;box-shadow:0 10px 25px #0000004d}.store-item:hover:before{transform:scaleX(1)}.store-item-art{width:64px;height:64px;border-radius:16px;background:#ffffff08;display:flex;align-items:center;justify-content:center;font-size:32px;margin-bottom:16px;border:1px solid rgba(255,255,255,.06);transition:transform .25s ease}.store-item:hover .store-item-art{transform:scale(1.08) rotate(3deg)}.store-item-art.rarity-common{background:#9ca3af14;border-color:#9ca3af26}.store-item-art.rarity-rare{background:#3b82f614;border-color:#3b82f626}.store-item-art.rarity-epic{background:#a855f714;border-color:#a855f726}.store-item-art.rarity-legendary{background:#f59e0b14;border-color:#f59e0b26}.store-item-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.store-rarity{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.rarity-text-common{color:#9ca3af}.rarity-text-rare{color:#60a5fa}.rarity-text-epic{color:#c084fc}.rarity-text-legendary{color:#fbbf24}.store-item-type{font-size:9px;font-weight:700;text-transform:uppercase;color:var(--muted);letter-spacing:.5px}.store-item h3{font-size:16px;font-weight:700;color:#fff;margin-bottom:6px}.store-item p{font-size:12px;color:var(--muted);line-height:1.4;margin-bottom:16px;flex:1}.store-owned-status{font-size:11px;color:var(--success);font-weight:600;margin-bottom:12px}.store-item-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;border-top:1px solid var(--border);padding-top:12px}.store-item-footer strong{font-size:16px;font-weight:700;color:var(--warning)}.store-item-action{flex:1;background:var(--primary);border-radius:var(--radius-sm);padding:8px 12px;font-size:12px;font-weight:600;color:#fff;text-align:center;transition:all .2s ease;box-shadow:0 4px 10px #6366f126}.store-item-action:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 6px 14px #6366f140;transform:translateY(-1px)}.store-item-action:disabled{background:#ffffff0d;color:var(--muted);border:1px solid var(--border);box-shadow:none;cursor:not-allowed}.store-item-action.owned{background:#10b9811a;border:1px solid rgba(16,185,129,.2);color:var(--success);box-shadow:none}.store-item-action.owned:hover{background:var(--success);color:#fff}.store-item-action.locked{background:#ef44440d;border:1px solid rgba(239,68,68,.15);color:var(--danger)}@media (max-width: 768px){.store-layout{grid-template-columns:1fr;gap:18px}.store-hero{flex-direction:column;align-items:stretch;padding:18px 16px;gap:14px;min-width:0}.store-hero h1{font-size:clamp(22px,6vw,28px)}.store-balance{align-items:flex-start;width:100%;padding:12px 14px}.store-balance strong{font-size:clamp(20px,7vw,24px)}.store-preview,.store-catalog,.store-hero,.store-toolbar,.store-item,.store-tabs,.store-item-footer,.store-item-action{min-width:0}.store-preview{padding:18px 14px}.store-avatar-stage{width:130px;height:130px;margin-bottom:12px}.store-avatar-base{font-size:4rem}.store-equipped{justify-content:center}.store-inventory{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.store-inventory-item{min-height:80px}.store-toolbar{align-items:stretch}.store-tabs{width:100%;flex-wrap:nowrap;scrollbar-width:thin}.store-tab{padding:8px 12px;font-size:12px;white-space:nowrap}.store-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.store-item{padding:14px 12px}.store-item h3{overflow-wrap:anywhere;word-break:break-word}.store-item p{font-size:11px;min-height:0}.store-item-meta{gap:8px;flex-wrap:wrap}.store-item-footer{display:flex;flex-direction:column;align-items:stretch;gap:10px}.store-item-footer strong{font-size:15px}.store-item-action{width:100%;min-height:42px;padding:10px 12px;font-size:12px;line-height:1.2}}@media (max-width: 480px){.store-hero{padding:16px 14px}.store-grid{grid-template-columns:1fr}.store-inventory{grid-template-columns:repeat(2,minmax(0,1fr))}.store-item-action{font-size:11px}.store-tabs{gap:4px}.store-tab{padding:8px 10px;font-size:11px}.store-catalog-count{font-size:12px}.store-avatar-stage{width:116px;height:116px}.store-card-heading,.store-inventory-title{font-size:10px}.modal-overlay{padding:12px}.modal{max-height:calc(100vh - 24px)}}.hero-premium{background:linear-gradient(135deg,#0f172ae6,#1e293be6)!important;border:1px solid rgba(255,255,255,.08);box-shadow:0 20px 40px #00000059,inset 0 1px #ffffff1a;display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,320px);align-items:center;gap:24px;position:relative;overflow:hidden;padding:32px 36px;border-radius:var(--radius-lg);backdrop-filter:var(--glass);-webkit-backdrop-filter:var(--glass)}.hero-left{display:flex;flex-direction:column;gap:16px;z-index:2;min-width:0}.hero-top-badge{display:inline-flex;align-items:center;gap:8px;background:#6366f11f;border:1px solid rgba(99,102,241,.25);color:var(--primary-hover);padding:6px 14px;border-radius:30px;font-size:12px;font-weight:600;width:fit-content;max-width:100%;text-transform:uppercase;letter-spacing:.5px;white-space:normal}.hero-top-badge-dot{width:6px;height:6px;background:var(--primary);border-radius:50%;flex-shrink:0;animation:pulseBadge 1.5s infinite alternate}@keyframes pulseBadge{0%{transform:scale(.8);opacity:.5}to{transform:scale(1.3);opacity:1}}.hero-title{font-size:clamp(22px,2.5vw,32px)!important;font-weight:800;line-height:1.25;letter-spacing:-.5px;color:#fff;word-break:break-word}.hero-gradient-text{background:linear-gradient(135deg,var(--secondary) 0%,var(--primary-hover) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-weight:800}.hero-subtitle{font-size:14px;line-height:1.6;color:var(--muted);max-width:520px;margin-top:4px}.hero-bottom-wrap{display:flex;flex-direction:column;gap:12px;margin-top:8px}.hero-user-row{display:flex;align-items:center}.hero-user-text{font-size:15px;font-weight:600;color:#fff}.hero-right{position:relative;display:flex;justify-content:center;align-items:center;z-index:1;width:100%}.hero-image-wrap{position:relative;width:100%;max-width:300px;border-radius:var(--radius);overflow:hidden;box-shadow:0 15px 35px #00000073;border:1px solid rgba(255,255,255,.08)}.hero-main-image{width:100%;height:auto;display:block;object-fit:cover;transition:transform .5s ease}.hero-image-wrap:hover .hero-main-image{transform:scale(1.05)}.hero-ring-glow{position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;background:radial-gradient(circle,var(--primary) 0%,transparent 70%);opacity:.15;filter:blur(10px);pointer-events:none}.hero-code-badge{position:absolute;display:flex;align-items:center;gap:6px;background:#0f172ad9;border:1px solid rgba(255,255,255,.12);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:5px 10px;border-radius:10px;font-size:11px;font-weight:600;color:#fff;box-shadow:0 4px 12px #0000004d;transition:all .3s ease;z-index:3}.hero-code-badge:hover{transform:translateY(-2px);border-color:var(--primary);box-shadow:0 6px 16px #6366f14d}.hero-code-html{top:8%;left:5px}.hero-code-py{bottom:12%;left:5px}.hero-code-js{top:8%;right:5px}.hero-code-java{bottom:12%;right:5px}.hero-code-sql{top:45%;right:5px}@media (max-width: 1100px){.hero-premium{grid-template-columns:1fr;padding:24px;gap:20px}.hero-right{display:flex;justify-content:center}.hero-code-badge{display:none}}.coding-header{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:14px 20px;margin-bottom:16px}.coding-header-left{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.coding-editor-tabs{display:flex;gap:4px;background:var(--bg);padding:4px;border-radius:var(--radius-sm);border:1px solid var(--border)}.coding-tab{padding:8px 16px;border-radius:6px;font-size:13px;font-weight:600;color:var(--muted);transition:all .2s ease}.coding-tab:hover{color:var(--text)}.coding-tab.active{background:var(--primary);color:#fff;box-shadow:0 4px 12px #6366f140}.coding-select-wrap{display:flex;align-items:center;gap:8px}.coding-select-wrap select{min-width:170px}.coding-toolbar-controls{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.auto-run-switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:12px;font-weight:600;color:var(--muted)}.auto-run-switch input{display:none}.auto-run-switch .slider{width:36px;height:20px;background-color:#ffffff1a;border-radius:20px;position:relative;transition:background-color .2s ease;border:1px solid var(--border)}.auto-run-switch .slider:before{content:"";position:absolute;width:14px;height:14px;left:2px;top:2px;background-color:var(--muted);border-radius:50%;transition:transform .2s ease,background-color .2s ease}.auto-run-switch input:checked+.slider{background-color:#10b98133;border-color:#10b98166}.auto-run-switch input:checked+.slider:before{transform:translate(16px);background-color:var(--success)}.auto-run-switch input:checked~.switch-label{color:var(--success)}.coding-actions{display:flex;align-items:center;gap:8px}.coding-workspace{display:grid;grid-template-columns:180px minmax(0,1.2fr) minmax(0,1fr);gap:16px;min-height:calc(100vh - 220px);align-items:stretch}.coding-explorer{display:flex;flex-direction:column;min-width:0;margin-bottom:0;overflow:hidden;background:#111827}.coding-explorer-head{display:flex;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border);color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.08em}.coding-project-tree{display:flex;flex-direction:column;gap:2px;padding:10px 7px;font:12px/1.5 Consolas,Monaco,monospace}.coding-tree-root,.coding-tree-folder{padding:5px 7px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.coding-file{width:100%;display:flex;align-items:center;gap:7px;padding:7px 9px 7px 20px;border-radius:5px;color:var(--text);text-align:left;font:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.coding-file:hover,.coding-file.active{background:#6366f12e;color:#fff}.coding-explorer-footer{margin-top:auto;padding:9px 12px;border-top:1px solid var(--border);font-size:10px}.coding-editor-panel,.coding-output-panel{display:flex;flex-direction:column;height:100%;margin-bottom:0;overflow:hidden}.editor-header,.output-tabs{padding:12px 16px;background:#0f172a99;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.editor-title{font-size:13px;font-weight:700;color:var(--text);letter-spacing:.5px}.editor-shortcuts{font-size:11px}.editor-body{flex:1;position:relative;background:#090d16;overflow:hidden}.editor-view{display:none;width:100%;height:100%;position:absolute;top:0;right:0;bottom:0;left:0}.editor-view.active{display:flex;z-index:10;pointer-events:auto}.editor-container{flex:1;display:flex;position:relative;background:#090d16;font-family:Consolas,Monaco,Courier New,monospace;height:100%;overflow:hidden;pointer-events:auto}.line-numbers{width:48px;padding:16px 8px;background:#0000004d;color:#475569;font-size:13px;line-height:1.6;text-align:right;-webkit-user-select:none;user-select:none;border-right:1px solid rgba(255,255,255,.06);font-family:inherit;overflow:hidden;box-sizing:border-box}.editor-surface{position:relative;flex:1;height:100%;background:#090d16;overflow:hidden}.editor-highlight,.code-textarea{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;padding:16px;width:100%;height:100%;box-sizing:border-box;font-family:Consolas,Monaco,Courier New,monospace;font-size:13px;line-height:1.6;-moz-tab-size:2;tab-size:2;white-space:pre;word-wrap:normal;overflow:auto}.editor-highlight{pointer-events:none;color:#e2e8f0;background:transparent;z-index:1;overflow:hidden}.editor-highlight .token-html-tag,.editor-highlight .token-html-attr-name,.editor-highlight .token-html-attr-value,.editor-highlight .token-html-comment,.editor-highlight .token-html-text,.editor-highlight .token-css-selector,.editor-highlight .token-css-property,.editor-highlight .token-css-value,.editor-highlight .token-css-at-rule,.editor-highlight .token-css-media,.editor-highlight .token-css-variable,.editor-highlight .token-css-class,.editor-highlight .token-css-id,.editor-highlight .token-css-pseudo,.editor-highlight .token-css-comment,.editor-highlight .token-css-string,.editor-highlight .token-js-keyword,.editor-highlight .token-js-function,.editor-highlight .token-js-variable,.editor-highlight .token-js-string,.editor-highlight .token-js-number,.editor-highlight .token-js-boolean,.editor-highlight .token-js-operator,.editor-highlight .token-js-comment,.editor-highlight .token-js-builtin,.editor-highlight .token-js-property,.editor-highlight .token-js-template,.editor-highlight .token-js-console,.editor-highlight .token-python-keyword,.editor-highlight .token-python-function,.editor-highlight .token-python-string,.editor-highlight .token-python-number,.editor-highlight .token-python-comment,.editor-highlight .token-python-class,.editor-highlight .token-python-variable,.editor-highlight .token-java-keyword,.editor-highlight .token-java-class,.editor-highlight .token-java-method,.editor-highlight .token-java-string,.editor-highlight .token-java-number,.editor-highlight .token-java-comment,.editor-highlight .token-cpp-keyword,.editor-highlight .token-cpp-type,.editor-highlight .token-cpp-function,.editor-highlight .token-cpp-string,.editor-highlight .token-cpp-number,.editor-highlight .token-cpp-comment,.editor-highlight .token-csharp-keyword,.editor-highlight .token-csharp-type,.editor-highlight .token-csharp-function,.editor-highlight .token-csharp-string,.editor-highlight .token-csharp-number,.editor-highlight .token-csharp-comment,.editor-highlight .token-sql-keyword,.editor-highlight .token-sql-table,.editor-highlight .token-sql-field,.editor-highlight .token-sql-string,.editor-highlight .token-sql-number,.editor-highlight .token-sql-comment,.editor-highlight .token-sql-function{font-family:inherit}.editor-highlight .token-html-tag{color:#67e8f9}.editor-highlight .token-html-attr-name{color:#fbbf24}.editor-highlight .token-html-attr-value{color:#fca5a5}.editor-highlight .token-html-comment{color:#34d399}.editor-highlight .token-html-text{color:#e2e8f0}.editor-highlight .token-css-selector{color:#c4b5fd}.editor-highlight .token-css-property{color:#7dd3fc}.editor-highlight .token-css-value{color:#fbbf24}.editor-highlight .token-css-at-rule,.editor-highlight .token-css-media{color:#a78bfa}.editor-highlight .token-css-variable,.editor-highlight .token-css-class{color:#f9a8d4}.editor-highlight .token-css-id{color:#fca5a5}.editor-highlight .token-css-pseudo{color:#f0abfc}.editor-highlight .token-css-comment{color:#34d399}.editor-highlight .token-css-string{color:#fda4af}.editor-highlight .token-css-number{color:#fca5a5}.editor-highlight .token-js-keyword{color:#c084fc}.editor-highlight .token-js-function{color:#7dd3fc}.editor-highlight .token-js-variable{color:#f8fafc}.editor-highlight .token-js-string{color:#fbbf24}.editor-highlight .token-js-number{color:#fca5a5}.editor-highlight .token-js-boolean{color:#c084fc}.editor-highlight .token-js-operator{color:#cbd5e1}.editor-highlight .token-js-comment{color:#34d399}.editor-highlight .token-js-builtin{color:#7dd3fc}.editor-highlight .token-js-property{color:#a5f3fc}.editor-highlight .token-js-template{color:#fcd34d}.editor-highlight .token-js-console{color:#7dd3fc}.editor-highlight .token-python-keyword{color:#c084fc}.editor-highlight .token-python-function{color:#7dd3fc}.editor-highlight .token-python-string{color:#fbbf24}.editor-highlight .token-python-number{color:#fca5a5}.editor-highlight .token-python-comment{color:#34d399}.editor-highlight .token-python-class{color:#f9a8d4}.editor-highlight .token-python-variable{color:#f8fafc}.editor-highlight .token-java-keyword{color:#c084fc}.editor-highlight .token-java-class{color:#f9a8d4}.editor-highlight .token-java-method{color:#7dd3fc}.editor-highlight .token-java-string{color:#fbbf24}.editor-highlight .token-java-number{color:#fca5a5}.editor-highlight .token-java-comment{color:#34d399}.editor-highlight .token-cpp-keyword{color:#c084fc}.editor-highlight .token-cpp-type{color:#7dd3fc}.editor-highlight .token-cpp-function{color:#60a5fa}.editor-highlight .token-cpp-string{color:#fbbf24}.editor-highlight .token-cpp-number{color:#fca5a5}.editor-highlight .token-cpp-comment{color:#34d399}.editor-highlight .token-csharp-keyword{color:#c084fc}.editor-highlight .token-csharp-type{color:#7dd3fc}.editor-highlight .token-csharp-function{color:#60a5fa}.editor-highlight .token-csharp-string{color:#fbbf24}.editor-highlight .token-csharp-number{color:#fca5a5}.editor-highlight .token-csharp-comment{color:#34d399}.editor-highlight .token-sql-keyword{color:#c084fc}.editor-highlight .token-sql-table{color:#7dd3fc}.editor-highlight .token-sql-field{color:#a5f3fc}.editor-highlight .token-sql-string{color:#fbbf24}.editor-highlight .token-sql-number{color:#fca5a5}.editor-highlight .token-sql-comment{color:#34d399}.editor-highlight .token-sql-function{color:#60a5fa}.code-textarea{flex:1;background:transparent;color:transparent;caret-color:#f1f5f9;border:none;outline:none;resize:none;pointer-events:auto;user-select:text;-webkit-user-select:text;cursor:text;z-index:2;overflow:auto;text-shadow:none}.code-textarea::selection{background:#94a3b840}.auth-bg:after,.auth-bg .orb,.welcome-banner:before,.welcome-banner:after,.btn:after,.xp-bar-fill:after,.progress-fill:after,.subject-card:before,.store-item:before,.store-avatar-stage.store-effect-sparkle:before,.sidebar .nav-item.active:before,.hero-ring-glow{pointer-events:none}.hero-code-badge{pointer-events:none}.topbar .hamburger,.topbar .icon-btn,.topbar .notif-btn,.topbar .user-chip,.topbar .ux-user-dropdown .ux-menu-item{position:relative;z-index:2;cursor:pointer}.topbar:before{content:none}.code-textarea:focus{outline:none}.code-textarea::placeholder{color:#475569;opacity:1}.stdin-panel{padding:8px 12px;border-bottom:1px solid var(--border);background:#0f172a59}.stdin-textarea{width:100%;height:72px;background:#090d16;color:#e2e8f0;border:1px solid rgba(255,255,255,.1);border-radius:8px;font-family:Consolas,Monaco,Courier New,monospace;font-size:12px;line-height:1.5;padding:8px 10px;resize:vertical;box-sizing:border-box;outline:none}.stdin-textarea:focus{border-color:#6366f166}.console-section{border:1px solid rgba(255,255,255,.06);border-radius:8px;margin:8px 0;overflow:hidden}.console-section-title{font-size:10px;font-weight:800;letter-spacing:.08em;padding:6px 10px;background:#0f172a99;color:#94a3b8}.console-section-title.stdout{color:#34d399}.console-section-title.stderr{color:#f87171}.console-section-body{padding:8px 10px;font-family:Consolas,Monaco,Courier New,monospace;font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word;color:#e2e8f0;max-height:240px;overflow:auto}.sql-result-table{border-collapse:collapse;margin:8px 0;font-family:Consolas,Monaco,Courier New,monospace;font-size:12px;max-width:100%}.sql-result-table th,.sql-result-table td{border:1px solid rgba(255,255,255,.12);padding:4px 10px;text-align:left}.sql-result-table th{background:#6366f126;color:#c7d2fe;font-weight:700}.sql-result-table td{color:#e2e8f0}.output-tabs{display:flex;gap:8px;justify-content:flex-start}.output-tab{padding:6px 14px;border-radius:6px;font-size:12px;font-weight:600;color:var(--muted);transition:all .2s ease;display:flex;align-items:center;gap:6px}.output-tab:hover{color:var(--text)}.output-tab.active{background:#6366f126;color:var(--primary-hover);border:1px solid rgba(99,102,241,.3)}.output-body{flex:1;position:relative;background:#090d16;overflow:hidden}.output-view{display:none;width:100%;height:100%;position:absolute;top:0;right:0;bottom:0;left:0}.output-view.active{display:flex;flex-direction:column}#codingIframe{width:100%;height:100%;border:none;background:#fff}.console-toolbar{padding:8px 16px;background:#0f172a66;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted)}.console-logs{flex:1;padding:16px;overflow-y:auto;font-family:Consolas,Monaco,monospace;font-size:12px;line-height:1.5;display:flex;flex-direction:column;gap:6px}.console-line{padding:6px 10px;border-radius:4px;word-break:break-all;font-family:inherit}.console-line.log{color:#38bdf8;background:#38bdf80f}.console-line.warn{color:#fbbf24;background:#fbbf2414}.console-line.error{color:#f87171;background:#f871711f;border-left:3px solid #ef4444;font-weight:500}.console-line.info{color:#a78bfa;background:#a78bfa0f}@media (max-width: 992px){.coding-workspace{grid-template-columns:1fr;min-height:auto}.coding-explorer{min-height:0}.coding-project-tree{flex-direction:row;align-items:center;overflow-x:auto}.coding-tree-root,.coding-tree-folder{display:none}.coding-file{width:auto;padding:7px 10px}.coding-editor-panel,.coding-output-panel{height:450px}}.cert-page-container{display:flex;flex-direction:column;gap:24px;max-width:960px;margin:0 auto;padding:8px}.cert-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.cert-header-left h3{font-size:24px;font-weight:700;margin-bottom:4px;color:var(--text)}.cert-header-left p{color:var(--muted);font-size:14px}.cert-header-actions{display:flex;gap:10px;flex-wrap:wrap}.cert-card-wrapper{background:var(--card);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow)}.cert-card-border{border:4px double var(--primary);border-radius:var(--radius);padding:24px;background:linear-gradient(135deg,#6366f10d,#38bdf80d);position:relative}.cert-card-inner{display:flex;flex-direction:column;gap:24px;text-align:center}.cert-top{display:flex;justify-content:space-between;align-items:center}.cert-badge-brand{display:flex;align-items:center;gap:8px;font-size:20px;font-weight:800;color:var(--text)}.cert-id-tag{font-family:monospace;font-size:13px;color:var(--muted);background:var(--bg);padding:4px 10px;border-radius:20px;border:1px solid var(--border)}.cert-main-title h2{font-size:32px;letter-spacing:4px;color:var(--primary);margin-bottom:4px}.cert-subtitle{font-size:12px;letter-spacing:2px;color:var(--muted);font-weight:600}.cert-given-to{font-size:14px;color:var(--muted);margin-bottom:8px}.cert-student-name{font-size:32px;font-weight:800;color:var(--text);margin-bottom:12px;text-decoration:underline;text-decoration-color:var(--primary);text-underline-offset:8px}.cert-achievement-text{max-width:680px;margin:0 auto;font-size:15px;line-height:1.6;color:var(--text)}.cert-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;background:var(--bg);padding:16px;border-radius:var(--radius);border:1px solid var(--border)}.cert-meta-item{display:flex;flex-direction:column;gap:4px;font-size:13px}.cert-meta-lbl{color:var(--muted)}.cert-meta-val{color:var(--text)}.cert-status-ok{color:var(--success)}.cert-footer{display:flex;justify-content:space-between;align-items:flex-end;margin-top:16px;padding-top:16px;border-top:1px dashed var(--border)}.cert-qr-box{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:11px;color:var(--muted)}.cert-qr-svg{width:60px;height:60px;border-radius:6px}.cert-signature-box{text-align:right;font-size:13px}.cert-sig-line{font-weight:700;color:var(--text);border-bottom:1px solid var(--text);padding-bottom:4px;margin-bottom:4px}.cert-sig-title{color:var(--muted);font-size:12px}@media print{body *{visibility:hidden}#certPrintArea,#certPrintArea *{visibility:visible}#certPrintArea{position:absolute;left:0;top:0;width:100%}}.nd{display:grid;gap:22px;width:100%;max-width:1440px;margin:0 auto}.nd-row{display:grid;gap:22px;min-width:0}.nd-row-2{grid-template-columns:1.2fr 1fr}.nd-row-3{grid-template-columns:repeat(3,minmax(0,1fr))}.nd-card{background:var(--card);border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow-soft);padding:22px 24px;min-width:0;backdrop-filter:var(--glass);-webkit-backdrop-filter:var(--glass)}.nd-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.nd-chip-note{font-size:.68rem;font-weight:700;letter-spacing:.08em;color:var(--secondary);background:var(--primary-soft);border:1px solid var(--border);border-radius:999px;padding:4px 10px}.nd-card-title{font-size:1.02rem;font-weight:700;letter-spacing:.01em;display:flex;align-items:center;gap:8px;margin:0}.nd-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 30px;border:1px solid var(--border);border-radius:28px;background:radial-gradient(900px 260px at 88% -40%,var(--primary-soft),transparent 65%),radial-gradient(600px 220px at 10% 120%,rgba(6,182,212,.08),transparent 60%),var(--card);box-shadow:var(--shadow-soft);min-width:0}.nd-hero-text{min-width:0}.nd-hero-kicker{display:inline-flex;align-items:center;gap:8px;font-size:.8rem;font-weight:600;color:var(--secondary);background:var(--primary-soft);border:1px solid var(--border);border-radius:999px;padding:6px 14px;margin-bottom:12px}.nd-hero-title{font-size:clamp(1.35rem,2.2vw,1.8rem);font-weight:800;line-height:1.25;margin:0 0 6px}.nd-hero-name{color:var(--primary)}.nd-hero-sub{color:var(--muted);font-size:.95rem;margin:0 0 16px;max-width:46ch}.nd-hero-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.nd-hero-avatar{width:44px;height:44px;flex:0 0 44px;display:inline-flex;align-items:center;justify-content:center;font-size:1.35rem;border-radius:14px;background:var(--primary-soft);border:1px solid var(--border)}.nd-hero-level{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.nd-hero-level-badge{font-size:.78rem;font-weight:700;color:var(--primary);background:var(--primary-soft);border:1px solid var(--border-focus);border-radius:999px;padding:5px 12px;white-space:nowrap}.nd-hero-xp{width:140px;height:8px;border-radius:999px;background:var(--primary-soft);border:1px solid var(--border);overflow:hidden}.nd-hero-xp-fill{display:block;height:100%;width:0%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--secondary));transition:width .8s cubic-bezier(.16,1,.3,1)}.nd-hero-xp-text{font-size:.78rem;color:var(--muted);white-space:nowrap}.nd-hero-robot{flex:0 0 auto;width:148px;display:flex;justify-content:center}.nd-hero-robot .mascot{transform:scale(.92);transform-origin:center}.nd-card--next{background:linear-gradient(135deg,var(--primary-soft),transparent 55%),var(--card);border-color:var(--border-focus)}.nd-next{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.nd-next-icon{width:56px;height:56px;flex:0 0 56px;display:inline-flex;align-items:center;justify-content:center;font-size:1.6rem;border-radius:18px;background:var(--primary-soft);border:1px solid var(--border-focus)}.nd-next-info{flex:1;min-width:200px}.nd-next-course{font-size:.78rem;font-weight:600;color:var(--secondary);text-transform:uppercase;letter-spacing:.06em}.nd-next-title{margin:4px 0 8px;font-size:1.08rem;font-weight:700;color:var(--primary)}.nd-next-meta{display:flex;align-items:center;gap:12px;font-size:.82rem;color:var(--muted);margin-bottom:10px;flex-wrap:wrap}.nd-next-progress{height:8px;border-radius:999px;background:var(--primary-soft);border:1px solid var(--border);overflow:hidden}.nd-next-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--secondary));transition:width .8s cubic-bezier(.16,1,.3,1)}.nd-next-pct{font-size:.78rem;color:var(--muted)}.nd-next-cta{flex:0 0 auto}.nd-next-sub{margin:0;color:var(--muted);font-size:.9rem}.nd-hint{color:var(--muted);font-size:.84rem;margin:8px 0 0}.nd-hint--ok{color:var(--success);font-weight:600}.nd-streak-body{display:grid;gap:14px}.nd-streak-top-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.nd-streak-num{display:flex;align-items:baseline;gap:10px}.nd-streak-num b{font-size:2.3rem;line-height:1}.nd-streak-num span:last-child{color:var(--muted);font-size:.9rem}.nd-streak-flame{font-size:1.5rem;align-self:center}.nd-freeze-badge{display:inline-flex;align-items:center;gap:4px;font-size:.78rem;font-weight:700;color:#0284c7;background:#0ea5e91f;border:1px solid rgba(14,165,233,.28);border-radius:999px;padding:4px 10px;white-space:nowrap}.nd-freeze-badge i{font-style:normal}.nd-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.nd-day{display:flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--border);background:transparent;min-height:34px;font-size:.72rem;color:var(--muted)}.nd-day i{font-style:normal}.nd-day--today{border-color:var(--border-focus)}.nd-day--on{background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;border-color:transparent}.nd-day--freeze{background:#0ea5e933;color:#0284c7;border-color:#0ea5e973}.nd-xp-chip{display:inline-flex;align-items:center;font-size:.78rem;font-weight:700;color:var(--warning);background:#f59e0b1f;border:1px solid rgba(245,158,11,.25);border-radius:999px;padding:3px 10px}.nd-kv{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px dashed var(--border);font-size:.9rem}.nd-kv:last-of-type{border-bottom:none}.nd-kv-l{color:var(--muted)}.nd-kv-v{font-weight:700;white-space:nowrap}.nd-mini-bar{height:7px;border-radius:999px;background:var(--primary-soft);border:1px solid var(--border);overflow:hidden;margin:4px 0 12px}.nd-mini-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--secondary));transition:width .8s cubic-bezier(.16,1,.3,1)}.nd-goal-line{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted);margin-top:8px}.nd-challenge-task{margin:0 0 10px;font-size:.92rem;line-height:1.5}.nd-challenge-title{color:var(--muted);font-size:.86rem}.nd-challenge-meta{display:flex;align-items:center;gap:10px;font-size:.8rem;color:var(--muted);margin-bottom:12px;flex-wrap:wrap}.nd-card--challenge{position:relative}.nd-card--challenge:before{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:inherit;background:linear-gradient(120deg,transparent 20%,rgba(245,158,11,.07) 40%,transparent 60%);background-size:250% 100%;animation:ndChShimmer 4.5s ease-in-out infinite;pointer-events:none}.nd-card--done:before{display:none}@keyframes ndChShimmer{0%,60%{background-position:130% 0}to{background-position:-130% 0}}.nd-flash{animation:ndFlash .9s ease}@keyframes ndFlash{0%{box-shadow:0 0 #f59e0b73}to{box-shadow:0 0 0 14px #f59e0b00}}.nd-stats-body{display:flex;align-items:stretch;justify-content:space-around;gap:8px;flex-wrap:wrap}.nd-stat{display:flex;align-items:center;gap:8px;background:var(--primary-soft);border:1px solid var(--border);border-radius:16px;padding:12px 16px;min-height:52px;font:inherit;color:inherit;cursor:pointer;transition:transform .18s ease,border-color .18s ease;min-width:0}.nd-stat:hover{transform:translateY(-2px);border-color:var(--border-focus)}.nd-stat b{font-size:1.15rem}.nd-stat span:last-child{color:var(--muted);font-size:.82rem;white-space:nowrap}.nd-stat-ico{font-size:1.1rem}.nd-stat-sep{width:1px;background:var(--border);align-self:stretch}.nd-goal-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px}.nd-goal-lvl{font-weight:700}.nd-goal-xp{color:var(--muted);font-size:.84rem;white-space:nowrap}.nd-goal-bar{height:10px;border-radius:999px;background:var(--primary-soft);border:1px solid var(--border);overflow:hidden}.nd-goal-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--secondary));transition:width .9s cubic-bezier(.16,1,.3,1)}.nd-feed{display:grid;gap:4px;margin:0;padding:0;list-style:none}.nd-feed-item{display:flex;align-items:center;gap:12px;padding:10px 6px;border-bottom:1px dashed var(--border);min-width:0}.nd-feed-item:last-child{border-bottom:none}.nd-feed-ico{flex:0 0 auto;font-size:1.05rem}.nd-feed-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.nd-feed-text b{font-weight:600;font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nd-feed-text span{color:var(--muted);font-size:.78rem}.nd-feed-time{flex:0 0 auto;color:var(--muted);font-size:.75rem;white-space:nowrap}.nd-empty{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:10px 0}.nd-empty--row{flex-direction:row;align-items:center;gap:14px;flex-wrap:wrap}.nd-empty--row p{margin:0}.nd-empty--row div{flex:1;min-width:160px}.nd-empty h3{margin:0;font-size:1rem}.nd-empty p{margin:0;color:var(--muted);font-size:.88rem}.nd-empty-ico{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;font-size:1.5rem;border-radius:16px;background:var(--primary-soft);border:1px solid var(--border)}.nd-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 18px;border-radius:14px;font:inherit;font-weight:600;font-size:.9rem;cursor:pointer;border:1px solid transparent;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease;white-space:nowrap}.nd-btn--primary{color:#fff;background:linear-gradient(135deg,var(--primary),var(--secondary));box-shadow:var(--shadow-soft),var(--glow)}.nd-btn--primary:hover{transform:translateY(-2px);box-shadow:var(--shadow),var(--glow)}.nd-btn--ghost{color:var(--text);background:transparent;border-color:var(--border)}.nd-btn--ghost:hover{border-color:var(--border-focus);background:var(--primary-soft)}.nd-btn--warning{color:#fff;background:linear-gradient(135deg,var(--warning),#fbbf24)}.nd-btn--warning:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft)}.nd-btn--lg{width:100%;min-width:180px}.nd-btn:active{transform:translateY(0) scale(.98)}.nd-pulse{animation:ndPulse 2.6s ease-in-out infinite}@keyframes ndPulse{0%,to{box-shadow:var(--shadow-soft),0 0 #6366f147}50%{box-shadow:var(--shadow-soft),0 0 0 8px #6366f100}}.nd-reveal{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s cubic-bezier(.16,1,.3,1)}.nd-reveal.nd-in{opacity:1;transform:none}.nd button:focus-visible,.nd [role=progressbar]:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:12px}@media (max-width: 1279px){.nd-row-3{grid-template-columns:repeat(2,minmax(0,1fr))}.nd-card--challenge,.nd-card--goal{grid-column:1 / -1}}@media (max-width: 1024px) and (min-width: 769px){.nd-row-2{grid-template-columns:1fr 1fr}.nd-hero-robot{width:120px}.nd-hero-robot .mascot{transform:scale(.75)}}@media (max-width: 768px){.nd{gap:16px}.nd-row-2,.nd-row-3{grid-template-columns:1fr}.nd-hero{flex-direction:column-reverse;align-items:flex-start;padding:22px 20px;gap:12px}.nd-hero-robot{width:110px;align-self:center}.nd-hero-robot .mascot{transform:scale(.68)}.nd-hero-sub{max-width:100%}.nd-card{padding:18px;border-radius:22px}.nd-next{gap:14px}.nd-next-cta{width:100%}.nd-btn--lg{min-width:0;width:100%}.nd-stats-body{justify-content:flex-start}}@media (max-width: 360px){.nd-hero{padding:18px 16px}.nd-week{gap:4px}.nd-day{font-size:.66rem}.nd-hero-xp{width:110px}}@media (prefers-reduced-motion: reduce){.nd *,.nd *:before,.nd *:after{animation:none!important;transition:none!important}.nd-reveal{opacity:1;transform:none}}.ls-section-head{margin-bottom:24px}.ls-section-head h3{font-size:1.25rem;font-weight:700;margin-bottom:4px}.ls-section-head p{color:var(--muted);font-size:.92rem}.ls-continue-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:4px 0 10px}.ls-continue-head h4{font-size:1.05rem;font-weight:800;letter-spacing:-.01em}.ls-continue-head span{color:var(--muted);font-size:.84rem;font-weight:600}.ls-continue{position:relative;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:20px 24px;border-radius:24px;margin-bottom:32px;background:var(--card);border:1px solid color-mix(in srgb,var(--primary) 22%,var(--border));color:var(--text);overflow:hidden;box-shadow:var(--shadow-soft);animation:lsFadeUp .45s var(--bounce) both}.ls-continue:after{content:"";position:absolute;top:-70px;right:-50px;width:220px;height:220px;background:color-mix(in srgb,var(--primary) 7%,transparent);border-radius:50%;pointer-events:none}.ls-continue-info{display:flex;align-items:center;gap:16px;min-width:0}.ls-continue-icon{width:54px;height:54px;border-radius:16px;background:var(--primary-soft);border:1px solid color-mix(in srgb,var(--primary) 22%,transparent);display:flex;align-items:center;justify-content:center;font-size:1.6rem;flex-shrink:0}.ls-continue-course{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--primary);margin-bottom:3px}.ls-continue-text h3{font-size:1.12rem;font-weight:800;margin-bottom:2px;line-height:1.3}.ls-continue-sub{color:var(--muted);font-size:.9rem}.ls-continue-meta{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap}.ls-continue-meta span{font-size:.76rem;font-weight:700;color:var(--muted);background:var(--bg-alt);border:1px solid var(--border);padding:3px 10px;border-radius:99px;white-space:nowrap}.ls-continue-meta .ls-continue-xp{color:var(--warning);background:color-mix(in srgb,var(--warning) 10%,transparent);border-color:color-mix(in srgb,var(--warning) 28%,transparent)}.ls-continue-progress{display:flex;align-items:center;gap:12px;flex-grow:1;max-width:300px;min-width:180px}.ls-continue-bar{flex:1;height:9px;border-radius:99px;background:var(--bg-alt);border:1px solid var(--border);overflow:hidden}.ls-continue-bar span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--primary),var(--secondary));transition:width .8s var(--bounce)}.ls-continue-pct{font-weight:800;font-size:.95rem;white-space:nowrap}.ls-continue.ls-continue-done{border-color:color-mix(in srgb,var(--success) 32%,var(--border))}.ls-continue.ls-continue-done .ls-continue-icon{background:color-mix(in srgb,var(--success) 12%,transparent);border-color:color-mix(in srgb,var(--success) 28%,transparent)}.ls-continue.ls-continue-done .ls-continue-text h3{color:var(--success)}.btn.ls-btn-continue{background:linear-gradient(135deg,var(--primary),color-mix(in srgb,var(--secondary) 45%,var(--primary)));color:#fff;font-weight:700;border:none;white-space:nowrap;min-height:42px;padding:10px 22px;border-radius:99px;transition:transform .25s var(--bounce),box-shadow .25s ease,background .2s}.btn.ls-btn-continue:hover{background:var(--primary-hover);transform:translateY(-2px);box-shadow:0 12px 26px color-mix(in srgb,var(--primary) 30%,transparent)}.btn.ls-btn-continue:active{transform:translateY(0) scale(.97)}.ls-btn-arrow{display:inline-block;transition:transform .25s var(--bounce)}.ls-btn-continue:hover .ls-btn-arrow{transform:translate(5px)}.ls-course-head-actions .btn:hover .ls-btn-arrow,.ls-course-card:hover .ls-btn-arrow{transform:translate(4px)}.ls-courses-grid{display:flex;flex-direction:column;gap:12px;max-width:880px}.ls-course-card{position:relative;display:flex;align-items:center;gap:16px;padding:14px 18px;border-radius:26px;background:var(--card);border:1px solid var(--border);cursor:pointer;transition:transform .25s var(--bounce),box-shadow .25s var(--bounce),border-color .25s;animation:lsFadeUp .5s var(--bounce) both;overflow:hidden;min-width:0}.ls-course-card:hover{transform:translateY(-3px);border-color:var(--border-focus);box-shadow:var(--shadow-soft)}.ls-course-card:active{transform:translateY(-1px) scale(.995)}.ls-course-icon{width:50px;height:50px;border-radius:16px;font-size:1.5rem;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--ls-color, var(--primary)) 14%,transparent);border:1px solid color-mix(in srgb,var(--ls-color, var(--primary)) 26%,transparent);flex-shrink:0}.ls-course-id{flex:1;min-width:0}.ls-course-id h4{font-size:1.12rem;font-weight:800;line-height:1.25;letter-spacing:-.01em}.ls-course-tagline{color:var(--muted);font-size:.84rem;line-height:1.4;margin-top:2px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.ls-course-meta{display:flex;align-items:center;gap:10px;margin-top:6px;flex-wrap:wrap;font-size:.78rem;font-weight:600;color:var(--muted)}.ls-course-side{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:6px;flex-shrink:0}.ls-progress-track{flex:1;height:8px;border-radius:99px;background:var(--primary-soft);border:1px solid var(--border);overflow:hidden}.ls-progress-track span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--primary),var(--secondary));transition:width .9s var(--bounce)}.ls-progress-pct{font-size:.85rem;font-weight:700;min-width:42px;text-align:right}.ls-course-head{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:24px;border-radius:var(--radius);background:var(--card);border:1px solid var(--border);margin-bottom:24px;animation:lsFadeUp .4s var(--bounce) both;overflow:hidden;max-width:100%}.ls-course-head-icon{width:68px;height:68px;border-radius:18px;font-size:2.1rem;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--ls-color, var(--primary)) 14%,transparent);border:1px solid color-mix(in srgb,var(--ls-color, var(--primary)) 32%,transparent);flex-shrink:0}.ls-course-head-info{flex:1 1 220px;min-width:0}.ls-course-head-info h3{font-size:1.45rem;font-weight:800;margin-bottom:4px}.ls-course-head-info>p{color:var(--muted);font-size:.92rem;margin-bottom:12px}.ls-course-head-actions{display:flex;flex-direction:column;gap:10px;align-items:stretch}.ls-course-back{align-self:flex-start}.ls-level-chip{display:inline-flex;align-items:center;gap:8px;font-size:.82rem;font-weight:600;color:var(--muted);background:var(--primary-soft);border:1px solid var(--border);padding:6px 12px;border-radius:99px;white-space:nowrap;justify-content:center}.ls-lessons-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.ls-lesson-card{position:relative;display:flex;align-items:center;gap:16px;padding:18px;border-radius:var(--radius-sm);background:var(--card);border:1px solid var(--border);cursor:pointer;transition:transform .22s var(--bounce),border-color .22s,box-shadow .22s;animation:lsFadeUp .45s var(--bounce) both;overflow:hidden;min-width:0}.ls-lesson-card:hover{transform:translateY(-3px);border-color:var(--border-focus);box-shadow:var(--shadow-soft)}.ls-lesson-card:active{transform:translateY(-1px) scale(.99)}.ls-lesson-num{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.95rem;flex-shrink:0;background:var(--primary-soft);color:var(--text);border:1px solid var(--border);position:relative}.ls-lesson-num .ls-state-ico{position:absolute;bottom:-6px;right:-6px;font-size:.75rem;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--bg-alt);border:1px solid var(--border)}.ls-lesson-info{flex:1;min-width:0}.ls-lesson-info h5{font-size:.98rem;font-weight:700;margin-bottom:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ls-lesson-info p{font-size:.8rem;color:var(--muted);display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ls-lesson-arrow{color:var(--muted);font-size:1.05rem;transition:transform .2s,color .2s;flex-shrink:0}.ls-lesson-card:hover .ls-lesson-arrow{transform:translate(4px);color:var(--primary)}.ls-lesson-card.ls-locked{opacity:.62;cursor:not-allowed;filter:grayscale(.35)}.ls-lesson-card.ls-locked:hover{transform:none;border-color:var(--border);box-shadow:none}.ls-lesson-card.ls-locked:active{transform:none}.ls-lesson-card.ls-locked:hover .ls-lesson-arrow{transform:none;color:var(--muted)}.ls-lesson-card.ls-locked .ls-lesson-num{background:var(--bg-alt)}.ls-lesson-card.ls-completed{border-color:color-mix(in srgb,var(--success) 35%,transparent)}.ls-lesson-card.ls-completed .ls-lesson-num{background:color-mix(in srgb,var(--success) 14%,transparent);color:var(--success);border-color:color-mix(in srgb,var(--success) 30%,transparent)}.ls-lesson-card.ls-completed .ls-state-ico{color:var(--success)}.ls-lesson-card.ls-current{border-color:color-mix(in srgb,var(--primary) 55%,transparent);box-shadow:var(--glow)}.ls-lesson-card.ls-current .ls-lesson-num{background:color-mix(in srgb,var(--primary) 16%,transparent);color:var(--primary);border-color:color-mix(in srgb,var(--primary) 40%,transparent)}.ls-lesson-card.ls-current .ls-state-ico{color:var(--primary)}.ls-lesson-card.ls-current:after{content:"Joriy dars";position:absolute;top:10px;right:14px;font-size:.68rem;font-weight:700;color:var(--primary);background:var(--primary-soft);border:1px solid color-mix(in srgb,var(--primary) 30%,transparent);padding:2px 8px;border-radius:99px}.ls-viewer-wrap{max-width:min(1280px,100%);width:100%;margin:0 auto;animation:lsFadeUp .4s var(--bounce) both}.ls-viewer-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.ls-back-btn{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:.9rem;color:var(--muted);background:var(--card);border:1px solid var(--border);padding:9px 16px;border-radius:99px;transition:color .2s,border-color .2s,transform .2s}.ls-back-btn:hover{color:var(--text);border-color:var(--border-focus);transform:translate(-3px)}.ls-viewer-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:20px}.ls-viewer-hero{padding:32px 44px 26px;border-bottom:1px solid var(--border);background:linear-gradient(140deg,color-mix(in srgb,var(--ls-color, var(--primary)) 12%,transparent),color-mix(in srgb,var(--ls-color, var(--primary)) 4%,transparent))}.ls-viewer-hero .ls-viewer-crumb{display:flex;align-items:center;gap:10px;font-size:.85rem;color:var(--muted);margin-bottom:12px;flex-wrap:wrap}.ls-viewer-crumb .ls-chip{background:color-mix(in srgb,var(--ls-color, var(--primary)) 14%,transparent);border:1px solid color-mix(in srgb,var(--ls-color, var(--primary)) 30%,transparent);color:var(--text);padding:4px 12px;border-radius:99px;font-weight:600}.ls-viewer-hero h3{font-size:1.5rem;font-weight:800;margin-bottom:10px;line-height:1.3;overflow-wrap:break-word}.ls-viewer-meta{display:flex;gap:16px;flex-wrap:wrap;font-size:.85rem;color:var(--muted)}.ls-viewer-meta span{display:inline-flex;align-items:center;gap:6px}.ls-viewer-body{padding:32px 44px}.ls-placeholder{text-align:center;padding:40px 20px}.ls-placeholder-ico{width:92px;height:92px;margin:0 auto 20px;border-radius:24px;font-size:2.6rem;display:flex;align-items:center;justify-content:center;background:var(--primary-soft);border:1px solid var(--border);animation:lsFloat 3.2s ease-in-out infinite}.ls-placeholder h4{font-size:1.3rem;font-weight:800;margin-bottom:8px}.ls-placeholder p{color:var(--muted);font-size:.95rem;max-width:420px;margin:0 auto;line-height:1.6}.ls-content-block{margin-bottom:22px}.ls-content-block h5{font-size:1rem;font-weight:700;margin-bottom:10px;display:flex;align-items:center;gap:8px}.ls-content-block p{color:var(--text);line-height:1.7;font-size:.95rem;white-space:pre-wrap}.ls-content-code{background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px;font-family:Consolas,Monaco,monospace;font-size:.86rem;line-height:1.6;overflow-x:auto;white-space:pre-wrap;color:var(--secondary)}.ls-content-task{background:color-mix(in srgb,var(--warning) 8%,transparent);border:1px solid color-mix(in srgb,var(--warning) 30%,transparent);border-radius:var(--radius-sm);padding:16px;font-size:.92rem;line-height:1.6}.ls-viewer-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:20px 44px;border-top:1px solid var(--border)}.ls-complete-note{font-size:.78rem;color:var(--muted);max-width:300px}.ls-level-modal-body{display:flex;flex-direction:column;gap:14px;padding:6px 2px 2px}.ls-level-modal-body>p.ls-modal-sub{color:var(--muted);font-size:.92rem}.ls-level-option{display:flex;align-items:center;gap:16px;text-align:left;width:100%;padding:18px;border-radius:var(--radius-sm);background:var(--card-hover);border:1.5px solid var(--border);cursor:pointer;transition:border-color .2s,transform .2s var(--bounce),box-shadow .2s}.ls-level-option:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:var(--glow)}.ls-level-option.selected{border-color:var(--primary);background:var(--primary-soft)}.ls-level-emoji{width:52px;height:52px;border-radius:14px;background:var(--primary-soft);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.ls-level-option h5{font-size:1rem;font-weight:800;margin-bottom:4px}.ls-level-option p{font-size:.85rem;color:var(--muted);line-height:1.5}.ls-level-option .ls-level-check{margin-left:auto;color:var(--primary);font-weight:800;opacity:0;transition:opacity .2s;flex-shrink:0}.ls-level-option.selected .ls-level-check{opacity:1}.ls-diagnostic-progress{color:var(--muted);font-size:.82rem;font-weight:700;margin:14px 0 8px}.ls-diagnostic-question{font-size:1.05rem;font-weight:800;line-height:1.45;margin-bottom:14px}.ls-diagnostic-options{display:grid;gap:8px}.ls-diagnostic-option{display:flex;align-items:center;gap:10px;width:100%;padding:11px 12px;border:1px solid var(--border);border-radius:10px;background:var(--card);color:var(--text);text-align:left;cursor:pointer}.ls-diagnostic-option:hover:not(:disabled){border-color:var(--primary);background:var(--primary-soft)}.ls-diagnostic-option>span{color:var(--primary);font-weight:800;min-width:22px}.ls-diagnostic-feedback{margin-top:12px;color:var(--muted);font-size:.88rem}.ls-locked-body{text-align:center;padding:10px 4px}.ls-locked-ico{width:84px;height:84px;margin:0 auto 16px;border-radius:22px;font-size:2.2rem;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--warning) 12%,transparent);border:1px solid color-mix(in srgb,var(--warning) 30%,transparent);animation:lsShake .5s ease .15s 1}.ls-locked-body h4{font-size:1.2rem;font-weight:800;margin-bottom:8px}.ls-locked-body p{color:var(--muted);font-size:.92rem;line-height:1.6;margin-bottom:14px}.ls-locked-prev{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;color:var(--text);background:var(--primary-soft);border:1px solid var(--border);padding:8px 14px;border-radius:99px;margin-bottom:4px}.ls-settings-current{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--radius-sm);background:var(--primary-soft);border:1px solid var(--border);font-size:.9rem;margin-bottom:16px;flex-wrap:wrap}.ls-settings-danger{margin-top:18px;padding-top:16px;border-top:1px dashed var(--border)}.ls-empty{text-align:center;padding:60px 20px;color:var(--muted)}.ls-empty .ls-empty-ico{font-size:3rem;margin-bottom:12px}.ls-empty h4{color:var(--text);font-weight:700;margin-bottom:6px}.ls-empty p{font-size:.9rem}@keyframes lsFadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes lsFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes lsShake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@media (max-width: 1024px){.ls-courses-grid,.ls-lessons-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.ls-courses-grid,.ls-lessons-grid{grid-template-columns:1fr}.ls-continue{flex-direction:column;align-items:stretch}.ls-continue-progress{max-width:none}.ls-course-head{flex-direction:column;align-items:stretch}.ls-course-head-actions{flex-direction:row;flex-wrap:wrap}.ls-viewer-body,.ls-viewer-footer{padding:20px 18px}.ls-viewer-hero{padding:22px 18px 18px}}.ux-user-wrap{position:relative}.ux-user-dropdown{position:absolute;top:calc(100% + 10px);right:0;min-width:250px;background:var(--card);backdrop-filter:var(--glass);-webkit-backdrop-filter:var(--glass);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:8px;z-index:240;opacity:0;visibility:hidden;transform:translateY(-8px) scale(.98);transform-origin:top right;transition:opacity .25s ease,transform .25s var(--bounce),visibility .25s}.ux-user-dropdown.active{opacity:1;visibility:visible;transform:translateY(0) scale(1)}.ux-user-head{display:flex;align-items:center;gap:12px;padding:10px 12px}.ux-user-meta{display:flex;flex-direction:column;min-width:0}.ux-user-meta strong{font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ux-user-meta span{font-size:.78rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ux-user-sep{height:1px;background:var(--border);margin:6px 8px}.ux-menu-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;color:var(--text);text-align:left;transition:background .2s ease,transform .2s ease,color .2s ease}.ux-menu-item:hover{background:var(--card-hover);transform:translate(3px)}.ux-menu-item:active{transform:scale(.98)}.ux-menu-ico{width:24px;text-align:center;font-size:1.05rem;flex-shrink:0;transition:transform .25s var(--bounce)}.ux-menu-item:hover .ux-menu-ico{transform:scale(1.15)}.ux-menu-danger{color:var(--danger)}.ux-menu-danger:hover{background:color-mix(in srgb,var(--danger) 10%,transparent)}.ux-logout-question{font-size:1.05rem;font-weight:700;margin-bottom:6px}.ux-logout-note{color:var(--muted);font-size:.88rem;line-height:1.55}.btn-success{background:linear-gradient(135deg,var(--success),#34d399);color:#fff}.btn-success:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 22px color-mix(in srgb,var(--success) 35%,transparent)}.btn-success:disabled{opacity:.75;cursor:default}.sidebar .nav-item .nav-icon{display:inline-block;transition:transform .25s var(--bounce)}.sidebar .nav-item:hover .nav-icon{transform:scale(1.18)}.sidebar .nav-item.active .nav-icon{transform:scale(1.1)}.sidebar .nav-item.active:before{content:"";position:absolute;left:0;top:22%;bottom:22%;width:3px;border-radius:99px;background:#fffffff2;animation:lsIndicatorIn .35s var(--bounce) both}@keyframes lsIndicatorIn{0%{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}@keyframes lsPageIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}#page-lessons.active .ls-section-head,#page-lessons.active .ls-courses-grid,#page-lessonCourse.active #lsCourseContainer,#page-lessonView.active #lsLessonContainer{animation:lsPageIn .5s var(--bounce) both}.ls-lesson-card.ls-shake{animation:lsShakeCard .45s ease}@keyframes lsShakeCard{0%,to{transform:translate(0)}20%{transform:translate(-3px)}40%{transform:translate(3px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}.ls-lesson-card.ls-current .ls-lesson-num{animation:lsCurrentPulse 2.8s ease-in-out infinite}@keyframes lsCurrentPulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--primary) 0%,transparent)}50%{box-shadow:0 0 14px 3px color-mix(in srgb,var(--primary) 32%,transparent)}}.ls-course-head .ls-level-chip{animation:lsChipIn .5s var(--bounce) .15s both}@keyframes lsChipIn{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.ls-content-intro{background:var(--primary-soft);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--radius-sm);padding:14px 16px;font-size:.93rem;line-height:1.65;margin-bottom:22px;color:var(--text)}.ls-content-section{margin-bottom:26px;padding-bottom:22px;border-bottom:1px dashed var(--border);animation:lsSectionIn .45s var(--bounce) both}.ls-content-section:last-of-type{border-bottom:none;margin-bottom:8px}.ls-content-sec-title{display:flex;align-items:center;gap:10px;font-size:1.12rem;font-weight:800;margin-bottom:14px}.ls-content-sec-title>span:last-child{overflow-wrap:break-word}.ls-sec-num{width:28px;height:28px;border-radius:9px;background:var(--primary-soft);border:1px solid color-mix(in srgb,var(--primary) 30%,transparent);color:var(--primary);font-size:.85rem;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ls-sec-num.kp{background:color-mix(in srgb,var(--warning) 14%,transparent);border-color:color-mix(in srgb,var(--warning) 35%,transparent);color:var(--warning)}.ls-content-text{font-size:1rem;line-height:1.8;color:var(--text);overflow-wrap:break-word}.ls-inline-code{font-family:Consolas,Monaco,monospace;font-size:.84em;background:var(--bg-alt);border:1px solid var(--border);border-radius:6px;padding:1px 7px;color:var(--secondary);white-space:nowrap}.ls-content-codeblock{margin:18px 0;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border);background:var(--bg-alt);max-width:100%}.ls-code-lang{font-size:.72rem;font-weight:700;letter-spacing:.4px;color:var(--muted);padding:8px 14px;background:color-mix(in srgb,var(--primary) 7%,transparent);border-bottom:1px solid var(--border)}.ls-content-code{margin:0;padding:16px;font-family:Consolas,Monaco,monospace;font-size:.9rem;line-height:1.65;color:var(--text);overflow-x:auto;white-space:pre;-webkit-overflow-scrolling:touch}.ls-content-codenote{padding:12px 14px;font-size:.85rem;line-height:1.6;color:var(--muted);border-top:1px dashed var(--border)}.ls-content-codenote .ls-inline-code{color:var(--secondary)}.ls-content-result{background:color-mix(in srgb,var(--success) 8%,transparent);border:1px solid color-mix(in srgb,var(--success) 25%,transparent);border-radius:var(--radius-sm);padding:12px 14px;font-size:.88rem;line-height:1.6;margin:16px 0}.ls-content-result-label{font-weight:800;color:var(--success)}.ls-content-note{background:color-mix(in srgb,var(--warning) 9%,transparent);border:1px solid color-mix(in srgb,var(--warning) 28%,transparent);border-radius:var(--radius-sm);padding:12px 14px;font-size:.88rem;line-height:1.6;margin-top:16px}.ls-content-keypoints{background:var(--card-hover);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px 18px;margin-top:6px}.ls-content-keypoints ul{list-style:none;display:flex;flex-direction:column;gap:8px}.ls-content-keypoints li{font-size:.9rem;line-height:1.6;padding-left:22px;position:relative}.ls-content-keypoints li:before{content:"✔";position:absolute;left:0;color:var(--success);font-weight:800}@keyframes lsSectionIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.ls-status-badge{font-size:.78rem;font-weight:700;padding:4px 12px;border-radius:99px;white-space:nowrap}.ls-status-badge.reading{color:var(--primary);background:var(--primary-soft);border:1px solid color-mix(in srgb,var(--primary) 30%,transparent)}.ls-status-badge.ready{color:var(--secondary);background:color-mix(in srgb,var(--secondary) 12%,transparent);border:1px solid color-mix(in srgb,var(--secondary) 30%,transparent)}.ls-status-badge.done{color:var(--success);background:color-mix(in srgb,var(--success) 12%,transparent);border:1px solid color-mix(in srgb,var(--success) 30%,transparent)}.ls-read-footer{display:flex;flex-direction:column;align-items:center;gap:12px;padding:20px 44px 26px;border-top:1px solid var(--border);text-align:center}.ls-read-hint{font-size:.9rem;color:var(--muted);line-height:1.55}.ls-read-hint.ok{color:var(--success);font-weight:600}.ls-btn-test{animation:lsPopIn .35s var(--bounce) both}.ls-btn-test:hover{transform:translateY(-2px) scale(1.02)}.ls-btn-test:active{transform:scale(.97)}@keyframes lsPopIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.ls-quiz-progress{display:flex;align-items:center;gap:12px;margin-top:14px;max-width:380px}.ls-quiz-progress .ls-progress-track{height:10px}.ls-quiz-progress-text{font-size:.88rem;font-weight:800;white-space:nowrap}.ls-quiz-questioncard{background:var(--card-hover);border:1px solid var(--border);border-radius:var(--radius-sm);padding:22px}.ls-anim-quiz{animation:lsQuizIn .35s var(--bounce) both}@keyframes lsQuizIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.ls-quiz-qnum{display:inline-block;font-size:.75rem;font-weight:800;color:var(--primary);background:var(--primary-soft);border:1px solid color-mix(in srgb,var(--primary) 30%,transparent);padding:3px 12px;border-radius:99px;margin-bottom:12px}.ls-quiz-question{font-size:1.05rem;font-weight:700;line-height:1.6;margin-bottom:18px;white-space:pre-line}.ls-quiz-options{display:flex;flex-direction:column;gap:10px}.ls-quiz-option{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:13px 15px;border-radius:var(--radius-sm);background:var(--card);border:1.5px solid var(--border);cursor:pointer;font-size:.93rem;color:var(--text);transition:border-color .2s ease,background .2s ease,transform .2s var(--bounce)}.ls-quiz-option:hover:not(:disabled){border-color:var(--primary);background:var(--primary-soft);transform:translate(3px)}.ls-quiz-option:active:not(:disabled){transform:scale(.99)}.ls-quiz-option:disabled{cursor:default}.ls-opt-letter{width:30px;height:30px;border-radius:9px;background:var(--primary-soft);border:1px solid var(--border);color:var(--muted);font-weight:800;font-size:.85rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s,color .2s,border-color .2s}.ls-opt-text{flex:1;line-height:1.5}.ls-opt-mark{font-weight:800;font-size:1.05rem;flex-shrink:0}.ls-opt-mark.ok{color:var(--success)}.ls-opt-mark.bad{color:var(--danger)}.ls-quiz-option.ls-opt-correct{border-color:color-mix(in srgb,var(--success) 60%,transparent);background:color-mix(in srgb,var(--success) 12%,transparent);animation:lsCorrectPulse .45s ease}.ls-quiz-option.ls-opt-correct .ls-opt-letter{background:var(--success);border-color:var(--success);color:#fff}@keyframes lsCorrectPulse{0%{transform:scale(1)}50%{transform:scale(1.015)}to{transform:scale(1)}}.ls-quiz-option.ls-opt-wrong{border-color:color-mix(in srgb,var(--danger) 60%,transparent);background:color-mix(in srgb,var(--danger) 10%,transparent);animation:lsShakeOpt .4s ease}.ls-quiz-option.ls-opt-wrong .ls-opt-letter{background:var(--danger);border-color:var(--danger);color:#fff}@keyframes lsShakeOpt{0%,to{transform:translate(0)}20%{transform:translate(-3px)}40%{transform:translate(3px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}.ls-quiz-actions{margin-top:18px;display:flex;justify-content:flex-end}.ls-quiz-hint{margin-top:16px;text-align:center;font-size:.85rem;color:var(--muted)}.ls-result-hero{text-align:center;padding:34px 30px 28px}.ls-result-hero.pass{background:linear-gradient(140deg,color-mix(in srgb,var(--success) 14%,transparent),transparent 70%)}.ls-result-hero.fail{background:linear-gradient(140deg,color-mix(in srgb,var(--danger) 12%,transparent),transparent 70%)}.ls-result-emoji{font-size:3.4rem;margin-bottom:10px;animation:lsPopIn .5s var(--bounce) both}.ls-result-score{display:flex;align-items:baseline;justify-content:center;gap:14px;margin:14px 0}.ls-result-frac{font-size:1.5rem;font-weight:800;color:var(--muted)}.ls-result-percent{font-size:2.6rem;font-weight:800;background:linear-gradient(120deg,var(--primary),var(--secondary));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:lsPopIn .55s var(--bounce) .1s both}.ls-result-badge{display:inline-block;font-weight:800;font-size:1rem;padding:8px 22px;border-radius:99px;animation:lsPopIn .5s var(--bounce) .2s both}.ls-result-badge.ok{color:var(--success);background:color-mix(in srgb,var(--success) 14%,transparent);border:1px solid color-mix(in srgb,var(--success) 35%,transparent)}.ls-result-badge.bad{color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,transparent);border:1px solid color-mix(in srgb,var(--danger) 35%,transparent)}.ls-result-note{margin-top:12px;font-size:.9rem;color:var(--muted);line-height:1.6}.ls-reward-chips{display:flex;justify-content:center;gap:12px;margin-top:16px;flex-wrap:wrap}.ls-reward-chip{font-weight:800;font-size:.95rem;padding:8px 18px;border-radius:99px;animation:lsChipPop .45s var(--bounce) both}.ls-reward-chip.xp{color:var(--primary);background:var(--primary-soft);border:1px solid color-mix(in srgb,var(--primary) 35%,transparent);animation-delay:.3s}.ls-reward-chip.coin{color:var(--warning);background:color-mix(in srgb,var(--warning) 12%,transparent);border:1px solid color-mix(in srgb,var(--warning) 35%,transparent);animation-delay:.45s}@keyframes lsChipPop{0%{opacity:0;transform:translateY(8px) scale(.85)}to{opacity:1;transform:translateY(0) scale(1)}}.ls-unlock-banner{text-align:center;font-size:.95rem;padding:14px;margin:0 30px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--success) 10%,transparent);border:1px dashed color-mix(in srgb,var(--success) 40%,transparent);color:var(--success);animation:lsPopIn .5s var(--bounce) .35s both}.ls-review-title{font-size:1.05rem;font-weight:800;margin-bottom:14px}.ls-review-item{border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px;margin-bottom:12px;background:var(--card)}.ls-review-item.wrong{border-color:color-mix(in srgb,var(--danger) 35%,transparent);background:color-mix(in srgb,var(--danger) 5%,transparent)}.ls-review-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;font-size:.8rem;font-weight:700}.ls-review-head .ok{color:var(--success)}.ls-review-head .bad{color:var(--danger)}.ls-review-num{color:var(--muted)}.ls-review-q{font-weight:700;font-size:.95rem;line-height:1.55;margin-bottom:8px;white-space:pre-line}.ls-review-line{font-size:.88rem;color:var(--muted);margin-bottom:4px;line-height:1.5}.ls-review-line.good{color:var(--success)}.ls-review-expl{margin-top:10px;padding:10px 12px;border-radius:9px;background:var(--primary-soft);border:1px solid var(--border);font-size:.87rem;line-height:1.6}.ls-result-actions{flex-wrap:wrap;justify-content:center}@media (prefers-reduced-motion: reduce){.ls-course-card,.ls-lesson-card,.ls-continue,.ls-course-head,.ls-viewer-wrap,.ls-section-head,.ls-courses-grid,#lsCourseContainer,#lsLessonContainer,.ls-level-chip,.ls-level-option,.ls-locked-ico,.ls-placeholder-ico,.ux-user-dropdown,.ux-menu-item,.ux-menu-ico,.ls-btn-arrow,.btn.ls-btn-continue,.sidebar .nav-item .nav-icon,.sidebar .nav-item.active:before,.ls-content-section,.ls-btn-test,.ls-anim-quiz,.ls-result-emoji,.ls-result-percent,.ls-result-badge,.ls-reward-chip,.ls-unlock-banner,.ls-quiz-option{animation:none!important;transition:none!important}.ls-progress-track span,.ls-continue-bar span,.ls-quiz-progress .ls-progress-track span{transition:none!important}.confetti-particle{display:none!important}}@media (max-width: 480px){.ls-viewer-body{padding:18px 14px}.ls-viewer-hero{padding:18px 14px 15px}.ls-viewer-footer,.ls-read-footer{padding:14px 14px 18px}.ls-viewer-hero h3{font-size:1.22rem}.ls-back-btn{padding:8px 13px;font-size:.82rem;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ls-content-text{font-size:.95rem}.ls-content-sec-title{font-size:1.02rem}.ls-content-code{font-size:.78rem;padding:12px}.ls-inline-code{white-space:normal;word-break:break-word}.ls-content-codenote,.ls-content-result,.ls-content-note{padding:11px 12px;font-size:.85rem}.ls-content-keypoints{padding:13px 14px}.ls-quiz-questioncard{padding:16px 14px}.ls-quiz-question{font-size:1rem;overflow-wrap:break-word}.ls-quiz-option{font-size:.9rem;padding:12px}.ls-quiz-option .ls-opt-text{overflow-wrap:break-word;min-width:0}.ls-complete-note{max-width:100%}}.topbar{gap:10px}.topbar-left{min-width:0;flex:1 1 auto}.topbar-left h2{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-right{flex-shrink:0}#page-lessons,#page-lessonCourse,#page-lessonView,#lsCourseContainer,#lsLessonContainer{width:100%;max-width:100%;min-width:0}.ls-courses-grid,.ls-lessons-grid,.ls-cpath{max-width:100%}.ls-courses-grid>*,.ls-lessons-grid>*,.ls-cpath>*{min-width:0;max-width:100%}.ls-viewer-hero{border-top-left-radius:calc(var(--radius) - 1px);border-top-right-radius:calc(var(--radius) - 1px)}.ls-viewer-footer,.ls-read-footer{border-bottom-left-radius:calc(var(--radius) - 1px);border-bottom-right-radius:calc(var(--radius) - 1px)}@supports (min-height: 100svh){.main{min-height:100svh}}.topbar{padding-top:calc(16px + env(safe-area-inset-top,0px));padding-left:calc(24px + env(safe-area-inset-left,0px));padding-right:calc(24px + env(safe-area-inset-right,0px))}.content{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}@media (max-width: 480px){.topbar{padding-top:calc(12px + env(safe-area-inset-top,0px));padding-left:calc(14px + env(safe-area-inset-left,0px));padding-right:calc(14px + env(safe-area-inset-right,0px))}.content{padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}}.ls-continue:after,.ls-course-card:before,.ls-lesson-card.ls-current:after{max-width:100%}#lessonLockedModal,#lessonLevelModal,#lessonSettingsModal{overflow-y:auto}.ls-exercises{margin:26px 0 8px;padding:18px;border:1px solid color-mix(in srgb,var(--primary) 30%,transparent);border-radius:var(--radius);background:color-mix(in srgb,var(--primary) 5%,transparent);box-shadow:var(--glow)}.ls-ex-head{font-size:1.05rem;font-weight:700;margin-bottom:10px}.ls-ex-sub{color:var(--muted);font-weight:400;font-size:.85rem}.ls-ex-tracker{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.ls-ex-chip{padding:6px 12px;border-radius:999px;font-size:.82rem;border:1px solid var(--border);background:var(--bg-alt);color:var(--muted);white-space:nowrap}.ls-ex-chip.done{border-color:color-mix(in srgb,var(--success) 50%,transparent);color:var(--success);background:color-mix(in srgb,var(--success) 10%,transparent)}.ls-ex-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px;margin-bottom:16px}.ls-ex-card.done{border-color:color-mix(in srgb,var(--success) 35%,transparent)}.ls-ex-title{font-weight:700;margin-bottom:8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ls-ex-done-badge{color:var(--success)}.ls-ex-instruction{font-size:.92rem;color:var(--text);margin-bottom:12px;line-height:1.55;overflow-wrap:anywhere}.ls-ex-code{width:100%;min-height:160px;resize:vertical;padding:12px;border-radius:var(--radius-sm);border:1px solid var(--border-focus);background:var(--bg-alt);color:var(--text);font-family:Cascadia Code,Consolas,monospace;font-size:.85rem;line-height:1.5;-moz-tab-size:2;tab-size:2;overflow-x:auto;white-space:pre}.ls-ex-code:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft)}.ls-ex-code-ro{min-height:auto;resize:none;-webkit-user-select:text;user-select:text}.ls-ex-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.ls-ex-actions .btn{min-height:42px}.ls-ex-preview-wrap{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.ls-ex-preview-label{font-size:.78rem;color:var(--muted);padding:6px 10px;background:var(--bg-alt);border-bottom:1px solid var(--border)}.ls-ex-preview{width:100%;height:140px;border:none;background:#fff;display:block}.ls-ex-feedback{margin-top:10px;padding:10px 14px;border-radius:var(--radius-sm);font-size:.9rem;line-height:1.5;overflow-wrap:anywhere}.ls-ex-feedback.ok{background:color-mix(in srgb,var(--success) 12%,transparent);border:1px solid color-mix(in srgb,var(--success) 40%,transparent);color:var(--success);font-weight:600}.ls-ex-feedback.bad{background:color-mix(in srgb,var(--danger) 10%,transparent);border:1px solid color-mix(in srgb,var(--danger) 40%,transparent);color:var(--danger)}.ls-ex-count{font-weight:700;color:var(--accent, #7dd3fc);padding:6px 12px;border-radius:999px;border:1px solid var(--border);background:var(--card);white-space:nowrap}.ls-ex-status{font-size:.85rem;color:var(--warning);padding:6px 12px;border-radius:999px;border:1px dashed color-mix(in srgb,var(--warning) 40%,transparent)}.ls-ex-status.ok{color:var(--success);border:1px solid color-mix(in srgb,var(--success) 40%,transparent)}.ls-ex-hint{margin-top:10px;padding:10px 14px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--warning) 8%,transparent);border:1px dashed color-mix(in srgb,var(--warning) 35%,transparent);font-size:.9rem}.ls-livedemo{margin:14px 0;padding:14px;border-radius:var(--radius-sm);background:var(--card);border:1px solid var(--border)}.ls-livedemo-head{font-weight:700;margin-bottom:10px;font-size:.92rem}@media (max-width: 640px){.ls-livedemo{padding:10px}}.ls-ex-explain{margin-top:8px;padding:10px 14px;border-radius:var(--radius-sm);background:var(--card);border:1px solid var(--border);font-size:.9rem;color:var(--muted);overflow-wrap:anywhere}@media (max-width: 640px){.ls-ex-count,.ls-ex-status{font-size:.78rem;padding:5px 10px}}.ls-read-hint.locked{color:var(--warning);background:color-mix(in srgb,var(--warning) 10%,transparent);border:1px solid color-mix(in srgb,var(--warning) 35%,transparent);border-radius:var(--radius-sm);padding:10px 14px}.ls-open-playground{margin-top:10px;padding:10px 16px;min-height:42px;border-radius:var(--radius-sm);border:1px solid color-mix(in srgb,var(--secondary) 50%,transparent);background:color-mix(in srgb,var(--secondary) 12%,transparent);color:var(--secondary);font-weight:700;font-size:.85rem;letter-spacing:.3px;transition:background var(--transition),transform var(--transition),box-shadow var(--transition)}.ls-open-playground:hover{background:color-mix(in srgb,var(--secondary) 22%,transparent);box-shadow:var(--glow-cyan);transform:translateY(-1px)}.ls-open-playground:active{transform:translateY(0) scale(.98)}.ls-dnd-pool{display:flex;flex-wrap:wrap;gap:8px;min-height:52px;padding:10px;border:1px dashed var(--border);border-radius:var(--radius-sm);background:var(--bg-alt)}.ls-dnd-chip{display:inline-block;padding:8px 12px;min-height:40px;border-radius:var(--radius-sm);border:1px solid color-mix(in srgb,var(--primary) 40%,transparent);background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--text);font-family:Consolas,monospace;font-size:.82rem;cursor:grab;user-select:none;-webkit-user-select:none;touch-action:manipulation;transition:transform var(--transition),box-shadow var(--transition);overflow-wrap:anywhere}.ls-dnd-chip:hover{transform:translateY(-2px);box-shadow:var(--glow)}.ls-dnd-chip.selected{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 28%,transparent);box-shadow:var(--glow)}.ls-dnd-chip:active{cursor:grabbing}.ls-dnd-empty{color:var(--muted);font-size:.85rem}.ls-dnd-zone{margin-top:12px;min-height:90px;padding:10px;border:2px dashed color-mix(in srgb,var(--primary) 35%,transparent);border-radius:var(--radius-sm);transition:border-color var(--transition),background var(--transition)}.ls-dnd-zone.dragover{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,transparent)}.ls-dnd-placeholder,.ls-dnd-hint{color:var(--muted);font-size:.85rem;padding:8px 4px}.ls-dnd-order{display:flex;flex-direction:column;gap:6px}.ls-dnd-slot{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-alt);font-family:Consolas,monospace;font-size:.82rem;cursor:pointer;overflow-wrap:anywhere}.ls-dnd-num{flex:0 0 22px;height:22px;display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--primary) 16%,transparent);color:var(--primary);font-size:.72rem}.ls-dnd-remove{margin-left:auto;flex:0 0 30px;height:30px;border-radius:8px;border:1px solid var(--border);color:var(--danger);background:transparent;font-size:1rem;line-height:1;cursor:pointer}.ls-dnd-remove:hover{background:color-mix(in srgb,var(--danger) 14%,transparent)}.ls-dnd-chip.dragging{opacity:.45;cursor:grabbing}.ls-dnd-chip.selected{outline:2px solid var(--primary)}.ls-dnd-slot{transition:border-color var(--transition),background var(--transition),box-shadow var(--transition);min-height:40px}.ls-dnd-slot.over{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 14%,transparent);box-shadow:var(--glow)}.ls-dnd-slot-empty{border:1px dashed color-mix(in srgb,var(--primary) 45%,transparent);background:transparent;color:var(--muted);min-height:44px}.ls-dnd-slot-empty.over{background:color-mix(in srgb,var(--primary) 10%,transparent);color:var(--text)}.ls-dnd-slot.just-placed{animation:ls-dnd-pop .25s ease}@keyframes ls-dnd-pop{0%{transform:scale(.97);opacity:.5}to{transform:scale(1);opacity:1}}.ls-dnd-zone.complete{border-style:solid;border-color:color-mix(in srgb,var(--ok, #22c55e) 45%,transparent)}@media (prefers-reduced-motion: reduce){.ls-dnd-slot.just-placed{animation:none}}.ls-ex-actions .btn{min-height:44px;min-width:44px}.ls-dnd-hint-box{flex-basis:100%;margin:2px 4px 8px;padding:8px 12px;border:1px solid color-mix(in srgb,var(--secondary, #06b6d4) 35%,transparent);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--secondary, #06b6d4) 7%,transparent);font-size:.82rem;color:var(--muted)}.ls-dnd-hint-tree{margin:6px 0;font-family:Consolas,monospace;font-size:.78rem;line-height:1.45;color:var(--text);white-space:pre;overflow-x:auto}.ls-dnd-hint-text code{font-size:.78rem}.ls-dnd-slot:hover{border-color:color-mix(in srgb,var(--primary) 60%,transparent)}.ls-dnd-slot.correct{border-color:var(--success, #10b981);background:color-mix(in srgb,var(--success, #10b981) 12%,transparent)}.ls-dnd-slot.correct .ls-dnd-num{background:var(--success, #10b981);color:#fff}.ls-dnd-slot.wrong{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,transparent);animation:ls-dnd-wrong .4s ease}.ls-dnd-slot.wrong .ls-dnd-num{background:var(--danger);color:#fff}@keyframes ls-dnd-wrong{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.ls-dnd-zone.success{border-style:solid;border-color:var(--success, #10b981);animation:ls-dnd-success .7s ease}@keyframes ls-dnd-success{0%{box-shadow:0 0 color-mix(in srgb,var(--success, #10b981) 55%,transparent)}60%{box-shadow:0 0 0 14px color-mix(in srgb,var(--success, #10b981) 0%,transparent)}to{box-shadow:0 0 0 0 transparent}}@media (prefers-reduced-motion: reduce){.ls-dnd-slot.wrong,.ls-dnd-zone.success{animation:none}}.ls-review-cards{margin:14px 0}.ls-review-cards-title{font-weight:700;margin-bottom:8px;color:var(--text)}.ls-review-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px}.ls-review-card{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-alt);animation:ls-fade-up .35s ease both}.ls-review-card code{color:var(--secondary);font-size:.8rem}.ls-review-card span{color:var(--muted);font-size:.78rem}.ls-img-preview{margin:12px 0}.ls-img-preview-frame{width:100%;min-height:220px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff}.ls-img-caption{color:var(--muted);font-size:.8rem;padding:6px 2px}.ls-img-failed{margin-top:6px;padding:8px 12px;border-radius:var(--radius-sm);border:1px solid color-mix(in srgb,var(--danger) 45%,transparent);background:color-mix(in srgb,var(--danger) 10%,transparent);color:var(--danger);font-size:.82rem}.ls-attr-demo{display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:12px;margin:10px 0}.ls-attr-controls{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-alt)}.ls-attr-row{display:flex;align-items:center;gap:8px}.ls-attr-row span{flex:0 0 48px;font-family:Consolas,monospace;font-size:.78rem;color:var(--secondary)}.ls-attr-row input{flex:1;min-width:0;min-height:38px;padding:6px 10px;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-family:Consolas,monospace;font-size:.78rem}.ls-attr-row input:focus{outline:none;border-color:var(--border-focus)}.ls-attr-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;min-height:40px;padding:4px 6px;border-radius:8px;transition:background .2s}.ls-attr-toggle:hover{background:color-mix(in srgb,var(--primary) 12%,transparent)}.ls-attr-toggle input[type=checkbox]{flex:0 0 auto;width:20px;height:20px;min-height:0;padding:0;margin:0;accent-color:var(--primary);cursor:pointer}.ls-attr-toggle .ls-attr-toggle-label{flex:1;display:flex;justify-content:space-between;align-items:center;font-family:Consolas,monospace;font-size:.8rem;color:var(--text);font-weight:700}.ls-attr-toggle .ls-attr-state{flex:0 0 auto;font-size:.72rem;font-weight:800}.ls-alert-demo{margin-left:8px}.ls-attr-preview-wrap{min-width:0}.ls-attr-code{font-family:Consolas,monospace;font-size:.75rem;color:var(--secondary);padding:8px 10px;border:1px dashed var(--border);border-radius:var(--radius-sm);white-space:pre;overflow-x:auto;margin-bottom:8px}.ls-attr-preview{width:100%;min-height:240px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#0b0f1d}.ls-motivation{margin:18px 0;padding:18px 20px;border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--primary) 45%,transparent);background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 14%,transparent),color-mix(in srgb,var(--secondary) 10%,transparent));animation:ls-fade-up .4s ease both}.ls-motivation-title{font-weight:800;font-size:1rem;margin-bottom:8px}.ls-motivation-text{color:var(--text);font-size:.9rem;line-height:1.6}.ls-return-lesson-btn{margin-bottom:8px}@media (max-width: 640px){.ls-attr-demo{grid-template-columns:1fr}.ls-review-cards-grid{grid-template-columns:1fr 1fr}}@media (max-width: 380px){.ls-review-cards-grid{grid-template-columns:1fr}}@keyframes ls-fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.ls-review-card,.ls-motivation{animation:none}}.ls-ex-options{display:grid;grid-template-columns:1fr;gap:8px;margin-top:12px}.ls-ex-option{text-align:left;padding:12px 14px;min-height:44px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-alt);color:var(--text);font-size:.9rem;transition:border-color var(--transition),background var(--transition),transform var(--transition);overflow-wrap:anywhere}.ls-ex-option:hover{border-color:var(--primary);transform:translate(2px)}.ls-ex-option.correct{border-color:var(--success);background:color-mix(in srgb,var(--success) 14%,transparent);color:var(--success);font-weight:600}.ls-ex-option.wrong{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,transparent)}.ls-unlock-banner.master{border-color:color-mix(in srgb,#f59e0b 55%,transparent);background:color-mix(in srgb,#f59e0b 12%,transparent);color:#fbbf24;box-shadow:0 0 25px #f59e0b26}@media (max-width: 640px){.ls-exercises,.ls-ex-card{padding:12px}.ls-ex-code{font-size:.78rem;min-height:140px}.ls-ex-preview{height:120px}.ls-dnd-chip{font-size:.76rem;padding:8px 10px}.ls-ex-actions .btn{flex:1 1 auto}.ls-open-playground{width:100%}}.ls-td-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.ls-td-tab{padding:10px 18px;min-height:44px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-alt);color:var(--muted);font-weight:600;font-size:.88rem;transition:all var(--transition)}.ls-td-tab.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary);box-shadow:var(--glow)}.ls-td-panels{position:relative}.ls-td-panel{display:none}.ls-td-panel.active{display:block}.ls-td-frame{width:100%;min-height:260px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff}.ls-games{margin:22px 0;display:flex;flex-direction:column;gap:12px}.ls-games-title{font-size:1.05rem;font-weight:800;color:var(--text);margin-bottom:2px}.ls-game-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:14px 16px;transition:border-color var(--transition),box-shadow var(--transition)}.ls-game-card:hover{border-color:var(--border-focus)}.ls-game-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ls-game-ico{font-size:1.4rem}.ls-game-name{font-weight:800}.ls-game-desc{color:var(--muted);font-size:.84rem;flex:1 1 160px}.ls-game-badge{margin-left:auto;font-size:.78rem;font-weight:700;padding:5px 12px;border-radius:999px;border:1px solid color-mix(in srgb,var(--warning) 50%,transparent);color:var(--warning);background:color-mix(in srgb,var(--warning) 10%,transparent);white-space:nowrap}.ls-game-badge.done{border-color:color-mix(in srgb,var(--success) 50%,transparent);color:var(--success);background:color-mix(in srgb,var(--success) 10%,transparent)}.ls-game-body{margin-top:12px}.ls-game-note{color:var(--muted);font-size:.86rem;margin:6px 0}.ls-game-win{padding:14px;border-radius:var(--radius-sm);text-align:center;font-weight:700;border:1px solid color-mix(in srgb,var(--success) 50%,transparent);background:color-mix(in srgb,var(--success) 10%,transparent);color:var(--success);margin-bottom:8px}.ls-game-win.hot{box-shadow:0 0 25px #f59e0b40}.ls-gh-round{color:var(--muted);font-size:.8rem;margin-bottom:4px}.ls-gh-q{font-weight:700;margin-bottom:8px}.ls-gh-code{background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;font-size:.88rem;overflow-x:auto;margin-bottom:10px}.ls-gh-gaps{display:flex;gap:8px;flex-wrap:wrap}.ls-gh-gap{min-height:44px;padding:8px 14px;border-radius:var(--radius-sm);border:1px dashed var(--border-focus);background:var(--primary-soft);color:var(--text);font-size:.84rem;transition:all var(--transition)}.ls-gh-gap:hover{border-color:var(--primary)}.ls-gh-gap.correct{border-style:solid;border-color:var(--success);color:var(--success);background:color-mix(in srgb,var(--success) 12%,transparent)}.ls-gh-gap.wrong{border-color:var(--danger);color:var(--danger)}.ls-mem-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.ls-mem-card{min-height:64px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-alt);color:var(--muted);font-weight:700;font-size:.82rem;display:flex;align-items:center;justify-content:center;padding:6px;text-align:center;transition:all var(--transition);overflow-wrap:anywhere}.ls-mem-card:hover{border-color:var(--border-focus)}.ls-mem-card.open{border-color:var(--primary);color:var(--text);background:var(--primary-soft)}.ls-mem-card.matched{border-color:var(--success);color:var(--success);background:color-mix(in srgb,var(--success) 10%,transparent);opacity:.85}.ls-mem-card code{font-size:.82rem}.ls-mem-fb{margin-top:10px}.ls-run-track{display:flex;gap:6px;align-items:center;margin-bottom:10px;overflow-x:auto;padding:4px 0}.ls-run-cell{flex:0 0 auto;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border);background:var(--bg-alt);font-size:1rem}.ls-run-cell.here{border-color:var(--primary);box-shadow:var(--glow)}.ls-run-cell.finish{border-color:color-mix(in srgb,var(--success) 55%,transparent)}.ls-run-q{font-weight:700;margin:8px 0}.ls-run-opts{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ls-run-opt{min-height:48px;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-alt);color:var(--text);font-size:.88rem;text-align:left;transition:all var(--transition);overflow-wrap:anywhere}.ls-run-opt:hover{border-color:var(--primary)}.ls-run-fb{margin-top:10px;min-height:10px}.ls-sixty-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.ls-sixty-timer{font-weight:800;font-size:1.15rem;color:var(--warning)}.ls-sixty-score{font-weight:700;color:var(--success)}.ls-streak-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:6px}.ls-streak-flames{font-size:1.3rem;letter-spacing:2px}.ls-streak-flames.hot{text-shadow:0 0 18px rgba(245,158,11,.8);animation:lsStreakPulse 1s ease-in-out infinite alternate}@keyframes lsStreakPulse{0%{transform:scale(1)}to{transform:scale(1.12)}}.ls-streak-count,.ls-streak-best{font-size:.88rem;color:var(--muted)}.ls-duel-score{display:flex;align-items:center;justify-content:center;gap:14px;font-weight:800}.ls-duel-vs{color:var(--danger);font-size:.9rem}.ls-duel-round{color:var(--muted);font-size:.82rem;text-align:center;margin:4px 0 10px}.ls-duel-full{margin-top:10px}@media (prefers-reduced-motion: reduce){.ls-streak-flames.hot{animation:none}}.ls-project{margin:22px 0}.ls-project-hero{border:1px solid var(--border-focus);border-radius:var(--radius);padding:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 14%,transparent),color-mix(in srgb,var(--secondary) 10%,transparent));margin-bottom:14px}.ls-project-title{font-size:1.25rem;font-weight:900}.ls-project-sub{color:var(--muted);font-weight:600;margin-bottom:8px}.ls-project-intro{font-size:.9rem}.ls-project-steps{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}.ls-step-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);padding:12px 14px}.ls-step-head{display:flex;align-items:center;gap:10px;margin-bottom:4px}.ls-step-num{width:26px;height:26px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.8rem;flex:0 0 auto}.ls-step-title{font-weight:800}.ls-step-note{color:var(--muted);font-size:.85rem;margin-bottom:8px}.ls-step-code{background:var(--bg-alt);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:.78rem;overflow-x:auto;margin-bottom:8px;max-height:220px}.ls-step-code.css{border-left:3px solid #2965f1}.ls-step-code.js{border-left:3px solid #f7df1e}.ls-project-checklist-wrap{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);padding:14px 16px}.ls-checklist-title{font-weight:800;margin-bottom:10px}.ls-project-progress{height:10px}.ls-project-pct{font-weight:800;color:var(--primary);margin:6px 0 10px}.ls-checklist{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px}.ls-check-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--bg-alt);font-size:.84rem;color:var(--muted)}.ls-check-item.done{border-color:color-mix(in srgb,var(--success) 45%,transparent);color:var(--success)}#lsProjectParty{margin-top:10px;padding:10px;border-radius:var(--radius-sm);border:1px solid color-mix(in srgb,var(--success) 50%,transparent);background:color-mix(in srgb,var(--success) 8%,transparent);color:var(--success)}.ls-project-congrats p{margin:4px 0;font-size:.95rem}.ls-project-hero-pass{box-shadow:0 0 35px #10b9812e}@media (max-width: 640px){.ls-td-frame{min-height:200px}.ls-td-tab{flex:1 1 100%}.ls-game-head{align-items:flex-start}.ls-game-badge{margin-left:0}.ls-run-opts{grid-template-columns:1fr}.ls-run-cell{width:32px;height:32px;font-size:.85rem}.ls-mem-grid{grid-template-columns:repeat(3,1fr)}.ls-checklist{grid-template-columns:1fr}.ls-project-hero{padding:14px}.ls-step-code{max-height:180px;font-size:.72rem}}@media (max-width: 380px){.ls-mem-grid{grid-template-columns:repeat(2,1fr)}.ls-run-cell{width:28px;height:28px;font-size:.75rem}}.ls-games-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.ls-games-progress{font-size:.95em;font-weight:700;background:#6366f126;color:#6366f1;padding:4px 12px;border-radius:999px;white-space:nowrap}.ls-games-bar{height:8px;border-radius:999px;background:#94a3b840;overflow:hidden;margin:8px 0 16px}.ls-games-bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#6366f1,#22c55e);transition:width .4s ease}.ls-game-card.locked{opacity:.6;pointer-events:none;filter:grayscale(.6)}.ls-game-card.locked .ls-game-body{padding:0}.ls-game-locked-note{padding:14px 16px;border-radius:10px;background:#94a3b81f;border:1px dashed rgba(148,163,184,.5);color:#94a3b8;font-weight:600;text-align:center}.ls-game-replay-slot{margin-top:10px}.ls-game-stats{color:var(--muted);font-size:.84rem;font-weight:600;margin:8px 0;display:flex;flex-wrap:wrap;gap:6px 14px}.ls-game-after{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:10px}.ls-game-replay-note{margin-top:8px;font-weight:700;color:var(--success);font-size:.88rem}.ls-game-replay-btn{white-space:nowrap}.ls-review-quiz{margin:14px 0;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card)}.ls-rq-sub{color:var(--muted);font-size:13px;margin-top:4px}.ls-rq-progress{display:inline-block;font-size:12px;font-weight:600;color:var(--secondary);background:var(--primary-soft);border-radius:999px;padding:4px 12px;margin:8px 0}.ls-run-opt.correct{border-color:var(--success)!important;box-shadow:0 0 12px #10b98159}.ls-run-opt.wrong{border-color:var(--danger)!important;box-shadow:0 0 12px #ef44444d}.ls-wiz-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0}.ls-wiz-label{font-weight:600;font-size:13px;color:var(--muted);min-width:84px}.ls-wiz-btn{padding:8px 14px;border-radius:999px;border:1px solid var(--border);background:var(--card-hover);font-size:14px;font-weight:600;color:var(--text);transition:var(--transition)}.ls-wiz-btn.sel{border-color:var(--secondary);box-shadow:var(--glow-cyan)}.ls-game-body .ls-content-code{margin-top:10px;overflow-x:auto;max-width:100%}.ls-game-body .ls-open-playground{margin-top:10px}@media (max-width: 430px){.ls-wiz-row{flex-direction:column;align-items:flex-start}.ls-wiz-label{min-width:0}.ls-td-frame{min-height:110px}}.ls-review-quiz{background:var(--card, #131a2e);border:1px solid rgba(99,102,241,.35);border-radius:14px;padding:14px;margin:14px 0}.ls-rq-title{font-weight:700;font-size:15px}.ls-rq-sub{color:#94a3b8;font-size:13px;margin:4px 0 10px}.ls-rq-step{display:inline-block;font-size:12px;font-weight:700;color:#6366f1;background:#6366f11f;border-radius:999px;padding:3px 10px;margin-bottom:8px}.ls-rq-q{font-size:15px;margin-bottom:10px}.ls-rq-opts{display:flex;flex-direction:column;gap:8px}.ls-rq-opts .ls-run-opt{width:100%;text-align:left}.ls-rq-fb{margin-top:10px}.ls-rq-fb:empty{display:none}.ls-run-q{font-size:15px;margin-bottom:10px}.ls-run-opts{display:flex;flex-direction:column;gap:8px}.ls-run-opt{width:100%;min-height:48px;padding:10px 14px;text-align:left;border-radius:10px;border:1px solid rgba(148,163,184,.25);background:#94a3b80f;color:inherit;font-size:14px;cursor:pointer}.ls-run-opt:hover{border-color:#6366f1}.ls-run-fb{margin-top:10px}.ls-run-fb:empty{display:none}.ls-cstab-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.ls-cstab{flex:1 1 140px;min-height:44px;padding:10px 12px;border-radius:10px;border:1px solid rgba(148,163,184,.25);background:transparent;color:inherit;font-size:14px;font-weight:600;cursor:pointer}.ls-cstab.active{border-color:#6366f1;background:#6366f126}.ls-cstab-panels{display:block}.ls-cstab-panel{display:none}.ls-cstab-panel.active{display:block}.ls-cstab-panel .ls-img-preview-frame{width:100%;min-height:120px;border:1px solid rgba(148,163,184,.2);border-radius:10px;background:#0b0f1d}.ls-cstab-code{margin:10px 0 0;padding:10px 12px;border-radius:10px;background:#0b0f1d;color:#a5b4fc;font-size:12.5px;line-height:1.55;overflow-x:auto;white-space:pre}.ls-wiz-row{display:flex;flex-direction:column;gap:12px}.ls-wiz-label{font-size:13px;font-weight:700;color:#94a3b8;margin-bottom:6px}.ls-wiz-btns{display:flex;flex-wrap:wrap;gap:8px}.ls-wiz-btn{min-height:44px;padding:10px 14px;border-radius:10px;border:2px solid rgba(148,163,184,.3);background:transparent;color:inherit;font-size:14px;font-weight:600;cursor:pointer}.ls-wiz-btn.active{border-color:#6366f1;background:#6366f126}.ls-wiz-preview{margin-top:12px}.ls-wiz-preview .ls-img-preview-frame{width:100%;min-height:120px;border:1px solid rgba(148,163,184,.2);border-radius:10px;background:#0b0f1d}@media (min-width: 720px){.ls-review-quiz,.ls-rq-opts{max-width:640px}.ls-wiz-row{flex-direction:row}.ls-wiz-group{flex:1}}.ls-section-head h3{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;margin-bottom:6px}.ls-section-head p{font-size:.95rem;max-width:640px;line-height:1.5}.ls-topics-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:1.08rem;font-weight:800;margin:4px 0 16px}.ls-topics-count{font-size:.82rem;font-weight:600;color:var(--muted)}.ls-overall{position:relative;display:flex;align-items:center;gap:22px;flex-wrap:wrap;padding:22px 26px;border-radius:28px;background:linear-gradient(135deg,var(--primary),color-mix(in srgb,var(--secondary) 58%,var(--primary)));color:#fff;border:1px solid color-mix(in srgb,var(--primary) 45%,transparent);margin:0 0 18px;box-shadow:0 16px 40px color-mix(in srgb,var(--primary) 24%,transparent);animation:lsFadeUp .45s var(--bounce) both;overflow:hidden;max-width:100%}.ls-overall-info{flex:1;min-width:200px;position:relative;z-index:1}.ls-overall-label{display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#ffffffc7;margin-bottom:4px}.ls-overall-pct{font-size:2.4rem;font-weight:800;line-height:1.05;color:#fff;letter-spacing:-.02em}.ls-overall-pct small{font-size:.5em;margin-left:2px;font-weight:700}.ls-overall-stats{color:#ffffffd1;font-size:.86rem;margin-top:4px}.ls-overall-stats strong{color:#fff}.ls-overall-motive{margin-top:6px;font-size:.86rem;font-weight:600;color:#ffffffeb}.ls-overall-ring-wrap{position:relative;width:104px;height:104px;flex-shrink:0;z-index:1}.ls-overall-ring{width:100%;height:100%;transform:rotate(-90deg);display:block}.ls-ring-bg{fill:none;stroke:#ffffff40;stroke-width:8}.ls-ring-fill{fill:none;stroke:#fff;stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset 1s var(--bounce)}.ls-ring-pct{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:800;color:#fff}.ls-ring-pct small{font-size:.68em;margin-left:1px;font-weight:700;color:#fffc}.ls-overall-robot{flex-shrink:0;display:flex;align-items:center;justify-content:center;position:relative;z-index:1}.ls-overall-robot .mascot{--mascot-size: 64px}.ls-course-state{position:relative;width:46px;height:46px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.ls-course-state svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;transform:rotate(-90deg)}.ls-state-ring-bg{fill:none;stroke:color-mix(in srgb,var(--ls-color, var(--primary)) 16%,transparent);stroke-width:4.5}.ls-state-ring-fill{fill:none;stroke:var(--ls-color, var(--primary));stroke-width:4.5;stroke-linecap:round;transition:stroke-dashoffset .9s var(--bounce)}.ls-state-ring-pct{position:relative;font-size:.64rem;font-weight:800;color:var(--text)}.ls-state-idle .ls-state-ring-pct{color:var(--muted)}.ls-state-done{border-radius:50%;background:var(--success);color:#fff;font-size:1.25rem;font-weight:800;box-shadow:0 4px 14px color-mix(in srgb,var(--success) 35%,transparent);animation:lsStatePop .4s var(--bounce) both}@keyframes lsStatePop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}.ls-status{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:700;padding:3px 9px;border-radius:99px;border:1px solid transparent;white-space:nowrap}.ls-status-done{color:var(--success);background:color-mix(in srgb,var(--success) 12%,transparent);border-color:color-mix(in srgb,var(--success) 30%,transparent)}.ls-status-active{color:var(--secondary);background:color-mix(in srgb,var(--secondary) 12%,transparent);border-color:color-mix(in srgb,var(--secondary) 30%,transparent)}.ls-status-idle{color:var(--muted);background:color-mix(in srgb,var(--muted) 10%,transparent);border-color:color-mix(in srgb,var(--muted) 24%,transparent)}.ls-course-finished{border-color:color-mix(in srgb,var(--success) 32%,transparent)}@media (max-width: 1024px){.ls-overall{padding:20px 22px;gap:18px}.ls-overall-ring-wrap{width:92px;height:92px}.ls-overall-pct{font-size:2rem}}@media (max-width: 640px){.ls-section-head{margin-bottom:16px}.ls-section-head h3{font-size:1.35rem}.ls-overall{padding:18px 16px;gap:14px;margin-bottom:14px;border-radius:24px}.ls-overall-ring-wrap{width:80px;height:80px}.ls-overall-pct{font-size:1.75rem}.ls-overall-info{min-width:0;flex-basis:calc(100% - 94px)}.ls-overall-robot{display:none}.ls-continue{flex-direction:column;align-items:stretch;gap:14px}.ls-continue-progress{max-width:none;min-width:0}.ls-continue .ls-btn-continue,.ls-continue .btn.ls-btn-continue{width:100%;justify-content:center}.ls-continue-head{margin-bottom:8px}.ls-topics-head{margin:0 0 12px;font-size:1rem}.ls-course-card{gap:12px;padding:12px 14px;border-radius:22px}.ls-course-icon{width:44px;height:44px;font-size:1.3rem;border-radius:14px}.ls-course-id h4{font-size:1.02rem}.ls-course-tagline{font-size:.8rem}.ls-course-side{gap:4px}.ls-course-state{width:42px;height:42px}}@media (max-width: 360px){.ls-course-tagline{-webkit-line-clamp:2}}@media (prefers-reduced-motion: reduce){.ls-overall,.ls-topics-head,.ls-state-done{animation:none}.ls-ring-fill,.ls-state-ring-fill{transition:none!important}.ls-btn-continue{transition:none}}.ls-cpath{--road-w: 5px;position:relative;margin:18px 0 8px;padding:28px 10px 36px;border-radius:32px;background:radial-gradient(1100px 480px at 12% 0%,color-mix(in srgb,var(--primary) 8%,transparent),transparent 62%),radial-gradient(900px 420px at 88% 100%,color-mix(in srgb,var(--secondary) 8%,transparent),transparent 62%),var(--card);border:1px solid var(--border);box-shadow:var(--shadow-soft);overflow-x:clip;animation:lsFadeUp .45s var(--bounce) both}.ls-cpath,.ls-cpath>*{max-width:100%;min-width:0}.ls-cpath-bg{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;overflow:hidden;pointer-events:none;z-index:0}.ls-cpath-blob{position:absolute;border-radius:50%;filter:blur(46px);opacity:.55}.ls-cpath-blob--a{width:320px;height:320px;left:-100px;top:-90px;background:color-mix(in srgb,var(--primary) 13%,transparent)}.ls-cpath-blob--b{width:360px;height:360px;right:-120px;bottom:-130px;background:color-mix(in srgb,var(--secondary) 12%,transparent)}.ls-cpath-dots{position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(color-mix(in srgb,var(--text) 10%,transparent) 1px,transparent 1.4px);background-size:26px 26px;opacity:.32;-webkit-mask-image:linear-gradient(180deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(180deg,transparent,#000 10%,#000 90%,transparent)}.ls-cpath-chip{position:absolute;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.72rem;font-weight:700;color:color-mix(in srgb,var(--primary) 60%,var(--text));background:color-mix(in srgb,var(--primary) 8%,transparent);border:1px solid color-mix(in srgb,var(--primary) 18%,transparent);border-radius:10px;padding:4px 9px;opacity:.8}.ls-cpath-chip--html{top:26px;right:5%;transform:rotate(6deg)}.ls-cpath-chip--css{top:44%;left:3%;transform:rotate(-5deg)}.ls-cpath-chip--js{bottom:11%;right:4%;transform:rotate(4deg)}.ls-cpath-decor{position:absolute;font-size:1.5rem;opacity:.45;filter:saturate(.9)}.ls-cpath-decor--laptop{bottom:16px;left:3.5%;transform:rotate(-8deg)}.ls-cpath-road{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none;overflow:visible}.ls-croad-base,.ls-croad-progress{fill:none;stroke-linecap:round;stroke-linejoin:round}.ls-croad-base{stroke:color-mix(in srgb,var(--muted) 32%,transparent);stroke-width:var(--road-w)}.ls-croad-progress{stroke:url(#lsRoadGrad);stroke-width:calc(var(--road-w) + 1px)}.ls-crow{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,var(--l, 1fr)) 76px minmax(0,var(--r, 1fr));align-items:center;padding:22px 0;animation:lsFadeUp .45s var(--bounce) both}.ls-cnode{--node-size: 64px;grid-row:1;grid-column:2;justify-self:center;width:var(--node-size);height:var(--node-size);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-family:inherit;background:var(--card);border:2px solid var(--border-focus);box-shadow:var(--shadow-soft);transition:transform .18s var(--bounce),box-shadow .18s ease,border-color .18s ease,background .18s ease;-webkit-tap-highlight-color:transparent}.ls-cnode:hover{transform:translateY(-3px) scale(1.05);box-shadow:var(--glow)}.ls-cnode:active{transform:scale(.94)}.ls-cnode:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.ls-cnode-face{font-size:1.15rem;font-weight:800;line-height:1;color:var(--primary)}.ls-cnode--open{background:var(--bg-alt);border-color:var(--border)}.ls-cnode--open .ls-cnode-face{color:var(--muted)}.ls-cnode--done{background:color-mix(in srgb,var(--success) 16%,var(--card));border-color:color-mix(in srgb,var(--success) 45%,transparent)}.ls-cnode--done .ls-cnode-face{color:var(--success)}.ls-cnode--locked{background:var(--bg-alt);border-color:var(--border);cursor:not-allowed;opacity:.8}.ls-cnode--locked .ls-cnode-face{font-size:.95rem;color:var(--muted)}.ls-cnode--current{--node-size: 72px;background:linear-gradient(135deg,var(--primary),color-mix(in srgb,var(--primary) 55%,var(--secondary)));border-color:transparent;box-shadow:0 8px 24px color-mix(in srgb,var(--primary) 35%,transparent);animation:lsCNodePulse 2.4s ease-in-out infinite}.ls-cnode--current .ls-cnode-face{color:#fff;font-size:1.3rem}@keyframes lsCNodePulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--primary) 35%,transparent),0 8px 24px color-mix(in srgb,var(--primary) 30%,transparent)}50%{box-shadow:0 0 0 12px color-mix(in srgb,var(--primary) 0%,transparent),0 8px 24px color-mix(in srgb,var(--primary) 30%,transparent)}}.ls-cnode.ls-shake,.ls-ccard.ls-shake{animation:lsShakeCard .45s ease}.ls-ccard{grid-row:1;grid-column:var(--card-col, 3);justify-self:var(--card-just, start);width:min(380px,100%);max-width:100%;background:var(--card);border:1px solid var(--border);border-radius:22px;padding:14px 18px 15px;box-shadow:var(--shadow-soft);cursor:pointer;transition:transform .18s var(--bounce),box-shadow .18s ease,border-color .18s ease;-webkit-tap-highlight-color:transparent}.ls-ccard:hover{transform:translateY(-3px);border-color:var(--border-focus);box-shadow:var(--glow)}.ls-ccard:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.ls-ccard-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.ls-ccard-num{font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);white-space:nowrap}.ls-ccard-status{font-size:.68rem;font-weight:700;padding:3px 10px;border-radius:999px;white-space:nowrap}.ls-ccard-status--current{color:var(--primary);background:color-mix(in srgb,var(--primary) 12%,transparent)}.ls-ccard-status--done{color:var(--success);background:color-mix(in srgb,var(--success) 12%,transparent)}.ls-ccard-status--locked{color:var(--muted);background:var(--bg-alt)}.ls-ccard-status--open{color:var(--secondary);background:color-mix(in srgb,var(--secondary) 12%,transparent)}.ls-ccard-title{margin:0 0 4px;font-size:1rem;font-weight:800;color:var(--text);line-height:1.3;overflow-wrap:break-word;word-break:normal}.ls-ccard-desc{margin:0 0 8px;font-size:.8rem;color:var(--muted);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ls-ccard-meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.74rem;font-weight:600;color:var(--muted)}.ls-ccard-action{display:inline-flex;align-items:center;gap:5px;margin-top:10px;font-size:.8rem;font-weight:800;color:var(--primary)}.ls-ccard-action b{transition:transform .18s ease}.ls-ccard:hover .ls-ccard-action b{transform:translate(3px)}.ls-ccard-action--done{color:var(--success)}.ls-ccard--current{background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 8%,var(--card)),var(--card));border-color:color-mix(in srgb,var(--primary) 30%,transparent)}.ls-ccard--done{background:linear-gradient(135deg,color-mix(in srgb,var(--success) 7%,var(--card)),var(--card));border-color:color-mix(in srgb,var(--success) 25%,transparent)}.ls-ccard--locked{opacity:.72;cursor:not-allowed}.ls-ccard--locked:hover{transform:none;box-shadow:var(--shadow-soft);border-color:var(--border)}@media (max-width: 640px){.ls-cpath{padding:18px 6px 28px;border-radius:26px}.ls-crow{grid-template-columns:minmax(0,var(--lm, 1fr)) 58px minmax(0,var(--rm, 1fr));padding:16px 0}.ls-cnode{--node-size: 52px}.ls-cnode--current{--node-size: 58px}.ls-ccard{grid-column:1 / -1;grid-row:2;justify-self:var(--card-align, start);width:min(288px,100%);margin-top:10px;padding:12px 14px 13px}.ls-ccard-title{font-size:.92rem}.ls-ccard-desc{font-size:.76rem}.ls-ccard-action{margin-top:8px;font-size:.76rem}.ls-cpath-chip{font-size:.64rem;padding:3px 7px}.ls-cpath-chip--css{display:none}.ls-cpath-decor--laptop{font-size:1.2rem;bottom:10px}}@media (max-width: 360px){.ls-ccard{width:min(264px,100%)}.ls-cpath-chip--js{display:none}.ls-crow{padding:13px 0}}@media (min-width: 1280px){.ls-cpath{padding:34px 14px 42px}.ls-ccard{width:min(400px,100%)}}@media (prefers-reduced-motion: reduce){.ls-crow,.ls-cnode--current{animation:none!important}.ls-cnode,.ls-ccard,.ls-croad-progress{transition:none!important}}.ls-course-topbar{display:flex;justify-content:flex-start;margin-bottom:14px;animation:lsFadeUp .4s var(--bounce) both}.ls-back-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;font-family:inherit;font-weight:700;font-size:.9rem;color:var(--text);background:var(--card);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-soft);cursor:pointer;transition:transform .2s var(--bounce),border-color .2s,box-shadow .2s;-webkit-tap-highlight-color:transparent}.ls-back-btn:hover{transform:translateY(-2px);border-color:var(--border-focus);box-shadow:var(--shadow)}.ls-back-btn:active{transform:scale(.98)}.ls-back-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.ls-hero{position:relative;align-items:center;gap:18px;padding:28px 30px;border-radius:32px;background:linear-gradient(120deg,#f5f9ff,#fff 46%,#eaf2ff);border:1px solid color-mix(in srgb,var(--primary) 14%,transparent);box-shadow:0 18px 44px -20px color-mix(in srgb,var(--primary) 26%,transparent)}.ls-hero-main{display:flex;align-items:center;gap:18px;flex:1 1 auto;min-width:0}.ls-hero .ls-course-head-icon{width:76px;height:76px;border-radius:20px;font-size:2.4rem;background:color-mix(in srgb,var(--ls-color, var(--primary)) 12%,#fff);box-shadow:0 10px 22px -12px color-mix(in srgb,var(--ls-color, var(--primary)) 55%,transparent)}.ls-hero .ls-course-head-info h3{font-size:1.9rem;letter-spacing:-.02em}.ls-hero .ls-course-head-info>p{margin-bottom:14px}.ls-hero-countrow{display:flex;align-items:center;gap:12px;min-width:0;animation:lsFadeUp .45s var(--bounce) .08s both}.ls-hero-count{font-size:.86rem;font-weight:600;color:var(--muted);white-space:nowrap}.ls-hero-count strong{color:var(--primary)}.ls-hero-countrow .ls-progress-track{max-width:220px}.ls-hero-tail-marker{display:none}.ls-hero-robot{position:relative;flex:0 0 auto;display:flex;align-items:center;justify-content:center;padding:10px 26px 16px;animation:lsHeroRobotIn .6s var(--bounce) .12s both}@keyframes lsHeroRobotIn{0%{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.ls-hero-robot .mascot{--mascot-size: 150px}.ls-hero-badge{position:absolute;z-index:2;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.78rem;letter-spacing:.02em;border-radius:14px;box-shadow:0 8px 18px -8px color-mix(in srgb,var(--primary) 40%,transparent);animation:lsBadgeFloat 3.6s ease-in-out infinite;pointer-events:none}.ls-hero-badge--code{top:-4px;left:0;width:52px;height:52px;font-size:1.05rem;color:#fff;background:linear-gradient(135deg,var(--primary),var(--secondary));border-radius:16px}.ls-hero-badge--tag{--badge-rot: 6deg;top:0;right:0;padding:5px 10px;color:var(--primary);background:#fff;border:1px solid var(--border);border-radius:9px;transform:rotate(6deg);animation-delay:.9s}@keyframes lsBadgeFloat{0%,to{transform:translateY(0) rotate(var(--badge-rot, 0deg))}50%{transform:translateY(-6px) rotate(var(--badge-rot, 0deg))}}.ls-hero-quote{position:relative;flex:0 1 250px;min-width:0;padding:18px 52px 18px 20px;font-size:.92rem;font-weight:600;line-height:1.55;color:var(--text);background:var(--card);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-soft);animation:lsFadeUp .45s var(--bounce) .16s both}.ls-hero-quote p{margin:0}.ls-hero-quote-ico{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:1.45rem}.ls-road-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:26px 2px 4px;animation:lsFadeUp .4s var(--bounce) both}.ls-road-title{display:flex;align-items:flex-start;gap:12px;min-width:0}.ls-road-ico{font-size:1.45rem;line-height:1.3}.ls-road-title h3{margin:0 0 4px;font-size:1.25rem;font-weight:800}.ls-road-title p{margin:0;font-size:.9rem;color:var(--muted)}.ls-road-actions{flex-direction:row;align-items:center;flex-wrap:wrap}@media (max-width: 1100px){.ls-hero{flex-wrap:wrap}.ls-hero-robot .mascot{--mascot-size: 120px}.ls-hero-quote{flex:1 1 220px}}@media (max-width: 767px){.ls-course-topbar{margin-bottom:10px}.ls-back-btn{padding:8px 14px;font-size:.84rem;border-radius:12px}.ls-hero{padding:18px 16px;border-radius:22px;gap:10px}.ls-hero-main{gap:12px}.ls-hero .ls-course-head-icon{width:54px;height:54px;border-radius:15px;font-size:1.7rem}.ls-hero .ls-course-head-info h3{font-size:1.35rem}.ls-hero .ls-course-head-info>p{font-size:.86rem;margin-bottom:10px}.ls-hero-countrow{flex-wrap:wrap;row-gap:6px}.ls-hero-countrow .ls-progress-track{max-width:none;flex:1 1 120px}.ls-hero-robot{width:100%;padding:6px 0 8px}.ls-hero-robot .mascot{--mascot-size: 96px}.ls-hero-badge--code{width:40px;height:40px;font-size:.85rem;top:-6px}.ls-hero-badge--tag{font-size:.7rem;padding:4px 8px}.ls-hero-quote{padding:14px 46px 14px 16px;font-size:.86rem;border-radius:15px}.ls-road-head{margin-top:18px;gap:10px}.ls-road-title h3{font-size:1.1rem}.ls-road-title p{font-size:.84rem}}@media (max-width: 360px){.ls-hero{padding:16px 13px}.ls-hero-robot .mascot{--mascot-size: 84px}}@media (prefers-reduced-motion: reduce){.ls-course-topbar,.ls-hero,.ls-hero-quote,.ls-hero-robot,.ls-road-head,.ls-hero-countrow,.ls-hero-badge{animation:none!important}}.mascot{--mascot-size: 96px;position:relative;width:var(--mascot-size);height:calc(var(--mascot-size) * 1.08);display:inline-flex;flex-direction:column;align-items:center;justify-content:flex-end;flex-shrink:0;pointer-events:none;-webkit-user-select:none;user-select:none}.mascot-body{position:relative;width:100%;height:92%;display:flex;align-items:center;justify-content:center;transform-origin:50% 96%;will-change:transform;z-index:2}.mascot img{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 8px 24px rgba(0,195,255,.45))}.mascot.mascot-broken{display:none!important}.mascot-eyes{position:absolute;top:23%;left:32%;width:36%;height:16%;display:flex;align-items:center;justify-content:space-between;padding:0 4%;pointer-events:none;z-index:3}.mascot-eye{position:relative;width:28%;height:65%;border-radius:50%;background:radial-gradient(circle,#00f2fe 30%,#00c6ff);box-shadow:0 0 8px #00f2fe,0 0 16px #00d2ffd9;opacity:.9;transform-origin:50% 50%;animation:mascotEyeBlink 4.2s ease-in-out infinite,mascotEyeGlance 7s ease-in-out infinite}.mascot-eye--l{left:2%}.mascot-eye--r{right:2%}@keyframes mascotEyeBlink{0%,90%,to{transform:scaleY(1);opacity:.9}94%{transform:scaleY(.08);opacity:.3}}@keyframes mascotEyeGlance{0%,65%,to{transform:translate(0)}70%,82%{transform:translate(2.2px)}}.mascot-platform{position:absolute;bottom:0;left:50%;transform:translate(-50%);width:86%;height:13px;border-radius:50%;background:radial-gradient(ellipse at center,#0e1c3cf2,#060c1cfa);border:1.5px solid rgba(0,229,255,.85);box-shadow:0 0 16px #00e5ffb3,0 4px 14px #000000d9,inset 0 0 10px #00e5ff73;display:flex;align-items:center;justify-content:center;z-index:1}.mascot-platform-ring{width:68%;height:5px;border-radius:50%;border:1px solid rgba(0,242,254,.9);box-shadow:0 0 8px #00f2fe}.mascot-platform-glow{position:absolute;bottom:2px;left:50%;transform:translate(-50%);width:105%;height:18px;background:radial-gradient(ellipse at center,rgba(0,229,255,.45),transparent 72%);pointer-events:none}.mascot-xs{--mascot-size: 44px}.mascot-sm{--mascot-size: 60px}.mascot-md{--mascot-size: 88px}.mascot-lg{--mascot-size: 140px}.mascot--idle .mascot-body{animation:mascotIdle 3.4s ease-in-out infinite}@keyframes mascotIdle{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-5px) rotate(-1deg)}}.mascot--thinking .mascot-body{animation:mascotThink 2s ease-in-out infinite}.mascot--thinking .mascot-eye{animation:mascotEyeThink 2s ease-in-out infinite;box-shadow:0 0 12px #00f2fe,0 0 20px #7c5cff}@keyframes mascotThink{0%,to{transform:translateY(0) rotate(0)}35%{transform:translateY(-3px) rotate(-5deg)}70%{transform:translateY(-3px) rotate(-2deg)}}@keyframes mascotEyeThink{0%,to{transform:translate(0)}50%{transform:translate(-1.5px,-2px)}}.mascot--success .mascot-body{animation:mascotBounce .65s cubic-bezier(.16,1,.3,1)}.mascot--success .mascot-eye{box-shadow:0 0 14px #00f2fe,0 0 24px #00f2fe}@keyframes mascotBounce{0%{transform:translateY(0) scale(1)}35%{transform:translateY(-14px) scale(1.05)}60%{transform:translateY(0) scale(.97)}80%{transform:translateY(-4px) scale(1.02)}to{transform:translateY(0) scale(1)}}.mascot--error .mascot-body{animation:mascotShake .48s ease-in-out}.mascot--error .mascot-eye{box-shadow:0 0 10px #f05,0 0 16px #ff0055b3;background:radial-gradient(circle,#f05 30%,#ff5e62)}@keyframes mascotShake{0%,to{transform:translate(0)}20%{transform:translate(-5px) rotate(-3deg)}40%{transform:translate(5px) rotate(3deg)}60%{transform:translate(-3px) rotate(-2deg)}80%{transform:translate(3px) rotate(2deg)}}.mascot--complete .mascot-body{animation:mascotCelebrate 1.2s ease-in-out infinite}.mascot--complete .mascot img{filter:drop-shadow(0 8px 28px rgba(0,229,255,.7)) drop-shadow(0 0 16px rgba(124,92,255,.6))}@keyframes mascotCelebrate{0%,to{transform:translateY(0) rotate(0) scale(1)}25%{transform:translateY(-12px) rotate(-5deg) scale(1.04)}50%{transform:translateY(0) rotate(0) scale(.98)}75%{transform:translateY(-12px) rotate(5deg) scale(1.04)}}.mascot--rocket .mascot-body,.mascot--newLesson .mascot-body{animation:mascotRocket 2s ease-in-out infinite}@keyframes mascotRocket{0%{transform:translate(0) rotate(0)}40%{transform:translate(6px,-8px) rotate(4deg)}60%{transform:translate(8px,-10px) rotate(5deg)}80%{transform:translate(3px,-3px) rotate(2deg)}to{transform:translate(0) rotate(0)}}.mascot-xp{position:absolute;left:50%;top:-6px;transform:translate(-50%);font-size:14px;font-weight:800;color:#fbbf24;text-shadow:0 0 12px rgba(251,191,36,.9);pointer-events:none;animation:mascotXpFloat 1.3s ease-out forwards;white-space:nowrap;z-index:10}@keyframes mascotXpFloat{0%{opacity:0;transform:translate(-50%,8px) scale(.7)}20%{opacity:1;transform:translate(-50%,-8px) scale(1.1)}to{opacity:0;transform:translate(-50%,-60px) scale(1)}}.mascot-bubble{display:none!important}.hero-mascot-card{display:flex;align-items:center;gap:12px;margin-top:14px;padding:8px 14px 8px 8px;width:fit-content;max-width:100%;background:#0a0e1c8c;border:1px solid rgba(0,229,255,.25);border-radius:18px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 0 20px #00e5ff33}.hero-mascot-card .mascot{--mascot-size: 68px}.hero-mascot-say{display:none!important}.mascot-ai{--mascot-size: 34px;margin-right:6px}.q-mascot-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}.q-mascot-row .mascot{--mascot-size: 48px}.q-mascot-text{display:none!important}#resultHero .mascot{--mascot-size: 80px}.ls-mascot-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 22px;margin-bottom:16px;background:linear-gradient(135deg,#101830bf,#0a1024d9);border:1px solid rgba(0,229,255,.22);border-radius:18px;box-shadow:0 8px 28px #00000059;overflow:visible}.ls-mascot-intro .mascot{--mascot-size: 135px;order:2}.ls-mascot-intro-text{order:1;flex:1 1 auto;min-width:0}.ls-mascot-intro-text h4{margin:0 0 6px;font-size:18px;font-weight:800;color:#fff}.ls-mascot-intro-text p{margin:0;font-size:14px;line-height:1.5;color:#e2e8f0d9}.ls-quiz-hero .mascot,.ls-result-hero .mascot{--mascot-size: 60px}.ls-quiz-hero{display:flex;flex-wrap:wrap;align-items:center;gap:10px}@media (max-width: 640px){.mascot{--mascot-size: 60px}.mascot-sm{--mascot-size: 48px}.mascot-lg{--mascot-size: 96px}.hero-mascot-card .mascot{--mascot-size: 48px}.hero-mascot-card{padding:6px 10px 6px 6px;margin-inline:auto}.ls-mascot-intro{flex-direction:column;text-align:center;gap:12px;padding:14px 12px}.ls-mascot-intro .mascot{--mascot-size: 110px;order:2;margin-inline:auto}.ls-mascot-intro-text{order:1}.ls-mascot-intro-text h4{font-size:16px}.ls-mascot-intro-text p{font-size:13px}#resultHero .mascot{--mascot-size: 64px}.mascot-ai{--mascot-size: 26px}}@media (max-width: 360px){.mascot{--mascot-size: 50px}.mascot-sm{--mascot-size: 42px}.hero-mascot-card .mascot{--mascot-size: 40px}.ls-mascot-intro .mascot{--mascot-size: 92px}}[data-theme=light] .mascot img{filter:drop-shadow(0 6px 20px rgba(37,99,235,.4)) brightness(1.02) contrast(1.04)}[data-theme=light] .mascot-platform{background:radial-gradient(ellipse at center,#dcebfff2,#c8dcfafa);border:1.5px solid rgba(37,99,235,.7);box-shadow:0 0 16px #2563eb66,0 4px 12px #00000026,inset 0 0 8px #2563eb4d}[data-theme=light] .mascot-platform-ring{border-color:#2563ebcc;box-shadow:0 0 6px #2563eb99}[data-theme=light] .ls-mascot-intro{background:#ffffffd9;border-color:#6366f140;box-shadow:0 6px 20px #6366f11f}[data-theme=light] .ls-mascot-intro-text h4{color:#0f172a}[data-theme=light] .ls-mascot-intro-text p{color:#475569}@media (prefers-reduced-motion: reduce){.mascot-body,.mascot-eye,.mascot--idle .mascot-body,.mascot--thinking .mascot-body,.mascot--complete .mascot-body,.mascot--rocket .mascot-body,.mascot--newLesson .mascot-body,.mascot--error .mascot-body,.mascot--success .mascot-body{animation:none!important}.mascot-xp{animation-duration:.6s!important}}.m-dash{display:none}@media (max-width: 767px){:root{--m-accent: #7c5cff;--m-accent-2: #4f8cff;--m-glass: rgba(18, 24, 44, .76);--m-glass-2: rgba(26, 32, 58, .65);--m-border: rgba(124, 92, 255, .24);--m-radius: 18px;--m-radius-sm: 12px}html,body{overflow-x:hidden!important;width:100%!important;max-width:100vw!important;margin:0;padding:0;box-sizing:border-box;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}*,*:before,*:after{box-sizing:border-box}input,select,textarea{font-size:16px!important;touch-action:manipulation}button,a,.btn,.icon-btn,.nav-item,.m-chip,.m-course-card,.m-stat-card,[role=button]{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:active,.btn:active,.m-course-card:active,.m-chip:active{transform:scale(.98);transition:transform .1s ease}#app,.app{width:100%!important;max-width:100vw!important;min-width:0!important;margin:0!important;padding:0!important;overflow-x:hidden!important;display:flex;flex-direction:column}.main,.main .content{width:100%!important;max-width:100%!important;min-width:0!important;margin:0!important;padding:0!important}.main .page{width:100%!important;max-width:100%!important;min-width:0!important;padding:12px 12px calc(32px + env(safe-area-inset-bottom,0px))!important;margin:0!important;box-sizing:border-box!important}.topbar{position:sticky!important;top:0!important;z-index:80!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;width:100%!important;max-width:100%!important;height:auto!important;min-height:54px!important;padding:8px 12px!important;padding-top:calc(8px + env(safe-area-inset-top,0px))!important;margin:0!important;background:var(--itt-topbar-bg, rgba(11, 15, 30, .88))!important;backdrop-filter:blur(18px) saturate(180%)!important;-webkit-backdrop-filter:blur(18px) saturate(180%)!important;border-bottom:1px solid var(--m-border)!important;box-shadow:0 4px 20px #00000059!important}.topbar-left{display:flex!important;align-items:center!important;gap:10px!important;min-width:0!important;flex:1 1 auto!important}.topbar .hamburger{width:40px!important;height:40px!important;min-width:40px!important;flex:0 0 40px!important;display:inline-flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:4.5px!important;border-radius:12px!important;background:var(--m-glass-2)!important;border:1px solid var(--m-border)!important;cursor:pointer!important}.topbar .hamburger span{width:18px!important;height:2px!important;border-radius:2px!important;background:var(--itt-text, #e6e9ff)!important}.topbar-left h2,#pageTitle{font-size:17px!important;font-weight:700!important;letter-spacing:-.2px!important;color:var(--itt-text, #f8fafc)!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:calc(100vw - 190px)!important;margin:0!important}.topbar-right{display:flex!important;align-items:center!important;gap:6px!important;flex:0 0 auto!important}.topbar .icon-btn{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;flex:0 0 44px!important;border-radius:12px!important;background:var(--m-glass-2)!important;border:1px solid var(--m-border)!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;font-size:16px!important;cursor:pointer!important}.topbar .user-chip{padding:0!important;background:none!important;border:none!important;cursor:pointer!important}.topbar .user-chip #topbarUsername{display:none!important}.topbar .user-avatar{width:36px!important;height:36px!important;min-width:36px!important;border-radius:50%!important;background:linear-gradient(135deg,var(--m-accent),var(--m-accent-2))!important;box-shadow:0 0 0 2px #7c5cff66!important;font-size:13px!important;font-weight:700!important;color:#fff!important;display:flex!important;align-items:center!important;justify-content:center!important}.notif-dropdown,.ux-user-dropdown{position:fixed!important;top:calc(56px + env(safe-area-inset-top,0px))!important;right:10px!important;left:auto!important;width:min(320px,calc(100vw - 20px))!important;max-width:calc(100vw - 20px)!important;border-radius:16px!important;background:#0e1224f5!important;-webkit-backdrop-filter:blur(20px)!important;backdrop-filter:blur(20px)!important;border:1px solid var(--m-border)!important;box-shadow:0 12px 36px #0009!important;z-index:100!important}.sidebar{position:fixed!important;left:0!important;top:0!important;bottom:0!important;width:min(82vw,300px)!important;max-width:300px!important;transform:translate(-105%)!important;transition:transform .28s cubic-bezier(.16,1,.3,1)!important;background:#0c1020f5!important;backdrop-filter:blur(22px) saturate(190%)!important;-webkit-backdrop-filter:blur(22px) saturate(190%)!important;border-right:1px solid var(--m-border)!important;box-shadow:14px 0 45px #0000008c!important;z-index:95!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;display:flex!important;flex-direction:column!important;padding:0 0 24px!important}.sidebar.active{transform:translate(0)!important}.sidebar-overlay{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;background:#040610ad!important;-webkit-backdrop-filter:blur(4px)!important;backdrop-filter:blur(4px)!important;opacity:0!important;pointer-events:none!important;transition:opacity .26s ease!important;z-index:94!important}.sidebar-overlay.active{opacity:1!important;pointer-events:auto!important}.sidebar-header{display:flex!important;align-items:center!important;justify-content:space-between!important;padding:16px 14px 12px!important;border-bottom:1px solid rgba(255,255,255,.06)!important}.sidebar-logo{font-size:18px!important;font-weight:800!important;color:#fff!important;display:flex!important;align-items:center!important;gap:6px!important}.sidebar-close{width:36px!important;height:36px!important;border-radius:10px!important;background:var(--m-glass-2)!important;border:1px solid var(--m-border)!important;color:#fff!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:16px!important;cursor:pointer!important}.sidebar-nav{flex:1 1 auto!important;padding:10px 8px!important;display:flex!important;flex-direction:column!important;gap:3px!important}.sidebar .nav-item{min-height:46px!important;padding:10px 14px!important;border-radius:12px!important;margin:1px 0!important;font-size:14px!important;font-weight:600!important;display:flex!important;align-items:center!important;gap:12px!important}.sidebar .nav-item.active{background:#7c5cff2e!important;box-shadow:inset 0 0 0 1px var(--m-border)!important;color:#fff!important}.sidebar-footer{padding:10px 12px!important;border-top:1px solid rgba(255,255,255,.06)!important}#page-dashboard .welcome-banner,#page-dashboard .stats-grid,#page-dashboard .dash-grid{display:none!important}.m-dash{display:block!important;width:100%!important;max-width:100%!important}.m-hero{position:relative!important;display:flex!important;align-items:stretch!important;gap:8px!important;width:100%!important;padding:16px 14px!important;border-radius:var(--m-radius)!important;background:linear-gradient(135deg,#2a1858eb,#141a38eb)!important;border:1px solid var(--m-border)!important;box-shadow:0 8px 30px #4a2fbd40!important;overflow:hidden!important}.m-hero-content{flex:1 1 auto!important;min-width:0!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:6px!important;z-index:1!important}.m-hero-flame{font-size:11px!important;font-weight:700!important;color:#ffb86b!important;background:#ffa84c24!important;border:1px solid rgba(255,168,76,.35)!important;padding:3px 9px!important;border-radius:999px!important}.m-hero-course{font-size:19px!important;font-weight:800!important;color:#fff!important;line-height:1.25!important;margin:2px 0 0!important;word-break:break-word!important}.m-hero-lesson{font-size:12.5px!important;color:#b9b3d9!important;margin:0!important;word-break:break-word!important}.m-hero-progress{width:100%!important;height:7px!important;border-radius:999px!important;background:#ffffff1a!important;overflow:hidden!important;margin-top:3px!important}.m-hero-progress-fill{height:100%!important;border-radius:999px!important;background:linear-gradient(90deg,var(--m-accent),var(--m-accent-2))!important}.m-hero-pct{font-size:11.5px!important;font-weight:600!important;color:#cfc7f5!important}.m-hero-btn{margin-top:6px!important;min-height:42px!important;padding:10px 18px!important;border-radius:12px!important;border:none!important;background:linear-gradient(135deg,var(--m-accent),var(--m-accent-2))!important;color:#fff!important;font-size:14px!important;font-weight:700!important;box-shadow:0 4px 16px #7c5cff66!important;cursor:pointer!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}.m-hero-btn:active{transform:scale(.97)!important}.m-hero-art{flex:0 0 54px!important;align-self:center!important;display:flex!important;align-items:center!important;justify-content:center!important;width:54px!important;height:54px!important;border-radius:16px!important;background:#7c5cff2e!important;border:1px solid var(--m-border)!important;z-index:1!important}.m-hero-art-code{font-size:18px!important;font-weight:800!important;color:#c9b8ff!important;font-family:monospace!important}.m-stats{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;margin-top:10px!important}.m-stat{display:flex!important;flex-direction:column!important;align-items:center!important;gap:2px!important;padding:10px 6px!important;border-radius:14px!important;background:var(--m-glass)!important;border:1px solid rgba(255,255,255,.07)!important;min-width:0!important}.m-stat-ico{font-size:16px!important}.m-stat-val{font-size:17px!important;font-weight:800!important;color:#fff!important}.m-stat-lbl{font-size:10.5px!important;color:#94a3b8!important;text-align:center!important}.m-section-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;margin:16px 0 8px!important}.m-section-head h3{font-size:15px!important;font-weight:700!important;color:#fff!important;margin:0!important}.m-link{font-size:12px!important;font-weight:600!important;color:#a68cff!important;background:none!important;border:none!important;padding:4px 6px!important;cursor:pointer!important}.m-chips{display:flex!important;gap:6px!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;scrollbar-width:none!important;padding:2px 0 6px!important}.m-chips::-webkit-scrollbar{display:none!important}.m-chip{flex:0 0 auto!important;min-height:34px!important;padding:6px 14px!important;border-radius:999px!important;font-size:12px!important;font-weight:600!important;color:#b9b3d9!important;background:var(--m-glass-2)!important;border:1px solid rgba(255,255,255,.08)!important;cursor:pointer!important}.m-chip.active{color:#fff!important;background:linear-gradient(135deg,var(--m-accent),var(--m-accent-2))!important;border-color:transparent!important}.m-courses{display:flex!important;flex-direction:column!important;gap:9px!important;margin-top:4px!important}.m-course-card{display:flex!important;align-items:center!important;gap:10px!important;width:100%!important;padding:12px!important;border-radius:16px!important;background:var(--m-glass)!important;border:1px solid rgba(255,255,255,.07)!important;cursor:pointer!important}.m-course-card:active{transform:scale(.985)!important;border-color:var(--m-border)!important}.m-course-icon{flex:0 0 42px!important;width:42px!important;height:42px!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:20px!important;border-radius:12px!important;background:#7c5cff24!important;border:1px solid var(--m-border)!important}.m-course-body{flex:1 1 auto!important;min-width:0!important;display:flex!important;flex-direction:column!important;gap:3px!important}.m-course-title{font-size:14.5px!important;font-weight:700!important;color:#fff!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.m-course-desc{font-size:11.5px!important;color:#8f8aa8!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.m-course-meta{display:flex!important;align-items:center!important;gap:8px!important;font-size:10.5px!important;color:#8f8aa8!important}.m-course-progress{width:100%!important;height:4px!important;border-radius:999px!important;background:#ffffff14!important;overflow:hidden!important}.m-course-progress span{display:block!important;height:100%!important;background:linear-gradient(90deg,var(--m-accent),var(--m-accent-2))!important}.m-course-arrow{flex:0 0 32px!important;width:32px!important;height:32px!important;display:flex!important;align-items:center!important;justify-content:center!important;border-radius:10px!important;font-size:14px!important;color:#fff!important;background:#7c5cff33!important}.ls-courses-grid{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}.ls-course-card{padding:14px 12px!important}.ls-course-head{flex-direction:column!important;padding:14px 12px!important;gap:12px!important}.ls-course-head-actions{width:100%!important;display:flex!important;flex-direction:column!important;gap:8px!important}.ls-course-head-actions .btn{width:100%!important}.ls-lessons-grid{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}.ls-lesson-card{padding:12px 14px!important}.ls-viewer-wrap{padding:0!important}.ls-viewer-card{border-radius:16px!important;padding:12px!important}.ls-viewer-hero{padding:12px 0 8px!important}.ls-viewer-hero h3{font-size:17px!important;line-height:1.3!important}.ls-mascot-intro{flex-direction:column!important;text-align:center!important;padding:12px!important;gap:8px!important}.ls-mascot-intro .mascot{--mascot-size: 110px !important}.ls-content-section{padding:12px 0!important}.ls-content-codeblock{margin:8px 0!important;border-radius:12px!important}pre.ls-content-code,.ls-content-code{max-width:100%!important;overflow-x:auto!important;white-space:pre!important;font-size:12.5px!important;padding:10px 12px!important;border-radius:10px!important}.ls-open-playground{width:100%!important;margin-top:6px!important;min-height:40px!important}.ls-img-preview-frame,.ls-livedemo-frame,.ls-ex-preview{width:100%!important;height:200px!important;border-radius:12px!important}.ls-quiz-options{display:flex!important;flex-direction:column!important;gap:8px!important}.ls-quiz-option{width:100%!important;min-height:48px!important;padding:10px 12px!important;font-size:14px!important;text-align:left!important;display:flex!important;align-items:center!important;gap:10px!important}.ls-viewer-footer{display:flex!important;flex-direction:column!important;gap:8px!important}.ls-viewer-footer .btn{width:100%!important}.coding-header{padding:10px 12px!important;margin-bottom:10px!important;border-radius:16px!important;display:flex!important;flex-direction:column!important;gap:8px!important}.coding-header-left{display:flex!important;flex-direction:column!important;gap:6px!important;width:100%!important}.coding-editor-tabs{display:flex!important;gap:4px!important;width:100%!important}.coding-tab{flex:1 1 0!important;min-height:36px!important;padding:6px 4px!important;font-size:12.5px!important;font-weight:700!important;white-space:nowrap!important;text-align:center!important;border-radius:10px!important}.coding-select-wrap{width:100%!important}#codingLangSelect{width:100%!important;min-height:38px!important;font-size:13px!important;border-radius:10px!important}.coding-toolbar-controls{display:flex!important;flex-direction:column!important;gap:8px!important;width:100%!important}.auto-run-switch{display:none!important}.coding-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px!important;width:100%!important}.coding-actions #aiPanelToggle,.coding-actions #codingRunBtn{grid-column:span 1!important;min-height:42px!important;font-size:13.5px!important;font-weight:700!important;white-space:nowrap!important}.coding-actions #codingRunBtn{background:linear-gradient(135deg,#10b981,#059669)!important;color:#fff!important;box-shadow:0 4px 14px #10b98166!important}.coding-actions #codingOpenBrowserBtn,.coding-actions #codingSaveBtn,.coding-actions #codingProjectsBtn,.coding-actions #codingResetBtn,.coding-actions #codingDownloadBtn{min-height:36px!important;font-size:11.5px!important;white-space:nowrap!important;padding:6px 8px!important;text-align:center!important;justify-content:center!important}.coding-workspace{display:flex!important;flex-direction:column!important;gap:10px!important;width:100%!important}.coding-editor-panel{width:100%!important;border-radius:16px!important;overflow:hidden!important}.editor-header{padding:8px 12px!important}.editor-shortcuts{display:none!important}.editor-body{min-height:220px!important;height:240px!important;max-height:300px!important}.editor-container{height:100%!important;display:flex!important}.line-numbers{width:30px!important;min-width:30px!important;font-size:11.5px!important;padding:8px 2px!important}.editor-surface{flex:1 1 auto!important;min-width:0!important;position:relative!important;height:100%!important}.code-textarea,.editor-highlight{font-size:13px!important;line-height:1.5!important;padding:8px 10px!important;overflow-x:auto!important;white-space:pre!important}.coding-output-panel{width:100%!important;border-radius:16px!important;overflow:hidden!important}.output-tabs{display:flex!important;gap:4px!important;padding:6px 8px!important;border-bottom:1px solid rgba(255,255,255,.08)!important}.output-tab{flex:1 1 0!important;min-height:34px!important;font-size:12px!important;padding:4px 6px!important;white-space:nowrap!important;border-radius:8px!important}#view-preview iframe,#codingIframe{width:100%!important;height:240px!important;min-height:200px!important;border:none!important}#view-console,#view-errors{height:200px!important;overflow-y:auto!important}.ai-panel{position:fixed!important;inset:auto 0 0 0!important;width:100%!important;max-height:75vh!important;border-radius:20px 20px 0 0!important;background:#0e1224fa!important;-webkit-backdrop-filter:blur(24px)!important;backdrop-filter:blur(24px)!important;border-top:1px solid var(--m-border)!important;box-shadow:0 -10px 40px #000000b3!important;z-index:93!important;padding:14px!important;overflow-y:auto!important}.projects-head{display:flex!important;flex-direction:column!important;gap:10px!important;margin-bottom:12px!important}.projects-head .btn{width:100%!important;min-height:42px!important}.projects-grid{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}.page-toolbar{flex-direction:column!important;gap:8px!important}.search-box{width:100%!important}.filter-chips{display:flex!important;overflow-x:auto!important;gap:6px!important;width:100%!important;padding-bottom:4px!important}.subject-cards{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}.test-header{flex-direction:row!important;align-items:center!important;justify-content:space-between!important;gap:8px!important}.test-body{display:flex!important;flex-direction:column!important;gap:12px!important}.question-area{width:100%!important}.navigator-area{width:100%!important;margin-top:10px!important}.question-nav{display:grid!important;grid-template-columns:repeat(5,1fr)!important;gap:6px!important}.test-nav-buttons{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;gap:6px!important;margin-top:12px!important}.test-nav-buttons .btn{min-height:44px!important;padding:8px 12px!important}.duel-lobby{display:flex!important;flex-direction:column!important;gap:10px!important}.duel-welcome{padding:14px 12px!important}.duel-welcome h1{font-size:19px!important}.duel-mode-chips,.duel-diff-chips{display:flex!important;flex-wrap:wrap!important;gap:6px!important}.duel-chip{flex:1 1 calc(50% - 6px)!important;min-height:38px!important;font-size:12.5px!important}.tow-visualizer{padding:10px 8px!important;gap:6px!important}.tow-player{min-width:0!important}.tow-username{font-size:12px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:60px!important}.duel-options{display:flex!important;flex-direction:column!important;gap:8px!important}.duel-options .btn,.duel-options button{width:100%!important;min-height:46px!important;padding:10px 12px!important;font-size:13.5px!important}.duel-result-players-scores{display:flex!important;align-items:center!important;justify-content:space-around!important;gap:6px!important}.store-hero{flex-direction:column!important;gap:10px!important;padding:14px 12px!important}.store-layout{display:flex!important;flex-direction:column!important;gap:12px!important}.store-preview{width:100%!important}.store-avatar-stage{height:120px!important}.store-tabs{display:flex!important;overflow-x:auto!important;gap:6px!important;padding-bottom:4px!important}.store-tab{flex:0 0 auto!important;min-height:34px!important;font-size:12px!important;padding:6px 12px!important}.store-grid{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:8px!important}.store-card{padding:10px!important}.profile-header{flex-direction:column!important;align-items:center!important;text-align:center!important;padding:16px 12px!important}.profile-stats{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}.profile-actions .btn{width:100%!important;min-height:42px!important}.setting-row{flex-direction:column!important;align-items:flex-start!important;gap:8px!important;padding:10px 0!important}.setting-row .btn{width:100%!important}.achievement-grid{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}.leaderboard{display:flex!important;flex-direction:column!important;gap:6px!important}.modal-overlay{padding:10px!important}.modal{width:min(480px,calc(100vw - 16px))!important;max-width:calc(100vw - 16px)!important;max-height:88vh!important;margin:auto!important;overflow-y:auto!important;border-radius:18px!important;padding:16px!important}.modal-footer{display:flex!important;flex-direction:column!important;gap:8px!important}.modal-footer .btn{width:100%!important;min-height:42px!important}}@media (max-width: 360px){.topbar-left h2,#pageTitle{font-size:15px!important;max-width:calc(100vw - 165px)!important}.m-hero-art{display:none!important}.m-hero-course{font-size:17px!important}.m-stat-val{font-size:15px!important}.coding-actions,.store-grid{grid-template-columns:1fr!important}}@media (max-width: 320px){.main .page{padding:8px 8px 24px!important}.m-hero{padding:12px 10px!important}.m-hero-btn{width:100%!important}.m-stats{grid-template-columns:1fr!important}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}#onboardingRoot{display:none}#onboardingRoot.open{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:var(--bg);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;animation:obFadeIn .35s ease}body.ob-lock{overflow:hidden}@keyframes obFadeIn{0%{opacity:0}to{opacity:1}}.ob-bg{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.ob-orb{position:absolute;border-radius:50%;filter:blur(90px);opacity:.16}.ob-orb-1{width:420px;height:420px;top:-140px;left:-120px;background:radial-gradient(circle,var(--primary),transparent 70%)}.ob-orb-2{width:360px;height:360px;bottom:-120px;right:-100px;background:radial-gradient(circle,var(--secondary),transparent 70%)}.ob-orb-3{width:260px;height:260px;top:40%;left:55%;background:radial-gradient(circle,var(--primary-hover),transparent 70%);opacity:.08}.ob-shell{position:relative;z-index:1;width:100%;max-width:1100px;margin:0 auto;padding:20px 24px 0;min-height:100%;display:flex;flex-direction:column;box-sizing:border-box}.ob-header{display:flex;align-items:center;gap:14px}.ob-back{width:42px;height:42px;flex-shrink:0;border-radius:12px;border:1px solid var(--border);background:var(--card);color:var(--text);font-size:18px;line-height:1;cursor:pointer;transition:border-color var(--transition),background var(--transition),transform .15s ease}.ob-back:hover{border-color:var(--border-focus);background:var(--card-hover)}.ob-back:active{transform:scale(.96)}.ob-logo{font-size:17px;font-weight:800;letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ob-logo b{color:var(--secondary);font-weight:800}.ob-step{margin-left:auto;font-size:13px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.ob-skip{border:none;background:transparent;color:var(--muted);font-size:13px;font-weight:600;padding:8px 10px;border-radius:10px;cursor:pointer;white-space:nowrap;transition:color var(--transition),background var(--transition)}.ob-skip:hover{color:var(--text);background:var(--card)}.ob-progress{margin-top:14px;height:6px;border-radius:999px;background:var(--card);border:1px solid var(--border);overflow:hidden}.ob-progress-fill{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,var(--primary),var(--secondary));box-shadow:var(--glow-cyan);transition:width .45s var(--bounce)}.ob-body{flex:1;display:grid;grid-template-columns:300px 1fr;gap:40px;align-items:center;padding:28px 0 12px}.ob-side{display:flex;flex-direction:column;align-items:center;gap:14px}.ob-mascot-host{--mascot-size: 150px}.ob-speech{position:relative;max-width:250px;padding:10px 16px;border-radius:14px;background:var(--card);border:1px solid var(--border);color:var(--text);font-size:13.5px;font-weight:600;text-align:center;box-shadow:var(--shadow-soft);overflow-wrap:break-word}.ob-speech:before{content:"";position:absolute;top:-7px;left:50%;width:12px;height:12px;transform:translate(-50%) rotate(45deg);background:var(--card);border-left:1px solid var(--border);border-top:1px solid var(--border);border-radius:3px 0 0}.ob-stage{min-width:0}.ob-screen{display:flex;flex-direction:column;gap:10px;animation:obIn .45s var(--bounce)}.ob-screen.ob-out{animation:obOut .4s ease forwards;pointer-events:none}@keyframes obIn{0%{opacity:0;transform:translate(26px)}to{opacity:1;transform:translate(0)}}@keyframes obOut{to{opacity:0;transform:translate(-26px)}}.ob-mini-mascot{display:none;--mascot-size: 72px;justify-content:center}.ob-title{font-size:clamp(22px,3.4vw,32px);font-weight:800;line-height:1.22;letter-spacing:-.02em;overflow-wrap:break-word;word-break:normal;-webkit-hyphens:none;hyphens:none}.ob-title--final{text-align:center}.ob-sub{font-size:14.5px;color:var(--muted);line-height:1.5;overflow-wrap:break-word}.ob-title--final+.ob-sub{text-align:center}.ob-webnote{margin:2px 0 0;font-size:13px;font-weight:600;color:var(--secondary);background:var(--primary-soft);border:1px solid var(--border-focus);border-radius:10px;padding:8px 12px;overflow-wrap:break-word}.ob-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:10px}.ob-choices--track,.ob-choices--level{grid-template-columns:repeat(2,minmax(0,1fr))}.ob-choices--daily{grid-template-columns:repeat(3,minmax(0,1fr))}.ob-choice{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:12px 14px;box-sizing:border-box;border-radius:var(--radius-sm);background:var(--card);border:1px solid var(--border);color:var(--text);text-align:left;cursor:pointer;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease,transform .15s ease}.ob-choice:hover{border-color:var(--border-focus);background:var(--card-hover)}.ob-choice:active{transform:scale(.98)}.ob-choice:focus-visible{outline:2px solid var(--secondary);outline-offset:2px}.ob-choice.selected{border-color:var(--secondary);background:var(--primary-soft);box-shadow:var(--glow-cyan)}.ob-choice-icon{flex-shrink:0;width:38px;height:38px;display:flex;align-items:center;justify-content:center;font-size:20px;border-radius:10px;background:var(--primary-soft);border:1px solid var(--border)}.ob-choice-text{display:flex;flex-direction:column;gap:2px;min-width:0}.ob-choice-text strong{font-size:14.5px;font-weight:700;line-height:1.3;overflow-wrap:break-word}.ob-choice-text small{font-size:12px;color:var(--muted);line-height:1.35;overflow-wrap:break-word}.ob-choice-check{flex-shrink:0;margin-left:auto;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:12px;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--primary),var(--secondary));opacity:0;transform:scale(.5);transition:opacity .2s ease,transform .2s var(--bounce)}.ob-choice.selected .ob-choice-check{opacity:1;transform:scale(1)}.ob-summary{margin:14px auto 0;width:100%;max-width:380px;padding:8px 18px;border-radius:var(--radius);background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow)}.ob-summary-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);font-size:14.5px;font-weight:600}.ob-summary-row:last-child{border-bottom:none}.ob-summary-ico{flex-shrink:0;font-size:18px}.ob-summary-text{overflow-wrap:break-word;word-break:normal}.ob-footer{position:sticky;bottom:0;z-index:2;display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 0 18px;background:linear-gradient(to top,var(--bg) 65%,transparent)}.ob-error{font-size:13px;font-weight:600;color:var(--danger);background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:10px;padding:8px 14px;text-align:center}.ob-cta{width:100%;max-width:420px;min-height:48px;border:none;border-radius:14px;background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;font-size:16px;font-weight:700;letter-spacing:.2px;cursor:pointer;box-shadow:var(--glow);transition:transform .15s ease,box-shadow .2s ease,opacity .2s ease,filter .2s ease}.ob-cta:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--glow-cyan);filter:brightness(1.06)}.ob-cta:active:not(:disabled){transform:scale(.98)}.ob-cta:focus-visible{outline:2px solid var(--secondary-hover);outline-offset:2px}.ob-cta:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}@media (max-width: 767px){.ob-shell{max-width:100%;padding:14px 16px 0;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.ob-header{gap:10px}.ob-back{width:40px;height:40px}.ob-logo{font-size:15px}.ob-skip{font-size:12px;padding:6px 8px}.ob-body{grid-template-columns:1fr;gap:0;padding:16px 0 8px;align-items:start}.ob-side{display:none}.ob-mini-mascot{display:flex}.ob-screen{gap:8px;animation-name:obInMobile}.ob-screen.ob-out{animation-name:obOutMobile}.ob-title{font-size:21px}.ob-sub{font-size:13.5px}.ob-choices,.ob-choices--track,.ob-choices--level,.ob-choices--daily{grid-template-columns:1fr}.ob-choice{min-height:50px}@media (min-width: 390px){.ob-choices--daily,.ob-choices--reason{grid-template-columns:repeat(2,minmax(0,1fr))}}.ob-footer{padding:12px 0 calc(14px + env(safe-area-inset-bottom))}.ob-cta{max-width:100%;min-height:50px}}@keyframes obInMobile{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes obOutMobile{to{opacity:0;transform:translateY(-20px)}}@media (min-width: 1600px){.ob-shell{max-width:1200px}.ob-mascot-host{--mascot-size: 170px}}@media (min-width: 768px) and (max-width: 1024px){.ob-body{grid-template-columns:240px 1fr;gap:28px}.ob-mascot-host{--mascot-size: 120px}.ob-choices--daily{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion: reduce){#onboardingRoot.open,.ob-screen,.ob-screen.ob-out,.ob-progress-fill,.ob-choice-check,.ob-choice,.ob-back,.ob-cta,.ob-choice.selected .ob-choice-check{animation:none!important;transition:none!important}}.ds-screen-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:flex;align-items:center;justify-content:center;padding:18px;padding-top:max(18px,env(safe-area-inset-top));padding-bottom:max(18px,env(safe-area-inset-bottom));background:radial-gradient(560px 340px at 50% -12%,rgba(37,99,235,.16),transparent 70%),radial-gradient(420px 260px at 50% 112%,rgba(56,189,248,.12),transparent 70%),#f6f9fef5;backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);overflow-y:auto;overflow-x:hidden}.ds-screen-card{position:relative;width:100%;max-width:400px;background:radial-gradient(420px 210px at 50% -8%,rgba(37,99,235,.08),transparent 70%),#fff;border:1px solid rgba(148,175,226,.35);border-radius:30px;box-shadow:0 24px 48px -14px #1e40af38,0 0 0 6px #2563eb0d;padding:30px 22px;display:flex;flex-direction:column;align-items:center;text-align:center;box-sizing:border-box;overflow:hidden}.ds-screen-badge{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:800;letter-spacing:.09em;color:#2563eb;background:#2563eb14;border:1px solid rgba(37,99,235,.28);border-radius:999px;padding:5px 14px;margin-bottom:16px;text-transform:uppercase}.ds-screen-title{font-size:clamp(1.12rem,4.6vw,1.35rem);font-weight:800;line-height:1.3;margin:0 0 8px;color:#0f172a}.ds-screen-sub{font-size:clamp(.85rem,3.6vw,.93rem);color:#64748b;line-height:1.5;margin:0 0 16px;max-width:36ch}.ds-mascot-box{width:clamp(118px,34vw,140px);height:clamp(118px,34vw,140px);display:flex;align-items:center;justify-content:center;margin:2px 0 10px;position:relative;z-index:1}.ds-mascot-box .mascot{transform:scale(.9);transform-origin:center}.ds-mascot-fallback{font-size:3.4rem;line-height:1}.ds-blue-flame{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;animation:dsFlameBreathe 2.1s ease-in-out infinite;filter:drop-shadow(0 4px 14px rgba(37,99,235,.4))}.ds-fire-svg{width:100%;height:100%;display:block;overflow:visible}.ds-fire-glow{opacity:.6;animation:dsGlowPulse 2s ease-in-out infinite}.ds-fire-outer{animation:dsOuterFlicker 1.7s ease-in-out infinite alternate;transform-origin:50% 90%}.ds-fire-inner{animation:dsInnerFlicker 1.3s ease-in-out infinite alternate;transform-origin:50% 85%}@keyframes dsFlameBreathe{0%,to{transform:scale(1) translateY(0)}50%{transform:scale(1.07) translateY(-2px)}}@keyframes dsGlowPulse{0%,to{opacity:.45}50%{opacity:.9}}@keyframes dsOuterFlicker{0%{transform:scale(1) rotate(-1deg)}to{transform:scale(1.04) rotate(1.4deg)}}@keyframes dsInnerFlicker{0%{transform:scale(.94) translateY(1px)}to{transform:scale(1.06) translateY(-1px)}}.ds-streak-counter{display:flex;align-items:center;justify-content:center;gap:10px;margin:2px 0 14px;position:relative;z-index:1}.ds-streak-number{font-size:clamp(2.5rem,13vw,3.4rem);font-weight:800;line-height:1;color:#0f172a;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.ds-streak-number.ds-blue-text{color:#2563eb}.ds-streak-unit{font-size:clamp(.85rem,3.6vw,.95rem);font-weight:700;color:#64748b;max-width:8ch;text-align:left;line-height:1.25}.ds-week-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;width:100%;margin:0 0 18px}.ds-week-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:9px 0;border-radius:14px;background:#f1f5fb;border:1px solid #e2e8f0;min-width:0}.ds-day-lbl{font-size:.68rem;font-weight:700;color:#64748b}.ds-day-dot{font-size:.82rem;font-weight:800;color:#94a3b8;line-height:1}.ds-day-done{background:linear-gradient(160deg,#2563eb24,#38bdf81a);border-color:#2563eb66}.ds-day-done .ds-day-dot{color:#2563eb}.ds-day-done .ds-day-lbl{color:#1e40af}.ds-day-freeze{background:#e0f2fe;border-color:#0ea5e973}.ds-day-today{background:#fff;border:2px solid #2563eb;box-shadow:0 0 0 3px #2563eb24}.ds-day-today .ds-day-dot{color:#2563eb}.ds-day-today .ds-day-lbl{color:#1e40af}.ds-day-missed,.ds-day-future{opacity:.55}.ds-screen-actions{display:flex;flex-direction:column;gap:10px;width:100%}.ds-btn{border:none;cursor:pointer;font-family:inherit;font-weight:700;border-radius:16px;transition:transform .15s ease,box-shadow .15s ease,background .2s ease;-webkit-tap-highlight-color:transparent}.ds-btn:active{transform:scale(.97)}.ds-btn-lg{min-height:52px;font-size:.98rem;width:100%}.ds-btn-primary{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;box-shadow:0 10px 22px -8px #2563eb8c}.ds-btn-primary:hover{background:linear-gradient(135deg,#1d4ed8,#1e40af)}.ds-btn-ghost{background:transparent;color:#2563eb;border:1.5px solid rgba(37,99,235,.35);min-height:46px;font-size:.92rem}.ds-btn-ghost:hover{background:#2563eb0f}.ds-perm-icon{width:68px;height:68px;border-radius:22px;background:linear-gradient(160deg,#2563eb1a,#38bdf814);border:1px solid rgba(37,99,235,.25);display:flex;align-items:center;justify-content:center;font-size:2rem;margin:2px 0 14px;animation:dsBellRing 2.6s ease-in-out infinite}@keyframes dsBellRing{0%,82%,to{transform:rotate(0)}85%{transform:rotate(9deg)}89%{transform:rotate(-8deg)}93%{transform:rotate(5deg)}97%{transform:rotate(-3deg)}}.ds-freeze-chip{display:inline-flex;align-items:center;gap:6px;font-size:.76rem;font-weight:700;color:#0369a1;background:#e0f2fe;border:1px solid rgba(14,165,233,.35);border-radius:999px;padding:5px 12px;margin:-6px 0 12px}.ds-freeze-toast{position:fixed;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translate(-50%);z-index:1080;display:flex;align-items:center;gap:9px;background:#fff;border:1px solid rgba(14,165,233,.45);border-radius:16px;box-shadow:0 14px 30px -10px #0284c759,0 0 0 4px #38bdf81f;padding:11px 16px;max-width:calc(100vw - 32px);box-sizing:border-box}.ds-freeze-ico{font-size:1.25rem;line-height:1}.ds-freeze-txt{font-size:.84rem;color:#334155;line-height:1.35}.ds-freeze-txt b{color:#0369a1}.ds-freeze-n{color:#0369a1;font-weight:700}.ds-celeb-overlay{background:radial-gradient(620px 380px at 50% -10%,rgba(37,99,235,.2),transparent 70%),radial-gradient(460px 280px at 50% 112%,rgba(56,189,248,.16),transparent 70%),#f6f9fef7}.ds-celeb-card{padding:32px 22px;border-color:#2563eb66;box-shadow:0 26px 56px -14px #1e40af4d,0 0 0 6px #2563eb12}.ds-celeb-halo{position:absolute;top:-46px;left:50%;transform:translate(-50%);width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(37,99,235,.2),transparent 68%);pointer-events:none;animation:dsGlowPulse 2.4s ease-in-out infinite}.ds-celeb-sub{font-size:clamp(.88rem,3.7vw,.96rem);color:#334155;line-height:1.5;margin:0 0 16px;position:relative;z-index:1}.ds-celeb-sub b{color:#f59e0b}.ds-celeb-auto-note{font-size:.76rem;font-weight:600;color:#94a3b8;margin-top:2px}.ds-particle{position:absolute;top:22%;width:7px;height:7px;border-radius:50%;background:radial-gradient(circle,#38bdf8,#2563eb);opacity:0;pointer-events:none;animation:dsParticleFloat 2.2s ease-in-out infinite}.ds-particle.ds-p0{left:14%;animation-delay:0s}.ds-particle.ds-p1{left:26%;animation-delay:.35s}.ds-particle.ds-p2{left:40%;animation-delay:.7s}.ds-particle.ds-p3{left:62%;animation-delay:.2s}.ds-particle.ds-p4{left:76%;animation-delay:.55s}.ds-particle.ds-p5{left:87%;animation-delay:.9s}.ds-particle.ds-p6{left:20%;animation-delay:1.15s}.ds-particle.ds-p7{left:70%;animation-delay:1.4s}@keyframes dsParticleFloat{0%{transform:translateY(12px) scale(.5);opacity:0}35%{opacity:.85}to{transform:translateY(-38px) scale(1);opacity:0}}.ds-anim-in{animation:dsSlideUp .34s cubic-bezier(.16,1,.3,1) forwards}.ds-anim-out{animation:dsSlideDown .26s ease forwards}@keyframes dsSlideUp{0%{opacity:0;transform:translateY(22px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes dsSlideDown{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(16px) scale(.97)}}@media (max-width: 359px){.ds-screen-card{padding:24px 14px;border-radius:24px}.ds-week-day{padding:7px 0;border-radius:11px}.ds-mascot-box{width:104px;height:104px}.ds-streak-number{font-size:2.3rem}}@media (min-width: 400px) and (max-width: 768px){.ds-screen-card{padding:34px 26px}}@media (prefers-reduced-motion: reduce){.ds-anim-in,.ds-anim-out,.ds-blue-flame,.ds-fire-glow,.ds-fire-outer,.ds-fire-inner,.ds-perm-icon,.ds-celeb-halo,.ds-particle,.ds-freeze-toast{animation:none!important;transition:none!important}}@media (min-width: 769px){.ds-screen-overlay,.ds-freeze-toast{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}}.auth-screen{--ab-0: #050816;--ab-1: #07111f;--ab-2: #08182a;--ab-acc: #2563eb;--ab-acc2: #4f46e5;--ab-acc3: #38bdf8;--ab-card: rgba(7, 17, 31, .68);--ab-card-brd: rgba(90, 140, 220, .16);--ab-input: #060b16;--ab-input-brd: rgba(96, 140, 200, .2);--ab-text: #f4f8ff;--ab-muted: #8ca3c3;--ab-label: #a9c0e2;--ab-chip-bg: rgba(13, 28, 52, .55);--ab-chip-brd: rgba(96, 150, 235, .25);--ab-chip-text: #9db8df;--ab-grid: rgba(56, 130, 246, .06);--ab-halo: rgba(37, 99, 235, .32);--ab-part: #38bdf8;--ab-tabbg: rgba(4, 10, 22, .6);--ab-shadow: 0 32px 90px rgba(1, 5, 18, .65);color:var(--ab-text);position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;justify-content:center;overflow-x:hidden;background:var(--ab-1)}[data-theme=light] .auth-screen{--ab-card: rgba(255, 255, 255, .78);--ab-card-brd: #dce7f5;--ab-input: #f7faff;--ab-input-brd: #d7e3f4;--ab-text: #0b1b33;--ab-muted: #5a6b85;--ab-label: #33486b;--ab-chip-bg: rgba(255, 255, 255, .66);--ab-chip-brd: rgba(37, 99, 235, .14);--ab-chip-text: #3b5a86;--ab-grid: rgba(37, 99, 235, .05);--ab-halo: rgba(96, 150, 255, .28);--ab-part: #7fb2ff;--ab-tabbg: #eef4fd;--ab-shadow: 0 32px 80px rgba(31, 63, 135, .16)}.auth-screen:before,.auth-screen:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;transition:opacity .6s ease}.auth-screen:before{background:radial-gradient(1100px 700px at 85% 110%,rgba(37,99,235,.16),transparent 60%),radial-gradient(900px 600px at 10% -10%,rgba(79,70,229,.18),transparent 55%),linear-gradient(135deg,var(--ab-0) 0%,var(--ab-1) 45%,var(--ab-2) 100%);opacity:1}.auth-screen:after{background:radial-gradient(1000px 640px at 88% 108%,rgba(37,99,235,.1),transparent 60%),radial-gradient(820px 560px at 8% -12%,rgba(79,70,229,.08),transparent 55%),linear-gradient(135deg,#fff,#f7faff 48%,#eef5ff);opacity:0}[data-theme=light] .auth-screen:before{opacity:0}[data-theme=light] .auth-screen:after{opacity:1}.auth-screen .auth-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden;animation:authBgFade 1.4s ease backwards}@keyframes authBgFade{0%{opacity:0}to{opacity:1}}.auth-screen .orb{position:absolute;border-radius:50%;pointer-events:none;filter:blur(90px);opacity:.16;animation:authOrbFloat 14s ease-in-out infinite;transition:opacity .5s ease}.auth-screen .orb-1{width:520px;height:520px;background:#4f46e5;top:-160px;left:-140px}.auth-screen .orb-2{width:420px;height:420px;background:#2563eb;bottom:-120px;right:-100px;animation-delay:-4s}.auth-screen .orb-3{width:300px;height:300px;background:#38bdf8;top:38%;left:55%;opacity:.1;animation-delay:-8s}[data-theme=light] .auth-screen .orb{opacity:.15;filter:blur(80px)}[data-theme=light] .auth-screen .orb-3{opacity:.08}@keyframes authOrbFloat{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-18px) scale(1.05)}66%{transform:translate(-18px,22px) scale(.96)}}.auth-screen .auth-grid{position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;z-index:1;pointer-events:none;background-image:linear-gradient(var(--ab-grid) 1px,transparent 1px),linear-gradient(90deg,var(--ab-grid) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse 95% 85% at 50% 45%,#000 25%,transparent 78%);mask-image:radial-gradient(ellipse 95% 85% at 50% 45%,#000 25%,transparent 78%);transition:opacity .5s ease}.auth-screen .auth-particles{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;color:var(--ab-part);transition:color .5s ease}.auth-screen .auth-particles:before,.auth-screen .auth-particles:after{content:"";position:absolute;top:0;left:0;width:3px;height:3px;border-radius:50%;background:currentColor;box-shadow:8vw 14vh 0 0 currentColor,21vw 76vh 0 -1px currentColor,33vw 32vh 0 0 currentColor,47vw 9vh 0 -1px currentColor,57vw 58vh 0 0 currentColor,71vw 24vh 0 -1px currentColor,83vw 66vh 0 0 currentColor,93vw 40vh 0 -1px currentColor,12vw 52vh 0 0 currentColor,65vw 88vh 0 -1px currentColor,38vw 92vh 0 0 currentColor,88vw 12vh 0 -1px currentColor;opacity:.55;animation:authParticleDrift 22s linear infinite}.auth-screen .auth-particles--b:before{width:2px;height:2px;box-shadow:15vw 24vh 0 0 currentColor,28vw 66vh 0 -1px currentColor,42vw 18vh 0 0 currentColor,52vw 82vh 0 -1px currentColor,63vw 44vh 0 0 currentColor,76vw 74vh 0 -1px currentColor,91vw 88vh 0 0 currentColor,6vw 88vh 0 -1px currentColor,97vw 60vh 0 0 currentColor,35vw 6vh 0 -1px currentColor;opacity:.4;animation:authParticleDrift 30s linear infinite reverse}[data-theme=light] .auth-screen .auth-particles{opacity:.5}@keyframes authParticleDrift{0%{transform:translateZ(0)}to{transform:translate3d(-10px,-36px,0)}}.auth-screen .auth-wave{position:absolute;z-index:1;pointer-events:none;overflow:visible;opacity:.6;animation:authWaveDrift 16s ease-in-out infinite alternate;transition:opacity .5s ease}.auth-screen .auth-wave--l{left:-140px;top:-120px;width:min(46vw,660px);color:#38bdf8}.auth-screen .auth-wave--r{right:-140px;bottom:-140px;width:min(52vw,760px);color:#2563eb;animation-duration:20s;animation-delay:-6s}[data-theme=light] .auth-screen .auth-wave--l{opacity:.32}[data-theme=light] .auth-screen .auth-wave--r{opacity:.26}@keyframes authWaveDrift{0%{transform:translateZ(0)}to{transform:translate3d(26px,14px,0)}}.auth-screen .auth-robot{position:absolute;z-index:3;left:2vw;bottom:0;width:min(30vw,480px);min-width:320px;height:74%;max-height:780px;pointer-events:none;will-change:transform;transition:opacity .6s ease;animation:authRobotIn 1.1s cubic-bezier(.16,1,.3,1) .15s backwards}@keyframes authRobotIn{0%{opacity:0;transform:scale(.92) translateY(30px)}to{opacity:1;transform:scale(1) translateY(0)}}.auth-screen.auth-robot-peek .auth-robot-peeker{animation:authRobotPeek 13s ease-in-out 1.6s infinite;will-change:transform}@keyframes authRobotPeek{0%,58%{transform:translate(0) translateY(0)}63%,78%{transform:translate(44px) translateY(-14px)}82%,to{transform:translate(0) translateY(0)}}.auth-screen .auth-robot-halo{position:absolute;left:50%;top:52%;width:92%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,var(--ab-halo) 0%,transparent 66%);filter:blur(30px);transition:background .5s ease}.auth-screen .auth-robot-inner{position:absolute;top:0;right:0;bottom:0;left:0;animation:authRobotFloat 6.5s ease-in-out infinite}@keyframes authRobotFloat{0%,to{transform:translateZ(0)}50%{transform:translate3d(0,-16px,0)}}.auth-screen .auth-robot-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;object-position:center bottom;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;filter:brightness(.82) saturate(1.05) drop-shadow(0 30px 60px rgba(2,8,26,.6));transition:filter .5s ease}[data-theme=light] .auth-screen .auth-robot{--ab-halo: rgba(96, 150, 255, .3)}[data-theme=light] .auth-screen .auth-robot-img{filter:brightness(1.03) contrast(1.02) drop-shadow(0 26px 48px rgba(43,92,176,.35))}.auth-screen .auth-robot-sweep{position:absolute;top:6%;right:18%;bottom:10%;left:18%;pointer-events:none;background:linear-gradient(115deg,transparent 40%,rgba(160,210,255,.14) 50%,transparent 60%);transform:translate(-120%);animation:authRobotSweep 7s ease-in-out infinite}@keyframes authRobotSweep{0%,55%{transform:translate(-120%)}75%,to{transform:translate(120%)}}.auth-screen .auth-robot-glow{position:absolute;left:50%;bottom:4%;width:58%;height:34px;transform:translate(-50%);border-radius:50%;background:radial-gradient(ellipse,rgba(56,140,255,.4),transparent 70%);filter:blur(12px);transition:background .5s ease}[data-theme=light] .auth-screen .auth-robot-glow{background:radial-gradient(ellipse,rgba(70,130,235,.3),transparent 70%)}.auth-screen .auth-robot-broken{display:none}.auth-screen .auth-chips{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none;will-change:transform}.auth-screen .tech-chip{position:absolute;pointer-events:none;padding:9px 16px;border-radius:14px;background:var(--ab-chip-bg);border:1px solid var(--ab-chip-brd);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--ab-chip-text);font-weight:700;font-size:14px;letter-spacing:.04em;white-space:nowrap;box-shadow:0 14px 34px #02081a59;transition:background .5s ease,border-color .5s ease,color .5s ease,box-shadow .5s ease;animation:authChipFloat 8s ease-in-out infinite}[data-theme=light] .auth-screen .tech-chip{box-shadow:0 12px 28px #2e5aaf1f}.auth-screen .tech-chip i{font-style:normal;display:inline-flex;align-items:center;gap:6px}.auth-screen .tech-chip.tc-1 i,.auth-screen .tech-chip.tc-2 i,.auth-screen .tech-chip.tc-3 i{font-family:Cascadia Code,Fira Code,Consolas,monospace;color:var(--ab-acc3);font-weight:600}[data-theme=light] .auth-screen .tech-chip.tc-1 i,[data-theme=light] .auth-screen .tech-chip.tc-2 i,[data-theme=light] .auth-screen .tech-chip.tc-3 i{color:#2563eb}.auth-screen .tc-1{top:17%;left:6.5%;animation-duration:7.5s}.auth-screen .tc-2{top:37%;left:15%;animation-duration:9s;animation-delay:-2s}.auth-screen .tc-3{top:68%;left:5.5%;animation-duration:8.5s;animation-delay:-4s}.auth-screen .tc-4{top:27%;left:22%;font-size:15px;animation-duration:10s;animation-delay:-1s}.auth-screen .tc-5{top:55%;left:19%;animation-duration:9.5s;animation-delay:-3.5s}.auth-screen .tc-6{top:22%;right:9%;animation-duration:8s;animation-delay:-2.5s}.auth-screen .tc-7{top:47%;right:4.5%;animation-duration:10.5s;animation-delay:-5s}.auth-screen .tc-8{top:71%;right:11%;animation-duration:9s;animation-delay:-1.5s}.auth-screen .tc-9{top:9%;right:22%;font-size:15px;animation-duration:8.8s;animation-delay:-3s}@keyframes authChipFloat{0%,to{transform:translateZ(0) rotate(0)}50%{transform:translate3d(0,-12px,0) rotate(-1.4deg)}}.auth-screen .auth-codehint{position:absolute;top:24%;right:16.5%;pointer-events:none;margin:0;padding:12px 16px;border-radius:12px;border:1px solid var(--ab-chip-brd);background:var(--ab-chip-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--ab-chip-text);font-family:Cascadia Code,Fira Code,Consolas,monospace;font-size:12px;line-height:1.7;white-space:pre;opacity:.85;transition:background .5s ease,border-color .5s ease,color .5s ease;animation:authChipFloat 11s ease-in-out -4s infinite}.auth-screen .auth-tagline{position:absolute;z-index:4;left:4.5vw;bottom:9%;pointer-events:none;margin:0;font-size:19px;line-height:1.55;font-weight:600;letter-spacing:.01em;color:var(--ab-muted);transition:color .5s ease;animation:authChipFloat 9s ease-in-out -2s infinite}.auth-screen .auth-container{position:relative;z-index:10;width:100%;max-width:480px;padding:24px 20px 40px;max-height:100vh;max-height:100svh;overflow-y:auto;scrollbar-width:none}.auth-screen .auth-container::-webkit-scrollbar{display:none}.auth-screen .auth-brand{text-align:center;margin-bottom:26px;animation:authFadeUp .8s cubic-bezier(.16,1,.3,1) .1s backwards}.auth-screen .auth-logo{width:76px;height:76px;background:linear-gradient(135deg,#2563eb,#4f46e5 55%,#38bdf8 130%);border-radius:22px;display:flex;align-items:center;justify-content:center;font-size:38px;margin:0 auto 18px;box-shadow:0 18px 50px #2563eb6b,inset 0 1px #ffffff59;position:relative;animation:authLogoFloat 5s ease-in-out infinite}[data-theme=light] .auth-screen .auth-logo{box-shadow:0 18px 44px #2563eb4d,inset 0 1px #ffffff80}@keyframes authLogoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.auth-screen .auth-brand h1{font-size:36px;font-weight:800;letter-spacing:-.6px;color:#fff}[data-theme=light] .auth-screen .auth-brand h1{color:#0b1b33}.auth-screen .auth-brand h1 span{background:linear-gradient(90deg,#6d8cff,#38bdf8);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}[data-theme=light] .auth-screen .auth-brand h1 span{background:linear-gradient(90deg,#2563eb,#4f46e5);-webkit-background-clip:text;background-clip:text}.auth-screen .auth-brand p{color:var(--ab-muted);font-size:14.5px;margin-top:9px;transition:color .5s ease}.auth-screen .auth-card{position:relative;width:100%;background:var(--ab-card);border:1px solid var(--ab-card-brd);border-radius:28px;padding:30px 28px 28px;box-shadow:var(--ab-shadow);backdrop-filter:blur(22px) saturate(160%);-webkit-backdrop-filter:blur(22px) saturate(160%);overflow:hidden;transition:background .5s ease,border-color .5s ease,box-shadow .5s ease;animation:authFadeUp .9s cubic-bezier(.16,1,.3,1) .25s backwards;will-change:transform}[data-theme=light] .auth-screen .auth-card{background:#ffffffd1;box-shadow:0 30px 80px #1f3f8724,0 4px 18px #1f3f870f,inset 0 1px #ffffffe6}@keyframes authFadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.auth-screen .auth-card-topline{position:absolute;top:0;left:8%;right:8%;height:1.5px;background:linear-gradient(90deg,transparent,rgba(99,160,255,.55),transparent);pointer-events:none}.auth-screen .auth-card:before{content:"";position:absolute;inset:0 0 auto 0;height:45%;background:linear-gradient(180deg,rgba(120,170,255,.06),transparent);pointer-events:none}[data-theme=light] .auth-screen .auth-card:before{background:linear-gradient(180deg,rgba(37,99,235,.035),transparent)}.auth-screen .auth-tabs{display:flex;gap:4px;background:var(--ab-tabbg);border:1px solid var(--ab-card-brd);border-radius:16px;padding:5px;margin-bottom:24px;position:relative;transition:background .5s ease,border-color .5s ease}.auth-screen .auth-tab{flex:1;min-height:44px;padding:10px;border-radius:12px;font-weight:600;font-size:15px;color:var(--ab-muted);transition:color .3s ease,background .3s ease,box-shadow .3s ease}.auth-screen .auth-tab:hover:not(.active){color:var(--ab-text)}.auth-screen .auth-tab.active{background:linear-gradient(135deg,#2563eb,#4f46e5);color:#fff;box-shadow:0 6px 20px #2563eb6b}.auth-screen .auth-form{display:none}.auth-screen .auth-form.active{display:block}.auth-screen .form-group{margin-bottom:16px}.auth-screen .form-row{display:flex;gap:12px}.auth-screen .form-row .form-group{flex:1;min-width:0}.auth-screen .form-group label{display:block;font-size:13px;font-weight:600;margin-bottom:7px;color:var(--ab-label);transition:color .5s ease}.auth-screen .input-shell{position:relative}.auth-screen .form-group input{width:100%;min-height:50px;padding:13px 16px;background:var(--ab-input);border:1px solid var(--ab-input-brd);border-radius:14px;color:var(--ab-text);font-size:15px;transition:border var(--transition, .2s ease),box-shadow .25s ease,background .5s ease,color .5s ease}.auth-screen .input-shell .input-ico{position:absolute;right:16px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:var(--ab-muted);opacity:.7;pointer-events:none;transition:color .3s ease}.auth-screen .input-shell .input-ico svg{width:100%;height:100%;display:block}.auth-screen .input-shell input{padding-right:46px}.auth-screen .form-group input:focus{outline:none;border-color:#3882f6a6;box-shadow:0 0 0 4px #2563eb29}.auth-screen .input-shell:focus-within .input-ico{color:var(--ab-acc3);opacity:1}.auth-screen .form-group input::placeholder{color:var(--ab-muted);opacity:.55}.auth-screen .pwd-wrap{position:relative}.auth-screen .pwd-wrap input{padding-right:52px}.auth-screen .pwd-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:10px;color:var(--ab-muted);opacity:.85;transition:opacity var(--transition, .2s ease),color .2s ease,background .2s ease}.auth-screen .pwd-toggle svg{width:21px;height:21px;display:block}.auth-screen .pwd-toggle:hover{opacity:1;color:var(--ab-acc3);background:#3882f61a}.auth-screen .pwd-toggle:focus-visible{outline:2px solid var(--ab-acc3);outline-offset:2px}.auth-screen .auth-submit{width:100%;min-height:52px;margin-top:4px;border-radius:16px;font-size:16px;font-weight:700;letter-spacing:.01em;background:linear-gradient(135deg,#2563eb,#4f46e5);color:#fff;box-shadow:0 14px 34px #2563eb66,inset 0 1px #ffffff38;transition:transform .25s ease,box-shadow .25s ease,background .3s ease}.auth-screen .auth-submit:hover{transform:translateY(-2px);box-shadow:0 18px 42px #2563eb80,inset 0 1px #ffffff38}.auth-screen .auth-submit:active{transform:scale(.98)}.auth-screen .auth-submit:focus-visible{outline:2px solid #7dd3fc;outline-offset:3px}.auth-screen .btn-arrow{display:inline-block;transition:transform .25s ease}.auth-screen .auth-submit:hover .btn-arrow{transform:translate(4px)}.auth-screen .auth-theme-toggle{position:absolute;z-index:20;top:18px;right:18px;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:14px;font-size:18px;background:var(--ab-chip-bg);border:1px solid var(--ab-chip-brd);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--ab-text);box-shadow:0 8px 24px #02081a59;transition:background .5s ease,border-color .5s ease,transform .25s ease,box-shadow .25s ease}.auth-screen .auth-theme-toggle:hover{transform:translateY(-2px);border-color:#63a0ff80}.auth-screen .auth-theme-toggle:focus-visible{outline:2px solid var(--ab-acc3);outline-offset:2px}.auth-screen .auth-theme-toggle .theme-icon-light,[data-theme=light] .auth-screen .auth-theme-toggle .theme-icon-dark{display:none}[data-theme=light] .auth-screen .auth-theme-toggle .theme-icon-light{display:inline}@media (max-width: 767px){.auth-screen{align-items:flex-start}.auth-screen .auth-container{max-width:500px;padding:20px 16px 32px}.auth-screen .auth-robot{top:auto;bottom:0;left:50%;right:auto;transform:translate(-50%);width:min(88vw,340px);min-width:0;height:250px;max-height:none;opacity:.42;animation:none}.auth-screen .auth-robot-peek .auth-robot-peeker{animation:none}.auth-screen .auth-tagline,.auth-screen .tc-2,.auth-screen .tc-5,.auth-screen .tc-7{display:none}.auth-screen .tech-chip{padding:6px 11px;font-size:11.5px;border-radius:11px;opacity:.55}.auth-screen .tc-1{top:12%;left:5%}.auth-screen .tc-3{top:46%;left:3.5%}.auth-screen .tc-4{top:24%;left:4%}.auth-screen .tc-6{top:15%;right:5%}.auth-screen .tc-8{top:52%;right:4%}.auth-screen .tc-9{top:5.5%;right:6%}.auth-screen .auth-codehint{display:none}.auth-screen .auth-brand{margin-bottom:18px}.auth-screen .auth-logo{width:62px;height:62px;font-size:31px;border-radius:18px;margin-bottom:13px}.auth-screen .auth-brand h1{font-size:28px}.auth-screen .auth-brand p{font-size:13.5px;margin-top:6px}.auth-screen .auth-card{padding:22px 20px;border-radius:24px}.auth-screen .auth-tab{font-size:14.5px;min-height:44px}.auth-screen .form-group input{font-size:15px;min-height:48px}.auth-screen .auth-submit{min-height:50px;font-size:15.5px}.auth-screen .auth-theme-toggle{top:12px;right:12px;width:42px;height:42px}@media (max-width: 360px){.auth-screen .auth-robot{width:96vw;height:215px;opacity:.35}.auth-screen .auth-brand h1{font-size:25px}.auth-screen .auth-card{padding:20px 16px;border-radius:22px}.auth-screen .tech-chip.tc-4{display:none}}}@media (max-width: 767px) and (max-height: 620px){.auth-screen .auth-robot{height:170px;opacity:.3}.auth-screen .auth-brand{margin-bottom:12px}.auth-screen .auth-logo{width:50px;height:50px;font-size:25px;margin-bottom:9px}}@media (min-width: 768px){.auth-screen .auth-robot{left:3vw;bottom:2vh;width:min(38vw,470px);min-width:300px;height:70%}.auth-screen .auth-tagline{left:5vw;bottom:10%;font-size:21px}}@media (min-width: 1024px){.auth-screen .auth-container{max-width:500px;padding:32px 24px 48px}.auth-screen .auth-brand{margin-bottom:30px}.auth-screen .auth-brand h1{font-size:40px}.auth-screen .auth-robot{left:3.5vw;bottom:0;width:min(34vw,520px);min-width:360px;height:76%;max-height:820px}}@media (min-width: 1440px){.auth-screen .auth-container{max-width:500px}.auth-screen .auth-card{padding:32px 30px 30px}.auth-screen .auth-brand h1{font-size:42px}.auth-screen .auth-logo{width:82px;height:82px;font-size:41px}.auth-screen .auth-robot{left:6vw;width:min(30vw,540px)}}@media (min-width: 1800px){.auth-screen .auth-robot{left:9vw;height:78%}.auth-screen .auth-tagline{left:7vw;bottom:11%;font-size:23px}}@media (min-width: 768px) and (max-width: 1023px){.auth-screen .auth-tagline{display:none}.auth-screen .auth-robot{opacity:.75}}.auth-screen .auth-tab:focus-visible,.auth-screen .auth-theme-toggle:focus-visible,.auth-screen .auth-submit:focus-visible,.auth-screen .pwd-toggle:focus-visible,.auth-screen .form-group input:focus-visible{outline:2px solid var(--ab-acc3);outline-offset:2px}@media (prefers-reduced-motion: reduce){.auth-screen .auth-bg,.auth-screen .orb,.auth-screen .auth-grid,.auth-screen .auth-particles:before,.auth-screen .auth-particles:after,.auth-screen .auth-wave,.auth-screen .auth-robot,.auth-screen .auth-robot-peek .auth-robot-peeker,.auth-screen .auth-robot-inner,.auth-screen .auth-robot-sweep,.auth-screen .auth-chips,.auth-screen .tech-chip,.auth-screen .auth-codehint,.auth-screen .auth-tagline,.auth-screen .auth-brand,.auth-screen .auth-card,.auth-screen .auth-logo{animation:none!important;transition:none!important}.auth-screen .auth-robot{opacity:.9}}@media print{.auth-screen .auth-bg,.auth-screen .auth-robot,.auth-screen .auth-chips,.auth-screen .auth-tagline,.auth-screen .auth-theme-toggle{display:none!important}}:root{--itt-primary: #2563EB;--itt-primary-hover: #3B82F6;--itt-primary-dark: #1D4ED8;--itt-primary-bright: #60A5FA;--itt-cyan: #38BDF8;--itt-primary-soft: rgba(37, 99, 235, .14);--itt-primary-soft-2: rgba(37, 99, 235, .08);--itt-bg: #050816;--itt-bg-alt: #08111F;--itt-surface: #0F172A;--itt-surface-2: #111C31;--itt-surface-3: #16233D;--itt-input-bg: #0B1628;--itt-sidebar-bg: rgba(8, 17, 31, .94);--itt-topbar-bg: rgba(8, 17, 31, .88);--itt-text: #F8FAFC;--itt-muted: #94A3B8;--itt-faint: #64748B;--itt-border: #23314B;--itt-border-soft: #1B2740;--itt-border-strong: #2E4066;--itt-border-focus: rgba(59, 130, 246, .45);--itt-success: #22C55E;--itt-success-soft: rgba(34, 197, 94, .14);--itt-danger: #EF4444;--itt-danger-soft: rgba(239, 68, 68, .14);--itt-warning: #F59E0B;--itt-warning-soft: rgba(245, 158, 11, .14);--itt-streak: #38BDF8;--itt-streak-hot: #F97316;--itt-streak-soft: rgba(56, 189, 248, .16);--itt-freeze: #7DD3FC;--itt-freeze-soft: rgba(125, 211, 252, .16);--itt-xp: #FACC15;--itt-xp-soft: rgba(250, 204, 21, .14);--itt-purple: #8B5CF6;--itt-purple-soft: rgba(139, 92, 246, .12);--itt-shadow-xs: 0 1px 3px rgba(2, 6, 23, .35);--itt-shadow-sm: 0 4px 16px rgba(2, 6, 23, .28);--itt-shadow-md: 0 8px 30px rgba(2, 6, 23, .42);--itt-shadow-lg: 0 20px 50px rgba(2, 6, 23, .55);--itt-shadow-primary: 0 6px 20px rgba(37, 99, 235, .32);--itt-shadow-primary-hover: 0 10px 28px rgba(37, 99, 235, .42);--itt-radius-xs: 8px;--itt-radius-sm: 12px;--itt-radius-md: 14px;--itt-radius-lg: 16px;--itt-radius-xl: 20px;--itt-radius-2xl: 24px;--itt-radius-hero: 32px;--itt-radius-pill: 999px;--itt-sp-1: 4px;--itt-sp-2: 8px;--itt-sp-3: 12px;--itt-sp-4: 16px;--itt-sp-5: 20px;--itt-sp-6: 24px;--itt-sp-8: 32px;--itt-sp-10: 40px;--itt-sp-12: 48px;--itt-dur-fast: .18s;--itt-dur: .3s;--itt-dur-slow: .5s;--itt-ease: cubic-bezier(.4, 0, .2, 1);--itt-ease-spring: cubic-bezier(.16, 1, .3, 1);--itt-h1: clamp(26px, 2.6vw, 38px);--itt-h2: clamp(20px, 2vw, 27px);--itt-h3: clamp(17px, 1.6vw, 21px);--itt-body: 15px;--itt-small: 13px;--bg: #08111F;--bg-alt: #0B1628;--card: #0F172A;--card-hover: #111C31;--border: #23314B;--border-focus: rgba(59, 130, 246, .45);--primary: #2563EB;--primary-hover: #3B82F6;--primary-dark: #1D4ED8;--primary-soft: rgba(37, 99, 235, .14);--secondary: #38BDF8;--secondary-hover: #7DD3FC;--success: #22C55E;--danger: #EF4444;--warning: #F59E0B;--text: #F8FAFC;--muted: #94A3B8;--sidebar: rgba(8, 17, 31, .94);--shadow: 0 8px 30px rgba(2, 6, 23, .42);--shadow-soft: 0 4px 16px rgba(2, 6, 23, .28);--glow: 0 8px 30px rgba(37, 99, 235, .18);--glow-cyan: 0 8px 30px rgba(56, 189, 248, .16);--radius: 16px;--radius-sm: 12px;--transition: .25s ease;--glass: blur(12px) saturate(150%)}[data-theme=light]{--itt-primary: #2563EB;--itt-primary-hover: #1D4ED8;--itt-primary-dark: #1E40AF;--itt-primary-bright: #3B82F6;--itt-cyan: #0EA5E9;--itt-primary-soft: rgba(37, 99, 235, .09);--itt-primary-soft-2: rgba(37, 99, 235, .05);--itt-bg: #F8FAFC;--itt-bg-alt: #F4F8FF;--itt-surface: #FFFFFF;--itt-surface-2: #F1F6FF;--itt-surface-3: #E8F0FC;--itt-input-bg: #FFFFFF;--itt-sidebar-bg: rgba(255, 255, 255, .94);--itt-topbar-bg: rgba(255, 255, 255, .88);--itt-text: #0F172A;--itt-muted: #64748B;--itt-faint: #94A3B8;--itt-border: #DCE8F7;--itt-border-soft: #E2E8F0;--itt-border-strong: #B9CCED;--itt-border-focus: rgba(37, 99, 235, .35);--itt-success: #16A34A;--itt-success-soft: rgba(22, 163, 74, .1);--itt-danger: #DC2626;--itt-danger-soft: rgba(220, 38, 38, .08);--itt-warning: #D97706;--itt-warning-soft: rgba(217, 119, 6, .1);--itt-streak: #0EA5E9;--itt-streak-hot: #EA580C;--itt-streak-soft: rgba(14, 165, 233, .12);--itt-freeze: #38BDF8;--itt-freeze-soft: rgba(56, 189, 248, .14);--itt-xp: #CA8A04;--itt-xp-soft: rgba(202, 138, 4, .12);--itt-purple: #7C3AED;--itt-purple-soft: rgba(124, 58, 237, .08);--itt-shadow-xs: 0 1px 3px rgba(15, 23, 42, .06);--itt-shadow-sm: 0 4px 16px rgba(15, 23, 42, .05);--itt-shadow-md: 0 8px 30px rgba(15, 23, 42, .08);--itt-shadow-lg: 0 20px 50px rgba(15, 23, 42, .12);--itt-shadow-primary: 0 6px 20px rgba(37, 99, 235, .22);--itt-shadow-primary-hover: 0 10px 28px rgba(37, 99, 235, .3);--bg: #F8FAFC;--bg-alt: #F4F8FF;--card: #FFFFFF;--card-hover: #F1F6FF;--border: #DCE8F7;--border-focus: rgba(37, 99, 235, .35);--primary: #2563EB;--primary-hover: #1D4ED8;--primary-dark: #1E40AF;--primary-soft: rgba(37, 99, 235, .09);--secondary: #0EA5E9;--secondary-hover: #38BDF8;--success: #16A34A;--danger: #DC2626;--warning: #D97706;--text: #0F172A;--muted: #64748B;--sidebar: rgba(255, 255, 255, .94);--shadow: 0 8px 30px rgba(15, 23, 42, .08);--shadow-soft: 0 4px 16px rgba(15, 23, 42, .05);--glow: 0 8px 30px rgba(37, 99, 235, .1);--glow-cyan: 0 8px 30px rgba(14, 165, 233, .1)}:root{--m-accent: #2563EB;--m-accent-2: #38BDF8;--m-glass: rgba(8, 17, 31, .92);--m-glass-2: rgba(15, 23, 42, .85);--m-border: rgba(37, 99, 235, .24)}[data-theme=light]{--m-accent: #2563EB;--m-accent-2: #0EA5E9;--m-glass: rgba(255, 255, 255, .94);--m-glass-2: rgba(241, 246, 255, .9);--m-border: rgba(37, 99, 235, .18)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:.01em}h1,h2,h3,h4{font-weight:700;letter-spacing:-.02em;line-height:1.2}::selection{background:#2563eb59;color:#fff}.btn{min-height:46px;padding:12px 22px;border-radius:var(--itt-radius-md);font-weight:600;font-size:15px;letter-spacing:.01em;transition:background var(--itt-dur) var(--itt-ease),color var(--itt-dur) var(--itt-ease),border-color var(--itt-dur) var(--itt-ease),box-shadow var(--itt-dur) var(--itt-ease),transform var(--itt-dur-fast) var(--itt-ease);display:inline-flex;align-items:center;justify-content:center;gap:8px;position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent}.btn:active{transform:scale(.97)!important;transition:transform .1s!important}.btn:focus-visible{outline:2px solid var(--itt-primary-bright);outline-offset:2px}.btn:disabled,.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none!important}.btn-primary{background:var(--itt-primary);color:#fff;box-shadow:var(--itt-shadow-primary)}.btn-primary:hover{background:var(--itt-primary-hover);box-shadow:var(--itt-shadow-primary-hover);transform:translateY(-1px)}.btn-ghost{background:var(--itt-surface);border:1px solid var(--itt-border-strong);color:var(--itt-primary);font-weight:600}.btn-ghost:hover{background:var(--itt-surface-2);border-color:var(--itt-primary);color:var(--itt-primary-hover);transform:translateY(-1px);box-shadow:var(--itt-shadow-sm)}.btn-danger{background:var(--itt-danger);color:#fff;box-shadow:0 6px 20px #ef444447}.btn-danger:hover{background:#f87171;box-shadow:0 10px 28px #ef444461;transform:translateY(-1px)}.btn-lg{min-height:52px;padding:14px 30px;font-size:16px;border-radius:var(--itt-radius-lg)}.btn-sm{min-height:36px;padding:7px 14px;font-size:13px;border-radius:var(--itt-radius-xs)}.btn-buy{background:var(--itt-primary);color:#fff;border-radius:var(--itt-radius-md);font-weight:600;box-shadow:var(--itt-shadow-primary)}.btn-buy:hover:not(:disabled){background:var(--itt-primary-hover);transform:translateY(-1px);box-shadow:var(--itt-shadow-primary-hover)}.btn-buy.owned{background:var(--itt-success);box-shadow:0 6px 20px #22c55e40}.btn-equip{background:var(--itt-primary);color:#fff;border-radius:var(--itt-radius-pill);font-weight:600}.btn-equip.equipped{background:var(--itt-success)}.btn-unequip{background:var(--itt-surface-2);border:1px solid var(--itt-border);color:var(--itt-muted);border-radius:var(--itt-radius-pill)}.btn-unequip:hover{border-color:var(--itt-danger);color:var(--itt-danger)}.btn-success{background:var(--itt-success)!important;color:#fff!important;border-radius:var(--itt-radius-md)}.btn-success:hover:not(:disabled){background:var(--itt-success)!important;filter:brightness(1.08)}.link-btn{color:var(--itt-primary);font-weight:600}@media (max-width: 768px){.btn{min-height:50px;padding:13px 22px}.btn-sm{min-height:40px}}.form-group input,.form-group select,.form-group textarea{min-height:50px;padding:12px 16px;background:var(--itt-input-bg);border:1px solid var(--itt-border);border-radius:var(--itt-radius-md);color:var(--itt-text);font-size:15px;transition:border-color var(--itt-dur) var(--itt-ease),box-shadow var(--itt-dur) var(--itt-ease),background var(--itt-dur) var(--itt-ease)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--itt-primary);box-shadow:0 0 0 4px var(--itt-primary-soft);background:var(--itt-surface)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--itt-faint)}.form-group.error input,.form-group input.input-error,.form-group input.is-invalid{border-color:var(--itt-danger);box-shadow:0 0 0 4px var(--itt-danger-soft)}.form-group input.input-success,.form-group input.is-valid{border-color:var(--itt-success);box-shadow:0 0 0 4px var(--itt-success-soft)}a:focus-visible,.nav-item:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--itt-primary-bright);outline-offset:2px}.card{background:var(--itt-surface);border:1px solid var(--itt-border);border-radius:var(--itt-radius-xl);box-shadow:var(--itt-shadow-sm);transition:border-color var(--itt-dur) var(--itt-ease),box-shadow var(--itt-dur) var(--itt-ease),transform var(--itt-dur) var(--itt-ease)}.card:hover{border-color:#2563eb59;box-shadow:var(--itt-shadow-md);transform:translateY(-2px)}.card-header{border-bottom:1px solid var(--itt-border-soft)}.card-header h3{font-size:16px;font-weight:700}.modal-overlay{background:#0306129e;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}[data-theme=light] .modal-overlay{background:#0f172a61}.modal{background:var(--itt-surface);border:1px solid var(--itt-border);border-radius:var(--itt-radius-2xl);box-shadow:var(--itt-shadow-lg);animation:slideUp .35s var(--itt-ease-spring)}.modal-header{border-bottom:1px solid var(--itt-border-soft)}.modal-footer{border-top:1px solid var(--itt-border-soft)}.modal-close{border-radius:var(--itt-radius-xs)}.modal-close:hover{background:var(--itt-surface-2);transform:rotate(90deg)}.toast{background:var(--itt-surface);border:1px solid var(--itt-border);border-radius:var(--itt-radius-md);box-shadow:var(--itt-shadow-md);font-weight:500;animation:toastIn .3s var(--itt-ease-spring)}.toast.success{border-left:4px solid var(--itt-success);background:linear-gradient(135deg,var(--itt-success-soft),var(--itt-surface));box-shadow:0 8px 24px #22c55e2e}.toast.error{border-left:4px solid var(--itt-danger);background:linear-gradient(135deg,var(--itt-danger-soft),var(--itt-surface));box-shadow:0 8px 24px #ef44442e}.toast.info{border-left:4px solid var(--itt-primary);background:linear-gradient(135deg,var(--itt-primary-soft),var(--itt-surface));box-shadow:var(--itt-shadow-md)}.toast.freeze{border-left:4px solid var(--itt-freeze);background:linear-gradient(135deg,var(--itt-freeze-soft),var(--itt-surface))}.toast.streak{border-left:4px solid var(--itt-streak);background:linear-gradient(135deg,var(--itt-streak-soft),var(--itt-surface))}.nav-item{border-radius:var(--itt-radius-sm);transition:background var(--itt-dur-fast) var(--itt-ease),color var(--itt-dur-fast) var(--itt-ease)}.nav-item:hover{background:var(--itt-primary-soft-2);color:var(--itt-text)}.nav-item.active{background:var(--itt-primary-soft);color:var(--itt-primary-bright);font-weight:600}[data-theme=light] .nav-item.active{color:var(--itt-primary)}.sidebar{background:var(--itt-sidebar-bg)}.empty-state{background:var(--itt-surface);border:1px dashed var(--itt-border-strong);border-radius:var(--itt-radius-xl);padding:var(--itt-sp-8) var(--itt-sp-5)}.empty-state-icon{opacity:.9}.empty-state h3{font-size:17px;font-weight:700}.skeleton{background:linear-gradient(90deg,var(--itt-surface-2) 25%,var(--itt-surface-3) 50%,var(--itt-surface-2) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border-radius:var(--itt-radius-xs)}@keyframes ittFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes ittPulseSoft{0%,to{opacity:1}50%{opacity:.65}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.itt-container{max-width:1440px;margin:0 auto;padding:var(--itt-sp-4)}@media (min-width: 768px){.itt-container{padding:var(--itt-sp-5) var(--itt-sp-6)}}@media (min-width: 1280px){.itt-container{padding:var(--itt-sp-6) var(--itt-sp-10)}}@media (max-width: 768px){html,body,.app,.main,.content,.page{overflow-x:hidden}}.card,.modal,.toast,.sidebar{backdrop-filter:none;-webkit-backdrop-filter:none}.welcome-banner:before{filter:none;background:radial-gradient(circle at center,rgba(255,255,255,.1) 0%,transparent 68%)}.pulse-glow{animation:ittPulseSoft 2s ease-in-out infinite}@media (hover: none){.option:hover,.card:hover,.card.glow-hover:hover,.btn-primary:hover,.btn-ghost:hover,.btn-danger:hover,.btn-buy:hover:not(:disabled),.btn-lg:hover,.nav-item:hover{transform:none!important}.card.glow-hover:hover{animation:none!important}}@media (pointer: coarse){*,*:before,*:after{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}#authScreen,#authScreen *{backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important}.orb{filter:none!important;opacity:.08!important;animation:none!important}.ls-cpath-blob,.ls-cpath-blob--a,.ls-cpath-blob--b{filter:none!important}.ls-cpath-blob--a{background:radial-gradient(circle at center,rgba(37,99,235,.14) 0%,transparent 70%)!important}.ls-cpath-blob--b{background:radial-gradient(circle at center,rgba(56,189,248,.12) 0%,transparent 70%)!important}}.orb{filter:blur(60px);will-change:auto}.question-area .options{contain:layout style}.hero-ring-glow{filter:blur(8px)}.certv-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:none;background:#070a13d1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.certv-overlay.open{display:flex;flex-direction:column}.certv-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;flex:0 0 auto}.certv-actions{display:flex;gap:8px;flex-wrap:wrap}.certv-scroll{flex:1 1 auto;overflow-y:auto;padding:16px 16px 48px;display:flex;justify-content:center;align-items:flex-start;-webkit-overflow-scrolling:touch}.certv-body{width:100%;display:flex;justify-content:center}body.cert-modal-open{overflow:hidden}.cert-name-step{margin:auto;width:100%;max-width:480px;background:#fff;border-radius:20px;padding:36px 28px;text-align:center;box-shadow:0 24px 64px #02081773;color:#0f2a52}.cert-name-step h2{font-size:20px;font-weight:800;margin:10px 0 6px;color:#0f2a52}.cert-name-step .muted{color:#5a6b85;font-size:14px}.cert-name-emoji{font-size:44px;line-height:1}.cert-name-step form{margin-top:18px;text-align:left}.cert-name-step .input{width:100%;border:2px solid #dbe7fb;border-radius:12px;padding:13px 14px;font-size:15px;background:#f7faff;color:#0f2a52;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.cert-name-step .input:focus{border-color:#2563eb;box-shadow:0 0 0 4px #2563eb1f}.cert-name-warn{min-height:20px;color:#dc2626;font-size:12.5px;margin:6px 2px 8px}.cert-name-submit{width:100%;justify-content:center}.cert-name-skip{width:100%;justify-content:center;margin-top:8px}.cert-paper{position:relative;width:min(1100px,100%);min-height:720px;background:radial-gradient(1200px 400px at 50% -8%,rgba(37,99,235,.06),transparent 60%),radial-gradient(800px 300px at 100% 100%,rgba(6,182,212,.07),transparent 55%),linear-gradient(180deg,#fff,#f8fbff);border-radius:18px;padding:52px 64px 40px;color:#0f2a52;box-shadow:0 30px 80px #02081780;display:flex;flex-direction:column;text-align:center;overflow:hidden;print-color-adjust:exact;-webkit-print-color-adjust:exact}.cert-border{position:absolute;top:12px;right:12px;bottom:12px;left:12px;border:2px solid rgba(37,99,235,.35);border-radius:12px;pointer-events:none}.cert-border:after{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border:1.5px solid rgba(212,160,23,.55);border-radius:8px}.cert-corner{position:absolute;width:34px;height:34px;pointer-events:none;border-color:#d4a017;border-style:solid;border-width:0;opacity:.9}.cert-corner--tl{top:6px;left:6px;border-top-width:4px;border-left-width:4px;border-top-left-radius:8px}.cert-corner--tr{top:6px;right:6px;border-top-width:4px;border-right-width:4px;border-top-right-radius:8px}.cert-corner--bl{bottom:6px;left:6px;border-bottom-width:4px;border-left-width:4px;border-bottom-left-radius:8px}.cert-corner--br{bottom:6px;right:6px;border-bottom-width:4px;border-right-width:4px;border-bottom-right-radius:8px}.cert-preview-badge{position:absolute;top:22px;right:22px;background:linear-gradient(135deg,#06b6d4,#2563eb);color:#fff;font-size:10.5px;font-weight:800;letter-spacing:.08em;padding:6px 12px;border-radius:999px;z-index:2}.cert-head{display:flex;flex-direction:column;align-items:center;gap:4px}.cert-logo{display:flex;align-items:center;gap:10px;font-size:26px;font-weight:800;color:#0f2a52}.cert-logo-ico{font-size:30px}.cert-logo-text b{color:#2563eb}.cert-tagline{font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#06b6d4}.cert-deco{width:150px;height:26px;margin-top:6px}.cert-title{margin:26px 0 6px;font-size:clamp(30px,4.6vw,44px);font-weight:900;letter-spacing:.22em;background:linear-gradient(120deg,#2563eb 10%,#06b6d4,#d4a017);-webkit-background-clip:text;background-clip:text;color:transparent}.cert-sub{font-size:15px;color:#5a6b85}.cert-name{font-size:clamp(28px,4.4vw,46px);font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#0f2a52;margin:14px auto 10px;padding-bottom:12px;max-width:86%;border-bottom:2px solid rgba(37,99,235,.25);line-height:1.15;overflow-wrap:anywhere}.cert-body{max-width:72%;margin:0 auto;font-size:15.5px;line-height:1.65;color:#33415c}.cert-body strong{color:#2563eb}.cert-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;max-width:86%;margin:28px auto 0}.cert-stat{display:flex;flex-direction:column;align-items:center;gap:2px;background:#2563eb0e;border:1px solid rgba(37,99,235,.14);border-radius:12px;padding:12px 8px}.cert-stat-ico{font-size:18px}.cert-stat-lbl{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#5a6b85}.cert-stat-val{font-size:13.5px;font-weight:800;color:#0f2a52;text-align:center}.cert-foot{margin-top:auto;padding-top:26px;display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.cert-foot-col{display:flex;flex-direction:column;gap:3px;text-align:left;min-width:150px}.cert-foot-id{text-align:right;align-items:flex-end}.cert-foot-lbl{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#5a6b85}.cert-foot-val{font-size:14.5px;font-weight:800;color:#0f2a52}.cert-id-code{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;letter-spacing:.04em}.cert-foot-qr{display:flex;flex-direction:column;align-items:center;gap:4px}.cert-foot-qr svg{width:92px;height:92px;background:#fff;border:1px solid rgba(37,99,235,.25);border-radius:8px;padding:5px}.cert-qr-cap{font-size:10px;color:#5a6b85}@keyframes certReveal{0%{opacity:0;transform:scale(.955) translateY(16px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes certShimmer{0%{transform:translate(-130%) skew(-18deg)}to{transform:translate(230%) skew(-18deg)}}.cert-reveal{animation:certReveal .9s cubic-bezier(.16,1,.3,1) both}.cert-paper:before{content:"";position:absolute;top:0;bottom:0;left:0;width:34%;background:linear-gradient(100deg,transparent,rgba(37,99,235,.08),transparent);animation:certShimmer 1.1s ease .15s both;pointer-events:none}@media (prefers-reduced-motion: reduce){.cert-reveal{animation:none}.cert-paper:before{display:none}}.certv-verify .certv-body{align-items:flex-start}.verify-card{width:100%;max-width:620px;background:#fff;border-radius:18px;padding:30px 26px;margin:8vh auto 0;color:#0f2a52;box-shadow:0 24px 64px #02081773;text-align:center}.verify-hero{display:flex;flex-direction:column;align-items:center;gap:6px}.verify-emoji{font-size:44px;line-height:1}.verify-hero h2{font-size:21px;font-weight:800}.verify-hero p{color:#5a6b85;font-size:14px}.verify-status-pill{display:inline-block;background:#10b9811f;color:#059669;border:1px solid rgba(16,185,129,.4);font-weight:800;font-size:12px;letter-spacing:.06em;padding:5px 14px;border-radius:999px}.verify-fail .verify-emoji{filter:none}.verify-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0 16px;text-align:left}.verify-grid>div{background:#f7faff;border:1px solid #e3ecfb;border-radius:10px;padding:10px 12px}.verify-grid .verify-wide{grid-column:1 / -1}.verify-grid dt{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#5a6b85}.verify-grid dd{margin:2px 0 0;font-size:14.5px;font-weight:800;color:#0f2a52;overflow-wrap:anywhere}.verify-search{display:flex;gap:8px;margin:6px 0 16px}.verify-search .input{flex:1;border:2px solid #dbe7fb;border-radius:10px;padding:11px 12px;font-size:13.5px;background:#f7faff;color:#0f2a52;outline:none;font-family:ui-monospace,Consolas,monospace}.verify-search .input:focus{border-color:#2563eb}.certp-head h3{font-size:22px;font-weight:800}.certp-head p{color:var(--muted, #64748b);margin-top:2px}.certp-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:16px 0}.certp-stat{display:flex;align-items:baseline;gap:8px;background:var(--card, rgba(255, 255, 255, .06));border:1px solid var(--border, rgba(255, 255, 255, .08));border-radius:12px;padding:10px 16px}.certp-stat-num{font-size:22px;font-weight:900;color:var(--primary, #6366f1)}.certp-stat-lbl{font-size:13px;color:var(--muted, #64748b);font-weight:600}.certp-preview-note{font-size:12px;color:var(--secondary, #06b6d4);background:#06b6d41a;border:1px dashed rgba(6,182,212,.45);padding:7px 12px;border-radius:999px}.certp-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.certp-controls .search-box{flex:1 1 260px;max-width:380px}.certp-filters{flex-wrap:wrap}.certp-namebar{margin-bottom:14px}.certp-namebar-inner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--card, rgba(255, 255, 255, .06));border:1px solid var(--border, rgba(255, 255, 255, .08));border-radius:12px;padding:10px 14px;font-size:14px}.certp-namebar-lbl{color:var(--muted, #64748b);font-size:12.5px}.certp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px}.certp-card{display:flex;flex-direction:column;gap:8px;background:var(--card, rgba(255, 255, 255, .06));border:1px solid var(--border, rgba(255, 255, 255, .08));border-radius:16px;padding:16px;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.certp-card:hover{transform:translateY(-2px);border-color:#6366f173;box-shadow:0 8px 28px #0000002e}.certp-card.locked{opacity:.62}.certp-card-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.certp-course-ico{width:34px;height:34px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:17px;flex:0 0 auto}.certp-course-name{font-weight:800;font-size:15px}.cert-status-badge{margin-left:auto;font-size:10.5px;font-weight:800;padding:4px 10px;border-radius:999px;letter-spacing:.03em}.cert-status-badge.earned{background:#10b98124;color:#10b981;border:1px solid rgba(16,185,129,.4)}.cert-status-badge.preview{background:#06b6d41f;color:#06b6d4;border:1px solid rgba(6,182,212,.4)}.cert-status-badge.locked{background:#64748b29;color:#94a3b8;border:1px solid rgba(100,116,139,.35)}.certp-lesson-num{font-size:12px;font-weight:700;color:var(--primary, #6366f1);text-transform:uppercase;letter-spacing:.07em}.certp-lesson-title{font-size:15px;font-weight:700;line-height:1.35}.certp-cert-id{font-family:ui-monospace,Consolas,monospace;font-size:11px;color:var(--muted, #64748b);letter-spacing:.03em}.certp-card-foot{margin-top:auto;padding-top:6px}.certp-card-foot .btn{width:100%;justify-content:center}.certp-empty{grid-column:1 / -1;text-align:center;color:var(--muted, #64748b);padding:40px 0}.certp-progress{display:flex;flex-direction:column;gap:6px}.certp-progress-track{height:8px;border-radius:999px;background:#94a3b838;overflow:hidden}.certp-progress-bar{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2563eb,#06b6d4);transition:width .35s ease}.certp-card.locked .certp-progress-bar{background:linear-gradient(90deg,#64748b,#94a3b8)}.certp-card.earned .certp-progress-bar{background:linear-gradient(90deg,#10b981,#06b6d4)}.certp-progress-meta{display:flex;align-items:center;justify-content:space-between;font-size:11.5px;font-weight:700;color:var(--muted, #64748b)}.profile-cert-card{margin-top:14px}@media (max-width: 900px){.cert-paper{padding:44px 34px 30px;min-height:640px}.cert-body{max-width:90%}}@media (max-width: 640px){.certv-scroll{padding:10px 10px 36px}.certv-topbar{flex-wrap:wrap}.certv-actions{width:100%}.certv-actions .btn{flex:1;justify-content:center}.cert-paper{padding:46px 22px 26px;border-radius:14px}.cert-name{font-size:clamp(24px,7.4vw,34px)}.cert-body{font-size:14px;max-width:100%}.cert-stats{grid-template-columns:repeat(2,1fr);max-width:100%;gap:8px}.cert-foot{flex-direction:column;align-items:center;text-align:center;gap:14px}.cert-foot-col,.cert-foot-id{align-items:center;text-align:center;min-width:0}.verify-grid{grid-template-columns:1fr}.verify-search{flex-direction:column}.certp-grid{grid-template-columns:1fr}}@media (min-width: 641px) and (max-width: 1024px){.cert-paper{min-height:680px}.cert-stats{max-width:96%}}@media print{@page{size:A4 landscape;margin:8mm}body.print-cert *{visibility:hidden!important}body.print-cert #certViewerOverlay,body.print-cert #certViewerOverlay *{visibility:visible!important}body.print-cert #certViewerOverlay{position:absolute;top:0;right:0;bottom:0;left:0;display:block;background:#fff!important;-webkit-backdrop-filter:none;backdrop-filter:none}body.print-cert #certViewerOverlay .certv-topbar{display:none!important}body.print-cert #certViewerOverlay .certv-scroll{padding:0;overflow:visible;display:block}body.print-cert .cert-paper{box-shadow:none!important;width:100%!important;min-height:0!important;border-radius:0;margin:0 auto}body.print-cert .cert-preview-badge{display:none!important}body.print-cert .cert-paper:before{display:none!important}body.print-cert .cert-reveal{animation:none!important}}#page-home{display:none;background:var(--itt-bg-alt, #F4F8FF)}#page-home.active{display:block;padding:10px 14px calc(96px + env(safe-area-inset-bottom,0px))!important;min-height:100%;overflow-x:hidden}body.ithome-active .topbar{display:none!important}.ih-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 2px 12px}.ih-brand{display:inline-flex;align-items:center;gap:8px;font-size:1.05rem;font-weight:800;color:var(--itt-text, #0F172A);letter-spacing:-.02em}.ih-brand-logo{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;font-size:1.05rem;border-radius:11px;background:linear-gradient(135deg,var(--itt-primary, #2563EB),var(--itt-cyan, #38BDF8));box-shadow:var(--itt-shadow-primary, 0 6px 20px rgba(37, 99, 235, .32))}.ih-topchips{display:flex;align-items:center;gap:8px;min-width:0}.ih-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--itt-border, #DCE8F7);background:var(--itt-surface, #FFFFFF);color:var(--itt-text, #0F172A);border-radius:999px;padding:8px 12px;font-size:.8rem;font-weight:600;white-space:nowrap;cursor:pointer;box-shadow:var(--itt-shadow-xs, 0 1px 3px rgba(15, 23, 42, .06))}.ih-chip b{font-weight:800}.ih-chip--streak b{color:var(--itt-streak, #0EA5E9)}.ih-chip--xp b{color:var(--itt-xp, #CA8A04)}.ih-search{display:flex;align-items:center;gap:10px;background:var(--itt-surface, #FFFFFF);border:1px solid var(--itt-border, #DCE8F7);border-radius:16px;padding:12px 14px;margin-bottom:14px;box-shadow:var(--itt-shadow-xs, 0 1px 3px rgba(15, 23, 42, .06))}.ih-search span[aria-hidden]{font-size:.95rem;opacity:.7}.ih-search input{flex:1;min-width:0;border:none;outline:none;background:transparent;color:var(--itt-text, #0F172A);font-size:.92rem;font-family:inherit}.ih-search input::placeholder{color:var(--itt-faint, #94A3B8)}.ih-search-results{margin:-8px 0 14px;background:var(--itt-surface, #FFFFFF);border:1px solid var(--itt-border, #DCE8F7);border-radius:14px;overflow:hidden;box-shadow:var(--itt-shadow-sm, 0 4px 16px rgba(15, 23, 42, .05))}.ih-search-item{display:flex;align-items:center;gap:10px;width:100%;padding:11px 14px;border:none;border-bottom:1px solid var(--itt-border-soft, #E2E8F0);background:transparent;color:var(--itt-text, #0F172A);font-size:.88rem;text-align:left;cursor:pointer}.ih-search-item:last-child{border-bottom:none}.ih-search-item:active{background:var(--itt-primary-soft, rgba(37, 99, 235, .09))}.ih-search-item small{color:var(--itt-muted, #64748B);font-size:.74rem}.ih-search-empty{padding:12px 14px;color:var(--itt-muted, #64748B);font-size:.84rem}.ih-quick{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.ih-quick-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:14px;border:1px solid var(--itt-border, #DCE8F7);border-radius:18px;background:var(--itt-surface, #FFFFFF);color:var(--itt-text, #0F172A);text-align:left;cursor:pointer;box-shadow:var(--itt-shadow-xs, 0 1px 3px rgba(15, 23, 42, .06));transition:transform var(--itt-dur-fast, .18s) var(--itt-ease, ease)}.ih-quick-card:active{transform:scale(.97)}.ih-quick-ico{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;font-size:1.25rem;border-radius:13px;background:var(--itt-primary-soft, rgba(37, 99, 235, .09));border:1px solid var(--itt-border, #DCE8F7)}.ih-quick-name{font-size:.95rem;font-weight:700;line-height:1.25}.ih-quick-link{font-size:.78rem;font-weight:600;color:var(--itt-primary, #2563EB)}.ih-banner{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px;border-radius:20px;overflow:hidden;margin-bottom:14px;color:#fff;background:radial-gradient(320px 160px at 92% 0%,rgba(56,189,248,.45),transparent 65%),linear-gradient(120deg,#1d4ed8,#2563eb 55%,#38bdf8 130%);box-shadow:var(--itt-shadow-primary, 0 6px 20px rgba(37, 99, 235, .32))}.ih-banner h2{margin:0 0 4px;font-size:1.12rem;font-weight:800;letter-spacing:-.01em}.ih-banner p{margin:0 0 12px;font-size:.8rem;opacity:.92;max-width:21ch}.ih-banner button{border:none;border-radius:999px;padding:9px 16px;font-size:.8rem;font-weight:700;color:#1d4ed8;background:#fff;cursor:pointer}.ih-banner button:active{transform:scale(.97)}.ih-banner-art{flex:0 0 auto;width:74px;height:74px;display:flex;align-items:center;justify-content:center;font-size:2.4rem;border-radius:50%;background:#ffffff29;border:1px solid rgba(255,255,255,.3)}.ih-continue{padding:16px;border:1px solid var(--itt-border-focus, rgba(37, 99, 235, .35));border-radius:18px;background:linear-gradient(135deg,var(--itt-primary-soft, rgba(37, 99, 235, .09)),transparent 60%),var(--itt-surface, #FFFFFF);margin-bottom:18px;box-shadow:var(--itt-shadow-xs, 0 1px 3px rgba(15, 23, 42, .06))}.ih-continue-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.ih-continue-label{font-size:.78rem;font-weight:700;color:var(--itt-muted, #64748B);letter-spacing:.04em;text-transform:uppercase}.ih-xp-badge{font-size:.72rem;font-weight:800;color:var(--itt-xp, #CA8A04);background:var(--itt-xp-soft, rgba(202, 138, 4, .12));border-radius:999px;padding:4px 10px;white-space:nowrap}.ih-continue-title{margin:0 0 4px;font-size:1rem;font-weight:700;color:var(--itt-text, #0F172A)}.ih-continue-sub{margin:0 0 10px;font-size:.8rem;color:var(--itt-muted, #64748B)}.ih-progress{height:8px;border-radius:999px;background:var(--itt-primary-soft, rgba(37, 99, 235, .09));border:1px solid var(--itt-border, #DCE8F7);overflow:hidden;margin-bottom:6px}.ih-progress span{display:block;height:100%;width:0%;border-radius:inherit;background:linear-gradient(90deg,var(--itt-primary, #2563EB),var(--itt-cyan, #38BDF8));transition:width .8s var(--itt-ease-spring, cubic-bezier(.16, 1, .3, 1))}.ih-progress-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.76rem;color:var(--itt-muted, #64748B);margin-bottom:12px}.ih-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:13px 16px;border:none;border-radius:14px;font-size:.92rem;font-weight:700;font-family:inherit;color:#fff;background:linear-gradient(135deg,var(--itt-primary, #2563EB),var(--itt-primary-hover, #3B82F6));box-shadow:var(--itt-shadow-primary, 0 6px 20px rgba(37, 99, 235, .32));cursor:pointer}.ih-btn:active{transform:scale(.98)}.ih-continue-empty{display:flex;align-items:center;gap:10px;color:var(--itt-muted, #64748B);font-size:.86rem}.ih-section-title{margin:0 2px 10px;font-size:.95rem;font-weight:800;color:var(--itt-text, #0F172A)}.ih-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}.ih-grid-item{display:flex;flex-direction:column;align-items:center;gap:7px;padding:14px 6px 12px;border:1px solid var(--itt-border, #DCE8F7);border-radius:16px;background:var(--itt-surface, #FFFFFF);color:var(--itt-text, #0F172A);font-size:.74rem;font-weight:600;cursor:pointer;box-shadow:var(--itt-shadow-xs, 0 1px 3px rgba(15, 23, 42, .06));transition:transform var(--itt-dur-fast, .18s) var(--itt-ease, ease)}.ih-grid-item:active{transform:scale(.95)}.ih-grid-ico{font-size:1.35rem;line-height:1}.ih-me{padding:16px;border:1px solid var(--itt-border, #DCE8F7);border-radius:18px;background:var(--itt-surface, #FFFFFF);box-shadow:var(--itt-shadow-xs, 0 1px 3px rgba(15, 23, 42, .06))}.ih-me h3{margin:0 0 4px;font-size:1.02rem;font-weight:800;color:var(--itt-text, #0F172A)}.ih-me-sub{margin:0 0 12px;font-size:.8rem;color:var(--itt-muted, #64748B)}.ih-me-row{display:flex;align-items:center;gap:10px}.ih-level-badge{font-size:.74rem;font-weight:800;color:var(--itt-primary, #2563EB);background:var(--itt-primary-soft, rgba(37, 99, 235, .09));border:1px solid var(--itt-border-focus, rgba(37, 99, 235, .35));border-radius:999px;padding:5px 12px;white-space:nowrap}.ih-me-xp{flex:1;min-width:0}.ih-me-xp-text{display:block;font-size:.74rem;color:var(--itt-muted, #64748B);margin-bottom:5px;white-space:nowrap}.ih-me .ih-progress{margin-bottom:0}.ih-bottomnav{position:fixed;left:0;right:0;bottom:0;z-index:70;display:flex;align-items:stretch;justify-content:space-around;gap:2px;padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px));background:var(--itt-topbar-bg, rgba(255, 255, 255, .88));backdrop-filter:blur(18px) saturate(180%);-webkit-backdrop-filter:blur(18px) saturate(180%);border-top:1px solid var(--itt-border, #DCE8F7);box-shadow:0 -4px 20px #02061714}.ih-bottomnav button{flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;border:none;background:none;color:var(--itt-faint, #94A3B8);font-size:.66rem;font-weight:600;font-family:inherit;cursor:pointer;border-radius:12px;min-height:44px}.ih-bottomnav button .ih-nav-ico{font-size:1.25rem;line-height:1}.ih-bottomnav button.active{color:var(--itt-primary, #2563EB);font-weight:800}.ih-bottomnav button:active{transform:scale(.94)}@media (max-width: 340px){#page-home.active{padding-left:10px;padding-right:10px}.ih-quick{gap:9px}.ih-grid{gap:8px}.ih-chip{padding:7px 9px;font-size:.74rem}}
