* { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; outline: none; } html { background: #0f0f0f; } @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap'); body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: transparent; color: #ffffff; line-height: 1.6; overflow: hidden; position: relative; height: 100vh; } /* Vanta Waves Background for Login Page */ #vanta-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; } /* Page Management */ .page { display: none; } .page.active { display: block; } /* Login Page specific layout */ #loginPage.active { display: flex; align-items: center; justify-content: center; width: 100vw; height: 100vh; background: transparent; transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1); } #loginPage.fade-out { opacity: 0 !important; transform: translateY(-10px); } #loginPage.fade-out .login-container { opacity: 0; transform: translateY(-20px); transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1); } /* Dashboard Page specific layout */ #dashboard.active { display: block; width: 100%; min-height: 100vh; background: transparent; } /* Keep body overflow hidden even for dashboard */ body:has(#dashboard.active) { overflow: hidden; } /* Force visibility for dashboard elements */ #dashboard.active .main-content, #dashboard.active .content-view.active:not(.admin-only), #dashboard.active .content-section { display: block !important; visibility: visible !important; opacity: 1 !important; } /* Admin panel should only be visible when user has admin privileges AND it's the active view */ #dashboard.active .content-view.admin-only.visible.active { display: block !important; visibility: visible !important; opacity: 1 !important; } #dashboard.active .dashboard-layout { display: flex !important; } /* Allow dashboard layout to animate opacity */ #dashboard.active .dashboard-layout.fade-in { opacity: 1 !important; } /* Login Page Styles */ .login-container { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 100vh; padding: 20px; background: transparent; width: 100%; height: 100vh; position: relative; z-index: 1; opacity: 1; transform: translateY(0); transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1); } .logo { text-align: center; margin-bottom: 40px; } .logo h1 { font-size: 3em; font-weight: 300; color: #ffffff; letter-spacing: 2px; margin-bottom: 8px; text-transform: uppercase; } .logo-image { width: 200px; height: 200px; object-fit: contain; margin-bottom: 15px; filter: drop-shadow(0 0 20px rgba(255, 255, 255, 0.3)); transition: all 0.3s ease; } .logo-image:hover { filter: drop-shadow(0 0 30px rgba(255, 255, 255, 0.5)); transform: scale(1.05); } .logo p { font-size: 0.9em; color: rgba(255, 255, 255, 0.6); font-weight: 300; letter-spacing: 1px; } .form-container { background: #1a1a1a; border: 1px solid #2a2a2a; border-radius: 8px; padding: 40px 35px; width: 100%; max-width: 400px; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); backdrop-filter: blur(10px); } .form-toggle { display: flex; margin-bottom: 30px; background: #0f0f0f; border: 1px solid #2a2a2a; border-radius: 6px; padding: 4px; gap: 4px; } .tab-btn { flex: 1; padding: 12px 0; background: transparent; border: none; color: #888888; font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 500; border-radius: 4px; cursor: pointer; transition: all 0.2s ease; } .tab-btn.active { background: #1a1a1a; color: #ffffff; font-weight: 500; } .auth-form { display: none; } .auth-form.active { display: block; } .input-group { position: relative; margin-bottom: 25px; } .input-group input { width: 100%; padding: 15px 16px 15px 45px; background: #0f0f0f; border: 1px solid #2a2a2a; border-radius: 8px; color: #ffffff; font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 400; outline: none; transition: all 0.3s ease; } .input-group input:focus { border-color: #555555; background: #151515; box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.1); } /* Username validation states */ .input-group input.username-valid { border-color: #10b981 !important; box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.2) !important; } .input-group input.username-taken { border-color: #ef4444 !important; box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.2) !important; } .input-group input.username-reserved { border-color: #f59e0b !important; box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.2) !important; } .input-group input.username-too-short { border-color: #f97316 !important; box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.2) !important; } .input-group input.username-invalid { border-color: #ef4444 !important; box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.2) !important; } .input-group input::placeholder { color: #666666; font-weight: 400; } .input-icon { position: absolute; left: 15px; top: 50%; transform: translateY(-50%); color: #666666; pointer-events: none; z-index: 1; display: flex; align-items: center; justify-content: center; height: 18px; width: 18px; } .input-icon svg { width: 16px; height: 16px; } .password-toggle { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); background: none; border: none; color: #666666; cursor: pointer; padding: 5px; border-radius: 4px; transition: all 0.2s ease; font-size: 16px; } .password-toggle:hover { color: #999999; background: rgba(255, 255, 255, 0.05); } .form-options { display: flex; justify-content: space-between; align-items: center; margin-bottom: 25px; gap: 10px; } .remember-me { display: flex; align-items: center; cursor: pointer; user-select: none; gap: 8px; } .remember-me input[type="checkbox"] { display: none; } .checkmark { width: 18px; height: 18px; border: 2px solid #2a2a2a; border-radius: 4px; background: #0f0f0f; position: relative; transition: all 0.2s ease; flex-shrink: 0; } .remember-me input[type="checkbox"]:checked + .checkmark { background: #ffffff; border-color: #ffffff; } .remember-me input[type="checkbox"]:checked + .checkmark::after { content: '✓'; position: absolute; color: #000000; font-size: 12px; font-weight: bold; left: 50%; top: 50%; transform: translate(-50%, -50%); } .checkbox-text { color: #cccccc; font-size: 13px; font-weight: 400; } .forgot-password { color: #888888; font-size: 13px; font-weight: 400; text-decoration: none; transition: all 0.2s ease; } .forgot-password:hover { color: #ffffff; text-decoration: underline; } .terms-link { color: #ffffff; text-decoration: none; font-weight: 500; } .terms-link:hover { text-decoration: underline; } .submit-btn { width: 100%; padding: 16px 0; background: #ffffff; border: none; border-radius: 8px; color: #000000; font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; cursor: pointer; transition: all 0.3s ease; margin-top: 10px; margin-bottom: 20px; display: flex; align-items: center; justify-content: center; gap: 8px; position: relative; overflow: hidden; } .submit-btn::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); transition: left 0.5s ease; } .submit-btn:hover::before { left: 100%; } .submit-btn:hover { background: #f0f0f0; transform: translateY(-2px); box-shadow: 0 8px 25px rgba(255, 255, 255, 0.2); } .submit-btn:active { transform: translateY(0); } .btn-text { font-weight: 600; } .btn-icon { font-size: 16px; transition: transform 0.2s ease; } .submit-btn:hover .btn-icon { transform: translateX(3px); } .form-footer { text-align: center; margin-top: 20px; padding-top: 20px; border-top: 1px solid #2a2a2a; } .form-footer p { color: #888888; font-size: 13px; margin: 0; } .switch-form { color: #ffffff; text-decoration: none; font-weight: 500; transition: all 0.2s ease; } .switch-form:hover { text-decoration: underline; color: #cccccc; } .login-footer { text-align: center; margin-top: 30px; padding-top: 20px; } .login-footer p { color: rgba(255, 255, 255, 0.4); font-size: 12px; font-weight: 300; letter-spacing: 1px; margin: 0; } /* Loading Screen */ .loading-screen { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(15, 15, 15, 0.7); display: none; align-items: center; justify-content: center; z-index: 9999; } .loading-screen.active { display: flex; } .loading-logo { display: flex; align-items: center; justify-content: center; animation: loadingSequence 3s ease-in-out forwards; } .loading-skull { width: 120px; height: 120px; object-fit: contain; filter: drop-shadow(0 0 30px rgba(255, 255, 255, 0.6)); animation: skullPulse 1.5s ease-in-out infinite; } @keyframes loadingSequence { 0% { opacity: 0; transform: scale(0.5); } 20% { opacity: 1; transform: scale(1); } 80% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: scale(1.2); } } @keyframes skullPulse { 0%, 100% { transform: scale(1); filter: drop-shadow(0 0 30px rgba(255, 255, 255, 0.6)); } 50% { transform: scale(1.1); filter: drop-shadow(0 0 50px rgba(255, 255, 255, 0.9)); } } /* Dashboard Layout */ .dashboard-layout { display: flex; max-width: 1200px; width: 1200px; height: 100vh; margin: 0 auto; margin-top: 15px; gap: 0px; background: transparent; align-items: flex-start; opacity: 0; transform: translateY(20px); transition: all 0.8s cubic-bezier(0.23, 1, 0.32, 1); } .dashboard-layout.fade-in { opacity: 1; transform: translateY(0); } /* Sidebar */ .sidebar { width: 280px; background: #1a1a1a; border: 1px solid #2a2a2a; border-radius: 8px; display: flex; flex-direction: column; position: relative; height: fit-content; max-height: calc(100vh - 40px); overflow: hidden; margin-top: 15px; flex-shrink: 0; min-width: 280px; max-width: 280px; } .sidebar-header { padding: 20px 18px; border-bottom: 1px solid #2a2a2a; position: relative; background: linear-gradient(135deg, rgba(26, 26, 26, 0.9) 0%, rgba(15, 15, 15, 0.95) 50%, rgba(42, 42, 42, 0.8) 100%); overflow: hidden; border-radius: 8px 8px 0 0; min-height: 110px; } .sidebar-header::after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient( 180deg, rgba(26, 26, 26, 0.1) 0%, rgba(26, 26, 26, 0.3) 30%, rgba(26, 26, 26, 0.7) 70%, rgba(26, 26, 26, 0.95) 100% ); z-index: 1; pointer-events: none; } /* Banner Background */ .banner-background { position: absolute; top: 0; left: 0; right: 0; bottom: 0; z-index: 0; cursor: pointer; border-radius: 8px 8px 0 0; overflow: hidden; } .banner-upload { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; gap: 4px; opacity: 0.4; transition: opacity 0.2s ease; background: linear-gradient( 180deg, rgba(15, 15, 15, 0.2) 0%, rgba(15, 15, 15, 0.6) 100% ); } .banner-background:hover .banner-upload { opacity: 0.6; } .banner-upload-text { font-size: 10px; color: #888888; font-weight: 500; } .banner-upload-icon { font-size: 14px; opacity: 0.7; } .banner-image { width: 100%; height: 100%; object-fit: cover; position: absolute; top: 0; left: 0; z-index: 0; } .banner-image:hover::after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient( 180deg, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100% ); display: flex; align-items: center; justify-content: center; color: #ffffff; font-size: 10px; font-weight: 500; text-align: center; z-index: 1; } .sidebar-header::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-image: var(--profile-bg); background-size: cover; background-position: center; background-repeat: no-repeat; opacity: 0.15; filter: blur(8px); transform: scale(1.1); z-index: -1; } .user-profile { display: flex !important; flex-direction: row !important; align-items: center !important; gap: 15px !important; position: relative; z-index: 2; flex-wrap: nowrap !important; min-height: 60px; width: 100%; } /* Hide the file input that's breaking the layout */ .user-profile #profileUpload { display: none !important; position: absolute !important; width: 0 !important; height: 0 !important; visibility: hidden !important; } .user-profile .profile-avatar { width: 55px !important; height: 55px !important; border-radius: 50%; overflow: hidden; flex-shrink: 0 !important; background: transparent; cursor: pointer; transition: all 0.2s ease; position: relative; border: none; box-shadow: none; order: 1 !important; } .profile-avatar:hover { opacity: 0.8; transform: scale(1.05); } .profile-avatar:hover::after { content: "📷"; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 20px; background: rgba(0, 0, 0, 0.7); width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; border-radius: 10px; } .profile-avatar img { width: 100%; height: 100%; object-fit: cover; } .user-profile .profile-info { flex: 1 !important; min-width: 0 !important; overflow: hidden; order: 2 !important; display: flex !important; flex-direction: column !important; justify-content: center !important; } .user-profile .username { font-size: 16px !important; font-weight: 700 !important; color: #ffffff !important; margin: 0 0 4px 0 !important; word-break: break-word; text-shadow: 0 2px 4px rgba(0, 0, 0, 0.8); line-height: 1.2 !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .user-profile .join-info { display: flex !important; flex-direction: column !important; gap: 2px !important; margin: 0 !important; } .user-profile .join-info span { font-size: 11px !important; color: rgba(255, 255, 255, 0.7) !important; font-weight: 500; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8); } /* Force correct profile layout ordering */ .user-profile > .profile-avatar { order: 1 !important; flex: 0 0 auto !important; } .user-profile > .profile-info { order: 2 !important; flex: 1 !important; } /* Ensure hidden input doesn't interfere */ .user-profile > input[type="file"] { order: 3 !important; display: none !important; position: absolute !important; visibility: hidden !important; width: 0 !important; height: 0 !important; } /* Sidebar Navigation */ .sidebar-nav { flex: 1; padding: 15px 0; } .nav-item { display: flex; align-items: center; padding: 12px 15px; cursor: pointer; transition: all 0.2s ease; color: #888888; font-size: 13px; font-weight: 500; min-height: 42px; } .nav-item:hover { background: #2a2a2a; color: #ffffff; } .nav-item.active { background: #2a2a2a; color: #ffffff; border-right: 3px solid #4f46e5; } .nav-icon { display: flex; align-items: center; justify-content: center; width: 18px; height: 18px; margin-right: 10px; flex-shrink: 0; } .nav-icon svg { display: block; width: 100%; height: 100%; vertical-align: middle; } .nav-text { font-weight: 500; line-height: 1; display: flex; align-items: center; } /* Sidebar Footer */ .sidebar-footer { padding: 15px; border-top: 1px solid #2a2a2a; margin-top: auto; } .footer-links { display: flex; flex-direction: column; gap: 8px; margin-bottom: 15px; } .footer-link { color: #888888; text-decoration: none; font-size: 12px; transition: color 0.2s ease; } .footer-link:hover { color: #ffffff; } .copyright { font-size: 11px; color: #666666; margin-bottom: 15px; line-height: 1.3; } .logout-btn { width: 100%; padding: 20px 24px; background: transparent; border: 2px solid #333333; border-radius: 12px; color: #ffffff; font-family: 'Inter', sans-serif; font-weight: 600; cursor: pointer; transition: all 0.2s ease; text-transform: uppercase; letter-spacing: 1px; font-size: 16px; } .logout-btn:hover { background: #333333; border-color: #555555; transform: scale(1.02); } /* Main Content */ .main-content { flex: 1; padding: 15px; overflow-y: auto; overflow-x: hidden; background: transparent; height: calc(100vh - 30px); display: block !important; visibility: visible !important; opacity: 1 !important; /* Hide scrollbar for webkit browsers */ scrollbar-width: none; /* Firefox */ -ms-overflow-style: none; /* Internet Explorer 10+ */ min-width: 0; max-width: calc(1200px - 320px); } .main-content::-webkit-scrollbar { width: 0; height: 0; display: none; } .content-section { background: #1a1a1a; border: 1px solid #2a2a2a; border-radius: 8px; padding: 18px; margin-bottom: 15px; } .section-header { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; } .section-icon { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; margin-right: 10px; flex-shrink: 0; } .section-header h2 { font-size: 18px; font-weight: 600; color: #ffffff; margin: 0; } .section-subtitle { color: #888888; font-size: 13px; margin-bottom: 15px; font-weight: 400; } /* Hardware ID Reset Form */ .hwid-reset-form { display: flex; gap: 12px; align-items: flex-end; } .reason-input { flex: 1; padding: 12px 16px; background: #0f0f0f; border: 1px solid #333333; border-radius: 6px; color: #ffffff; font-family: 'Inter', sans-serif; font-size: 14px; outline: none; transition: border-color 0.2s ease; } .reason-input:focus { border-color: #4f46e5; } .reason-input::placeholder { color: #666666; } .reset-btn { display: flex; align-items: center; gap: 8px; padding: 12px 20px; background: #4f46e5; border: none; border-radius: 6px; color: #ffffff; font-family: 'Inter', sans-serif; font-weight: 500; cursor: pointer; transition: background-color 0.2s ease; font-size: 14px; white-space: nowrap; } .reset-btn:hover:not(:disabled) { background: #4338ca; } .reset-btn:disabled { background: #333333; cursor: not-allowed; opacity: 0.6; } .btn-icon { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; margin-right: 8px; flex-shrink: 0; } /* Key Activation Form */ .key-activation-form { display: flex; gap: 12px; align-items: flex-end; } .key-input { flex: 1; padding: 12px 16px; background: #0f0f0f; border: 1px solid #333333; border-radius: 6px; color: #ffffff; font-family: 'Inter', sans-serif; font-size: 14px; outline: none; transition: border-color 0.2s ease; } .key-input:focus { border-color: #4f46e5; } .key-input::placeholder { color: #666666; } .activate-btn { display: flex; align-items: center; gap: 8px; padding: 12px 20px; background: #4f46e5; border: none; border-radius: 6px; color: #ffffff; font-family: 'Inter', sans-serif; font-weight: 500; cursor: pointer; transition: background-color 0.2s ease; font-size: 14px; white-space: nowrap; } .activate-btn:hover { background: #4338ca; } /* Subscriptions List */ .subscriptions-list { display: flex; flex-direction: column; gap: 12px; } .subscription-item { display: flex; align-items: center; gap: 12px; padding: 12px; background: #0f0f0f; border: 1px solid #2a2a2a; border-radius: 6px; transition: border-color 0.2s ease; } .subscription-item:hover { border-color: #4f46e5; } .sub-icon { width: 36px; height: 36px; flex-shrink: 0; background: transparent; border-radius: 0; display: flex; align-items: center; justify-content: center; color: #ffffff; font-weight: 600; font-size: 12px; } .sub-icon img { width: 100%; height: 100%; border-radius: 0; object-fit: contain; } .sub-info { flex: 1; min-width: 0; } .sub-name { font-size: 14px; font-weight: 600; color: #ffffff; margin-bottom: 3px; } .alpha { color: #4f46e5; font-weight: 400; font-size: 14px; } .sub-status { font-size: 13px; line-height: 1.4; font-weight: 400; } .sub-status.frozen { color: #ef4444; } .sub-status.broken { color: #f59e0b; } .sub-status.inactive { color: #888888; } .sub-status.active { color: #22c55e; } .sub-action { display: flex; align-items: center; gap: 12px; flex-shrink: 0; } .extend-btn { display: flex; align-items: center; gap: 6px; padding: 8px 16px; background: #4f46e5; border-radius: 6px; color: #ffffff; font-size: 13px; font-weight: 500; cursor: pointer; transition: background-color 0.2s ease; white-space: nowrap; } .extend-btn:hover { background: #4338ca; } .lightning-icon { font-size: 18px; color: #fbbf24; cursor: pointer; transition: color 0.2s ease; } .lightning-icon:hover { color: #fbbf24; transform: scale(1.1); } .cart-icon { font-size: 12px; } .shop-btn { display: flex; align-items: center; gap: 6px; padding: 8px 16px; background: #6b7280; border: none; border-radius: 6px; color: #ffffff; font-size: 13px; font-weight: 500; cursor: pointer; transition: background-color 0.2s ease; white-space: nowrap; text-decoration: none; font-family: inherit; } .shop-btn:hover { background: #4b5563; text-decoration: none; color: #ffffff; } .shop-icon { font-size: 12px; display: flex; align-items: center; justify-content: center; } /* Content Views - Simplified */ .content-view { width: 100%; height: auto; } /* Username clickable styling */ .username.clickable { cursor: pointer; transition: color 0.2s ease; } .username.clickable:hover { color: #4f46e5; text-shadow: 0 2px 4px rgba(79, 70, 229, 0.3); } /* Profile Page Styles */ .profile-header-section { position: relative; margin-bottom: 25px; padding: 25px 20px; border-radius: 8px; border: 1px solid #2a2a2a; background: linear-gradient(135deg, rgba(26, 26, 26, 0.9) 0%, rgba(15, 15, 15, 0.95) 50%, rgba(42, 42, 42, 0.8) 100%); overflow: hidden; min-height: 140px; } .profile-header-section::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-image: var(--profile-banner-bg); background-size: cover; background-position: center; background-repeat: no-repeat; opacity: 0.3; filter: blur(8px); transform: scale(1.1); z-index: 0; } .profile-header-section::after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient( 180deg, rgba(26, 26, 26, 0.1) 0%, rgba(26, 26, 26, 0.3) 30%, rgba(26, 26, 26, 0.7) 70%, rgba(26, 26, 26, 0.95) 100% ); z-index: 1; pointer-events: none; } .profile-info-content { display: flex !important; flex-direction: row !important; align-items: center !important; gap: 20px; position: relative; z-index: 2; text-align: left !important; } /* Desktop layout override - force horizontal even at higher resolutions */ @media (min-width: 1024px) { .profile-info-content { display: flex !important; flex-direction: row !important; align-items: center !important; text-align: left !important; gap: 20px !important; } .profile-avatar-large { flex-shrink: 0 !important; align-self: center !important; } .profile-details { flex: 1 !important; text-align: left !important; } .profile-stats { display: flex !important; flex-direction: column !important; align-items: flex-start !important; gap: 6px !important; flex-wrap: nowrap !important; } .stat-item { display: flex !important; flex-direction: row !important; align-items: center !important; justify-content: flex-start !important; gap: 8px !important; min-width: auto !important; margin: 0 !important; padding: 0 !important; border-bottom: none !important; width: 100% !important; } .stat-label { font-size: 13px !important; color: #d0d0d0 !important; min-width: 70px !important; font-weight: 500 !important; margin: 0 !important; padding: 0 !important; text-align: left !important; display: inline !important; } .stat-value { font-size: 13px !important; color: #ffffff !important; font-weight: 400 !important; margin: 0 !important; padding: 0 !important; text-align: left !important; display: inline !important; word-break: break-all !important; overflow-wrap: break-word !important; max-width: 100% !important; } } .profile-avatar-large { width: 90px; height: 90px; border-radius: 50%; overflow: hidden; flex-shrink: 0; border: 3px solid rgba(255, 255, 255, 0.2); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); } .profile-avatar-large img { width: 100%; height: 100%; object-fit: cover; } .profile-details { flex: 1; } .profile-details h3 { color: #ffffff; font-size: 24px; font-weight: 700; margin-bottom: 12px; text-shadow: 0 2px 4px rgba(0, 0, 0, 0.8); } .profile-stats { display: flex; flex-direction: column; gap: 6px; } .stat-item { display: flex; align-items: center; gap: 8px; } .stat-label { color: #d0d0d0; font-size: 13px; font-weight: 500; min-width: 70px; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.7); } .stat-value { color: #ffffff; font-size: 13px; font-weight: 400; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.7); word-break: break-all; overflow-wrap: break-word; max-width: 100%; } .banner-placeholder { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: #666666; font-size: 14px; font-weight: 500; z-index: 1; opacity: 0.6; } /* Profile Activity Section */ .profile-activity { margin-top: 25px; } .activity-tabs { display: flex; gap: 2px; margin-bottom: 20px; background: #0f0f0f; border: 1px solid #2a2a2a; border-radius: 8px; padding: 4px; } .activity-tab { flex: 1; padding: 10px 16px; background: transparent; border: none; border-radius: 6px; color: #888888; font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 500; cursor: pointer; transition: all 0.2s ease; display: flex; align-items: center; justify-content: center; gap: 6px; } .activity-tab:hover { color: #ffffff; background: rgba(255, 255, 255, 0.05); } .activity-tab.active { background: #4f46e5; color: #ffffff; } .activity-content { background: #0f0f0f; border: 1px solid #2a2a2a; border-radius: 8px; overflow: hidden; } .activity-panel { display: none; padding: 20px; } .activity-panel.active { display: block; } /* Overview Tab */ .profile-overview { display: grid; grid-template-columns: 1fr; gap: 20px; } .overview-section { background: #1a1a1a; border: 1px solid #333333; border-radius: 8px; padding: 16px; } .overview-section h4 { color: #ffffff; font-size: 14px; font-weight: 600; margin: 0 0 12px 0; display: flex; align-items: center; gap: 8px; } .overview-item { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 1px solid rgba(51, 51, 51, 0.5); } .overview-item:last-child { border-bottom: none; } .overview-label { color: #888888; font-size: 13px; } .overview-value { color: #ffffff; font-size: 13px; font-weight: 500; } .status-badge { padding: 2px 8px; border-radius: 12px; font-size: 11px; font-weight: 600; text-transform: uppercase; } .status-badge.online { background: rgba(34, 197, 94, 0.2); color: #22c55e; } .status-badge.premium { background: rgba(168, 85, 247, 0.2); color: #a855f7; } .status-badge.alpha-only { background: linear-gradient(135deg, #8b5cf6, #ec4899); color: white; border: 1px solid rgba(139, 92, 246, 0.3); } /* Comments Redesign */ .comments-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; padding-bottom: 15px; border-bottom: 1px solid #2a2a2a; } .comments-title { display: flex; align-items: center; gap: 8px; color: #ffffff; font-size: 16px; font-weight: 600; margin: 0; } .comments-count { background: #333333; color: #ffffff; padding: 2px 8px; border-radius: 12px; font-size: 12px; font-weight: 500; } .add-comment-form { margin-bottom: 20px; } .comment-compose { background: #1a1a1a; border: 1px solid #333333; border-radius: 8px; padding: 12px; transition: border-color 0.2s ease; } .comment-compose:focus-within { border-color: #4f46e5; } .comment-input-row { display: flex; align-items: flex-start; gap: 10px; } .comment-avatar { width: 32px; height: 32px; border-radius: 50%; border: 2px solid #333333; flex-shrink: 0; } .comment-input-area { flex: 1; display: flex; flex-direction: column; gap: 10px; } #commentInput { width: 100%; background: transparent; border: none; color: #ffffff; font-family: 'Inter', sans-serif; font-size: 14px; resize: none; min-height: 36px; max-height: 120px; outline: none; line-height: 1.4; } #commentInput::placeholder { color: #666666; } .comment-actions { display: flex; justify-content: flex-end; gap: 8px; } .post-comment-btn { display: flex; align-items: center; gap: 5px; padding: 7px 14px; background: #4f46e5; border: none; border-radius: 6px; color: #ffffff; font-family: 'Inter', sans-serif; font-weight: 500; font-size: 13px; cursor: pointer; transition: background-color 0.2s ease; } .post-comment-btn:hover:not(:disabled) { background: #4338ca; } .post-comment-btn:disabled { background: #333333; cursor: not-allowed; opacity: 0.6; } .cancel-comment-btn { padding: 8px 16px; background: transparent; border: 1px solid #333333; border-radius: 6px; color: #888888; font-family: 'Inter', sans-serif; font-weight: 500; font-size: 13px; cursor: pointer; transition: all 0.2s ease; } .cancel-comment-btn:hover { border-color: #666666; color: #ffffff; } .comments-list { display: flex; flex-direction: column; gap: 16px; } .comment-item { display: flex; gap: 12px; padding: 16px 0; border-bottom: 1px solid rgba(42, 42, 42, 0.5); } .comment-item:last-child { border-bottom: none; } .comment-avatar-wrapper { flex-shrink: 0; } .comment-avatar-wrapper img { width: 36px; height: 36px; border-radius: 50%; border: 2px solid #333333; } .comment-content { flex: 1; display: flex; flex-direction: column; gap: 8px; } .comment-header { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .comment-username { color: #ffffff; font-size: 14px; font-weight: 600; } .comment-badge { background: #4f46e5; color: #ffffff; padding: 2px 6px; border-radius: 4px; font-size: 10px; font-weight: 600; text-transform: uppercase; } .comment-date { color: #888888; font-size: 12px; } .comment-text { color: #d0d0d0; font-size: 14px; line-height: 1.5; word-wrap: break-word; } .comment-actions-row { display: flex; align-items: center; gap: 16px; margin-top: 4px; } .comment-action { display: flex; align-items: center; gap: 4px; color: #888888; font-size: 12px; cursor: pointer; transition: color 0.2s ease; } .comment-action:hover { color: #ffffff; } .comment-action.liked { color: #4f46e5; } /* Reply functionality */ .reply-item { margin-left: 32px; border-left: 2px solid #2a2a2a; padding-left: 16px; margin-top: 12px; } .replies-container { margin-top: 8px; } /* Reply form specific styling */ .reply-form { margin-top: 12px; padding-left: 0; margin-left: 0; } .reply-form .comment-compose { background: #1a1a1a; border: 1px solid #333; border-radius: 8px; padding: 12px; } .reply-form .comment-avatar { width: 28px; height: 28px; } .reply-form .reply-input { min-height: 32px; font-size: 13px; background: transparent; border: none; color: #ffffff; font-family: 'Inter', sans-serif; resize: none; outline: none; line-height: 1.4; width: 100%; } .reply-form .reply-input::placeholder { color: #666666; } .reply-form .comment-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 8px; } .reply-form .reply-submit-btn { display: flex; align-items: center; gap: 5px; padding: 6px 12px; background: #4f46e5; border: none; border-radius: 4px; color: #ffffff; font-family: 'Inter', sans-serif; font-weight: 500; font-size: 13px; cursor: pointer; transition: background-color 0.2s ease; } .reply-form .reply-submit-btn:hover { background: #4338ca; } .reply-form .cancel-comment-btn { background: transparent; border: 1px solid #444; color: #888; padding: 6px 12px; border-radius: 4px; font-size: 13px; cursor: pointer; transition: all 0.2s ease; } .reply-form .cancel-comment-btn:hover { background: #333; color: #fff; border-color: #666; } /* Delete action styling */ .comment-action.delete-action { color: #ef4444; } .comment-action.delete-action:hover { color: #dc2626; } .no-comments { text-align: center; padding: 60px 20px; color: #666666; } .no-comments-icon { width: 48px; height: 48px; margin: 0 auto 16px; opacity: 0.3; background: #333333; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 20px; } .no-comments h4 { color: #888888; font-size: 16px; font-weight: 600; margin: 0 0 8px 0; } .no-comments p { font-size: 14px; color: #666666; margin: 0; line-height: 1.5; } @media (max-width: 768px) { /* Profile overview mobile fixes */ .profile-overview { grid-template-columns: 1fr; gap: 16px; } /* Profile header mobile responsive */ .profile-header-section { padding: 20px 16px; margin-bottom: 20px; min-height: 120px; } .profile-info-content { flex-direction: column; text-align: center; gap: 16px; } .profile-avatar-large { width: 80px; height: 80px; align-self: center; } .profile-details h3 { font-size: 20px; margin-bottom: 10px; } .profile-stats { align-items: center; } .stat-item { justify-content: center; gap: 6px; } .stat-label { min-width: auto; font-size: 12px; } .stat-value { font-size: 12px; word-break: break-all; overflow-wrap: break-word; } /* Activity tabs mobile responsive */ .activity-tabs { flex-direction: row; gap: 2px; padding: 3px; } .activity-tab { font-size: 13px; padding: 8px 12px; } .activity-tab svg { width: 14px; height: 14px; } .comments-count { font-size: 10px; padding: 1px 6px; } /* Activity content mobile responsive */ .activity-content { max-height: none; overflow: visible; } .activity-panel { padding: 16px; max-height: none; overflow-y: visible; } /* Overview sections mobile responsive */ .overview-section { padding: 14px; margin-bottom: 16px; } .overview-section h4 { font-size: 13px; margin-bottom: 10px; } .overview-item { padding: 6px 0; font-size: 12px; } .overview-label, .overview-value { font-size: 12px; } .status-badge { font-size: 10px; padding: 1px 6px; } /* Comments section mobile responsive */ .comments-header { margin-bottom: 16px; padding-bottom: 12px; flex-direction: column; align-items: flex-start; gap: 8px; } .comments-title { font-size: 14px; } .add-comment-form { margin-bottom: 16px; } .comment-compose { padding: 10px; } .comment-input-row { flex-direction: row; gap: 10px; align-items: flex-start; } .comment-avatar { width: 30px; height: 30px; flex-shrink: 0; } .comment-input-area { flex: 1; } #commentInput { min-height: 34px; font-size: 13px; line-height: 1.3; } .comment-actions { margin-top: 8px; justify-content: flex-end; } .post-comment-btn { padding: 6px 12px; font-size: 12px; border-radius: 4px; } .post-comment-btn svg { width: 12px; height: 12px; } /* Comments list mobile responsive */ .comments-list { gap: 12px; } .comment-item { padding: 12px 0; gap: 10px; } .comment-avatar-wrapper img { width: 32px; height: 32px; } .comment-header { gap: 6px; } .comment-username { font-size: 13px; } .comment-badge { font-size: 9px; padding: 1px 4px; } .comment-date { font-size: 11px; } .comment-text { font-size: 13px; line-height: 1.4; } .comment-actions-row { gap: 12px; margin-top: 6px; } .comment-action { font-size: 11px; gap: 3px; } .comment-action svg { width: 10px; height: 10px; } /* Reply items mobile responsive */ .reply-item { margin-left: 20px; padding-left: 12px; margin-top: 8px; } .reply-form { margin-top: 8px; } .reply-form .comment-compose { padding: 8px; } .reply-form .comment-avatar { width: 24px; height: 24px; } .reply-form .reply-input { min-height: 28px; font-size: 12px; } .reply-form .comment-actions { margin-top: 6px; gap: 6px; } .reply-form .reply-submit-btn, .reply-form .cancel-comment-btn { padding: 4px 8px; font-size: 11px; } /* No comments message mobile responsive */ .no-comments { padding: 40px 16px; } .no-comments-icon { width: 36px; height: 36px; margin: 0 auto 12px; font-size: 16px; } .no-comments h4 { font-size: 14px; margin-bottom: 6px; } .no-comments p { font-size: 12px; } /* Ensure proper scrolling on mobile */ .content-view { overflow-y: auto; -webkit-overflow-scrolling: touch; height: auto; max-height: none; } .profile-activity { margin-top: 20px; overflow: visible; } } /* Security Form Styles */ .security-form { max-width: 400px; margin-top: 20px; } .security-form .input-group { margin-bottom: 20px; } .change-password-btn { width: 100%; padding: 16px 0; background: #ffffff; border: none; border-radius: 8px; color: #000000; font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; cursor: pointer; transition: all 0.3s ease; margin-top: 10px; display: flex; align-items: center; justify-content: center; gap: 8px; position: relative; overflow: hidden; } .change-password-btn::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); transition: left 0.5s ease; } .change-password-btn:hover::before { left: 100%; } .change-password-btn:hover { background: #f0f0f0; transform: translateY(-2px); box-shadow: 0 8px 25px rgba(255, 255, 255, 0.2); } .change-password-btn:active { transform: translateY(0); } /* Image Management Form Styles */ .image-management-form { max-width: 400px; margin-top: 20px; } .image-action-row { display: flex; gap: 12px; margin-bottom: 20px; } .remove-image-btn { flex: 1; padding: 14px 0; background: #dc3545; border: none; border-radius: 8px; color: #ffffff; font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; cursor: pointer; transition: all 0.3s ease; display: flex; align-items: center; justify-content: center; gap: 8px; position: relative; overflow: hidden; } .remove-image-btn::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); transition: left 0.5s ease; } .remove-image-btn:hover::before { left: 100%; } .remove-image-btn:hover { background: #c82333; transform: translateY(-2px); box-shadow: 0 8px 25px rgba(220, 53, 69, 0.3); } .remove-image-btn:active { transform: translateY(0); } /* Responsive styles for image management */ @media (max-width: 768px) { .image-action-row { flex-direction: column; gap: 10px; } .remove-image-btn { font-size: 12px; padding: 12px 0; } } /* Responsive Design */ @media (max-width: 1024px) { .dashboard-layout { margin: 15px; max-width: 1200px; } .sidebar { width: 280px; flex-shrink: 0; } .main-content { padding: 20px; } } @media (max-width: 768px) { .dashboard-layout { margin: 10px; flex-direction: column; min-height: auto; gap: 20px; align-items: stretch; } .sidebar { width: 100%; max-height: none; height: fit-content; } .main-content { padding: 15px; } .hwid-reset-form, .key-activation-form { flex-direction: column; align-items: stretch; } .subscription-item { flex-direction: column; text-align: center; gap: 10px; } .sub-action { justify-content: center; } } @media (max-width: 600px) { .dashboard-layout { margin: 5px; } .content-section { padding: 15px; } .sidebar-header, .sidebar-footer { padding: 12px; } } /* Hide subscription content when Security nav is active */ .nav-item[data-section="security"].active ~ .main-content #subscriptionsView { display: none; } .nav-item[data-section="shoutbox"].active ~ .main-content #subscriptionsView { display: none; } .nav-item[data-section="shoutbox"].active ~ .main-content #profileView { display: none; } .nav-item[data-section="shoutbox"].active ~ .main-content #securityView { display: none; } /* Hide subscription content when Profile nav is active */ .nav-item[data-section="profile"].active ~ .main-content #subscriptionsView { display: none; } /* Alternative approach - hide individual sections when security is active */ body:has(.nav-item[data-section="security"].active) #subscriptionsView { display: none !important; } /* Alternative approach - hide individual sections when profile is active */ body:has(.nav-item[data-section="profile"].active) #subscriptionsView { display: none !important; } /* Alternative approach - hide individual sections when shoutbox is active */ body:has(.nav-item[data-section="shoutbox"].active) #subscriptionsView { display: none !important; } body:has(.nav-item[data-section="shoutbox"].active) #profileView { display: none !important; } body:has(.nav-item[data-section="shoutbox"].active) #securityView { display: none !important; } /* Fallback - add a class-based approach */ .security-active #subscriptionsView { display: none !important; } .security-active #securityView { display: block !important; } .shoutbox-active #subscriptionsView { display: none !important; } .shoutbox-active #profileView { display: none !important; } .shoutbox-active #securityView { display: none !important; } .shoutbox-active #shoutboxView { display: block !important; } /* Profile page content hiding rules */ .profile-active #subscriptionsView { display: none !important; } .profile-active #securityView { display: none !important; } .profile-active #profileView { display: block !important; } /* Additional specific rules to ensure content hiding works */ body.profile-active .content-view:not(#profileView) { display: none !important; } body.profile-active #profileView { display: block !important; } /* Mobile sidebar toggle button */ .mobile-sidebar-toggle { display: none; position: fixed; top: 20px; left: 20px; z-index: 1000; background: #1a1a1a; border: 1px solid #2a2a2a; border-radius: 8px; padding: 12px; color: #ffffff; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); } .mobile-sidebar-toggle:hover { background: #2a2a2a; transform: scale(1.05); } .mobile-sidebar-toggle svg { width: 20px; height: 20px; } /* Sidebar overlay for mobile - completely disabled */ .sidebar-overlay { display: none !important; pointer-events: none !important; } @media (max-width: 768px) { html, body { font-size: 14px; overflow-x: hidden; overflow-y: auto !important; background: #0f0f0f; } .dashboard-layout { margin: 0; gap: 0; max-width: 100vw; padding: 0; width: 100vw; min-height: 100vh; position: relative; } .mobile-sidebar-toggle { display: block; } .sidebar { position: fixed; top: 0; left: -100%; width: 280px; height: 100vh; /* Full viewport height */ z-index: 999; transition: left 0.3s cubic-bezier(0.23, 1, 0.32, 1); margin-top: 0; max-height: 100vh; overflow-y: auto; border-radius: 0; border-right: 1px solid #2a2a2a; border-left: none; border-top: none; border-bottom: none; pointer-events: auto !important; } .sidebar.mobile-visible { left: 0; } /* Ensure sidebar elements are clickable on mobile */ .sidebar .nav-item, .sidebar .logout-btn, .sidebar .footer-link, .sidebar .profile-avatar { pointer-events: auto !important; cursor: pointer !important; position: relative; z-index: auto; } .main-content { width: 100vw; margin-top: 0; padding: 80px 16px 16px 16px; min-height: 100vh; overflow-y: auto; -webkit-overflow-scrolling: touch; scroll-behavior: smooth; } .content-section { margin-bottom: 20px; padding: 20px 16px; } .section-header h2 { font-size: 18px; } .hwid-reset-form, .key-activation-form { gap: 12px; } .reason-input, .key-input { padding: 12px 14px; font-size: 14px; } .reset-btn, .activate-btn { padding: 12px 16px; font-size: 14px; } .subscription-item { padding: 16px; flex-direction: row; align-items: center; gap: 16px; margin-bottom: 12px; position: relative; } .sub-info { margin-left: 0; text-align: left; flex: 1; display: flex; flex-direction: column; gap: 8px; } .sub-info .cheat-header { display: flex; align-items: center; gap: 12px; } .sub-action { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); display: flex; gap: 8px; } .sub-name { text-align: left; margin: 0; } .sub-status { text-align: left; margin-top: 4px; } .sub-icon { width: 40px; height: 40px; flex-shrink: 0; } } @media (max-width: 480px) { html, body { font-size: 12px; height: 100%; overflow-y: auto; } .main-content { padding: 70px 12px 12px 12px; overflow-y: auto; -webkit-overflow-scrolling: touch; max-height: 100vh; } .content-section { padding: 16px 12px; } .section-header h2 { font-size: 16px; } .hwid-reset-form, .key-activation-form { gap: 10px; } .reason-input, .key-input { padding: 10px 12px; font-size: 13px; } .reset-btn, .activate-btn { padding: 10px 14px; font-size: 13px; } .subscription-item { padding: 12px; align-items: flex-start; } .sidebar { width: 260px; } .mobile-sidebar-toggle { top: 15px; left: 15px; padding: 10px; } .mobile-sidebar-toggle svg { width: 18px; height: 18px; } /* CONSOLIDATED Mobile profile styles - prevent conflicts */ .profile-header-section { padding: 20px 16px !important; margin-bottom: 20px !important; min-height: 120px !important; } .profile-info-content { flex-direction: column !important; text-align: center !important; gap: 16px !important; } .profile-avatar-large { width: 80px !important; height: 80px !important; align-self: center !important; } .profile-details h3 { font-size: 20px !important; margin-bottom: 10px !important; } .profile-stats { align-items: center !important; justify-content: center !important; gap: 16px !important; } .stat-item { justify-content: center !important; gap: 6px !important; min-width: auto !important; } .stat-label { min-width: auto !important; font-size: 12px !important; color: rgba(255, 255, 255, 0.7) !important; } .stat-value { font-size: 12px !important; word-break: break-all !important; overflow-wrap: break-word !important; color: #ffffff !important; font-weight: 600 !important; } .activity-tabs { flex-direction: row !important; gap: 2px !important; padding: 3px !important; justify-content: center !important; margin-bottom: 16px !important; } .activity-tab { font-size: 13px !important; padding: 8px 12px !important; flex: 1 !important; text-align: center !important; } .activity-tab svg { width: 14px !important; height: 14px !important; } .comments-count { font-size: 10px !important; padding: 1px 6px !important; } .activity-content { max-height: none !important; overflow: visible !important; } .activity-panel { padding: 16px !important; max-height: none !important; overflow-y: visible !important; } .overview-section { padding: 14px !important; margin-bottom: 16px !important; border-radius: 8px !important; } .overview-section h4 { font-size: 13px !important; margin-bottom: 10px !important; text-align: center !important; } .overview-item { padding: 6px 0 !important; font-size: 12px !important; display: flex !important; justify-content: space-between !important; align-items: center !important; } .overview-label, .overview-value { font-size: 12px !important; } .status-badge { font-size: 10px !important; padding: 1px 6px !important; } /* Comments section mobile */ .comments-header { margin-bottom: 16px !important; padding-bottom: 12px !important; flex-direction: column !important; align-items: flex-start !important; gap: 8px !important; } .comments-title { font-size: 14px !important; text-align: center !important; width: 100% !important; } .comment-compose { padding: 10px !important; } .comment-input-row { flex-direction: row !important; gap: 10px !important; align-items: flex-start !important; } .comment-avatar { width: 30px !important; height: 30px !important; flex-shrink: 0 !important; } .comment-input-area { flex: 1 !important; } #commentInput { min-height: 34px !important; font-size: 13px !important; line-height: 1.3 !important; } .comment-actions { margin-top: 8px !important; justify-content: flex-end !important; } .post-comment-btn { padding: 6px 12px !important; font-size: 12px !important; border-radius: 4px !important; } .post-comment-btn svg { width: 12px !important; height: 12px !important; } .comments-list { gap: 12px !important; } .comment-item { padding: 12px 0 !important; gap: 10px !important; } .comment-avatar-wrapper img { width: 32px !important; height: 32px !important; } .comment-header { gap: 6px !important; flex-wrap: wrap !important; } .comment-username { font-size: 13px !important; } .comment-badge { font-size: 9px !important; padding: 1px 4px !important; } .comment-date { font-size: 11px !important; } .comment-text { font-size: 12px !important; line-height: 1.4 !important; margin-top: 4px !important; } .comment-actions-row { margin-top: 8px !important; gap: 12px !important; } .comment-action { font-size: 10px !important; padding: 4px 8px !important; } .comment-action svg { width: 12px !important; height: 12px !important; } .reply-item { margin-left: 20px !important; padding-left: 12px !important; border-left: 2px solid rgba(255, 255, 255, 0.1) !important; } .reply-form .comment-avatar { width: 26px !important; height: 26px !important; } .reply-form .reply-input { min-height: 30px !important; font-size: 12px !important; } } /* Enhanced Notification Animations */ @keyframes symbolPopScreen { 0% { transform: scale(0) rotate(0deg); opacity: 0; } 50% { transform: scale(1.3) rotate(180deg); opacity: 1; } 100% { transform: scale(1) rotate(360deg); opacity: 1; } } @keyframes rippleExpand { 0% { width: 0; height: 0; opacity: 0.25; } 40% { opacity: 0.15; } 100% { width: var(--max-size); height: var(--max-size); opacity: 0; } } @keyframes slideInFromRight { 0% { opacity: 0; transform: translateX(400px) scale(0.8); } 100% { opacity: 1; transform: translateX(0) scale(1); } } @keyframes slideOutToRight { 0% { opacity: 1; transform: translateX(0) scale(1); } 100% { opacity: 0; transform: translateX(400px) scale(0.8); } } @keyframes fadeOutCenter { 0% { opacity: 1; } 100% { opacity: 0; } } @keyframes quietSlideIn { 0% { opacity: 0; transform: translateX(100px); } 100% { opacity: 1; transform: translateX(0); } } @keyframes quietSlideOut { 0% { opacity: 1; transform: translateX(0); } 100% { opacity: 0; transform: translateX(100px); } } /* Shoutbox Styling */ .shoutbox-container { background: #1a1a1a; border: 1px solid #2a2a2a; border-radius: 8px; overflow: hidden; } .shoutbox-messages { height: 400px; overflow-y: hidden; padding: 16px; background: #1a1a1a; display: flex; flex-direction: column; justify-content: flex-end; } .shout-item { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 16px; padding-bottom: 16px; border-bottom: 1px solid rgba(42, 42, 42, 0.5); } .shout-item:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; } .shout-avatar { width: 42px; height: 42px; border-radius: 50%; border: none; flex-shrink: 0; object-fit: cover; } .shout-content { flex: 1; min-width: 0; } .shout-header { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; } .shout-username { color: #4f46e5; font-size: 13px; font-weight: 600; } .clickable-username { cursor: pointer; transition: all 0.2s ease; padding: 2px 4px; border-radius: 4px; } .clickable-username:hover { background: rgba(79, 70, 229, 0.15); transform: translateY(-1px); } .shout-item[data-username="analteam"] .shout-username { color: #10b981; background: rgba(16, 185, 129, 0.1); padding: 2px 6px; border-radius: 4px; font-weight: 700; } .shout-item[data-username="analteam"] .shout-avatar { border: none; box-shadow: 0 0 8px rgba(16, 185, 129, 0.3); } .shout-item[data-username="analteam"] .shout-text { color: #d1fae5; font-weight: 500; } .shout-badge { background: #4f46e5; color: #ffffff; padding: 1px 6px; border-radius: 8px; font-size: 10px; font-weight: 600; text-transform: uppercase; border: 1px solid #4338ca; box-shadow: 0 2px 4px rgba(79, 70, 229, 0.4); text-shadow: 0 1px 2px rgba(0, 0, 0, 0.7); } .shout-time { color: #666666; font-size: 11px; margin-left: auto; } .shout-text { color: #cccccc; font-size: 13px; line-height: 1.4; word-break: break-word; } .mention { color: #4f46e5; background: rgba(79, 70, 229, 0.1); padding: 1px 4px; border-radius: 4px; font-weight: 600; cursor: pointer; transition: all 0.2s ease; } .mention:hover { background: rgba(79, 70, 229, 0.2); color: #6366f1; } .shoutbox-input-container { background: #1a1a1a; border-top: 1px solid #2a2a2a; padding: 16px; } .shoutbox-input-row { display: flex; align-items: center; gap: 12px; } .shoutbox-avatar { width: 42px; height: 42px; border-radius: 50%; border: none; flex-shrink: 0; object-fit: cover; } .shoutbox-input-area { flex: 1; display: flex; align-items: center; background: #2a2a2a; border: 1px solid #333333; border-radius: 8px; padding: 0 12px; transition: border-color 0.2s ease; } .shoutbox-input-area:focus-within { border-color: #4f46e5; } #shoutboxInput { flex: 1; background: transparent; border: none; color: #ffffff; font-family: 'Inter', sans-serif; font-size: 14px; padding: 12px 0; outline: none; } #shoutboxInput::placeholder { color: #666666; } .shoutbox-actions { display: flex; align-items: center; gap: 12px; } .char-count { color: #666666; font-size: 11px; font-family: 'Inter', sans-serif; } .send-shout-btn { background: #4f46e5; border: none; border-radius: 6px; color: white; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background-color 0.2s ease; flex-shrink: 0; } .send-shout-btn:hover:not(:disabled) { background: #4338ca; } .send-shout-btn:disabled { background: #333333; cursor: not-allowed; opacity: 0.6; } .no-shouts { text-align: center; padding: 40px 20px; color: #666666; } .no-shouts-icon { font-size: 32px; margin-bottom: 12px; } .no-shouts h4 { color: #888888; font-size: 16px; font-weight: 600; margin: 0 0 8px 0; } .no-shouts p { color: #666666; font-size: 14px; margin: 0; } @media (max-width: 768px) { .shoutbox-messages { height: 300px; padding: 12px; } .shout-item { margin-bottom: 12px; padding-bottom: 12px; } .shout-avatar, .shoutbox-avatar { width: 38px; height: 38px; } .shoutbox-input-container { padding: 12px; } .shoutbox-input-row { gap: 8px; } #shoutboxInput { padding: 10px 0; font-size: 13px; } .send-shout-btn { width: 28px; height: 28px; } .send-shout-btn svg { width: 14px; height: 14px; } } /* Account Type Badge Styles */ .account-type-badge { font-size: 10px !important; font-weight: 600 !important; text-transform: uppercase !important; padding: 2px 6px !important; border-radius: 4px !important; border: 1px solid transparent !important; letter-spacing: 0.5px !important; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) !important; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.7) !important; } /* Account type specific styling for avatars in shoutbox */ .shout-item[data-account-type="owner"] .shout-avatar { border: none; box-shadow: 0 0 8px rgba(245, 158, 11, 0.3); } .shout-item[data-account-type="admin"] .shout-avatar { border: none; box-shadow: 0 0 8px rgba(239, 68, 68, 0.3); } .shout-item[data-account-type="premium"] .shout-avatar { border: none; box-shadow: 0 0 8px rgba(139, 92, 246, 0.3); } .shout-item[data-account-type="femboy"] .shout-avatar { border: none; box-shadow: 0 0 8px rgba(236, 72, 153, 0.3); } .shout-item[data-account-type="user"] .shout-avatar { border: none; } /* Femboy gradient text support for older browsers */ .shout-item[data-account-type="femboy"] .shout-username, .comment-item .comment-username[style*="gradient"] { background: linear-gradient(45deg, #ec4899, #ffffff) !important; -webkit-background-clip: text !important; -webkit-text-fill-color: transparent !important; background-clip: text !important; font-weight: 600 !important; } /* Admin Panel Styles */ .admin-only { display: none !important; } .admin-only.visible { display: flex !important; } /* Override for admin nav items to maintain proper flex layout */ .nav-item.admin-only.visible { display: flex !important; align-items: center; } /* Ensure admin content views are properly controlled */ .content-view.admin-only { display: none !important; } .content-view.admin-only.visible:not(.active) { display: none !important; } .content-view.admin-only.visible.active { display: block !important; } /* Admin panel specific content adjustments */ #adminView { padding-top: 0 !important; margin-top: 0 !important; } #adminView .content-section { padding: 15px; margin-bottom: 15px; margin-top: 0; max-width: 100%; overflow-x: auto; width: 100%; box-sizing: border-box; } #adminView .section-header { margin-bottom: 12px; } #adminView .section-subtitle { margin-bottom: 20px; } .admin-tabs { display: flex; gap: 20px; margin-bottom: 10px; border-bottom: 1px solid #2a2a2a; padding-bottom: 2px; flex-wrap: wrap; overflow: visible; } .admin-tab { display: flex; align-items: center; gap: 10px; padding: 14px 20px; background: transparent; border: none; color: #888888; font-size: 14px; font-weight: 500; cursor: pointer; border-bottom: 2px solid transparent; transition: all 0.2s ease; border-radius: 6px 6px 0 0; } .admin-tab:hover { color: #cccccc; background: rgba(79, 70, 229, 0.1); } .admin-tab.active { color: #4f46e5; border-bottom-color: #4f46e5; background: rgba(79, 70, 229, 0.1); } .admin-tab svg { width: 16px; height: 16px; } .admin-panel { display: none; } .admin-panel.active { display: block; } .admin-section { background: #1a1a1a; border-radius: 12px; padding: 24px; border: 1px solid #2a2a2a; max-width: 100%; overflow: visible; } .admin-section h3 { display: flex; align-items: center; gap: 8px; color: #ffffff; font-size: 16px; font-weight: 600; margin: 0 0 16px 0; } .users-list, .banned-users-list { display: flex; flex-direction: column; gap: 8px; overflow: visible; } /* Custom scrollbar for admin lists */ .users-list::-webkit-scrollbar, .banned-users-list::-webkit-scrollbar { width: 6px; } .users-list::-webkit-scrollbar-track, .banned-users-list::-webkit-scrollbar-track { background: #1a1a1a; border-radius: 3px; } .users-list::-webkit-scrollbar-thumb, .banned-users-list::-webkit-scrollbar-thumb { background: #4f46e5; border-radius: 3px; } .users-list::-webkit-scrollbar-thumb:hover, .banned-users-list::-webkit-scrollbar-thumb:hover { background: #4338ca; } /* Troll Features Panel Styles */ .troll-section { margin-top: 10px; } .troll-section h4 { color: #ff6b6b; font-size: 18px; font-weight: 600; margin-bottom: 15px; display: flex; align-items: center; gap: 8px; } .troll-description { background: rgba(255, 107, 107, 0.1); border: 1px solid rgba(255, 107, 107, 0.3); border-radius: 8px; padding: 12px 16px; margin-bottom: 20px; } .troll-description p { color: #e0e0e0; margin: 0; font-size: 14px; } .troll-feature { background: #222222; border: 1px solid #333333; border-radius: 10px; padding: 20px; margin-bottom: 16px; display: flex; justify-content: space-between; align-items: center; gap: 20px; } .feature-info h5 { color: #ffffff; font-size: 16px; font-weight: 600; margin: 0 0 8px 0; } .feature-info p { color: #cccccc; font-size: 14px; margin: 0; line-height: 1.4; } .feature-controls { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; min-width: 200px; } .flashbang-controls { display: flex; flex-direction: column; gap: 10px; width: 100%; } .flashbang-select { background: #2a2a2a; border: 1px solid #444444; border-radius: 6px; color: #ffffff; padding: 8px 12px; font-size: 14px; width: 100%; cursor: pointer; } .flashbang-select:focus { outline: none; border-color: #ff6b6b; box-shadow: 0 0 0 2px rgba(255, 107, 107, 0.2); } .flashbang-select option { background: #2a2a2a; color: #ffffff; padding: 8px; } .troll-btn { background: linear-gradient(135deg, #ff6b6b, #ff4757) !important; border: none !important; color: white !important; font-weight: 600 !important; font-size: 14px !important; padding: 12px 20px !important; border-radius: 8px !important; cursor: pointer !important; transition: all 0.3s ease !important; box-shadow: 0 4px 15px rgba(255, 107, 107, 0.3) !important; text-transform: uppercase; letter-spacing: 0.5px; } .troll-btn:hover { background: linear-gradient(135deg, #ff5252, #ff3742) !important; transform: translateY(-2px) !important; box-shadow: 0 6px 20px rgba(255, 107, 107, 0.4) !important; } .troll-btn:active { transform: translateY(0) !important; box-shadow: 0 2px 10px rgba(255, 107, 107, 0.3) !important; } .flashbang-status { font-size: 12px; color: #4ade80; font-weight: 500; text-align: right; } .troll-warning { background: rgba(255, 193, 7, 0.1); border: 1px solid rgba(255, 193, 7, 0.3); border-radius: 8px; padding: 12px 16px; margin-top: 20px; color: #ffc107; font-size: 14px; } /* Job Application Troll Feature Styles */ .job-btn { background: linear-gradient(135deg, #f39c12 0%, #e67e22 100%); color: white; border: none; font-weight: bold; text-transform: uppercase; letter-spacing: 0.5px; box-shadow: 0 4px 15px rgba(243, 156, 18, 0.3); transition: all 0.3s ease; } .job-btn:hover { background: linear-gradient(135deg, #e67e22 0%, #d35400 100%); box-shadow: 0 6px 20px rgba(243, 156, 18, 0.4); transform: translateY(-2px); } .job-overlay { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background-color: rgba(0, 0, 0, 0.9); z-index: 999999; opacity: 0; pointer-events: none; transition: opacity 0.3s ease-in; display: flex; justify-content: center; align-items: center; } .job-overlay.active { opacity: 1; pointer-events: all; } .job-image { max-width: 90vw; max-height: 90vh; object-fit: contain; border-radius: 10px; box-shadow: 0 10px 50px rgba(0, 0, 0, 0.5); animation: jobAppear 0.5s ease-out; cursor: pointer; } @keyframes jobAppear { 0% { transform: scale(0.8) rotate(-5deg); opacity: 0; } 50% { transform: scale(1.05) rotate(2deg); } 100% { transform: scale(1) rotate(0deg); opacity: 1; } } /* Flashbang Effect Styles */ .flashbang-overlay { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background: #ffffff; z-index: 999999; pointer-events: none; opacity: 0; transition: opacity 0.1s ease; } .flashbang-overlay.active { opacity: 1; } @media (max-width: 768px) { .troll-feature { flex-direction: column; align-items: stretch; text-align: center; gap: 15px; } .feature-controls { align-items: center; min-width: auto; } .flashbang-controls { gap: 12px; } .flashbang-select { font-size: 16px; /* Prevent zoom on iOS */ padding: 10px 12px; } .troll-btn { padding: 14px 24px !important; font-size: 16px !important; } } .user-item { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; background: #2a2a2a; border-radius: 10px; border: 1px solid #333333; transition: all 0.2s ease; min-width: 0; max-width: 100%; } .user-item:hover { background: #2f2f2f; border-color: #4f46e5; transform: translateY(-1px); } .user-info { display: flex; align-items: center; gap: 16px; flex: 1; min-width: 0; } .user-avatar { width: 44px; height: 44px; border-radius: 50%; border: 2px solid #333333; flex-shrink: 0; } .user-details { flex: 1; min-width: 0; overflow: hidden; } .user-name { color: #ffffff; font-size: 15px; font-weight: 600; margin: 0 0 4px 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .user-email { color: #888888; font-size: 13px; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .user-uid { color: #666666; font-size: 12px; margin: 2px 0 0 0; font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; } .user-role { padding: 6px 12px; border-radius: 6px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; white-space: nowrap; flex-shrink: 0; margin: 0 12px; } .user-actions { display: flex; gap: 10px; flex-shrink: 0; flex-wrap: wrap; max-width: 200px; } .admin-btn { display: flex; align-items: center; gap: 6px; padding: 8px 12px; background: #4f46e5; border: none; border-radius: 6px; color: white; font-size: 12px; font-weight: 500; cursor: pointer; transition: all 0.2s ease; } .admin-btn:hover { background: #4338ca; transform: translateY(-1px); } .admin-btn.ban-btn { background: #ef4444; } .admin-btn.ban-btn:hover { background: #dc2626; } .admin-btn.unban-btn { background: #22c55e; } .admin-btn.unban-btn:hover { background: #16a34a; } .admin-btn.role-btn { background: #f59e0b; } .admin-btn.role-btn:hover { background: #d97706; } .admin-btn.grant-btn { background: #8b5cf6; } .admin-btn.grant-btn:hover { background: #7c3aed; } .admin-btn.create-btn { background: #22c55e; } .admin-btn.create-btn:hover { background: #16a34a; } .admin-btn.refresh-btn { background: #06b6d4; } .admin-btn.refresh-btn:hover { background: #0891b2; } .admin-btn svg { width: 14px; height: 14px; } /* Modern User Card Styling */ .modern-user-card { background: linear-gradient(145deg, #1a1a1a 0%, #181818 100%); border: 1px solid #2a2a2a; border-radius: 12px; padding: 0; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); overflow: hidden; position: relative; margin-bottom: 16px; } .modern-user-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, #6366f1, #8b5cf6, #a855f7); opacity: 0; transition: opacity 0.3s ease; } .modern-user-card:hover { background: linear-gradient(145deg, #1f1f1f 0%, #1c1c1c 100%); border-color: #3a3a3a; transform: translateY(-2px); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); } .modern-user-card:hover::before { opacity: 1; } .user-card-header { display: flex; align-items: center; padding: 20px 20px 16px 20px; gap: 16px; } .modern-user-card .user-avatar { width: 60px; height: 60px; border-radius: 50%; background: none; display: flex; align-items: center; justify-content: center; color: white; flex-shrink: 0; transition: transform 0.2s ease; border: none; overflow: hidden; } .modern-user-card .user-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; } .modern-user-card:hover .user-avatar { transform: scale(1.1); } .user-basic-info { flex: 1; min-width: 0; } .user-name-row { display: flex; align-items: center; gap: 12px; margin-bottom: 6px; } .user-display-name { font-size: 16px; font-weight: 600; color: #ffffff; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .user-role-badge { padding: 4px 10px; border-radius: 6px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; flex-shrink: 0; border: 1px solid rgba(255, 255, 255, 0.2); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); text-shadow: 0 1px 2px rgba(0, 0, 0, 0.7); } .user-role-badge.role-owner { background: linear-gradient(135deg, #f59e0b, #d97706); color: white; } .user-role-badge.role-admin { background: linear-gradient(135deg, #ef4444, #dc2626); color: white; } .user-role-badge.role-premium { background: linear-gradient(135deg, #8b5cf6, #7c3aed); color: white; } .user-role-badge.role-femboy { background: linear-gradient(135deg, #ec4899, #db2777); color: white; } .user-role-badge.role-bot { background: linear-gradient(135deg, #10b981, #059669); color: white; } .user-role-badge.role-user { background: linear-gradient(135deg, #6b7280, #4b5563); color: white; } .user-meta { display: flex; gap: 16px; align-items: center; } .modern-user-card .user-email { color: #a1a1aa; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .user-id { color: #71717a; font-size: 12px; font-family: 'Courier New', monospace; background: #262626; padding: 2px 6px; border-radius: 4px; flex-shrink: 0; } .user-status { flex-shrink: 0; } .status-badge.active { background: linear-gradient(135deg, #10b981, #059669); color: white; padding: 6px 12px; border-radius: 8px; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; } .status-badge.banned { background: linear-gradient(135deg, #ef4444, #dc2626); color: white; padding: 6px 12px; border-radius: 8px; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; } .user-card-body { padding: 0 20px 16px 20px; } .user-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; } .modern-user-card .stat-item { background: #262626; border: 1px solid #3a3a3a; border-radius: 8px; padding: 12px; text-align: center; transition: all 0.2s ease; } .modern-user-card .stat-item:hover { background: #2a2a2a; border-color: #4a4a4a; } .modern-user-card .stat-label { display: block; font-size: 11px; color: #a1a1aa; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 4px; font-weight: 500; } .modern-user-card .stat-value { display: block; font-size: 14px; font-weight: 600; color: #ffffff; } .user-card-actions { display: flex; gap: 8px; padding: 16px 20px 20px 20px; border-top: 1px solid #2a2a2a; background: linear-gradient(145deg, #171717 0%, #151515 100%); } .modern-btn { flex: 1; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 16px; border: none; border-radius: 8px; font-size: 13px; font-weight: 600; cursor: pointer; transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); position: relative; overflow: hidden; } .modern-btn::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent); transition: left 0.5s ease; } .modern-btn:hover::before { left: 100%; } .modern-btn.details-btn { background: linear-gradient(135deg, #6366f1, #4f46e5); color: white; border: 1px solid #4f46e5; } .modern-btn.details-btn:hover { background: linear-gradient(135deg, #5b5bd6, #4338ca); transform: translateY(-1px); box-shadow: 0 4px 16px rgba(99, 102, 241, 0.3); } .modern-btn.role-btn { background: linear-gradient(135deg, #10b981, #059669); color: white; border: 1px solid #059669; } .modern-btn.role-btn:hover { background: linear-gradient(135deg, #0d9488, #047857); transform: translateY(-1px); box-shadow: 0 4px 16px rgba(16, 185, 129, 0.3); } .modern-btn.ban-btn { background: linear-gradient(135deg, #ef4444, #dc2626); color: white; border: 1px solid #dc2626; } .modern-btn.ban-btn:hover { background: linear-gradient(135deg, #dc2626, #b91c1c); transform: translateY(-1px); box-shadow: 0 4px 16px rgba(239, 68, 68, 0.3); } .modern-btn svg { width: 16px; height: 16px; stroke-width: 2; } /* Ban Management Redesign */ .ban-card { background: #1a1a1a; border: 1px solid #2a2a2a; border-radius: 12px; padding: 20px; margin-bottom: 16px; transition: all 0.2s ease; } .ban-card:hover { border-color: #ef4444; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(239, 68, 68, 0.1); } .ban-card.empty-state { text-align: center; padding: 40px 20px; background: #1a1a1a; border: 2px dashed #2a2a2a; } .ban-icon-large { color: #666666; margin-bottom: 16px; } .empty-state-text h4 { color: #ffffff; margin: 0 0 8px 0; font-size: 18px; font-weight: 600; } .empty-state-text p { color: #888888; margin: 0; font-size: 14px; } .ban-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; } .ban-user-info { display: flex; align-items: center; gap: 12px; } .ban-avatar { width: 48px; height: 48px; border-radius: 50%; background: rgba(239, 68, 68, 0.1); display: flex; align-items: center; justify-content: center; color: #ef4444; flex-shrink: 0; } .ban-details { display: flex; flex-direction: column; gap: 4px; } .ban-username { color: #ffffff; font-size: 16px; font-weight: 600; } .ban-email { color: #888888; font-size: 13px; } .ban-status { flex-shrink: 0; } .ban-badge { background: #ef4444; color: #ffffff; padding: 6px 12px; border-radius: 6px; font-size: 11px; font-weight: 700; letter-spacing: 0.5px; } .ban-content { margin-bottom: 20px; } .ban-reason-section { background: #222222; border-radius: 8px; padding: 16px; margin-bottom: 16px; border: 1px solid #2a2a2a; } .ban-label { color: #ef4444; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 8px; display: block; } .ban-reason { color: #ffffff; font-size: 14px; line-height: 1.5; margin: 0; } .ban-meta { display: flex; gap: 24px; flex-wrap: wrap; } .ban-meta-item { display: flex; flex-direction: column; gap: 4px; } .ban-meta-label { color: #888888; font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.5px; } .ban-meta-value { color: #ffffff; font-size: 13px; font-weight: 500; } .ban-actions { border-top: 1px solid #2a2a2a; padding-top: 16px; display: flex; justify-content: flex-end; } .ban-actions .unban-btn { background: #22c55e; padding: 10px 16px; font-size: 13px; font-weight: 600; } .ban-actions .unban-btn:hover { background: #16a34a; transform: translateY(-1px); } /* Key Generation Styles */ .admin-key-form { background: #1a1a1a; border: 1px solid #2a2a2a; border-radius: 8px; padding: 20px; margin-bottom: 20px; } .generate-btn { background: #8b5cf6; color: #ffffff; border: none; padding: 12px 16px; border-radius: 6px; font-size: 13px; font-weight: 600; display: flex; align-items: center; gap: 8px; cursor: pointer; transition: all 0.2s ease; } .generate-btn:hover { background: #7c3aed; transform: translateY(-1px); } .key-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; margin-bottom: 24px; padding: 20px; background: #1a1a1a; border: 1px solid #2a2a2a; border-radius: 8px; } .key-stats .stat-item { display: flex; flex-direction: column; gap: 4px; text-align: center; } .key-stats .stat-label { color: #888888; font-size: 12px; text-transform: uppercase; letter-spacing: 0.5px; } .key-stats .stat-value { color: #8b5cf6; font-size: 20px; font-weight: 700; } .generated-keys-section { background: #1a1a1a; border: 1px solid #2a2a2a; border-radius: 8px; padding: 20px; } .keys-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid #2a2a2a; } .keys-header h4 { color: #ffffff; margin: 0; font-size: 16px; font-weight: 600; } .generated-keys-list { max-height: 400px; overflow-y: auto; /* Hide scrollbar for webkit browsers */ scrollbar-width: none; /* Firefox */ -ms-overflow-style: none; /* IE and Edge */ } .generated-keys-list::-webkit-scrollbar { display: none; /* Chrome, Safari, Opera */ } .key-item { background: #1a1a1a; border: 1px solid #2a2a2a; border-radius: 8px; padding: 16px; margin-bottom: 12px; transition: all 0.2s ease; font-family: 'Inter', sans-serif; } .key-item:hover { border-color: #4f46e5; background: #1e1e1e; } .key-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; } .key-product { font-size: 14px; font-weight: 500; color: #ffffff; font-family: 'Inter', sans-serif; } .key-code { font-family: 'Inter', monospace; background: #0f0f0f; color: #ffffff; padding: 10px 12px; border-radius: 6px; font-size: 13px; font-weight: 500; letter-spacing: 1px; border: 1px solid #333333; margin: 10px 0; text-align: center; transition: all 0.2s ease; } .key-code:hover { border-color: #4f46e5; } .key-status { padding: 3px 8px; border-radius: 4px; font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.5px; font-family: 'Inter', sans-serif; } .key-status.available { background: rgba(34, 197, 94, 0.1); color: #22c55e; border: 1px solid rgba(34, 197, 94, 0.2); } .key-status.used { background: rgba(239, 68, 68, 0.1); color: #ef4444; border: 1px solid rgba(239, 68, 68, 0.2); } .key-used-info { margin-top: 8px; padding: 8px; background: #0f0f0f; border: 1px solid #333333; border-radius: 4px; font-size: 11px; color: #888888; font-family: 'Inter', sans-serif; } .key-details { display: flex; gap: 16px; margin-bottom: 12px; font-family: 'Inter', sans-serif; } .key-duration { color: #888888; font-size: 12px; font-weight: 400; } .key-created { color: #888888; font-size: 12px; font-weight: 400; } .key-actions { display: flex; gap: 8px; justify-content: flex-end; } .copy-key-btn { background: #4f46e5; color: #ffffff; border: none; padding: 8px 16px; border-radius: 6px; font-size: 12px; font-weight: 500; cursor: pointer; transition: all 0.2s ease; font-family: 'Inter', sans-serif; display: flex; align-items: center; gap: 6px; position: relative; overflow: hidden; } .copy-key-btn::before { content: '📋'; font-size: 11px; transition: transform 0.2s ease; } .copy-key-btn:hover { background: #4338ca; transform: translateY(-1px); box-shadow: 0 2px 8px rgba(79, 70, 229, 0.3); } .copy-key-btn:hover::before { transform: scale(1.1); } .copy-key-btn:active { transform: translateY(0); box-shadow: 0 1px 4px rgba(79, 70, 229, 0.2); } .copy-key-btn-disabled { background: #6b7280 !important; color: #9ca3af !important; cursor: not-allowed !important; transform: none !important; box-shadow: none !important; } .copy-key-btn-disabled::before { content: '🚫' !important; transform: none !important; } .copy-key-btn-disabled:hover { background: #6b7280 !important; transform: none !important; box-shadow: none !important; } .key-code-used { background: #0a0a0a !important; color: #6b7280 !important; border-color: #374151 !important; text-decoration: line-through; opacity: 0.6; } .key-code-used:hover { border-color: #374151 !important; } .key-invalid-badge { background: rgba(239, 68, 68, 0.1); color: #ef4444; border: 1px solid rgba(239, 68, 68, 0.2); padding: 4px 8px; border-radius: 4px; font-size: 11px; font-weight: 500; font-family: 'Inter', sans-serif; display: flex; align-items: center; gap: 4px; } .delete-key-btn { background: #dc2626; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; font-size: 12px; font-weight: 500; display: flex; align-items: center; gap: 6px; cursor: pointer; transition: all 0.2s ease; } .delete-key-btn:hover { background: #b91c1c; transform: translateY(-1px); } .empty-keys-state { text-align: center; padding: 40px 20px; color: #888888; background: #1a1a1a; border-radius: 8px; border: 1px solid #2a2a2a; font-family: 'Inter', sans-serif; } .empty-keys-state svg { margin-bottom: 16px; opacity: 0.5; color: #888888; } .empty-keys-state h4 { color: #ffffff; margin: 0 0 8px 0; font-size: 16px; font-weight: 500; font-family: 'Inter', sans-serif; } .empty-keys-state p { margin: 0; font-size: 14px; font-family: 'Inter', sans-serif; } .admin-grant-form, .admin-invite-form { margin-top: 20px; padding: 20px; background: #222222; border-radius: 10px; border: 1px solid #2a2a2a; max-width: 100%; overflow-x: auto; } .form-row { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; } .invite-stats { display: flex; gap: 24px; margin: 20px 0; padding: 16px; background: #1a1a1a; border-radius: 8px; border: 1px solid #333333; } .stat-item { display: flex; flex-direction: column; align-items: center; gap: 4px; } .stat-label { color: #888888; font-size: 12px; font-weight: 500; } .stat-value { color: #ffffff; font-size: 20px; font-weight: 700; } .invite-codes-list { max-height: 300px; overflow-y: auto; padding: 16px; background: #1a1a1a; border-radius: 8px; border: 1px solid #333333; margin-top: 16px; } .invite-code-item { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; background: #2a2a2a; border-radius: 6px; border: 1px solid #333333; margin-bottom: 8px; transition: all 0.2s ease; } .invite-code-item:hover { background: #2f2f2f; border-color: #22c55e; } .invite-code { font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; color: #22c55e; font-weight: 600; font-size: 14px; } .activity-filters { display: flex; gap: 12px; margin-bottom: 20px; align-items: center; } .activity-logs-list { max-height: 400px; overflow-y: auto; padding-right: 8px; } .activity-log-item { display: flex; align-items: center; gap: 16px; padding: 12px 16px; background: #2a2a2a; border-radius: 8px; border: 1px solid #333333; margin-bottom: 8px; transition: all 0.2s ease; } .activity-log-item:hover { background: #2f2f2f; border-color: #4f46e5; } .activity-icon { width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .activity-icon.hwid { background: rgba(34, 197, 94, 0.1); color: #22c55e; } .activity-icon.password { background: rgba(245, 158, 11, 0.1); color: #f59e0b; } .activity-icon.login { background: rgba(59, 130, 246, 0.1); color: #3b82f6; } .activity-icon.registration { background: rgba(139, 92, 246, 0.1); color: #8b5cf6; } .activity-icon.ban { background: rgba(239, 68, 68, 0.1); color: #ef4444; } .activity-icon.subscription { background: rgba(79, 70, 229, 0.1); color: #4f46e5; } .activity-icon.key { background: rgba(245, 158, 11, 0.1); color: #f59e0b; } .activity-details { flex: 1; min-width: 0; } .activity-title { color: #ffffff; font-size: 14px; font-weight: 600; margin: 0 0 4px 0; } .activity-description { color: #888888; font-size: 13px; margin: 0; } .activity-time { color: #666666; font-size: 12px; white-space: nowrap; flex-shrink: 0; } .admin-select, .admin-input { padding: 12px 16px; background: #2a2a2a; border: 1px solid #333333; border-radius: 8px; color: #ffffff; font-size: 14px; outline: none; transition: all 0.2s ease; flex: 1; min-width: 120px; } .admin-select:focus, .admin-input:focus { border-color: #4f46e5; background: #333333; transform: translateY(-1px); } .admin-select { min-width: 150px; } .admin-input { width: 100px; } /* Old purchase popup styles completely removed - now using checkout.html */ /* Ban Popup Styles */ .ban-popup { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 20px; } .ban-popup-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.9); backdrop-filter: blur(10px); } .ban-popup-content { position: relative; background: linear-gradient(135deg, #1a1a1a 0%, #2a2a2a 100%); border-radius: 16px; max-width: 500px; width: 100%; overflow: hidden; box-shadow: 0 25px 50px rgba(0, 0, 0, 0.8); animation: banPopupSlide 0.3s ease-out; } @keyframes banPopupSlide { from { opacity: 0; transform: translateY(-30px) scale(0.95); } to { opacity: 1; transform: translateY(0) scale(1); } } .ban-popup-header { background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%); padding: 24px; text-align: center; } .ban-icon { color: #ffffff; margin-bottom: 12px; animation: banIconPulse 2s infinite; } @keyframes banIconPulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.1); } } .ban-popup-header h2 { color: #ffffff; font-size: 24px; font-weight: 700; margin: 0; text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); } .ban-popup-body { padding: 28px; } .ban-reason { margin-bottom: 24px; } .ban-reason h3 { color: #dc2626; font-size: 16px; font-weight: 600; margin: 0 0 8px 0; } .ban-reason p { color: #ffffff; font-size: 15px; line-height: 1.6; margin: 0; padding: 16px 20px; background: linear-gradient(135deg, #374151 0%, #4b5563 100%); border-radius: 12px; font-weight: 500; text-align: center; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); } .ban-details { margin-bottom: 28px; } .ban-detail-item { display: flex; justify-content: space-between; align-items: center; padding: 12px 0; } .ban-detail-item .label { color: #888888; font-size: 14px; font-weight: 500; } .ban-detail-item .value { color: #ffffff; font-size: 14px; font-weight: 600; } .countdown-section { text-align: center; padding: 20px; background: #2a2a2a; border-radius: 12px; } .countdown-text { color: #888888; font-size: 14px; margin-bottom: 8px; } .countdown-timer { color: #dc2626; font-size: 48px; font-weight: 700; line-height: 1; margin: 8px 0; font-family: 'Inter', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; animation: countdownPulse 1s infinite; } @keyframes countdownPulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } } .countdown-label { color: #888888; font-size: 14px; font-weight: 500; } .ban-popup-footer { padding: 20px 28px 28px; } .ban-logout-btn { width: 100%; padding: 16px 24px; background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%); border: none; border-radius: 10px; color: #ffffff; font-size: 16px; font-weight: 600; cursor: pointer; transition: all 0.2s ease; display: flex; align-items: center; justify-content: center; gap: 10px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); } .ban-logout-btn:hover { background: linear-gradient(135deg, #b91c1c 0%, #991b1b 100%); transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4); } .ban-logout-btn:active { transform: translateY(0); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); } /* Disable all interactions when ban popup is active */ body.ban-popup-active { overflow: hidden; } body.ban-popup-active .dashboard-layout, body.ban-popup-active .sidebar, body.ban-popup-active .main-content, body.ban-popup-active .content-view { pointer-events: none; user-select: none; } body.ban-popup-active .ban-popup { pointer-events: all; } /* Mobile Ban Popup */ @media (max-width: 768px) { .ban-popup { padding: 16px; } .ban-popup-content { max-width: none; width: 100%; } .ban-popup-header { padding: 20px; } .ban-popup-header h2 { font-size: 20px; } .ban-popup-body { padding: 20px; } .countdown-timer { font-size: 36px; } .ban-popup-footer { padding: 16px 20px 20px; } } /* Mobile Admin Panel */ @media (max-width: 768px) { #adminView .content-section { padding: 16px; margin-bottom: 16px; } .admin-tabs { flex-direction: column; gap: 4px; margin-bottom: 20px; } .admin-tab { padding: 12px 16px; font-size: 13px; border-bottom: none; border-left: 3px solid transparent; border-radius: 6px; } .admin-tab.active { border-left-color: #4f46e5; border-bottom-color: transparent; } .admin-section { padding: 16px; min-height: 200px; } .users-list, .banned-users-list { max-height: 300px; gap: 12px; } .user-item { flex-direction: column; align-items: flex-start; gap: 12px; padding: 16px; } .user-info { width: 100%; gap: 12px; } .user-role { margin: 0; } .user-actions { width: 100%; justify-content: flex-end; } /* Modern User Card Mobile Styles */ .modern-user-card { margin-bottom: 12px; } .user-card-header { padding: 16px 16px 12px 16px; gap: 12px; } .modern-user-card .user-avatar { width: 55px; height: 55px; } .user-display-name { font-size: 15px; } .user-role-badge { padding: 3px 8px; font-size: 10px; } .user-meta { gap: 12px; flex-direction: column; align-items: flex-start; } .modern-user-card .user-email { font-size: 12px; } .user-id { font-size: 11px; } .user-card-body { padding: 0 16px 12px 16px; } .user-stats { grid-template-columns: 1fr; gap: 8px; } .modern-user-card .stat-item { padding: 8px; display: flex; justify-content: space-between; align-items: center; text-align: left; } .modern-user-card .stat-label { margin-bottom: 0; font-size: 10px; } .modern-user-card .stat-value { font-size: 13px; } .user-card-actions { padding: 12px 16px 16px 16px; gap: 6px; } .modern-btn { padding: 8px 12px; font-size: 12px; gap: 6px; } .modern-btn svg { width: 14px; height: 14px; } .admin-grant-form { padding: 16px; margin-top: 16px; } .form-row { flex-direction: column; align-items: stretch; gap: 12px; } .admin-select, .admin-input { width: 100%; min-width: auto; flex: none; } } /* Enhanced Admin Panel Styles */ .admin-user-controls { margin-bottom: 24px; padding: 20px; background: rgba(255, 255, 255, 0.02); border-radius: 12px; border: 1px solid rgba(255, 255, 255, 0.05); } .user-search-row { display: flex; gap: 12px; align-items: center; } .search-input { flex: 1; max-width: 400px; } /* Remove or relax this rule to allow modals to show */ /* [id*="modal"], .modal, .simple-user-modal, div[style*="position: fixed"] { display: none !important; visibility: hidden !important; opacity: 0 !important; } */ /* Inline User Details Expansion */ .user-item.expanded { background: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.2); } .user-details-expanded { max-height: 0; overflow: hidden; transition: max-height 0.3s ease-out; background: #2a2a2a; border: 1px solid #333333; border-radius: 10px; margin: 16px 0; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); } .user-details-content { padding: 16px; } .details-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid #333333; } .details-header h4 { margin: 0; color: #ffffff; font-size: 16px; font-weight: 600; display: flex; align-items: center; gap: 8px; } .details-header h4::before { content: ""; width: 16px; height: 16px; background: #4f46e5; border-radius: 3px; flex-shrink: 0; } .details-close { background: #333333; border: 1px solid #444444; color: #888888; font-size: 14px; cursor: pointer; padding: 6px; border-radius: 6px; transition: all 0.2s ease; display: flex; align-items: center; justify-content: center; width: 26px; height: 26px; } .details-close:hover { color: #ef4444; background: #2f2f2f; border-color: #ef4444; transform: translateY(-1px); } .details-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; } .detail-item { display: flex; justify-content: space-between; align-items: center; padding: 10px 12px; background: #1a1a1a; border-radius: 8px; border: 1px solid #333333; transition: all 0.2s ease; } .detail-item:hover { background: #2f2f2f; border-color: #4f46e5; transform: translateY(-1px); } .detail-label { color: #888888; font-size: 12px; font-weight: 500; min-width: 70px; } .detail-value { color: #ffffff; font-size: 12px; font-weight: 600; text-align: right; word-break: break-word; max-width: 65%; font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; } .detail-value.ip-address { color: #06b6d4; } .detail-value.hardware { color: #22c55e; } .detail-value.system { color: #f59e0b; } .detail-value.hwid-data { color: #ef4444; font-weight: 700; } .detail-value.reset-data { color: #8b5cf6; } .action-btn:hover { background: rgba(34, 197, 94, 0.25); border-color: rgba(34, 197, 94, 0.4); color: #22c55e; transform: translateY(-2px); box-shadow: 0 10px 25px rgba(34, 197, 94, 0.2); } .hwid-display { display: flex; gap: 8px; align-items: center; width: 100%; } .hwid-display span { flex: 1; font-family: 'Courier New', monospace; font-size: 12px; background: rgba(0, 0, 0, 0.2); padding: 4px 8px; border-radius: 4px; } /* Role Management */ .role-management { display: flex; align-items: center; gap: 10px; width: 100%; } .role-management .action-btn { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border: none; color: white; padding: 8px 16px; border-radius: 8px; font-size: 12px; font-weight: 500; cursor: pointer; transition: all 0.3s ease; } .role-management .action-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 25px rgba(102, 126, 234, 0.3); } .telemetry-info { display: grid; grid-template-columns: 1fr; gap: 16px; width: 100%; max-height: 300px; overflow-y: auto; scrollbar-width: none; } .telemetry-info::-webkit-scrollbar { display: none; } .telemetry-item { padding: 16px 20px; background: rgba(255, 255, 255, 0.08); border-radius: 16px; font-size: 14px; color: #ffffff; border: 1px solid rgba(255, 255, 255, 0.12); backdrop-filter: blur(10px); transition: all 0.3s ease; display: flex; flex-direction: column; gap: 8px; } .telemetry-item:hover { background: rgba(255, 255, 255, 0.12); border-color: rgba(255, 255, 255, 0.2); } .telemetry-item::before { content: attr(data-label); font-size: 11px; color: #888; text-transform: uppercase; font-weight: 700; letter-spacing: 0.5px; } .hwid-history-section, .subscription-management { margin-top: 30px; padding: 24px; background: rgba(255, 255, 255, 0.08); border-radius: 20px; border: 1px solid rgba(255, 255, 255, 0.12); backdrop-filter: blur(10px); } .hwid-history-section h5, .subscription-management h5 { margin: 0 0 20px 0; color: #ffffff; font-size: 20px; font-weight: 700; background: linear-gradient(135deg, #f59e0b, #eab308); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .hwid-history-list { max-height: 200px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(255, 255, 255, 0.3) transparent; } .hwid-history-list::-webkit-scrollbar { width: 4px; } .hwid-history-list::-webkit-scrollbar-track { background: transparent; } .hwid-history-list::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.3); border-radius: 2px; } .hwid-history-item { display: flex; justify-content: space-between; align-items: center; padding: 8px 12px; margin-bottom: 8px; background: rgba(255, 255, 255, 0.02); border-radius: 6px; border: 1px solid rgba(255, 255, 255, 0.05); font-size: 12px; } .sub-management-controls { display: flex; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; } .current-subs { display: grid; gap: 8px; } .sub-item { display: flex; justify-content: space-between; align-items: center; padding: 12px; background: rgba(255, 255, 255, 0.02); border-radius: 8px; border: 1px solid rgba(255, 255, 255, 0.05); } /* Product Management Styles */ .global-controls-section { margin-bottom: 32px; padding: 20px; background: rgba(255, 255, 255, 0.02); border-radius: 12px; border: 1px solid rgba(255, 255, 255, 0.05); } .global-controls-section h4 { margin: 0 0 16px 0; color: #fff; font-size: 16px; font-weight: 600; } .global-freeze-controls { display: flex; gap: 12px; align-items: center; } .freeze-btn { background: rgba(239, 68, 68, 0.1) !important; color: #ef4444 !important; border: 1px solid rgba(239, 68, 68, 0.2) !important; } .freeze-btn:hover { background: rgba(239, 68, 68, 0.2) !important; } .unfreeze-btn { background: rgba(34, 197, 94, 0.1) !important; color: #22c55e !important; border: 1px solid rgba(34, 197, 94, 0.2) !important; } .unfreeze-btn:hover { background: rgba(34, 197, 94, 0.2) !important; } .alpha-btn { background: rgba(168, 85, 247, 0.1) !important; color: #a855f7 !important; border: 1px solid rgba(168, 85, 247, 0.2) !important; } .alpha-btn:hover { background: rgba(168, 85, 247, 0.2) !important; } .remove-alpha-btn { background: rgba(251, 146, 60, 0.1) !important; color: #fb923c !important; border: 1px solid rgba(251, 146, 60, 0.2) !important; } .remove-alpha-btn:hover { background: rgba(251, 146, 60, 0.2) !important; } .product-status-section h4 { margin: 0 0 20px 0; color: #fff; font-size: 16px; font-weight: 600; } .products-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; } .product-card { background: linear-gradient(135deg, rgba(255, 255, 255, 0.02) 0%, rgba(255, 255, 255, 0.01) 100%); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 12px; padding: 20px; transition: all 0.3s ease; } .product-card:hover { transform: translateY(-2px); border-color: rgba(255, 255, 255, 0.2); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3); } .product-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; } .product-header h5 { margin: 0; color: #fff; font-size: 16px; font-weight: 600; } .status-badge { padding: 4px 12px; border-radius: 20px; font-size: 12px; font-weight: 600; text-transform: uppercase; } .status-badge.active { background: rgba(34, 197, 94, 0.2); color: #22c55e; border: 1px solid rgba(34, 197, 94, 0.3); } .status-badge.frozen { background: rgba(239, 68, 68, 0.2); color: #ef4444; border: 1px solid rgba(239, 68, 68, 0.3); } .status-badge.alpha-only { background: rgba(168, 85, 247, 0.2); color: #a855f7; border: 1px solid rgba(168, 85, 247, 0.3); } .product-stats { display: grid; gap: 8px; margin-bottom: 16px; } .product-stats .stat-item { display: flex; justify-content: space-between; padding: 8px 12px; background: rgba(255, 255, 255, 0.02); border-radius: 6px; font-size: 13px; } .product-stats .stat-label { color: rgba(255, 255, 255, 0.7); } .product-stats .stat-value { color: #fff; font-weight: 600; } .product-actions { display: flex; gap: 8px; } .product-actions .action-btn { flex: 1; padding: 8px 12px; font-size: 12px; display: flex; align-items: center; justify-content: center; gap: 6px; } .freeze-product-btn { background: rgba(239, 68, 68, 0.1) !important; color: #ef4444 !important; border: 1px solid rgba(239, 68, 68, 0.2) !important; } .freeze-product-btn:hover { background: rgba(239, 68, 68, 0.2) !important; } .unfreeze-product-btn { background: rgba(34, 197, 94, 0.1) !important; color: #22c55e !important; border: 1px solid rgba(34, 197, 94, 0.2) !important; } .unfreeze-product-btn:hover { background: rgba(34, 197, 94, 0.2) !important; } .extend-product-btn { background: rgba(59, 130, 246, 0.1) !important; color: #3b82f6 !important; border: 1px solid rgba(59, 130, 246, 0.2) !important; } .extend-product-btn:hover { background: rgba(59, 130, 246, 0.2) !important; } /* Bulk Extension Modal */ .bulk-extension-modal { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 20px; } .bulk-extension-modal .modal-content { position: relative; background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%); border-radius: 16px; border: 1px solid rgba(255, 255, 255, 0.1); max-width: 500px; width: 100%; box-shadow: 0 25px 50px rgba(0, 0, 0, 0.5); } .bulk-controls { display: flex; gap: 12px; margin-bottom: 16px; } .affected-users { max-height: 200px; overflow-y: auto; } .affected-user-item { padding: 8px 12px; margin-bottom: 4px; background: rgba(255, 255, 255, 0.02); border-radius: 6px; font-size: 13px; color: rgba(255, 255, 255, 0.9); } /* Mobile Responsive for Enhanced Admin */ @media (max-width: 768px) { .admin-user-controls { padding: 16px; } .user-search-row { flex-direction: column; gap: 8px; } .search-input { max-width: 100%; } .details-grid { grid-template-columns: 1fr; gap: 8px; } .detail-item { padding: 8px 10px; flex-direction: column; align-items: flex-start; gap: 4px; } .detail-label { font-size: 11px; color: #888888; } .detail-value { font-size: 11px; text-align: left; max-width: 100%; font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; } .detail-value.ip-address { color: #06b6d4; } .detail-value.hardware { color: #22c55e; } .detail-value.system { color: #f59e0b; } .detail-value.hwid-data { color: #ef4444; font-weight: 700; } .detail-value.reset-data { color: #8b5cf6; } .simple-user-modal .modal-header { padding: 20px; } .simple-user-modal .modal-header h4 { font-size: 18px; } .simple-user-modal .modal-body { padding: 20px; } .info-item { flex-direction: column; align-items: flex-start; gap: 8px; padding: 12px; } .info-label { min-width: auto; font-size: 13px; } .info-value { text-align: left; max-width: 100%; font-size: 13px; } .products-grid { grid-template-columns: 1fr; } .global-freeze-controls { flex-direction: column; align-items: stretch; } .sub-management-controls { flex-direction: column; } .bulk-controls { flex-direction: column; } .telemetry-info { grid-template-columns: 1fr; gap: 12px; } .telemetry-item { padding: 12px 16px; font-size: 13px; } .hwid-history-section, .subscription-management { padding: 16px; margin-top: 20px; } .hwid-history-section h5, .subscription-management h5 { font-size: 18px; margin-bottom: 16px; } .global-controls-section { padding: 16px; } .product-card { padding: 16px; } .product-actions { flex-direction: column; gap: 6px; } } /* Users Pagination Styling */ .users-pagination { margin-top: 2rem; padding: 1.5rem; background: rgba(24, 24, 27, 0.8); border-radius: 12px; border: 1px solid rgba(255, 255, 255, 0.1); } .pagination-info { text-align: center; margin-bottom: 1rem; color: #a1a1aa; font-size: 0.9rem; } .pagination-controls { display: flex; justify-content: center; align-items: center; gap: 0.5rem; flex-wrap: wrap; } .pagination-btn { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem 0.75rem; background: rgba(30, 30, 35, 0.9); border: 1px solid rgba(255, 255, 255, 0.15); border-radius: 8px; color: #e4e4e7; font-size: 0.9rem; font-weight: 500; cursor: pointer; transition: all 0.2s ease; min-width: 40px; justify-content: center; } .pagination-btn:hover { background: rgba(99, 102, 241, 0.2); border-color: rgba(99, 102, 241, 0.4); color: #6366f1; transform: translateY(-1px); } .pagination-btn.active { background: linear-gradient(135deg, #6366f1, #8b5cf6); border-color: #6366f1; color: white; box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3); } .pagination-btn.active:hover { background: linear-gradient(135deg, #5855eb, #7c3aed); transform: translateY(-1px); } .pagination-dots { color: #71717a; padding: 0 0.5rem; font-weight: bold; } .pagination-btn svg { width: 16px; height: 16px; } /* Mobile pagination responsiveness */ @media (max-width: 768px) { .users-pagination { padding: 1rem; margin-top: 1.5rem; } .pagination-controls { gap: 0.25rem; } .pagination-btn { padding: 0.4rem 0.6rem; font-size: 0.8rem; min-width: 36px; } .pagination-btn svg { width: 14px; height: 14px; } .pagination-info { font-size: 0.8rem; } } /* Loader Management Styles */ .cheats-management-section { margin-bottom: 25px; padding: 18px; background: rgba(45, 52, 64, 0.3); border-radius: 8px; border: 1px solid rgba(129, 161, 193, 0.2); } .cheats-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; margin-top: 18px; max-height: 62vh; overflow-y: auto; padding: 10px; border-radius: 8px; /* Hide scrollbar for webkit browsers */ scrollbar-width: none; /* Firefox */ -ms-overflow-style: none; /* IE and Edge */ } .cheats-grid::-webkit-scrollbar { display: none; /* Chrome, Safari, Opera */ } .cheat-card { background: rgba(59, 66, 82, 0.4); border: 1px solid rgba(129, 161, 193, 0.2); border-radius: 9px; padding: 14px; transition: all 0.3s ease; position: relative; min-height: 290px; max-height: 340px; overflow: hidden; display: flex; flex-direction: column; gap: 7px; } .cheat-card:hover { background: rgba(59, 66, 82, 0.6); border-color: rgba(129, 161, 193, 0.4); transform: translateY(-2px); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3); } .cheat-card-header { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; } .cheat-icon { width: 34px; height: 34px; border-radius: 6px; display: flex; align-items: center; justify-content: center; background: rgba(94, 129, 172, 0.3); color: #81a1c1; font-size: 19px; flex-shrink: 0; overflow: hidden; } .cheat-icon img { width: 100%; height: 100%; object-fit: contain; border-radius: 6px; } .cheat-info { flex: 1; } .cheat-name { font-size: 15px; font-weight: 600; color: #eceff4; margin-bottom: 3px; } .cheat-type { font-size: 12px; color: #81a1c1; opacity: 0.8; } .loader-status-indicator { position: absolute; top: 12px; right: 12px; padding: 3px 6px; border-radius: 5px; font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.4px; } .loader-status-indicator.has-loader { background: rgba(163, 190, 140, 0.2); color: #a3be8c; border: 1px solid rgba(163, 190, 140, 0.3); } .loader-status-indicator.no-loader { background: rgba(235, 203, 139, 0.2); color: #ebcb8b; border: 1px solid rgba(235, 203, 139, 0.3); } .loader-status-indicator.inactive { background: rgba(191, 97, 106, 0.2); color: #bf616a; border: 1px solid rgba(191, 97, 106, 0.3); } .cheat-card-details { margin-bottom: 10px; flex: 1; min-height: 0; } .detail-row { display: flex; justify-content: space-between; align-items: center; padding: 4px 0; border-bottom: 1px solid rgba(129, 161, 193, 0.1); font-size: 11px; min-height: 17px; overflow: hidden; } .detail-row:last-child { border-bottom: none; } .detail-label { color: #81a1c1; font-weight: 500; } .detail-value { color: #d8dee9; font-weight: 400; text-align: right; max-width: 50%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .detail-value.highlight { color: #88c0d0; font-weight: 600; } .detail-value.muted { color: #616e88; font-style: italic; } .cheat-card-actions { display: flex; gap: 6px; flex-wrap: wrap; margin-top: auto; padding-top: 6px; flex-shrink: 0; } .cheat-file-input { display: none; } .cheat-selected-file { margin-top: 6px; margin-bottom: 6px; padding: 5px 8px; background: rgba(94, 129, 172, 0.1); border: 1px solid rgba(94, 129, 172, 0.3); border-radius: 5px; font-size: 10px; color: #81a1c1; word-break: break-all; position: relative; z-index: 1; max-width: 100%; box-sizing: border-box; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .cheat-upload-actions { display: none; margin-top: 5px; margin-bottom: 5px; gap: 5px; flex-wrap: wrap; position: relative; z-index: 1; } .cheat-upload-actions.show { display: flex; } .admin-btn.cheat-btn { padding: 6px 12px; font-size: 11px; border-radius: 5px; display: flex; align-items: center; gap: 4px; font-weight: 600; transition: all 0.2s ease; } .admin-btn.select-cheat-file-btn { background: rgba(136, 192, 208, 0.8); border: 1px solid #88c0d0; color: #2e3440; } .admin-btn.select-cheat-file-btn:hover { background: #88c0d0; } .admin-btn.upload-cheat-btn { background: rgba(163, 190, 140, 0.8); border: 1px solid #a3be8c; color: #2e3440; } .admin-btn.upload-cheat-btn:hover:not(:disabled) { background: #a3be8c; } .admin-btn.upload-cheat-btn:disabled { background: rgba(76, 86, 106, 0.4); border: 1px solid rgba(76, 86, 106, 0.6); color: rgba(216, 222, 233, 0.5); cursor: not-allowed; } .admin-btn.cancel-cheat-btn { background: rgba(191, 97, 106, 0.8); border: 1px solid #bf616a; color: #eceff4; } .admin-btn.cancel-cheat-btn:hover { background: #bf616a; } .admin-btn.disable-cheat-btn { background: rgba(235, 203, 139, 0.8); border: 1px solid #ebcb8b; color: #2e3440; } .admin-btn.disable-cheat-btn:hover { background: #ebcb8b; } .admin-btn.enable-cheat-btn { background: rgba(163, 190, 140, 0.8); border: 1px solid #a3be8c; color: #2e3440; } .admin-btn.enable-cheat-btn:hover { background: #a3be8c; } .admin-btn.delete-cheat-btn { background: rgba(191, 97, 106, 0.8); border: 1px solid #bf616a; color: #eceff4; } .admin-btn.delete-cheat-btn:hover { background: #bf616a; } @media (max-width: 768px) { .cheats-grid { grid-template-columns: 1fr; max-height: 55vh; gap: 12px; } .cheat-card { padding: 12px; min-height: 250px; max-height: 300px; } .cheat-card-header { flex-direction: row; align-items: center; gap: 10px; } .cheat-icon { width: 30px; height: 30px; } .cheat-card-actions { flex-direction: column; gap: 5px; margin-top: 5px; } .admin-btn.cheat-btn { justify-content: center; font-size: 10px; padding: 6px 8px; } } .loader-upload-section h4 { margin: 0 0 15px 0; color: #81a1c1; font-size: 16px; display: flex; align-items: center; gap: 8px; } .upload-form .form-row { display: flex; gap: 15px; align-items: center; margin-bottom: 15px; flex-wrap: wrap; } .file-upload-container { display: flex; align-items: center; gap: 10px; flex: 1; } .selected-file-name { color: #d8dee9; font-size: 14px; padding: 8px 12px; background: rgba(59, 66, 82, 0.5); border-radius: 4px; border: 1px solid rgba(129, 161, 193, 0.2); flex: 1; min-width: 200px; } .upload-info { background: rgba(94, 129, 172, 0.1); border: 1px solid rgba(94, 129, 172, 0.3); border-radius: 6px; padding: 12px; margin-top: 10px; } .upload-info p { margin: 0 0 5px 0; color: #81a1c1; font-size: 13px; } .upload-info p:last-child { margin-bottom: 0; } .current-loaders-section { padding: 20px; background: rgba(45, 52, 64, 0.3); border-radius: 8px; border: 1px solid rgba(129, 161, 193, 0.2); } .current-loaders-section h4 { margin: 0 0 15px 0; color: #81a1c1; font-size: 16px; } .loaders-controls { margin-bottom: 20px; display: flex; gap: 10px; } .loaders-list { display: flex; flex-direction: column; gap: 12px; } .loader-item { background: rgba(59, 66, 82, 0.4); border: 1px solid rgba(129, 161, 193, 0.2); border-radius: 8px; padding: 15px; display: flex; align-items: center; justify-content: space-between; transition: all 0.2s ease; } .loader-item:hover { background: rgba(59, 66, 82, 0.6); border-color: rgba(129, 161, 193, 0.4); } .loader-info { display: flex; align-items: center; gap: 15px; flex: 1; } .loader-icon { width: 40px; height: 40px; border-radius: 6px; display: flex; align-items: center; justify-content: center; background: rgba(94, 129, 172, 0.2); color: #81a1c1; } .loader-details { flex: 1; } .loader-name { font-weight: 600; color: #eceff4; margin-bottom: 4px; font-size: 14px; } .loader-meta { display: flex; gap: 15px; color: #81a1c1; font-size: 12px; } .loader-meta span { display: flex; align-items: center; gap: 4px; } .loader-actions { display: flex; gap: 8px; align-items: center; } .loader-status { padding: 4px 8px; border-radius: 4px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; } .loader-status.active { background: rgba(163, 190, 140, 0.2); color: #a3be8c; border: 1px solid rgba(163, 190, 140, 0.3); } .loader-status.inactive { background: rgba(191, 97, 106, 0.2); color: #bf616a; border: 1px solid rgba(191, 97, 106, 0.3); } .admin-btn.toggle-btn { background: rgba(94, 129, 172, 0.8); border: 1px solid #5e81ac; color: #eceff4; padding: 6px 12px; font-size: 12px; } .admin-btn.toggle-btn:hover { background: #5e81ac; } .admin-btn.delete-btn { background: rgba(191, 97, 106, 0.8); border: 1px solid #bf616a; color: #eceff4; padding: 6px 12px; font-size: 12px; } .admin-btn.delete-btn:hover { background: #bf616a; } .admin-btn.select-file-btn { background: rgba(136, 192, 208, 0.8); border: 1px solid #88c0d0; color: #2e3440; font-weight: 600; } .admin-btn.select-file-btn:hover { background: #88c0d0; } .admin-btn.upload-btn { background: rgba(163, 190, 140, 0.8); border: 1px solid #a3be8c; color: #2e3440; font-weight: 600; } .admin-btn.upload-btn:hover:not(:disabled) { background: #a3be8c; } .admin-btn.upload-btn:disabled { background: rgba(76, 86, 106, 0.4); border: 1px solid rgba(76, 86, 106, 0.6); color: rgba(216, 222, 233, 0.5); cursor: not-allowed; } .empty-loaders-message { text-align: center; padding: 40px 20px; color: #81a1c1; font-style: italic; } .empty-loaders-message svg { width: 48px; height: 48px; margin-bottom: 15px; opacity: 0.5; }