@import "https://fonts.googleapis.com/css2?family=Lora:ital,wght@1,600;1,700&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";:root{--bg-base:#eff7ff;--bg-surface:#ffffffe0;--line:#1f4e791f;--text-main:#143b63;--text-muted:#5f7c99;--primary:#2f7ac4;--primary-hover:#2363a3;--primary-light:#2f7ac41f;--secondary:#66a9e8;--success:#2f8ac4;--warning:#5f9dd8;--danger:#3d8fd6;--shadow-soft:0 14px 34px #1b4d8014;--shadow-hover:0 24px 48px #1b4d8024;--radius-lg:24px;--radius-md:16px;--radius-sm:12px;--glass-bg:#ffffffc2;--glass-border:#93c5fd57}*{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 12% 0,#81c2ff38,#0000 42%),radial-gradient(circle at 85% 18%,#3680cc24,#0000 42%),radial-gradient(circle at 50% 100%,#b6e0ff2e,#0000 48%);background-attachment:fixed;margin:0;font-family:Plus Jakarta Sans,sans-serif;overflow-x:hidden}img,svg,video,canvas{max-width:100%}button{font-family:inherit}.app-container{width:min(1200px,100% - 32px);max-width:100%;margin:0 auto;padding:30px 0 80px;overflow-x:clip}.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);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:40px;padding:16px 24px;display:flex;position:static}.brand{align-items:center;gap:12px;display:flex}.brand-icon{background:#ffffffeb;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;display:flex;overflow:hidden;box-shadow:0 10px 24px #0f172a24}.brand-logo{object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.brand-text{flex-direction:column;display:flex}.brand-text span{letter-spacing:0;font-size:clamp(1rem,1.7vw,1.28rem);font-weight:800;line-height:1.2}.brand-text sub{display:none}.nav-actions{flex-wrap:wrap;align-items:center;gap:16px;min-width:0;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;min-width:0;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{color:#fff;cursor:pointer;background:linear-gradient(135deg,#1c5d96,#3b8bd3);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:linear-gradient(135deg,#184f81,#3178ba);transform:translateY(-2px);box-shadow:0 10px 24px #2c6cad3d}.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:#2f7ac40f}.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,#16538b 0%,#55a6eb 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 p.hero-tagline{color:#f59e0b;letter-spacing:0;text-wrap:balance;text-shadow:0 10px 24px #2f7ac42e;max-width:860px;margin:8px auto 18px;font-family:Lora,Plus Jakarta Sans,serif;font-size:clamp(1.35rem,2.45vw,2.05rem);font-style:italic;font-weight:700;line-height:1.42}.hero-actions{justify-content:center;align-items:center;gap:16px;display:flex}.btn-gradient{color:#fff;cursor:pointer;background:linear-gradient(135deg,#2d6fae,#69b2ee);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 10px 24px #3b83cb3d}.btn-gradient:hover{transform:translateY(-2px);box-shadow:0 14px 30px #3b83cb47}.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:#4d86bc47}.section-header{text-align:center;flex-direction:column;gap:8px;min-width:0;margin-bottom:40px;display:flex}.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{flex-wrap:wrap;align-items:stretch;gap:24px;display:flex}.library-spotlight{border-radius:var(--radius-lg);cursor:pointer;background:linear-gradient(135deg,#fffffff5,#dffaf6f5);border:1px solid #0f8d7f40;justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px;padding:22px 26px;display:flex;box-shadow:0 16px 34px #0f8d7f1f}.library-spotlight h3{margin:10px 0 8px;font-size:1.28rem}.library-spotlight p{color:var(--text-muted);margin:0}.library-spotlight-tag{color:#0f8d7f;letter-spacing:.04em;text-transform:uppercase;background:#0f8d7f24;border-radius:12px;padding:10px 14px;font-size:.82rem;font-weight:800}.category-chips{flex-wrap:wrap;gap:10px;margin:0 0 22px;display:flex}.hero-category-chips{justify-content:center;max-width:100%;margin:0 auto 28px}.category-chip{border:1px solid var(--line);color:var(--text-main);cursor:pointer;background:#fff;border-radius:999px;padding:8px 14px;font-size:.84rem;font-weight:700;transition:all .2s}.category-chip-large{padding:12px 22px;font-size:1rem;font-weight:800}.category-chip:hover{color:#1f6fb3;border-color:#2f7ac46b;transform:translateY(-1px)}.category-section{margin-top:28px}.category-header{justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:14px;display:flex}.category-header h3{margin:0;font-size:1.25rem;font-weight:800}.category-header p{color:var(--text-muted);margin:6px 0 0;font-size:.92rem}.category-count{color:#2f7ac4;background:#2f7ac41f;border-radius:999px;padding:6px 10px;font-size:.8rem;font-weight:800}.top-app-banner{border-radius:var(--radius-lg);cursor:pointer;background:radial-gradient(circle at 100% 0,#66a9e838,#0000 32%),linear-gradient(135deg,#fffffff7,#edf7fffa);border:1px solid #2f7ac43d;justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px;padding:24px 28px;display:flex;box-shadow:0 20px 40px #2f7ac41a}.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:#225f99;letter-spacing:.04em;text-transform:uppercase;background:#2f7ac41f;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:#225f99;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;flex:320px;min-width:0;max-width:100%;height:100%;padding:32px;transition:all .4s cubic-bezier(.175,.885,.32,1.275);display:flex;position:relative}.app-card.top-app{border-color:#3b8bd347;box-shadow:0 20px 44px #3b8bd324}.app-card.top-app:before{content:"";border-radius:inherit;-webkit-mask-composite:xor;pointer-events:none;background:linear-gradient(135deg,#21629de6,#66a9e885);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 #1b4d801a, 0 0 0 1px var(--accent);background:#fffffff5;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:#2f7ac40d;border:1px solid #2f7ac414;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:#2f7ac414;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:#143b6357;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:#2f7ac414}.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{flex-wrap:wrap;align-items:stretch;gap:24px;max-width:900px;margin:0 auto;display:flex}.pricing-card{border:1px solid var(--line);border-radius:var(--radius-lg);text-align:center;background:#fff;flex:300px;min-width:0;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 #c9ddf2;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:#eef7ff;border:1px solid #bfdcf8;margin-bottom:20px;padding:12px;font-size:.9rem;font-weight:500}.success-msg{color:#21629b;border-radius:var(--radius-sm);background:#eef7ff;border:1px solid #b7d8f7;margin-bottom:20px;padding:12px;font-size:.9rem;font-weight:600}.admin-tabs{border:1px solid var(--line);background:#2f7ac414;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:center}.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{flex-direction:column;gap:16px;display:flex}.app-card{flex-basis:auto}.hero h1{font-size:2.5rem}.hero-category-chips{margin-bottom:20px}.category-chip-large{padding:10px 16px;font-size:.92rem}.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}}
