* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Poppins', sans-serif; background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); min-height: 100vh; color: #333; } .container { max-width: 1400px; margin: 0 auto; padding: 20px; } /* Header */ .header { text-align: center; margin-bottom: 30px; padding: 20px; background: white; border-radius: 15px; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); } .logo { display: flex; align-items: center; justify-content: center; gap: 15px; margin-bottom: 10px; } .logo i { font-size: 2.5rem; color: #e74c3c; } .logo h1 { font-size: 2.2rem; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } .tagline { color: #666; font-size: 1.1rem; } /* Main Content */ .main-content { display: grid; grid-template-columns: 1fr 1.5fr; gap: 25px; margin-bottom: 30px; } @media (max-width: 1024px) { .main-content { grid-template-columns: 1fr; } } /* Cards */ .card { background: white; border-radius: 15px; padding: 25px; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08); margin-bottom: 25px; } .card h2 { display: flex; align-items: center; gap: 10px; color: #2c3e50; margin-bottom: 20px; font-size: 1.4rem; } .card h2 i { color: #3498db; } /* Upload Section */ .upload-section .description { color: #666; margin-bottom: 20px; font-size: 0.95rem; } .upload-area { border: 3px dashed #3498db; border-radius: 12px; padding: 40px 20px; text-align: center; cursor: pointer; transition: all 0.3s ease; background: #f8fafc; display: flex; flex-direction: column; align-items: center; gap: 15px; } .upload-area:hover { background: #e3f2fd; border-color: #2980b9; } .upload-area.highlight { background: #e1f5fe; border-color: #0288d1; } .upload-icon { font-size: 3rem; color: #3498db; } .upload-text { font-size: 1.2rem; font-weight: 500; color: #2c3e50; } .upload-subtext { color: #666; font-size: 0.9rem; } .file-info { color: #7f8c8d; font-size: 0.85rem; margin-top: 10px; } /* File Info */ .file-info-container { margin-top: 20px; } .selected-file { display: flex; align-items: center; gap: 12px; background: #e8f4fc; padding: 15px; border-radius: 10px; border-left: 4px solid #3498db; } .selected-file i { color: #e74c3c; font-size: 1.2rem; } .selected-file span { flex: 1; font-weight: 500; color: #2c3e50; } .btn-remove { background: #ff6b6b; color: white; border: none; width: 30px; height: 30px; border-radius: 50%; cursor: pointer; transition: background 0.3s; } .btn-remove:hover { background: #ff5252; } /* Controls */ .controls-section { margin-top: 20px; } .control-group { margin-bottom: 25px; } .control-group label { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; font-weight: 500; color: #2c3e50; } #summaryRatio { width: 100%; height: 8px; -webkit-appearance: none; background: linear-gradient(to right, #4CAF50, #FFC107, #F44336); border-radius: 4px; outline: none; } #summaryRatio::-webkit-slider-thumb { -webkit-appearance: none; width: 22px; height: 22px; background: #3498db; border-radius: 50%; cursor: pointer; border: 3px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.2); } .range-labels { display: flex; justify-content: space-between; margin-top: 8px; color: #666; font-size: 0.9rem; } /* Buttons */ .btn-group { display: flex; gap: 15px; margin-top: 25px; } .btn { padding: 14px 28px; border: none; border-radius: 10px; cursor: pointer; font-weight: 600; font-size: 1rem; transition: all 0.3s ease; display: flex; align-items: center; justify-content: center; gap: 10px; flex: 1; } .btn-primary { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; } .btn-primary:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 0 7px 14px rgba(102, 126, 234, 0.3); } .btn-primary:disabled { opacity: 0.5; cursor: not-allowed; } .btn-secondary { background: #ecf0f1; color: #2c3e50; } .btn-secondary:hover { background: #d5dbdb; transform: translateY(-2px); } .btn-download { background: #2ecc71; color: white; padding: 10px 20px; font-size: 0.9rem; } .btn-download:hover { background: #27ae60; } .btn-copy { background: #3498db; color: white; padding: 10px 20px; font-size: 0.9rem; } .btn-copy:hover { background: #2980b9; } /* Results Section */ .results-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; flex-wrap: wrap; gap: 15px; } .actions { display: flex; gap: 10px; flex-wrap: wrap; } .results-content { min-height: 400px; position: relative; } .placeholder-content { text-align: center; padding: 60px 20px; color: #7f8c8d; } .placeholder-content i { font-size: 4rem; color: #bdc3c7; margin-bottom: 20px; } .placeholder-content h3 { font-size: 1.5rem; margin-bottom: 10px; color: #95a5a6; } .summary-header { margin-bottom: 25px; padding-bottom: 15px; border-bottom: 2px solid #ecf0f1; } .summary-header h3 { color: #2c3e50; font-size: 1.3rem; margin-bottom: 15px; } .summary-meta { display: flex; gap: 15px; flex-wrap: wrap; } .badge { display: inline-flex; align-items: center; gap: 6px; padding: 6px 15px; border-radius: 20px; font-size: 0.85rem; font-weight: 500; } .badge-high { background: #ffebee; color: #c62828; } .badge-medium { background: #fff3e0; color: #ef6c00; } .badge-low { background: #e8f5e9; color: #2e7d32; } .badge i { font-size: 0.9rem; } .summary-text { line-height: 1.8; color: #34495e; font-size: 1.05rem; white-space: pre-wrap; max-height: 500px; overflow-y: auto; padding: 15px; background: #f8f9fa; border-radius: 10px; border-left: 4px solid #3498db; } /* Statistics */ .stats-section .stats-placeholder { text-align: center; padding: 40px 20px; color: #95a5a6; } .stats-section .stats-placeholder i { font-size: 3rem; margin-bottom: 15px; color: #bdc3c7; } .stats-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; } .stat-item { display: flex; align-items: center; gap: 15px; padding: 15px; background: #f8fafc; border-radius: 10px; transition: transform 0.3s; } .stat-item:hover { transform: translateY(-3px); background: #e3f2fd; } .stat-icon { width: 50px; height: 50px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 10px; display: flex; align-items: center; justify-content: center; color: white; font-size: 1.2rem; } .stat-info { display: flex; flex-direction: column; } .stat-label { font-size: 0.85rem; color: #7f8c8d; margin-bottom: 4px; } .stat-value { font-size: 1.5rem; font-weight: 600; color: #2c3e50; } /* Tips Section */ .tips-list { list-style: none; padding: 0; } .tips-list li { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid #ecf0f1; color: #555; } .tips-list li:last-child { border-bottom: none; } .tips-list i { color: #2ecc71; font-size: 1rem; } /* Error Message */ .error-message { text-align: center; padding: 40px 20px; color: #c0392b; } .error-message i { font-size: 3rem; margin-bottom: 20px; } .error-message h3 { margin-bottom: 15px; font-size: 1.4rem; } /* Loader */ .loader { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(255, 255, 255, 0.9); display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 15px; z-index: 10; } .spinner { width: 50px; height: 50px; border: 5px solid #f3f3f3; border-top: 5px solid #3498db; border-radius: 50%; animation: spin 1s linear infinite; margin-bottom: 20px; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .loader p { color: #3498db; font-weight: 500; font-size: 1.1rem; } /* Toast */ .toast { position: fixed; bottom: 30px; right: 30px; padding: 15px 25px; border-radius: 10px; color: white; font-weight: 500; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); transform: translateY(100px); opacity: 0; transition: all 0.3s ease; z-index: 1000; max-width: 350px; } .toast.show { transform: translateY(0); opacity: 1; } .toast-success { background: linear-gradient(135deg, #2ecc71 0%, #27ae60 100%); } .toast-error { background: linear-gradient(135deg, #e74c3c 0%, #c0392b 100%); } .toast-info { background: linear-gradient(135deg, #3498db 0%, #2980b9 100%); } /* Footer */ .footer { text-align: center; padding: 20px; color: #7f8c8d; font-size: 0.9rem; background: white; border-radius: 15px; margin-top: 20px; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); } .footer i { color: #e74c3c; margin: 0 5px; } /* Responsive */ @media (max-width: 768px) { .container { padding: 15px; } .logo h1 { font-size: 1.8rem; } .main-content { gap: 15px; } .card { padding: 20px; } .btn-group { flex-direction: column; } .stats-grid { grid-template-columns: 1fr; } .actions { flex-direction: column; width: 100%; } .btn-download, .btn-copy { width: 100%; } } /* Scrollbar Styling */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 4px; } ::-webkit-scrollbar-thumb { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: linear-gradient(135deg, #5a6fd8 0%, #6b4198 100%); }