| * { | |
| box-sizing: border-box; | |
| margin: 0; | |
| padding: 0; | |
| } | |
| body { | |
| font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; | |
| line-height: 1.6; | |
| color: #333; | |
| background-color: #f5f5f5; | |
| } | |
| .app { | |
| max-width: 800px; | |
| margin: 0 auto; | |
| padding: 20px; | |
| } | |
| .app-header { | |
| text-align: center; | |
| margin-bottom: 30px; | |
| } | |
| .app-header h1 { | |
| margin-bottom: 10px; | |
| color: #2c3e50; | |
| } | |
| .upload-container { | |
| margin-bottom: 20px; | |
| } | |
| .upload-label { | |
| display: block; | |
| cursor: pointer; | |
| } | |
| .upload-placeholder { | |
| border: 2px dashed #ccc; | |
| border-radius: 8px; | |
| padding: 60px; | |
| text-align: center; | |
| color: #777; | |
| transition: all 0.3s ease; | |
| } | |
| .upload-placeholder:hover { | |
| border-color: #4CAF50; | |
| color: #4CAF50; | |
| } | |
| .image-preview { | |
| max-width: 100%; | |
| max-height: 300px; | |
| border-radius: 8px; | |
| display: block; | |
| margin: 0 auto; | |
| } | |
| .file-input { | |
| display: none; | |
| } | |
| .submit-button { | |
| display: block; | |
| width: 100%; | |
| padding: 12px; | |
| background-color: #4CAF50; | |
| color: white; | |
| border: none; | |
| border-radius: 4px; | |
| font-size: 16px; | |
| cursor: pointer; | |
| margin-bottom: 20px; | |
| transition: background-color 0.3s; | |
| } | |
| .submit-button:hover { | |
| background-color: #45a049; | |
| } | |
| .submit-button:disabled { | |
| background-color: #cccccc; | |
| cursor: not-allowed; | |
| } | |
| .error-message { | |
| color: #e74c3c; | |
| margin-bottom: 20px; | |
| padding: 10px; | |
| background-color: #fadbd8; | |
| border-radius: 4px; | |
| } | |
| .result-container { | |
| background-color: #f9f9f9; | |
| border-radius: 8px; | |
| padding: 20px; | |
| margin-top: 20px; | |
| box-shadow: 0 2px 4px rgba(0,0,0,0.1); | |
| } | |
| .result-container h2 { | |
| margin-bottom: 15px; | |
| color: #2c3e50; | |
| } | |
| .result-message { | |
| margin-bottom: 15px; | |
| } | |
| .membership-status { | |
| font-size: 18px; | |
| margin-bottom: 15px; | |
| } | |
| .probability-bar { | |
| height: 24px; | |
| background-color: #e0e0e0; | |
| border-radius: 12px; | |
| position: relative; | |
| overflow: hidden; | |
| margin-top: 15px; | |
| } | |
| .probability-fill { | |
| height: 100%; | |
| background-color: #4CAF50; | |
| transition: width 0.3s ease; | |
| width: 0%; | |
| } | |
| .probability-text { | |
| position: absolute; | |
| top: 50%; | |
| left: 50%; | |
| transform: translate(-50%, -50%); | |
| color: black; | |
| font-weight: bold; | |
| } | |
| .loading { | |
| text-align: center; | |
| margin: 20px 0; | |
| } | |
| .spinner { | |
| border: 4px solid #f3f3f3; | |
| border-top: 4px solid #4CAF50; | |
| border-radius: 50%; | |
| width: 40px; | |
| height: 40px; | |
| animation: spin 1s linear infinite; | |
| margin: 0 auto 10px; | |
| } | |
| @keyframes spin { | |
| 0% { transform: rotate(0deg); } | |
| 100% { transform: rotate(360deg); } | |
| } | |
| .hidden { | |
| display: none; | |
| } |