.app-shell{background-color:var(--bg-app);flex-direction:column;max-width:480px;min-height:100dvh;margin:0 auto;display:flex;position:relative;overflow-x:hidden}.header-home{background:var(--white);z-index:100;box-shadow:0 1px 0 var(--border);justify-content:space-between;align-items:center;padding:14px 18px 10px;display:flex;position:sticky;top:0}.header-home .logo{align-items:center;gap:8px;display:flex}.header-home .logo img{object-fit:contain;width:36px;height:36px}.header-home .logo span{font-family:var(--font_b);color:var(--primary);font-size:15px;line-height:1}.header-home .logo small{color:var(--text-sub);font-size:9px;font-family:var(--font);letter-spacing:.2px;margin-top:1px;display:block}.header-actions{align-items:center;gap:4px;display:flex}.icon-btn{width:38px;height:38px;color:var(--text);transition:background var(--t) var(--ease), color var(--t) var(--ease);border-radius:50%;justify-content:center;align-items:center;font-size:18px;display:flex;position:relative}.icon-btn:active{background:var(--light);color:var(--primary)}.badge-dot{background:var(--red);border-radius:50%;width:8px;height:8px;position:absolute;top:6px;right:6px}.scroll-content{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;background:var(--bg-app) url(../../../images/bg.jpg) top center/100% auto no-repeat;z-index:1;flex:1;padding-bottom:80px;position:relative;overflow:hidden auto}.scroll-content:after{content:"";background:linear-gradient(to bottom, transparent 30%, var(--bg-app) 95%);pointer-events:none;z-index:-1;width:100%;height:390px;position:absolute;top:0;left:0}.hero-greeting{background:0 0;padding:20px 18px 0}.hero-greeting h2{color:var(--title);font-size:20px;font-family:var(--font_b);line-height:1.2}.hero-greeting h2 span{color:var(--primary)}.hero-greeting p{color:var(--text-sub);margin-top:4px;font-size:15px;line-height:1.5}.journey-card{background:var(--white);box-shadow:var(--shadow-card);border-radius:18px;align-items:center;gap:14px;margin:14px 18px 0;padding:16px;display:flex;position:relative;overflow:hidden}.journey-card:before{content:"";pointer-events:none;z-index:0;background:url(../../../images/leaf.png) 100% 100%/contain no-repeat;width:100px;height:100px;position:absolute;bottom:0;right:10px}.journey-ring{z-index:1;flex-shrink:0;width:72px;height:72px;position:relative}.journey-ring svg{width:72px;height:72px;transform:rotate(-90deg)}.journey-ring .ring-bg{fill:none;stroke:var(--border);stroke-width:5px}.journey-ring .ring-fill{fill:none;stroke:var(--primary);stroke-width:5px;stroke-linecap:round;stroke-dasharray:138.2;stroke-dashoffset:82.9px;transition:stroke-dashoffset 1s var(--ease)}.journey-ring .ring-pct{font-family:var(--font_b);color:var(--primary);justify-content:center;align-items:center;font-size:16px;display:flex;position:absolute;inset:0}.journey-info{z-index:1;flex:1;min-width:0;max-width:53%;position:relative}.journey-info h5{color:var(--title);font-size:14px;font-family:var(--font_m);margin-bottom:5px}.journey-info small{color:var(--text-sub);font-size:13px}.progress-row{justify-content:space-between;align-items:center;margin-top:6px;display:flex}.progress-bar{background:var(--border);border-radius:99px;flex:1;height:6px;margin-right:10px;overflow:hidden}.progress-bar span{background:linear-gradient(90deg, var(--primary) 0%, var(--primary-light) 100%);width:40%;height:100%;transition:width 1s var(--ease);border-radius:99px;display:block}.progress-row small{font-family:var(--font_b);color:var(--primary);flex-shrink:0;font-size:11px}.btn-journey{background:var(--primary);color:var(--white);font-size:12px;font-family:var(--font_m);transition:transform var(--t) var(--ease), box-shadow var(--t) var(--ease);border-radius:99px;justify-content:center;align-items:center;gap:6px;width:100%;margin-top:10px;padding:10px;display:inline-flex}.btn-journey:active{box-shadow:var(--shadow-md);color:var(--white);transform:scale(.97)}.section-head{justify-content:space-between;align-items:baseline;padding:22px 18px 12px;display:flex}.section-head h3{color:var(--title);font-size:16px}.section-head p{color:var(--text-sub);margin-top:3px;font-size:13px}.link-more{color:var(--primary);white-space:nowrap;transition:opacity var(--t) var(--ease);align-items:center;gap:2px;font-size:12px;display:flex}.link-more:active{opacity:.6;color:var(--primary)}.gems-grid{grid-template-columns:repeat(3,1fr);gap:10px;padding:0 18px;display:grid}.gems-grid .row2{grid-template-columns:repeat(2,1fr);gap:10px;padding:10px 18px 0;display:grid}.card-item{background:var(--white);text-align:center;cursor:pointer;box-shadow:var(--shadow-card);transition:transform var(--t) var(--ease), box-shadow var(--t) var(--ease);border-radius:16px;flex-direction:column;align-items:center;padding:14px 10px 12px;display:flex;position:relative;overflow:hidden}.card-item:active{box-shadow:var(--shadow-md);transform:scale(.96)}.card-icon{width:50px;height:50px;color:var(--white);border-radius:13px;flex-shrink:0;justify-content:center;align-items:center;margin-bottom:8px;font-size:20px;display:flex}.card-icon.blue{background:linear-gradient(135deg,#4a90d9 0%,#2b63c3 100%)}.card-icon.indigo{background:linear-gradient(135deg,#5d7ae0 0%,#3a52c9 100%)}.card-icon.red{background:linear-gradient(135deg,#f16a6a 0%,#d93b3b 100%)}.card-icon.green{background:linear-gradient(135deg,#44c97a 0%,#28a05a 100%)}.card-icon.teal{background:linear-gradient(135deg,#29b5be 0%,#1a8fa0 100%)}.card-item h4{color:var(--title);font-size:14px;font-family:var(--font_b);margin-bottom:2px}.card-item p{color:var(--text-sub);font-size:12px;line-height:1.4}.card-wide{grid-column:span 1}.banner-challenge{box-shadow:var(--shadow-sm);background:url(../../../images/bg2.jpg) 50%/cover no-repeat;border-radius:18px;align-items:center;gap:14px;margin:20px 18px 0;padding:18px 18px 18px 16px;display:flex;position:relative;overflow:hidden}.banner-challenge .icon-drop{background:var(--primary);width:64px;height:64px;color:var(--white);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:28px;display:flex;box-shadow:0 4px 12px #2b78d44d}.banner-challenge .text h4{color:var(--title);font-size:16px;font-family:var(--font_b)}.banner-challenge .text p{color:var(--text-sub);margin-top:5px;font-size:13px;line-height:1.4}.btn-start{background:var(--primary);color:var(--white);font-size:13px;font-family:var(--font_m);transition:transform var(--t) var(--ease), box-shadow var(--t) var(--ease);border-radius:99px;align-items:center;gap:6px;margin-top:15px;padding:10px 20px;display:inline-flex}.btn-start:active{color:var(--white);box-shadow:var(--shadow-md);transform:scale(.96)}.banner-challenge .deco-drop{opacity:.2;color:var(--primary);font-size:52px;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.section-community{padding:22px 18px 10px}.section-community h3{color:var(--title);margin-bottom:12px;font-size:15px}.bottom-nav{background:var(--white);border-top:1px solid var(--border);z-index:200;width:100%;max-width:480px;padding-bottom:env(safe-area-inset-bottom,0);display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.nav-item{cursor:pointer;transition:color var(--t) var(--ease);color:var(--text-sub);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:8px 4px 6px;text-decoration:none;display:flex;position:relative}.nav-item i{transition:transform var(--t) var(--ease), color var(--t) var(--ease);font-size:22px}.nav-item span{font-size:10px;line-height:1}.nav-item.active{color:var(--primary)}.nav-item.active i{transform:translateY(-2px)}@keyframes tap-pop{0%{transform:scale(1)}40%{transform:scale(.92)}to{transform:scale(1)}}.card-item:active .card-icon,.nav-item:active i{animation:tap-pop .25s var(--ease)}
