* { box-sizing: border-box; margin: 0; padding: 0; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; } body { background-image: linear-gradient(rgba(11, 15, 25, 0.85), rgba(11, 15, 25, 0.85)), url('../assets/cyber-bg.gif'); background-size: cover; background-position: center; background-attachment: fixed; color: #f3f4f6; min-height: 100vh; display: block; padding: 40px 20px; } .app-container { max-width: 650px; margin: 0 auto; } .app-header { text-align: center; margin-bottom: 35px; } .app-header h1 { font-size: 2.5rem; font-weight: 700; color: #a78bfa; margin-bottom: 8px; letter-spacing: 0.5px; } .app-header p { color: #9ca3af; font-size: 0.95rem; } .input-card, .result-card { background-color: #111827; border: 1px solid #1f2937; border-radius: 12px; padding: 24px; margin-bottom: 24px; box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.3); } .form-group input { width: 100%; padding: 14px 16px; background-color: #1f2937; border: 1px solid #374151; border-radius: 8px; color: #ffffff; font-size: 1rem; margin-bottom: 16px; transition: all 0.3s ease; } .form-group input:focus { outline: none; border-color: #8b5cf6; box-shadow: 0 0 0 2px rgba(139, 92, 246, 0.2); } button { width: 100%; padding: 14px; background-color: #7c3aed; color: #ffffff; border: none; border-radius: 8px; font-size: 1rem; font-weight: 600; cursor: pointer; transition: background-color 0.2s ease; } button:hover { background-color: #6d28d9; } .loader-container { text-align: center; padding: 20px 0; color: #9ca3af; } .spinner { width: 36px; height: 36px; border: 4px solid #1f2937; border-top: 4px solid #8b5cf6; border-radius: 50%; margin: 0 auto 12px auto; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .result-card h3 { font-size: 1.2rem; margin-bottom: 16px; color: #e5e7eb; } .result-badge { display: inline-block; padding: 10px 18px; border-radius: 6px; font-weight: 700; font-size: 1.1rem; margin-bottom: 20px; text-align: center; width: 100%; } .status-benign { background-color: rgba(16, 185, 129, 0.2); color: #10b981; border: 1px solid #10b981; } .status-defacement { background-color: rgba(245, 158, 11, 0.2); color: #f59e0b; border: 1px solid #f59e0b; } .status-phishing { background-color: rgba(239, 68, 68, 0.2); color: #ef4444; border: 1px solid #ef4444; } .status-malware { background-color: rgba(220, 38, 38, 0.3); color: #f87171; border: 1px solid #dc2626; } .confidence-section { margin-bottom: 16px; } .confidence-header { display: flex; justify-content: space-between; font-size: 0.85rem; color: #9ca3af; margin-bottom: 6px; } .progress-bar-bg { background-color: #1f2937; height: 8px; border-radius: 4px; overflow: hidden; } .progress-bar-fill { background-color: #8b5cf6; height: 100%; border-radius: 4px; transition: width 0.5s ease-out; } .recommendation-text { font-size: 0.9rem; color: #d1d5db; line-height: 1.4; padding-top: 10px; border-top: 1px solid #1f2937; } .hidden { display: none; } .model-dropdown { width: 100%; padding: 12px 16px; background-color: #1f2937; border: 1px solid #374151; border-radius: 8px; color: #ffffff; font-size: 0.95rem; margin-bottom: 12px; cursor: pointer; transition: all 0.3s ease; appearance: none; background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%239ca3af%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-position: right 1rem top 50%; background-size: 0.65rem auto; } .model-dropdown:focus { outline: none; border-color: #8b5cf6; box-shadow: 0 0 0 2px rgba(139, 92, 246, 0.2); } .model-dropdown option { background-color: #111827; color: #ffffff; } .model-label { display: block; font-size: 0.9rem; color: #9ca3af; margin-top: 16px; margin-bottom: 8px; font-weight: 500; }