html, body { font-family: 'Inter', sans-serif; background: #f7fafc; color: #21264a; scroll-behavior: smooth; overflow-x: hidden; /* Prevent horizontal scroll */ } .sidebar { transition: left 0.3s cubic-bezier(.21,.6,.49,1.32); z-index: 40; will-change: left; height: 100vh; display: flex; flex-direction: column; overflow: hidden; /* Hide scrollbar in the sidebar itself */ } /* NEW SIDEBAR STYLING - LIGHT & VIBRANT */ .sidebar-bg { background: linear-gradient(180deg, #ffffff 0%, #f0f9ff 100%); box-shadow: 0 0 25px rgba(96, 165, 250, 0.15); border-right: 1px solid #dbeafe; } .sidebar-link { color: #4b5563; transition: all 0.2s ease; margin-bottom: 0.35rem; border-radius: 10px; position: relative; overflow: hidden; } .sidebar-link::before { content: ''; position: absolute; left: 0; top: 0; height: 100%; width: 0; background: linear-gradient(90deg, rgba(59, 130, 246, 0.1) 0%, rgba(59, 130, 246, 0) 100%); transition: width 0.3s ease; } .sidebar-link.active::before, .sidebar-link:hover::before { width: 100%; } .sidebar-link.active, .sidebar-link:hover { background-color: rgba(59, 130, 246, 0.07) !important; color: #3b82f6 !important; font-weight: 500; box-shadow: 0 2px 10px 0 rgba(59, 130, 246, 0.1); transform: translateX(3px); } /* Ensure icon color transition is smooth */ .sidebar-link i { transition: color 0.2s ease, transform 0.2s ease; } .sidebar-link.active i, .sidebar-link:hover i { transform: translateX(2px); } .sidebar-category-heading { color: #6b7280; font-size: 0.75rem; letter-spacing: 0.05em; position: relative; margin-left: 0.75rem; } .sidebar-category-heading::after { content: ''; position: absolute; bottom: -0.4rem; left: 0; width: 2rem; height: 2px; background: linear-gradient(90deg, #3b82f6 0%, rgba(59, 130, 246, 0.2) 100%); border-radius: 1px; } .sidebar-footer { background: linear-gradient(0deg, #f0f9ff 0%, rgba(240, 249, 255, 0) 100%); border-top: 1px solid rgba(219, 234, 254, 0.7); color: #6b7280; flex-shrink: 0; } .sidebar-logo { background: linear-gradient(135deg, #3b82f6 0%, #60a5fa 100%); color: white; padding: 0.5rem; border-radius: 10px; box-shadow: 0 4px 10px rgba(59, 130, 246, 0.25); flex-shrink: 0; } /* Sidebar icon colors - VIBRANT */ .si-chat { color: #2563eb;} /* blue-700 */ .si-text { color: #8b5cf6;} /* violet-500 */ .si-image { color: #eab308;} /* yellow-500 */ .si-video { color: #ef4444;} /* red-500 */ .si-code { color: #10b981;} /* emerald-500 */ .si-audio { color: #ec4899;} /* pink-500 */ .si-prod { color: #f97316;} /* orange-600 */ .si-search { color: #475569;} /* slate-600 */ .si-learn { color: #3b82f6;} /* blue-600 */ .si-biz { color: #ea580c;} /* orange-700 */ .si-analytics { color: #6366f1;} /* indigo-600 */ .si-fin { color: #22c55e;} /* green-500 */ .si-deck { color: #52525b;} /* gray-600 */ .si-resume { color: #475569;} /* slate-600 */ .si-support { color: #2563eb;} /* blue-700 */ /* New Sidebar icon colors */ .si-tts { color: #f472b6;} /* pink-400 */ .si-avatar { color: #a78bfa;} /* violet-400 */ .si-3d { color: #4ade80;} /* green-400 */ .si-illustrate { color: #facc15;} /* yellow-400 */ .si-summarize { color: #38b2ac;} /* teal-500 */ .si-transcribe { color: #c084fc;} /* purple-400 */ .si-legal { color: #0891b2;} /* cyan-600 */ .si-healthcare { color: #be123c;} /* rose-700 */ .si-voiceclone { color: #d946ef;} /* fuchsia-500 */ .si-detect { color: #065f46;} /* dark green */ .si-sheet { color: #84cc16;} /* lime-600 */ .si-translate { color: #06b6d4;} /* cyan-600 */ .si-enhance { color: #0ea5e9;} /* sky-500 */ .si-prompt { color: #facc15;} /* yellow-400 */ .si-paraphrase { color: #34d399;} /* emerald-400 */ .si-web { color: #f97316; } /* orange-600 - like prod */ .si-social { color: #6366f1; } /* indigo-600 - like analytics */ .si-cart { color: #22c55e; } /* green-500 - like fin */ .si-seo { color: #475569; } /* slate-600 - like search */ .si-users { color: #3b82f6; } /* blue-600 - like learn */ .si-chart-line { color: #ef4444; } /* red-500 - like video */ .si-house { color: #ea580c; } /* orange-700 - like biz */ .si-imgedit {color: #f0ab3a;} /* amber-500 */ .si-videdit {color: #7c3aed;} /* violet-700 */ /* Hide scrollbar for PDF export */ .no-scrollbar::-webkit-scrollbar {display:none;} .no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; } /* Make nav scrollable, not the whole sidebar */ .sidebar-nav-scroll { overflow-y: auto; flex-grow: 1; min-height: 0; /* Important for flex-grow elements with overflow */ padding-bottom: 5rem; /* Explicit large padding */ } /* Card Animation */ .card-animate { transform: translateY(0); transition: transform 0.2s ease, box-shadow 0.2s ease; position: relative; /* Needed for absolute positioning of badge */ } .card-animate:hover { transform: translateY(-3px); } /* Tool Icon Styling */ .tool-icon { font-size: 1.2rem; /* Adjust size as needed */ margin-right: 0.65rem; /* Space between icon and name */ color: #3b82f6; /* Default blue color, adjust if specific colors are needed */ } /* The color for the tool icon needs to be set based on category *or* tool data */ /* For simplicity, we can apply the category color here or keep a default blue */ /* Example: .si-chat.tool-icon { color: #2563eb; } - but this would require specific classes for each icon */ /* Keeping a default blue is simpler unless specific tool icons have specific colors */ .group:hover .tool-icon { color: #2563eb; /* Darker blue on hover */ } /* Pricing Badge Styles */ .pricing-badge { position: absolute; top: 0.5rem; /* Adjust as needed */ right: 0.5rem; /* Adjust as needed */ padding: 0.1rem 0.60rem; /* Adjust as needed */ border-radius: 9999px; /* Full rounded */ font-size: 0.75rem; /* text-xs */ font-weight: 600; /* font-semibold */ color: #ffffff; box-shadow: 0 1px 3px rgba(0,0,0,0.1); z-index: 10; /* Ensure it's above card content */ text-transform: uppercase; } .badge-freemium { background-color: #34d399; } /* emerald-500 */ .badge-paid { background-color: #ef4444; } /* red-500 */ .badge-free { background-color: #60a5fa; } /* blue-400 */ /* Filter Button Styles */ .filter-button { display: inline-flex; /* Use flex for aligning text and maybe an icon later */ align-items: center; padding: 0.4rem 1.2rem; /* Adjust padding */ margin: 0 0.25rem; /* Space between buttons */ border: 1px solid #dbeafe; /* blue-100 */ border-radius: 9999px; /* full rounded */ background-color: #ffffff; color: #4b5563; /* gray-600 */ font-size: 0.875rem; /* text-sm */ font-weight: 500; /* font-medium */ cursor: pointer; transition: all 0.2s ease; user-select: none; /* Prevent text selection on rapid clicks */ } .filter-button:first-child { margin-left: 0; /* Remove left margin for the first button */ } .filter-button:hover { background-color: #eff6ff; /* blue-50 */ border-color: #bfdbfe; /* blue-200 */ color: #2563eb; /* blue-700 */ box-shadow: 0 1px 3px rgba(0,0,0,0.05); } .filter-button.active { background-color: #3b82f6; /* blue-600 */ border-color: #3b82f6; color: #ffffff; box-shadow: 0 2px 5px rgba(59, 130, 246, 0.2); } .filter-button.active:hover { background-color: #2563eb; /* blue-700 */ border-color: #2563eb; } /* Icon inside filter button */ .filter-button i { margin-right: 0.5rem; /* Space between icon and text */ font-size: 1rem; /* Adjust size */ } /* Responsive Sidebar Display and Positioning */ @media (max-width: 1023px) { .sidebar { left: -260px; /* Hidden by default on mobile */ } .sidebar.open { left: 0; /* Slide in on open */ } .sidebar-backdrop { display:block; } .main-content { /* On mobile, no left margin from sidebar */ margin-left: 0; } } @media (min-width: 1024px) { .sidebar { left: 0 !important; /* Always visible on desktop */ } .sidebar-backdrop { display:none !important; /* Hide backdrop on desktop */ } .sidebar-toggle { display: none !important; /* Hide toggle button on desktop */ } .main-content { /* Add left margin to main content equal to sidebar width */ margin-left: 16rem; /* Matches w-64 */ } } .sidebar-backdrop { position: fixed; left: 0; top: 0; right: 0; bottom: 0; background: rgba(30,41,59,0.12); z-index:39; display:none; transition: background 0.25s; } .sidebar-toggle { z-index: 45; background: linear-gradient(135deg, #3b82f6 0%, #60a5fa 100%); box-shadow: 0 4px 10px rgba(59, 130, 246, 0.25); } /* Hero Animated Icons */ .icon-animate { animation: floaty 3.5s infinite ease-in-out; font-size: 2.35rem; margin: 0 0.75rem; } .icon-animate1 { animation-delay: 0s; color: #2563eb;} .icon-animate2 { animation-delay: .9s; color: #16a34a;} .icon-animate3 { animation-delay: 1.7s; color: #eab308;} .icon-animate4 { animation-delay: 2.3s; color: #ef4444;} @keyframes floaty { 0% { transform: translateY(0);} 50% { transform: translateY(-13px) scale(1.1);} 100% { transform: translateY(0);} } /* PDF Optimization */ @media print { .sidebar, .sidebar-backdrop, .sidebar-toggle, footer, #filter-section { display: none !important;} /* Hide filter section for print */ .main-content {margin-left: 0 !important; padding-top: 0 !important; padding-left: 0 !important; padding-right: 0 !important;} /* Remove sidebar margin and all padding */ header { position: static !important; border-bottom: none !important; box-shadow: none !important; min-height: auto !important; padding: 0 !important;} /* Make header static */ header .max-w-5xl { padding: 0 !important;} /* Remove inner header padding */ body { background: #fff !important; color: #000 !important; overflow: visible !important;} /* White background for print */ h1, h2, h3, h4, h5, h6 { color: #000 !important; } .text-blue-700 { color: #000 !important; } .text-blue-800 { color: #000 !important; } .text-blue-600 { color: #000 !important; } .text-gray-700 { color: #333 !important; } .border-blue-100, .border-blue-200 { border-color: #ddd !important; } .bg-gradient-to-br, .bg-gradient-to-r, .bg-white, .bg-gray-50, .bg-blue-100, .to-blue-50, .badge-freemium, .badge-paid, .badge-free { /* Include badges */ background: #fff !important; /* Force white background */ color: #000 !important; box-shadow: none !important; /* Remove gradients/shadows */ border: none !important; /* Remove borders on gradient elements */ } .shadow, .shadow-sm, .shadow-md { box-shadow: none !important; border: 1px solid #ddd !important; } /* Add border for definition */ .card-animate, .card-animate:hover { transform: none !important; box-shadow: none !important; border: 1px solid #ddd !important; position: static !important; padding-right: 1rem !important;} /* Remove card effects, add border, make static, adjust padding */ .card-animate .pricing-badge { display: none !important;} /* Hide pricing badge in print */ a { text-decoration: underline; color: #000 !important; } /* Underline links */ .group-hover\:text-blue-700 { color: #000 !important; } /* Ensure link text is black */ .group-hover\:underline { text-decoration: underline !important;} img { max-width: 80px !important; max-height: 80px !important; border: 1px solid #ddd !important;} /* Constrain image size and add border */ .tool-icon { color: #000 !important;} /* Ensure icons are black */ /* Ensure spacing is reasonable */ section { margin-bottom: 20px !important; padding-bottom: 0 !important; padding-left: 0 !important; padding-right: 0 !important;} .mb-12 { margin-bottom: 1rem !important; } .mb-16 { margin-bottom: 1.5rem !important; } .gap-6 { gap: 1rem !important; } .px-0, .mx-auto { padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important;} .px-2 { padding-left: 0.5rem !important; padding-right: 0.5rem !important;} /* Keep some minimal padding for grids/lists */ .container { max-width: none !important; width: 100% !important; padding: 0 15px !important; } .py-8 { padding-top: 1rem !important; padding-bottom: 1rem !important;} .my-8 { margin-top: 1rem !important; margin-bottom: 1rem !important;} .p-4 { padding: 1rem !important;} .p-5 { padding: 1rem !important;} /* Adjust card padding for print */ .p-8 { padding: 1.5rem !important;} .rounded-2xl { border-radius: 0.5rem !important; } .w-full { width: 100% !important;} .grid-cols-1, .md\:grid-cols-2, .lg\:grid-cols-3 { grid-template-columns: 1fr !important; } /* Single column for print */ /* Specific adjustments for search and hero */ form.max-w-xl { padding: 0.5rem !important; border: 1px solid #ddd !important; } form.max-w-xl input { padding: 0.5rem !important; } .hero-section > div { padding: 1rem !important; margin-top: 1rem !important; margin-bottom: 1rem !important; border: 1px solid #ddd !important;} .hero-section .icon-animate { font-size: 1.5rem !important; margin: 0 0.5rem !important; animation: none !important;} .text-3xl, .text-4xl { font-size: 1.5rem !important; margin-bottom: 0.5rem !important;} .text-base, .text-lg { font-size: 1rem !important;} .hero-section .flex.gap-3 a { padding: 0.5rem 1rem !important; font-size: 1rem !important;} .sidebar-logo, .sidebar-category-heading { display: none !important;} /* Hide sidebar specifics in print */ .card-animate img { margin-right: 0.5rem !important;} .card-animate span.text-lg { font-size: 1.1rem !important;} .card-animate p { font-size: 0.9rem !important; margin-bottom: 0.5rem !important;} .card-animate span.text-xs { font-size: 0.8rem !important; margin-top: 0.5rem !important;} /* Disable sticky for print */ .sticky { position: static !important; top: auto !important; z-index: auto !important; background: none !important; border: none !important; box-shadow: none !important;} #search-section form { margin: 0 !important; padding: 0.5rem !important;} /* Remove my-4 margin for print */ #categories { padding-top: 1rem !important;} /* Adjust top padding for print */ #filter-section { margin-top: 0 !important; padding-bottom: 0 !important; } } /* Ensuring no horizontal scrollbar for PDF */ .main-content, .container {overflow-x: hidden !important;} /* Added padding to main-content for all screen sizes */ .main-content { padding-left: 1rem; /* px-4 */ padding-right: 1rem; /* px-4 */ } @media (min-width: 640px) { /* sm */ .main-content { padding-left: 1.5rem; /* sm:px-6 */ padding-right: 1.5rem; /* sm:px-6 */ } } @media (min-width: 1024px) { /* lg */ .main-content { padding-left: 2rem; /* lg:px-8 */ padding-right: 2rem; /* lg:px-8 */ } } /* Sticky Search Bar Styles */ #search-section { transition: top 0.3s ease; /* Smooth transition if header height changes (less likely with fixed header) */ } /* Added specific margin-top for the filter section */ #filter-section { margin-top: 1rem; /* Add space below sticky search */ padding-bottom: 1rem; /* Add space above categories */ border-bottom: 1px solid #e2e8f0; /* subtle border */ background-color: #f7fafc; /* Match body background */ position: sticky; /* Make filter sticky */ z-index: 10; /* Below search */ top: 0; /* Will be calculated by JS */ }