Kory
changing to flask
3709a55
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
Ubuntu, Cantarell, sans-serif;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
padding: 20px;
color: #333;
}
.container {
max-width: 1200px;
margin: 0 auto;
background: white;
border-radius: 20px;
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
overflow: hidden;
}
header {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 40px 20px;
text-align: center;
}
header h1 {
font-size: 2.5em;
margin-bottom: 10px;
}
.subtitle {
font-size: 1.2em;
opacity: 0.9;
}
.info-box {
background: #f8f9fa;
padding: 20px;
border-left: 4px solid #667eea;
margin: 20px;
}
.main-content {
padding: 30px 20px;
display: grid;
gap: 30px;
}
.upload-section,
.results-section {
background: #f8f9fa;
padding: 30px;
border-radius: 10px;
}
.upload-section h2,
.results-section h2 {
color: #667eea;
margin-bottom: 20px;
}
.file-upload {
margin-bottom: 20px;
}
.file-label {
display: block;
padding: 30px;
background: white;
border: 3px dashed #667eea;
border-radius: 10px;
text-align: center;
cursor: pointer;
transition: all 0.3s ease;
}
.file-label:hover {
background: #f0f4ff;
border-color: #764ba2;
}
.upload-icon {
font-size: 3em;
display: block;
margin-bottom: 10px;
}
#imageInput {
display: none;
}
.preview-container {
margin: 20px 0;
}
.preview-container h3 {
margin-bottom: 10px;
color: #667eea;
}
#imagePreview {
max-width: 100%;
max-height: 400px;
border-radius: 10px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.advanced-settings {
background: white;
padding: 15px;
border-radius: 8px;
margin: 20px 0;
}
.advanced-settings summary {
cursor: pointer;
font-weight: bold;
color: #667eea;
padding: 10px;
}
.settings-content {
padding: 20px 10px 10px;
}
.slider-group {
margin-bottom: 20px;
}
.slider-group label {
display: block;
margin-bottom: 8px;
font-weight: 500;
color: #333;
}
.slider-group input[type="range"] {
width: 100%;
height: 8px;
border-radius: 5px;
background: #ddd;
outline: none;
-webkit-appearance: none;
}
.slider-group input[type="range"]::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 20px;
height: 20px;
border-radius: 50%;
background: #667eea;
cursor: pointer;
}
.slider-group input[type="range"]::-moz-range-thumb {
width: 20px;
height: 20px;
border-radius: 50%;
background: #667eea;
cursor: pointer;
border: none;
}
.slider-group small {
display: block;
margin-top: 5px;
color: #666;
font-size: 0.9em;
}
.detect-btn,
.reset-btn {
width: 100%;
padding: 15px 30px;
font-size: 1.1em;
font-weight: bold;
color: white;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
border: none;
border-radius: 8px;
cursor: pointer;
transition: all 0.3s ease;
margin-top: 10px;
}
.detect-btn:hover,
.reset-btn:hover {
transform: translateY(-2px);
box-shadow: 0 6px 12px rgba(102, 126, 234, 0.4);
}
.detect-btn:active,
.reset-btn:active {
transform: translateY(0);
}
.detect-btn:disabled {
opacity: 0.6;
cursor: not-allowed;
}
.loading {
text-align: center;
padding: 30px;
}
.spinner {
border: 4px solid #f3f3f3;
border-top: 4px solid #667eea;
border-radius: 50%;
width: 50px;
height: 50px;
animation: spin 1s linear infinite;
margin: 0 auto 15px;
}
@keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
.error-message {
background: #fee;
color: #c33;
padding: 15px;
border-radius: 8px;
margin-top: 20px;
border-left: 4px solid #c33;
}
.result-image-container {
text-align: center;
margin-bottom: 20px;
}
#resultImage {
max-width: 100%;
border-radius: 10px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.detection-info {
display: grid;
gap: 15px;
}
.info-card {
background: white;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.info-card h3 {
color: #667eea;
margin-bottom: 10px;
}
#detectionList {
list-style: none;
padding: 0;
}
#detectionList li {
padding: 8px 0;
border-bottom: 1px solid #eee;
}
#detectionList li:last-child {
border-bottom: none;
}
footer {
background: #f8f9fa;
padding: 30px 20px;
border-top: 1px solid #e0e0e0;
}
.tips,
.about {
margin-bottom: 20px;
}
.tips h3,
.about h3 {
color: #667eea;
margin-bottom: 10px;
}
.tips ul {
list-style: none;
padding-left: 0;
}
.tips ul li {
padding: 8px 0;
padding-left: 25px;
position: relative;
}
.tips ul li:before {
content: "✓";
position: absolute;
left: 0;
color: #667eea;
font-weight: bold;
}
.about a {
color: #667eea;
text-decoration: none;
}
.about a:hover {
text-decoration: underline;
}
@media (max-width: 768px) {
header h1 {
font-size: 1.8em;
}
.subtitle {
font-size: 1em;
}
.main-content {
padding: 20px 10px;
}
}