body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; background-color: #F8F9FA; } .header-gradient { background: linear-gradient(135deg, #007BFF, #0056b3); } .upload-zone { border: 2px dashed #007BFF; border-radius: 0.5rem; padding: 4rem; text-align: center; cursor: pointer; transition: background-color 0.2s ease-in-out; } .upload-zone.drag-over { background-color: #e9ecef; } .upload-zone .icon { width: 48px; height: 48px; stroke-width: 1.5; margin-bottom: 1rem; } .result-card { border-radius: 0.5rem; box-shadow: 0 4px 6px rgba(0,0,0,0.1); } /* Auth Forms */ .auth-form { max-width: 400px; margin: 5rem auto; padding: 2rem; background: #fff; border-radius: 0.5rem; box-shadow: 0 4px 6px rgba(0,0,0,0.1); } .auth-form h1 { text-align: center; margin-bottom: 1.5rem; } .form-group { margin-bottom: 1rem; } .form-group label { display: block; margin-bottom: 0.5rem; } .form-group input { width: 100%; padding: 0.75rem; border: 1px solid #ced4da; border-radius: 0.25rem; } .btn { display: inline-block; font-weight: 400; line-height: 1.5; color: #fff; text-align: center; vertical-align: middle; cursor: pointer; user-select: none; background-color: #007bff; border: 1px solid #007bff; padding: 0.75rem 1.25rem; font-size: 1rem; border-radius: 0.25rem; transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out; width: 100%; } .btn:hover { background-color: #0069d9; border-color: #0062cc; } .alert { padding: 1rem; margin-bottom: 1rem; border: 1px solid transparent; border-radius: 0.25rem; } .alert-danger { color: #721c24; background-color: #f8d7da; border-color: #f5c6cb; } .alert-success { color: #155724; background-color: #d4edda; border-color: #c3e6cb; } .upload-card { border-radius: 0.5rem; box-shadow: 0 4px 6px rgba(0,0,0,0.1); transition: transform 0.2s ease-in-out; } .upload-card:hover { transform: translateY(-5px); } .upload-card .card-img-top { aspect-ratio: 16 / 9; object-fit: cover; } .analysis-result { background-color: #f8f9fa; border-left: 3px solid #007BFF; padding: 0.5rem; margin-top: 0.5rem; font-size: 0.875rem; border-radius: 0.25rem; } .bounding-box { position: absolute; border: 2px solid #ff4d4d; background-color: rgba(255, 77, 77, 0.2); box-shadow: 0 0 5px rgba(255, 77, 77, 0.5); pointer-events: none; /* So it doesn't interfere with image interactions */ }