.glassmorphism { background: rgba(255, 255, 255, 0.05); backdrop-filter: blur(20px); border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); } .modern-card { background: linear-gradient(135deg, rgba(26, 26, 26, 0.9), rgba(42, 42, 42, 0.8)); backdrop-filter: blur(15px); border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4); transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); } .modern-card:hover { transform: translateY(-12px) scale(1.03); box-shadow: 0 30px 60px rgba(0, 0, 0, 0.6); border-color: rgba(139, 92, 246, 0.3); } .neon-border { position: relative; border: 2px solid transparent; background: linear-gradient(45deg, #8B5CF6, #06B6D4, #EC4899, #8B5CF6); background-size: 200% 200%; animation: gradient 3s ease infinite; } .neon-border::before { content: ''; position: absolute; inset: 2px; background: linear-gradient(135deg, rgba(26, 26, 26, 0.95), rgba(42, 42, 42, 0.9)); border-radius: inherit; z-index: -1; } .gradient-text { background: linear-gradient(135deg, #8B5CF6, #06B6D4, #EC4899); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; animation: gradient 4s ease infinite; background-size: 200% 200%; } .modern-input { background: rgba(255, 255, 255, 0.05); border: 2px solid rgba(255, 255, 255, 0.1); transition: all 0.3s ease; backdrop-filter: blur(10px); } .modern-input:focus { border-color: rgba(139, 92, 246, 0.5); box-shadow: 0 0 20px rgba(139, 92, 246, 0.2); background: rgba(255, 255, 255, 0.08); } .modern-button { background: linear-gradient(135deg, #8B5CF6, #06B6D4); border: none; transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); position: relative; overflow: hidden; } .modern-button::before { content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, #EC4899, #8B5CF6); opacity: 0; transition: opacity 0.3s ease; } .modern-button:hover::before { opacity: 1; } .modern-button:hover { transform: translateY(-3px) scale(1.05); box-shadow: 0 20px 40px rgba(139, 92, 246, 0.4); } .modern-button > * { position: relative; z-index: 1; } .floating-shapes { position: fixed; inset: 0; pointer-events: none; overflow: hidden; } .shape { position: absolute; background: linear-gradient(135deg, rgba(139, 92, 246, 0.1), rgba(6, 182, 212, 0.1)); border-radius: 50%; animation: float 6s ease-in-out infinite; } .shape:nth-child(1) { width: 300px; height: 300px; top: 10%; left: 5%; animation-delay: 0s; } .shape:nth-child(2) { width: 200px; height: 200px; top: 70%; right: 10%; animation-delay: 2s; } .shape:nth-child(3) { width: 150px; height: 150px; bottom: 20%; left: 70%; animation-delay: 4s; } .icon-glow { filter: drop-shadow(0 0 10px rgba(139, 92, 246, 0.5)); animation: pulse-glow 2s ease-in-out infinite; } .status-indicator { position: relative; } .status-indicator::after { content: ''; position: absolute; top: 0; right: 0; width: 12px; height: 12px; background: #10B981; border-radius: 50%; box-shadow: 0 0 10px rgba(16, 185, 129, 0.5); animation: pulse 2s ease-in-out infinite; } .modern-bg { background: linear-gradient(-45deg, #0f0f23, #1a1a2e, #16213e, #0f3460); background-size: 400% 400%; animation: gradient 15s ease infinite; } @keyframes morphing { 0% { border-radius: 30% 70% 70% 30% / 30% 30% 70% 70%; } 25% { border-radius: 58% 42% 75% 25% / 76% 46% 54% 24%; } 50% { border-radius: 50% 50% 33% 67% / 55% 27% 73% 45%; } 75% { border-radius: 33% 67% 58% 42% / 63% 68% 32% 37%; } 100% { border-radius: 30% 70% 70% 30% / 30% 30% 70% 70%; } } .morphing-shape { animation: morphing 8s ease-in-out infinite; } .card-stack { animation: slide-in 0.6s ease-out; } .card-stack:nth-child(1) { animation-delay: 0.1s; } .card-stack:nth-child(2) { animation-delay: 0.2s; } .card-stack:nth-child(3) { animation-delay: 0.3s; } .card-stack:nth-child(4) { animation-delay: 0.4s; } /* Mobile-specific fixes for NichoHook - UPDATED WITH SOCIAL LINKS FIX */ /* Base responsive adjustments */ @media (max-width: 768px) { .container { padding-left: 1rem; padding-right: 1rem; } /* Header adjustments */ .text-center h1 { font-size: 2.5rem; /* Smaller title on mobile */ } .text-center p { font-size: 1.1rem; /* Smaller subtitle */ } /* Card spacing and layout */ .grid { grid-template-columns: 1fr !important; /* Force single column on mobile */ gap: 1.5rem; /* Reduce gap between cards */ } /* Modern card adjustments */ .modern-card { padding: 1.5rem; /* Reduce padding on mobile */ margin-bottom: 1rem; } .modern-card h2 { font-size: 1.5rem; /* Smaller card titles */ } /* Input and button adjustments */ .modern-input { padding: 0.75rem 1rem; /* Smaller input padding */ font-size: 1rem; } .modern-button { padding: 0.875rem 1.5rem; /* Smaller button padding */ font-size: 1rem; } /* Webhook connection card specific fixes */ .flex.gap-6 { flex-direction: column; /* Stack input and button vertically */ gap: 1rem; } /* Grid adjustments for smaller screens */ .grid.grid-cols-2 { grid-template-columns: 1fr; /* Single column for form grids */ gap: 1rem; } /* Console log adjustments - EXTENDED HEIGHT FOR MOBILE */ #console { height: 280px; /* Increased from 200px to 280px for better readability */ padding: 1rem; font-size: 0.875rem; line-height: 1.4; /* Better line spacing */ } /* Status messages */ #webhookStatus { padding: 1rem; margin-bottom: 1rem; } /* FIXED: Footer adjustments - SOCIAL LINKS TETAP HORIZONTAL */ footer .flex { /* REMOVED: flex-direction: column; */ /* REMOVED: gap: 1rem; */ text-align: center; justify-content: center; /* Center the content */ } /* FIXED: Social links tetap horizontal di mobile */ .flex.items-center.space-x-4 { flex-direction: row !important; /* Force horizontal */ justify-content: center !important; /* Center on mobile */ gap: 1rem !important; /* Consistent spacing */ flex-wrap: nowrap !important; /* Prevent wrapping */ } /* Social icon adjustments for mobile */ .social-icon { font-size: 1.5rem; /* Appropriate size for mobile */ min-height: 44px; /* Touch-friendly size */ min-width: 44px; display: flex; align-items: center; justify-content: center; } .social-icon svg { width: 1.5rem; height: 1.5rem; } /* Icon and text size adjustments */ .text-2xl { font-size: 1.25rem; } .text-3xl { font-size: 1.5rem; } /* Floating shapes - reduce size on mobile */ .shape:nth-child(1) { width: 150px; height: 150px; } .shape:nth-child(2) { width: 100px; height: 100px; } .shape:nth-child(3) { width: 75px; height: 75px; } /* Card hover effects - disable on mobile for better performance */ .modern-card:hover { transform: none; box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4); } /* Button hover effects - adjust for mobile */ .modern-button:hover { transform: translateY(-1px); box-shadow: 0 10px 20px rgba(139, 92, 246, 0.3); } /* Textarea adjustments */ textarea.modern-input { height: 120px; /* Smaller textarea height */ resize: vertical; } /* Specific adjustments for the webhook connection section */ .flex.items-center.gap-4 { flex-wrap: wrap; gap: 0.5rem; } /* Toggle buttons adjustments */ .flex.gap-4 button { padding: 0.75rem 1rem; font-size: 0.875rem; } /* Icon container adjustments */ .p-3, .p-4 { padding: 0.5rem; } /* Danger zone card adjustments */ .glassmorphism { padding: 1rem; margin-bottom: 1rem; } /* Animation adjustments for mobile */ .animate-slide-up { animation-duration: 0.3s; } .card-stack { animation-duration: 0.4s; } /* Spacing adjustments */ .space-y-8 > * + * { margin-top: 1.5rem; } .space-y-6 > * + * { margin-top: 1rem; } /* Label adjustments */ label { font-size: 1rem; margin-bottom: 0.5rem; } /* Number input adjustments */ input[type="number"] { -moz-appearance: textfield; } input[type="number"]::-webkit-outer-spin-button, input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } } /* Extra small screens (phones in portrait) */ @media (max-width: 480px) { .container { padding-left: 0.75rem; padding-right: 0.75rem; } .modern-card { padding: 1rem; border-radius: 1rem; } .text-center h1 { font-size: 2rem; } .modern-input { padding: 0.625rem 0.875rem; font-size: 0.875rem; } .modern-button { padding: 0.75rem 1.25rem; font-size: 0.875rem; } /* Console adjustments for extra small screens */ #console { height: 250px; /* Slightly smaller than regular mobile but still extended */ padding: 0.75rem; font-size: 0.75rem; line-height: 1.3; } /* Reduce icon sizes further */ .text-2xl { font-size: 1.125rem; } .text-3xl { font-size: 1.25rem; } /* Adjust card titles and icons */ .modern-card h2 { font-size: 1.25rem; } .p-4 { padding: 0.375rem; } /* Footer text adjustments */ footer p { font-size: 0.875rem; } /* Status indicator adjustments */ .status-indicator::after { width: 8px; height: 8px; } /* FIXED: Social links tetap horizontal di extra small screens */ .social-icon { font-size: 1.25rem; /* Slightly smaller for very small screens */ min-height: 40px; /* Slightly smaller touch target */ min-width: 40px; } .social-icon svg { width: 1.25rem; height: 1.25rem; } .flex.items-center.space-x-4 { gap: 0.75rem !important; /* Tighter spacing on very small screens */ } } /* Landscape orientation fixes */ @media (max-width: 768px) and (orientation: landscape) { .text-center.mb-16 { margin-bottom: 2rem; } .modern-card { padding: 1.25rem; } /* Console in landscape mode - slightly taller */ #console { height: 220px; } /* Adjust grid for landscape */ .grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; } /* But keep webhook connection single column */ .grid:first-of-type { grid-template-columns: 1fr; } /* FIXED: Social links tetap horizontal di landscape */ .flex.items-center.space-x-4 { flex-direction: row !important; justify-content: center !important; } } /* Fix for very wide mobile screens */ @media (min-width: 769px) and (max-width: 1024px) { .grid { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; } .modern-card { padding: 2rem; } /* Webhook connection adjustments for tablets */ .flex.gap-6 { flex-direction: row; gap: 1.5rem; } .grid.grid-cols-2 { grid-template-columns: repeat(2, 1fr); } /* Social links normal di tablet */ .flex.items-center.space-x-4 { flex-direction: row; justify-content: center; } } /* Additional utility classes for mobile */ .mobile-hidden { display: none; } @media (min-width: 769px) { .mobile-hidden { display: block; } } .mobile-only { display: block; } @media (min-width: 769px) { .mobile-only { display: none; } } /* Touch-friendly adjustments */ @media (hover: none) and (pointer: coarse) { .modern-button { min-height: 44px; /* Minimum touch target size */ } .modern-input { min-height: 44px; } /* FIXED: Touch-friendly social links */ .social-icon { min-height: 44px; min-width: 44px; display: flex; align-items: center; justify-content: center; } /* Disable hover effects on touch devices */ .modern-card:hover { transform: none; box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4); } .modern-button:hover { transform: none; box-shadow: 0 10px 20px rgba(139, 92, 246, 0.3); } } /* Prevent horizontal scrolling */ html, body { overflow-x: hidden; } /* Fix for floating shapes on mobile */ @media (max-width: 768px) { .floating-shapes { display: none; /* Hide floating shapes on mobile for better performance */ } } /* ADDED: Additional utility class untuk memastikan social links selalu horizontal */ .social-links-horizontal { display: flex !important; flex-direction: row !important; align-items: center !important; justify-content: center !important; gap: 1rem !important; flex-wrap: nowrap !important; } @media (max-width: 768px) { .social-links-horizontal { gap: 0.75rem !important; } } @media (max-width: 480px) { .social-links-horizontal { gap: 0.5rem !important; } } /* ADDED: Keyframes yang mungkin diperlukan */ @keyframes gradient { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } @keyframes float { 0%, 100% { transform: translateY(0px) rotate(0deg); } 50% { transform: translateY(-20px) rotate(180deg); } } @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } @keyframes pulse-glow { 0%, 100% { filter: drop-shadow(0 0 10px rgba(139, 92, 246, 0.5)); } 50% { filter: drop-shadow(0 0 20px rgba(139, 92, 246, 0.8)); } } @keyframes slide-in { 0% { transform: translateY(50px); opacity: 0; } 100% { transform: translateY(0); opacity: 1; } }