/* Reset and Base Styles */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; line-height: 1.6; color: #333; background-color: #ffffff; } .container { min-height: 100vh; display: flex; flex-direction: column; } /* Header Styles */ .header { background: linear-gradient(135deg, #0f172a 0%, #1e3a8a 100%); color: white; padding: 1rem 0; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); position: sticky; top: 0; z-index: 1000; } .header-content { max-width: 1200px; margin: 0 auto; padding: 0 2rem; display: flex; justify-content: space-between; align-items: center; } .logo { display: flex; align-items: center; gap: 0.75rem; } .logo i { font-size: 2rem; color: #06b6d4; } .logo h1 { font-size: 1.5rem; font-weight: 700; letter-spacing: -0.025em; } .nav { display: flex; gap: 2rem; } .nav-link { color: white; text-decoration: none; font-weight: 500; padding: 0.5rem 1rem; border-radius: 0.5rem; transition: all 0.3s ease; } .nav-link:hover, .nav-link.active { background-color: rgba(255, 255, 255, 0.1); transform: translateY(-1px); } /* Main Content */ .main { flex: 1; } /* Hero Section */ .hero { background: linear-gradient(135deg, #0f172a 0%, #1e3a8a 50%, #3b82f6 100%); color: white; padding: 4rem 0; text-align: center; } .hero-content { max-width: 800px; margin: 0 auto; padding: 0 2rem; } .hero h2 { font-size: 2.5rem; font-weight: 700; margin-bottom: 1rem; letter-spacing: -0.025em; } .hero p { font-size: 1.125rem; margin-bottom: 3rem; opacity: 0.9; line-height: 1.7; } /* Upload Container */ .upload-container { max-width: 900px; margin: 0 auto; } .upload-area { background: white; border: 3px dashed #cbd5e1; border-radius: 1rem; padding: 3rem 2rem; text-align: center; transition: all 0.3s ease; cursor: pointer; color: #333; } .upload-area:hover { border-color: #06b6d4; transform: translateY(-2px); box-shadow: 0 10px 25px rgba(6, 182, 212, 0.15); } .upload-area.dragover { border-color: #10b981; background-color: #f0fdf4; } .upload-icon { font-size: 3rem; color: #06b6d4; margin-bottom: 1rem; } .upload-area h3 { font-size: 1.5rem; font-weight: 600; margin-bottom: 0.5rem; color: #1e293b; } .upload-area p { color: #64748b; margin-bottom: 1rem; } .file-limits { font-size: 0.875rem; color: #94a3b8; margin-bottom: 2rem; } .upload-btn { background: linear-gradient(135deg, #0f172a 0%, #1e3a8a 100%); color: white; border: none; padding: 0.75rem 2rem; border-radius: 0.5rem; font-weight: 600; cursor: pointer; transition: all 0.3s ease; font-size: 1rem; } .upload-btn:hover { transform: translateY(-2px); box-shadow: 0 5px 15px rgba(30, 58, 138, 0.4); } /* Progress Section */ .progress-section { background: white; border-radius: 1rem; padding: 2rem; margin-top: 2rem; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05); } .progress-header h3 { color: #1e293b; margin-bottom: 1rem; font-weight: 600; } .progress-bar { width: 100%; height: 8px; background-color: #e2e8f0; border-radius: 4px; overflow: hidden; margin-bottom: 1rem; } .progress-fill { height: 100%; background: linear-gradient(90deg, #06b6d4, #0891b2); width: 0%; transition: width 0.3s ease; border-radius: 4px; } .progress-text { color: #64748b; font-size: 0.875rem; } /* Results Section */ .results-section { background: white; border-radius: 1rem; padding: 2rem; margin-top: 2rem; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05); max-width: 1100px; margin-left: auto; margin-right: auto; } .result-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2rem; padding-bottom: 1rem; border-bottom: 1px solid #e2e8f0; } .result-header h3 { color: #1e293b; font-weight: 600; } .result-status { display: flex; align-items: center; gap: 0.5rem; font-weight: 600; } .result-status.safe { color: #059669; } .result-status.danger { color: #dc2626; } .result-status i { font-size: 1.25rem; } .result-details { display: grid; gap: 1rem; margin-bottom: 2rem; } .result-item { display: flex; justify-content: space-between; padding: 0.75rem 0; border-bottom: 1px solid #f1f5f9; } .result-item:last-child { border-bottom: none; } .label { font-weight: 500; color: #64748b; } .value { font-weight: 600; color: #1e293b; } .scan-again-btn { background: linear-gradient(135deg, #0f172a 0%, #1e3a8a 100%); color: white; border: none; padding: 0.75rem 2rem; border-radius: 0.5rem; font-weight: 600; cursor: pointer; transition: all 0.3s ease; width: 100%; } .scan-again-btn:hover { background: linear-gradient(135deg, #1e3a8a 0%, #3b82f6 100%); transform: translateY(-1px); } /* Detailed Results Styles */ .detailed-results { display: flex; flex-direction: column; gap: 2rem; } .result-section { background: #f8fafc; border-radius: 0.75rem; padding: 1.5rem; border: 1px solid #e2e8f0; } .result-section h4 { display: flex; align-items: center; gap: 0.5rem; font-size: 1.125rem; font-weight: 600; color: #1e293b; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 1px solid #e2e8f0; } .result-section h4 i { color: #06b6d4; } .result-grid { display: grid; gap: 0.75rem; } .hash-value { font-family: 'Courier New', monospace; font-size: 0.875rem; background: #f1f5f9; padding: 0.25rem 0.5rem; border-radius: 0.25rem; word-break: break-all; } /* Security Score Styles */ .security-score { display: flex; align-items: center; gap: 2rem; padding: 1rem; background: white; border-radius: 0.5rem; border: 1px solid #e2e8f0; } .score-circle { width: 80px; height: 80px; border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; font-weight: 700; position: relative; } .score-circle.excellent { background: linear-gradient(135deg, #10b981, #059669); color: white; } .score-circle.good { background: linear-gradient(135deg, #06b6d4, #0891b2); color: white; } .score-circle.fair { background: linear-gradient(135deg, #f59e0b, #d97706); color: white; } .score-circle.poor { background: linear-gradient(135deg, #ef4444, #dc2626); color: white; } .score-number { font-size: 1.5rem; line-height: 1; } .score-label { font-size: 0.75rem; opacity: 0.8; } .score-details h5 { font-size: 1rem; font-weight: 600; color: #1e293b; margin-bottom: 0.5rem; } .score-details p { font-size: 0.875rem; color: #64748b; margin-bottom: 0.25rem; } .risk-level .safe, .status .safe { color: #059669; font-weight: 600; } .risk-level .warning, .status .warning { color: #f59e0b; font-weight: 600; } .risk-level .danger, .status .danger { color: #dc2626; font-weight: 600; } /* Threat Details Styles */ .threat-section { background: #fef2f2; border-color: #fecaca; } .threats-list { display: flex; flex-direction: column; gap: 1rem; } .threat-item { background: white; border-radius: 0.5rem; padding: 1rem; border: 1px solid #fecaca; } .threat-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.5rem; } .threat-name { font-weight: 600; color: #dc2626; font-family: 'Courier New', monospace; } .threat-type { padding: 0.25rem 0.5rem; border-radius: 0.25rem; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; } .threat-type.malware { background: #fef2f2; color: #dc2626; } .threat-type.trojan { background: #fef3c7; color: #d97706; } .threat-type.virus { background: #fef2f2; color: #dc2626; } .threat-type.spyware { background: #f3e8ff; color: #7c3aed; } .threat-type.ransomware { background: #fef2f2; color: #dc2626; } .threat-description { color: #64748b; font-size: 0.875rem; margin-bottom: 0.75rem; line-height: 1.5; } .threat-details { display: flex; gap: 1rem; font-size: 0.75rem; } .threat-severity.critical { color: #dc2626; font-weight: 600; } .threat-severity.high { color: #ea580c; font-weight: 600; } .threat-severity.medium { color: #f59e0b; font-weight: 600; } .threat-severity.low { color: #059669; font-weight: 600; } .threat-location { color: #64748b; font-family: 'Courier New', monospace; } /* Recommendations Styles */ .recommendations-list { display: flex; flex-direction: column; gap: 1rem; } .recommendation-item { display: flex; align-items: flex-start; gap: 1rem; padding: 1rem; background: white; border-radius: 0.5rem; border: 1px solid #e2e8f0; transition: all 0.3s ease; } .recommendation-item:hover { transform: translateY(-2px); box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05); } .recommendation-item i { color: #06b6d4; font-size: 1.25rem; margin-top: 0.125rem; } .recommendation-content h5 { font-size: 1rem; font-weight: 600; color: #1e293b; margin-bottom: 0.5rem; } .recommendation-content p { color: #64748b; font-size: 0.875rem; line-height: 1.5; } /* Features Section */ .features { padding: 4rem 0; background: #f8fafc; } .features-grid { max-width: 1200px; margin: 0 auto; padding: 0 2rem; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 2rem; } .feature-card { text-align: center; padding: 2rem; border-radius: 1rem; background: white; transition: all 0.3s ease; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05); border: 1px solid #e2e8f0; } .feature-card:hover { transform: translateY(-5px); box-shadow: 0 10px 25px rgba(6, 182, 212, 0.15); border-color: #06b6d4; } .feature-icon { font-size: 2.5rem; color: #06b6d4; margin-bottom: 1rem; } .feature-card h3 { font-size: 1.25rem; font-weight: 600; margin-bottom: 1rem; color: #1e293b; } .feature-card p { color: #64748b; line-height: 1.6; } /* About Section */ .about { padding: 4rem 0; background: white; } .about-content { max-width: 800px; margin: 0 auto; padding: 0 2rem; text-align: center; } .about h2 { font-size: 2rem; font-weight: 700; margin-bottom: 2rem; color: #1e293b; } .about p { color: #64748b; line-height: 1.7; margin-bottom: 1.5rem; font-size: 1.125rem; } /* Terms of Service Section */ .tos { padding: 4rem 0; background: #f8fafc; } .tos-content { max-width: 800px; margin: 0 auto; padding: 0 2rem; } .tos h2 { font-size: 2rem; font-weight: 700; margin-bottom: 2rem; color: #1e293b; text-align: center; } .tos-section { margin-bottom: 2rem; padding: 1.5rem; background: white; border-radius: 0.5rem; border-left: 4px solid #06b6d4; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); } .tos-section h3 { font-size: 1.125rem; font-weight: 600; margin-bottom: 0.75rem; color: #1e293b; } .tos-section p { color: #64748b; line-height: 1.6; } /* Support Section */ .support { padding: 4rem 0; background: white; } .support-content { max-width: 1200px; margin: 0 auto; padding: 0 2rem; } .support h2 { font-size: 2rem; font-weight: 700; margin-bottom: 3rem; color: #1e293b; text-align: center; } .support-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; } .support-card { background: #f8fafc; padding: 2rem; border-radius: 1rem; text-align: center; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05); transition: all 0.3s ease; border: 1px solid #e2e8f0; } .support-card:hover { transform: translateY(-5px); box-shadow: 0 10px 25px rgba(6, 182, 212, 0.15); border-color: #06b6d4; } .support-icon { font-size: 2.5rem; color: #06b6d4; margin-bottom: 1rem; } .support-card h3 { font-size: 1.25rem; font-weight: 600; margin-bottom: 1rem; color: #1e293b; } .support-card p { color: #64748b; margin-bottom: 0.5rem; } /* Footer */ .footer { background: #0f172a; color: white; padding: 3rem 0 1rem; border-top: 1.5px solid #1e293b; } .footer-content { max-width: 1200px; margin: 0 auto; padding: 0 2rem; display: flex; justify-content: space-between; align-items: flex-start; gap: 3rem; margin-bottom: 2rem; } .footer-section { flex: 1 1 0; min-width: 200px; text-align: left; } .footer-logo { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 1rem; } .footer-logo i { font-size: 1.5rem; color: #06b6d4; } .footer-logo span { font-size: 1.25rem; font-weight: 700; } .footer-section h4 { font-size: 1.125rem; font-weight: 600; margin-bottom: 1rem; color: #f1f5f9; } .footer-link-list { display: flex; flex-direction: column; gap: 0.75rem; margin-top: 0.5rem; } .footer-link-list a { color: #94a3b8; text-decoration: none; font-size: 1rem; transition: color 0.3s; padding: 0.2rem 0.5rem; border-radius: 0.3rem; } .footer-link-list a:hover, .footer-link-list a.active { color: #06b6d4; background: #1e293b; } .footer-section p { color: #94a3b8; line-height: 1.6; font-size: 1rem; margin-top: 0.5rem; } .footer-bottom { border-top: 1px solid #1e293b; padding-top: 2rem; text-align: center; } .footer-bottom p { color: #94a3b8; font-size: 0.875rem; } /* Responsive Design */ @media (max-width: 768px) { .header-content { flex-direction: column; gap: 1rem; } .nav { gap: 1rem; } .hero h2 { font-size: 2rem; } .hero p { font-size: 1rem; } .upload-area { padding: 2rem 1rem; } .features-grid { grid-template-columns: 1fr; } .support-grid { grid-template-columns: 1fr; } .footer-content { flex-direction: column; gap: 2.5rem; text-align: left; } .footer-section { min-width: 0; text-align: left; } .security-score { flex-direction: column; text-align: center; gap: 1rem; } .threat-details { flex-direction: column; gap: 0.5rem; } } @media (max-width: 480px) { .header-content, .hero-content, .about-content, .tos-content, .support-content { padding: 0 1rem; } .upload-area { padding: 1.5rem 1rem; } .result-header { flex-direction: column; gap: 1rem; align-items: flex-start; } .result-section { padding: 1rem; } .recommendation-item { flex-direction: column; text-align: center; } } /* Make the detailed results even wider */ .wide-results { max-width: 1200px; margin-left: auto; margin-right: auto; } /* Multi-Engine Scan Table Styles */ .multi-engine-table-wrapper { overflow-x: auto; margin-top: 1rem; } .multi-engine-table { width: 100%; border-collapse: collapse; font-size: 0.98rem; background: #fff; border-radius: 0.5rem; box-shadow: 0 2px 8px rgba(0,0,0,0.04); margin-bottom: 1rem; } .multi-engine-table th, .multi-engine-table td { padding: 0.6rem 1rem; text-align: left; border-bottom: 1px solid #e2e8f0; } .multi-engine-table th { background: #f8fafc; color: #1e293b; font-weight: 600; } .multi-engine-table tr:last-child td { border-bottom: none; } .multi-engine-table tr.clean td { color: #059669; } .multi-engine-table tr.malware td { color: #dc2626; font-weight: 600; } .multi-engine-table tr.suspicious td { color: #f59e0b; font-weight: 600; } .multi-engine-summary { margin-bottom: 0.5rem; font-size: 1.08rem; color: #1e293b; } .suspicious-summary { color: #f59e0b; margin-left: 0.5rem; font-weight: 500; } .footer-link-list { display: flex; flex-direction: column; gap: 0.75rem; margin-top: 0.5rem; }