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 */
}