* { margin: 0; padding: 0; box-sizing: border-box; touch-action: manipulation; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: #f8fafc; min-height: 100vh; padding: 0; margin: 0; transition: background 0.3s ease; overflow-x: hidden; } body.dark-mode { background: #0f172a; } .main-content { padding: 40px; padding-top: 60px; max-width: 1400px; } /* Add padding when hero section is present to prevent overlap with top bar */ .main-content:has(.hero-section) { padding-top: 70px; } /* Category index pages with fixed sidebar - need more top padding */ .main-content:has(.hero-section[data-fixed-sidebar="true"]) { padding-top: 70px; } /* Individual tool pages without fixed sidebar - less top padding */ .main-content:has(.hero-section:not([data-fixed-sidebar="true"])) { padding-top: 10px; } @media (max-width: 1024px) { .main-content { padding: 76px 30px 30px 30px; } /* Keep top padding on mobile even with hero section (for mobile menu) */ .main-content:has(.hero-section) { padding-top: 76px; } } @media (max-width: 768px) { .main-content { padding: 76px 20px 20px 20px; } } @media (max-width: 480px) { .main-content { padding: 76px 16px 16px 16px; } } .top-bar { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; height: 60px !important; background: rgba(255, 255, 255, 0.95) !important; backdrop-filter: blur(10px) !important; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important; display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 0 30px !important; z-index: 1000 !important; border-bottom: 1px solid rgba(229, 231, 235, 0.5) !important; } body.dark-mode .top-bar { background: rgba(30, 41, 59, 0.95) !important; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3) !important; border-bottom-color: rgba(51, 65, 85, 0.5) !important; } .brand-logo { display: flex !important; align-items: center !important; gap: 10px !important; text-decoration: none !important; color: #2d3748 !important; font-weight: 700 !important; font-size: 18px !important; transition: all 0.3s !important; } .brand-logo:hover { color: #06b6d4 !important; transform: translateY(-1px) !important; } body.dark-mode .brand-logo { color: #06b6d4 !important; } body.dark-mode .brand-logo:hover { color: #22d3ee !important; } body > .hero-section { margin-top: 60px; } @media (max-width: 768px) { body > .hero-section { margin-top: 60px; } } .card { background: white; border-radius: 12px; padding: 25px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); transition: all 0.3s ease; border: 1px solid #e2e8f0; } .card:hover { transform: translateY(-3px); box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12); } body.dark-mode .card { background: #1e293b; border-color: #334155; } .section-title { font-size: 24px; font-weight: 700; color: #0f172a; margin-bottom: 24px; display: flex; align-items: center; gap: 12px; } body.dark-mode .section-title { color: #f8fafc; } h1, h2, h3, h4, h5, h6 { color: #0f172a; } body.dark-mode h1, body.dark-mode h2, body.dark-mode h3, body.dark-mode h4, body.dark-mode h5, body.dark-mode h6 { color: #f1f5f9; } p { color: #475569; line-height: 1.6; } body.dark-mode p { color: #cbd5e1; } a { color: #3b82f6; text-decoration: none; transition: color 0.2s ease; } a:hover { color: #2563eb; } body.dark-mode a { color: #60a5fa; } body.dark-mode a:hover { color: #93c5fd; } button { font-family: inherit; cursor: pointer; } ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: #f1f5f9; } ::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: #94a3b8; } body.dark-mode ::-webkit-scrollbar-track { background: #1e293b; } body.dark-mode ::-webkit-scrollbar-thumb { background: #475569; } body.dark-mode ::-webkit-scrollbar-thumb:hover { background: #64748b; } /* Breadcrumb Navigation */ .breadcrumb { display: flex; align-items: center; gap: 4px; font-size: 13px; color: #64748b; margin: 0 20px 24px 20px; padding: 10px 16px; background: linear-gradient(to right, #f8fafc, #f1f5f9); border-radius: 8px; flex-wrap: wrap; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05); border: 1px solid #e2e8f0; } .breadcrumb a { color: #667eea; text-decoration: none; transition: all 0.2s ease; padding: 4px 8px; border-radius: 4px; font-weight: 500; } .breadcrumb a:hover { color: #5a67d8; background: rgba(102, 126, 234, 0.08); text-decoration: none; } .breadcrumb-separator { color: #cbd5e0; user-select: none; font-weight: 400; margin: 0 2px; } .breadcrumb-current { color: #1e293b; font-weight: 600; padding: 4px 8px; background: rgba(102, 126, 234, 0.1); border-radius: 4px; } /* Dark Mode Breadcrumb */ body.dark-mode .breadcrumb { background: linear-gradient(to right, #1e293b, #0f172a); border-color: #334155; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); color: #94a3b8; } body.dark-mode .breadcrumb a { color: #a78bfa; } body.dark-mode .breadcrumb a:hover { color: #c4b5fd; background: rgba(167, 139, 250, 0.15); } body.dark-mode .breadcrumb-separator { color: #475569; } body.dark-mode .breadcrumb-current { color: #f1f5f9; background: rgba(167, 139, 250, 0.2); } /* Mobile Responsive Breadcrumb */ @media (max-width: 768px) { .breadcrumb { font-size: 12px; gap: 2px; padding: 8px 12px; margin: 0 15px 16px 15px; } .breadcrumb a, .breadcrumb-current { padding: 3px 6px; } .breadcrumb-separator { margin: 0 1px; } } @media (max-width: 480px) { .breadcrumb { font-size: 11px; padding: 6px 10px; margin: 0 12px 16px 12px; } } .container { max-width: 1400px; margin: 0 auto; padding: 0 20px; } @media (max-width: 768px) { .container { padding: 0 15px; } } /* SEO Content Sections */ .seo-section { background: #ffffff; padding: 30px; margin: 30px 0; border-radius: 12px; border-left: 4px solid #3b82f6; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); } body.dark-mode .seo-section { background: #1e293b; border-color: #60a5fa; } .seo-section h2 { color: #1e293b; font-size: 1.5em; margin-bottom: 15px; font-weight: 700; } body.dark-mode .seo-section h2 { color: #f1f5f9; } .seo-section p { color: #475569; line-height: 1.8; font-size: 1em; } body.dark-mode .seo-section p { color: #cbd5e1; } @media (max-width: 768px) { .seo-section { padding: 20px; margin: 20px 0; } .seo-section h2 { font-size: 1.3em; } } /* Main wrapper with sidebar layout */ .main-wrapper { display: grid; grid-template-columns: 320px 1fr; min-height: 100vh; margin-top: 60px; /* Account for fixed top bar */ transition: grid-template-columns 0.3s ease; } .main-wrapper.sidebar-collapsed { grid-template-columns: 0px 1fr; } /* Mobile sidebar backdrop */ .sidebar-backdrop { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.5); z-index: 1150; opacity: 0; transition: opacity 0.3s ease; } .sidebar-backdrop.active { display: block; opacity: 1; } @media (max-width: 1024px) { .main-wrapper { display: block; padding-top: 0; } /* Hide desktop toggle button on mobile */ .sidebar-toggle { display: none !important; } /* Mobile sidebar overlay - full screen */ .sidebar { position: fixed !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100vh !important; padding-top: 20px !important; transform: translateX(-100%) !important; transition: transform 0.3s ease !important; z-index: 1200 !important; } .sidebar.mobile-open { transform: translateX(0) !important; } } /* Sidebar Close Button (Mobile Only) */ .sidebar-close { display: none; position: absolute; top: 20px; right: 20px; width: 44px; height: 44px; background: white; border: 2px solid #e2e8f0; border-radius: 50%; cursor: pointer; z-index: 10; align-items: center; justify-content: center; transition: all 0.3s ease; padding: 0; } .sidebar-close:hover { background: #f1f5f9; border-color: #cbd5e1; transform: scale(1.05); } .sidebar-close:active { transform: scale(0.95); } .sidebar-close svg { fill: #64748b; } .sidebar-close:hover svg { fill: #475569; } body.dark-mode .sidebar-close { background: #1e293b; border-color: #334155; } body.dark-mode .sidebar-close:hover { background: #334155; border-color: #475569; } body.dark-mode .sidebar-close svg { fill: #cbd5e1; } body.dark-mode .sidebar-close:hover svg { fill: #f1f5f9; } @media (max-width: 1024px) { .sidebar-close { display: flex; } .sidebar-toggle { display: none !important; } } @media (min-width: 1025px) { .sidebar-close { display: none !important; } } /* Sidebar */ .sidebar { background: white; border-right: 1px solid #e2e8f0; padding: 0 30px; position: sticky; top: 10px; /* main-wrapper already has 60px margin-top, so just 10px more for spacing */ height: calc(100vh - 70px); overflow-y: auto; overflow-x: hidden; transition: all 0.3s ease; } .main-wrapper.sidebar-collapsed .sidebar { padding: 0; width: 0; min-width: 0; opacity: 0; pointer-events: none; } /* Sidebar Toggle Button */ .sidebar-toggle { position: fixed; top: 90px; left: 280px; width: 32px; height: 32px; padding: 0; margin: 0; background: transparent; border: none; border-radius: 6px; display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 1100; transition: all 0.3s ease; outline: none; } .sidebar-toggle:hover { background: #f1f5f9; } .sidebar-toggle:active { transform: scale(0.95); } .sidebar-toggle svg { width: 20px; height: 20px; fill: #64748b; transition: transform 0.3s ease; } .main-wrapper.sidebar-collapsed .sidebar-toggle { position: fixed; top: 90px; left: 20px; width: 40px; height: 40px; background: white; border: 2px solid #e2e8f0; border-radius: 50%; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); pointer-events: auto; } .main-wrapper.sidebar-collapsed .sidebar-toggle:hover { background: #f1f5f9; box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2); } .main-wrapper.sidebar-collapsed .sidebar-toggle svg { transform: rotate(180deg); } .sidebar-toggle:hover svg { fill: #475569; } body.dark-mode .sidebar-toggle:hover { background: #334155; } body.dark-mode .main-wrapper.sidebar-collapsed .sidebar-toggle { background: #1e293b; border-color: #334155; } body.dark-mode .main-wrapper.sidebar-collapsed .sidebar-toggle:hover { background: #334155; } body.dark-mode .sidebar-toggle svg { fill: #cbd5e1; } body.dark-mode .sidebar { background: #1e293b; border-right-color: #334155; } .sidebar-nav { margin-bottom: 30px; padding-top: 30px; } .sidebar-nav:last-child { padding-bottom: 30px; } .sidebar-nav h3 { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: #64748b; margin-bottom: 15px; } .sidebar-link { display: flex; align-items: center; gap: 12px; padding: 12px 16px; margin-bottom: 4px; border-radius: 8px; text-decoration: none; color: #475569; font-size: 14px; font-weight: 500; transition: all 0.2s ease; } .sidebar-link:hover { background: #f1f5f9; color: #0f172a; } .sidebar-link.active { background: #3b82f6; color: white; } body.dark-mode .sidebar-link { color: #cbd5e1; } body.dark-mode .sidebar-link:hover { background: #334155; color: #f8fafc; } body.dark-mode .sidebar-nav h3 { color: #94a3b8; } /* Hero Section - Common Styles */ .hero-section { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); padding: 30px 20px; text-align: center; color: white; position: relative; /* Expand to full width by negating main-content padding */ margin-left: -40px; margin-right: -40px; width: calc(100% + 80px); } .hero-content { max-width: 1200px; margin: 0 auto; } .hero-title { color: white !important; font-size: 32px; font-weight: 700; margin-bottom: 12px; margin-top: 10px; } .hero-section h1, .hero-section .hero-title { color: white !important; font-size: 32px; font-weight: 700; margin-bottom: 12px; } .hero-section .purpose, .hero-section .subtitle { font-size: 15px; max-width: 800px; margin: 0 auto; opacity: 0.95; background: none; border: none; padding: 0; color: white; line-height: 1.5; } /* Add padding to container after hero section */ .hero-section + .container, .hero-section + * > .container:first-child { padding: 30px 20px 0 20px; } @media (max-width: 1024px) { .hero-section { /* Negate mobile padding: main-content has 76px 30px on mobile */ margin-left: -30px; margin-right: -30px; width: calc(100% + 60px); } } @media (max-width: 768px) { .hero-section { padding: 25px 20px; /* Negate mobile padding: main-content has 76px 20px on tablet */ margin-left: -20px; margin-right: -20px; width: calc(100% + 40px); } .hero-title, .hero-section h1, .hero-section .hero-title { font-size: 24px; } .hero-section .purpose, .hero-section .subtitle { font-size: 14px; } .hero-section + .container, .hero-section + * > .container:first-child { padding: 25px 15px 0 15px; } } @media (max-width: 480px) { .hero-section { /* Negate mobile padding: main-content has 76px 16px on mobile */ margin-left: -16px; margin-right: -16px; width: calc(100% + 32px); } }