@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";:root{--bg-base:#fcfbf9;--bg-surface:#ffffffd9;--line:#0f172a14;--text-main:#0f172a;--text-muted:#64748b;--primary:#3b82f6;--primary-hover:#2563eb;--primary-light:#3b82f61a;--secondary:#8b5cf6;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--shadow-soft:0 10px 25px #0f172a0d;--shadow-hover:0 20px 40px #0f172a1a;--radius-lg:24px;--radius-md:16px;--radius-sm:12px;--glass-bg:#ffffffb3;--glass-border:#ffffff80}*{box-sizing:border-box}body{min-height:100vh;color:var(--text-main);background-color:var(--bg-base);-webkit-font-smoothing:antialiased;background-image:radial-gradient(circle at 15% 0,#d4af3714,#0000 45%),radial-gradient(circle at 85% 30%,#3b82f60f,#0000 50%),radial-gradient(circle at 50% 100%,#f59e0b0d,#0000 50%);background-attachment:fixed;margin:0;font-family:Plus Jakarta Sans,sans-serif;overflow-x:hidden}button{font-family:inherit}.app-container{width:min(1200px,100% - 32px);margin:0 auto;padding:30px 0 80px}.navbar{background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);z-index:100;justify-content:space-between;align-items:center;margin-bottom:40px;padding:16px 24px;display:flex;position:sticky;top:16px}.brand{align-items:center;gap:12px;display:flex}.brand-icon{border-radius:var(--radius-sm);background:linear-gradient(135deg, var(--primary), var(--secondary));color:#fff;justify-content:center;align-items:center;width:44px;height:44px;display:flex;box-shadow:0 4px 12px #3b82f64d}.brand-text{flex-direction:column;display:flex}.brand-text span{letter-spacing:-.01em;font-size:1.1rem;font-weight:800}.brand-text sub{color:var(--text-muted);font-size:.8rem;font-weight:500}.nav-actions{align-items:center;gap:16px;display:flex}.app-menu-wrap{position:relative}.app-menu-trigger{background:var(--bg-surface);align-items:center;gap:8px;padding:8px 16px;display:flex}.app-menu-panel{border:1px solid var(--line);z-index:9999;cursor:default;background:#fff;border-radius:16px;flex-direction:column;gap:4px;width:280px;max-height:min(70vh,560px);margin-top:12px;padding:8px;display:flex;position:absolute;top:100%;right:0;overflow-y:auto;box-shadow:0 20px 40px #0f172a26}.app-menu-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding:8px 12px;font-size:.8rem;font-weight:800}.app-menu-item{cursor:pointer;color:var(--text-main);border-radius:12px;align-items:center;gap:12px;padding:10px 12px;transition:background .2s;display:flex}.app-menu-icon{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.app-menu-name{white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:600;overflow:hidden}.app-menu-divider{background:var(--line);height:1px;margin:8px 4px}.app-menu-link{color:#0068ff;background:#3b82f60d;border-radius:12px;align-items:center;gap:12px;padding:12px;text-decoration:none;display:flex}.app-menu-link-label{font-size:.95rem;font-weight:700}.nav-user{border-left:1px solid var(--line);align-items:center;gap:16px;margin-left:16px;padding-left:16px;display:flex}.nav-user-meta{text-align:right;flex-direction:column;display:flex}.nav-stats{color:var(--text-muted);gap:14px;font-size:.85rem;font-weight:600;display:flex}.nav-stats span{align-items:center;gap:4px;display:flex}.btn-primary{background:var(--text-main);color:#fff;cursor:pointer;border:none;border-radius:99px;align-items:center;gap:8px;padding:10px 20px;font-weight:700;transition:all .2s;display:inline-flex}.btn-primary:hover{background:#1e293b;transform:translateY(-2px);box-shadow:0 4px 12px #0f172a33}.btn-outline{color:var(--text-main);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:99px;padding:10px 20px;font-weight:600;transition:all .2s}.btn-outline:hover{background:#0f172a0a}.hero{text-align:center;padding:60px 0 80px}.hero-pill{background:var(--primary-light);color:var(--primary-hover);border:1px solid #3b82f633;border-radius:999px;align-items:center;gap:8px;margin-bottom:24px;padding:6px 16px;font-size:.85rem;font-weight:700;display:inline-flex}.hero h1{letter-spacing:-.04em;margin:0 0 20px;font-size:clamp(2.5rem,5vw,4.2rem);font-weight:800;line-height:1.1}.gradient-text{background:linear-gradient(120deg, var(--primary) 0%, var(--secondary) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero p{color:var(--text-muted);max-width:600px;margin:0 auto 32px;font-size:1.15rem;line-height:1.6}.hero-actions{justify-content:center;align-items:center;gap:16px;display:flex}.btn-gradient{background:linear-gradient(135deg, var(--primary), var(--secondary));color:#fff;cursor:pointer;border:none;border-radius:99px;align-items:center;gap:8px;padding:14px 28px;font-size:1rem;font-weight:700;transition:all .3s;display:inline-flex;box-shadow:0 8px 20px #6366f14d}.btn-gradient:hover{transform:translateY(-2px);box-shadow:0 12px 24px #6366f166}.btn-secondary{color:var(--text-main);border:1px solid var(--line);cursor:pointer;box-shadow:var(--shadow-soft);background:#fff;border-radius:99px;padding:14px 28px;font-size:1rem;font-weight:700;transition:all .2s}.btn-secondary:hover{background:var(--bg-base);border-color:#cbd5e1}.section-header{text-align:center;margin-bottom:40px}.section-header h2{margin:0 0 10px;font-size:2rem;font-weight:800}.section-header p{color:var(--text-muted);margin:0;font-size:1.05rem}.app-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;display:grid}.top-app-banner{border-radius:var(--radius-lg);cursor:pointer;background:radial-gradient(circle at 100% 0,#ef444433,#0000 32%),linear-gradient(135deg,#fffffff5,#fef2f2fa);border:1px solid #dc26263d;justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px;padding:24px 28px;display:flex;box-shadow:0 20px 40px #dc262614}.top-app-banner h3{margin:12px 0 8px;font-size:1.35rem}.top-app-banner p{color:var(--text-muted);margin:0;line-height:1.6}.top-app-chip{color:#b91c1c;letter-spacing:.04em;text-transform:uppercase;background:#dc26261f;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-size:.78rem;font-weight:800;display:inline-flex}.top-app-count{text-align:right;min-width:150px}.top-app-count strong{color:#b91c1c;font-size:2rem;display:block}.top-app-count span{color:var(--text-muted);font-size:.88rem;font-weight:700}.app-card{background:var(--bg-surface);border:1px solid var(--line);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(12px);cursor:pointer;box-shadow:var(--shadow-soft);flex-direction:column;height:100%;padding:32px;transition:all .4s cubic-bezier(.175,.885,.32,1.275);display:flex;position:relative}.app-card.top-app{border-color:#dc26264d;box-shadow:0 20px 44px #dc26261f}.app-card.top-app:before{content:"";border-radius:inherit;-webkit-mask-composite:xor;pointer-events:none;background:linear-gradient(135deg,#dc2626e6,#ef444473);padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.app-card:hover{border-color:var(--accent);box-shadow:0 20px 40px #0f172a14, 0 0 0 1px var(--accent);background:#fff;transform:translateY(-8px)scale(1.02)}.app-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}.app-icon{border-radius:var(--radius-md);width:60px;height:60px;color:var(--accent);background:#0f172a08;border:1px solid #0f172a0d;justify-content:center;align-items:center;transition:all .3s;display:flex}.app-card:hover .app-icon{background:var(--accent);color:#fff;box-shadow:0 10px 20px var(--accent-light);transform:scale(1.1)rotate(-5deg)}.app-badge{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:#0f172a0d;border-radius:99px;padding:4px 10px;font-size:.72rem;font-weight:700}.app-card-content flex{flex-grow:1}.app-card h3{color:var(--text-main);margin:0 0 8px;font-size:1.3rem;font-weight:800;transition:color .3s}.app-card:hover h3{color:var(--accent)}.app-card p{color:var(--text-muted);margin:0 0 24px;font-size:.95rem;line-height:1.6}.app-card-footer{color:var(--accent);align-items:center;gap:8px;margin-top:auto;font-size:.95rem;font-weight:700;display:flex}.app-card:hover .app-card-footer svg{transition:transform .3s;transform:translate(4px)}.modal-overlay{-webkit-backdrop-filter:blur(8px);z-index:9999;background:#0f172a66;justify-content:center;align-items:center;padding:20px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{border-radius:var(--radius-lg);background:#fff;width:100%;max-width:500px;animation:.3s cubic-bezier(.16,1,.3,1) slideUp;overflow:hidden;box-shadow:0 25px 50px -12px #0f172a40}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:24px;display:flex}.modal-header h2{margin:0;font-size:1.4rem;font-weight:800}.btn-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:8px;transition:all .2s;display:flex}.btn-close:hover{color:var(--text-main);background:#0f172a0d}.modal-body{padding:24px}.app-detail-hero{text-align:center;background:var(--bg-base);border-bottom:1px solid var(--line);padding:30px 20px}.app-detail-icon{border-radius:var(--radius-md);color:#fff;justify-content:center;align-items:center;width:72px;height:72px;margin:0 auto 16px;display:flex;box-shadow:0 10px 25px #0000001a}.app-detail-hero h2{margin:0 0 8px;font-size:1.6rem}.app-detail-hero p{color:var(--text-muted);margin:0}.app-detail-stats{justify-content:center;gap:20px;padding:24px;display:flex}.stat-item{text-align:center}.stat-value{color:var(--text-main);font-size:1.4rem;font-weight:800;display:block}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:600}.app-detail-actions{background:#fff;flex-direction:column;gap:12px;padding:24px;display:flex}.pricing-section{margin:80px 0}.pricing-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;max-width:900px;margin:0 auto;display:grid}.pricing-card{border:1px solid var(--line);border-radius:var(--radius-lg);text-align:center;background:#fff;padding:40px 32px;transition:all .3s;position:relative;overflow:hidden}.pricing-card.popular{border-color:var(--primary);box-shadow:0 20px 40px var(--primary-light)}.pricing-card.popular:before{content:"Đề Xuất";background:var(--primary);color:#fff;text-transform:uppercase;letter-spacing:.05em;padding:4px 40px;font-size:.75rem;font-weight:800;position:absolute;top:16px;right:-32px;transform:rotate(45deg)}.pricing-name{color:var(--text-muted);margin:0 0 16px;font-size:1.25rem;font-weight:700}.pricing-card.popular .pricing-name{color:var(--primary)}.pricing-price{color:var(--text-main);margin:0 0 24px;font-size:3rem;font-weight:800}.pricing-price span{color:var(--text-muted);font-size:1rem;font-weight:500}.pricing-features{text-align:left;margin:0 0 32px;padding:0;list-style:none}.pricing-features li{color:var(--text-main);align-items:center;gap:12px;margin-bottom:16px;font-size:.95rem;display:flex}.pricing-features li svg{color:var(--success);flex-shrink:0}.pricing-features li.disabled{color:var(--text-muted);opacity:.6;text-decoration:line-through}.pricing-features li.disabled svg{color:var(--text-muted)}.form-group{margin-bottom:20px}.form-label{color:var(--text-main);margin-bottom:8px;font-size:.9rem;font-weight:700;display:block}.form-control{border-radius:var(--radius-sm);width:100%;color:var(--text-main);background:#fff;border:1px solid #cbd5e1;outline:none;padding:14px 16px;font-family:inherit;font-size:1rem;transition:all .2s}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-light)}.error-msg{color:var(--danger);border-radius:var(--radius-sm);background:#fef2f2;border:1px solid #fecaca;margin-bottom:20px;padding:12px;font-size:.9rem;font-weight:500}.success-msg{color:#047857;border-radius:var(--radius-sm);background:#ecfdf5;border:1px solid #a7f3d0;margin-bottom:20px;padding:12px;font-size:.9rem;font-weight:600}.admin-tabs{border:1px solid var(--line);background:#0f172a0d;border-radius:999px;gap:10px;margin-bottom:24px;padding:6px;display:inline-flex}.admin-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:12px 18px;font-size:.95rem;font-weight:700;transition:all .2s}.admin-tab.active{color:var(--text-main);background:#fff;box-shadow:0 8px 20px #0f172a14}.admin-table-container{border-radius:var(--radius-md);border:1px solid var(--line);background:#fff;overflow-x:auto}.admin-table{border-collapse:collapse;text-align:left;width:100%}.admin-table th{background:var(--bg-base);color:var(--text-muted);border-bottom:2px solid var(--line);padding:16px;font-weight:700}.admin-table td{border-bottom:1px solid var(--line);color:var(--text-main);padding:16px}@media (width<=768px){.app-container{width:min(100% - 20px,1200px);padding-top:18px}.navbar{border-radius:0;flex-direction:column;align-items:stretch;gap:14px;margin:-18px -10px 28px;padding:16px;top:0}.brand{align-items:flex-start}.brand-text{min-width:0}.brand-text span,.brand-text sub{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.nav-actions{flex-wrap:wrap;gap:10px;width:100%}.app-menu-wrap{flex:1 1 0;min-width:0}.app-menu-trigger,.nav-actions>.btn-primary,.nav-actions>.btn-secondary{justify-content:center;width:100%}.app-menu-panel{border-radius:20px;width:auto;max-height:min(60vh,420px);margin-top:0;position:fixed;top:132px;left:10px;right:10px;box-shadow:0 18px 48px #0f172a2e}.app-menu-item{min-height:48px}.app-menu-name{white-space:normal;flex:1;line-height:1.3}.nav-stats{display:none}.nav-user{border-left:0;justify-content:space-between;width:100%;margin-left:0;padding-left:0}.nav-user-meta{text-align:left;min-width:0}.app-grid{grid-template-columns:1fr}.hero h1{font-size:2.5rem}.hero-actions{flex-direction:column}.hero-actions button{width:100%}.top-app-banner{flex-direction:column;align-items:flex-start;padding:20px}.top-app-count{text-align:left;min-width:0}.admin-tabs{width:100%;display:flex}.admin-tab{text-align:center;flex:1;padding:12px 14px}}
