:root{--bg-primary: #0b0f19;--bg-secondary: #121824;--bg-tertiary: #1a2336;--bg-card: rgba(26, 35, 54, .65);--text-primary: #f3f4f6;--text-secondary: #a1a1aa;--text-muted: #71717a;--accent-color: #8b5cf6;--accent-light: #a78bfa;--accent-dark: #6d28d9;--accent-gradient: linear-gradient(135deg, #8b5cf6 0%, #3b82f6 100%);--accent-gradient-hover: linear-gradient(135deg, #a78bfa 0%, #60a5fa 100%);--accent-glow: 0 0 20px rgba(139, 92, 246, .3);--success-color: #10b981;--success-light: #34d399;--error-color: #f43f5e;--border-color: rgba(255, 255, 255, .08);--border-focus: rgba(139, 92, 246, .5);--font-sans: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--radius-xl: 20px;--radius-lg: 16px;--radius-md: 12px;--radius-sm: 8px;--transition-smooth: all .3s cubic-bezier(.4, 0, .2, 1);--transition-fast: all .15s cubic-bezier(.4, 0, .2, 1);--shadow-lg: 0 10px 25px -5px rgba(0, 0, 0, .3), 0 8px 10px -6px rgba(0, 0, 0, .3);--shadow-glow: 0 0 30px rgba(139, 92, 246, .15)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);line-height:1.5;overflow-x:hidden;background-image:radial-gradient(at 0% 0%,rgba(139,92,246,.08) 0px,transparent 50%),radial-gradient(at 100% 100%,rgba(59,130,246,.08) 0px,transparent 50%);background-attachment:fixed}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:var(--radius-sm);border:2px solid var(--bg-primary)}::-webkit-scrollbar-thumb:hover{background:var(--accent-color)}h1,h2,h3,h4,h5,h6{font-weight:700;letter-spacing:-.02em}a{color:inherit;text-decoration:none}.navbar{position:sticky;top:0;z-index:100;background:#0b0f19cc;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color);padding:1.25rem 2rem;display:flex;justify-content:space-between;align-items:center;transition:var(--transition-smooth)}.logo-container{display:flex;align-items:center;gap:.75rem;font-size:1.5rem;font-weight:800;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;cursor:pointer}.logo-emoji{-webkit-text-fill-color:initial;font-size:1.75rem}.nav-links{display:flex;gap:1.5rem;align-items:center}.nav-link{font-weight:500;color:var(--text-secondary);transition:var(--transition-fast);padding:.5rem 1rem;border-radius:var(--radius-sm);cursor:pointer}.nav-link:hover,.nav-link.active{color:var(--text-primary);background:#ffffff0d}.nav-link.active{border-bottom:2px solid var(--accent-color);border-radius:var(--radius-sm) var(--radius-sm) 0 0}.btn-login{background:transparent;color:var(--text-primary);border:1px solid var(--border-color);padding:.5rem 1.25rem;border-radius:var(--radius-md);font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:var(--transition-smooth)}.btn-login:hover{background:var(--border-color);border-color:var(--text-secondary)}.user-badge{display:flex;align-items:center;gap:.75rem;background:var(--bg-tertiary);padding:.5rem 1rem;border-radius:9999px;border:1px solid var(--border-color);font-size:.9rem}.user-avatar{width:24px;height:24px;border-radius:50%;background:var(--accent-gradient);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:.8rem}.btn-logout{background:transparent;border:none;color:var(--error-color);cursor:pointer;font-size:.9rem;font-weight:600;margin-left:.5rem;transition:var(--transition-fast)}.btn-logout:hover{opacity:.8;text-decoration:underline}.main-container{max-width:1200px;margin:2rem auto;padding:0 1.5rem}.hero{background:radial-gradient(circle at 80% 20%,rgba(139,92,246,.15) 0%,transparent 60%),var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:3rem 4rem;margin-bottom:3rem;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow-lg),var(--shadow-glow);position:relative;overflow:hidden}.hero-content{max-width:60%}.hero-tag{background:#8b5cf626;color:var(--accent-light);display:inline-block;padding:.25rem .75rem;border-radius:9999px;font-size:.85rem;font-weight:600;margin-bottom:1rem;border:1px solid rgba(139,92,246,.2)}.hero h1{font-size:2.75rem;line-height:1.2;margin-bottom:1rem;background:linear-gradient(to right,#fff,#d1d5db);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.hero p{color:var(--text-secondary);font-size:1.1rem;margin-bottom:1.5rem;line-height:1.6}.hero-stats{display:flex;gap:2rem;margin-top:2rem}.stat-item{display:flex;flex-direction:column}.stat-number{font-size:1.75rem;font-weight:800;color:var(--text-primary)}.stat-label{font-size:.85rem;color:var(--text-muted)}.toolbar{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:2.5rem;display:flex;flex-direction:column;gap:1rem;box-shadow:var(--shadow-lg)}.search-box{display:flex;align-items:center;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.75rem 1.25rem;gap:.75rem;transition:var(--transition-smooth)}.search-box:focus-within{border-color:var(--border-focus);box-shadow:var(--accent-glow)}.search-input{background:transparent;border:none;color:var(--text-primary);font-size:1rem;width:100%;outline:none}.search-input::placeholder{color:var(--text-muted)}.filter-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.filter-group{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.filter-label{font-size:.9rem;color:var(--text-secondary);font-weight:500}.filter-btn{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary);padding:.5rem 1.25rem;border-radius:var(--radius-md);font-weight:500;cursor:pointer;transition:var(--transition-fast)}.filter-btn:hover{background:#ffffff0d;color:var(--text-primary)}.filter-btn.active{background:var(--accent-gradient);color:#fff;border-color:transparent;box-shadow:var(--accent-glow)}.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:2rem}.course-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;transition:var(--transition-smooth);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.course-card:hover{transform:translateY(-8px);border-color:var(--accent-light);box-shadow:var(--shadow-lg),0 10px 30px #8b5cf626}.course-img-wrapper{position:relative;height:200px;overflow:hidden}.course-img{width:100%;height:100%;object-fit:cover;transition:var(--transition-smooth)}.course-card:hover .course-img{transform:scale(1.05)}.course-badge{position:absolute;top:1rem;left:1rem;background:#0b0f19bf;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);color:var(--text-primary);padding:.25rem .75rem;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;border:1px solid var(--border-color)}.course-card-content{padding:1.5rem;display:flex;flex-direction:column;flex-grow:1}.course-instructor{font-size:.85rem;color:var(--text-muted);margin-bottom:.5rem}.course-title{font-size:1.25rem;font-weight:700;line-height:1.3;margin-bottom:.75rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;height:3.25rem}.course-rating-row{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.9rem}.star-rating{color:#fbbf24;display:flex;align-items:center}.rating-avg{font-weight:600}.rating-count{color:var(--text-muted)}.course-card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:1rem;border-top:1px solid var(--border-color)}.course-price{font-size:1.35rem;font-weight:800;color:var(--accent-light)}.course-price.free{color:var(--success-light)}.btn-view{background:var(--accent-gradient);color:#fff;border:none;padding:.5rem 1.25rem;border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:var(--transition-smooth)}.btn-view:hover{background:var(--accent-gradient-hover);box-shadow:var(--accent-glow)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#05070cd9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:1000;display:flex;justify-content:center;align-items:center;padding:2rem;overflow-y:auto}.modal-content{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);max-width:800px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg),0 0 50px #00000080;position:relative;animation:modalFadeIn .3s cubic-bezier(.16,1,.3,1)}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.btn-close-modal{position:absolute;top:1.25rem;right:1.25rem;background:#ffffff0d;border:1px solid var(--border-color);color:var(--text-secondary);width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition-fast);z-index:10}.btn-close-modal:hover{background:#ffffff1a;color:var(--text-primary)}.modal-header-img{width:100%;height:250px;object-fit:cover;border-bottom:1px solid var(--border-color)}.modal-body{padding:2.5rem}.modal-title{font-size:2rem;font-weight:800;line-height:1.2;margin-bottom:1rem}.modal-meta-row{display:flex;gap:1.5rem;margin-bottom:1.5rem;font-size:.95rem;color:var(--text-secondary)}.modal-description{color:var(--text-secondary);line-height:1.7;margin-bottom:2rem;font-size:1.05rem}.checkout-panel{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:2.5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1.5rem}.checkout-price-info{display:flex;flex-direction:column}.checkout-price-label{font-size:.85rem;color:var(--text-muted)}.checkout-price{font-size:2rem;font-weight:800;color:var(--accent-light)}.btn-register-action{background:var(--accent-gradient);color:#fff;border:none;padding:.75rem 2rem;border-radius:var(--radius-md);font-size:1.05rem;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:.75rem;transition:var(--transition-smooth)}.btn-register-action:hover{background:var(--accent-gradient-hover);box-shadow:var(--accent-glow)}.coupon-box{display:flex;gap:.5rem;margin-top:.75rem;width:100%}.coupon-input{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);padding:.5rem 1rem;border-radius:var(--radius-sm);font-size:.9rem;outline:none;width:150px}.btn-coupon-apply{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary);padding:.5rem 1rem;border-radius:var(--radius-sm);font-weight:600;cursor:pointer;transition:var(--transition-fast)}.btn-coupon-apply:hover{color:var(--text-primary);border-color:var(--text-secondary)}.reviews-section{border-top:1px solid var(--border-color);padding-top:2rem}.reviews-title{font-size:1.5rem;font-weight:700;margin-bottom:1.5rem}.review-form{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:2rem}.review-form-title{font-size:1.1rem;font-weight:600;margin-bottom:1rem}.rating-select{display:flex;gap:.5rem;margin-bottom:1rem;align-items:center}.star-btn{background:transparent;border:none;cursor:pointer;color:var(--text-muted);transition:var(--transition-fast)}.star-btn.selected,.star-btn:hover{color:#fbbf24}.comment-input{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);border-radius:var(--radius-md);padding:.75rem 1rem;width:100%;height:100px;outline:none;resize:vertical;font-family:inherit;font-size:.95rem;margin-bottom:1rem;transition:var(--transition-smooth)}.comment-input:focus{border-color:var(--border-focus)}.btn-submit-review{background:var(--accent-gradient);color:#fff;border:none;padding:.6rem 1.5rem;border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:var(--transition-smooth)}.btn-submit-review:hover{box-shadow:var(--accent-glow)}.btn-submit-review:disabled{opacity:.6;cursor:not-allowed}.error-message{color:var(--error-color);font-size:.9rem;margin-top:.5rem;font-weight:500}.success-message{color:var(--success-light);font-size:.9rem;margin-top:.5rem;font-weight:500}.reviews-list{display:flex;flex-direction:column;gap:1.25rem}.review-item{background:#ffffff05;border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.25rem}.review-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.review-user{font-weight:600;font-size:.95rem}.review-date{font-size:.8rem;color:var(--text-muted)}.review-comment{font-size:.95rem;color:var(--text-secondary);white-space:pre-line}.payment-modal{max-width:450px;text-align:center;padding:2.5rem}.qr-code-wrapper{background:#fff;padding:1rem;border-radius:var(--radius-md);display:inline-block;margin:1.5rem 0;box-shadow:0 4px 15px #0003}.qr-code-img{width:200px;height:200px;display:block}.payment-buttons{display:flex;gap:1rem;margin-top:2rem}.btn-pay-confirm{background:var(--success-color);color:#fff;border:none;flex:1;padding:.75rem;border-radius:var(--radius-md);font-weight:700;cursor:pointer;transition:var(--transition-smooth)}.btn-pay-confirm:hover{background:var(--success-light);box-shadow:0 0 15px #10b98166}.btn-pay-cancel{background:#ffffff0d;border:1px solid var(--border-color);color:var(--text-secondary);flex:1;padding:.75rem;border-radius:var(--radius-md);font-weight:700;cursor:pointer;transition:var(--transition-smooth)}.btn-pay-cancel:hover{background:#ffffff1a;color:var(--text-primary)}.toast-notification{position:fixed;bottom:2rem;right:2rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-left:4px solid var(--accent-color);border-radius:var(--radius-md);padding:1rem 1.5rem;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:.75rem;z-index:2000;animation:slideInUp .3s ease-out}.toast-notification.success{border-left-color:var(--success-color)}.toast-notification.error{border-left-color:var(--error-color)}@keyframes slideInUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.empty-state{text-align:center;padding:4rem 2rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-secondary)}.empty-state-icon{font-size:3rem;margin-bottom:1rem}.login-form-group{margin-bottom:1.25rem;text-align:left}.login-form-group label{display:block;font-size:.9rem;font-weight:500;margin-bottom:.5rem;color:var(--text-secondary)}.login-input{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);border-radius:var(--radius-md);padding:.75rem 1rem;width:100%;outline:none;font-size:1rem;transition:var(--transition-smooth)}.login-input:focus{border-color:var(--border-focus)}.btn-login-submit{background:var(--accent-gradient);color:#fff;border:none;padding:.75rem;border-radius:var(--radius-md);font-weight:700;width:100%;cursor:pointer;margin-top:1rem;font-size:1rem;transition:var(--transition-smooth)}.btn-login-submit:hover{background:var(--accent-gradient-hover);box-shadow:var(--accent-glow)}.system-footer{margin-top:5rem;border-top:1px solid var(--border-color);padding:2rem 0;display:flex;justify-content:space-between;align-items:center;font-size:.85rem;color:var(--text-muted)}.btn-reset-system{background:#f43f5e1a;color:var(--error-color);border:1px solid rgba(244,63,94,.2);padding:.4rem 1rem;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-fast)}.btn-reset-system:hover{background:#f43f5e33}
