Spaces:
Sleeping
Sleeping
| * { | |
| 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%); | |
| } |