|
|
|
|
|
* { |
|
|
margin: 0; |
|
|
padding: 0; |
|
|
box-sizing: border-box; |
|
|
} |
|
|
|
|
|
body { |
|
|
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; |
|
|
line-height: 1.6; |
|
|
color: #333; |
|
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); |
|
|
min-height: 100vh; |
|
|
} |
|
|
|
|
|
.container { |
|
|
max-width: 1200px; |
|
|
margin: 0 auto; |
|
|
padding: 20px; |
|
|
} |
|
|
|
|
|
|
|
|
.header { |
|
|
text-align: center; |
|
|
margin-bottom: 40px; |
|
|
color: white; |
|
|
} |
|
|
|
|
|
.header-icon { |
|
|
font-size: 3rem; |
|
|
margin-bottom: 20px; |
|
|
opacity: 0.9; |
|
|
} |
|
|
|
|
|
.header-title { |
|
|
font-size: 2.5rem; |
|
|
font-weight: 700; |
|
|
margin-bottom: 10px; |
|
|
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); |
|
|
} |
|
|
|
|
|
.header-subtitle { |
|
|
font-size: 1.1rem; |
|
|
opacity: 0.9; |
|
|
font-weight: 300; |
|
|
} |
|
|
|
|
|
|
|
|
.main-content { |
|
|
background: white; |
|
|
border-radius: 20px; |
|
|
padding: 40px; |
|
|
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1); |
|
|
margin-bottom: 20px; |
|
|
} |
|
|
|
|
|
|
|
|
.upload-card { |
|
|
text-align: center; |
|
|
padding: 40px; |
|
|
border: 2px dashed #e0e6ed; |
|
|
border-radius: 15px; |
|
|
background: #f8fafc; |
|
|
transition: all 0.3s ease; |
|
|
margin-bottom: 40px; |
|
|
} |
|
|
|
|
|
.upload-card:hover { |
|
|
border-color: #667eea; |
|
|
background: #f1f5f9; |
|
|
} |
|
|
|
|
|
.upload-icon { |
|
|
font-size: 3rem; |
|
|
color: #667eea; |
|
|
margin-bottom: 20px; |
|
|
} |
|
|
|
|
|
.upload-form { |
|
|
display: flex; |
|
|
flex-direction: column; |
|
|
align-items: center; |
|
|
gap: 20px; |
|
|
} |
|
|
|
|
|
|
|
|
.file-input-wrapper { |
|
|
position: relative; |
|
|
width: 100%; |
|
|
max-width: 400px; |
|
|
} |
|
|
|
|
|
.file-input { |
|
|
position: absolute; |
|
|
opacity: 0; |
|
|
width: 100%; |
|
|
height: 100%; |
|
|
cursor: pointer; |
|
|
} |
|
|
|
|
|
.file-label { |
|
|
display: block; |
|
|
padding: 20px; |
|
|
background: #667eea; |
|
|
color: white; |
|
|
border-radius: 10px; |
|
|
cursor: pointer; |
|
|
transition: all 0.3s ease; |
|
|
text-align: center; |
|
|
} |
|
|
|
|
|
.file-label:hover { |
|
|
background: #5a67d8; |
|
|
transform: translateY(-2px); |
|
|
box-shadow: 0 5px 15px rgba(102, 126, 234, 0.4); |
|
|
} |
|
|
|
|
|
.file-label-text { |
|
|
display: block; |
|
|
font-size: 1.1rem; |
|
|
font-weight: 600; |
|
|
margin-bottom: 5px; |
|
|
} |
|
|
|
|
|
.file-label-subtext { |
|
|
font-size: 0.9rem; |
|
|
opacity: 0.8; |
|
|
} |
|
|
|
|
|
|
|
|
.preview-container { |
|
|
text-align: center; |
|
|
padding: 20px; |
|
|
background: white; |
|
|
border-radius: 10px; |
|
|
border: 1px solid #e0e6ed; |
|
|
} |
|
|
|
|
|
.preview-image { |
|
|
max-width: 200px; |
|
|
max-height: 200px; |
|
|
border-radius: 8px; |
|
|
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); |
|
|
} |
|
|
|
|
|
.preview-text { |
|
|
margin-top: 10px; |
|
|
color: #667eea; |
|
|
font-weight: 500; |
|
|
} |
|
|
|
|
|
|
|
|
.submit-btn { |
|
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); |
|
|
color: white; |
|
|
border: none; |
|
|
padding: 15px 30px; |
|
|
font-size: 1.1rem; |
|
|
font-weight: 600; |
|
|
border-radius: 10px; |
|
|
cursor: pointer; |
|
|
transition: all 0.3s ease; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
gap: 10px; |
|
|
} |
|
|
|
|
|
.submit-btn:hover { |
|
|
transform: translateY(-2px); |
|
|
box-shadow: 0 10px 20px rgba(102, 126, 234, 0.3); |
|
|
} |
|
|
|
|
|
|
|
|
.info-section { |
|
|
text-align: center; |
|
|
margin-top: 40px; |
|
|
} |
|
|
|
|
|
.info-section h3 { |
|
|
font-size: 1.5rem; |
|
|
margin-bottom: 30px; |
|
|
color: #2d3748; |
|
|
} |
|
|
|
|
|
.info-grid { |
|
|
display: grid; |
|
|
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); |
|
|
gap: 30px; |
|
|
margin-top: 30px; |
|
|
} |
|
|
|
|
|
.info-item { |
|
|
text-align: center; |
|
|
padding: 20px; |
|
|
} |
|
|
|
|
|
.info-item i { |
|
|
font-size: 2rem; |
|
|
color: #667eea; |
|
|
margin-bottom: 15px; |
|
|
} |
|
|
|
|
|
.info-item h4 { |
|
|
font-size: 1.2rem; |
|
|
margin-bottom: 10px; |
|
|
color: #2d3748; |
|
|
} |
|
|
|
|
|
.info-item p { |
|
|
color: #718096; |
|
|
} |
|
|
|
|
|
|
|
|
.results-summary { |
|
|
display: grid; |
|
|
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); |
|
|
gap: 30px; |
|
|
margin-bottom: 40px; |
|
|
} |
|
|
|
|
|
.result-card { |
|
|
background: white; |
|
|
padding: 30px; |
|
|
border-radius: 15px; |
|
|
text-align: center; |
|
|
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1); |
|
|
border: 1px solid #e0e6ed; |
|
|
transition: transform 0.3s ease; |
|
|
} |
|
|
|
|
|
.result-card:hover { |
|
|
transform: translateY(-5px); |
|
|
} |
|
|
|
|
|
.result-icon { |
|
|
font-size: 2.5rem; |
|
|
margin-bottom: 15px; |
|
|
} |
|
|
|
|
|
.prediction-card .result-icon { |
|
|
color: #48bb78; |
|
|
} |
|
|
|
|
|
.confidence-card .result-icon { |
|
|
color: #667eea; |
|
|
} |
|
|
|
|
|
.result-card h3 { |
|
|
font-size: 1.3rem; |
|
|
margin-bottom: 15px; |
|
|
color: #2d3748; |
|
|
} |
|
|
|
|
|
.prediction-value { |
|
|
font-size: 1.5rem; |
|
|
font-weight: 700; |
|
|
color: #48bb78; |
|
|
text-transform: capitalize; |
|
|
} |
|
|
|
|
|
.confidence-value { |
|
|
font-size: 1.5rem; |
|
|
font-weight: 700; |
|
|
color: #667eea; |
|
|
margin-bottom: 15px; |
|
|
} |
|
|
|
|
|
.confidence-bar { |
|
|
width: 100%; |
|
|
height: 8px; |
|
|
background: #e0e6ed; |
|
|
border-radius: 4px; |
|
|
overflow: hidden; |
|
|
} |
|
|
|
|
|
.confidence-fill { |
|
|
height: 100%; |
|
|
background: linear-gradient(90deg, #667eea, #48bb78); |
|
|
border-radius: 4px; |
|
|
transition: width 1s ease; |
|
|
} |
|
|
|
|
|
|
|
|
.comparison-section { |
|
|
margin-top: 40px; |
|
|
} |
|
|
|
|
|
.section-title { |
|
|
font-size: 1.8rem; |
|
|
text-align: center; |
|
|
margin-bottom: 30px; |
|
|
color: #2d3748; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
justify-content: center; |
|
|
gap: 10px; |
|
|
} |
|
|
|
|
|
.image-comparison { |
|
|
display: grid; |
|
|
grid-template-columns: 1fr auto 1fr; |
|
|
gap: 30px; |
|
|
align-items: center; |
|
|
margin-bottom: 30px; |
|
|
} |
|
|
|
|
|
.image-container { |
|
|
text-align: center; |
|
|
} |
|
|
|
|
|
.image-header { |
|
|
margin-bottom: 20px; |
|
|
} |
|
|
|
|
|
.image-header h3 { |
|
|
font-size: 1.3rem; |
|
|
color: #2d3748; |
|
|
margin-bottom: 5px; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
justify-content: center; |
|
|
gap: 8px; |
|
|
} |
|
|
|
|
|
.image-header p { |
|
|
color: #718096; |
|
|
font-size: 0.9rem; |
|
|
} |
|
|
|
|
|
.image-wrapper { |
|
|
position: relative; |
|
|
display: inline-block; |
|
|
border-radius: 15px; |
|
|
overflow: hidden; |
|
|
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15); |
|
|
transition: transform 0.3s ease; |
|
|
} |
|
|
|
|
|
.image-wrapper:hover { |
|
|
transform: scale(1.02); |
|
|
} |
|
|
|
|
|
.comparison-image { |
|
|
width: 100%; |
|
|
max-width: 300px; |
|
|
height: auto; |
|
|
display: block; |
|
|
} |
|
|
|
|
|
.image-overlay { |
|
|
position: absolute; |
|
|
top: 10px; |
|
|
left: 10px; |
|
|
background: rgba(0, 0, 0, 0.7); |
|
|
color: white; |
|
|
padding: 5px 10px; |
|
|
border-radius: 5px; |
|
|
font-size: 0.8rem; |
|
|
font-weight: 600; |
|
|
} |
|
|
|
|
|
.comparison-divider { |
|
|
display: flex; |
|
|
flex-direction: column; |
|
|
align-items: center; |
|
|
gap: 10px; |
|
|
} |
|
|
|
|
|
.divider-line { |
|
|
width: 2px; |
|
|
height: 40px; |
|
|
background: #e0e6ed; |
|
|
} |
|
|
|
|
|
.divider-icon { |
|
|
background: #667eea; |
|
|
color: white; |
|
|
width: 40px; |
|
|
height: 40px; |
|
|
border-radius: 50%; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
justify-content: center; |
|
|
font-size: 1.2rem; |
|
|
} |
|
|
|
|
|
|
|
|
.explanation-card { |
|
|
background: #f8fafc; |
|
|
padding: 30px; |
|
|
border-radius: 15px; |
|
|
border-left: 4px solid #667eea; |
|
|
margin-bottom: 30px; |
|
|
} |
|
|
|
|
|
.explanation-card h3 { |
|
|
font-size: 1.3rem; |
|
|
color: #2d3748; |
|
|
margin-bottom: 15px; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
gap: 10px; |
|
|
} |
|
|
|
|
|
.explanation-card p { |
|
|
color: #4a5568; |
|
|
line-height: 1.7; |
|
|
margin-bottom: 20px; |
|
|
} |
|
|
|
|
|
.heatmap-legend { |
|
|
display: flex; |
|
|
align-items: center; |
|
|
gap: 15px; |
|
|
flex-wrap: wrap; |
|
|
} |
|
|
|
|
|
.legend-label { |
|
|
font-weight: 600; |
|
|
color: #2d3748; |
|
|
} |
|
|
|
|
|
.legend-bar { |
|
|
display: flex; |
|
|
align-items: center; |
|
|
gap: 10px; |
|
|
flex: 1; |
|
|
min-width: 200px; |
|
|
} |
|
|
|
|
|
.legend-gradient { |
|
|
height: 20px; |
|
|
width: 100px; |
|
|
background: linear-gradient(90deg, #3182ce, #38a169, #d69e2e, #e53e3e); |
|
|
border-radius: 10px; |
|
|
border: 1px solid #e0e6ed; |
|
|
} |
|
|
|
|
|
.legend-low, |
|
|
.legend-high { |
|
|
font-size: 0.9rem; |
|
|
color: #718096; |
|
|
font-weight: 500; |
|
|
} |
|
|
|
|
|
|
|
|
.action-buttons { |
|
|
display: flex; |
|
|
justify-content: center; |
|
|
gap: 20px; |
|
|
flex-wrap: wrap; |
|
|
margin-top: 40px; |
|
|
} |
|
|
|
|
|
.btn { |
|
|
padding: 12px 24px; |
|
|
border-radius: 10px; |
|
|
text-decoration: none; |
|
|
font-weight: 600; |
|
|
border: none; |
|
|
cursor: pointer; |
|
|
transition: all 0.3s ease; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
gap: 8px; |
|
|
font-size: 1rem; |
|
|
} |
|
|
|
|
|
.btn-primary { |
|
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); |
|
|
color: white; |
|
|
} |
|
|
|
|
|
.btn-primary:hover { |
|
|
transform: translateY(-2px); |
|
|
box-shadow: 0 8px 20px rgba(102, 126, 234, 0.3); |
|
|
} |
|
|
|
|
|
.btn-secondary { |
|
|
background: white; |
|
|
color: #667eea; |
|
|
border: 2px solid #667eea; |
|
|
} |
|
|
|
|
|
.btn-secondary:hover { |
|
|
background: #667eea; |
|
|
color: white; |
|
|
transform: translateY(-2px); |
|
|
} |
|
|
|
|
|
|
|
|
@keyframes fadeIn { |
|
|
from { |
|
|
opacity: 0; |
|
|
transform: translateY(20px); |
|
|
} |
|
|
to { |
|
|
opacity: 1; |
|
|
transform: translateY(0); |
|
|
} |
|
|
} |
|
|
|
|
|
.fade-in { |
|
|
animation: fadeIn 0.6s ease forwards; |
|
|
} |
|
|
|
|
|
|
|
|
@media (max-width: 768px) { |
|
|
.container { |
|
|
padding: 10px; |
|
|
} |
|
|
|
|
|
.main-content { |
|
|
padding: 20px; |
|
|
} |
|
|
|
|
|
.header-title { |
|
|
font-size: 2rem; |
|
|
} |
|
|
|
|
|
.image-comparison { |
|
|
grid-template-columns: 1fr; |
|
|
gap: 20px; |
|
|
} |
|
|
|
|
|
.comparison-divider { |
|
|
flex-direction: row; |
|
|
justify-content: center; |
|
|
} |
|
|
|
|
|
.divider-line { |
|
|
width: 40px; |
|
|
height: 2px; |
|
|
} |
|
|
|
|
|
.action-buttons { |
|
|
flex-direction: column; |
|
|
align-items: center; |
|
|
} |
|
|
|
|
|
.btn { |
|
|
width: 100%; |
|
|
max-width: 250px; |
|
|
justify-content: center; |
|
|
} |
|
|
|
|
|
.heatmap-legend { |
|
|
flex-direction: column; |
|
|
align-items: flex-start; |
|
|
} |
|
|
|
|
|
.legend-bar { |
|
|
width: 100%; |
|
|
} |
|
|
} |
|
|
|
|
|
@media (max-width: 480px) { |
|
|
.header-title { |
|
|
font-size: 1.5rem; |
|
|
} |
|
|
|
|
|
.upload-card { |
|
|
padding: 20px; |
|
|
} |
|
|
|
|
|
.results-summary { |
|
|
grid-template-columns: 1fr; |
|
|
} |
|
|
|
|
|
.comparison-image { |
|
|
max-width: 250px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@media print { |
|
|
body { |
|
|
background: white; |
|
|
} |
|
|
|
|
|
.action-buttons { |
|
|
display: none; |
|
|
} |
|
|
|
|
|
.main-content { |
|
|
box-shadow: none; |
|
|
border: 1px solid #e0e6ed; |
|
|
} |
|
|
} |
|
|
|