| |
| |
| |
| :root { |
| --primary-color: #4CAF50; |
| --primary-dark: #45a049; |
| --background-start: #E6F5E9; |
| --background-end: #D0EAD6; |
| --card-background: #FFFFFF; |
| --text-color: #333; |
| --sub-text-color: #666; |
| --border-color: #E0E0E0; |
| --shadow: 0 4px 14px rgba(0,0,0,0.08); |
| } |
|
|
| body { |
| font-family: 'Roboto', sans-serif; |
| |
| background: linear-gradient(to bottom right, var(--background-start), var(--background-end)); |
| |
| color: var(--text-color); |
| margin: 0; |
| padding: 0; |
| line-height: 1.6; |
| display: flex; |
| flex-direction: column; |
| align-items: center; |
| min-height: 100vh; |
| } |
|
|
| .app-header { |
| text-align: center; |
| padding: 40px 20px 20px; |
| } |
|
|
| .app-header h1 { |
| font-size: 2.5rem; |
| color: var(--primary-dark); |
| margin-bottom: 5px; |
| } |
|
|
| .app-container { |
| width: 90%; |
| max-width: 800px; |
| margin: 20px auto; |
| background: var(--card-background); |
| padding: 30px; |
| border-radius: 12px; |
| box-shadow: var(--shadow); |
| display: flex; |
| flex-direction: column; |
| gap: 30px; |
| } |
|
|
| |
| |
| |
| .upload-section { |
| display: flex; |
| flex-direction: column; |
| gap: 10px; |
| align-items: center; |
| } |
|
|
| .file-uploader { |
| display: flex; |
| gap: 15px; |
| align-items: center; |
| width: 100%; |
| justify-content: center; |
| } |
|
|
| |
| .custom-file-upload { |
| background-color: var(--primary-color); |
| color: white; |
| padding: 12px 24px; |
| cursor: pointer; |
| border-radius: 8px; |
| font-size: 1rem; |
| font-weight: 500; |
| transition: background-color 0.3s ease; |
| text-align: center; |
| } |
|
|
| .custom-file-upload:hover { |
| background-color: var(--primary-dark); |
| } |
|
|
| input[type="file"] { |
| display: none; |
| } |
|
|
| .predict-button { |
| background-color: #E0E0E0; |
| color: #999; |
| border: none; |
| padding: 12px 24px; |
| cursor: not-allowed; |
| border-radius: 8px; |
| font-size: 1rem; |
| font-weight: 500; |
| transition: background-color 0.3s ease, color 0.3s ease; |
| } |
|
|
| .predict-button:not([disabled]) { |
| background-color: #2196F3; |
| color: white; |
| cursor: pointer; |
| } |
|
|
| .predict-button:not([disabled]):hover { |
| background-color: #1976D2; |
| } |
|
|
| .file-name-display { |
| font-style: italic; |
| color: var(--sub-text-color); |
| font-size: 0.9em; |
| text-align: center; |
| } |
|
|
| |
| |
| |
| .image-preview-container { |
| width: 100%; |
| max-width: 500px; |
| margin: 0 auto; |
| display: flex; |
| justify-content: center; |
| border: 2px dashed var(--border-color); |
| border-radius: 10px; |
| padding: 15px; |
| background-color: #FAFAFA; |
| } |
|
|
| .image-preview { |
| max-width: 100%; |
| max-height: 400px; |
| border-radius: 8px; |
| box-shadow: 0 2px 8px rgba(0,0,0,0.1); |
| display: none; |
| } |
|
|
| |
| |
| |
| .drop-zone { |
| text-align: center; |
| padding: 30px; |
| } |
|
|
| .drop-zone-text { |
| font-size: 1rem; |
| color: var(--sub-text-color); |
| margin: 0; |
| } |
|
|
| .drop-zone.drag-over { |
| background-color: #E6F5E9; |
| border-color: var(--primary-color); |
| box-shadow: 0 0 10px rgba(76, 175, 80, 0.4); |
| } |
|
|
| |
| |
| |
| .result-section { |
| border-top: 1px solid var(--border-color); |
| padding-top: 30px; |
| display: flex; |
| flex-direction: column; |
| gap: 20px; |
| } |
|
|
| .result-content { |
| background-color: #E8F5E9; |
| padding: 20px; |
| border-radius: 8px; |
| border: 1px solid var(--primary-color); |
| } |
|
|
| .result-title { |
| font-size: 1.5rem; |
| color: var(--primary-dark); |
| margin: 0 0 10px; |
| } |
|
|
| .result-detail { |
| font-size: 1.1rem; |
| color: var(--sub-text-color); |
| margin: 0; |
| } |
|
|
| .result-text { |
| font-weight: 700; |
| color: #222; |
| } |
|
|
| .remedy-container { |
| background-color: #F5F5F5; |
| padding: 20px; |
| border-radius: 8px; |
| } |
|
|
| .remedy-title { |
| margin-top: 0; |
| font-size: 1.2rem; |
| color: var(--text-color); |
| } |
|
|
| .remedy-text { |
| white-space: pre-wrap; |
| font-family: inherit; |
| margin: 0; |
| color: var(--sub-text-color); |
| } |
|
|
| |
| |
| |
| .top-predictions ul { |
| list-style-type: none; |
| padding: 0; |
| margin: 0; |
| } |
|
|
| .top-predictions li { |
| background-color: #FAFAFA; |
| padding: 8px 12px; |
| border-radius: 6px; |
| margin-bottom: 5px; |
| border: 1px solid var(--border-color); |
| font-size: 0.9em; |
| } |
|
|
| .app-note { |
| text-align: center; |
| font-size: 0.8em; |
| color: var(--sub-text-color); |
| } |