|
* { |
|
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 { |
|
width: 100%; |
|
max-width: 100%; |
|
max-height: 300px; |
|
border-radius: 8px; |
|
display: block; |
|
margin: 0 auto; |
|
object-fit: contain; |
|
} |
|
|
|
.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; |
|
} |