Spaces:
Sleeping
Sleeping
| * { | |
| margin: 0; | |
| padding: 0; | |
| box-sizing: border-box; | |
| } | |
| body { | |
| font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, | |
| Ubuntu, Cantarell, sans-serif; | |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); | |
| min-height: 100vh; | |
| padding: 20px; | |
| color: #333; | |
| } | |
| .container { | |
| max-width: 1200px; | |
| margin: 0 auto; | |
| background: white; | |
| border-radius: 20px; | |
| box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); | |
| overflow: hidden; | |
| } | |
| header { | |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); | |
| color: white; | |
| padding: 40px 20px; | |
| text-align: center; | |
| } | |
| header h1 { | |
| font-size: 2.5em; | |
| margin-bottom: 10px; | |
| } | |
| .subtitle { | |
| font-size: 1.2em; | |
| opacity: 0.9; | |
| } | |
| .info-box { | |
| background: #f8f9fa; | |
| padding: 20px; | |
| border-left: 4px solid #667eea; | |
| margin: 20px; | |
| } | |
| .main-content { | |
| padding: 30px 20px; | |
| display: grid; | |
| gap: 30px; | |
| } | |
| .upload-section, | |
| .results-section { | |
| background: #f8f9fa; | |
| padding: 30px; | |
| border-radius: 10px; | |
| } | |
| .upload-section h2, | |
| .results-section h2 { | |
| color: #667eea; | |
| margin-bottom: 20px; | |
| } | |
| .file-upload { | |
| margin-bottom: 20px; | |
| } | |
| .file-label { | |
| display: block; | |
| padding: 30px; | |
| background: white; | |
| border: 3px dashed #667eea; | |
| border-radius: 10px; | |
| text-align: center; | |
| cursor: pointer; | |
| transition: all 0.3s ease; | |
| } | |
| .file-label:hover { | |
| background: #f0f4ff; | |
| border-color: #764ba2; | |
| } | |
| .upload-icon { | |
| font-size: 3em; | |
| display: block; | |
| margin-bottom: 10px; | |
| } | |
| #imageInput { | |
| display: none; | |
| } | |
| .preview-container { | |
| margin: 20px 0; | |
| } | |
| .preview-container h3 { | |
| margin-bottom: 10px; | |
| color: #667eea; | |
| } | |
| #imagePreview { | |
| max-width: 100%; | |
| max-height: 400px; | |
| border-radius: 10px; | |
| box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); | |
| } | |
| .advanced-settings { | |
| background: white; | |
| padding: 15px; | |
| border-radius: 8px; | |
| margin: 20px 0; | |
| } | |
| .advanced-settings summary { | |
| cursor: pointer; | |
| font-weight: bold; | |
| color: #667eea; | |
| padding: 10px; | |
| } | |
| .settings-content { | |
| padding: 20px 10px 10px; | |
| } | |
| .slider-group { | |
| margin-bottom: 20px; | |
| } | |
| .slider-group label { | |
| display: block; | |
| margin-bottom: 8px; | |
| font-weight: 500; | |
| color: #333; | |
| } | |
| .slider-group input[type="range"] { | |
| width: 100%; | |
| height: 8px; | |
| border-radius: 5px; | |
| background: #ddd; | |
| outline: none; | |
| -webkit-appearance: none; | |
| } | |
| .slider-group input[type="range"]::-webkit-slider-thumb { | |
| -webkit-appearance: none; | |
| appearance: none; | |
| width: 20px; | |
| height: 20px; | |
| border-radius: 50%; | |
| background: #667eea; | |
| cursor: pointer; | |
| } | |
| .slider-group input[type="range"]::-moz-range-thumb { | |
| width: 20px; | |
| height: 20px; | |
| border-radius: 50%; | |
| background: #667eea; | |
| cursor: pointer; | |
| border: none; | |
| } | |
| .slider-group small { | |
| display: block; | |
| margin-top: 5px; | |
| color: #666; | |
| font-size: 0.9em; | |
| } | |
| .detect-btn, | |
| .reset-btn { | |
| width: 100%; | |
| padding: 15px 30px; | |
| font-size: 1.1em; | |
| font-weight: bold; | |
| color: white; | |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); | |
| border: none; | |
| border-radius: 8px; | |
| cursor: pointer; | |
| transition: all 0.3s ease; | |
| margin-top: 10px; | |
| } | |
| .detect-btn:hover, | |
| .reset-btn:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 6px 12px rgba(102, 126, 234, 0.4); | |
| } | |
| .detect-btn:active, | |
| .reset-btn:active { | |
| transform: translateY(0); | |
| } | |
| .detect-btn:disabled { | |
| opacity: 0.6; | |
| cursor: not-allowed; | |
| } | |
| .loading { | |
| text-align: center; | |
| padding: 30px; | |
| } | |
| .spinner { | |
| border: 4px solid #f3f3f3; | |
| border-top: 4px solid #667eea; | |
| border-radius: 50%; | |
| width: 50px; | |
| height: 50px; | |
| animation: spin 1s linear infinite; | |
| margin: 0 auto 15px; | |
| } | |
| @keyframes spin { | |
| 0% { | |
| transform: rotate(0deg); | |
| } | |
| 100% { | |
| transform: rotate(360deg); | |
| } | |
| } | |
| .error-message { | |
| background: #fee; | |
| color: #c33; | |
| padding: 15px; | |
| border-radius: 8px; | |
| margin-top: 20px; | |
| border-left: 4px solid #c33; | |
| } | |
| .result-image-container { | |
| text-align: center; | |
| margin-bottom: 20px; | |
| } | |
| #resultImage { | |
| max-width: 100%; | |
| border-radius: 10px; | |
| box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); | |
| } | |
| .detection-info { | |
| display: grid; | |
| gap: 15px; | |
| } | |
| .info-card { | |
| background: white; | |
| padding: 20px; | |
| border-radius: 8px; | |
| box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); | |
| } | |
| .info-card h3 { | |
| color: #667eea; | |
| margin-bottom: 10px; | |
| } | |
| #detectionList { | |
| list-style: none; | |
| padding: 0; | |
| } | |
| #detectionList li { | |
| padding: 8px 0; | |
| border-bottom: 1px solid #eee; | |
| } | |
| #detectionList li:last-child { | |
| border-bottom: none; | |
| } | |
| footer { | |
| background: #f8f9fa; | |
| padding: 30px 20px; | |
| border-top: 1px solid #e0e0e0; | |
| } | |
| .tips, | |
| .about { | |
| margin-bottom: 20px; | |
| } | |
| .tips h3, | |
| .about h3 { | |
| color: #667eea; | |
| margin-bottom: 10px; | |
| } | |
| .tips ul { | |
| list-style: none; | |
| padding-left: 0; | |
| } | |
| .tips ul li { | |
| padding: 8px 0; | |
| padding-left: 25px; | |
| position: relative; | |
| } | |
| .tips ul li:before { | |
| content: "✓"; | |
| position: absolute; | |
| left: 0; | |
| color: #667eea; | |
| font-weight: bold; | |
| } | |
| .about a { | |
| color: #667eea; | |
| text-decoration: none; | |
| } | |
| .about a:hover { | |
| text-decoration: underline; | |
| } | |
| @media (max-width: 768px) { | |
| header h1 { | |
| font-size: 1.8em; | |
| } | |
| .subtitle { | |
| font-size: 1em; | |
| } | |
| .main-content { | |
| padding: 20px 10px; | |
| } | |
| } | |