|
|
body { |
|
|
font-family: 'Segoe UI', sans-serif; |
|
|
background-color: #f0f2f5; |
|
|
color: #333; |
|
|
margin: 0; |
|
|
padding: 20px; |
|
|
} |
|
|
|
|
|
.container { |
|
|
max-width: 800px; |
|
|
margin: 0 auto; |
|
|
padding: 30px; |
|
|
background-color: #fff; |
|
|
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); |
|
|
border-radius: 12px; |
|
|
} |
|
|
|
|
|
h1 { |
|
|
text-align: center; |
|
|
color: #1a73e8; |
|
|
margin-bottom: 30px; |
|
|
} |
|
|
|
|
|
.input-section { |
|
|
display: flex; |
|
|
align-items: center; |
|
|
gap: 20px; |
|
|
margin-bottom: 30px; |
|
|
} |
|
|
|
|
|
.input-group { |
|
|
flex: 1; |
|
|
} |
|
|
|
|
|
.input-group label { |
|
|
display: block; |
|
|
margin-bottom: 8px; |
|
|
font-weight: 500; |
|
|
} |
|
|
|
|
|
.separator { |
|
|
font-weight: 500; |
|
|
color: #666; |
|
|
} |
|
|
|
|
|
input[type="file"], |
|
|
input[type="text"] { |
|
|
width: 100%; |
|
|
padding: 12px; |
|
|
border: 2px solid #e0e0e0; |
|
|
border-radius: 8px; |
|
|
transition: border-color 0.3s; |
|
|
} |
|
|
|
|
|
input[type="text"]:focus { |
|
|
border-color: #1a73e8; |
|
|
outline: none; |
|
|
} |
|
|
|
|
|
.label-section { |
|
|
margin: 20px 0; |
|
|
} |
|
|
|
|
|
.label-category { |
|
|
margin-bottom: 20px; |
|
|
} |
|
|
|
|
|
.label-category h3 { |
|
|
margin-bottom: 10px; |
|
|
font-size: 18px; |
|
|
color: #1a73e8; |
|
|
} |
|
|
|
|
|
.label-grid { |
|
|
display: grid; |
|
|
grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); |
|
|
gap: 15px; |
|
|
margin-top: 10px; |
|
|
} |
|
|
|
|
|
.label-option { |
|
|
display: flex; |
|
|
align-items: center; |
|
|
padding: 10px; |
|
|
border: 2px solid #e0e0e0; |
|
|
border-radius: 8px; |
|
|
cursor: pointer; |
|
|
transition: all 0.3s; |
|
|
} |
|
|
|
|
|
.label-option:hover { |
|
|
border-color: #1a73e8; |
|
|
} |
|
|
|
|
|
.label-option input[type="checkbox"] { |
|
|
margin-right: 10px; |
|
|
} |
|
|
|
|
|
.selected-labels-container { |
|
|
margin: 20px 0; |
|
|
padding: 10px; |
|
|
background-color: #f8f9fa; |
|
|
border: 1px solid #ddd; |
|
|
border-radius: 8px; |
|
|
} |
|
|
|
|
|
.selected-labels-container h3 { |
|
|
margin: 0 0 10px; |
|
|
font-size: 16px; |
|
|
color: #1a73e8; |
|
|
} |
|
|
|
|
|
.selected-label { |
|
|
display: inline-block; |
|
|
margin: 4px; |
|
|
padding: 5px 10px; |
|
|
background-color: #e0f7fa; |
|
|
border-radius: 12px; |
|
|
font-size: 14px; |
|
|
color: #00796b; |
|
|
} |
|
|
|
|
|
.selected-labels-container p { |
|
|
color: #666; |
|
|
} |
|
|
|
|
|
.default-labels { |
|
|
display: flex; |
|
|
gap: 10px; |
|
|
padding: 2px; |
|
|
} |
|
|
|
|
|
.default-labels .label-option { |
|
|
padding: 2px 5px; |
|
|
border: 1px solid #ccc; |
|
|
border-radius: 4px; |
|
|
} |
|
|
|
|
|
.search-container { |
|
|
position: relative; |
|
|
margin: 20px 0; |
|
|
} |
|
|
|
|
|
.search-input { |
|
|
width: 100%; |
|
|
padding: 12px; |
|
|
border: 2px solid #e0e0e0; |
|
|
border-radius: 8px; |
|
|
font-size: 16px; |
|
|
} |
|
|
|
|
|
.search-input:focus { |
|
|
border-color: #1a73e8; |
|
|
outline: none; |
|
|
} |
|
|
|
|
|
.label-dropdown { |
|
|
position: absolute; |
|
|
top: 100%; |
|
|
left: 0; |
|
|
right: 0; |
|
|
background: white; |
|
|
border: 1px solid #e0e0e0; |
|
|
border-radius: 8px; |
|
|
max-height: 400px; |
|
|
overflow-y: auto; |
|
|
z-index: 1000; |
|
|
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); |
|
|
} |
|
|
|
|
|
.dropdown-option { |
|
|
padding: 8px 12px 8px 24px; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
gap: 12px; |
|
|
cursor: pointer; |
|
|
border-bottom: 1px solid #f0f0f0; |
|
|
} |
|
|
|
|
|
.dropdown-option:hover { |
|
|
background-color: #f8f9fa; |
|
|
} |
|
|
|
|
|
.dropdown-option:last-child { |
|
|
border-bottom: none; |
|
|
} |
|
|
|
|
|
.label-text { |
|
|
flex: 1; |
|
|
} |
|
|
|
|
|
.category-badge { |
|
|
background-color: #e8f0fe; |
|
|
color: #1a73e8; |
|
|
padding: 2px 8px; |
|
|
border-radius: 12px; |
|
|
font-size: 12px; |
|
|
} |
|
|
|
|
|
.selected-label { |
|
|
display: inline-flex; |
|
|
align-items: center; |
|
|
gap: 8px; |
|
|
background-color: #e8f0fe; |
|
|
border: 1px solid #1a73e8; |
|
|
border-radius: 16px; |
|
|
padding: 4px 12px; |
|
|
margin: 4px; |
|
|
font-size: 14px; |
|
|
} |
|
|
|
|
|
.remove-label { |
|
|
cursor: pointer; |
|
|
color: #1a73e8; |
|
|
font-weight: bold; |
|
|
padding-left: 4px; |
|
|
} |
|
|
|
|
|
.remove-label:hover { |
|
|
color: #1557b0; |
|
|
} |
|
|
|
|
|
|
|
|
#analyzeBtn { |
|
|
display: block; |
|
|
width: 200px; |
|
|
margin: 20px auto; |
|
|
padding: 12px 24px; |
|
|
background-color: #1a73e8; |
|
|
color: white; |
|
|
border: none; |
|
|
border-radius: 8px; |
|
|
font-size: 16px; |
|
|
font-weight: 500; |
|
|
cursor: pointer; |
|
|
transition: background-color 0.3s; |
|
|
} |
|
|
|
|
|
#analyzeBtn:hover { |
|
|
background-color: #1557b0; |
|
|
} |
|
|
|
|
|
#analyzeBtn:disabled { |
|
|
background-color: #ccc; |
|
|
cursor: not-allowed; |
|
|
} |
|
|
|
|
|
|
|
|
.preview-section { |
|
|
margin: 20px 0; |
|
|
text-align: center; |
|
|
display: flex; |
|
|
flex-direction: column; |
|
|
align-items: center; |
|
|
} |
|
|
|
|
|
#imagePreview { |
|
|
max-width: 100%; |
|
|
max-height: 400px; |
|
|
object-fit: contain; |
|
|
margin: 0 auto; |
|
|
} |
|
|
|
|
|
|
|
|
.prediction-result { |
|
|
margin: 10px 0; |
|
|
padding: 10px; |
|
|
background-color: #f8f9fa; |
|
|
border-radius: 8px; |
|
|
} |
|
|
|
|
|
.progress-bar { |
|
|
height: 24px; |
|
|
background-color: #e0e0e0; |
|
|
border-radius: 12px; |
|
|
overflow: hidden; |
|
|
margin: 8px 0; |
|
|
flex-grow: 1; |
|
|
margin-right: 10px; |
|
|
} |
|
|
|
|
|
.progress { |
|
|
height: 100%; |
|
|
background-color: #1a73e8; |
|
|
transition: width 0.3s ease; |
|
|
} |
|
|
|
|
|
.prediction-result { |
|
|
display: flex; |
|
|
align-items: center; |
|
|
gap: 10px; |
|
|
margin: 10px 0; |
|
|
} |
|
|
|
|
|
.prediction-result strong { |
|
|
min-width: 120px; |
|
|
} |
|
|
|
|
|
.prediction-result span { |
|
|
min-width: 80px; |
|
|
text-align: right; |
|
|
} |
|
|
|
|
|
.results-section h2 { |
|
|
color: #1a73e8; |
|
|
font-size: 20px; |
|
|
margin: 20px 0 15px; |
|
|
} |
|
|
|
|
|
|
|
|
.input-method-selection { |
|
|
margin-bottom: 20px; |
|
|
} |
|
|
|
|
|
.radio-label { |
|
|
margin-right: 15px; |
|
|
} |
|
|
|
|
|
|
|
|
.results-section { |
|
|
min-height: 100px; |
|
|
padding: 15px; |
|
|
background-color: #f8f9fa; |
|
|
border-radius: 8px; |
|
|
margin-top: 20px; |
|
|
} |
|
|
|
|
|
.results-section:empty::before { |
|
|
content: 'Analysis results will appear here'; |
|
|
color: #666; |
|
|
font-style: italic; |
|
|
} |
|
|
|
|
|
.helper-text { |
|
|
color: #666; |
|
|
font-size: 0.9em; |
|
|
margin: 8px 0; |
|
|
font-style: italic; |
|
|
} |
|
|
|
|
|
.search-wrapper { |
|
|
display: flex; |
|
|
gap: 10px; |
|
|
align-items: center; |
|
|
} |
|
|
|
|
|
.search-input { |
|
|
flex: 1; |
|
|
} |
|
|
|
|
|
.show-all-btn { |
|
|
padding: 12px 20px; |
|
|
background-color: #1a73e8; |
|
|
color: white; |
|
|
border: none; |
|
|
border-radius: 8px; |
|
|
cursor: pointer; |
|
|
font-size: 14px; |
|
|
white-space: nowrap; |
|
|
} |
|
|
|
|
|
.show-all-btn:hover { |
|
|
background-color: #1557b0; |
|
|
} |
|
|
|
|
|
.dropdown-category-header { |
|
|
padding: 8px 12px; |
|
|
background-color: #f0f2f5; |
|
|
font-weight: bold; |
|
|
color: #1a73e8; |
|
|
border-bottom: 1px solid #e0e0e0; |
|
|
} |
|
|
|