body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}*{margin:0;padding:0;box-sizing:border-box}.home-container{font-family:PingFang SC,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;min-height:100vh;position:relative;overflow-x:hidden;color:#fff}.gradient-bg{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#0c0c0c,#1a1a2e,#16213e);z-index:-2}.gradient-bg:before{content:"";position:absolute;top:20%;left:50%;width:600px;height:600px;background:radial-gradient(circle,rgba(102,126,234,.15) 0%,transparent 70%);transform:translate(-50%);pointer-events:none}.navbar{position:fixed;top:0;left:0;width:100%;padding:16px 32px;display:flex;justify-content:space-between;align-items:center;z-index:100;background:#0c0c0ccc;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.08)}.nav-brand{display:flex;align-items:center;gap:8px;font-size:24px;font-weight:700}.brand-icon{animation:bounce 2s ease infinite}.brand-text{background:linear-gradient(135deg,#667eea,#764ba2,#f093fb);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.brand-sparkle{animation:sparkle 1.5s ease infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes sparkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}.nav-login{display:flex;align-items:center;gap:8px;padding:10px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;text-decoration:none;border-radius:50px;font-weight:600;box-shadow:0 4px 15px #667eea66;transition:all .3s ease}.nav-login:hover{transform:translateY(-2px);box-shadow:0 6px 25px #667eea80}.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:120px 24px 80px;position:relative}.hero-mascot{margin-bottom:40px}.mascot-container{position:relative;width:200px;height:200px;display:flex;align-items:center;justify-content:center}.mascot-ring{position:absolute;border-radius:50%;border:3px solid;animation:ringPulse 3s ease-in-out infinite}.ring-1{width:100%;height:100%;border-color:#667eea4d;animation-delay:0s}.ring-2{width:80%;height:80%;border-color:#f093fb4d;animation-delay:.5s}.ring-3{width:60%;height:60%;border-color:#764ba24d;animation-delay:1s}@keyframes ringPulse{0%,to{transform:scale(1) rotate(0);opacity:.5}50%{transform:scale(1.1) rotate(180deg);opacity:1}}.mascot-core{font-size:80px;animation:floatBounce 3s ease-in-out infinite;filter:drop-shadow(0 10px 30px rgba(102,126,234,.3))}@keyframes floatBounce{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-15px) scale(1.05)}}.hero-content{text-align:center;max-width:600px}.hero-badge{display:inline-block;padding:8px 24px;background:#667eea26;border:1px solid rgba(102,126,234,.3);border-radius:50px;font-size:14px;font-weight:600;color:#a5b4fc;margin-bottom:24px}@keyframes badgePulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.hero-title{font-size:72px;font-weight:800;margin-bottom:16px;text-shadow:0 4px 20px rgba(0,0,0,.1)}.title-gradient{background:linear-gradient(135deg,#667eea,#764ba2,#f093fb,#667eea,#764ba2);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:textShine 3s linear infinite}@keyframes textShine{0%{background-position:0% center}to{background-position:200% center}}.hero-subtitle{font-size:20px;color:#ffffffb3;margin-bottom:40px}.typing-text{display:inline-block;animation:typewriter .5s steps(20) infinite alternate}.hero-buttons{display:flex;justify-content:center;gap:16px}.download-btn{display:inline-flex;align-items:center;gap:12px;padding:18px 48px;font-size:18px;font-weight:700;text-decoration:none;border-radius:50px;position:relative;overflow:hidden;transition:all .3s ease}.download-btn.primary{background:linear-gradient(135deg,#667eea,#764ba2,#f093fb);color:#fff;box-shadow:0 8px 30px #667eea66}.download-btn.primary:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 12px 40px #667eea80}.btn-icon{font-size:24px}.btn-shine{position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shine 2s infinite}@keyframes shine{0%{left:-100%}50%,to{left:100%}}.features{padding:100px 24px;background:#0000004d}.section-title{text-align:center;font-size:36px;font-weight:700;margin-bottom:60px;color:#fff}.section-title span{display:inline-block;animation:sparkle 1.5s ease infinite}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:32px;max-width:1100px;margin:0 auto}.feature-card{position:relative;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:40px 32px;text-align:center;transition:all .3s ease;overflow:hidden}.feature-card:hover{background:#ffffff14;border-color:#667eea66;transform:translateY(-5px)}.card-glow{display:none}.feature-icon{position:relative;z-index:1;font-size:56px;margin-bottom:20px;animation:iconBounce 3s ease infinite}.feature-card:nth-child(2) .feature-icon{animation-delay:.5s}.feature-card:nth-child(3) .feature-icon{animation-delay:1s}.feature-card:nth-child(4) .feature-icon{animation-delay:1.5s}@keyframes iconBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.feature-card h3{position:relative;z-index:1;font-size:20px;font-weight:600;margin-bottom:12px;color:#fff}.feature-card p{position:relative;z-index:1;font-size:14px;color:#fff9;line-height:1.6}.card-decoration{position:absolute;bottom:10px;right:15px;font-size:40px;opacity:.1;color:#667eea}.download-section{position:relative;padding:120px 24px;text-align:center;overflow:hidden}.download-bg-decoration{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:400px;height:400px;pointer-events:none}.orbit{position:absolute;top:50%;left:50%;border:2px dashed rgba(102,126,234,.2);border-radius:50%;animation:orbitSpin 20s linear infinite}.orbit-1{width:300px;height:300px;margin-left:-150px;margin-top:-150px}.orbit-2{width:400px;height:400px;margin-left:-200px;margin-top:-200px;animation-duration:30s;animation-direction:reverse}.orbit-3{width:500px;height:500px;margin-left:-250px;margin-top:-250px;animation-duration:40s}@keyframes orbitSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.download-content{position:relative;z-index:1}.download-content h2{font-size:36px;font-weight:700;margin-bottom:16px;color:#fff}.download-content p{font-size:18px;color:#fff9;margin-bottom:40px}.download-btn-large{display:inline-flex;align-items:center;gap:16px;padding:20px 60px;background:linear-gradient(135deg,#667eea,#764ba2,#f093fb);color:#fff;font-size:22px;font-weight:700;text-decoration:none;border-radius:60px;box-shadow:0 10px 40px #667eea66;transition:all .3s ease;animation:buttonPulse 2s ease infinite}.download-btn-large:hover{transform:translateY(-4px) scale(1.05);box-shadow:0 15px 50px #667eea80}@keyframes buttonPulse{0%,to{box-shadow:0 10px 40px #667eea66}50%{box-shadow:0 10px 60px #667eea99}}.btn-emoji{font-size:28px;animation:starSpin 3s linear infinite}@keyframes starSpin{0%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(1.2)}to{transform:rotate(360deg) scale(1)}}.footer{padding:60px 24px 40px;background:#0006;border-top:1px solid rgba(255,255,255,.08);text-align:center}.footer-decoration{margin-bottom:24px;font-size:24px;letter-spacing:8px;color:#667eea}.footer-decoration span{display:inline-block;animation:starTwinkle 2s ease infinite}.footer-decoration span:nth-child(2){animation-delay:.5s}.footer-decoration span:nth-child(3){animation-delay:1s}@keyframes starTwinkle{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}.footer p{font-size:14px;color:#ffffff80;margin-bottom:8px}.footer-links{display:flex;justify-content:center;align-items:center;gap:12px}.footer-links a{color:#fff9;text-decoration:none;transition:color .3s}.footer-links a:hover{color:#fff}.footer-hearts{margin-top:24px;font-size:13px;color:#fff6}.heart{display:inline-block;animation:heartBeat 1s ease infinite}@keyframes heartBeat{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@media(max-width:768px){.navbar{padding:12px 20px}.nav-brand{font-size:18px}.nav-login{padding:8px 16px;font-size:14px}.hero-title{font-size:42px}.hero-subtitle{font-size:16px}.mascot-container{width:150px;height:150px}.mascot-core{font-size:60px}.download-btn{padding:14px 32px;font-size:16px}.section-title{font-size:28px}.feature-card{padding:32px 24px}.download-content h2{font-size:28px}.download-btn-large{padding:16px 40px;font-size:18px}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.login-bg{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#0c0c0c,#1a1a2e,#16213e);z-index:-2}.login-glow{position:fixed;top:30%;left:50%;width:500px;height:500px;background:radial-gradient(circle,rgba(102,126,234,.2) 0%,transparent 70%);transform:translate(-50%);z-index:-1;pointer-events:none}.login-card{width:100%;max-width:400px;padding:48px 40px;background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:20px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);text-align:center;animation:fadeIn .5s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.login-logo{font-size:64px;margin-bottom:16px;filter:drop-shadow(0 4px 20px rgba(102,126,234,.4))}.login-title{font-size:32px;font-weight:700;color:#fff;margin:0 0 8px;background:linear-gradient(135deg,#667eea,#764ba2,#f093fb);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-subtitle{font-size:14px;color:#ffffff80;margin:0 0 40px}.login-form{text-align:left}.login-form .ant-form-item{margin-bottom:20px}.login-form .ant-input-affix-wrapper,.login-form .ant-input{height:48px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:#fff;font-size:15px}.login-form .ant-input-affix-wrapper:hover,.login-form .ant-input:hover{border-color:#667eea80}.login-form .ant-input-affix-wrapper:focus,.login-form .ant-input-affix-wrapper-focused,.login-form .ant-input:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea33}.login-form .ant-input::placeholder{color:#ffffff4d}.login-form .ant-input-prefix{color:#fff6;margin-right:10px}.login-form .ant-input-password-icon{color:#fff6}.login-form .ant-input-password-icon:hover{color:#fff9}.login-btn{height:48px;border-radius:10px;font-size:16px;font-weight:600;background:linear-gradient(135deg,#667eea,#764ba2);border:none;box-shadow:0 4px 20px #667eea66;transition:all .3s ease}.login-btn:hover{transform:translateY(-2px);box-shadow:0 6px 30px #667eea80}.login-footer{margin-top:32px;padding-top:24px;border-top:1px solid rgba(255,255,255,.08)}.login-footer p{margin:0;font-size:13px;color:#fff6}@media(max-width:480px){.login-card{margin:20px;padding:32px 24px}.login-logo{font-size:48px}.login-title{font-size:26px}}.dashboard{padding:0}.dashboard-title{font-size:24px;font-weight:700;color:#1a202c;margin:0 0 24px;padding-bottom:16px;border-bottom:2px solid #f0f0f0}.stat-card{border-radius:12px;transition:all .3s ease;overflow:hidden}.stat-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #0000001a}.stat-card-primary{border-left:4px solid #3f8600}.stat-card-success{border-left:4px solid #1890ff}.stat-card-warning{border-left:4px solid #722ed1}.stat-card-info{border-left:4px solid #eb2f96}.stat-title{font-size:14px;color:#8c8c8c;font-weight:500}.stat-footer{margin-top:16px;padding-top:16px;border-top:1px solid #f0f0f0}.detail-card{border-radius:12px;transition:all .3s ease}.detail-card:hover{box-shadow:0 8px 16px #00000014}.detail-card .ant-card-head-title{font-weight:600;font-size:16px}.quick-actions{border-radius:12px}.action-item{text-align:center;padding:24px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;cursor:pointer;transition:all .3s ease}.action-item:hover{transform:translateY(-4px);box-shadow:0 8px 16px #667eea66}.action-icon{font-size:32px;color:#fff;margin-bottom:8px}.action-text{color:#fff;font-size:14px;font-weight:500}@media(max-width:768px){.dashboard-title{font-size:20px}.stat-card{margin-bottom:12px}.action-item{padding:16px}.action-icon{font-size:24px}}.admin-layout{min-height:100vh}.admin-sider{box-shadow:2px 0 8px #00000014}.admin-logo{height:64px;display:flex;align-items:center;justify-content:center;padding:16px;background:linear-gradient(135deg,#667eea,#764ba2);margin:16px;border-radius:12px;cursor:pointer;transition:all .3s ease}.admin-logo:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.logo-icon{font-size:28px;color:#fff}.logo-text{color:#fff;margin-left:12px;font-size:20px;font-weight:700;letter-spacing:1px}.admin-sider .ant-menu-dark{background:transparent}.admin-sider .ant-menu-item{margin:4px 8px;border-radius:8px;transition:all .3s ease}.admin-sider .ant-menu-item:hover{background:#ffffff1a!important}.admin-sider .ant-menu-item-selected{background:linear-gradient(135deg,#667eea,#764ba2)!important;font-weight:600}.admin-header{background:#fff;padding:0 32px;box-shadow:0 2px 8px #0000000d;z-index:10}.admin-header-content{display:flex;justify-content:space-between;align-items:center;height:100%}.header-title{margin:0;font-size:20px;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.admin-user{display:flex;align-items:center;gap:12px;cursor:pointer;padding:8px 16px;border-radius:12px;transition:all .3s ease;background:linear-gradient(135deg,#667eea1a,#764ba21a)}.admin-user:hover{background:linear-gradient(135deg,#667eea33,#764ba233);transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.user-avatar{background:linear-gradient(135deg,#667eea,#764ba2)}.user-name{font-weight:600;color:#1a202c;font-size:14px}.admin-content{margin:24px;min-height:calc(100vh - 136px)}@media(max-width:768px){.admin-content{margin:16px}.admin-header{padding:0 16px}.header-title{font-size:16px}.user-name{display:none}}
